Delete the outdated man pages in doc/, and the libs/ directory.
authorMichael Poole <mdpoole@troilus.org>
Thu, 7 Jan 2010 04:24:07 +0000 (04:24 +0000)
committerMichael Poole <mdpoole@troilus.org>
Thu, 7 Jan 2010 04:24:07 +0000 (04:24 +0000)
git-svn-id: file:///home/klmitch/undernet-ircu/undernet-ircu-svn/ircu2/branches/u2_10_12_branch@1940 c9e4aea6-c8fd-4c43-8297-357d70d61c8c

107 files changed:
ChangeLog
Makefile.in
configure
configure.in
doc/Makefile.in [deleted file]
doc/irc.1 [deleted file]
doc/ircd.8 [deleted file]
libs/dbprim/COPYING [deleted file]
libs/dbprim/ChangeLog [deleted file]
libs/dbprim/INSTALL [deleted file]
libs/dbprim/Makefile.am [deleted file]
libs/dbprim/Makefile.in [deleted file]
libs/dbprim/_hash_prime.c [deleted file]
libs/dbprim/_smat_comp.c [deleted file]
libs/dbprim/_smat_hash.c [deleted file]
libs/dbprim/_smat_resize.c [deleted file]
libs/dbprim/acinclude.m4 [deleted file]
libs/dbprim/aclocal.m4 [deleted file]
libs/dbprim/comp_et-sh.in [deleted file]
libs/dbprim/config.guess [deleted file]
libs/dbprim/config.sub [deleted file]
libs/dbprim/configure [deleted file]
libs/dbprim/configure.in [deleted file]
libs/dbprim/dbprim.h.bot [deleted file]
libs/dbprim/dbprim.h.top [deleted file]
libs/dbprim/dbprim_err.et [deleted file]
libs/dbprim/dbprim_int.h [deleted file]
libs/dbprim/doc/Doxyfile [deleted file]
libs/dbprim/doc/html/doxygen.css [deleted file]
libs/dbprim/doc/html/doxygen.gif [deleted file]
libs/dbprim/doc/html/group__dbprim__hash.html [deleted file]
libs/dbprim/doc/html/group__dbprim__key.html [deleted file]
libs/dbprim/doc/html/group__dbprim__link.html [deleted file]
libs/dbprim/doc/html/group__dbprim__smat.html [deleted file]
libs/dbprim/doc/html/index.html [deleted file]
libs/dbprim/doc/html/modules.html [deleted file]
libs/dbprim/doc/latex/Makefile [deleted file]
libs/dbprim/doc/latex/doxygen.sty [deleted file]
libs/dbprim/doc/latex/group__dbprim__hash.tex [deleted file]
libs/dbprim/doc/latex/group__dbprim__key.tex [deleted file]
libs/dbprim/doc/latex/group__dbprim__link.tex [deleted file]
libs/dbprim/doc/latex/group__dbprim__smat.tex [deleted file]
libs/dbprim/doc/latex/index.tex [deleted file]
libs/dbprim/doc/latex/modules.tex [deleted file]
libs/dbprim/doc/latex/refman.tex [deleted file]
libs/dbprim/doc/man/man3/dbprim_hash.3 [deleted file]
libs/dbprim/doc/man/man3/dbprim_key.3 [deleted file]
libs/dbprim/doc/man/man3/dbprim_link.3 [deleted file]
libs/dbprim/doc/man/man3/dbprim_smat.3 [deleted file]
libs/dbprim/he_init.c [deleted file]
libs/dbprim/ht_add.c [deleted file]
libs/dbprim/ht_find.c [deleted file]
libs/dbprim/ht_flush.c [deleted file]
libs/dbprim/ht_free.c [deleted file]
libs/dbprim/ht_init.c [deleted file]
libs/dbprim/ht_iter.c [deleted file]
libs/dbprim/ht_move.c [deleted file]
libs/dbprim/ht_remove.c [deleted file]
libs/dbprim/ht_resize.c [deleted file]
libs/dbprim/install-sh [deleted file]
libs/dbprim/le_init.c [deleted file]
libs/dbprim/ll_add.c [deleted file]
libs/dbprim/ll_find.c [deleted file]
libs/dbprim/ll_flush.c [deleted file]
libs/dbprim/ll_init.c [deleted file]
libs/dbprim/ll_iter.c [deleted file]
libs/dbprim/ll_move.c [deleted file]
libs/dbprim/ll_remove.c [deleted file]
libs/dbprim/ltmain.sh [deleted file]
libs/dbprim/missing [deleted file]
libs/dbprim/mkinstalldirs [deleted file]
libs/dbprim/sh_find.c [deleted file]
libs/dbprim/sh_flush.c [deleted file]
libs/dbprim/sh_init.c [deleted file]
libs/dbprim/sh_iter.c [deleted file]
libs/dbprim/sh_move.c [deleted file]
libs/dbprim/smat_freelist.c [deleted file]
libs/dbprim/st_add.c [deleted file]
libs/dbprim/st_find.c [deleted file]
libs/dbprim/st_flush.c [deleted file]
libs/dbprim/st_free.c [deleted file]
libs/dbprim/st_init.c [deleted file]
libs/dbprim/st_iter.c [deleted file]
libs/dbprim/st_remove.c [deleted file]
libs/dbprim/st_resize.c [deleted file]
libs/dbprim/tests/Makefile.am [deleted file]
libs/dbprim/tests/Makefile.in [deleted file]
libs/dbprim/tests/t_he_init.c [deleted file]
libs/dbprim/tests/t_ht_addfind.c [deleted file]
libs/dbprim/tests/t_ht_flush.c [deleted file]
libs/dbprim/tests/t_ht_free.c [deleted file]
libs/dbprim/tests/t_ht_init.c [deleted file]
libs/dbprim/tests/t_ht_iter.c [deleted file]
libs/dbprim/tests/t_ht_move.c [deleted file]
libs/dbprim/tests/t_ht_remove.c [deleted file]
libs/dbprim/tests/t_ht_resize.c [deleted file]
libs/dbprim/tests/t_le_init.c [deleted file]
libs/dbprim/tests/t_ll_add.c [deleted file]
libs/dbprim/tests/t_ll_find.c [deleted file]
libs/dbprim/tests/t_ll_flush.c [deleted file]
libs/dbprim/tests/t_ll_init.c [deleted file]
libs/dbprim/tests/t_ll_iter.c [deleted file]
libs/dbprim/tests/t_ll_move.c [deleted file]
libs/dbprim/tests/t_ll_remove.c [deleted file]
libs/dbprim/tests/t_st_init.c [deleted file]
libs/dbprim/tests/test-harness.c [deleted file]
libs/dbprim/tests/test-harness.dat [deleted file]

index 1f51f03fe9d1e401e50bb06e16c8d6474138deba..151daaedf5cc7bcdff704a51d2ae07bdbd2b93e1 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,19 @@
+2010-01-06  Michael Poole <mdpoole@troilus.org>
+
+       * Makefile.in: Remove doc/Makefile from the build.
+
+       * configure.in: Do not generate doc/Makefile.
+
+       * configure: Regenerate.
+
+       * doc/Makefile.in: Delete.
+
+       * doc/irc.1: Delete.
+
+       * doc/ircd.8: Delete.
+
+       * libs: Delete.
+
 2010-01-06  Michael Poole <mdpoole@troilus.org>
 
        * ircd/m_topic.c (ms_topic): When no topic timestamp is passed,
index 211db7678bf30bb23ec578b0529e451eef310d86..de888c90cf92d1ab8f9f76b4cfb87699be2d417d 100644 (file)
@@ -28,8 +28,8 @@ AWK = @AWK@
 @SET_MAKE@
 #### End of system configuration section. ####
 
-SUBDIRS = doc ircd ircd/test
-IRCD_MAKEFILES = Makefile doc/Makefile ircd/Makefile ircd/test/Makefile
+SUBDIRS = ircd ircd/test
+IRCD_MAKEFILES = Makefile ircd/Makefile ircd/test/Makefile
 
 all: build
 
@@ -132,9 +132,6 @@ stamp-h: config.h.in config.status
 Makefile: Makefile.in config.status
        ./config.status
 
-doc/Makefile: doc/Makefile.in config.status
-       ./config.status
-
 ircd/Makefile: ircd/Makefile.in config.status
        ./config.status
 
index 8311bdc346e00ef76a74d6ac0ce83718445383db..f29fabb4b4f1b0df2926de2c08ccc892160915e4 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,18 +1,20 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.63.
+# Generated by GNU Autoconf 2.64.
 #
 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-# 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software
+# Foundation, Inc.
+#
 # This configure script is free software; the Free Software Foundation
 # gives unlimited permission to copy, distribute and modify it.
-## --------------------- ##
-## M4sh Initialization.  ##
-## --------------------- ##
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
 
 # Be more Bourne compatible
 DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
   emulate sh
   NULLCMD=:
   # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
@@ -20,23 +22,15 @@ if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
   alias -g '${1+"$@"}'='"$@"'
   setopt NO_GLOB_SUBST
 else
-  case `(set -o) 2>/dev/null` in
-  *posix*) set -o posix ;;
+  case `(set -o) 2>/dev/null` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
 esac
-
 fi
 
 
-
-
-# PATH needs CR
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
 as_nl='
 '
 export as_nl
@@ -44,7 +38,13 @@ export as_nl
 as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
 as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
 as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='print -r --'
+  as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
   as_echo='printf %s\n'
   as_echo_n='printf %s'
 else
@@ -55,7 +55,7 @@ else
     as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
     as_echo_n_body='eval
       arg=$1;
-      case $arg in
+      case $arg in #(
       *"$as_nl"*)
        expr "X$arg" : "X\\(.*\\)$as_nl";
        arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
@@ -78,13 +78,6 @@ if test "${PATH_SEPARATOR+set}" != set; then
   }
 fi
 
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-  as_unset=unset
-else
-  as_unset=false
-fi
-
 
 # IFS
 # We need space, tab and new line, in precisely that order.  Quoting is
@@ -94,15 +87,15 @@ fi
 IFS=" ""       $as_nl"
 
 # Find who we are.  Look in the path if we contain no directory separator.
-case $0 in
+case $0 in #((
   *[\\/]* ) as_myself=$0 ;;
   *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
+    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+  done
 IFS=$as_save_IFS
 
      ;;
@@ -114,12 +107,16 @@ if test "x$as_myself" = x; then
 fi
 if test ! -f "$as_myself"; then
   $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
-  { (exit 1); exit 1; }
+  exit 1
 fi
 
-# Work around bugs in pre-3.0 UWIN ksh.
-for as_var in ENV MAIL MAILPATH
-do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there.  '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
 done
 PS1='$ '
 PS2='> '
@@ -131,7 +128,248 @@ export LC_ALL
 LANGUAGE=C
 export LANGUAGE
 
-# Required to use basename.
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+if test "x$CONFIG_SHELL" = x; then
+  as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '\${1+\"\$@\"}'='\"\$@\"'
+  setopt NO_GLOB_SUBST
+else
+  case \`(set -o) 2>/dev/null\` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
+esac
+fi
+"
+  as_required="as_fn_return () { (exit \$1); }
+as_fn_success () { as_fn_return 0; }
+as_fn_failure () { as_fn_return 1; }
+as_fn_ret_success () { return 0; }
+as_fn_ret_failure () { return 1; }
+
+exitcode=0
+as_fn_success || { exitcode=1; echo as_fn_success failed.; }
+as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
+as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
+as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
+if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+
+else
+  exitcode=1; echo positional parameters were not saved.
+fi
+test x\$exitcode = x0 || exit 1"
+  as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
+  as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
+  eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
+  test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
+test \$(( 1 + 1 )) = 2 || exit 1"
+  if (eval "$as_required") 2>/dev/null; then :
+  as_have_required=yes
+else
+  as_have_required=no
+fi
+  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
+
+else
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  as_found=:
+  case $as_dir in #(
+        /*)
+          for as_base in sh bash ksh sh5; do
+            # Try only shells that exist, to save several forks.
+            as_shell=$as_dir/$as_base
+            if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+                   { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+  CONFIG_SHELL=$as_shell as_have_required=yes
+                  if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+  break 2
+fi
+fi
+          done;;
+       esac
+  as_found=false
+done
+$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+             { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
+  CONFIG_SHELL=$SHELL as_have_required=yes
+fi; }
+IFS=$as_save_IFS
+
+
+      if test "x$CONFIG_SHELL" != x; then :
+  # We cannot yet assume a decent shell, so we have to provide a
+       # neutralization value for shells without unset; and this also
+       # works around shells that cannot unset nonexistent variables.
+       BASH_ENV=/dev/null
+       ENV=/dev/null
+       (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+       export CONFIG_SHELL
+       exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
+fi
+
+    if test x$as_have_required = xno; then :
+  $as_echo "$0: This script requires a shell more modern than all"
+  $as_echo "$0: the shells that I found on your system."
+  if test x${ZSH_VERSION+set} = xset ; then
+    $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+    $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+  else
+    $as_echo "$0: Please tell bug-autoconf@gnu.org about your system,
+$0: including any error possibly output before this
+$0: message. Then install a modern shell, or manually run
+$0: the script under such a shell if you do have one."
+  fi
+  exit 1
+fi
+fi
+fi
+SHELL=${CONFIG_SHELL-/bin/sh}
+export SHELL
+# Unset more variables known to interfere with behavior of common tools.
+CLICOLOR_FORCE= GREP_OPTIONS=
+unset CLICOLOR_FORCE GREP_OPTIONS
+
+## --------------------- ##
+## M4sh Shell Functions. ##
+## --------------------- ##
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+  { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+  return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+  set +e
+  as_fn_set_status $1
+  exit $1
+} # as_fn_exit
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+  case $as_dir in #(
+  -*) as_dir=./$as_dir;;
+  esac
+  test -d "$as_dir" || eval $as_mkdir_p || {
+    as_dirs=
+    while :; do
+      case $as_dir in #(
+      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+      *) as_qdir=$as_dir;;
+      esac
+      as_dirs="'$as_qdir' $as_dirs"
+      as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+        X"$as_dir" : 'X\(//\)[^/]' \| \
+        X"$as_dir" : 'X\(//\)$' \| \
+        X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)[^/].*/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\).*/{
+           s//\1/
+           q
+         }
+         s/.*/./; q'`
+      test -d "$as_dir" && break
+    done
+    test -z "$as_dirs" || eval "mkdir $as_dirs"
+  } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+  eval 'as_fn_append ()
+  {
+    eval $1+=\$2
+  }'
+else
+  as_fn_append ()
+  {
+    eval $1=\$$1\$2
+  }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+  eval 'as_fn_arith ()
+  {
+    as_val=$(( $* ))
+  }'
+else
+  as_fn_arith ()
+  {
+    as_val=`expr "$@" || test $? -eq 1`
+  }
+fi # as_fn_arith
+
+
+# as_fn_error ERROR [LINENO LOG_FD]
+# ---------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with status $?, using 1 if that was 0.
+as_fn_error ()
+{
+  as_status=$?; test $as_status -eq 0 && as_status=1
+  if test "$3"; then
+    as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+    $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
+  fi
+  $as_echo "$as_me: error: $1" >&2
+  as_fn_exit $as_status
+} # as_fn_error
+
 if expr a : '\(a\)' >/dev/null 2>&1 &&
    test "X`expr 00001 : '.*\(...\)'`" = X001; then
   as_expr=expr
@@ -145,8 +383,12 @@ else
   as_basename=false
 fi
 
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+  as_dirname=dirname
+else
+  as_dirname=false
+fi
 
-# Name of the executable.
 as_me=`$as_basename -- "$0" ||
 $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
         X"$0" : 'X\(//\)$' \| \
@@ -166,412 +408,123 @@ $as_echo X/"$0" |
          }
          s/.*/./; q'`
 
-# CDPATH.
-$as_unset CDPATH
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
 
 
-if test "x$CONFIG_SHELL" = x; then
-  if (eval ":") 2>/dev/null; then
-  as_have_required=yes
-else
-  as_have_required=no
-fi
+  as_lineno_1=$LINENO as_lineno_1a=$LINENO
+  as_lineno_2=$LINENO as_lineno_2a=$LINENO
+  eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
+  test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
+  # Blame Lee E. McMahon (1931-1989) for sed's syntax.  :-)
+  sed -n '
+    p
+    /[$]LINENO/=
+  ' <$as_myself |
+    sed '
+      s/[$]LINENO.*/&-/
+      t lineno
+      b
+      :lineno
+      N
+      :loop
+      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+      t loop
+      s/-\n.*//
+    ' >$as_me.lineno &&
+  chmod +x "$as_me.lineno" ||
+    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
 
-  if test $as_have_required = yes &&    (eval ":
-(as_func_return () {
-  (exit \$1)
-}
-as_func_success () {
-  as_func_return 0
-}
-as_func_failure () {
-  as_func_return 1
-}
-as_func_ret_success () {
-  return 0
-}
-as_func_ret_failure () {
-  return 1
+  # Don't try to exec as it changes $[0], causing all sort of problems
+  # (the dirname of $[0] is not the place where we might find the
+  # original and so on.  Autoconf is especially sensitive to this).
+  . "./$as_me.lineno"
+  # Exit status is that of the last command.
+  exit
 }
 
-exitcode=0
-if as_func_success; then
-  :
-else
-  exitcode=1
-  echo as_func_success failed.
-fi
-
-if as_func_failure; then
-  exitcode=1
-  echo as_func_failure succeeded.
-fi
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+  case `echo 'xy\c'` in
+  *c*) ECHO_T='        ';;     # ECHO_T is single tab character.
+  xy)  ECHO_C='\c';;
+  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
+       ECHO_T='        ';;
+  esac;;
+*)
+  ECHO_N='-n';;
+esac
 
-if as_func_ret_success; then
-  :
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+  rm -f conf$$.dir/conf$$.file
 else
-  exitcode=1
-  echo as_func_ret_success failed.
+  rm -f conf$$.dir
+  mkdir conf$$.dir 2>/dev/null
 fi
-
-if as_func_ret_failure; then
-  exitcode=1
-  echo as_func_ret_failure succeeded.
+if (echo >conf$$.file) 2>/dev/null; then
+  if ln -s conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s='ln -s'
+    # ... but there are two gotchas:
+    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+    # In both cases, we have to default to `cp -p'.
+    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+      as_ln_s='cp -p'
+  elif ln conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s=ln
+  else
+    as_ln_s='cp -p'
+  fi
+else
+  as_ln_s='cp -p'
 fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
 
-if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
-  :
+if mkdir -p . 2>/dev/null; then
+  as_mkdir_p='mkdir -p "$as_dir"'
 else
-  exitcode=1
-  echo positional parameters were not saved.
+  test -d ./-p && rmdir ./-p
+  as_mkdir_p=false
 fi
 
-test \$exitcode = 0) || { (exit 1); exit 1; }
-
-(
-  as_lineno_1=\$LINENO
-  as_lineno_2=\$LINENO
-  test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" &&
-  test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; }
-") 2> /dev/null; then
-  :
+if test -x / >/dev/null 2>&1; then
+  as_test_x='test -x'
 else
-  as_candidate_shells=
-    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  case $as_dir in
-        /*)
-          for as_base in sh bash ksh sh5; do
-            as_candidate_shells="$as_candidate_shells $as_dir/$as_base"
-          done;;
-       esac
-done
-IFS=$as_save_IFS
+  if ls -dL / >/dev/null 2>&1; then
+    as_ls_L_option=L
+  else
+    as_ls_L_option=
+  fi
+  as_test_x='
+    eval sh -c '\''
+      if test -d "$1"; then
+       test -d "$1/.";
+      else
+       case $1 in #(
+       -*)set "./$1";;
+       esac;
+       case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
+       ???[sx]*):;;*)false;;esac;fi
+    '\'' sh
+  '
+fi
+as_executable_p=$as_test_x
 
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
 
-      for as_shell in $as_candidate_shells $SHELL; do
-        # Try only shells that exist, to save several forks.
-        if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
-               { ("$as_shell") 2> /dev/null <<\_ASEOF
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-  setopt NO_GLOB_SUBST
-else
-  case `(set -o) 2>/dev/null` in
-  *posix*) set -o posix ;;
-esac
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
 
-fi
 
-
-:
-_ASEOF
-}; then
-  CONFIG_SHELL=$as_shell
-              as_have_required=yes
-              if { "$as_shell" 2> /dev/null <<\_ASEOF
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-  setopt NO_GLOB_SUBST
-else
-  case `(set -o) 2>/dev/null` in
-  *posix*) set -o posix ;;
-esac
-
-fi
-
-
-:
-(as_func_return () {
-  (exit $1)
-}
-as_func_success () {
-  as_func_return 0
-}
-as_func_failure () {
-  as_func_return 1
-}
-as_func_ret_success () {
-  return 0
-}
-as_func_ret_failure () {
-  return 1
-}
-
-exitcode=0
-if as_func_success; then
-  :
-else
-  exitcode=1
-  echo as_func_success failed.
-fi
-
-if as_func_failure; then
-  exitcode=1
-  echo as_func_failure succeeded.
-fi
-
-if as_func_ret_success; then
-  :
-else
-  exitcode=1
-  echo as_func_ret_success failed.
-fi
-
-if as_func_ret_failure; then
-  exitcode=1
-  echo as_func_ret_failure succeeded.
-fi
-
-if ( set x; as_func_ret_success y && test x = "$1" ); then
-  :
-else
-  exitcode=1
-  echo positional parameters were not saved.
-fi
-
-test $exitcode = 0) || { (exit 1); exit 1; }
-
-(
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; }
-
-_ASEOF
-}; then
-  break
-fi
-
-fi
-
-      done
-
-      if test "x$CONFIG_SHELL" != x; then
-  for as_var in BASH_ENV ENV
-       do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
-       done
-       export CONFIG_SHELL
-       exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
-fi
-
-
-    if test $as_have_required = no; then
-  echo This script requires a shell more modern than all the
-      echo shells that I found on your system.  Please install a
-      echo modern shell, or manually run the script under such a
-      echo shell if you do have one.
-      { (exit 1); exit 1; }
-fi
-
-
-fi
-
-fi
-
-
-
-(eval "as_func_return () {
-  (exit \$1)
-}
-as_func_success () {
-  as_func_return 0
-}
-as_func_failure () {
-  as_func_return 1
-}
-as_func_ret_success () {
-  return 0
-}
-as_func_ret_failure () {
-  return 1
-}
-
-exitcode=0
-if as_func_success; then
-  :
-else
-  exitcode=1
-  echo as_func_success failed.
-fi
-
-if as_func_failure; then
-  exitcode=1
-  echo as_func_failure succeeded.
-fi
-
-if as_func_ret_success; then
-  :
-else
-  exitcode=1
-  echo as_func_ret_success failed.
-fi
-
-if as_func_ret_failure; then
-  exitcode=1
-  echo as_func_ret_failure succeeded.
-fi
-
-if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
-  :
-else
-  exitcode=1
-  echo positional parameters were not saved.
-fi
-
-test \$exitcode = 0") || {
-  echo No shell found that supports shell functions.
-  echo Please tell bug-autoconf@gnu.org about your system,
-  echo including any error possibly output before this message.
-  echo This can help us improve future autoconf versions.
-  echo Configuration will now proceed without shell functions.
-}
-
-
-
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
-
-  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
-  # uniformly replaced by the line number.  The first 'sed' inserts a
-  # line-number line after each line using $LINENO; the second 'sed'
-  # does the real work.  The second script uses 'N' to pair each
-  # line-number line with the line containing $LINENO, and appends
-  # trailing '-' during substitution so that $LINENO is not a special
-  # case at line end.
-  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-  # scripts with optimization help from Paolo Bonzini.  Blame Lee
-  # E. McMahon (1931-1989) for sed's syntax.  :-)
-  sed -n '
-    p
-    /[$]LINENO/=
-  ' <$as_myself |
-    sed '
-      s/[$]LINENO.*/&-/
-      t lineno
-      b
-      :lineno
-      N
-      :loop
-      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
-      t loop
-      s/-\n.*//
-    ' >$as_me.lineno &&
-  chmod +x "$as_me.lineno" ||
-    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
-   { (exit 1); exit 1; }; }
-
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensitive to this).
-  . "./$as_me.lineno"
-  # Exit status is that of the last command.
-  exit
-}
-
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
-  as_dirname=dirname
-else
-  as_dirname=false
-fi
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in
--n*)
-  case `echo 'x\c'` in
-  *c*) ECHO_T='        ';;     # ECHO_T is single tab character.
-  *)   ECHO_C='\c';;
-  esac;;
-*)
-  ECHO_N='-n';;
-esac
-if expr a : '\(a\)' >/dev/null 2>&1 &&
-   test "X`expr 00001 : '.*\(...\)'`" = X001; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
-  rm -f conf$$.dir/conf$$.file
-else
-  rm -f conf$$.dir
-  mkdir conf$$.dir 2>/dev/null
-fi
-if (echo >conf$$.file) 2>/dev/null; then
-  if ln -s conf$$.file conf$$ 2>/dev/null; then
-    as_ln_s='ln -s'
-    # ... but there are two gotchas:
-    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
-    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-    # In both cases, we have to default to `cp -p'.
-    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-      as_ln_s='cp -p'
-  elif ln conf$$.file conf$$ 2>/dev/null; then
-    as_ln_s=ln
-  else
-    as_ln_s='cp -p'
-  fi
-else
-  as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-if mkdir -p . 2>/dev/null; then
-  as_mkdir_p=:
-else
-  test -d ./-p && rmdir ./-p
-  as_mkdir_p=false
-fi
-
-if test -x / >/dev/null 2>&1; then
-  as_test_x='test -x'
-else
-  if ls -dL / >/dev/null 2>&1; then
-    as_ls_L_option=L
-  else
-    as_ls_L_option=
-  fi
-  as_test_x='
-    eval sh -c '\''
-      if test -d "$1"; then
-       test -d "$1/.";
-      else
-       case $1 in
-       -*)set "./$1";;
-       esac;
-       case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
-       ???[sx]*):;;*)false;;esac;fi
-    '\'' sh
-  '
-fi
-as_executable_p=$as_test_x
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-
-exec 7<&0 </dev/null 6>&1
+exec 7<&0 </dev/null 6>&1
 
 # Name of the host.
 # hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
@@ -589,7 +542,6 @@ cross_compiling=no
 subdirs=
 MFLAGS=
 MAKEFLAGS=
-SHELL=${CONFIG_SHELL-/bin/sh}
 
 # Identity of this package.
 PACKAGE_NAME=
@@ -597,6 +549,7 @@ PACKAGE_TARNAME=
 PACKAGE_VERSION=
 PACKAGE_STRING=
 PACKAGE_BUGREPORT=
+PACKAGE_URL=
 
 ac_unique_file="ircd/ircd.c"
 ac_default_prefix=$HOME
@@ -706,6 +659,7 @@ bindir
 program_transform_name
 prefix
 exec_prefix
+PACKAGE_URL
 PACKAGE_BUGREPORT
 PACKAGE_STRING
 PACKAGE_VERSION
@@ -858,8 +812,7 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2
-   { (exit 1); exit 1; }; }
+      as_fn_error "invalid feature name: $ac_useropt"
     ac_useropt_orig=$ac_useropt
     ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
@@ -885,8 +838,7 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2
-   { (exit 1); exit 1; }; }
+      as_fn_error "invalid feature name: $ac_useropt"
     ac_useropt_orig=$ac_useropt
     ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
@@ -1090,8 +1042,7 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2
-   { (exit 1); exit 1; }; }
+      as_fn_error "invalid package name: $ac_useropt"
     ac_useropt_orig=$ac_useropt
     ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
@@ -1107,8 +1058,7 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2
-   { (exit 1); exit 1; }; }
+      as_fn_error "invalid package name: $ac_useropt"
     ac_useropt_orig=$ac_useropt
     ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
@@ -1138,17 +1088,17 @@ do
   | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
     x_libraries=$ac_optarg ;;
 
-  -*) { $as_echo "$as_me: error: unrecognized option: $ac_option
-Try \`$0 --help' for more information." >&2
-   { (exit 1); exit 1; }; }
+  -*) as_fn_error "unrecognized option: \`$ac_option'
+Try \`$0 --help' for more information."
     ;;
 
   *=*)
     ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
     # Reject names that are not valid shell variable names.
-    expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
-      { $as_echo "$as_me: error: invalid variable name: $ac_envvar" >&2
-   { (exit 1); exit 1; }; }
+    case $ac_envvar in #(
+      '' | [0-9]* | *[!_$as_cr_alnum]* )
+      as_fn_error "invalid variable name: \`$ac_envvar'" ;;
+    esac
     eval $ac_envvar=\$ac_optarg
     export $ac_envvar ;;
 
@@ -1165,15 +1115,13 @@ done
 
 if test -n "$ac_prev"; then
   ac_option=--`echo $ac_prev | sed 's/_/-/g'`
-  { $as_echo "$as_me: error: missing argument to $ac_option" >&2
-   { (exit 1); exit 1; }; }
+  as_fn_error "missing argument to $ac_option"
 fi
 
 if test -n "$ac_unrecognized_opts"; then
   case $enable_option_checking in
     no) ;;
-    fatal) { $as_echo "$as_me: error: unrecognized options: $ac_unrecognized_opts" >&2
-   { (exit 1); exit 1; }; } ;;
+    fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;;
     *)     $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
   esac
 fi
@@ -1196,8 +1144,7 @@ do
     [\\/$]* | ?:[\\/]* )  continue;;
     NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
   esac
-  { $as_echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
-   { (exit 1); exit 1; }; }
+  as_fn_error "expected an absolute directory name for --$ac_var: $ac_val"
 done
 
 # There might be people who depend on the old broken behavior: `$host'
@@ -1227,11 +1174,9 @@ test "$silent" = yes && exec 6>/dev/null
 ac_pwd=`pwd` && test -n "$ac_pwd" &&
 ac_ls_di=`ls -di .` &&
 ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
-  { $as_echo "$as_me: error: working directory cannot be determined" >&2
-   { (exit 1); exit 1; }; }
+  as_fn_error "working directory cannot be determined"
 test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
-  { $as_echo "$as_me: error: pwd does not report name of working directory" >&2
-   { (exit 1); exit 1; }; }
+  as_fn_error "pwd does not report name of working directory"
 
 
 # Find the source files, if location was not specified.
@@ -1270,13 +1215,11 @@ else
 fi
 if test ! -r "$srcdir/$ac_unique_file"; then
   test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
-  { $as_echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
-   { (exit 1); exit 1; }; }
+  as_fn_error "cannot find sources ($ac_unique_file) in $srcdir"
 fi
 ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
 ac_abs_confdir=`(
-       cd "$srcdir" && test -r "./$ac_unique_file" || { $as_echo "$as_me: error: $ac_msg" >&2
-   { (exit 1); exit 1; }; }
+       cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg"
        pwd)`
 # When building in place, set srcdir=.
 if test "$ac_abs_confdir" = "$ac_pwd"; then
@@ -1422,6 +1365,7 @@ Some influential environment variables:
 Use these variables to override the choices made by `configure' or to help
 it to find libraries and programs with nonstandard names/locations.
 
+Report bugs to the package provider.
 _ACEOF
 ac_status=$?
 fi
@@ -1485,8151 +1429,3865 @@ test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
 configure
-generated by GNU Autoconf 2.63
+generated by GNU Autoconf 2.64
 
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+Copyright (C) 2009 Free Software Foundation, Inc.
 This configure script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it.
 _ACEOF
   exit
 fi
-cat >config.log <<_ACEOF
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
 
-It was created by $as_me, which was
-generated by GNU Autoconf 2.63.  Invocation command line was
-
-  $ $0 $@
+## ------------------------ ##
+## Autoconf initialization. ##
+## ------------------------ ##
 
-_ACEOF
-exec 5>>config.log
+# ac_fn_c_try_compile LINENO
+# --------------------------
+# Try to compile conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_compile ()
 {
-cat <<_ASUNAME
-## --------- ##
-## Platform. ##
-## --------- ##
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  rm -f conftest.$ac_objext
+  if { { ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compile") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
+       ac_retval=1
+fi
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  return $ac_retval
 
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
+} # ac_fn_c_try_compile
 
-/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
-/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
-/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
-/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
-/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
+# ac_fn_c_try_link LINENO
+# -----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_link ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  rm -f conftest.$ac_objext conftest$ac_exeext
+  if { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-_ASUNAME
-
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  $as_echo "PATH: $as_dir"
-done
-IFS=$as_save_IFS
-
-} >&5
-
-cat >&5 <<_ACEOF
+       ac_retval=1
+fi
+  # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
+  # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
+  # interfere with the next link command; also delete a directory that is
+  # left behind by Apple's compiler.  We do this before executing the actions.
+  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  return $ac_retval
 
+} # ac_fn_c_try_link
 
-## ----------- ##
-## Core tests. ##
-## ----------- ##
+# ac_fn_c_check_func LINENO FUNC VAR
+# ----------------------------------
+# Tests whether FUNC exists, setting the cache variable VAR accordingly
+ac_fn_c_check_func ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $2 innocuous_$2
 
-_ACEOF
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $2 (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
 
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
 
-# Keep a trace of the command line.
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Strip out --silent because we don't want to record it for future runs.
-# Also quote any args containing shell meta-characters.
-# Make two passes to allow for proper duplicate-argument suppression.
-ac_configure_args=
-ac_configure_args0=
-ac_configure_args1=
-ac_must_keep_next=false
-for ac_pass in 1 2
-do
-  for ac_arg
-  do
-    case $ac_arg in
-    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
-    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-    | -silent | --silent | --silen | --sile | --sil)
-      continue ;;
-    *\'*)
-      ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
-    esac
-    case $ac_pass in
-    1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
-    2)
-      ac_configure_args1="$ac_configure_args1 '$ac_arg'"
-      if test $ac_must_keep_next = true; then
-       ac_must_keep_next=false # Got value, back to normal.
-      else
-       case $ac_arg in
-         *=* | --config-cache | -C | -disable-* | --disable-* \
-         | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
-         | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
-         | -with-* | --with-* | -without-* | --without-* | --x)
-           case "$ac_configure_args0 " in
-             "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
-           esac
-           ;;
-         -* ) ac_must_keep_next=true ;;
-       esac
-      fi
-      ac_configure_args="$ac_configure_args '$ac_arg'"
-      ;;
-    esac
-  done
-done
-$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
-$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
+#undef $2
 
-# When interrupted or exit'd, cleanup temporary files, and complete
-# config.log.  We remove comments because anyway the quotes in there
-# would cause problems or look ugly.
-# WARNING: Use '\'' to represent an apostrophe within the trap.
-# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
-trap 'exit_status=$?
-  # Save into config.log some information that might help in debugging.
-  {
-    echo
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $2 ();
+/* 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_$2 || defined __stub___$2
+choke me
+#endif
 
-    cat <<\_ASBOX
-## ---------------- ##
-## Cache variables. ##
-## ---------------- ##
-_ASBOX
-    echo
-    # The following way of writing the cache mishandles newlines in values,
-(
-  for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
-    eval ac_val=\$$ac_var
-    case $ac_val in #(
-    *${as_nl}*)
-      case $ac_var in #(
-      *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
-      esac
-      case $ac_var in #(
-      _ | IFS | as_nl) ;; #(
-      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
-      *) $as_unset $ac_var ;;
-      esac ;;
-    esac
-  done
-  (set) 2>&1 |
-    case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
-    *${as_nl}ac_space=\ *)
-      sed -n \
-       "s/'\''/'\''\\\\'\'''\''/g;
-         s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
-      ;; #(
-    *)
-      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
-      ;;
-    esac |
-    sort
-)
-    echo
+int
+main ()
+{
+return $2 ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  eval "$3=yes"
+else
+  eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
 
-    cat <<\_ASBOX
-## ----------------- ##
-## Output variables. ##
-## ----------------- ##
-_ASBOX
-    echo
-    for ac_var in $ac_subst_vars
-    do
-      eval ac_val=\$$ac_var
-      case $ac_val in
-      *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
-      esac
-      $as_echo "$ac_var='\''$ac_val'\''"
-    done | sort
-    echo
+} # ac_fn_c_check_func
 
-    if test -n "$ac_subst_files"; then
-      cat <<\_ASBOX
-## ------------------- ##
-## File substitutions. ##
-## ------------------- ##
-_ASBOX
-      echo
-      for ac_var in $ac_subst_files
-      do
-       eval ac_val=\$$ac_var
-       case $ac_val in
-       *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
-       esac
-       $as_echo "$ac_var='\''$ac_val'\''"
-      done | sort
-      echo
-    fi
+# ac_fn_c_try_cpp LINENO
+# ----------------------
+# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_cpp ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if { { ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } >/dev/null && {
+        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-    if test -s confdefs.h; then
-      cat <<\_ASBOX
-## ----------- ##
-## confdefs.h. ##
-## ----------- ##
-_ASBOX
-      echo
-      cat confdefs.h
-      echo
-    fi
-    test "$ac_signal" != 0 &&
-      $as_echo "$as_me: caught signal $ac_signal"
-    $as_echo "$as_me: exit $exit_status"
-  } >&5
-  rm -f core *.core core.conftest.* &&
-    rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
-    exit $exit_status
-' 0
-for ac_signal in 1 2 13 15; do
-  trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
-done
-ac_signal=0
+    ac_retval=1
+fi
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  return $ac_retval
 
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -f -r conftest* confdefs.h
+} # ac_fn_c_try_cpp
 
-# Predefined preprocessor variables.
+# ac_fn_c_try_run LINENO
+# ----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
+# that executables *can* be run.
+ac_fn_c_try_run ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
+  { { case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: program exited with status $ac_status" >&5
+       $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_NAME "$PACKAGE_NAME"
-_ACEOF
+       ac_retval=$ac_status
+fi
+  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  return $ac_retval
 
+} # ac_fn_c_try_run
 
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists, giving a warning if it cannot be compiled using
+# the include files in INCLUDES and setting the cache variable VAR
+# accordingly.
+ac_fn_c_check_header_mongrel ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+  $as_echo_n "(cached) " >&6
+fi
+eval ac_res=\$$3
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
+$as_echo_n "checking $2 usability... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+#include <$2>
 _ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_header_compiler=yes
+else
+  ac_header_compiler=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
 
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_VERSION "$PACKAGE_VERSION"
+# Is the header present?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
+$as_echo_n "checking $2 presence... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <$2>
 _ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+  ac_header_preproc=yes
+else
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
 
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
+  yes:no: )
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+    ;;
+  no:yes:* )
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $2:     check for missing prerequisite headers?" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+    ;;
+esac
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+  $as_echo_n "(cached) " >&6
+else
+  eval "$3=\$ac_header_compiler"
+fi
+eval ac_res=\$$3
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+fi
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
 
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_STRING "$PACKAGE_STRING"
-_ACEOF
-
+} # ac_fn_c_check_header_mongrel
 
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists and can be compiled using the include files in
+# INCLUDES, setting the cache variable VAR accordingly.
+ac_fn_c_check_header_compile ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+#include <$2>
 _ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  eval "$3=yes"
+else
+  eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
 
+} # ac_fn_c_check_header_compile
 
-# Let the site file select an alternate cache file if it wants to.
-# Prefer an explicitly selected file to automatically selected ones.
-ac_site_file1=NONE
-ac_site_file2=NONE
-if test -n "$CONFIG_SITE"; then
-  ac_site_file1=$CONFIG_SITE
-elif test "x$prefix" != xNONE; then
-  ac_site_file1=$prefix/share/config.site
-  ac_site_file2=$prefix/etc/config.site
+# ac_fn_c_check_type LINENO TYPE VAR INCLUDES
+# -------------------------------------------
+# Tests whether TYPE exists after having included INCLUDES, setting cache
+# variable VAR accordingly.
+ac_fn_c_check_type ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+  $as_echo_n "(cached) " >&6
 else
-  ac_site_file1=$ac_default_prefix/share/config.site
-  ac_site_file2=$ac_default_prefix/etc/config.site
-fi
-for ac_site_file in "$ac_site_file1" "$ac_site_file2"
-do
-  test "x$ac_site_file" = xNONE && continue
-  if test -r "$ac_site_file"; then
-    { $as_echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
-$as_echo "$as_me: loading site script $ac_site_file" >&6;}
-    sed 's/^/| /' "$ac_site_file" >&5
-    . "$ac_site_file"
-  fi
-done
+  eval "$3=no"
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+if (sizeof ($2))
+        return 0;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+if (sizeof (($2)))
+           return 0;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
 
-if test -r "$cache_file"; then
-  # Some versions of bash will fail to source /dev/null (special
-  # files actually), so we avoid doing that.
-  if test -f "$cache_file"; then
-    { $as_echo "$as_me:$LINENO: loading cache $cache_file" >&5
-$as_echo "$as_me: loading cache $cache_file" >&6;}
-    case $cache_file in
-      [\\/]* | ?:[\\/]* ) . "$cache_file";;
-      *)                      . "./$cache_file";;
-    esac
-  fi
 else
-  { $as_echo "$as_me:$LINENO: creating cache $cache_file" >&5
-$as_echo "$as_me: creating cache $cache_file" >&6;}
-  >$cache_file
+  eval "$3=yes"
 fi
-
-# Check that the precious variables saved in the cache have kept the same
-# value.
-ac_cache_corrupted=false
-for ac_var in $ac_precious_vars; do
-  eval ac_old_set=\$ac_cv_env_${ac_var}_set
-  eval ac_new_set=\$ac_env_${ac_var}_set
-  eval ac_old_val=\$ac_cv_env_${ac_var}_value
-  eval ac_new_val=\$ac_env_${ac_var}_value
-  case $ac_old_set,$ac_new_set in
-    set,)
-      { $as_echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,set)
-      { $as_echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,);;
-    *)
-      if test "x$ac_old_val" != "x$ac_new_val"; then
-       # differences in whitespace do not lead to failure.
-       ac_old_val_w=`echo x $ac_old_val`
-       ac_new_val_w=`echo x $ac_new_val`
-       if test "$ac_old_val_w" != "$ac_new_val_w"; then
-         { $as_echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
-$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
-         ac_cache_corrupted=:
-       else
-         { $as_echo "$as_me:$LINENO: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
-$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
-         eval $ac_var=\$ac_old_val
-       fi
-       { $as_echo "$as_me:$LINENO:   former value:  \`$ac_old_val'" >&5
-$as_echo "$as_me:   former value:  \`$ac_old_val'" >&2;}
-       { $as_echo "$as_me:$LINENO:   current value: \`$ac_new_val'" >&5
-$as_echo "$as_me:   current value: \`$ac_new_val'" >&2;}
-      fi;;
-  esac
-  # Pass precious variables to config.status.
-  if test "$ac_new_set" = set; then
-    case $ac_new_val in
-    *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
-    *) ac_arg=$ac_var=$ac_new_val ;;
-    esac
-    case " $ac_configure_args " in
-      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
-      *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
-    esac
-  fi
-done
-if $ac_cache_corrupted; then
-  { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-  { $as_echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
-$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
-  { { $as_echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
-$as_echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
-   { (exit 1); exit 1; }; }
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
+eval ac_res=\$$3
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
 
+} # ac_fn_c_check_type
 
+# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES
+# --------------------------------------------
+# Tries to find the compile-time value of EXPR in a program that includes
+# INCLUDES, setting VAR accordingly. Returns whether the value could be
+# computed
+ac_fn_c_compute_int ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if test "$cross_compiling" = yes; then
+    # Depending upon the size, compute the lo and hi bounds.
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) >= 0)];
+test_array [0] = 0
 
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_lo=0 ac_mid=0
+  while :; do
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) <= $ac_mid)];
+test_array [0] = 0
 
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_hi=$ac_mid; break
+else
+  as_fn_arith $ac_mid + 1 && ac_lo=$as_val
+                       if test $ac_lo -le $ac_mid; then
+                         ac_lo= ac_hi=
+                         break
+                       fi
+                       as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) < 0)];
+test_array [0] = 0
 
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_hi=-1 ac_mid=-1
+  while :; do
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) >= $ac_mid)];
+test_array [0] = 0
 
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_lo=$ac_mid; break
+else
+  as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val
+                       if test $ac_mid -le $ac_hi; then
+                         ac_lo= ac_hi=
+                         break
+                       fi
+                       as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  ac_lo= ac_hi=
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+# Binary search between lo and hi bounds.
+while test "x$ac_lo" != "x$ac_hi"; do
+  as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) <= $ac_mid)];
+test_array [0] = 0
 
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_hi=$ac_mid
+else
+  as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+case $ac_lo in #((
+?*) eval "$3=\$ac_lo"; ac_retval=0 ;;
+'') ac_retval=1 ;;
+esac
+  else
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+static long int longval () { return $2; }
+static unsigned long int ulongval () { return $2; }
+#include <stdio.h>
+#include <stdlib.h>
+int
+main ()
+{
 
+  FILE *f = fopen ("conftest.val", "w");
+  if (! f)
+    return 1;
+  if (($2) < 0)
+    {
+      long int i = longval ();
+      if (i != ($2))
+       return 1;
+      fprintf (f, "%ld", i);
+    }
+  else
+    {
+      unsigned long int i = ulongval ();
+      if (i != ($2))
+       return 1;
+      fprintf (f, "%lu", i);
+    }
+  /* Do not output a trailing newline, as this causes \r\n confusion
+     on some platforms.  */
+  return ferror (f) || fclose (f) != 0;
 
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  echo >>conftest.val; read $3 <conftest.val; ac_retval=0
+else
+  ac_retval=1
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f conftest.val
 
+  fi
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  return $ac_retval
 
+} # ac_fn_c_compute_int
+cat >config.log <<_ACEOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
 
+It was created by $as_me, which was
+generated by GNU Autoconf 2.64.  Invocation command line was
 
+  $ $0 $@
 
+_ACEOF
+exec 5>>config.log
+{
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
 
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
 
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
 
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-
-{ $as_echo "$as_me:$LINENO: checking for installation prefix" >&5
-$as_echo_n "checking for installation prefix... " >&6; }
-if test "${unet_cv_prefix+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  unet_cv_prefix=$HOME
-fi
-
-if test x"$prefix" != xNONE; then
-    unet_cv_prefix=$prefix
-fi
-{ $as_echo "$as_me:$LINENO: result: $unet_cv_prefix" >&5
-$as_echo "$unet_cv_prefix" >&6; }
-ac_default_prefix=$unet_cv_prefix
-
-ac_config_headers="$ac_config_headers config.h"
-
-
-
-
-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
-  elif test -f "$ac_dir/shtool"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/shtool install -c"
-    break
-  fi
-done
-if test -z "$ac_aux_dir"; then
-  { { $as_echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5
-$as_echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-# These three variables are undocumented and unsupported,
-# and are intended to be withdrawn in a future Autoconf release.
-# They can cause serious problems if a builder's source tree is in a directory
-# whose full name contains unusual characters.
-ac_config_guess="$SHELL $ac_aux_dir/config.guess"  # Please don't use this var.
-ac_config_sub="$SHELL $ac_aux_dir/config.sub"  # Please don't use this var.
-ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
-
-
-# Make sure we can run config.sub.
-$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
-  { { $as_echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5
-$as_echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;}
-   { (exit 1); exit 1; }; }
-
-{ $as_echo "$as_me:$LINENO: checking build system type" >&5
-$as_echo_n "checking build system type... " >&6; }
-if test "${ac_cv_build+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_build_alias=$build_alias
-test "x$ac_build_alias" = x &&
-  ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
-test "x$ac_build_alias" = x &&
-  { { $as_echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
-$as_echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
-   { (exit 1); exit 1; }; }
-ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
-  { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5
-$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;}
-   { (exit 1); exit 1; }; }
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_build" >&5
-$as_echo "$ac_cv_build" >&6; }
-case $ac_cv_build in
-*-*-*) ;;
-*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical build" >&5
-$as_echo "$as_me: error: invalid value of canonical build" >&2;}
-   { (exit 1); exit 1; }; };;
-esac
-build=$ac_cv_build
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_build
-shift
-build_cpu=$1
-build_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-build_os=$*
-IFS=$ac_save_IFS
-case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
-
-
-{ $as_echo "$as_me:$LINENO: checking host system type" >&5
-$as_echo_n "checking host system type... " >&6; }
-if test "${ac_cv_host+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  if test "x$host_alias" = x; then
-  ac_cv_host=$ac_cv_build
-else
-  ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
-    { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5
-$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_host" >&5
-$as_echo "$ac_cv_host" >&6; }
-case $ac_cv_host in
-*-*-*) ;;
-*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical host" >&5
-$as_echo "$as_me: error: invalid value of canonical host" >&2;}
-   { (exit 1); exit 1; }; };;
-esac
-host=$ac_cv_host
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_host
-shift
-host_cpu=$1
-host_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-host_os=$*
-IFS=$ac_save_IFS
-case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
-
+/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
+/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
+/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
+/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
+/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
 
+_ASUNAME
 
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_CC="${ac_tool_prefix}gcc"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
+    $as_echo "PATH: $as_dir"
+  done
 IFS=$as_save_IFS
 
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:$LINENO: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-fi
+} >&5
 
+cat >&5 <<_ACEOF
 
-fi
-if test -z "$ac_cv_prog_CC"; then
-  ac_ct_CC=$CC
-  # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_CC="gcc"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
 
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-fi
+## ----------- ##
+## Core tests. ##
+## ----------- ##
 
-  if test "x$ac_ct_CC" = x; then
-    CC=""
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    CC=$ac_ct_CC
-  fi
-else
-  CC="$ac_cv_prog_CC"
-fi
+_ACEOF
 
-if test -z "$CC"; then
-          if test -n "$ac_tool_prefix"; then
-    # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
+# Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
+ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
+ac_must_keep_next=false
+for ac_pass in 1 2
 do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_CC="${ac_tool_prefix}cc"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
+  for ac_arg
+  do
+    case $ac_arg in
+    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+    | -silent | --silent | --silen | --sile | --sil)
+      continue ;;
+    *\'*)
+      ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    esac
+    case $ac_pass in
+    1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
+    2)
+      as_fn_append ac_configure_args1 " '$ac_arg'"
+      if test $ac_must_keep_next = true; then
+       ac_must_keep_next=false # Got value, back to normal.
+      else
+       case $ac_arg in
+         *=* | --config-cache | -C | -disable-* | --disable-* \
+         | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+         | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+         | -with-* | --with-* | -without-* | --without-* | --x)
+           case "$ac_configure_args0 " in
+             "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+           esac
+           ;;
+         -* ) ac_must_keep_next=true ;;
+       esac
+      fi
+      as_fn_append ac_configure_args " '$ac_arg'"
+      ;;
+    esac
+  done
 done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:$LINENO: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  fi
-fi
-if test -z "$CC"; then
-  # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-  ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
-       ac_prog_rejected=yes
-       continue
-     fi
-    ac_cv_prog_CC="cc"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-if test $ac_prog_rejected = yes; then
-  # We found a bogon in the path, so make sure we never use it.
-  set dummy $ac_cv_prog_CC
-  shift
-  if test $# != 0; then
-    # We chose a different compiler from the bogus one.
-    # However, it has the same basename, so the bogon will be chosen
-    # first if we set CC to just the basename; use the full file name.
-    shift
-    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
-  fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:$LINENO: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$CC"; then
-  if test -n "$ac_tool_prefix"; then
-  for ac_prog in cl.exe
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:$LINENO: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-fi
+{ ac_configure_args0=; unset ac_configure_args0;}
+{ ac_configure_args1=; unset ac_configure_args1;}
 
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log.  We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Use '\'' to represent an apostrophe within the trap.
+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
+trap 'exit_status=$?
+  # Save into config.log some information that might help in debugging.
+  {
+    echo
 
-    test -n "$CC" && break
+    cat <<\_ASBOX
+## ---------------- ##
+## Cache variables. ##
+## ---------------- ##
+_ASBOX
+    echo
+    # The following way of writing the cache mishandles newlines in values,
+(
+  for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
+    eval ac_val=\$$ac_var
+    case $ac_val in #(
+    *${as_nl}*)
+      case $ac_var in #(
+      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+      esac
+      case $ac_var in #(
+      _ | IFS | as_nl) ;; #(
+      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+      *) { eval $ac_var=; unset $ac_var;} ;;
+      esac ;;
+    esac
   done
-fi
-if test -z "$CC"; then
-  ac_ct_CC=$CC
-  for ac_prog in cl.exe
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_CC="$ac_prog"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
+  (set) 2>&1 |
+    case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
+    *${as_nl}ac_space=\ *)
+      sed -n \
+       "s/'\''/'\''\\\\'\'''\''/g;
+         s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
+      ;; #(
+    *)
+      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+      ;;
+    esac |
+    sort
+)
+    echo
 
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-fi
+    cat <<\_ASBOX
+## ----------------- ##
+## Output variables. ##
+## ----------------- ##
+_ASBOX
+    echo
+    for ac_var in $ac_subst_vars
+    do
+      eval ac_val=\$$ac_var
+      case $ac_val in
+      *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+      esac
+      $as_echo "$ac_var='\''$ac_val'\''"
+    done | sort
+    echo
 
+    if test -n "$ac_subst_files"; then
+      cat <<\_ASBOX
+## ------------------- ##
+## File substitutions. ##
+## ------------------- ##
+_ASBOX
+      echo
+      for ac_var in $ac_subst_files
+      do
+       eval ac_val=\$$ac_var
+       case $ac_val in
+       *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+       esac
+       $as_echo "$ac_var='\''$ac_val'\''"
+      done | sort
+      echo
+    fi
 
-  test -n "$ac_ct_CC" && break
+    if test -s confdefs.h; then
+      cat <<\_ASBOX
+## ----------- ##
+## confdefs.h. ##
+## ----------- ##
+_ASBOX
+      echo
+      cat confdefs.h
+      echo
+    fi
+    test "$ac_signal" != 0 &&
+      $as_echo "$as_me: caught signal $ac_signal"
+    $as_echo "$as_me: exit $exit_status"
+  } >&5
+  rm -f core *.core core.conftest.* &&
+    rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
+    exit $exit_status
+' 0
+for ac_signal in 1 2 13 15; do
+  trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
 done
+ac_signal=0
 
-  if test "x$ac_ct_CC" = x; then
-    CC=""
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    CC=$ac_ct_CC
-  fi
-fi
-
-fi
-
-
-test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }; }
-
-# Provide some information about the compiler.
-$as_echo "$as_me:$LINENO: checking for C compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-{ (ac_try="$ac_compiler --version >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compiler --version >&5") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (ac_try="$ac_compiler -v >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compiler -v >&5") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (ac_try="$ac_compiler -V >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compiler -V >&5") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
-# Try to create an executable without -o first, disregard a.out.
-# It will help us diagnose broken compilers, and finding out an intuition
-# of exeext.
-{ $as_echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
-$as_echo_n "checking for C compiler default output file name... " >&6; }
-ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
-
-# The possible output files:
-ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
-
-ac_rmfiles=
-for ac_file in $ac_files
-do
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
-    * ) ac_rmfiles="$ac_rmfiles $ac_file";;
-  esac
-done
-rm -f $ac_rmfiles
-
-if { (ac_try="$ac_link_default"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link_default") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-  # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
-# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
-# in a Makefile.  We should not override ac_cv_exeext if it was cached,
-# so that the user can short-circuit this test for compilers unknown to
-# Autoconf.
-for ac_file in $ac_files ''
-do
-  test -f "$ac_file" || continue
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
-       ;;
-    [ab].out )
-       # We found the default executable, but exeext='' is most
-       # certainly right.
-       break;;
-    *.* )
-        if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
-       then :; else
-          ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-       fi
-       # We set ac_cv_exeext here because the later test for it is not
-       # safe: cross compilers may not add the suffix if given an `-o'
-       # argument, so we may need to know it at that point already.
-       # Even if this section looks crufty: it has the advantage of
-       # actually working.
-       break;;
-    * )
-       break;;
-  esac
-done
-test "$ac_cv_exeext" = no && ac_cv_exeext=
-
-else
-  ac_file=''
-fi
-
-{ $as_echo "$as_me:$LINENO: result: $ac_file" >&5
-$as_echo "$ac_file" >&6; }
-if test -z "$ac_file"; then
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: C compiler cannot create executables
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: C compiler cannot create executables
-See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }; }
-fi
-
-ac_exeext=$ac_cv_exeext
-
-# Check that the compiler produces executables we can run.  If not, either
-# the compiler is broken, or we cross compile.
-{ $as_echo "$as_me:$LINENO: checking whether the C compiler works" >&5
-$as_echo_n "checking whether the C compiler works... " >&6; }
-# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
-# If not cross compiling, check that we can run a simple program.
-if test "$cross_compiling" != yes; then
-  if { ac_try='./$ac_file'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-    cross_compiling=no
-  else
-    if test "$cross_compiling" = maybe; then
-       cross_compiling=yes
-    else
-       { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }; }
-    fi
-  fi
-fi
-{ $as_echo "$as_me:$LINENO: result: yes" >&5
-$as_echo "yes" >&6; }
-
-rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
-ac_clean_files=$ac_clean_files_save
-# Check that the compiler produces executables we can run.  If not, either
-# the compiler is broken, or we cross compile.
-{ $as_echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
-$as_echo_n "checking whether we are cross compiling... " >&6; }
-{ $as_echo "$as_me:$LINENO: result: $cross_compiling" >&5
-$as_echo "$cross_compiling" >&6; }
-
-{ $as_echo "$as_me:$LINENO: checking for suffix of executables" >&5
-$as_echo_n "checking for suffix of executables... " >&6; }
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-  # If both `conftest.exe' and `conftest' are `present' (well, observable)
-# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
-# work properly (i.e., refer to `conftest.exe'), while it won't with
-# `rm'.
-for ac_file in conftest.exe conftest conftest.*; do
-  test -f "$ac_file" || continue
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
-    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-         break;;
-    * ) break;;
-  esac
-done
-else
-  { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }; }
-fi
-
-rm -f conftest$ac_cv_exeext
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
-$as_echo "$ac_cv_exeext" >&6; }
-
-rm -f conftest.$ac_ext
-EXEEXT=$ac_cv_exeext
-ac_exeext=$EXEEXT
-{ $as_echo "$as_me:$LINENO: checking for suffix of object files" >&5
-$as_echo_n "checking for suffix of object files... " >&6; }
-if test "${ac_cv_objext+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.o conftest.obj
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-  for ac_file in conftest.o conftest.obj conftest.*; do
-  test -f "$ac_file" || continue;
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
-    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
-       break;;
-  esac
-done
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }; }
-fi
-
-rm -f conftest.$ac_cv_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
-$as_echo "$ac_cv_objext" >&6; }
-OBJEXT=$ac_cv_objext
-ac_objext=$OBJEXT
-{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
-$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if test "${ac_cv_c_compiler_gnu+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-#ifndef __GNUC__
-       choke me
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_compiler_gnu=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_compiler_gnu=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
-$as_echo "$ac_cv_c_compiler_gnu" >&6; }
-if test $ac_compiler_gnu = yes; then
-  GCC=yes
-else
-  GCC=
-fi
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
-$as_echo_n "checking whether $CC accepts -g... " >&6; }
-if test "${ac_cv_prog_cc_g+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_save_c_werror_flag=$ac_c_werror_flag
-   ac_c_werror_flag=yes
-   ac_cv_prog_cc_g=no
-   CFLAGS="-g"
-   cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_prog_cc_g=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       CFLAGS=""
-      cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_c_werror_flag=$ac_save_c_werror_flag
-        CFLAGS="-g"
-        cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_prog_cc_g=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-   ac_c_werror_flag=$ac_save_c_werror_flag
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
-$as_echo "$ac_cv_prog_cc_g" >&6; }
-if test "$ac_test_CFLAGS" = set; then
-  CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
-  if test "$GCC" = yes; then
-    CFLAGS="-g -O2"
-  else
-    CFLAGS="-g"
-  fi
-else
-  if test "$GCC" = yes; then
-    CFLAGS="-O2"
-  else
-    CFLAGS=
-  fi
-fi
-{ $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5
-$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if test "${ac_cv_prog_cc_c89+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_prog_cc_c89=no
-ac_save_CC=$CC
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stdarg.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
-     char **p;
-     int i;
-{
-  return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
-  char *s;
-  va_list v;
-  va_start (v,p);
-  s = g (p, va_arg (v,int));
-  va_end (v);
-  return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
-   function prototypes and stuff, but not '\xHH' hex character constants.
-   These don't provoke an error unfortunately, instead are silently treated
-   as 'x'.  The following induces an error, until -std is added to get
-   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
-   array size at least.  It's necessary to write '\x00'==0 to get something
-   that's true only with -std.  */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
-   inside strings and character constants.  */
-#define FOO(x) 'x'
-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
-  ;
-  return 0;
-}
-_ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
-       -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
-  CC="$ac_save_CC $ac_arg"
-  rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_prog_cc_c89=$ac_arg
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext
-  test "x$ac_cv_prog_cc_c89" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
-
-fi
-# AC_CACHE_VAL
-case "x$ac_cv_prog_cc_c89" in
-  x)
-    { $as_echo "$as_me:$LINENO: result: none needed" >&5
-$as_echo "none needed" >&6; } ;;
-  xno)
-    { $as_echo "$as_me:$LINENO: result: unsupported" >&5
-$as_echo "unsupported" >&6; } ;;
-  *)
-    CC="$CC $ac_cv_prog_cc_c89"
-    { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5
-$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
-esac
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_CC="${ac_tool_prefix}gcc"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:$LINENO: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_CC"; then
-  ac_ct_CC=$CC
-  # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_CC="gcc"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_CC" = x; then
-    CC=""
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    CC=$ac_ct_CC
-  fi
-else
-  CC="$ac_cv_prog_CC"
-fi
-
-if test -z "$CC"; then
-          if test -n "$ac_tool_prefix"; then
-    # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_CC="${ac_tool_prefix}cc"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:$LINENO: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  fi
-fi
-if test -z "$CC"; then
-  # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-  ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
-       ac_prog_rejected=yes
-       continue
-     fi
-    ac_cv_prog_CC="cc"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-if test $ac_prog_rejected = yes; then
-  # We found a bogon in the path, so make sure we never use it.
-  set dummy $ac_cv_prog_CC
-  shift
-  if test $# != 0; then
-    # We chose a different compiler from the bogus one.
-    # However, it has the same basename, so the bogon will be chosen
-    # first if we set CC to just the basename; use the full file name.
-    shift
-    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
-  fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:$LINENO: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$CC"; then
-  if test -n "$ac_tool_prefix"; then
-  for ac_prog in cl.exe
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:$LINENO: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    test -n "$CC" && break
-  done
-fi
-if test -z "$CC"; then
-  ac_ct_CC=$CC
-  for ac_prog in cl.exe
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_CC="$ac_prog"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$ac_ct_CC" && break
-done
-
-  if test "x$ac_ct_CC" = x; then
-    CC=""
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    CC=$ac_ct_CC
-  fi
-fi
-
-fi
-
-
-test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }; }
-
-# Provide some information about the compiler.
-$as_echo "$as_me:$LINENO: checking for C compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-{ (ac_try="$ac_compiler --version >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compiler --version >&5") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (ac_try="$ac_compiler -v >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compiler -v >&5") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (ac_try="$ac_compiler -V >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compiler -V >&5") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-
-{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
-$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if test "${ac_cv_c_compiler_gnu+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-#ifndef __GNUC__
-       choke me
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_compiler_gnu=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_compiler_gnu=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
-$as_echo "$ac_cv_c_compiler_gnu" >&6; }
-if test $ac_compiler_gnu = yes; then
-  GCC=yes
-else
-  GCC=
-fi
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
-$as_echo_n "checking whether $CC accepts -g... " >&6; }
-if test "${ac_cv_prog_cc_g+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_save_c_werror_flag=$ac_c_werror_flag
-   ac_c_werror_flag=yes
-   ac_cv_prog_cc_g=no
-   CFLAGS="-g"
-   cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_prog_cc_g=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       CFLAGS=""
-      cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_c_werror_flag=$ac_save_c_werror_flag
-        CFLAGS="-g"
-        cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_prog_cc_g=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-   ac_c_werror_flag=$ac_save_c_werror_flag
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
-$as_echo "$ac_cv_prog_cc_g" >&6; }
-if test "$ac_test_CFLAGS" = set; then
-  CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
-  if test "$GCC" = yes; then
-    CFLAGS="-g -O2"
-  else
-    CFLAGS="-g"
-  fi
-else
-  if test "$GCC" = yes; then
-    CFLAGS="-O2"
-  else
-    CFLAGS=
-  fi
-fi
-{ $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5
-$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if test "${ac_cv_prog_cc_c89+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_prog_cc_c89=no
-ac_save_CC=$CC
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stdarg.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
-     char **p;
-     int i;
-{
-  return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
-  char *s;
-  va_list v;
-  va_start (v,p);
-  s = g (p, va_arg (v,int));
-  va_end (v);
-  return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
-   function prototypes and stuff, but not '\xHH' hex character constants.
-   These don't provoke an error unfortunately, instead are silently treated
-   as 'x'.  The following induces an error, until -std is added to get
-   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
-   array size at least.  It's necessary to write '\x00'==0 to get something
-   that's true only with -std.  */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
-   inside strings and character constants.  */
-#define FOO(x) 'x'
-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
-  ;
-  return 0;
-}
-_ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
-       -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
-  CC="$ac_save_CC $ac_arg"
-  rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_prog_cc_c89=$ac_arg
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext
-  test "x$ac_cv_prog_cc_c89" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
-
-fi
-# AC_CACHE_VAL
-case "x$ac_cv_prog_cc_c89" in
-  x)
-    { $as_echo "$as_me:$LINENO: result: none needed" >&5
-$as_echo "none needed" >&6; } ;;
-  xno)
-    { $as_echo "$as_me:$LINENO: result: unsupported" >&5
-$as_echo "unsupported" >&6; } ;;
-  *)
-    CC="$CC $ac_cv_prog_cc_c89"
-    { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5
-$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
-esac
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-am_cv_prog_cc_stdc=$ac_cv_prog_cc_stdc
-
-
-
-
-{ $as_echo "$as_me:$LINENO: checking for library containing crypt" >&5
-$as_echo_n "checking for library containing crypt... " >&6; }
-if test "${ac_cv_search_crypt+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_func_search_save_LIBS=$LIBS
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char crypt ();
-int
-main ()
-{
-return crypt ();
-  ;
-  return 0;
-}
-_ACEOF
-for ac_lib in '' descrypt crypt; do
-  if test -z "$ac_lib"; then
-    ac_res="none required"
-  else
-    ac_res=-l$ac_lib
-    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
-  fi
-  rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_search_crypt=$ac_res
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext
-  if test "${ac_cv_search_crypt+set}" = set; then
-  break
-fi
-done
-if test "${ac_cv_search_crypt+set}" = set; then
-  :
-else
-  ac_cv_search_crypt=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_crypt" >&5
-$as_echo "$ac_cv_search_crypt" >&6; }
-ac_res=$ac_cv_search_crypt
-if test "$ac_res" != no; then
-  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-
-else
-  { { $as_echo "$as_me:$LINENO: error: Unable to find library containing crypt()" >&5
-$as_echo "$as_me: error: Unable to find library containing crypt()" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-
-
-   # Most operating systems have gethostbyname() in the default searched
-   # libraries (i.e. libc):
-   { $as_echo "$as_me:$LINENO: checking for gethostbyname" >&5
-$as_echo_n "checking for gethostbyname... " >&6; }
-if test "${ac_cv_func_gethostbyname+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define gethostbyname to an innocuous variant, in case <limits.h> declares gethostbyname.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define gethostbyname innocuous_gethostbyname
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char gethostbyname (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef gethostbyname
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char gethostbyname ();
-/* 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_gethostbyname || defined __stub___gethostbyname
-choke me
-#endif
-
-int
-main ()
-{
-return gethostbyname ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_func_gethostbyname=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_gethostbyname=no
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_gethostbyname" >&5
-$as_echo "$ac_cv_func_gethostbyname" >&6; }
-if test "x$ac_cv_func_gethostbyname" = x""yes; then
-  :
-else
-  # Some OSes (eg. Solaris) place it in libnsl:
-
-{ $as_echo "$as_me:$LINENO: checking for gethostbyname in -lnsl" >&5
-$as_echo_n "checking for gethostbyname in -lnsl... " >&6; }
-if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lnsl  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char gethostbyname ();
-int
-main ()
-{
-return gethostbyname ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_lib_nsl_gethostbyname=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_nsl_gethostbyname=no
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_gethostbyname" >&5
-$as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; }
-if test "x$ac_cv_lib_nsl_gethostbyname" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBNSL 1
-_ACEOF
-
-  LIBS="-lnsl $LIBS"
-
-else
-  # Some strange OSes (SINIX) have it in libsocket:
-
-{ $as_echo "$as_me:$LINENO: checking for gethostbyname in -lsocket" >&5
-$as_echo_n "checking for gethostbyname in -lsocket... " >&6; }
-if test "${ac_cv_lib_socket_gethostbyname+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsocket  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char gethostbyname ();
-int
-main ()
-{
-return gethostbyname ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_lib_socket_gethostbyname=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_socket_gethostbyname=no
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_socket_gethostbyname" >&5
-$as_echo "$ac_cv_lib_socket_gethostbyname" >&6; }
-if test "x$ac_cv_lib_socket_gethostbyname" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBSOCKET 1
-_ACEOF
-
-  LIBS="-lsocket $LIBS"
-
-else
-  # Unfortunately libsocket sometimes depends on libnsl.
-          # AC_CHECK_LIB's API is essentially broken so the following
-          # ugliness is necessary:
-          { $as_echo "$as_me:$LINENO: checking for gethostbyname in -lsocket" >&5
-$as_echo_n "checking for gethostbyname in -lsocket... " >&6; }
-if test "${ac_cv_lib_socket_gethostbyname+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsocket -lnsl $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char gethostbyname ();
-int
-main ()
-{
-return gethostbyname ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_lib_socket_gethostbyname=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_socket_gethostbyname=no
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_socket_gethostbyname" >&5
-$as_echo "$ac_cv_lib_socket_gethostbyname" >&6; }
-if test "x$ac_cv_lib_socket_gethostbyname" = x""yes; then
-  LIBS="-lsocket -lnsl $LIBS"
-else
-
-{ $as_echo "$as_me:$LINENO: checking for gethostbyname in -lresolv" >&5
-$as_echo_n "checking for gethostbyname in -lresolv... " >&6; }
-if test "${ac_cv_lib_resolv_gethostbyname+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lresolv  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char gethostbyname ();
-int
-main ()
-{
-return gethostbyname ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_lib_resolv_gethostbyname=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_resolv_gethostbyname=no
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_resolv_gethostbyname" >&5
-$as_echo "$ac_cv_lib_resolv_gethostbyname" >&6; }
-if test "x$ac_cv_lib_resolv_gethostbyname" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBRESOLV 1
-_ACEOF
-
-  LIBS="-lresolv $LIBS"
-
-fi
-
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-  { $as_echo "$as_me:$LINENO: checking for socket" >&5
-$as_echo_n "checking for socket... " >&6; }
-if test "${ac_cv_func_socket+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define socket to an innocuous variant, in case <limits.h> declares socket.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define socket innocuous_socket
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char socket (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef socket
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char socket ();
-/* 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_socket || defined __stub___socket
-choke me
-#endif
-
-int
-main ()
-{
-return socket ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_func_socket=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_socket=no
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_socket" >&5
-$as_echo "$ac_cv_func_socket" >&6; }
-if test "x$ac_cv_func_socket" = x""yes; then
-  :
-else
-
-{ $as_echo "$as_me:$LINENO: checking for socket in -lsocket" >&5
-$as_echo_n "checking for socket in -lsocket... " >&6; }
-if test "${ac_cv_lib_socket_socket+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsocket  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char socket ();
-int
-main ()
-{
-return socket ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_lib_socket_socket=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_socket_socket=no
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_socket_socket" >&5
-$as_echo "$ac_cv_lib_socket_socket" >&6; }
-if test "x$ac_cv_lib_socket_socket" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBSOCKET 1
-_ACEOF
-
-  LIBS="-lsocket $LIBS"
-
-else
-  { $as_echo "$as_me:$LINENO: checking for socket in -lsocket" >&5
-$as_echo_n "checking for socket in -lsocket... " >&6; }
-if test "${ac_cv_lib_socket_socket+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsocket -lnsl $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char socket ();
-int
-main ()
-{
-return socket ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_lib_socket_socket=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_socket_socket=no
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_socket_socket" >&5
-$as_echo "$ac_cv_lib_socket_socket" >&6; }
-if test "x$ac_cv_lib_socket_socket" = x""yes; then
-  LIBS="-lsocket -lnsl $LIBS"
-fi
-
-fi
-
-fi
-
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
-$as_echo_n "checking how to run the C preprocessor... " >&6; }
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
-  CPP=
-fi
-if test -z "$CPP"; then
-  if test "${ac_cv_prog_CPP+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-      # Double quotes because CPP needs to be expanded
-    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
-    do
-      ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-                    Syntax error
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  :
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Broken: fails on valid input.
-continue
-fi
-
-rm -f conftest.err conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether nonexistent headers
-  # can be detected and how.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  # Broken: success on invalid input.
-continue
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
-  break
-fi
-
-    done
-    ac_cv_prog_CPP=$CPP
-
-fi
-  CPP=$ac_cv_prog_CPP
-else
-  ac_cv_prog_CPP=$CPP
-fi
-{ $as_echo "$as_me:$LINENO: result: $CPP" >&5
-$as_echo "$CPP" >&6; }
-ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-                    Syntax error
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  :
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Broken: fails on valid input.
-continue
-fi
-
-rm -f conftest.err conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether nonexistent headers
-  # can be detected and how.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  # Broken: success on invalid input.
-continue
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
-  :
-else
-  { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-{ $as_echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5
-$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
-if test "${ac_cv_path_GREP+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  if test -z "$GREP"; then
-  ac_path_GREP_found=false
-  # Loop through the user's path and test for each of PROGNAME-LIST
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_prog in grep ggrep; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
-      { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
-# Check for GNU ac_path_GREP and select it if it is found.
-  # Check for GNU $ac_path_GREP
-case `"$ac_path_GREP" --version 2>&1` in
-*GNU*)
-  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
-*)
-  ac_count=0
-  $as_echo_n 0123456789 >"conftest.in"
-  while :
-  do
-    cat "conftest.in" "conftest.in" >"conftest.tmp"
-    mv "conftest.tmp" "conftest.in"
-    cp "conftest.in" "conftest.nl"
-    $as_echo 'GREP' >> "conftest.nl"
-    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    ac_count=`expr $ac_count + 1`
-    if test $ac_count -gt ${ac_path_GREP_max-0}; then
-      # Best one so far, save it but keep looking for a better one
-      ac_cv_path_GREP="$ac_path_GREP"
-      ac_path_GREP_max=$ac_count
-    fi
-    # 10*(2^10) chars as input seems more than enough
-    test $ac_count -gt 10 && break
-  done
-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
-      $ac_path_GREP_found && break 3
-    done
-  done
-done
-IFS=$as_save_IFS
-  if test -z "$ac_cv_path_GREP"; then
-    { { $as_echo "$as_me:$LINENO: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
-$as_echo "$as_me: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
-   { (exit 1); exit 1; }; }
-  fi
-else
-  ac_cv_path_GREP=$GREP
-fi
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5
-$as_echo "$ac_cv_path_GREP" >&6; }
- GREP="$ac_cv_path_GREP"
-
-
-{ $as_echo "$as_me:$LINENO: checking for egrep" >&5
-$as_echo_n "checking for egrep... " >&6; }
-if test "${ac_cv_path_EGREP+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
-   then ac_cv_path_EGREP="$GREP -E"
-   else
-     if test -z "$EGREP"; then
-  ac_path_EGREP_found=false
-  # Loop through the user's path and test for each of PROGNAME-LIST
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_prog in egrep; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
-      { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
-# Check for GNU ac_path_EGREP and select it if it is found.
-  # Check for GNU $ac_path_EGREP
-case `"$ac_path_EGREP" --version 2>&1` in
-*GNU*)
-  ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
-*)
-  ac_count=0
-  $as_echo_n 0123456789 >"conftest.in"
-  while :
-  do
-    cat "conftest.in" "conftest.in" >"conftest.tmp"
-    mv "conftest.tmp" "conftest.in"
-    cp "conftest.in" "conftest.nl"
-    $as_echo 'EGREP' >> "conftest.nl"
-    "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    ac_count=`expr $ac_count + 1`
-    if test $ac_count -gt ${ac_path_EGREP_max-0}; then
-      # Best one so far, save it but keep looking for a better one
-      ac_cv_path_EGREP="$ac_path_EGREP"
-      ac_path_EGREP_max=$ac_count
-    fi
-    # 10*(2^10) chars as input seems more than enough
-    test $ac_count -gt 10 && break
-  done
-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
-      $ac_path_EGREP_found && break 3
-    done
-  done
-done
-IFS=$as_save_IFS
-  if test -z "$ac_cv_path_EGREP"; then
-    { { $as_echo "$as_me:$LINENO: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
-$as_echo "$as_me: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
-   { (exit 1); exit 1; }; }
-  fi
-else
-  ac_cv_path_EGREP=$EGREP
-fi
-
-   fi
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5
-$as_echo "$ac_cv_path_EGREP" >&6; }
- EGREP="$ac_cv_path_EGREP"
-
-
-{ $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5
-$as_echo_n "checking for ANSI C header files... " >&6; }
-if test "${ac_cv_header_stdc+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_header_stdc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_header_stdc=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
-  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "memchr" >/dev/null 2>&1; then
-  :
-else
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
-  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "free" >/dev/null 2>&1; then
-  :
-else
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
-  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-  if test "$cross_compiling" = yes; then
-  :
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <ctype.h>
-#include <stdlib.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
-                  (('a' <= (c) && (c) <= 'i') \
-                    || ('j' <= (c) && (c) <= 'r') \
-                    || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
-  int i;
-  for (i = 0; i < 256; i++)
-    if (XOR (islower (i), ISLOWER (i))
-       || toupper (i) != TOUPPER (i))
-      return 2;
-  return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  :
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_header_stdc=no
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-fi
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
-$as_echo "$ac_cv_header_stdc" >&6; }
-if test $ac_cv_header_stdc = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define STDC_HEADERS 1
-_ACEOF
-
-fi
-
-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
-
-
-
-
-
-
-
-
-
-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
-                 inttypes.h stdint.h unistd.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  eval "$as_ac_Header=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_ac_Header=no"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-
-
-
-
-
-
-
-
-
-
-for ac_header in crypt.h poll.h inttypes.h stdint.h sys/devpoll.h sys/epoll.h sys/event.h sys/param.h sys/resource.h sys/socket.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-
- { $as_echo "$as_me:$LINENO: checking whether byte ordering is bigendian" >&5
-$as_echo_n "checking whether byte ordering is bigendian... " >&6; }
-if test "${ac_cv_c_bigendian+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_c_bigendian=unknown
-    # See if we're dealing with a universal compiler.
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#ifndef __APPLE_CC__
-              not a universal capable compiler
-            #endif
-            typedef int dummy;
-
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-
-       # Check for potential -arch flags.  It is not universal unless
-       # there are some -arch flags.  Note that *ppc* also matches
-       # ppc64.  This check is also rather less than ideal.
-       case "${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}" in  #(
-         *-arch*ppc*|*-arch*i386*|*-arch*x86_64*) ac_cv_c_bigendian=universal;;
-       esac
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-    if test $ac_cv_c_bigendian = unknown; then
-      # See if sys/param.h defines the BYTE_ORDER macro.
-      cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-            #include <sys/param.h>
-
-int
-main ()
-{
-#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \
-                    && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \
-                    && LITTLE_ENDIAN)
-             bogus endian macros
-            #endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  # It does; now see whether it defined to BIG_ENDIAN or not.
-        cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-               #include <sys/param.h>
-
-int
-main ()
-{
-#if BYTE_ORDER != BIG_ENDIAN
-                not big endian
-               #endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_c_bigendian=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_c_bigendian=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-    fi
-    if test $ac_cv_c_bigendian = unknown; then
-      # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris).
-      cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <limits.h>
-
-int
-main ()
-{
-#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN)
-             bogus endian macros
-            #endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  # It does; now see whether it defined to _BIG_ENDIAN or not.
-        cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <limits.h>
-
-int
-main ()
-{
-#ifndef _BIG_ENDIAN
-                not big endian
-               #endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_c_bigendian=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_c_bigendian=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-    fi
-    if test $ac_cv_c_bigendian = unknown; then
-      # Compile a test program.
-      if test "$cross_compiling" = yes; then
-  # Try to guess by grepping values from an object file.
-        cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-short int ascii_mm[] =
-                 { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
-               short int ascii_ii[] =
-                 { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
-               int use_ascii (int i) {
-                 return ascii_mm[i] + ascii_ii[i];
-               }
-               short int ebcdic_ii[] =
-                 { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
-               short int ebcdic_mm[] =
-                 { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
-               int use_ebcdic (int i) {
-                 return ebcdic_mm[i] + ebcdic_ii[i];
-               }
-               extern int foo;
-
-int
-main ()
-{
-return use_ascii (foo) == use_ebcdic (foo);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then
-             ac_cv_c_bigendian=yes
-           fi
-           if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
-             if test "$ac_cv_c_bigendian" = unknown; then
-               ac_cv_c_bigendian=no
-             else
-               # finding both strings is unlikely to happen, but who knows?
-               ac_cv_c_bigendian=unknown
-             fi
-           fi
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-
-            /* Are we little or big endian?  From Harbison&Steele.  */
-            union
-            {
-              long int l;
-              char c[sizeof (long int)];
-            } u;
-            u.l = 1;
-            return u.c[sizeof (long int) - 1] == 1;
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_c_bigendian=no
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_c_bigendian=yes
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-    fi
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_bigendian" >&5
-$as_echo "$ac_cv_c_bigendian" >&6; }
- case $ac_cv_c_bigendian in #(
-   yes)
-     cat >>confdefs.h <<\_ACEOF
-#define WORDS_BIGENDIAN 1
-_ACEOF
-;; #(
-   no)
-      ;; #(
-   universal)
-
-cat >>confdefs.h <<\_ACEOF
-#define AC_APPLE_UNIVERSAL_BUILD 1
-_ACEOF
-
-     ;; #(
-   *)
-     { { $as_echo "$as_me:$LINENO: error: unknown endianness
- presetting ac_cv_c_bigendian=no (or yes) will help" >&5
-$as_echo "$as_me: error: unknown endianness
- presetting ac_cv_c_bigendian=no (or yes) will help" >&2;}
-   { (exit 1); exit 1; }; } ;;
- esac
-
-{ $as_echo "$as_me:$LINENO: checking for size_t" >&5
-$as_echo_n "checking for size_t... " >&6; }
-if test "${ac_cv_type_size_t+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_type_size_t=no
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-if (sizeof (size_t))
-       return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-if (sizeof ((size_t)))
-         return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_type_size_t=yes
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5
-$as_echo "$ac_cv_type_size_t" >&6; }
-if test "x$ac_cv_type_size_t" = x""yes; then
-  :
-else
-
-cat >>confdefs.h <<_ACEOF
-#define size_t unsigned int
-_ACEOF
-
-fi
-
-{ $as_echo "$as_me:$LINENO: checking whether time.h and sys/time.h may both be included" >&5
-$as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; }
-if test "${ac_cv_header_time+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-#include <sys/time.h>
-#include <time.h>
-
-int
-main ()
-{
-if ((struct tm *) 0)
-return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_header_time=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_header_time=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5
-$as_echo "$ac_cv_header_time" >&6; }
-if test $ac_cv_header_time = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define TIME_WITH_SYS_TIME 1
-_ACEOF
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -f -r conftest* confdefs.h
 
-fi
+$as_echo "/* confdefs.h */" > confdefs.h
 
-{ $as_echo "$as_me:$LINENO: checking whether struct tm is in sys/time.h or time.h" >&5
-$as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; }
-if test "${ac_cv_struct_tm+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-#include <time.h>
+# Predefined preprocessor variables.
 
-int
-main ()
-{
-struct tm tm;
-                                    int *p = &tm.tm_sec;
-                                    return !p;
-  ;
-  return 0;
-}
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_NAME "$PACKAGE_NAME"
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_struct_tm=time.h
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_struct_tm=sys/time.h
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_struct_tm" >&5
-$as_echo "$ac_cv_struct_tm" >&6; }
-if test $ac_cv_struct_tm = sys/time.h; then
 
-cat >>confdefs.h <<\_ACEOF
-#define TM_IN_SYS_TIME 1
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
 _ACEOF
 
-fi
-
-{ $as_echo "$as_me:$LINENO: checking for uid_t in sys/types.h" >&5
-$as_echo_n "checking for uid_t in sys/types.h... " >&6; }
-if test "${ac_cv_type_uid_t+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_VERSION "$PACKAGE_VERSION"
 _ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
 
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_STRING "$PACKAGE_STRING"
 _ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "uid_t" >/dev/null 2>&1; then
-  ac_cv_type_uid_t=yes
-else
-  ac_cv_type_uid_t=no
-fi
-rm -f conftest*
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_uid_t" >&5
-$as_echo "$ac_cv_type_uid_t" >&6; }
-if test $ac_cv_type_uid_t = no; then
 
-cat >>confdefs.h <<\_ACEOF
-#define uid_t int
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
 _ACEOF
 
-
-cat >>confdefs.h <<\_ACEOF
-#define gid_t int
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_URL "$PACKAGE_URL"
 _ACEOF
 
-fi
 
-# The cast to long int works around a bug in the HP C Compiler
-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-# This bug is HP SR number 8606223364.
-{ $as_echo "$as_me:$LINENO: checking size of short" >&5
-$as_echo_n "checking size of short... " >&6; }
-if test "${ac_cv_sizeof_short+set}" = set; then
-  $as_echo_n "(cached) " >&6
+# Let the site file select an alternate cache file if it wants to.
+# Prefer an explicitly selected file to automatically selected ones.
+ac_site_file1=NONE
+ac_site_file2=NONE
+if test -n "$CONFIG_SITE"; then
+  ac_site_file1=$CONFIG_SITE
+elif test "x$prefix" != xNONE; then
+  ac_site_file1=$prefix/share/config.site
+  ac_site_file2=$prefix/etc/config.site
 else
-  if test "$cross_compiling" = yes; then
-  # Depending upon the size, compute the lo and hi bounds.
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (short))) >= 0)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_lo=0 ac_mid=0
-  while :; do
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (short))) <= $ac_mid)];
-test_array [0] = 0
+  ac_site_file1=$ac_default_prefix/share/config.site
+  ac_site_file2=$ac_default_prefix/etc/config.site
+fi
+for ac_site_file in "$ac_site_file1" "$ac_site_file2"
+do
+  test "x$ac_site_file" = xNONE && continue
+  if test -r "$ac_site_file"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
+$as_echo "$as_me: loading site script $ac_site_file" >&6;}
+    sed 's/^/| /' "$ac_site_file" >&5
+    . "$ac_site_file"
+  fi
+done
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=$ac_mid; break
+if test -r "$cache_file"; then
+  # Some versions of bash will fail to source /dev/null (special
+  # files actually), so we avoid doing that.
+  if test -f "$cache_file"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
+$as_echo "$as_me: loading cache $cache_file" >&6;}
+    case $cache_file in
+      [\\/]* | ?:[\\/]* ) . "$cache_file";;
+      *)                      . "./$cache_file";;
+    esac
+  fi
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_lo=`expr $ac_mid + 1`
-                       if test $ac_lo -le $ac_mid; then
-                         ac_lo= ac_hi=
-                         break
-                       fi
-                       ac_mid=`expr 2 '*' $ac_mid + 1`
+  { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
+$as_echo "$as_me: creating cache $cache_file" >&6;}
+  >$cache_file
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in $ac_precious_vars; do
+  eval ac_old_set=\$ac_cv_env_${ac_var}_set
+  eval ac_new_set=\$ac_env_${ac_var}_set
+  eval ac_old_val=\$ac_cv_env_${ac_var}_value
+  eval ac_new_val=\$ac_env_${ac_var}_value
+  case $ac_old_set,$ac_new_set in
+    set,)
+      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
+    ,set)
+      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
+    ,);;
+    *)
+      if test "x$ac_old_val" != "x$ac_new_val"; then
+       # differences in whitespace do not lead to failure.
+       ac_old_val_w=`echo x $ac_old_val`
+       ac_new_val_w=`echo x $ac_new_val`
+       if test "$ac_old_val_w" != "$ac_new_val_w"; then
+         { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
+$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+         ac_cache_corrupted=:
+       else
+         { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
+         eval $ac_var=\$ac_old_val
+       fi
+       { $as_echo "$as_me:${as_lineno-$LINENO}:   former value:  \`$ac_old_val'" >&5
+$as_echo "$as_me:   former value:  \`$ac_old_val'" >&2;}
+       { $as_echo "$as_me:${as_lineno-$LINENO}:   current value: \`$ac_new_val'" >&5
+$as_echo "$as_me:   current value: \`$ac_new_val'" >&2;}
+      fi;;
+  esac
+  # Pass precious variables to config.status.
+  if test "$ac_new_set" = set; then
+    case $ac_new_val in
+    *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+    *) ac_arg=$ac_var=$ac_new_val ;;
+    esac
+    case " $ac_configure_args " in
+      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
+      *) as_fn_append ac_configure_args " '$ac_arg'" ;;
+    esac
+  fi
+done
+if $ac_cache_corrupted; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+  { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
+$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+  as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
+fi
+## -------------------- ##
+## Main body of script. ##
+## -------------------- ##
 
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (short))) < 0)];
-test_array [0] = 0
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=-1 ac_mid=-1
-  while :; do
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (short))) >= $ac_mid)];
-test_array [0] = 0
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_lo=$ac_mid; break
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_hi=`expr '(' $ac_mid ')' - 1`
-                       if test $ac_mid -le $ac_hi; then
-                         ac_lo= ac_hi=
-                         break
-                       fi
-                       ac_mid=`expr 2 '*' $ac_mid`
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for installation prefix" >&5
+$as_echo_n "checking for installation prefix... " >&6; }
+if test "${unet_cv_prefix+set}" = set; then :
+  $as_echo_n "(cached) " >&6
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_lo= ac_hi=
+  unet_cv_prefix=$HOME
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+if test x"$prefix" != xNONE; then
+    unet_cv_prefix=$prefix
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $unet_cv_prefix" >&5
+$as_echo "$unet_cv_prefix" >&6; }
+ac_default_prefix=$unet_cv_prefix
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-# Binary search between lo and hi bounds.
-while test "x$ac_lo" != "x$ac_hi"; do
-  ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (short))) <= $ac_mid)];
-test_array [0] = 0
+ac_config_headers="$ac_config_headers config.h"
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=$ac_mid
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_lo=`expr '(' $ac_mid ')' + 1`
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+ac_aux_dir=
+for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
+  for ac_t in install-sh install.sh shtool; do
+    if test -f "$ac_dir/$ac_t"; then
+      ac_aux_dir=$ac_dir
+      ac_install_sh="$ac_aux_dir/$ac_t -c"
+      break 2
+    fi
+  done
 done
-case $ac_lo in
-?*) ac_cv_sizeof_short=$ac_lo;;
-'') if test "$ac_cv_type_short" = yes; then
-     { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (short)
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: cannot compute sizeof (short)
-See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }; }
-   else
-     ac_cv_sizeof_short=0
-   fi ;;
-esac
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-static long int longval () { return (long int) (sizeof (short)); }
-static unsigned long int ulongval () { return (long int) (sizeof (short)); }
-#include <stdio.h>
-#include <stdlib.h>
-int
-main ()
-{
+if test -z "$ac_aux_dir"; then
+  as_fn_error "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
+fi
 
-  FILE *f = fopen ("conftest.val", "w");
-  if (! f)
-    return 1;
-  if (((long int) (sizeof (short))) < 0)
-    {
-      long int i = longval ();
-      if (i != ((long int) (sizeof (short))))
-       return 1;
-      fprintf (f, "%ld", i);
-    }
-  else
-    {
-      unsigned long int i = ulongval ();
-      if (i != ((long int) (sizeof (short))))
-       return 1;
-      fprintf (f, "%lu", i);
-    }
-  /* Do not output a trailing newline, as this causes \r\n confusion
-     on some platforms.  */
-  return ferror (f) || fclose (f) != 0;
+# These three variables are undocumented and unsupported,
+# and are intended to be withdrawn in a future Autoconf release.
+# They can cause serious problems if a builder's source tree is in a directory
+# whose full name contains unusual characters.
+ac_config_guess="$SHELL $ac_aux_dir/config.guess"  # Please don't use this var.
+ac_config_sub="$SHELL $ac_aux_dir/config.sub"  # Please don't use this var.
+ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_sizeof_short=`cat conftest.val`
+
+# Make sure we can run config.sub.
+$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
+  as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
+$as_echo_n "checking build system type... " >&6; }
+if test "${ac_cv_build+set}" = set; then :
+  $as_echo_n "(cached) " >&6
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  ac_build_alias=$build_alias
+test "x$ac_build_alias" = x &&
+  ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
+test "x$ac_build_alias" = x &&
+  as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5
+ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
+  as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
 
-( exit $ac_status )
-if test "$ac_cv_type_short" = yes; then
-     { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (short)
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: cannot compute sizeof (short)
-See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }; }
-   else
-     ac_cv_sizeof_short=0
-   fi
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f conftest.val
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_sizeof_short" >&5
-$as_echo "$ac_cv_sizeof_short" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
+$as_echo "$ac_cv_build" >&6; }
+case $ac_cv_build in
+*-*-*) ;;
+*) as_fn_error "invalid value of canonical build" "$LINENO" 5;;
+esac
+build=$ac_cv_build
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_build
+shift
+build_cpu=$1
+build_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+build_os=$*
+IFS=$ac_save_IFS
+case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
 
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
+$as_echo_n "checking host system type... " >&6; }
+if test "${ac_cv_host+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "x$host_alias" = x; then
+  ac_cv_host=$ac_cv_build
+else
+  ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
+    as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+fi
 
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_SHORT $ac_cv_sizeof_short
-_ACEOF
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
+$as_echo "$ac_cv_host" >&6; }
+case $ac_cv_host in
+*-*-*) ;;
+*) as_fn_error "invalid value of canonical host" "$LINENO" 5;;
+esac
+host=$ac_cv_host
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_host
+shift
+host_cpu=$1
+host_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+host_os=$*
+IFS=$ac_save_IFS
+case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
 
 
-# The cast to long int works around a bug in the HP C Compiler
-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-# This bug is HP SR number 8606223364.
-{ $as_echo "$as_me:$LINENO: checking size of int" >&5
-$as_echo_n "checking size of int... " >&6; }
-if test "${ac_cv_sizeof_int+set}" = set; then
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then
-  # Depending upon the size, compute the lo and hi bounds.
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (int))) >= 0)];
-test_array [0] = 0
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_CC="${ac_tool_prefix}gcc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_lo=0 ac_mid=0
-  while :; do
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (int))) <= $ac_mid)];
-test_array [0] = 0
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=$ac_mid; break
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+  ac_ct_CC=$CC
+  # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
+  $as_echo_n "(cached) " >&6
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_ac_ct_CC="gcc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
 
-       ac_lo=`expr $ac_mid + 1`
-                       if test $ac_lo -le $ac_mid; then
-                         ac_lo= ac_hi=
-                         break
-                       fi
-                       ac_mid=`expr 2 '*' $ac_mid + 1`
 fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (int))) < 0)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=-1 ac_mid=-1
-  while :; do
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (int))) >= $ac_mid)];
-test_array [0] = 0
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
 esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_lo=$ac_mid; break
+    CC=$ac_ct_CC
+  fi
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_hi=`expr '(' $ac_mid ')' - 1`
-                       if test $ac_mid -le $ac_hi; then
-                         ac_lo= ac_hi=
-                         break
-                       fi
-                       ac_mid=`expr 2 '*' $ac_mid`
+  CC="$ac_cv_prog_CC"
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
+if test -z "$CC"; then
+          if test -n "$ac_tool_prefix"; then
+    # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then :
+  $as_echo_n "(cached) " >&6
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_CC="${ac_tool_prefix}cc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
 
-       ac_lo= ac_hi=
 fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-# Binary search between lo and hi bounds.
-while test "x$ac_lo" != "x$ac_hi"; do
-  ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (int))) <= $ac_mid)];
-test_array [0] = 0
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=$ac_mid
+  fi
+fi
+if test -z "$CC"; then
+  # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then :
+  $as_echo_n "(cached) " >&6
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+       ac_prog_rejected=yes
+       continue
+     fi
+    ac_cv_prog_CC="cc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
 
-       ac_lo=`expr '(' $ac_mid ')' + 1`
+if test $ac_prog_rejected = yes; then
+  # We found a bogon in the path, so make sure we never use it.
+  set dummy $ac_cv_prog_CC
+  shift
+  if test $# != 0; then
+    # We chose a different compiler from the bogus one.
+    # However, it has the same basename, so the bogon will be chosen
+    # first if we set CC to just the basename; use the full file name.
+    shift
+    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+  fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-case $ac_lo in
-?*) ac_cv_sizeof_int=$ac_lo;;
-'') if test "$ac_cv_type_int" = yes; then
-     { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (int)
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: cannot compute sizeof (int)
-See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }; }
-   else
-     ac_cv_sizeof_int=0
-   fi ;;
-esac
+
+fi
+if test -z "$CC"; then
+  if test -n "$ac_tool_prefix"; then
+  for ac_prog in cl.exe
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then :
+  $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-static long int longval () { return (long int) (sizeof (int)); }
-static unsigned long int ulongval () { return (long int) (sizeof (int)); }
-#include <stdio.h>
-#include <stdlib.h>
-int
-main ()
-{
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
 
-  FILE *f = fopen ("conftest.val", "w");
-  if (! f)
-    return 1;
-  if (((long int) (sizeof (int))) < 0)
-    {
-      long int i = longval ();
-      if (i != ((long int) (sizeof (int))))
-       return 1;
-      fprintf (f, "%ld", i);
-    }
-  else
-    {
-      unsigned long int i = ulongval ();
-      if (i != ((long int) (sizeof (int))))
-       return 1;
-      fprintf (f, "%lu", i);
-    }
-  /* Do not output a trailing newline, as this causes \r\n confusion
-     on some platforms.  */
-  return ferror (f) || fclose (f) != 0;
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_sizeof_int=`cat conftest.val`
+
+    test -n "$CC" && break
+  done
+fi
+if test -z "$CC"; then
+  ac_ct_CC=$CC
+  for ac_prog in cl.exe
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
+  $as_echo_n "(cached) " >&6
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_ac_ct_CC="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
 
-( exit $ac_status )
-if test "$ac_cv_type_int" = yes; then
-     { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (int)
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: cannot compute sizeof (int)
-See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }; }
-   else
-     ac_cv_sizeof_int=0
-   fi
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
-rm -f conftest.val
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_sizeof_int" >&5
-$as_echo "$ac_cv_sizeof_int" >&6; }
 
 
+  test -n "$ac_ct_CC" && break
+done
 
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_INT $ac_cv_sizeof_int
-_ACEOF
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    CC=$ac_ct_CC
+  fi
+fi
 
+fi
 
-# The cast to long int works around a bug in the HP C Compiler
-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-# This bug is HP SR number 8606223364.
-{ $as_echo "$as_me:$LINENO: checking size of long" >&5
-$as_echo_n "checking size of long... " >&6; }
-if test "${ac_cv_sizeof_long+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  if test "$cross_compiling" = yes; then
-  # Depending upon the size, compute the lo and hi bounds.
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (long))) >= 0)];
-test_array [0] = 0
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
+test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error "no acceptable C compiler found in \$PATH
+See \`config.log' for more details." "$LINENO" 5; }
+
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+  { { ac_try="$ac_compiler $ac_option >&5"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
   ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_lo=0 ac_mid=0
-  while :; do
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  if test -s conftest.err; then
+    sed '10a\
+... rest of stderr output deleted ...
+         10q' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    rm -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+done
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-$ac_includes_default
+#include <stdio.h>
 int
 main ()
 {
-static int test_array [1 - 2 * !(((long int) (sizeof (long))) <= $ac_mid)];
-test_array [0] = 0
+FILE *f = fopen ("conftest.out", "w");
+ return ferror (f) || fclose (f) != 0;
 
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out conftest.out"
+# Try to create an executable without -o first, disregard a.out.
+# It will help us diagnose broken compilers, and finding out an intuition
+# of exeext.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
+$as_echo_n "checking for C compiler default output file name... " >&6; }
+ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+
+# The possible output files:
+ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
+
+ac_rmfiles=
+for ac_file in $ac_files
+do
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+    * ) ac_rmfiles="$ac_rmfiles $ac_file";;
+  esac
+done
+rm -f $ac_rmfiles
+
+if { { ac_try="$ac_link_default"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link_default") 2>&5
   ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=$ac_mid; break
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_lo=`expr $ac_mid + 1`
-                       if test $ac_lo -le $ac_mid; then
-                         ac_lo= ac_hi=
-                         break
-                       fi
-                       ac_mid=`expr 2 '*' $ac_mid + 1`
-fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then :
+  # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
+# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
+# in a Makefile.  We should not override ac_cv_exeext if it was cached,
+# so that the user can short-circuit this test for compilers unknown to
+# Autoconf.
+for ac_file in $ac_files ''
+do
+  test -f "$ac_file" || continue
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
+       ;;
+    [ab].out )
+       # We found the default executable, but exeext='' is most
+       # certainly right.
+       break;;
+    *.* )
+       if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+       then :; else
+          ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+       fi
+       # We set ac_cv_exeext here because the later test for it is not
+       # safe: cross compilers may not add the suffix if given an `-o'
+       # argument, so we may need to know it at that point already.
+       # Even if this section looks crufty: it has the advantage of
+       # actually working.
+       break;;
+    * )
+       break;;
+  esac
+done
+test "$ac_cv_exeext" = no && ac_cv_exeext=
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
 else
+  ac_file=''
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
+$as_echo "$ac_file" >&6; }
+if test -z "$ac_file"; then :
   $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (long))) < 0)];
-test_array [0] = 0
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ as_fn_set_status 77
+as_fn_error "C compiler cannot create executables
+See \`config.log' for more details." "$LINENO" 5; }; }
+fi
+ac_exeext=$ac_cv_exeext
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
+# Check that the compiler produces executables we can run.  If not, either
+# the compiler is broken, or we cross compile.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
+$as_echo_n "checking whether the C compiler works... " >&6; }
+# If not cross compiling, check that we can run a simple program.
+if test "$cross_compiling" != yes; then
+  if { ac_try='./$ac_file'
+  { { case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=-1 ac_mid=-1
-  while :; do
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (long))) >= $ac_mid)];
-test_array [0] = 0
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }; then
+    cross_compiling=no
+  else
+    if test "$cross_compiling" = maybe; then
+       cross_compiling=yes
+    else
+       { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error "cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details." "$LINENO" 5; }
+    fi
+  fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
+rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out conftest.out
+ac_clean_files=$ac_clean_files_save
+# Check that the compiler produces executables we can run.  If not, either
+# the compiler is broken, or we cross compile.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
+$as_echo_n "checking whether we are cross compiling... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
+$as_echo "$cross_compiling" >&6; }
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
+$as_echo_n "checking for suffix of executables... " >&6; }
+if { { ac_try="$ac_link"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>&5
   ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_lo=$ac_mid; break
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_hi=`expr '(' $ac_mid ')' - 1`
-                       if test $ac_mid -le $ac_hi; then
-                         ac_lo= ac_hi=
-                         break
-                       fi
-                       ac_mid=`expr 2 '*' $ac_mid`
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then :
+  # If both `conftest.exe' and `conftest' are `present' (well, observable)
+# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
+# work properly (i.e., refer to `conftest.exe'), while it won't with
+# `rm'.
+for ac_file in conftest.exe conftest conftest.*; do
+  test -f "$ac_file" || continue
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+         break;;
+    * ) break;;
+  esac
+done
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_lo= ac_hi=
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error "cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details." "$LINENO" 5; }
 fi
+rm -f conftest$ac_cv_exeext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
+$as_echo "$ac_cv_exeext" >&6; }
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-# Binary search between lo and hi bounds.
-while test "x$ac_lo" != "x$ac_hi"; do
-  ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+rm -f conftest.$ac_ext
+EXEEXT=$ac_cv_exeext
+ac_exeext=$EXEEXT
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
+$as_echo_n "checking for suffix of object files... " >&6; }
+if test "${ac_cv_objext+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-$ac_includes_default
+
 int
 main ()
 {
-static int test_array [1 - 2 * !(((long int) (sizeof (long))) <= $ac_mid)];
-test_array [0] = 0
 
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
+rm -f conftest.o conftest.obj
+if { ac_try="$ac_compile"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compile") 2>&5
   ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=$ac_mid
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then :
+  for ac_file in conftest.o conftest.obj conftest.*; do
+  test -f "$ac_file" || continue;
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
+    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+       break;;
+  esac
+done
 else
   $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_lo=`expr '(' $ac_mid ')' + 1`
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-case $ac_lo in
-?*) ac_cv_sizeof_long=$ac_lo;;
-'') if test "$ac_cv_type_long" = yes; then
-     { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (long)
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: cannot compute sizeof (long)
-See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }; }
-   else
-     ac_cv_sizeof_long=0
-   fi ;;
-esac
+as_fn_error "cannot compute suffix of object files: cannot compile
+See \`config.log' for more details." "$LINENO" 5; }
+fi
+rm -f conftest.$ac_cv_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
+$as_echo "$ac_cv_objext" >&6; }
+OBJEXT=$ac_cv_objext
+ac_objext=$OBJEXT
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
+$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
+if test "${ac_cv_c_compiler_gnu+set}" = set; then :
+  $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-$ac_includes_default
-static long int longval () { return (long int) (sizeof (long)); }
-static unsigned long int ulongval () { return (long int) (sizeof (long)); }
-#include <stdio.h>
-#include <stdlib.h>
+
 int
 main ()
 {
-
-  FILE *f = fopen ("conftest.val", "w");
-  if (! f)
-    return 1;
-  if (((long int) (sizeof (long))) < 0)
-    {
-      long int i = longval ();
-      if (i != ((long int) (sizeof (long))))
-       return 1;
-      fprintf (f, "%ld", i);
-    }
-  else
-    {
-      unsigned long int i = ulongval ();
-      if (i != ((long int) (sizeof (long))))
-       return 1;
-      fprintf (f, "%lu", i);
-    }
-  /* Do not output a trailing newline, as this causes \r\n confusion
-     on some platforms.  */
-  return ferror (f) || fclose (f) != 0;
+#ifndef __GNUC__
+       choke me
+#endif
 
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_sizeof_long=`cat conftest.val`
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_compiler_gnu=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-if test "$ac_cv_type_long" = yes; then
-     { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (long)
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: cannot compute sizeof (long)
-See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }; }
-   else
-     ac_cv_sizeof_long=0
-   fi
+  ac_compiler_gnu=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
 fi
-rm -f conftest.val
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+$as_echo "$ac_cv_c_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+  GCC=yes
+else
+  GCC=
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_sizeof_long" >&5
-$as_echo "$ac_cv_sizeof_long" >&6; }
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_LONG $ac_cv_sizeof_long
-_ACEOF
-
-
-# The cast to long int works around a bug in the HP C Compiler
-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-# This bug is HP SR number 8606223364.
-{ $as_echo "$as_me:$LINENO: checking size of void *" >&5
-$as_echo_n "checking size of void *... " >&6; }
-if test "${ac_cv_sizeof_void_p+set}" = set; then
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+$as_echo_n "checking whether $CC accepts -g... " >&6; }
+if test "${ac_cv_prog_cc_g+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then
-  # Depending upon the size, compute the lo and hi bounds.
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  ac_save_c_werror_flag=$ac_c_werror_flag
+   ac_c_werror_flag=yes
+   ac_cv_prog_cc_g=no
+   CFLAGS="-g"
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-$ac_includes_default
+
 int
 main ()
 {
-static int test_array [1 - 2 * !(((long int) (sizeof (void *))) >= 0)];
-test_array [0] = 0
 
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_lo=0 ac_mid=0
-  while :; do
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_prog_cc_g=yes
+else
+  CFLAGS=""
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-$ac_includes_default
+
 int
 main ()
 {
-static int test_array [1 - 2 * !(((long int) (sizeof (void *))) <= $ac_mid)];
-test_array [0] = 0
 
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=$ac_mid; break
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_lo=`expr $ac_mid + 1`
-                       if test $ac_lo -le $ac_mid; then
-                         ac_lo= ac_hi=
-                         break
-                       fi
-                       ac_mid=`expr 2 '*' $ac_mid + 1`
-fi
+if ac_fn_c_try_compile "$LINENO"; then :
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  ac_c_werror_flag=$ac_save_c_werror_flag
+        CFLAGS="-g"
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-$ac_includes_default
+
 int
 main ()
 {
-static int test_array [1 - 2 * !(((long int) (sizeof (void *))) < 0)];
-test_array [0] = 0
 
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=-1 ac_mid=-1
-  while :; do
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_prog_cc_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+   ac_c_werror_flag=$ac_save_c_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+$as_echo "$ac_cv_prog_cc_g" >&6; }
+if test "$ac_test_CFLAGS" = set; then
+  CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+  if test "$GCC" = yes; then
+    CFLAGS="-g -O2"
+  else
+    CFLAGS="-g"
+  fi
+else
+  if test "$GCC" = yes; then
+    CFLAGS="-O2"
+  else
+    CFLAGS=
+  fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
+if test "${ac_cv_prog_cc_c89+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-$ac_includes_default
+#include <stdarg.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+     char **p;
+     int i;
+{
+  return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+  char *s;
+  va_list v;
+  va_start (v,p);
+  s = g (p, va_arg (v,int));
+  va_end (v);
+  return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
+   function prototypes and stuff, but not '\xHH' hex character constants.
+   These don't provoke an error unfortunately, instead are silently treated
+   as 'x'.  The following induces an error, until -std is added to get
+   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
+   array size at least.  It's necessary to write '\x00'==0 to get something
+   that's true only with -std.  */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+   inside strings and character constants.  */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
 int
 main ()
 {
-static int test_array [1 - 2 * !(((long int) (sizeof (void *))) >= $ac_mid)];
-test_array [0] = 0
-
+return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+       -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+  CC="$ac_save_CC $ac_arg"
+  if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_prog_cc_c89=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext
+  test "x$ac_cv_prog_cc_c89" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+  x)
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+  xno)
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+  *)
+    CC="$CC $ac_cv_prog_cc_c89"
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
 esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_lo=$ac_mid; break
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+if test "x$ac_cv_prog_cc_c89" != xno; then :
 
-       ac_hi=`expr '(' $ac_mid ')' - 1`
-                       if test $ac_mid -le $ac_hi; then
-                         ac_lo= ac_hi=
-                         break
-                       fi
-                       ac_mid=`expr 2 '*' $ac_mid`
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then :
+  $as_echo_n "(cached) " >&6
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_CC="${ac_tool_prefix}gcc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
 
-       ac_lo= ac_hi=
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
 fi
+if test -z "$ac_cv_prog_CC"; then
+  ac_ct_CC=$CC
+  # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_ac_ct_CC="gcc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-# Binary search between lo and hi bounds.
-while test "x$ac_lo" != "x$ac_hi"; do
-  ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (void *))) <= $ac_mid)];
-test_array [0] = 0
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
 esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=$ac_mid
+    CC=$ac_ct_CC
+  fi
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_lo=`expr '(' $ac_mid ')' + 1`
+  CC="$ac_cv_prog_CC"
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+if test -z "$CC"; then
+          if test -n "$ac_tool_prefix"; then
+    # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_CC="${ac_tool_prefix}cc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
 done
-case $ac_lo in
-?*) ac_cv_sizeof_void_p=$ac_lo;;
-'') if test "$ac_cv_type_void_p" = yes; then
-     { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (void *)
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: cannot compute sizeof (void *)
-See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }; }
-   else
-     ac_cv_sizeof_void_p=0
-   fi ;;
-esac
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-static long int longval () { return (long int) (sizeof (void *)); }
-static unsigned long int ulongval () { return (long int) (sizeof (void *)); }
-#include <stdio.h>
-#include <stdlib.h>
-int
-main ()
-{
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
 
-  FILE *f = fopen ("conftest.val", "w");
-  if (! f)
-    return 1;
-  if (((long int) (sizeof (void *))) < 0)
-    {
-      long int i = longval ();
-      if (i != ((long int) (sizeof (void *))))
-       return 1;
-      fprintf (f, "%ld", i);
-    }
-  else
-    {
-      unsigned long int i = ulongval ();
-      if (i != ((long int) (sizeof (void *))))
-       return 1;
-      fprintf (f, "%lu", i);
-    }
-  /* Do not output a trailing newline, as this causes \r\n confusion
-     on some platforms.  */
-  return ferror (f) || fclose (f) != 0;
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_sizeof_void_p=`cat conftest.val`
+  fi
+fi
+if test -z "$CC"; then
+  # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then :
+  $as_echo_n "(cached) " >&6
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+       ac_prog_rejected=yes
+       continue
+     fi
+    ac_cv_prog_CC="cc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
 
-( exit $ac_status )
-if test "$ac_cv_type_void_p" = yes; then
-     { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (void *)
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: cannot compute sizeof (void *)
-See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }; }
-   else
-     ac_cv_sizeof_void_p=0
-   fi
+if test $ac_prog_rejected = yes; then
+  # We found a bogon in the path, so make sure we never use it.
+  set dummy $ac_cv_prog_CC
+  shift
+  if test $# != 0; then
+    # We chose a different compiler from the bogus one.
+    # However, it has the same basename, so the bogon will be chosen
+    # first if we set CC to just the basename; use the full file name.
+    shift
+    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+  fi
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
-rm -f conftest.val
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_sizeof_void_p" >&5
-$as_echo "$ac_cv_sizeof_void_p" >&6; }
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
 
 
+fi
+if test -z "$CC"; then
+  if test -n "$ac_tool_prefix"; then
+  for ac_prog in cl.exe
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
 
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_VOID_P $ac_cv_sizeof_void_p
-_ACEOF
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
 
 
-# The cast to long int works around a bug in the HP C Compiler
-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-# This bug is HP SR number 8606223364.
-{ $as_echo "$as_me:$LINENO: checking size of int64_t" >&5
-$as_echo_n "checking size of int64_t... " >&6; }
-if test "${ac_cv_sizeof_int64_t+set}" = set; then
+    test -n "$CC" && break
+  done
+fi
+if test -z "$CC"; then
+  ac_ct_CC=$CC
+  for ac_prog in cl.exe
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then
-  # Depending upon the size, compute the lo and hi bounds.
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (int64_t))) >= 0)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_lo=0 ac_mid=0
-  while :; do
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (int64_t))) <= $ac_mid)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=$ac_mid; break
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_ac_ct_CC="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
 
-       ac_lo=`expr $ac_mid + 1`
-                       if test $ac_lo -le $ac_mid; then
-                         ac_lo= ac_hi=
-                         break
-                       fi
-                       ac_mid=`expr 2 '*' $ac_mid + 1`
 fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
 
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (int64_t))) < 0)];
-test_array [0] = 0
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=-1 ac_mid=-1
-  while :; do
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (int64_t))) >= $ac_mid)];
-test_array [0] = 0
+  test -n "$ac_ct_CC" && break
+done
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
 esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_lo=$ac_mid; break
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_hi=`expr '(' $ac_mid ')' - 1`
-                       if test $ac_mid -le $ac_hi; then
-                         ac_lo= ac_hi=
-                         break
-                       fi
-                       ac_mid=`expr 2 '*' $ac_mid`
+    CC=$ac_ct_CC
+  fi
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_lo= ac_hi=
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-# Binary search between lo and hi bounds.
-while test "x$ac_lo" != "x$ac_hi"; do
-  ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (int64_t))) <= $ac_mid)];
-test_array [0] = 0
+test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error "no acceptable C compiler found in \$PATH
+See \`config.log' for more details." "$LINENO" 5; }
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+  { { ac_try="$ac_compiler $ac_option >&5"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
   ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=$ac_mid
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_lo=`expr '(' $ac_mid ')' + 1`
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  if test -s conftest.err; then
+    sed '10a\
+... rest of stderr output deleted ...
+         10q' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    rm -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
 done
-case $ac_lo in
-?*) ac_cv_sizeof_int64_t=$ac_lo;;
-'') if test "$ac_cv_type_int64_t" = yes; then
-     { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (int64_t)
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: cannot compute sizeof (int64_t)
-See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }; }
-   else
-     ac_cv_sizeof_int64_t=0
-   fi ;;
-esac
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
+$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
+if test "${ac_cv_c_compiler_gnu+set}" = set; then :
+  $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-$ac_includes_default
-static long int longval () { return (long int) (sizeof (int64_t)); }
-static unsigned long int ulongval () { return (long int) (sizeof (int64_t)); }
-#include <stdio.h>
-#include <stdlib.h>
+
 int
 main ()
 {
-
-  FILE *f = fopen ("conftest.val", "w");
-  if (! f)
-    return 1;
-  if (((long int) (sizeof (int64_t))) < 0)
-    {
-      long int i = longval ();
-      if (i != ((long int) (sizeof (int64_t))))
-       return 1;
-      fprintf (f, "%ld", i);
-    }
-  else
-    {
-      unsigned long int i = ulongval ();
-      if (i != ((long int) (sizeof (int64_t))))
-       return 1;
-      fprintf (f, "%lu", i);
-    }
-  /* Do not output a trailing newline, as this causes \r\n confusion
-     on some platforms.  */
-  return ferror (f) || fclose (f) != 0;
+#ifndef __GNUC__
+       choke me
+#endif
 
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_sizeof_int64_t=`cat conftest.val`
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_compiler_gnu=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-if test "$ac_cv_type_int64_t" = yes; then
-     { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (int64_t)
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: cannot compute sizeof (int64_t)
-See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }; }
-   else
-     ac_cv_sizeof_int64_t=0
-   fi
+  ac_compiler_gnu=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
 fi
-rm -f conftest.val
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+$as_echo "$ac_cv_c_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+  GCC=yes
+else
+  GCC=
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_sizeof_int64_t" >&5
-$as_echo "$ac_cv_sizeof_int64_t" >&6; }
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_INT64_T $ac_cv_sizeof_int64_t
-_ACEOF
-
-
-# The cast to long int works around a bug in the HP C Compiler
-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-# This bug is HP SR number 8606223364.
-{ $as_echo "$as_me:$LINENO: checking size of long long" >&5
-$as_echo_n "checking size of long long... " >&6; }
-if test "${ac_cv_sizeof_long_long+set}" = set; then
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+$as_echo_n "checking whether $CC accepts -g... " >&6; }
+if test "${ac_cv_prog_cc_g+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then
-  # Depending upon the size, compute the lo and hi bounds.
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  ac_save_c_werror_flag=$ac_c_werror_flag
+   ac_c_werror_flag=yes
+   ac_cv_prog_cc_g=no
+   CFLAGS="-g"
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-$ac_includes_default
+
 int
 main ()
 {
-static int test_array [1 - 2 * !(((long int) (sizeof (long long))) >= 0)];
-test_array [0] = 0
 
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_lo=0 ac_mid=0
-  while :; do
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_prog_cc_g=yes
+else
+  CFLAGS=""
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-$ac_includes_default
+
 int
 main ()
 {
-static int test_array [1 - 2 * !(((long int) (sizeof (long long))) <= $ac_mid)];
-test_array [0] = 0
 
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=$ac_mid; break
+if ac_fn_c_try_compile "$LINENO"; then :
+
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  ac_c_werror_flag=$ac_save_c_werror_flag
+        CFLAGS="-g"
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
-       ac_lo=`expr $ac_mid + 1`
-                       if test $ac_lo -le $ac_mid; then
-                         ac_lo= ac_hi=
-                         break
-                       fi
-                       ac_mid=`expr 2 '*' $ac_mid + 1`
-fi
+int
+main ()
+{
 
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_prog_cc_g=yes
+fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+   ac_c_werror_flag=$ac_save_c_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+$as_echo "$ac_cv_prog_cc_g" >&6; }
+if test "$ac_test_CFLAGS" = set; then
+  CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+  if test "$GCC" = yes; then
+    CFLAGS="-g -O2"
+  else
+    CFLAGS="-g"
+  fi
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  if test "$GCC" = yes; then
+    CFLAGS="-O2"
+  else
+    CFLAGS=
+  fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
+if test "${ac_cv_prog_cc_c89+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-$ac_includes_default
+#include <stdarg.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+     char **p;
+     int i;
+{
+  return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+  char *s;
+  va_list v;
+  va_start (v,p);
+  s = g (p, va_arg (v,int));
+  va_end (v);
+  return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
+   function prototypes and stuff, but not '\xHH' hex character constants.
+   These don't provoke an error unfortunately, instead are silently treated
+   as 'x'.  The following induces an error, until -std is added to get
+   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
+   array size at least.  It's necessary to write '\x00'==0 to get something
+   that's true only with -std.  */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+   inside strings and character constants.  */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
 int
 main ()
 {
-static int test_array [1 - 2 * !(((long int) (sizeof (long long))) < 0)];
-test_array [0] = 0
-
+return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+       -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+  CC="$ac_save_CC $ac_arg"
+  if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_prog_cc_c89=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext
+  test "x$ac_cv_prog_cc_c89" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+  x)
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+  xno)
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+  *)
+    CC="$CC $ac_cv_prog_cc_c89"
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
 esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=-1 ac_mid=-1
-  while :; do
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+if test "x$ac_cv_prog_cc_c89" != xno; then :
+
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+am_cv_prog_cc_stdc=$ac_cv_prog_cc_stdc
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing crypt" >&5
+$as_echo_n "checking for library containing crypt... " >&6; }
+if test "${ac_cv_search_crypt+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-$ac_includes_default
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char crypt ();
 int
 main ()
 {
-static int test_array [1 - 2 * !(((long int) (sizeof (long long))) >= $ac_mid)];
-test_array [0] = 0
-
+return crypt ();
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_lo=$ac_mid; break
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_hi=`expr '(' $ac_mid ')' - 1`
-                       if test $ac_mid -le $ac_hi; then
-                         ac_lo= ac_hi=
-                         break
-                       fi
-                       ac_mid=`expr 2 '*' $ac_mid`
+for ac_lib in '' descrypt crypt; do
+  if test -z "$ac_lib"; then
+    ac_res="none required"
+  else
+    ac_res=-l$ac_lib
+    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
+  fi
+  if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_search_crypt=$ac_res
 fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext
+  if test "${ac_cv_search_crypt+set}" = set; then :
+  break
+fi
+done
+if test "${ac_cv_search_crypt+set}" = set; then :
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_lo= ac_hi=
+  ac_cv_search_crypt=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_crypt" >&5
+$as_echo "$ac_cv_search_crypt" >&6; }
+ac_res=$ac_cv_search_crypt
+if test "$ac_res" != no; then :
+  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+  as_fn_error "Unable to find library containing crypt()" "$LINENO" 5
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-# Binary search between lo and hi bounds.
-while test "x$ac_lo" != "x$ac_hi"; do
-  ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+
+
+   # Most operating systems have gethostbyname() in the default searched
+   # libraries (i.e. libc):
+   ac_fn_c_check_func "$LINENO" "gethostbyname" "ac_cv_func_gethostbyname"
+if test "x$ac_cv_func_gethostbyname" = x""yes; then :
+
+else
+  # Some OSes (eg. Solaris) place it in libnsl:
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5
+$as_echo_n "checking for gethostbyname in -lnsl... " >&6; }
+if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lnsl  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-$ac_includes_default
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char gethostbyname ();
 int
 main ()
 {
-static int test_array [1 - 2 * !(((long int) (sizeof (long long))) <= $ac_mid)];
-test_array [0] = 0
-
+return gethostbyname ();
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=$ac_mid
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_nsl_gethostbyname=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_lo=`expr '(' $ac_mid ')' + 1`
+  ac_cv_lib_nsl_gethostbyname=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostbyname" >&5
+$as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; }
+if test "x$ac_cv_lib_nsl_gethostbyname" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBNSL 1
+_ACEOF
+
+  LIBS="-lnsl $LIBS"
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-case $ac_lo in
-?*) ac_cv_sizeof_long_long=$ac_lo;;
-'') if test "$ac_cv_type_long_long" = yes; then
-     { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (long long)
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: cannot compute sizeof (long long)
-See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }; }
-   else
-     ac_cv_sizeof_long_long=0
-   fi ;;
-esac
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  # Some strange OSes (SINIX) have it in libsocket:
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lsocket" >&5
+$as_echo_n "checking for gethostbyname in -lsocket... " >&6; }
+if test "${ac_cv_lib_socket_gethostbyname+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsocket  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-$ac_includes_default
-static long int longval () { return (long int) (sizeof (long long)); }
-static unsigned long int ulongval () { return (long int) (sizeof (long long)); }
-#include <stdio.h>
-#include <stdlib.h>
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char gethostbyname ();
 int
 main ()
 {
-
-  FILE *f = fopen ("conftest.val", "w");
-  if (! f)
-    return 1;
-  if (((long int) (sizeof (long long))) < 0)
-    {
-      long int i = longval ();
-      if (i != ((long int) (sizeof (long long))))
-       return 1;
-      fprintf (f, "%ld", i);
-    }
-  else
-    {
-      unsigned long int i = ulongval ();
-      if (i != ((long int) (sizeof (long long))))
-       return 1;
-      fprintf (f, "%lu", i);
-    }
-  /* Do not output a trailing newline, as this causes \r\n confusion
-     on some platforms.  */
-  return ferror (f) || fclose (f) != 0;
-
+return gethostbyname ();
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_sizeof_long_long=`cat conftest.val`
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_socket_gethostbyname=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-if test "$ac_cv_type_long_long" = yes; then
-     { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (long long)
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: cannot compute sizeof (long long)
-See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }; }
-   else
-     ac_cv_sizeof_long_long=0
-   fi
+  ac_cv_lib_socket_gethostbyname=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f conftest.val
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_sizeof_long_long" >&5
-$as_echo "$ac_cv_sizeof_long_long" >&6; }
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_gethostbyname" >&5
+$as_echo "$ac_cv_lib_socket_gethostbyname" >&6; }
+if test "x$ac_cv_lib_socket_gethostbyname" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBSOCKET 1
 _ACEOF
 
+  LIBS="-lsocket $LIBS"
 
-if test "$ac_cv_sizeof_int" = 2 ; then
-  { $as_echo "$as_me:$LINENO: checking for int16_t" >&5
-$as_echo_n "checking for int16_t... " >&6; }
-if test "${ac_cv_type_int16_t+set}" = set; then
+else
+  # Unfortunately libsocket sometimes depends on libnsl.
+          # AC_CHECK_LIB's API is essentially broken so the following
+          # ugliness is necessary:
+          { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lsocket" >&5
+$as_echo_n "checking for gethostbyname in -lsocket... " >&6; }
+if test "${ac_cv_lib_socket_gethostbyname+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  ac_cv_type_int16_t=no
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsocket -lnsl $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-$ac_includes_default
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char gethostbyname ();
 int
 main ()
 {
-if (sizeof (int16_t))
-       return 0;
+return gethostbyname ();
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_socket_gethostbyname=yes
+else
+  ac_cv_lib_socket_gethostbyname=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_gethostbyname" >&5
+$as_echo "$ac_cv_lib_socket_gethostbyname" >&6; }
+if test "x$ac_cv_lib_socket_gethostbyname" = x""yes; then :
+  LIBS="-lsocket -lnsl $LIBS"
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lresolv" >&5
+$as_echo_n "checking for gethostbyname in -lresolv... " >&6; }
+if test "${ac_cv_lib_resolv_gethostbyname+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lresolv  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-$ac_includes_default
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char gethostbyname ();
 int
 main ()
 {
-if (sizeof ((int16_t)))
-         return 0;
+return gethostbyname ();
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_resolv_gethostbyname=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_type_int16_t=yes
+  ac_cv_lib_resolv_gethostbyname=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolv_gethostbyname" >&5
+$as_echo "$ac_cv_lib_resolv_gethostbyname" >&6; }
+if test "x$ac_cv_lib_resolv_gethostbyname" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBRESOLV 1
+_ACEOF
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  LIBS="-lresolv $LIBS"
 
+fi
 
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_int16_t" >&5
-$as_echo "$ac_cv_type_int16_t" >&6; }
-if test "x$ac_cv_type_int16_t" = x""yes; then
-  :
-else
 
-cat >>confdefs.h <<_ACEOF
-#define int16_t int
-_ACEOF
 
 fi
 
-  { $as_echo "$as_me:$LINENO: checking for uint16_t" >&5
-$as_echo_n "checking for uint16_t... " >&6; }
-if test "${ac_cv_type_uint16_t+set}" = set; then
+
+fi
+
+  ac_fn_c_check_func "$LINENO" "socket" "ac_cv_func_socket"
+if test "x$ac_cv_func_socket" = x""yes; then :
+
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for socket in -lsocket" >&5
+$as_echo_n "checking for socket in -lsocket... " >&6; }
+if test "${ac_cv_lib_socket_socket+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  ac_cv_type_uint16_t=no
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsocket  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-$ac_includes_default
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char socket ();
 int
 main ()
 {
-if (sizeof (uint16_t))
-       return 0;
+return socket ();
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_socket_socket=yes
+else
+  ac_cv_lib_socket_socket=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_socket" >&5
+$as_echo "$ac_cv_lib_socket_socket" >&6; }
+if test "x$ac_cv_lib_socket_socket" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBSOCKET 1
 _ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+
+  LIBS="-lsocket $LIBS"
+
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for socket in -lsocket" >&5
+$as_echo_n "checking for socket in -lsocket... " >&6; }
+if test "${ac_cv_lib_socket_socket+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsocket -lnsl $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-$ac_includes_default
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char socket ();
 int
 main ()
 {
-if (sizeof ((uint16_t)))
-         return 0;
+return socket ();
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_socket_socket=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  ac_cv_lib_socket_socket=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_socket" >&5
+$as_echo "$ac_cv_lib_socket_socket" >&6; }
+if test "x$ac_cv_lib_socket_socket" = x""yes; then :
+  LIBS="-lsocket -lnsl $LIBS"
+fi
 
-       ac_cv_type_uint16_t=yes
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+fi
 
 
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
+$as_echo_n "checking how to run the C preprocessor... " >&6; }
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+  CPP=
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_uint16_t" >&5
-$as_echo "$ac_cv_type_uint16_t" >&6; }
-if test "x$ac_cv_type_uint16_t" = x""yes; then
-  :
+if test -z "$CPP"; then
+  if test "${ac_cv_prog_CPP+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+      # Double quotes because CPP needs to be expanded
+    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+    do
+      ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+                    Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
 else
+  # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
 
-cat >>confdefs.h <<_ACEOF
-#define uint16_t unsigned int
+  # OK, works on sane cases.  Now check whether nonexistent headers
+  # can be detected and how.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
 _ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+  # Broken: success on invalid input.
+continue
+else
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
 
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+  break
 fi
 
-elif test "$ac_cv_sizeof_short" = 2 ; then
-  { $as_echo "$as_me:$LINENO: checking for int16_t" >&5
-$as_echo_n "checking for int16_t... " >&6; }
-if test "${ac_cv_type_int16_t+set}" = set; then
-  $as_echo_n "(cached) " >&6
+    done
+    ac_cv_prog_CPP=$CPP
+
+fi
+  CPP=$ac_cv_prog_CPP
 else
-  ac_cv_type_int16_t=no
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  ac_cv_prog_CPP=$CPP
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
+$as_echo "$CPP" >&6; }
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-if (sizeof (int16_t))
-       return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+                    Syntax error
 _ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+  # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether nonexistent headers
+  # can be detected and how.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-if (sizeof ((int16_t)))
-         return 0;
-  ;
-  return 0;
-}
+#include <ac_nonexistent.h>
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
+if ac_fn_c_try_cpp "$LINENO"; then :
+  # Broken: success on invalid input.
+continue
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
 
-       ac_cv_type_int16_t=yes
+else
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error "C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." "$LINENO" 5; }
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
+if test "${ac_cv_path_GREP+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -z "$GREP"; then
+  ac_path_GREP_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in grep ggrep; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+      { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
+# Check for GNU ac_path_GREP and select it if it is found.
+  # Check for GNU $ac_path_GREP
+case `"$ac_path_GREP" --version 2>&1` in
+*GNU*)
+  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+*)
+  ac_count=0
+  $as_echo_n 0123456789 >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    $as_echo 'GREP' >> "conftest.nl"
+    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
+    if test $ac_count -gt ${ac_path_GREP_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_GREP="$ac_path_GREP"
+      ac_path_GREP_max=$ac_count
+    fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+      $ac_path_GREP_found && break 3
+    done
+  done
+  done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_GREP"; then
+    as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+  fi
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
+  ac_cv_path_GREP=$GREP
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_int16_t" >&5
-$as_echo "$ac_cv_type_int16_t" >&6; }
-if test "x$ac_cv_type_int16_t" = x""yes; then
-  :
-else
-
-cat >>confdefs.h <<_ACEOF
-#define int16_t short
-_ACEOF
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
+$as_echo "$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
 
-fi
 
-  { $as_echo "$as_me:$LINENO: checking for uint16_t" >&5
-$as_echo_n "checking for uint16_t... " >&6; }
-if test "${ac_cv_type_uint16_t+set}" = set; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
+$as_echo_n "checking for egrep... " >&6; }
+if test "${ac_cv_path_EGREP+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  ac_cv_type_uint16_t=no
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-if (sizeof (uint16_t))
-       return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-if (sizeof ((uint16_t)))
-         return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
+  if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+   then ac_cv_path_EGREP="$GREP -E"
+   else
+     if test -z "$EGREP"; then
+  ac_path_EGREP_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in egrep; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
+      { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
+# Check for GNU ac_path_EGREP and select it if it is found.
+  # Check for GNU $ac_path_EGREP
+case `"$ac_path_EGREP" --version 2>&1` in
+*GNU*)
+  ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+*)
+  ac_count=0
+  $as_echo_n 0123456789 >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    $as_echo 'EGREP' >> "conftest.nl"
+    "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
+    if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_EGREP="$ac_path_EGREP"
+      ac_path_EGREP_max=$ac_count
+    fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
 esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_cv_type_uint16_t=yes
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+      $ac_path_EGREP_found && break 3
+    done
+  done
+  done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_EGREP"; then
+    as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+  fi
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
+  ac_cv_path_EGREP=$EGREP
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+   fi
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_uint16_t" >&5
-$as_echo "$ac_cv_type_uint16_t" >&6; }
-if test "x$ac_cv_type_uint16_t" = x""yes; then
-  :
-else
-
-cat >>confdefs.h <<_ACEOF
-#define uint16_t unsigned short
-_ACEOF
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
+$as_echo "$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
 
-fi
 
-else
-  { { $as_echo "$as_me:$LINENO: error: Cannot find a type with size of 16 bits" >&5
-$as_echo "$as_me: error: Cannot find a type with size of 16 bits" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-if test "$ac_cv_sizeof_int" = 4 ; then
-  { $as_echo "$as_me:$LINENO: checking for int32_t" >&5
-$as_echo_n "checking for int32_t... " >&6; }
-if test "${ac_cv_type_int32_t+set}" = set; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
+$as_echo_n "checking for ANSI C header files... " >&6; }
+if test "${ac_cv_header_stdc+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  ac_cv_type_int32_t=no
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-if (sizeof (int32_t))
-       return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-$ac_includes_default
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
 int
 main ()
 {
-if (sizeof ((int32_t)))
-         return 0;
+
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_header_stdc=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_type_int32_t=yes
+  ac_cv_header_stdc=no
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
+if test $ac_cv_header_stdc = yes; then
+  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <string.h>
 
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "memchr" >/dev/null 2>&1; then :
+
+else
+  ac_cv_header_stdc=no
 fi
+rm -f conftest*
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_int32_t" >&5
-$as_echo "$ac_cv_type_int32_t" >&6; }
-if test "x$ac_cv_type_int32_t" = x""yes; then
-  :
-else
 
-cat >>confdefs.h <<_ACEOF
-#define int32_t int
+if test $ac_cv_header_stdc = yes; then
+  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdlib.h>
+
 _ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "free" >/dev/null 2>&1; then :
+
+else
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
 
 fi
 
-  { $as_echo "$as_me:$LINENO: checking for uint32_t" >&5
-$as_echo_n "checking for uint32_t... " >&6; }
-if test "${ac_cv_type_uint32_t+set}" = set; then
-  $as_echo_n "(cached) " >&6
+if test $ac_cv_header_stdc = yes; then
+  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+  if test "$cross_compiling" = yes; then :
+  :
 else
-  ac_cv_type_uint32_t=no
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-if (sizeof (uint32_t))
-       return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-$ac_includes_default
+#include <ctype.h>
+#include <stdlib.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+                  (('a' <= (c) && (c) <= 'i') \
+                    || ('j' <= (c) && (c) <= 'r') \
+                    || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
 int
 main ()
 {
-if (sizeof ((uint32_t)))
-         return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  int i;
+  for (i = 0; i < 256; i++)
+    if (XOR (islower (i), ISLOWER (i))
+       || toupper (i) != TOUPPER (i))
+      return 2;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
 
-       ac_cv_type_uint32_t=yes
+else
+  ac_cv_header_stdc=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
+$as_echo "$ac_cv_header_stdc" >&6; }
+if test $ac_cv_header_stdc = yes; then
 
+$as_echo "#define STDC_HEADERS 1" >>confdefs.h
 
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+                 inttypes.h stdint.h unistd.h
+do :
+  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+"
+eval as_val=\$$as_ac_Header
+   if test "x$as_val" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_uint32_t" >&5
-$as_echo "$ac_cv_type_uint32_t" >&6; }
-if test "x$ac_cv_type_uint32_t" = x""yes; then
-  :
-else
 
-cat >>confdefs.h <<_ACEOF
-#define uint32_t unsigned int
+done
+
+
+for ac_header in crypt.h poll.h inttypes.h stdint.h sys/devpoll.h sys/epoll.h sys/event.h sys/param.h sys/resource.h sys/socket.h
+do :
+  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+eval as_val=\$$as_ac_Header
+   if test "x$as_val" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
 
 fi
 
-elif test "$ac_cv_sizeof_short" = 4 ; then
-  { $as_echo "$as_me:$LINENO: checking for int32_t" >&5
-$as_echo_n "checking for int32_t... " >&6; }
-if test "${ac_cv_type_int32_t+set}" = set; then
+done
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5
+$as_echo_n "checking whether byte ordering is bigendian... " >&6; }
+if test "${ac_cv_c_bigendian+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  ac_cv_type_int32_t=no
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
+  ac_cv_c_bigendian=unknown
+    # See if we're dealing with a universal compiler.
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifndef __APPLE_CC__
+              not a universal capable compiler
+            #endif
+            typedef int dummy;
+
 _ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+       # Check for potential -arch flags.  It is not universal unless
+       # there are at least two -arch flags with different values.
+       ac_arch=
+       ac_prev=
+       for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do
+        if test -n "$ac_prev"; then
+          case $ac_word in
+            i?86 | x86_64 | ppc | ppc64)
+              if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then
+                ac_arch=$ac_word
+              else
+                ac_cv_c_bigendian=universal
+                break
+              fi
+              ;;
+          esac
+          ac_prev=
+        elif test "x$ac_word" = "x-arch"; then
+          ac_prev=arch
+        fi
+       done
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    if test $ac_cv_c_bigendian = unknown; then
+      # See if sys/param.h defines the BYTE_ORDER macro.
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-$ac_includes_default
+#include <sys/types.h>
+            #include <sys/param.h>
+
 int
 main ()
 {
-if (sizeof (int32_t))
-       return 0;
+#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \
+                    && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \
+                    && LITTLE_ENDIAN)
+             bogus endian macros
+            #endif
+
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  # It does; now see whether it defined to BIG_ENDIAN or not.
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-$ac_includes_default
+#include <sys/types.h>
+               #include <sys/param.h>
+
 int
 main ()
 {
-if (sizeof ((int32_t)))
-         return 0;
+#if BYTE_ORDER != BIG_ENDIAN
+                not big endian
+               #endif
+
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_c_bigendian=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_type_int32_t=yes
+  ac_cv_c_bigendian=no
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_int32_t" >&5
-$as_echo "$ac_cv_type_int32_t" >&6; }
-if test "x$ac_cv_type_int32_t" = x""yes; then
-  :
-else
-
-cat >>confdefs.h <<_ACEOF
-#define int32_t short
-_ACEOF
-
-fi
-
-  { $as_echo "$as_me:$LINENO: checking for uint32_t" >&5
-$as_echo_n "checking for uint32_t... " >&6; }
-if test "${ac_cv_type_uint32_t+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_type_uint32_t=no
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+    fi
+    if test $ac_cv_c_bigendian = unknown; then
+      # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris).
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-$ac_includes_default
+#include <limits.h>
+
 int
 main ()
 {
-if (sizeof (uint32_t))
-       return 0;
+#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN)
+             bogus endian macros
+            #endif
+
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  # It does; now see whether it defined to _BIG_ENDIAN or not.
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-$ac_includes_default
+#include <limits.h>
+
 int
 main ()
 {
-if (sizeof ((uint32_t)))
-         return 0;
+#ifndef _BIG_ENDIAN
+                not big endian
+               #endif
+
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_c_bigendian=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_type_uint32_t=yes
+  ac_cv_c_bigendian=no
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_uint32_t" >&5
-$as_echo "$ac_cv_type_uint32_t" >&6; }
-if test "x$ac_cv_type_uint32_t" = x""yes; then
-  :
-else
-
-cat >>confdefs.h <<_ACEOF
-#define uint32_t unsigned short
-_ACEOF
-
-fi
-
-elif test "$ac_cv_sizeof_long" = 4 ; then
-  { $as_echo "$as_me:$LINENO: checking for int32_t" >&5
-$as_echo_n "checking for int32_t... " >&6; }
-if test "${ac_cv_type_int32_t+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_type_int32_t=no
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+    fi
+    if test $ac_cv_c_bigendian = unknown; then
+      # Compile a test program.
+      if test "$cross_compiling" = yes; then :
+  # Try to guess by grepping values from an object file.
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-$ac_includes_default
+short int ascii_mm[] =
+                 { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
+               short int ascii_ii[] =
+                 { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
+               int use_ascii (int i) {
+                 return ascii_mm[i] + ascii_ii[i];
+               }
+               short int ebcdic_ii[] =
+                 { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
+               short int ebcdic_mm[] =
+                 { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
+               int use_ebcdic (int i) {
+                 return ebcdic_mm[i] + ebcdic_ii[i];
+               }
+               extern int foo;
+
 int
 main ()
 {
-if (sizeof (int32_t))
-       return 0;
+return use_ascii (foo) == use_ebcdic (foo);
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then
+             ac_cv_c_bigendian=yes
+           fi
+           if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
+             if test "$ac_cv_c_bigendian" = unknown; then
+               ac_cv_c_bigendian=no
+             else
+               # finding both strings is unlikely to happen, but who knows?
+               ac_cv_c_bigendian=unknown
+             fi
+           fi
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 $ac_includes_default
 int
 main ()
 {
-if (sizeof ((int32_t)))
-         return 0;
+
+            /* Are we little or big endian?  From Harbison&Steele.  */
+            union
+            {
+              long int l;
+              char c[sizeof (long int)];
+            } u;
+            u.l = 1;
+            return u.c[sizeof (long int) - 1] == 1;
+
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
+if ac_fn_c_try_run "$LINENO"; then :
+  ac_cv_c_bigendian=no
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  ac_cv_c_bigendian=yes
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
 
-       ac_cv_type_int32_t=yes
+    fi
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5
+$as_echo "$ac_cv_c_bigendian" >&6; }
+ case $ac_cv_c_bigendian in #(
+   yes)
+     $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h
+;; #(
+   no)
+      ;; #(
+   universal)
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
 
+     ;; #(
+   *)
+     as_fn_error "unknown endianness
+ presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;;
+ esac
 
-fi
+ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
+if test "x$ac_cv_type_size_t" = x""yes; then :
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_int32_t" >&5
-$as_echo "$ac_cv_type_int32_t" >&6; }
-if test "x$ac_cv_type_int32_t" = x""yes; then
-  :
 else
 
 cat >>confdefs.h <<_ACEOF
-#define int32_t long
+#define size_t unsigned int
 _ACEOF
 
 fi
 
-  { $as_echo "$as_me:$LINENO: checking for uint32_t" >&5
-$as_echo_n "checking for uint32_t... " >&6; }
-if test "${ac_cv_type_uint32_t+set}" = set; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5
+$as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; }
+if test "${ac_cv_header_time+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  ac_cv_type_uint32_t=no
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-$ac_includes_default
+#include <sys/types.h>
+#include <sys/time.h>
+#include <time.h>
+
 int
 main ()
 {
-if (sizeof (uint32_t))
-       return 0;
+if ((struct tm *) 0)
+return 0;
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_header_time=yes
+else
+  ac_cv_header_time=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time" >&5
+$as_echo "$ac_cv_header_time" >&6; }
+if test $ac_cv_header_time = yes; then
+
+$as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5
+$as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; }
+if test "${ac_cv_struct_tm+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-$ac_includes_default
+#include <sys/types.h>
+#include <time.h>
+
 int
 main ()
 {
-if (sizeof ((uint32_t)))
-         return 0;
+struct tm tm;
+                                    int *p = &tm.tm_sec;
+                                    return !p;
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_struct_tm=time.h
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  ac_cv_struct_tm=sys/time.h
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_tm" >&5
+$as_echo "$ac_cv_struct_tm" >&6; }
+if test $ac_cv_struct_tm = sys/time.h; then
+
+$as_echo "#define TM_IN_SYS_TIME 1" >>confdefs.h
 
-       ac_cv_type_uint32_t=yes
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uid_t in sys/types.h" >&5
+$as_echo_n "checking for uid_t in sys/types.h... " >&6; }
+if test "${ac_cv_type_uid_t+set}" = set; then :
+  $as_echo_n "(cached) " >&6
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
 
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "uid_t" >/dev/null 2>&1; then :
+  ac_cv_type_uid_t=yes
+else
+  ac_cv_type_uid_t=no
+fi
+rm -f conftest*
 
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_uid_t" >&5
+$as_echo "$ac_cv_type_uid_t" >&6; }
+if test $ac_cv_type_uid_t = no; then
+
+$as_echo "#define uid_t int" >>confdefs.h
+
+
+$as_echo "#define gid_t int" >>confdefs.h
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_uint32_t" >&5
-$as_echo "$ac_cv_type_uint32_t" >&6; }
-if test "x$ac_cv_type_uint32_t" = x""yes; then
-  :
+
+# The cast to long int works around a bug in the HP C Compiler
+# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+# This bug is HP SR number 8606223364.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of short" >&5
+$as_echo_n "checking size of short... " >&6; }
+if test "${ac_cv_sizeof_short+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (short))" "ac_cv_sizeof_short"        "$ac_includes_default"; then :
+
 else
+  if test "$ac_cv_type_short" = yes; then
+     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ as_fn_set_status 77
+as_fn_error "cannot compute sizeof (short)
+See \`config.log' for more details." "$LINENO" 5; }; }
+   else
+     ac_cv_sizeof_short=0
+   fi
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_short" >&5
+$as_echo "$ac_cv_sizeof_short" >&6; }
+
+
 
 cat >>confdefs.h <<_ACEOF
-#define uint32_t unsigned long
+#define SIZEOF_SHORT $ac_cv_sizeof_short
 _ACEOF
 
-fi
+
+# The cast to long int works around a bug in the HP C Compiler
+# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+# This bug is HP SR number 8606223364.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int" >&5
+$as_echo_n "checking size of int... " >&6; }
+if test "${ac_cv_sizeof_int+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int"        "$ac_includes_default"; then :
 
 else
-  { { $as_echo "$as_me:$LINENO: error: Cannot find a type with size of 32 bits" >&5
-$as_echo "$as_me: error: Cannot find a type with size of 32 bits" >&2;}
-   { (exit 1); exit 1; }; }
+  if test "$ac_cv_type_int" = yes; then
+     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ as_fn_set_status 77
+as_fn_error "cannot compute sizeof (int)
+See \`config.log' for more details." "$LINENO" 5; }; }
+   else
+     ac_cv_sizeof_int=0
+   fi
 fi
-if test "$ac_cv_sizeof_int64_t" = 8 ; then
-  { $as_echo "$as_me:$LINENO: checking for int64_t" >&5
-$as_echo_n "checking for int64_t... " >&6; }
-if test "${ac_cv_type_int64_t+set}" = set; then
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int" >&5
+$as_echo "$ac_cv_sizeof_int" >&6; }
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_INT $ac_cv_sizeof_int
+_ACEOF
+
+
+# The cast to long int works around a bug in the HP C Compiler
+# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+# This bug is HP SR number 8606223364.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5
+$as_echo_n "checking size of long... " >&6; }
+if test "${ac_cv_sizeof_long+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  ac_cv_type_int64_t=no
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-if (sizeof (int64_t))
-       return 0;
-  ;
-  return 0;
-}
+  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long"        "$ac_includes_default"; then :
+
+else
+  if test "$ac_cv_type_long" = yes; then
+     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ as_fn_set_status 77
+as_fn_error "cannot compute sizeof (long)
+See \`config.log' for more details." "$LINENO" 5; }; }
+   else
+     ac_cv_sizeof_long=0
+   fi
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5
+$as_echo "$ac_cv_sizeof_long" >&6; }
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_LONG $ac_cv_sizeof_long
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
+
+
+# The cast to long int works around a bug in the HP C Compiler
+# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+# This bug is HP SR number 8606223364.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of void *" >&5
+$as_echo_n "checking size of void *... " >&6; }
+if test "${ac_cv_sizeof_void_p+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (void *))" "ac_cv_sizeof_void_p"        "$ac_includes_default"; then :
+
+else
+  if test "$ac_cv_type_void_p" = yes; then
+     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ as_fn_set_status 77
+as_fn_error "cannot compute sizeof (void *)
+See \`config.log' for more details." "$LINENO" 5; }; }
+   else
+     ac_cv_sizeof_void_p=0
+   fi
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_void_p" >&5
+$as_echo "$ac_cv_sizeof_void_p" >&6; }
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_VOID_P $ac_cv_sizeof_void_p
 _ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-if (sizeof ((int64_t)))
-         return 0;
-  ;
-  return 0;
-}
+
+
+# The cast to long int works around a bug in the HP C Compiler
+# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+# This bug is HP SR number 8606223364.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int64_t" >&5
+$as_echo_n "checking size of int64_t... " >&6; }
+if test "${ac_cv_sizeof_int64_t+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int64_t))" "ac_cv_sizeof_int64_t"        "$ac_includes_default"; then :
+
+else
+  if test "$ac_cv_type_int64_t" = yes; then
+     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ as_fn_set_status 77
+as_fn_error "cannot compute sizeof (int64_t)
+See \`config.log' for more details." "$LINENO" 5; }; }
+   else
+     ac_cv_sizeof_int64_t=0
+   fi
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int64_t" >&5
+$as_echo "$ac_cv_sizeof_int64_t" >&6; }
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_INT64_T $ac_cv_sizeof_int64_t
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
+
+
+# The cast to long int works around a bug in the HP C Compiler
+# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+# This bug is HP SR number 8606223364.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long long" >&5
+$as_echo_n "checking size of long long... " >&6; }
+if test "${ac_cv_sizeof_long_long+set}" = set; then :
+  $as_echo_n "(cached) " >&6
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long long))" "ac_cv_sizeof_long_long"        "$ac_includes_default"; then :
+
+else
+  if test "$ac_cv_type_long_long" = yes; then
+     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ as_fn_set_status 77
+as_fn_error "cannot compute sizeof (long long)
+See \`config.log' for more details." "$LINENO" 5; }; }
+   else
+     ac_cv_sizeof_long_long=0
+   fi
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long_long" >&5
+$as_echo "$ac_cv_sizeof_long_long" >&6; }
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long
+_ACEOF
 
-       ac_cv_type_int64_t=yes
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+if test "$ac_cv_sizeof_int" = 2 ; then
+  ac_fn_c_check_type "$LINENO" "int16_t" "ac_cv_type_int16_t" "$ac_includes_default"
+if test "x$ac_cv_type_int16_t" = x""yes; then :
+
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
+cat >>confdefs.h <<_ACEOF
+#define int16_t int
+_ACEOF
 
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_int64_t" >&5
-$as_echo "$ac_cv_type_int64_t" >&6; }
+  ac_fn_c_check_type "$LINENO" "uint16_t" "ac_cv_type_uint16_t" "$ac_includes_default"
+if test "x$ac_cv_type_uint16_t" = x""yes; then :
 
-  { $as_echo "$as_me:$LINENO: checking for uint64_t" >&5
-$as_echo_n "checking for uint64_t... " >&6; }
-if test "${ac_cv_type_uint64_t+set}" = set; then
-  $as_echo_n "(cached) " >&6
 else
-  ac_cv_type_uint64_t=no
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-if (sizeof (uint64_t))
-       return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-if (sizeof ((uint64_t)))
-         return 0;
-  ;
-  return 0;
-}
+
+cat >>confdefs.h <<_ACEOF
+#define uint16_t unsigned int
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_cv_type_uint64_t=yes
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+elif test "$ac_cv_sizeof_short" = 2 ; then
+  ac_fn_c_check_type "$LINENO" "int16_t" "ac_cv_type_int16_t" "$ac_includes_default"
+if test "x$ac_cv_type_int16_t" = x""yes; then :
+
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
+cat >>confdefs.h <<_ACEOF
+#define int16_t short
+_ACEOF
 
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_uint64_t" >&5
-$as_echo "$ac_cv_type_uint64_t" >&6; }
+  ac_fn_c_check_type "$LINENO" "uint16_t" "ac_cv_type_uint16_t" "$ac_includes_default"
+if test "x$ac_cv_type_uint16_t" = x""yes; then :
 
-elif test "$ac_cv_sizeof_long_long" = 8 ; then
-  { $as_echo "$as_me:$LINENO: checking for int64_t" >&5
-$as_echo_n "checking for int64_t... " >&6; }
-if test "${ac_cv_type_int64_t+set}" = set; then
-  $as_echo_n "(cached) " >&6
 else
-  ac_cv_type_int64_t=no
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-if (sizeof (int64_t))
-       return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-if (sizeof ((int64_t)))
-         return 0;
-  ;
-  return 0;
-}
+
+cat >>confdefs.h <<_ACEOF
+#define uint16_t unsigned short
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_cv_type_int64_t=yes
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
+  as_fn_error "Cannot find a type with size of 16 bits" "$LINENO" 5
 fi
+if test "$ac_cv_sizeof_int" = 4 ; then
+  ac_fn_c_check_type "$LINENO" "int32_t" "ac_cv_type_int32_t" "$ac_includes_default"
+if test "x$ac_cv_type_int32_t" = x""yes; then :
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_int64_t" >&5
-$as_echo "$ac_cv_type_int64_t" >&6; }
-if test "x$ac_cv_type_int64_t" = x""yes; then
-  :
 else
 
 cat >>confdefs.h <<_ACEOF
-#define int64_t long long
+#define int32_t int
 _ACEOF
 
 fi
 
-  { $as_echo "$as_me:$LINENO: checking for uint64_t" >&5
-$as_echo_n "checking for uint64_t... " >&6; }
-if test "${ac_cv_type_uint64_t+set}" = set; then
-  $as_echo_n "(cached) " >&6
+  ac_fn_c_check_type "$LINENO" "uint32_t" "ac_cv_type_uint32_t" "$ac_includes_default"
+if test "x$ac_cv_type_uint32_t" = x""yes; then :
+
 else
-  ac_cv_type_uint64_t=no
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-if (sizeof (uint64_t))
-       return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-if (sizeof ((uint64_t)))
-         return 0;
-  ;
-  return 0;
-}
+
+cat >>confdefs.h <<_ACEOF
+#define uint32_t unsigned int
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_cv_type_uint64_t=yes
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+elif test "$ac_cv_sizeof_short" = 4 ; then
+  ac_fn_c_check_type "$LINENO" "int32_t" "ac_cv_type_int32_t" "$ac_includes_default"
+if test "x$ac_cv_type_int32_t" = x""yes; then :
+
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
+cat >>confdefs.h <<_ACEOF
+#define int32_t short
+_ACEOF
 
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_uint64_t" >&5
-$as_echo "$ac_cv_type_uint64_t" >&6; }
-if test "x$ac_cv_type_uint64_t" = x""yes; then
-  :
+  ac_fn_c_check_type "$LINENO" "uint32_t" "ac_cv_type_uint32_t" "$ac_includes_default"
+if test "x$ac_cv_type_uint32_t" = x""yes; then :
+
 else
 
 cat >>confdefs.h <<_ACEOF
-#define uint64_t unsigned long long
+#define uint32_t unsigned short
 _ACEOF
 
 fi
 
-else
-  { { $as_echo "$as_me:$LINENO: error: Cannot find a type with size of 64 bits" >&5
-$as_echo "$as_me: error: Cannot find a type with size of 64 bits" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-{ $as_echo "$as_me:$LINENO: checking for struct sockaddr_in6" >&5
-$as_echo_n "checking for struct sockaddr_in6... " >&6; }
-if test "${ac_cv_type_struct_sockaddr_in6+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_type_struct_sockaddr_in6=no
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-#include <netinet/in.h>
+elif test "$ac_cv_sizeof_long" = 4 ; then
+  ac_fn_c_check_type "$LINENO" "int32_t" "ac_cv_type_int32_t" "$ac_includes_default"
+if test "x$ac_cv_type_int32_t" = x""yes; then :
 
-int
-main ()
-{
-if (sizeof (struct sockaddr_in6))
-       return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-#include <netinet/in.h>
+else
 
-int
-main ()
-{
-if (sizeof ((struct sockaddr_in6)))
-         return 0;
-  ;
-  return 0;
-}
+cat >>confdefs.h <<_ACEOF
+#define int32_t long
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_cv_type_struct_sockaddr_in6=yes
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  ac_fn_c_check_type "$LINENO" "uint32_t" "ac_cv_type_uint32_t" "$ac_includes_default"
+if test "x$ac_cv_type_uint32_t" = x""yes; then :
+
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
+cat >>confdefs.h <<_ACEOF
+#define uint32_t unsigned long
+_ACEOF
 
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_struct_sockaddr_in6" >&5
-$as_echo "$ac_cv_type_struct_sockaddr_in6" >&6; }
-if test "x$ac_cv_type_struct_sockaddr_in6" = x""yes; then
-  unet_have_sockaddr_in6="yes"
 else
-  unet_have_sockaddr_in6="no"
+  as_fn_error "Cannot find a type with size of 32 bits" "$LINENO" 5
 fi
+if test "$ac_cv_sizeof_int64_t" = 8 ; then
+  ac_fn_c_check_type "$LINENO" "int64_t" "ac_cv_type_int64_t" "$ac_includes_default"
+if test "x$ac_cv_type_int64_t" = x""yes; then :
 
+fi
+
+  ac_fn_c_check_type "$LINENO" "uint64_t" "ac_cv_type_uint64_t" "$ac_includes_default"
+if test "x$ac_cv_type_uint64_t" = x""yes; then :
+
+fi
+
+elif test "$ac_cv_sizeof_long_long" = 8 ; then
+  ac_fn_c_check_type "$LINENO" "int64_t" "ac_cv_type_int64_t" "$ac_includes_default"
+if test "x$ac_cv_type_int64_t" = x""yes; then :
 
-{ $as_echo "$as_me:$LINENO: checking for socklen_t" >&5
-$as_echo_n "checking for socklen_t... " >&6; }
-if test "${ac_cv_type_socklen_t+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_type_socklen_t=no
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-#include<sys/socket.h>
-
-int
-main ()
-{
-if (sizeof (socklen_t))
-       return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-#include<sys/socket.h>
-
-int
-main ()
-{
-if (sizeof ((socklen_t)))
-         return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_cv_type_socklen_t=yes
+cat >>confdefs.h <<_ACEOF
+#define int64_t long long
+_ACEOF
+
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  ac_fn_c_check_type "$LINENO" "uint64_t" "ac_cv_type_uint64_t" "$ac_includes_default"
+if test "x$ac_cv_type_uint64_t" = x""yes; then :
+
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
+cat >>confdefs.h <<_ACEOF
+#define uint64_t unsigned long long
+_ACEOF
 
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+  as_fn_error "Cannot find a type with size of 64 bits" "$LINENO" 5
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_socklen_t" >&5
-$as_echo "$ac_cv_type_socklen_t" >&6; }
-if test "x$ac_cv_type_socklen_t" = x""yes; then
-  :
+ac_fn_c_check_type "$LINENO" "struct sockaddr_in6" "ac_cv_type_struct_sockaddr_in6" "#include <sys/types.h>
+#include <netinet/in.h>
+"
+if test "x$ac_cv_type_struct_sockaddr_in6" = x""yes; then :
+  unet_have_sockaddr_in6="yes"
+else
+  unet_have_sockaddr_in6="no"
+fi
+
+
+ac_fn_c_check_type "$LINENO" "socklen_t" "ac_cv_type_socklen_t" "#include <sys/types.h>
+#include<sys/socket.h>
+"
+if test "x$ac_cv_type_socklen_t" = x""yes; then :
+
 else
 
-  { $as_echo "$as_me:$LINENO: checking for socklen_t equivalent" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for socklen_t equivalent" >&5
 $as_echo_n "checking for socklen_t equivalent... " >&6; }
-  if test "${curl_cv_socklen_t_equiv+set}" = set; then
+  if test "${curl_cv_socklen_t_equiv+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
 
     curl_cv_socklen_t_equiv=
     for arg2 in "struct sockaddr" void ; do
       for t in int size_t unsigned long "unsigned long" ; do
-        cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/types.h>
 #include <sys/socket.h>
@@ -9643,40 +5301,17 @@ $t len;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   curl_cv_socklen_t_equiv="$t"
   break
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
       done
     done
 
 fi
 
-  { $as_echo "$as_me:$LINENO: result: $curl_cv_socklen_t_equiv" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $curl_cv_socklen_t_equiv" >&5
 $as_echo "$curl_cv_socklen_t_equiv" >&6; }
 
 cat >>confdefs.h <<_ACEOF
@@ -9686,103 +5321,12 @@ _ACEOF
 fi
 
 
-
-
-
-
 for ac_func in kqueue setrlimit getrusage times
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+do :
+  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+eval as_val=\$$as_ac_var
+   if test "x$as_val" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
@@ -9791,16 +5335,12 @@ fi
 done
 
 
-{ $as_echo "$as_me:$LINENO: checking for sys/wait.h that is POSIX.1 compatible" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sys/wait.h that is POSIX.1 compatible" >&5
 $as_echo_n "checking for sys/wait.h that is POSIX.1 compatible... " >&6; }
-if test "${ac_cv_header_sys_wait_h+set}" = set; then
+if test "${ac_cv_header_sys_wait_h+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/types.h>
 #include <sys/wait.h>
@@ -9821,63 +5361,33 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_header_sys_wait_h=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_header_sys_wait_h=no
+  ac_cv_header_sys_wait_h=no
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_sys_wait_h" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_sys_wait_h" >&5
 $as_echo "$ac_cv_header_sys_wait_h" >&6; }
 if test $ac_cv_header_sys_wait_h = yes; then
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_SYS_WAIT_H 1
-_ACEOF
+$as_echo "#define HAVE_SYS_WAIT_H 1" >>confdefs.h
 
 fi
 
-{ $as_echo "$as_me:$LINENO: checking for restartable system calls" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for restartable system calls" >&5
 $as_echo_n "checking for restartable system calls... " >&6; }
-if test "${ac_cv_sys_restartable_syscalls+set}" = set; then
+if test "${ac_cv_sys_restartable_syscalls+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then
-  { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+  if test "$cross_compiling" = yes; then :
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: cannot run test program while cross compiling
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: cannot run test program while cross compiling
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }; }
+as_fn_error "cannot run test program while cross compiling
+See \`config.log' for more details." "$LINENO" 5; }
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 /* Exit 0 (true) if wait returns something other than -1,
    i.e. the pid of the child, which means that wait was restarted
@@ -9919,66 +5429,37 @@ main ()
   return status == -1;
 }
 _ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+if ac_fn_c_try_run "$LINENO"; then :
   ac_cv_sys_restartable_syscalls=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_sys_restartable_syscalls=no
+  ac_cv_sys_restartable_syscalls=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_sys_restartable_syscalls" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_restartable_syscalls" >&5
 $as_echo "$ac_cv_sys_restartable_syscalls" >&6; }
 if test $ac_cv_sys_restartable_syscalls = yes; then
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_RESTARTABLE_SYSCALLS 1
-_ACEOF
+$as_echo "#define HAVE_RESTARTABLE_SYSCALLS 1" >>confdefs.h
 
 fi
 
 
-{ $as_echo "$as_me:$LINENO: checking for donuts" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for donuts" >&5
 $as_echo_n "checking for donuts... " >&6; }
-{ $as_echo "$as_me:$LINENO: result: yes" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 
 for ac_prog in gawk mawk nawk awk
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_AWK+set}" = set; then
+if test "${ac_cv_prog_AWK+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$AWK"; then
@@ -9989,24 +5470,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_AWK="$ac_prog"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 AWK=$ac_cv_prog_AWK
 if test -n "$AWK"; then
-  { $as_echo "$as_me:$LINENO: result: $AWK" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
 $as_echo "$AWK" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
   test -n "$AWK" && break
 done
 
-{ $as_echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
 set x ${MAKE-make}
 ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then
+if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then :
   $as_echo_n "(cached) " >&6
 else
   cat >conftest.make <<\_ACEOF
@@ -10036,11 +5517,11 @@ esac
 rm -f conftest.make
 fi
 if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
-  { $as_echo "$as_me:$LINENO: result: yes" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
   SET_MAKE=
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
   SET_MAKE="MAKE=${MAKE-make}"
 fi
 # OS/2's system install, which has a completely different semantic
 # ./install, which can be erroneously created by make from ./install.sh.
 # Reject install programs that cannot install multiple files.
-{ $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
 $as_echo_n "checking for a BSD-compatible install... " >&6; }
 if test -z "$INSTALL"; then
-if test "${ac_cv_path_install+set}" = set; then
+if test "${ac_cv_path_install+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -10070,11 +5551,11 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in
-  ./ | .// | /cC/* | \
+    # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in #((
+  ./ | .// | /[cC]/* | \
   /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
-  ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
+  ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
   /usr/ucb/* ) ;;
   *)
     # OSF1 and SCO ODT 3.0 have their own names for install.
@@ -10111,7 +5592,7 @@ case $as_dir/ in
     ;;
 esac
 
-done
+  done
 IFS=$as_save_IFS
 
 rm -rf conftest.one conftest.two conftest.dir
@@ -10127,7 +5608,7 @@ fi
     INSTALL=$ac_install_sh
   fi
 fi
-{ $as_echo "$as_me:$LINENO: result: $INSTALL" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
 $as_echo "$INSTALL" >&6; }
 
 # Use test -z because SunOS4 sh mishandles braces in ${var-val}.
@@ -10138,14 +5619,14 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
 
 test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
 
-{ $as_echo "$as_me:$LINENO: checking whether ln -s works" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
 $as_echo_n "checking whether ln -s works... " >&6; }
 LN_S=$as_ln_s
 if test "$LN_S" = "ln -s"; then
-  { $as_echo "$as_me:$LINENO: result: yes" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no, using $LN_S" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
 $as_echo "no, using $LN_S" >&6; }
 fi
 
@@ -10153,9 +5634,9 @@ for ac_prog in rm
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_RMPROG+set}" = set; then
+if test "${ac_cv_path_RMPROG+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $RMPROG in
@@ -10168,14 +5649,14 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_RMPROG="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
   ;;
@@ -10183,10 +5664,10 @@ esac
 fi
 RMPROG=$ac_cv_path_RMPROG
 if test -n "$RMPROG"; then
-  { $as_echo "$as_me:$LINENO: result: $RMPROG" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RMPROG" >&5
 $as_echo "$RMPROG" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -10199,9 +5680,9 @@ for ac_prog in sh
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_SHPROG+set}" = set; then
+if test "${ac_cv_path_SHPROG+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $SHPROG in
@@ -10214,14 +5695,14 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_SHPROG="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
   ;;
@@ -10229,10 +5710,10 @@ esac
 fi
 SHPROG=$ac_cv_path_SHPROG
 if test -n "$SHPROG"; then
-  { $as_echo "$as_me:$LINENO: result: $SHPROG" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SHPROG" >&5
 $as_echo "$SHPROG" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -10246,9 +5727,9 @@ for ac_prog in flex lex
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_LEX+set}" = set; then
+if test "${ac_cv_prog_LEX+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$LEX"; then
@@ -10259,24 +5740,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_LEX="$ac_prog"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 LEX=$ac_cv_prog_LEX
 if test -n "$LEX"; then
-  { $as_echo "$as_me:$LINENO: result: $LEX" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LEX" >&5
 $as_echo "$LEX" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -10305,20 +5786,20 @@ main (void)
   return ! yylex () + ! yywrap ();
 }
 _ACEOF
-{ (ac_try="$LEX conftest.l"
+{ ac_try="$LEX conftest.l"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
   (eval "$LEX conftest.l") 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ $as_echo "$as_me:$LINENO: checking lex output file root" >&5
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking lex output file root" >&5
 $as_echo_n "checking lex output file root... " >&6; }
-if test "${ac_cv_prog_lex_root+set}" = set; then
+if test "${ac_cv_prog_lex_root+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -10327,19 +5808,17 @@ if test -f lex.yy.c; then
 elif test -f lexyy.c; then
   ac_cv_prog_lex_root=lexyy
 else
-  { { $as_echo "$as_me:$LINENO: error: cannot find output from $LEX; giving up" >&5
-$as_echo "$as_me: error: cannot find output from $LEX; giving up" >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "cannot find output from $LEX; giving up" "$LINENO" 5
 fi
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_lex_root" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_lex_root" >&5
 $as_echo "$ac_cv_prog_lex_root" >&6; }
 LEX_OUTPUT_ROOT=$ac_cv_prog_lex_root
 
 if test -z "${LEXLIB+set}"; then
-  { $as_echo "$as_me:$LINENO: checking lex library" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking lex library" >&5
 $as_echo_n "checking lex library... " >&6; }
-if test "${ac_cv_lib_lex+set}" = set; then
+if test "${ac_cv_lib_lex+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -10347,55 +5826,29 @@ else
     ac_cv_lib_lex='none needed'
     for ac_lib in '' -lfl -ll; do
       LIBS="$ac_lib $ac_save_LIBS"
-      cat >conftest.$ac_ext <<_ACEOF
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 `cat $LEX_OUTPUT_ROOT.c`
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_lib_lex=$ac_lib
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
       test "$ac_cv_lib_lex" != 'none needed' && break
     done
     LIBS=$ac_save_LIBS
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_lex" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lex" >&5
 $as_echo "$ac_cv_lib_lex" >&6; }
   test "$ac_cv_lib_lex" != 'none needed' && LEXLIB=$ac_cv_lib_lex
 fi
 
 
-{ $as_echo "$as_me:$LINENO: checking whether yytext is a pointer" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether yytext is a pointer" >&5
 $as_echo_n "checking whether yytext is a pointer... " >&6; }
-if test "${ac_cv_prog_lex_yytext_pointer+set}" = set; then
+if test "${ac_cv_prog_lex_yytext_pointer+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   # POSIX says lex can declare yytext either as a pointer or an array; the
@@ -10404,76 +5857,44 @@ else
 ac_cv_prog_lex_yytext_pointer=no
 ac_save_LIBS=$LIBS
 LIBS="$LEXLIB $ac_save_LIBS"
-cat >conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 #define YYTEXT_POINTER 1
 `cat $LEX_OUTPUT_ROOT.c`
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_prog_lex_yytext_pointer=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_save_LIBS
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_lex_yytext_pointer" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_lex_yytext_pointer" >&5
 $as_echo "$ac_cv_prog_lex_yytext_pointer" >&6; }
 if test $ac_cv_prog_lex_yytext_pointer = yes; then
 
-cat >>confdefs.h <<\_ACEOF
-#define YYTEXT_POINTER 1
-_ACEOF
+$as_echo "#define YYTEXT_POINTER 1" >>confdefs.h
 
 fi
 rm -f conftest.l $LEX_OUTPUT_ROOT.c
 
 fi
 if test "$LEX" = ":" ; then
-  { { $as_echo "$as_me:$LINENO: error: Cannot find flex." >&5
-$as_echo "$as_me: error: Cannot find flex." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "Cannot find flex." "$LINENO" 5
 elif echo "" | $LEX -V -v --version > /dev/null 2>&1 ; then
   :
 else
-  { { $as_echo "$as_me:$LINENO: error: Cannot use $LEX as flex." >&5
-$as_echo "$as_me: error: Cannot use $LEX as flex." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "Cannot use $LEX as flex." "$LINENO" 5
 fi
 
 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
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_YACC+set}" = set; then
+if test "${ac_cv_prog_YACC+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$YACC"; then
@@ -10484,24 +5905,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_YACC="$ac_prog"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 YACC=$ac_cv_prog_YACC
 if test -n "$YACC"; then
-  { $as_echo "$as_me:$LINENO: result: $YACC" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $YACC" >&5
 $as_echo "$YACC" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -10511,35 +5932,26 @@ done
 test -n "$YACC" || YACC="yacc"
 
 if test "$YACC" = ":" ; then
-  { { $as_echo "$as_me:$LINENO: error: Cannot find yacc." >&5
-$as_echo "$as_me: error: Cannot find yacc." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "Cannot find yacc." "$LINENO" 5
 elif echo "" | $YACC -V -v --version > /dev/null 2>&1 ; then
   :
 else
-  { $as_echo "$as_me:$LINENO: WARNING: $YACC may not work as yacc." >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $YACC may not work as yacc." >&5
 $as_echo "$as_me: WARNING: $YACC may not work as yacc." >&2;}
 fi
 
-{ $as_echo "$as_me:$LINENO: checking for posix non-blocking" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for posix non-blocking" >&5
 $as_echo_n "checking for posix non-blocking... " >&6; }
-if test "${unet_cv_sys_nonblocking_posix+set}" = set; then
+if test "${unet_cv_sys_nonblocking_posix+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then
-  { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+  if test "$cross_compiling" = yes; then :
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: cannot run test program while cross compiling
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: cannot run test program while cross compiling
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }; }
+as_fn_error "cannot run test program while cross compiling
+See \`config.log' for more details." "$LINENO" 5; }
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/types.h>
 #include <sys/socket.h>
@@ -10565,71 +5977,35 @@ int main(void)
   exit(1);
 }
 _ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+if ac_fn_c_try_run "$LINENO"; then :
   unet_cv_sys_nonblocking_posix=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-unet_cv_sys_nonblocking_posix=no
+  unet_cv_sys_nonblocking_posix=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-
 fi
-{ $as_echo "$as_me:$LINENO: result: $unet_cv_sys_nonblocking_posix" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $unet_cv_sys_nonblocking_posix" >&5
 $as_echo "$unet_cv_sys_nonblocking_posix" >&6; }
 if test $unet_cv_sys_nonblocking_posix = yes; then
 
-cat >>confdefs.h <<\_ACEOF
-#define NBLOCK_POSIX /**/
-_ACEOF
+$as_echo "#define NBLOCK_POSIX /**/" >>confdefs.h
 
 else
-{ $as_echo "$as_me:$LINENO: checking for bsd non-blocking" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for bsd non-blocking" >&5
 $as_echo_n "checking for bsd non-blocking... " >&6; }
-if test "${unet_cv_sys_nonblocking_bsd+set}" = set; then
+if test "${unet_cv_sys_nonblocking_bsd+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then
-  { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+  if test "$cross_compiling" = yes; then :
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: cannot run test program while cross compiling
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: cannot run test program while cross compiling
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }; }
+as_fn_error "cannot run test program while cross compiling
+See \`config.log' for more details." "$LINENO" 5; }
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/types.h>
 #include <sys/socket.h>
@@ -10655,69 +6031,34 @@ int main(void)
   exit(1);
 }
 _ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+if ac_fn_c_try_run "$LINENO"; then :
   unet_cv_sys_nonblocking_bsd=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-unet_cv_sys_nonblocking_bsd=no
+  unet_cv_sys_nonblocking_bsd=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-
 fi
-{ $as_echo "$as_me:$LINENO: result: $unet_cv_sys_nonblocking_bsd" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $unet_cv_sys_nonblocking_bsd" >&5
 $as_echo "$unet_cv_sys_nonblocking_bsd" >&6; }
 if test $unet_cv_sys_nonblocking_bsd = yes; then
 
-cat >>confdefs.h <<\_ACEOF
-#define NBLOCK_BSD /**/
-_ACEOF
+$as_echo "#define NBLOCK_BSD /**/" >>confdefs.h
 
 else
 
-cat >>confdefs.h <<\_ACEOF
-#define NBLOCK_SYSV /**/
-_ACEOF
+$as_echo "#define NBLOCK_SYSV /**/" >>confdefs.h
 
 fi
 fi
-{ $as_echo "$as_me:$LINENO: checking for posix signals" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for posix signals" >&5
 $as_echo_n "checking for posix signals... " >&6; }
-if test "${unet_cv_sys_signal_posix+set}" = set; then
+if test "${unet_cv_sys_signal_posix+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <signal.h>
 int
@@ -10728,62 +6069,32 @@ sigaction(SIGTERM, (struct sigaction *)0L, (struct sigaction *)0L)
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   unet_cv_sys_signal_posix=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       unet_cv_sys_signal_posix=no
+  unet_cv_sys_signal_posix=no
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $unet_cv_sys_signal_posix" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $unet_cv_sys_signal_posix" >&5
 $as_echo "$unet_cv_sys_signal_posix" >&6; }
 if test $unet_cv_sys_signal_posix = yes; then
 
-cat >>confdefs.h <<\_ACEOF
-#define POSIX_SIGNALS /**/
-_ACEOF
+$as_echo "#define POSIX_SIGNALS /**/" >>confdefs.h
 
 else
-{ $as_echo "$as_me:$LINENO: checking for bsd reliable signals" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for bsd reliable signals" >&5
 $as_echo_n "checking for bsd reliable signals... " >&6; }
-if test "${unet_cv_sys_signal_bsd+set}" = set; then
+if test "${unet_cv_sys_signal_bsd+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then
-  { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+  if test "$cross_compiling" = yes; then :
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: cannot run test program while cross compiling
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: cannot run test program while cross compiling
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }; }
+as_fn_error "cannot run test program while cross compiling
+See \`config.log' for more details." "$LINENO" 5; }
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <signal.h>
 int calls = 0;
@@ -10801,71 +6112,40 @@ int main(void)
   exit (0);
 }
 _ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+if ac_fn_c_try_run "$LINENO"; then :
   unet_cv_sys_signal_bsd=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-unet_cv_sys_signal_bsd=no
+  unet_cv_sys_signal_bsd=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-
 fi
-{ $as_echo "$as_me:$LINENO: result: $unet_cv_sys_signal_bsd" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $unet_cv_sys_signal_bsd" >&5
 $as_echo "$unet_cv_sys_signal_bsd" >&6; }
 if test $unet_cv_sys_signal_bsd = yes; then
 
-cat >>confdefs.h <<\_ACEOF
-#define BSD_RELIABLE_SIGNALS /**/
-_ACEOF
+$as_echo "#define BSD_RELIABLE_SIGNALS /**/" >>confdefs.h
 
 else
 
-cat >>confdefs.h <<\_ACEOF
-#define SYSV_UNRELIABLE_SIGNALS /**/
-_ACEOF
+$as_echo "#define SYSV_UNRELIABLE_SIGNALS /**/" >>confdefs.h
 
 fi
 fi
 
-{ $as_echo "$as_me:$LINENO: checking for OS-dependent information" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for OS-dependent information" >&5
 $as_echo_n "checking for OS-dependent information... " >&6; }
 case "$host" in
     *-linux*)
-       { $as_echo "$as_me:$LINENO: result: Linux ($host) found." >&5
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: Linux ($host) found." >&5
 $as_echo "Linux ($host) found." >&6; }
        unet_poll_syscall=yes
        ;;
 
     *-solaris*)
-       { $as_echo "$as_me:$LINENO: result: Solaris ($host) found." >&5
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: Solaris ($host) found." >&5
 $as_echo "Solaris ($host) found." >&6; }
        if test x"$ac_cv_header_poll_h" = xyes; then
            unet_poll_syscall=yes
@@ -10873,20 +6153,18 @@ $as_echo "Solaris ($host) found." >&6; }
            unet_poll_syscall=no
        fi
 
-cat >>confdefs.h <<\_ACEOF
-#define IRCU_SOLARIS 1
-_ACEOF
+$as_echo "#define IRCU_SOLARIS 1" >>confdefs.h
 
        ;;
 
     *-sunos*)
-       { $as_echo "$as_me:$LINENO: result: Solaris ($host) found." >&5
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: Solaris ($host) found." >&5
 $as_echo "Solaris ($host) found." >&6; }
        unet_poll_syscall=no
        ;;
 
     *-openbsd*)
-       { $as_echo "$as_me:$LINENO: result: OpenBSD ($host) found." >&5
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: OpenBSD ($host) found." >&5
 $as_echo "OpenBSD ($host) found." >&6; }
        if test x"$ac_cv_header_poll_h" = xyes; then
            unet_poll_syscall=yes
@@ -10896,7 +6174,7 @@ $as_echo "OpenBSD ($host) found." >&6; }
        ;;
 
     *-*bsd*)
-       { $as_echo "$as_me:$LINENO: result: Generic BSD ($host) found." >&5
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: Generic BSD ($host) found." >&5
 $as_echo "Generic BSD ($host) found." >&6; }
        if test x"$ac_cv_header_poll_h" = xyes; then
            unet_poll_syscall=yes
@@ -10906,27 +6184,27 @@ $as_echo "Generic BSD ($host) found." >&6; }
        ;;
 
     *-darwin*)
-       { $as_echo "$as_me:$LINENO: result: Darwin (Mac OS X) ($host) found." >&5
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: Darwin (Mac OS X) ($host) found." >&5
 $as_echo "Darwin (Mac OS X) ($host) found." >&6; }
        unet_poll_syscall=no
        ;;
 
     *)
-       { $as_echo "$as_me:$LINENO: result: Unknown system type $host found." >&5
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: Unknown system type $host found." >&5
 $as_echo "Unknown system type $host found." >&6; }
-       { $as_echo "$as_me:$LINENO: WARNING: Unknown OS type; using generic routines." >&5
+       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unknown OS type; using generic routines." >&5
 $as_echo "$as_me: WARNING: Unknown OS type; using generic routines." >&2;}
        unet_poll_syscall=no
        ;;
 esac
 
-{ $as_echo "$as_me:$LINENO: checking whether to enable use of poll()" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable use of poll()" >&5
 $as_echo_n "checking whether to enable use of poll()... " >&6; }
 # Check whether --enable-poll was given.
-if test "${enable_poll+set}" = set; then
+if test "${enable_poll+set}" = set; then :
   enableval=$enable_poll; unet_cv_enable_poll=$enable_poll
 else
-  if test "${unet_cv_enable_poll+set}" = set; then
+  if test "${unet_cv_enable_poll+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   unet_cv_enable_poll=$unet_poll_syscall
@@ -10940,14 +6218,12 @@ if test x"$ac_cv_header_poll_h" != xyes; then
     unet_cv_enable_poll=no
 fi
 
-{ $as_echo "$as_me:$LINENO: result: $unet_cv_enable_poll" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $unet_cv_enable_poll" >&5
 $as_echo "$unet_cv_enable_poll" >&6; }
 
 if test x"$unet_cv_enable_poll" = xyes; then
 
-cat >>confdefs.h <<\_ACEOF
-#define USE_POLL 1
-_ACEOF
+$as_echo "#define USE_POLL 1" >>confdefs.h
 
     ENGINE_C=engine_poll.c
 else
@@ -10955,13 +6231,13 @@ else
 fi
 
 
-{ $as_echo "$as_me:$LINENO: checking whether to enable debug mode" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable debug mode" >&5
 $as_echo_n "checking whether to enable debug mode... " >&6; }
 # Check whether --enable-debug was given.
-if test "${enable_debug+set}" = set; then
+if test "${enable_debug+set}" = set; then :
   enableval=$enable_debug; unet_cv_enable_debug=$enable_debug
 else
-  if test "${unet_cv_enable_debug+set}" = set; then
+  if test "${unet_cv_enable_debug+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   unet_cv_enable_debug=no
 
 fi
 
-{ $as_echo "$as_me:$LINENO: result: $unet_cv_enable_debug" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $unet_cv_enable_debug" >&5
 $as_echo "$unet_cv_enable_debug" >&6; }
 
 if test x"$unet_cv_enable_debug" = xyes; then
 
-cat >>confdefs.h <<\_ACEOF
-#define DEBUGMODE 1
-_ACEOF
+$as_echo "#define DEBUGMODE 1" >>confdefs.h
 
 fi
 
-{ $as_echo "$as_me:$LINENO: checking whether to enable leak detection" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable leak detection" >&5
 $as_echo_n "checking whether to enable leak detection... " >&6; }
 
 # Check whether --with-leak-detect was given.
-if test "${with_leak_detect+set}" = set; then
+if test "${with_leak_detect+set}" = set; then :
   withval=$with_leak_detect; unet_cv_with_leak_detect=$with_leak_detect
 else
-  if test "${unet_cv_with_leak_detect+set}" = set; then
+  if test "${unet_cv_with_leak_detect+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   unet_cv_with_leak_detect=no
@@ -10995,7 +6269,7 @@ fi
 
 fi
 
-{ $as_echo "$as_me:$LINENO: result: $unet_cv_enable_leak_detect" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $unet_cv_enable_leak_detect" >&5
 $as_echo "$unet_cv_enable_leak_detect" >&6; }
 
 if test x"$unet_cv_with_leak_detect" != xno; then
 
 
 # Check whether --with-ipv6 was given.
-if test "${with_ipv6+set}" = set; then
+if test "${with_ipv6+set}" = set; then :
   withval=$with_ipv6; ac_cv_use_ipv6=$withval
 else
   ac_cv_use_ipv6=$unet_have_sockaddr_in6
 fi
 
-{ $as_echo "$as_me:$LINENO: checking whether to use IPv6" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use IPv6" >&5
 $as_echo_n "checking whether to use IPv6... " >&6; }
-if test "${ac_cv_use_ipv6+set}" = set; then
+if test "${ac_cv_use_ipv6+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_cv_use_ipv6=no
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_use_ipv6" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_use_ipv6" >&5
 $as_echo "$ac_cv_use_ipv6" >&6; }
 if test x"$ac_cv_use_ipv6" != "xno" ; then
 
-cat >>confdefs.h <<\_ACEOF
-#define IPV6 1
-_ACEOF
+$as_echo "#define IPV6 1" >>confdefs.h
 
 fi
 
-{ $as_echo "$as_me:$LINENO: checking whether to enable asserts" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable asserts" >&5
 $as_echo_n "checking whether to enable asserts... " >&6; }
 # Check whether --enable-asserts was given.
-if test "${enable_asserts+set}" = set; then
+if test "${enable_asserts+set}" = set; then :
   enableval=$enable_asserts; unet_cv_enable_asserts=$enable_asserts
 else
-  if test "${unet_cv_enable_asserts+set}" = set; then
+  if test "${unet_cv_enable_asserts+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   unet_cv_enable_asserts=yes
 
 fi
 
-{ $as_echo "$as_me:$LINENO: result: $unet_cv_enable_asserts" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $unet_cv_enable_asserts" >&5
 $as_echo "$unet_cv_enable_asserts" >&6; }
 
 if test x"$unet_cv_enable_asserts" = xno; then
 
-cat >>confdefs.h <<\_ACEOF
-#define NDEBUG 1
-_ACEOF
+$as_echo "#define NDEBUG 1" >>confdefs.h
 
 fi
 
-{ $as_echo "$as_me:$LINENO: checking whether to enable profiling support (gprof)" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable profiling support (gprof)" >&5
 $as_echo_n "checking whether to enable profiling support (gprof)... " >&6; }
 # Check whether --enable-profile was given.
-if test "${enable_profile+set}" = set; then
+if test "${enable_profile+set}" = set; then :
   enableval=$enable_profile; unet_cv_enable_profile=$enable_profile
 else
-  if test "${unet_cv_enable_profile+set}" = set; then
+  if test "${unet_cv_enable_profile+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   unet_cv_enable_profile=no
@@ -11070,7 +6340,7 @@ fi
 
 fi
 
-{ $as_echo "$as_me:$LINENO: result: $unet_cv_enable_profile" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $unet_cv_enable_profile" >&5
 $as_echo "$unet_cv_enable_profile" >&6; }
 
 if test x"$unet_cv_enable_profile" = xyes; then
@@ -11078,13 +6348,13 @@ if test x"$unet_cv_enable_profile" = xyes; then
     LDFLAGS="-pg $LDFLAGS"
 fi
 
-{ $as_echo "$as_me:$LINENO: checking whether to enable pedantic compiler warnings" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable pedantic compiler warnings" >&5
 $as_echo_n "checking whether to enable pedantic compiler warnings... " >&6; }
 # Check whether --enable-pedantic was given.
-if test "${enable_pedantic+set}" = set; then
+if test "${enable_pedantic+set}" = set; then :
   enableval=$enable_pedantic; unet_cv_enable_pedantic=$enable_pedantic
 else
-  if test "${unet_cv_enable_pedantic+set}" = set; then
+  if test "${unet_cv_enable_pedantic+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   unet_cv_enable_pedantic=no
 
 fi
 
-{ $as_echo "$as_me:$LINENO: result: $unet_cv_enable_pedantic" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $unet_cv_enable_pedantic" >&5
 $as_echo "$unet_cv_enable_pedantic" >&6; }
 
 if test x"$unet_cv_enable_pedantic" = xyes; then
     CFLAGS="-pedantic $CFLAGS"
 fi
 
-{ $as_echo "$as_me:$LINENO: checking whether to enable compiler warnings" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable compiler warnings" >&5
 $as_echo_n "checking whether to enable compiler warnings... " >&6; }
 # Check whether --enable-warnings was given.
-if test "${enable_warnings+set}" = set; then
+if test "${enable_warnings+set}" = set; then :
   enableval=$enable_warnings; unet_cv_enable_warnings=$enable_warnings
 else
-  if test "${unet_cv_enable_warnings+set}" = set; then
+  if test "${unet_cv_enable_warnings+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   unet_cv_enable_warnings=no
 
 fi
 
-{ $as_echo "$as_me:$LINENO: result: $unet_cv_enable_warnings" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $unet_cv_enable_warnings" >&5
 $as_echo "$unet_cv_enable_warnings" >&6; }
 
 if test x"$unet_cv_enable_warnings" = xyes; then
     CFLAGS="-Wall $CFLAGS"
 fi
 
-{ $as_echo "$as_me:$LINENO: checking whether to enable inlining for a few critical functions" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable inlining for a few critical functions" >&5
 $as_echo_n "checking whether to enable inlining for a few critical functions... " >&6; }
 # Check whether --enable-inlines was given.
-if test "${enable_inlines+set}" = set; then
+if test "${enable_inlines+set}" = set; then :
   enableval=$enable_inlines; unet_cv_enable_inlines=$enable_inlines
 else
-  if test "${unet_cv_enable_inlines+set}" = set; then
+  if test "${unet_cv_enable_inlines+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   unet_cv_enable_inlines=yes
 
 fi
 
-{ $as_echo "$as_me:$LINENO: result: $unet_cv_enable_inlines" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $unet_cv_enable_inlines" >&5
 $as_echo "$unet_cv_enable_inlines" >&6; }
 
 if test x"$unet_cv_enable_inlines" = xyes; then
 
-cat >>confdefs.h <<\_ACEOF
-#define FORCEINLINE 1
-_ACEOF
+$as_echo "#define FORCEINLINE 1" >>confdefs.h
 
 fi
 
-{ $as_echo "$as_me:$LINENO: checking whether to enable the /dev/poll event engine" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable the /dev/poll event engine" >&5
 $as_echo_n "checking whether to enable the /dev/poll event engine... " >&6; }
 # Check whether --enable-devpoll was given.
-if test "${enable_devpoll+set}" = set; then
+if test "${enable_devpoll+set}" = set; then :
   enableval=$enable_devpoll; unet_cv_enable_devpoll=$enable_devpoll
 else
-  if test "${unet_cv_enable_devpoll+set}" = set; then
+  if test "${unet_cv_enable_devpoll+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   unet_cv_enable_devpoll=yes
@@ -11164,25 +6432,23 @@ if test x"$ac_cv_header_sys_devpoll_h" = xno; then
     unet_cv_enable_devpoll=no
 fi
 
-{ $as_echo "$as_me:$LINENO: result: $unet_cv_enable_devpoll" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $unet_cv_enable_devpoll" >&5
 $as_echo "$unet_cv_enable_devpoll" >&6; }
 
 if test x"$unet_cv_enable_devpoll" != xno; then
 
-cat >>confdefs.h <<\_ACEOF
-#define USE_DEVPOLL 1
-_ACEOF
+$as_echo "#define USE_DEVPOLL 1" >>confdefs.h
 
     ENGINE_C="engine_devpoll.c $ENGINE_C"
 fi
 
-{ $as_echo "$as_me:$LINENO: checking whether to enable the kqueue event engine" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable the kqueue event engine" >&5
 $as_echo_n "checking whether to enable the kqueue event engine... " >&6; }
 # Check whether --enable-kqueue was given.
-if test "${enable_kqueue+set}" = set; then
+if test "${enable_kqueue+set}" = set; then :
   enableval=$enable_kqueue; unet_cv_enable_kqueue=$enable_kqueue
 else
-  if test "${unet_cv_enable_kqueue+set}" = set; then
+  if test "${unet_cv_enable_kqueue+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   unet_cv_enable_kqueue=yes
@@ -11195,25 +6461,23 @@ if test x"$ac_cv_header_sys_event_h" = xno -o x"$ac_cv_func_kqueue" = xno; then
     unet_cv_enable_kqueue=no
 fi
 
-{ $as_echo "$as_me:$LINENO: result: $unet_cv_enable_kqueue" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $unet_cv_enable_kqueue" >&5
 $as_echo "$unet_cv_enable_kqueue" >&6; }
 
 if test x"$unet_cv_enable_kqueue" != xno; then
 
-cat >>confdefs.h <<\_ACEOF
-#define USE_KQUEUE 1
-_ACEOF
+$as_echo "#define USE_KQUEUE 1" >>confdefs.h
 
     ENGINE_C="engine_kqueue.c $ENGINE_C"
 fi
 
-{ $as_echo "$as_me:$LINENO: checking whether to enable the epoll event engine" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable the epoll event engine" >&5
 $as_echo_n "checking whether to enable the epoll event engine... " >&6; }
 # Check whether --enable-epoll was given.
-if test "${enable_epoll+set}" = set; then
+if test "${enable_epoll+set}" = set; then :
   enableval=$enable_epoll; unet_cv_enable_epoll=$enable_epoll
 else
-  if test "${unet_cv_enable_epoll+set}" = set; then
+  if test "${unet_cv_enable_epoll+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   unet_cv_enable_epoll=yes
@@ -11226,17 +6490,13 @@ if test x"$ac_cv_header_sys_epoll_h" = xno -o x"$ac_cv_func_epoll" = xno; then
     unet_cv_enable_epoll=no
 fi
 
-{ $as_echo "$as_me:$LINENO: result: $unet_cv_enable_epoll" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $unet_cv_enable_epoll" >&5
 $as_echo "$unet_cv_enable_epoll" >&6; }
 
 if test x"$unet_cv_enable_epoll" != xno; then
-    { $as_echo "$as_me:$LINENO: checking whether epoll functions are properly defined" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether epoll functions are properly defined" >&5
 $as_echo_n "checking whether epoll functions are properly defined... " >&6; }
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/epoll.h>
 int
@@ -11247,63 +6507,30 @@ epoll_create(10);
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  { $as_echo "$as_me:$LINENO: result: yes" >&5
+if ac_fn_c_try_link "$LINENO"; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 
-cat >>confdefs.h <<\_ACEOF
-#define EPOLL_NEED_BODY 1
-_ACEOF
+$as_echo "#define EPOLL_NEED_BODY 1" >>confdefs.h
 
 fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-
-cat >>confdefs.h <<\_ACEOF
-#define USE_EPOLL 1
-_ACEOF
+$as_echo "#define USE_EPOLL 1" >>confdefs.h
 
     ENGINE_C="engine_epoll.c $ENGINE_C"
 fi
 
-{ $as_echo "$as_me:$LINENO: checking for va_copy" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for va_copy" >&5
 $as_echo_n "checking for va_copy... " >&6; }
-if test "${unet_cv_c_va_copy+set}" = set; then
+if test "${unet_cv_c_va_copy+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stdarg.h>
 int
@@ -11314,60 +6541,29 @@ va_list ap1, ap2; va_copy(ap1, ap2);
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   unet_cv_c_va_copy="yes"
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       unet_cv_c_va_copy="no"
+  unet_cv_c_va_copy="no"
 
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $unet_cv_c_va_copy" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $unet_cv_c_va_copy" >&5
 $as_echo "$unet_cv_c_va_copy" >&6; }
 if test "$unet_cv_c_va_copy" = "yes" ; then
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_VA_COPY 1
-_ACEOF
+$as_echo "#define HAVE_VA_COPY 1" >>confdefs.h
 
 fi
 
-{ $as_echo "$as_me:$LINENO: checking for __va_copy" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __va_copy" >&5
 $as_echo_n "checking for __va_copy... " >&6; }
-if test "${unet_cv_c___va_copy+set}" = set; then
+if test "${unet_cv_c___va_copy+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stdarg.h>
 int
@@ -11378,58 +6574,31 @@ va_list ap1, ap2; __va_copy(ap1, ap2);
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   unet_cv_c___va_copy="yes"
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       unet_cv_c___va_copy="no"
+  unet_cv_c___va_copy="no"
 
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $unet_cv_c___va_copy" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $unet_cv_c___va_copy" >&5
 $as_echo "$unet_cv_c___va_copy" >&6; }
 if test "$unet_cv_c___va_copy" = "yes" ; then
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE___VA_COPY 1
-_ACEOF
+$as_echo "#define HAVE___VA_COPY 1" >>confdefs.h
 
 fi
 
-{ $as_echo "$as_me:$LINENO: checking what name to give the symlink" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking what name to give the symlink" >&5
 $as_echo_n "checking what name to give the symlink... " >&6; }
 
 # Check whether --with-symlink was given.
-if test "${with_symlink+set}" = set; then
+if test "${with_symlink+set}" = set; then :
   withval=$with_symlink; unet_cv_with_symlink=$with_symlink
 else
-  if test "${unet_cv_with_symlink+set}" = set; then
+  if test "${unet_cv_with_symlink+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   unet_cv_with_symlink="ircd"
@@ -11442,7 +6611,7 @@ if test x"$unet_cv_with_symlink" = xyes; then
     unet_cv_with_symlink="ircd"
 fi
 
-{ $as_echo "$as_me:$LINENO: result: $unet_cv_with_symlink" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $unet_cv_with_symlink" >&5
 $as_echo "$unet_cv_with_symlink" >&6; }
 
 if test x"$unet_cv_with_symlink" = xno; then
 
 
 
-{ $as_echo "$as_me:$LINENO: checking what permissions to set on the installed binary" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking what permissions to set on the installed binary" >&5
 $as_echo_n "checking what permissions to set on the installed binary... " >&6; }
 
 # Check whether --with-mode was given.
-if test "${with_mode+set}" = set; then
+if test "${with_mode+set}" = set; then :
   withval=$with_mode; unet_cv_with_mode=$with_mode
 else
-  if test "${unet_cv_with_mode+set}" = set; then
+  if test "${unet_cv_with_mode+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   unet_cv_with_mode=711
@@ -11475,21 +6644,21 @@ if test x"$unet_cv_with_mode" = xyes -o x"$unet_cv_with_mode" = xno; then
     unet_cv_with_mode=711
 fi
 
-{ $as_echo "$as_me:$LINENO: result: $unet_cv_with_mode" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $unet_cv_with_mode" >&5
 $as_echo "$unet_cv_with_mode" >&6; }
 
 IRCDMODE=$unet_cv_with_mode
 
 
 unet_uid=`id | sed -e 's/.*uid=[0-9]*(//' -e 's/).*//' 2> /dev/null`
-{ $as_echo "$as_me:$LINENO: checking which user should own the installed binary" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking which user should own the installed binary" >&5
 $as_echo_n "checking which user should own the installed binary... " >&6; }
 
 # Check whether --with-owner was given.
-if test "${with_owner+set}" = set; then
+if test "${with_owner+set}" = set; then :
   withval=$with_owner; unet_cv_with_owner=$with_owner
 else
-  if test "${unet_cv_with_owner+set}" = set; then
+  if test "${unet_cv_with_owner+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   unet_cv_with_owner=$unet_uid
@@ -11502,21 +6671,21 @@ if test x"$unet_cv_with_owner" = xyes -o x"$unet_cv_with_owner" = xno; then
     unet_cv_with_owner=$unet_uid
 fi
 
-{ $as_echo "$as_me:$LINENO: result: $unet_cv_with_owner" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $unet_cv_with_owner" >&5
 $as_echo "$unet_cv_with_owner" >&6; }
 
 IRCDOWN=$unet_cv_with_owner
 
 
 unet_gid=`id | sed -e 's/.*gid=[0-9]*(//' -e 's/).*//' 2> /dev/null`
-{ $as_echo "$as_me:$LINENO: checking which group should own the installed binary" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking which group should own the installed binary" >&5
 $as_echo_n "checking which group should own the installed binary... " >&6; }
 
 # Check whether --with-group was given.
-if test "${with_group+set}" = set; then
+if test "${with_group+set}" = set; then :
   withval=$with_group; unet_cv_with_group=$with_group
 else
-  if test "${unet_cv_with_group+set}" = set; then
+  if test "${unet_cv_with_group+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   unet_cv_with_group=$unet_gid
@@ -11529,7 +6698,7 @@ if test x"$unet_cv_with_group" = xyes -o x"$unet_cv_with_group" = xno; then
     unet_cv_with_group=$unet_gid
 fi
 
-{ $as_echo "$as_me:$LINENO: result: $unet_cv_with_group" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $unet_cv_with_group" >&5
 $as_echo "$unet_cv_with_group" >&6; }
 
 IRCDGRP=$unet_cv_with_group
@@ -11542,14 +6711,14 @@ if test -f /etc/resolv.conf; then
        unet_domain=`awk '/^search/ { print $2; exit }' /etc/resolv.conf`
     fi
 fi
-{ $as_echo "$as_me:$LINENO: checking for site domain name" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for site domain name" >&5
 $as_echo_n "checking for site domain name... " >&6; }
 
 # Check whether --with-domain was given.
-if test "${with_domain+set}" = set; then
+if test "${with_domain+set}" = set; then :
   withval=$with_domain; unet_cv_with_domain=$with_domain
 else
-  if test "${unet_cv_with_domain+set}" = set; then
+  if test "${unet_cv_with_domain+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   unet_cv_with_domain=$unet_domain
@@ -11562,12 +6731,10 @@ if test x"$unet_cv_with_domain" = xyes -o x"$unet_cv_with_domain" = xno; then
     unet_cv_with_domain=$unet_domain
 fi
 if test x"$unet_cv_with_domain" = xno; then
-    { { $as_echo "$as_me:$LINENO: error: Unable to determine server DNS domain; use --with-domain to set it" >&5
-$as_echo "$as_me: error: Unable to determine server DNS domain; use --with-domain to set it" >&2;}
-   { (exit 1); exit 1; }; }
+    as_fn_error "Unable to determine server DNS domain; use --with-domain to set it" "$LINENO" 5
 fi
 
-{ $as_echo "$as_me:$LINENO: result: $unet_cv_with_domain" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $unet_cv_with_domain" >&5
 $as_echo "$unet_cv_with_domain" >&6; }
 
 
@@ -11576,14 +6743,14 @@ cat >>confdefs.h <<_ACEOF
 _ACEOF
 
 
-{ $as_echo "$as_me:$LINENO: checking if chroot operation is desired" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if chroot operation is desired" >&5
 $as_echo_n "checking if chroot operation is desired... " >&6; }
 
 # Check whether --with-chroot was given.
-if test "${with_chroot+set}" = set; then
+if test "${with_chroot+set}" = set; then :
   withval=$with_chroot; unet_cv_with_chroot=$with_chroot
 else
-  if test "${unet_cv_with_chroot+set}" = set; then
+  if test "${unet_cv_with_chroot+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   unet_cv_with_chroot=no
 
 
 if test x"$unet_cv_with_chroot" = xyes; then
-    { { $as_echo "$as_me:$LINENO: error: --with-chroot given with no directory.  See doc/readme.chroot." >&5
-$as_echo "$as_me: error: --with-chroot given with no directory.  See doc/readme.chroot." >&2;}
-   { (exit 1); exit 1; }; }
+    as_fn_error "--with-chroot given with no directory.  See doc/readme.chroot." "$LINENO" 5
 fi
 
 # Ensure there are no trailing /'s to mess us up
 unet_cv_with_chroot=`echo "$unet_cv_with_chroot" | sed 's%/*$%%'`
 
-{ $as_echo "$as_me:$LINENO: result: $unet_cv_with_chroot" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $unet_cv_with_chroot" >&5
 $as_echo "$unet_cv_with_chroot" >&6; }
 
 # Deal with the annoying value "NONE" here
@@ -11627,21 +6792,21 @@ unet_libdir=`eval echo "$libdir"`
 prefix=$unet_save_prefix
 exec_prefix=$unet_save_exec_prefix
 
-{ $as_echo "$as_me:$LINENO: checking where the binary will be for /restart" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking where the binary will be for /restart" >&5
 $as_echo_n "checking where the binary will be for /restart... " >&6; }
 if test x"$unet_cv_with_symlink" = xno; then
     unet_spath="$unet_bindir/ircd"
 else
     unet_spath="$unet_bindir/$unet_cv_with_symlink"
 fi
-{ $as_echo "$as_me:$LINENO: result: $unet_spath" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $unet_spath" >&5
 $as_echo "$unet_spath" >&6; }
 
 if test x"$unet_cv_with_chroot" != xno; then
     if echo "$unet_spath" | grep "^$unet_cv_with_chroot" > /dev/null 2>&1; then
        unet_spath=`echo "$unet_spath" | sed "s%^$unet_cv_with_chroot%%"`
     else
-       { $as_echo "$as_me:$LINENO: WARNING: Binary $unet_spath not relative to root directory $unet_cv_with_chroot; restarts will probably fail" >&5
+       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Binary $unet_spath not relative to root directory $unet_cv_with_chroot; restarts will probably fail" >&5
 $as_echo "$as_me: WARNING: Binary $unet_spath not relative to root directory $unet_cv_with_chroot; restarts will probably fail" >&2;}
     fi
 fi
@@ -11652,14 +6817,14 @@ cat >>confdefs.h <<_ACEOF
 _ACEOF
 
 
-{ $as_echo "$as_me:$LINENO: checking what the data directory should be" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking what the data directory should be" >&5
 $as_echo_n "checking what the data directory should be... " >&6; }
 
 # Check whether --with-dpath was given.
-if test "${with_dpath+set}" = set; then
+if test "${with_dpath+set}" = set; then :
   withval=$with_dpath; unet_cv_with_dpath=$with_dpath
 else
-  if test "${unet_cv_with_dpath+set}" = set; then
+  if test "${unet_cv_with_dpath+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   unet_cv_with_dpath=$unet_libdir
 # Ensure there are no trailing /'s to mess us up
 unet_cv_with_dpath=`echo "$unet_cv_with_dpath" | sed 's%/*$%%'`
 
-{ $as_echo "$as_me:$LINENO: result: $unet_cv_with_dpath" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $unet_cv_with_dpath" >&5
 $as_echo "$unet_cv_with_dpath" >&6; }
 
 if test x"$unet_cv_with_chroot" != xno; then
     if echo "$unet_cv_with_dpath" | grep "^$unet_cv_with_chroot" > /dev/null 2>&1; then
        unet_dpath=`echo "$unet_cv_with_dpath" | sed "s%^$unet_cv_with_chroot%%"`
     else
-       { { $as_echo "$as_me:$LINENO: error: Data directory $unet_cv_with_dpath not relative to root directory $unet_cv_with_chroot" >&5
-$as_echo "$as_me: error: Data directory $unet_cv_with_dpath not relative to root directory $unet_cv_with_chroot" >&2;}
-   { (exit 1); exit 1; }; }
+       as_fn_error "Data directory $unet_cv_with_dpath not relative to root directory $unet_cv_with_chroot" "$LINENO" 5
     fi
 else
     unet_dpath=$unet_cv_with_dpath
@@ -11699,14 +6862,14 @@ _ACEOF
 DPATH=$unet_cv_with_dpath
 
 
-{ $as_echo "$as_me:$LINENO: checking where the default configuration file resides" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking where the default configuration file resides" >&5
 $as_echo_n "checking where the default configuration file resides... " >&6; }
 
 # Check whether --with-cpath was given.
-if test "${with_cpath+set}" = set; then
+if test "${with_cpath+set}" = set; then :
   withval=$with_cpath; unet_cv_with_cpath=$with_cpath
 else
-  if test "${unet_cv_with_cpath+set}" = set; then
+  if test "${unet_cv_with_cpath+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   unet_cv_with_cpath="ircd.conf"
@@ -11719,7 +6882,7 @@ if test x"$unet_cv_with_cpath" = xyes -o x"$unet_cv_with_cpath" = xno; then
     unet_cv_with_cpath="ircd.conf"
 fi
 
-{ $as_echo "$as_me:$LINENO: result: $unet_cv_with_cpath" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $unet_cv_with_cpath" >&5
 $as_echo "$unet_cv_with_cpath" >&6; }
 
 if echo "$unet_cv_with_cpath" | grep '^/' > /dev/null 2>&1; then
@@ -11728,9 +6891,7 @@ if echo "$unet_cv_with_cpath" | grep '^/' > /dev/null 2>&1; then
        if echo "$unet_cv_with_cpath" | grep "^$unet_cv_with_chroot" > /dev/null 2>&1; then
            unet_cpath=`echo "$unet_cv_with_cpath" | sed "s%^$unet_cv_with_chroot%%"`
        else
-           { { $as_echo "$as_me:$LINENO: error: Configuration file $unet_cv_with_cpath not relative to root directory $unet_cv_with_chroot" >&5
-$as_echo "$as_me: error: Configuration file $unet_cv_with_cpath not relative to root directory $unet_cv_with_chroot" >&2;}
-   { (exit 1); exit 1; }; }
+           as_fn_error "Configuration file $unet_cv_with_cpath not relative to root directory $unet_cv_with_chroot" "$LINENO" 5
        fi
     else
        unet_cpath=$unet_cv_with_cpath
@@ -11745,14 +6906,14 @@ cat >>confdefs.h <<_ACEOF
 _ACEOF
 
 
-{ $as_echo "$as_me:$LINENO: checking where to put the debugging log if debugging enabled" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking where to put the debugging log if debugging enabled" >&5
 $as_echo_n "checking where to put the debugging log if debugging enabled... " >&6; }
 
 # Check whether --with-lpath was given.
-if test "${with_lpath+set}" = set; then
+if test "${with_lpath+set}" = set; then :
   withval=$with_lpath; unet_cv_with_lpath=$with_lpath
 else
-  if test "${unet_cv_with_lpath+set}" = set; then
+  if test "${unet_cv_with_lpath+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   unet_cv_with_lpath="ircd.log"
@@ -11765,7 +6926,7 @@ if test x"$unet_cv_with_lpath" = xyes -o x"$unet_cv_with_lpath" = xno; then
     unet_cv_with_lpath="ircd.log"
 fi
 
-{ $as_echo "$as_me:$LINENO: result: $unet_cv_with_lpath" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $unet_cv_with_lpath" >&5
 $as_echo "$unet_cv_with_lpath" >&6; }
 
 if echo "$unet_cv_with_lpath" | grep '^/' > /dev/null 2>&1; then
@@ -11774,7 +6935,7 @@ if echo "$unet_cv_with_lpath" | grep '^/' > /dev/null 2>&1; then
        if echo "$unet_cv_with_lpath" | grep "^$unet_cv_with_chroot" > /dev/null 2>&1; then
            unet_lpath=`echo "$unet_cv_with_lpath" | sed "s%^$unet_cv_with_chroot%%"`
        else
-           { $as_echo "$as_me:$LINENO: WARNING: Log file $unet_cv_with_lpath not relative to root directory $unet_cv_with_chroot; using default ircd.log instead" >&5
+           { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Log file $unet_cv_with_lpath not relative to root directory $unet_cv_with_chroot; using default ircd.log instead" >&5
 $as_echo "$as_me: WARNING: Log file $unet_cv_with_lpath not relative to root directory $unet_cv_with_chroot; using default ircd.log instead" >&2;}
            unet_cv_with_lpath="ircd.log"
            unet_lpath="ircd.log"
@@ -11797,14 +6958,14 @@ if test x"$unet_maxcon" = xunlimited; then
     unet_maxcon=`ulimit -Sn`
 fi
 unet_maxcon=`expr $unet_maxcon - 4`
-{ $as_echo "$as_me:$LINENO: checking max connections" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking max connections" >&5
 $as_echo_n "checking max connections... " >&6; }
 
 # Check whether --with-maxcon was given.
-if test "${with_maxcon+set}" = set; then
+if test "${with_maxcon+set}" = set; then :
   withval=$with_maxcon; unet_cv_with_maxcon=$with_maxcon
 else
-  if test "${unet_cv_with_maxcon+set}" = set; then
+  if test "${unet_cv_with_maxcon+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   unet_cv_with_maxcon=$unet_maxcon
 
 if test x"$unet_cv_with_maxcon" = xyes -o x"$unet_cv_with_maxcon" = xno; then
     if test "$unet_maxcon" -lt 32; then
-      { { $as_echo "$as_me:$LINENO: error: Maximum connections (number of open files minus 4) must be at least 32." >&5
-$as_echo "$as_me: error: Maximum connections (number of open files minus 4) must be at least 32." >&2;}
-   { (exit 1); exit 1; }; }
+      as_fn_error "Maximum connections (number of open files minus 4) must be at least 32." "$LINENO" 5
     fi
     unet_cv_with_maxcon=$unet_maxcon
 elif test "$unet_cv_with_maxcon" -lt 32; then
-    { { $as_echo "$as_me:$LINENO: error: Maximum connections (--with-maxcon) must be at least 32." >&5
-$as_echo "$as_me: error: Maximum connections (--with-maxcon) must be at least 32." >&2;}
-   { (exit 1); exit 1; }; }
+    as_fn_error "Maximum connections (--with-maxcon) must be at least 32." "$LINENO" 5
 fi
 
-{ $as_echo "$as_me:$LINENO: result: $unet_cv_with_maxcon" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $unet_cv_with_maxcon" >&5
 $as_echo "$unet_cv_with_maxcon" >&6; }
 
 
@@ -11835,7 +6992,7 @@ cat >>confdefs.h <<_ACEOF
 _ACEOF
 
 
-ac_config_files="$ac_config_files Makefile ircd/Makefile ircd/test/Makefile doc/Makefile"
+ac_config_files="$ac_config_files Makefile ircd/Makefile ircd/test/Makefile"
 
 ac_config_commands="$ac_config_commands default"
 
@@ -11866,13 +7023,13 @@ _ACEOF
     case $ac_val in #(
     *${as_nl}*)
       case $ac_var in #(
-      *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5
+      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
       esac
       case $ac_var in #(
       _ | IFS | as_nl) ;; #(
       BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
-      *) $as_unset $ac_var ;;
+      *) { eval $ac_var=; unset $ac_var;} ;;
       esac ;;
     esac
   done
@@ -11880,8 +7037,8 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
   (set) 2>&1 |
     case $as_nl`(ac_space=' '; set) 2>&1` in #(
     *${as_nl}ac_space=\ *)
-      # `set' does not quote correctly, so add quotes (double-quote
-      # substitution turns \\\\ into \\, and sed turns \\ into \).
+      # `set' does not quote correctly, so add quotesdouble-quote
+      # substitution turns \\\\ into \\, and sed turns \\ into \.
       sed -n \
        "s/'/'\\\\''/g;
          s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
@@ -11904,11 +7061,11 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
 if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
   if test -w "$cache_file"; then
     test "x$cache_file" != "x/dev/null" &&
-      { $as_echo "$as_me:$LINENO: updating cache $cache_file" >&5
+      { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
 $as_echo "$as_me: updating cache $cache_file" >&6;}
     cat confcache >$cache_file
   else
-    { $as_echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
   fi
 fi
@@ -11928,8 +7085,8 @@ for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
   ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
   # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
   #    will be set to the directory where LIBOBJS objects are built.
-  ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext"
-  ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo'
+  as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+  as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
 done
 LIBOBJS=$ac_libobjs
 
@@ -11942,9 +7099,10 @@ LTLIBOBJS=$ac_ltlibobjs
 ac_write_fail=0
 ac_clean_files_save=$ac_clean_files
 ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ $as_echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
-cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+as_write_fail=0
+cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
 #! $SHELL
 # Generated by $as_me.
 # Run this file to recreate the current configuration.
@@ -11954,17 +7112,18 @@ cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 debug=false
 ac_cs_recheck=false
 ac_cs_silent=false
-SHELL=\${CONFIG_SHELL-$SHELL}
-_ACEOF
 
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-## --------------------- ##
-## M4sh Initialization.  ##
-## --------------------- ##
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
 
 # Be more Bourne compatible
 DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
   emulate sh
   NULLCMD=:
   # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
@@ -11972,23 +7131,15 @@ if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
   alias -g '${1+"$@"}'='"$@"'
   setopt NO_GLOB_SUBST
 else
-  case `(set -o) 2>/dev/null` in
-  *posix*) set -o posix ;;
+  case `(set -o) 2>/dev/null` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
 esac
-
 fi
 
 
-
-
-# PATH needs CR
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
 as_nl='
 '
 export as_nl
@@ -11996,7 +7147,13 @@ export as_nl
 as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
 as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
 as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='print -r --'
+  as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
   as_echo='printf %s\n'
   as_echo_n='printf %s'
 else
@@ -12007,7 +7164,7 @@ else
     as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
     as_echo_n_body='eval
       arg=$1;
-      case $arg in
+      case $arg in #(
       *"$as_nl"*)
        expr "X$arg" : "X\\(.*\\)$as_nl";
        arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
@@ -12030,13 +7187,6 @@ if test "${PATH_SEPARATOR+set}" != set; then
   }
 fi
 
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-  as_unset=unset
-else
-  as_unset=false
-fi
-
 
 # IFS
 # We need space, tab and new line, in precisely that order.  Quoting is
 IFS=" ""       $as_nl"
 
 # Find who we are.  Look in the path if we contain no directory separator.
-case $0 in
+case $0 in #((
   *[\\/]* ) as_myself=$0 ;;
   *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
+    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+  done
 IFS=$as_save_IFS
 
      ;;
@@ -12066,12 +7216,16 @@ if test "x$as_myself" = x; then
 fi
 if test ! -f "$as_myself"; then
   $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
-  { (exit 1); exit 1; }
+  exit 1
 fi
 
-# Work around bugs in pre-3.0 UWIN ksh.
-for as_var in ENV MAIL MAILPATH
-do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there.  '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
 done
 PS1='$ '
 PS2='> '
@@ -12083,7 +7237,89 @@ export LC_ALL
 LANGUAGE=C
 export LANGUAGE
 
-# Required to use basename.
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+
+# as_fn_error ERROR [LINENO LOG_FD]
+# ---------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with status $?, using 1 if that was 0.
+as_fn_error ()
+{
+  as_status=$?; test $as_status -eq 0 && as_status=1
+  if test "$3"; then
+    as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+    $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
+  fi
+  $as_echo "$as_me: error: $1" >&2
+  as_fn_exit $as_status
+} # as_fn_error
+
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+  return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+  set +e
+  as_fn_set_status $1
+  exit $1
+} # as_fn_exit
+
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+  { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+  eval 'as_fn_append ()
+  {
+    eval $1+=\$2
+  }'
+else
+  as_fn_append ()
+  {
+    eval $1=\$$1\$2
+  }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+  eval 'as_fn_arith ()
+  {
+    as_val=$(( $* ))
+  }'
+else
+  as_fn_arith ()
+  {
+    as_val=`expr "$@" || test $? -eq 1`
+  }
+fi # as_fn_arith
+
+
 if expr a : '\(a\)' >/dev/null 2>&1 &&
    test "X`expr 00001 : '.*\(...\)'`" = X001; then
   as_expr=expr
@@ -12097,8 +7333,12 @@ else
   as_basename=false
 fi
 
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+  as_dirname=dirname
+else
+  as_dirname=false
+fi
 
-# Name of the executable.
 as_me=`$as_basename -- "$0" ||
 $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
         X"$0" : 'X\(//\)$' \| \
@@ -12118,76 +7358,25 @@ $as_echo X/"$0" |
          }
          s/.*/./; q'`
 
-# CDPATH.
-$as_unset CDPATH
-
-
-
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
-
-  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
-  # uniformly replaced by the line number.  The first 'sed' inserts a
-  # line-number line after each line using $LINENO; the second 'sed'
-  # does the real work.  The second script uses 'N' to pair each
-  # line-number line with the line containing $LINENO, and appends
-  # trailing '-' during substitution so that $LINENO is not a special
-  # case at line end.
-  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-  # scripts with optimization help from Paolo Bonzini.  Blame Lee
-  # E. McMahon (1931-1989) for sed's syntax.  :-)
-  sed -n '
-    p
-    /[$]LINENO/=
-  ' <$as_myself |
-    sed '
-      s/[$]LINENO.*/&-/
-      t lineno
-      b
-      :lineno
-      N
-      :loop
-      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
-      t loop
-      s/-\n.*//
-    ' >$as_me.lineno &&
-  chmod +x "$as_me.lineno" ||
-    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
-   { (exit 1); exit 1; }; }
-
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensitive to this).
-  . "./$as_me.lineno"
-  # Exit status is that of the last command.
-  exit
-}
-
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
-  as_dirname=dirname
-else
-  as_dirname=false
-fi
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
 
 ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in
+case `echo -n x` in #(((((
 -n*)
-  case `echo 'x\c'` in
+  case `echo 'xy\c'` in
   *c*) ECHO_T='        ';;     # ECHO_T is single tab character.
-  *)   ECHO_C='\c';;
+  xy)  ECHO_C='\c';;
+  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
+       ECHO_T='        ';;
   esac;;
 *)
   ECHO_N='-n';;
 esac
-if expr a : '\(a\)' >/dev/null 2>&1 &&
-   test "X`expr 00001 : '.*\(...\)'`" = X001; then
-  as_expr=expr
-else
-  as_expr=false
-fi
 
 rm -f conf$$ conf$$.exe conf$$.file
 if test -d conf$$.dir; then
@@ -12216,8 +7405,56 @@ fi
 rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
 rmdir conf$$.dir 2>/dev/null
 
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+  case $as_dir in #(
+  -*) as_dir=./$as_dir;;
+  esac
+  test -d "$as_dir" || eval $as_mkdir_p || {
+    as_dirs=
+    while :; do
+      case $as_dir in #(
+      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+      *) as_qdir=$as_dir;;
+      esac
+      as_dirs="'$as_qdir' $as_dirs"
+      as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+        X"$as_dir" : 'X\(//\)[^/]' \| \
+        X"$as_dir" : 'X\(//\)$' \| \
+        X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)[^/].*/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\).*/{
+           s//\1/
+           q
+         }
+         s/.*/./; q'`
+      test -d "$as_dir" && break
+    done
+    test -z "$as_dirs" || eval "mkdir $as_dirs"
+  } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
 if mkdir -p . 2>/dev/null; then
-  as_mkdir_p=:
+  as_mkdir_p='mkdir -p "$as_dir"'
 else
   test -d ./-p && rmdir ./-p
   as_mkdir_p=false
@@ -12236,10 +7473,10 @@ else
       if test -d "$1"; then
        test -d "$1/.";
       else
-       case $1 in
+       case $1 in #(
        -*)set "./$1";;
        esac;
-       case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
+       case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
        ???[sx]*):;;*)false;;esac;fi
     '\'' sh
   '
@@ -12254,13 +7491,19 @@ as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
 
 
 exec 6>&1
+## ----------------------------------- ##
+## Main body of $CONFIG_STATUS script. ##
+## ----------------------------------- ##
+_ASEOF
+test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
 
-# Save the log message, to keep $[0] and so on meaningful, and to
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# Save the log message, to keep $0 and so on meaningful, and to
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
 This file was extended by $as_me, which was
-generated by GNU Autoconf 2.63.  Invocation command line was
+generated by GNU Autoconf 2.64.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
   CONFIG_HEADERS  = $CONFIG_HEADERS
@@ -12292,10 +7535,11 @@ _ACEOF
 
 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 ac_cs_usage="\
-\`$as_me' instantiates files from templates according to the
-current configuration.
+\`$as_me' instantiates files and other configuration actions
+from templates according to the current configuration.  Unless the files
+and actions are specified as TAGs, all are instantiated by default.
 
-Usage: $0 [OPTION]... [FILE]...
+Usage: $0 [OPTION]... [TAG]...
 
   -h, --help       print this help, then exit
   -V, --version    print version number and configuration settings, then exit
@@ -12317,16 +7561,16 @@ $config_headers
 Configuration commands:
 $config_commands
 
-Report bugs to <bug-autoconf@gnu.org>."
+Report bugs to the package provider."
 
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_version="\\
 config.status
-configured by $0, generated by GNU Autoconf 2.63,
+configured by $0, generated by GNU Autoconf 2.64,
   with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
 
-Copyright (C) 2008 Free Software Foundation, Inc.
+Copyright (C) 2009 Free Software Foundation, Inc.
 This config.status script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it."
 
     case $ac_optarg in
     *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
     esac
-    CONFIG_FILES="$CONFIG_FILES '$ac_optarg'"
+    as_fn_append CONFIG_FILES " '$ac_optarg'"
     ac_need_defaults=false;;
   --header | --heade | --head | --hea )
     $ac_shift
     case $ac_optarg in
     *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
     esac
-    CONFIG_HEADERS="$CONFIG_HEADERS '$ac_optarg'"
+    as_fn_append CONFIG_HEADERS " '$ac_optarg'"
     ac_need_defaults=false;;
   --he | --h)
     # Conflict between --help and --header
-    { $as_echo "$as_me: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&2
-   { (exit 1); exit 1; }; };;
+    as_fn_error "ambiguous option: \`$1'
+Try \`$0 --help' for more information.";;
   --help | --hel | -h )
     $as_echo "$ac_cs_usage"; exit ;;
   -q | -quiet | --quiet | --quie | --qui | --qu | --q \
@@ -12389,11 +7632,10 @@ Try \`$0 --help' for more information." >&2
     ac_cs_silent=: ;;
 
   # This is an error.
-  -*) { $as_echo "$as_me: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&2
-   { (exit 1); exit 1; }; } ;;
+  -*) as_fn_error "unrecognized option: \`$1'
+Try \`$0 --help' for more information." ;;
 
-  *) ac_config_targets="$ac_config_targets $1"
+  *) as_fn_append ac_config_targets " $1"
      ac_need_defaults=false ;;
 
   esac
@@ -12443,12 +7685,9 @@ do
     "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
     "ircd/Makefile") CONFIG_FILES="$CONFIG_FILES ircd/Makefile" ;;
     "ircd/test/Makefile") CONFIG_FILES="$CONFIG_FILES ircd/test/Makefile" ;;
-    "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
     "default") CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
 
-  *) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
-$as_echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
-   { (exit 1); exit 1; }; };;
+  *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
   esac
 done
 
@@ -12475,7 +7714,7 @@ $debug ||
   trap 'exit_status=$?
   { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
 ' 0
-  trap '{ (exit 1); exit 1; }' 1 2 13 15
+  trap 'as_fn_exit 1' 1 2 13 15
 }
 # Create a (secure) tmp directory for tmp files.
 
@@ -12486,11 +7725,7 @@ $debug ||
 {
   tmp=./conf$$-$RANDOM
   (umask 077 && mkdir "$tmp")
-} ||
-{
-   $as_echo "$as_me: cannot create a temporary directory in ." >&2
-   { (exit 1); exit 1; }
-}
+} || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5
 
 # Set up the scripts for CONFIG_FILES section.
 # No need to generate them if there are no CONFIG_FILES.
@@ -12498,10 +7733,16 @@ $debug ||
 if test -n "$CONFIG_FILES"; then
 
 
-ac_cr='\r'
+ac_cr=`echo X | tr X '\015'`
+# On cygwin, bash can eat \r inside `` if the user requested igncr.
+# But we know of no other shell where ac_cr would be empty at this
+# point, so we can use a bashism as a fallback.
+if test "x$ac_cr" = x; then
+  eval ac_cr=\$\'\\r\'
+fi
 ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
 if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
-  ac_cs_awk_cr='\\r'
+  ac_cs_awk_cr='\r'
 else
   ac_cs_awk_cr=$ac_cr
 fi
@@ -12515,24 +7756,18 @@ _ACEOF
   echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
   echo "_ACEOF"
 } >conf$$subs.sh ||
-  { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
-$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
 ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'`
 ac_delim='%!_!# '
 for ac_last_try in false false false false false :; do
   . ./conf$$subs.sh ||
-    { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
-$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
-   { (exit 1); exit 1; }; }
+    as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
 
   ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
   if test $ac_delim_n = $ac_delim_num; then
     break
   elif $ac_last_try; then
-    { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
-$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
-   { (exit 1); exit 1; }; }
+    as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
   else
     ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
   fi
@@ -12621,9 +7856,7 @@ if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
 else
   cat
 fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
-  || { { $as_echo "$as_me:$LINENO: error: could not setup config files machinery" >&5
-$as_echo "$as_me: error: could not setup config files machinery" >&2;}
-   { (exit 1); exit 1; }; }
+  || as_fn_error "could not setup config files machinery" "$LINENO" 5
 _ACEOF
 
 # VPATH may cause trouble with some makes, so we remove $(srcdir),
@@ -12664,9 +7897,7 @@ for ac_last_try in false false :; do
   if test -z "$ac_t"; then
     break
   elif $ac_last_try; then
-    { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_HEADERS" >&5
-$as_echo "$as_me: error: could not make $CONFIG_HEADERS" >&2;}
-   { (exit 1); exit 1; }; }
+    as_fn_error "could not make $CONFIG_HEADERS" "$LINENO" 5
   else
     ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
   fi
@@ -12751,9 +7982,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 _ACAWK
 _ACEOF
 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-  { { $as_echo "$as_me:$LINENO: error: could not setup config headers machinery" >&5
-$as_echo "$as_me: error: could not setup config headers machinery" >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "could not setup config headers machinery" "$LINENO" 5
 fi # test -n "$CONFIG_HEADERS"
 
 
@@ -12766,9 +7995,7 @@ do
   esac
   case $ac_mode$ac_tag in
   :[FHL]*:*);;
-  :L* | :C*:*) { { $as_echo "$as_me:$LINENO: error: invalid tag $ac_tag" >&5
-$as_echo "$as_me: error: invalid tag $ac_tag" >&2;}
-   { (exit 1); exit 1; }; };;
+  :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;;
   :[FH]-) ac_tag=-:-;;
   :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
   esac
@@ -12796,12 +8023,10 @@ $as_echo "$as_me: error: invalid tag $ac_tag" >&2;}
           [\\/$]*) false;;
           *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
           esac ||
-          { { $as_echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5
-$as_echo "$as_me: error: cannot find input file: $ac_f" >&2;}
-   { (exit 1); exit 1; }; };;
+          as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;;
       esac
       case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
-      ac_file_inputs="$ac_file_inputs '$ac_f'"
+      as_fn_append ac_file_inputs " '$ac_f'"
     done
 
     # Let's still pretend it is `configure' which instantiates (i.e., don't
@@ -12812,7 +8037,7 @@ $as_echo "$as_me: error: cannot find input file: $ac_f" >&2;}
        `' by configure.'
     if test x"$ac_file" != x-; then
       configure_input="$ac_file.  $configure_input"
-      { $as_echo "$as_me:$LINENO: creating $ac_file" >&5
+      { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
 $as_echo "$as_me: creating $ac_file" >&6;}
     fi
     # Neutralize special characters interpreted by sed in replacement strings.
@@ -12825,9 +8050,7 @@ $as_echo "$as_me: creating $ac_file" >&6;}
 
     case $ac_tag in
     *:-:* | *:-) cat >"$tmp/stdin" \
-      || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
-$as_echo "$as_me: error: could not create $ac_file" >&2;}
-   { (exit 1); exit 1; }; } ;;
+      || as_fn_error "could not create $ac_file" "$LINENO" 5 ;;
     esac
     ;;
   esac
@@ -12855,47 +8078,7 @@ $as_echo X"$ac_file" |
            q
          }
          s/.*/./; q'`
-  { as_dir="$ac_dir"
-  case $as_dir in #(
-  -*) as_dir=./$as_dir;;
-  esac
-  test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || {
-    as_dirs=
-    while :; do
-      case $as_dir in #(
-      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
-      *) as_qdir=$as_dir;;
-      esac
-      as_dirs="'$as_qdir' $as_dirs"
-      as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-        X"$as_dir" : 'X\(//\)[^/]' \| \
-        X"$as_dir" : 'X\(//\)$' \| \
-        X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-           s//\1/
-           q
-         }
-         /^X\(\/\/\)[^/].*/{
-           s//\1/
-           q
-         }
-         /^X\(\/\/\)$/{
-           s//\1/
-           q
-         }
-         /^X\(\/\).*/{
-           s//\1/
-           q
-         }
-         s/.*/./; q'`
-      test -d "$as_dir" && break
-    done
-    test -z "$as_dirs" || eval "mkdir $as_dirs"
-  } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
-$as_echo "$as_me: error: cannot create directory $as_dir" >&2;}
-   { (exit 1); exit 1; }; }; }
+  as_dir="$ac_dir"; as_fn_mkdir_p
   ac_builddir=.
 
 case "$ac_dir" in
@@ -12947,7 +8130,6 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # If the template does not know about datarootdir, expand it.
 # FIXME: This hack should be removed a few years after 2.60.
 ac_datarootdir_hack=; ac_datarootdir_seen=
-
 ac_sed_dataroot='
 /datarootdir/ {
   p
@@ -12957,12 +8139,11 @@ ac_sed_dataroot='
 /@docdir@/p
 /@infodir@/p
 /@localedir@/p
-/@mandir@/p
-'
+/@mandir@/p'
 case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
 *datarootdir*) ac_datarootdir_seen=yes;;
 *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
-  { $as_echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
@@ -12972,7 +8153,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
   s&@infodir@&$infodir&g
   s&@localedir@&$localedir&g
   s&@mandir@&$mandir&g
-    s&\\\${datarootdir}&$datarootdir&g' ;;
+  s&\\\${datarootdir}&$datarootdir&g' ;;
 esac
 _ACEOF
 
@@ -13000,14 +8181,12 @@ s&@INSTALL@&$ac_INSTALL&;t t
 $ac_datarootdir_hack
 "
 eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
-  || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
-$as_echo "$as_me: error: could not create $ac_file" >&2;}
-   { (exit 1); exit 1; }; }
+  || as_fn_error "could not create $ac_file" "$LINENO" 5
 
 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
   { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
   { ac_out=`sed -n '/^[         ]*datarootdir[  ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
-  { $as_echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
 which seems to be undefined.  Please make sure it is defined." >&5
 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
 which seems to be undefined.  Please make sure it is defined." >&2;}
@@ -13017,9 +8196,7 @@ which seems to be undefined.  Please make sure it is defined." >&2;}
   -) cat "$tmp/out" && rm -f "$tmp/out";;
   *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
   esac \
-  || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
-$as_echo "$as_me: error: could not create $ac_file" >&2;}
-   { (exit 1); exit 1; }; }
+  || as_fn_error "could not create $ac_file" "$LINENO" 5
  ;;
   :H)
   #
@@ -13030,29 +8207,23 @@ $as_echo "$as_me: error: could not create $ac_file" >&2;}
       $as_echo "/* $configure_input  */" \
       && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
     } >"$tmp/config.h" \
-      || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
-$as_echo "$as_me: error: could not create $ac_file" >&2;}
-   { (exit 1); exit 1; }; }
+      || as_fn_error "could not create $ac_file" "$LINENO" 5
     if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
-      { $as_echo "$as_me:$LINENO: $ac_file is unchanged" >&5
+      { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
 $as_echo "$as_me: $ac_file is unchanged" >&6;}
     else
       rm -f "$ac_file"
       mv "$tmp/config.h" "$ac_file" \
-       || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
-$as_echo "$as_me: error: could not create $ac_file" >&2;}
-   { (exit 1); exit 1; }; }
+       || as_fn_error "could not create $ac_file" "$LINENO" 5
     fi
   else
     $as_echo "/* $configure_input  */" \
       && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
-      || { { $as_echo "$as_me:$LINENO: error: could not create -" >&5
-$as_echo "$as_me: error: could not create -" >&2;}
-   { (exit 1); exit 1; }; }
+      || as_fn_error "could not create -" "$LINENO" 5
   fi
  ;;
 
-  :C)  { $as_echo "$as_me:$LINENO: executing $ac_file commands" >&5
+  :C)  { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
 $as_echo "$as_me: executing $ac_file commands" >&6;}
  ;;
   esac
@@ -13065,15 +8236,12 @@ $as_echo "$as_me: executing $ac_file commands" >&6;}
 done # for ac_tag
 
 
-{ (exit 0); exit 0; }
+as_fn_exit 0
 _ACEOF
-chmod +x $CONFIG_STATUS
 ac_clean_files=$ac_clean_files_save
 
 test $ac_write_fail = 0 ||
-  { { $as_echo "$as_me:$LINENO: error: write failure creating $CONFIG_STATUS" >&5
-$as_echo "$as_me: error: write failure creating $CONFIG_STATUS" >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5
 
 
 # configure is writing to config.log, and then calls config.status.
@@ -13094,10 +8262,10 @@ if test "$no_create" != yes; then
   exec 5>>config.log
   # Use ||, not &&, to avoid exiting from the if with $? = 1, which
   # would make configure fail if this is the last instruction.
-  $ac_cs_success || { (exit 1); exit 1; }
+  $ac_cs_success || as_fn_exit $?
 fi
 if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
-  { $as_echo "$as_me:$LINENO: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
 fi
 
index 24f856bbf9d2c79622bb86d4ba023835a982e60b..e07e2b34a6873e585fa279aced6ef4701e5c02d0 100644 (file)
@@ -716,7 +716,7 @@ AC_DEFINE_UNQUOTED(MAXCONNECTIONS, $unet_cv_with_maxcon,
 [Maximum number of network connections])
 
 dnl Finally really generate all output files:
-AC_OUTPUT(Makefile ircd/Makefile ircd/test/Makefile doc/Makefile, [echo timestamp > stamp-h])
+AC_OUTPUT(Makefile ircd/Makefile ircd/test/Makefile, [echo timestamp > stamp-h])
 
 dnl Report configuration
 AC_OUTPUT_COMMANDS([echo "
diff --git a/doc/Makefile.in b/doc/Makefile.in
deleted file mode 100644 (file)
index 985337f..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-# doc/Makefile for the Undernet IRC Daemon.
-# Copyright (C) 1997, Carlo Wood <carlo@runaway.xs4all.nl>
-
-# This program 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 program 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., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-#### Start of system configuration section. ####
-
-prefix = @prefix@
-top_srcdir = @top_srcdir@
-srcdir = @srcdir@
-VPATH = @srcdir@
-INSTALL = @INSTALL@
-SHELL = @SHPROG@
-RM = @RMPROG@
-@SET_MAKE@
-
-DATAROOTDIR = @datarootdir@
-DATADIR = @datadir@
-MANDIR = @mandir@
-
-#### End of system configuration section. ####
-
-all:
-
-build:
-
-clean:
-
-distclean:
-       ${RM} -f Makefile stamp-m
-
-maintainer-clean: distclean
-
-depend:
-
-install:
-       test -d ${MANDIR}/man8 || mkdir ${MANDIR}/man8 || mkdir -p ${MANDIR}/man8
-       ${INSTALL} -m 644 ${srcdir}/ircd.8 ${MANDIR}/man8
-
-uninstall:
-       ${RM} -f ${MANDIR}/man8/ircd.8
-
-# You need GNU make for this to work.
-# Makefile: ../config/config.status Makefile.in ../config/gen.doc.Makefile \
-#        ../config/.config stamp-m
-#      @echo "recreating doc/Makefile"
-#      @cd ../config; \
-#      CONFIG_FILES=../doc/Makefile CONFIG_HEADERS= ./config.status > /dev/null; \
-#      RM=${RM} ${SHELL} ./gen.doc.Makefile
-
-# stamp-m:
-#      echo timestamp > stamp-m
-
-# ../config/config.status:
-#      @cd ../config; ${MAKE} config.status
diff --git a/doc/irc.1 b/doc/irc.1
deleted file mode 100644 (file)
index 09b3ad3..0000000
--- a/doc/irc.1
+++ /dev/null
@@ -1,82 +0,0 @@
-.\" @(#)irc.1 2.6 7 Oct 90
-.TH IRC 1 "7 October 1990"
-.SH NAME
-irc \- User Interface to Internet Relay Chat Protocol
-.SH SYNOPSIS
-\fBirc\fP [\fB-p\fP \fIportnum\fP] [\fB-c\fP \fIchannel\fP] [ \fInickname\fP [ \fIserver\fP ]]
-.SH DESCRIPTION
-.LP
-\fBIrc\fP is a user interface to the Internet Relay Chat, a CB-like
-interactive discussion environment.  It is structured into \fIchannels\fP,
-which are public discussion forums, and also allows for private intercommunication.
-Each participant has a \fInickname\fP, which is the one specified in the command
-line or else his login name.
-.LP
-Once invoked, \fBirc\fP connects as a client to the specified server,
-\fIserver\fP or to the default one (see below).  The screen splits into a dialogue
-window (the major part
-of the screen) and a command line, from which messages can be sent and
-commands given to control irc.
-.SH COMMAND SYNTAX
-The syntax of irc commands is of the form \fB/COMMAND\fP.  The most notable
-ones are listed below.  For an uptodate list, use the \fBHELP\fP command
-of \fBirc\fP.  Case is ignored.
-.IP "\fB/ADMIN\fR [\fIserver\fP]"
-Prints administrative information about an IRC \fIserver\fP.
-.IP "\fB/AWAY\fP [\fImessage\fP]"
-Mark yourself as being away (with an automatic reply \fImessage\fP
-if specified)
-.IP "\fB/BYE\fR, \fB/EXIT\fR, \fB/QUIT\fR"
-Terminate the session
-.IP "\fB/CHANNEL\fR [\fIchannel\fP]"
-Join another \fIchannel\fP
-.IP "\fB/CLEAR\fR"
-Clear the screen
-.IP "\fB/HELP\fR [\fIcommand\fP]"
-Display a brief description of the \fIcommand\fP (or list all commands, if none
-specified).
-.IP "\fB/SUMMON\fR \fIuser\fP"
-Allows to summon a \fIuser\fP specified as a full Internet address, i.e.,
-\fIlogin@host.domain\fP, to an IRC dialogue session (in much the same
-way as the talk(1) command).  It is usable ONLY if the irc daemon runs on
-the target machine (host.domain).
-.IP "\fB/TOPIC\fR \fItopic\fP"
-Sets the \fItopic\fP for the current channel
-.IP "\fB/WHO\fR [\fIchannel\fP|*]"
-Lists all users of IRC if no argument, of the specified \fIchannel\fP or of the
-current channel (*).
-.SH ARGUMENTS
-.IP "\fB-p\fP \fIportnum\fP"
-TCP/IP "port number.  Default is 6667 and this option should seldom if ever"
-be used.
-.IP "\fB-c\fP \fIchannel\fP"
-\fIChannel\fP number to join upon beginning of the session.  Default is no channel.
-.IP "\fInickname\fP"
-\fINickname\fP used in the session (can be changed with the \fB/NICK\fP command).
-Default is user login name.
-.IP "\fIserver\fP"
-\fIServer\fP to connect to.  Default is specified in the irc system configuration
-file, and can be superseded with the environment variable IRCSERVER.
-.SH EXAMPLE
-.RS
-.nf
-tolmoon% \fBirc -p6667 Wizard tolsun\fP
-.fi
-.RE
-.LP
-connects you to irc server in host tolsun (port 6667) with nickname Wizard
-.SH COPYRIGHT
-Copyright (c) 1988 University of Oulu, Computing Center, Finland.
-.nf
-Copyright (c) 1988,1989,1990 Jarkko Oikarinen
-.nf
-All rights reserved.
-For full COPYRIGHT see LICENSE file with IRC package.
-.SH "SEE ALSO"
-ircd(8)
-.SH BUGS
-What bugs ?
-.SH AUTHOR
-Jarkko Oikarinen <jto@tolsun.oulu.fi>
-.nf
-Manual page updated by Michel Fingerhut <Michel.Fingerhut@ircam.fr>
diff --git a/doc/ircd.8 b/doc/ircd.8
deleted file mode 100644 (file)
index 681fbc3..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-.\" @(#)ircd.8 2.0 (beta version) 29 Mar 1989 
-.TH IRCD 8 "10 July 2000"
-.SH NAME
-ircd \- The Undernet Internet Relay Chat Daemon
-.SH SYNOPSIS
-.hy 0
-.IP \fBircd\fP
-[-t] [-d directory] [-f configfile] [-x debuglevel] [-h hostname]
-.SH DESCRIPTION
-.LP
-\fIircd\fP is the Undernet Internet Relay Chat daemon.  
-\fIircd\fP is a server in that its function is to "serve"
-the client program \fIirc(1)\fP with messages and commands.  All commands
-and user messages are passed directly to \fIircd\fP for processing
-and relaying to other servers.  \fIirc(1)\fP depends upon
-there being an \fIircd\fP server running somewhere for it to connect to
-and thus allow the user to begin talking to other users.
-.LP
-There are many common clients including ircII, EPIC, and BitchX for UNIX,
-mIRC and pIRCh for Windows, and IRCle and Homer for the Macintosh.
-.SH OPTIONS
-.TP
-.B \-d directory
-This option tells the server to change to that directory and use
-that as a reference point when opening \fIircd.conf\fP and other startup
-files.
-.TP
-.B \-t
-Instructs the server run in the foreground and to direct debugging output to
-standard output.
-.TP
-.B \-x#
-Defines the debug level for \fIircd\fP. The higher the debug level, the more
-messages get directed to debugging file (or standard output if the -t option is
-used).
-.TP
-.B \-w interface
-This option is deprecated.  Outgoing connections are bound to the
-interface specified in the M: line, and incoming connections are accepted only on
-interfaces specified in the P: lines.
-.TP
-.B \-f filename
-Specifies the \fIircd.conf\fP file to be used for this server. The option
-is used to override the default \fIircd.conf\fP given at compile time.
-.TP
-.B \-c
-This flag must be given if you are running \fIircd\fP from \fI/dev/console\fP or
-any other situation where fd 0 isn't a TTY and you want the server to fork
-off and run in the background. This needs to be given if you are starting
-\fIircd\fP from an \fIrc\fP (such as \fI/etc/rc.local\fP) file.
-.TP
-.B \-h hostname
-Allows the user to manually set the server name at startup. The default
-name is hostname.domainname.
-.TP
-.B \-p portname
-This is deprecated in favor of specifying server ports in P: lines.
-
-.SH CONFIGURATION
-If you plan to connect your \fIircd\fP server to an existing IRC network,
-you will need to alter your local \fIircd\fP configuration file (typically named
-\fIircd.conf\fP) so that it will accept and make connections to other IRC
-servers.  This file contains the hostnames, network addresses, and
-passwords for connections to other IRC servers around the world.  Because 
-the description of the \fIircd.conf\fP file is beyond the scope of this
-document, please refer to the INSTALL file in the \fIircd\fP
-documentation directory.
-.LP
-BOOTING THE SERVER:  The \fIircd\fP server can be started as part of the
-UNIX boot procedure or just by placing the server into Unix Background.
-Keep in mind that if it is *not* part of your UNIXES Boot-up procedure 
-then you will have to manually start the \fIircd\fP server each time your
-UNIX is rebooted.  This means if your UNIX is prone to crashing
-or going for for repairs a lot it would make sense to start the \fIircd\fP
-server as part of your UNIX bootup procedure.  In some cases the \fIirc(1)\fP
-will automatically attempt to boot the \fIircd\fP server if the user is
-on the SAME UNIX that the \fIircd\fP is supposed to be running on.  If the
-\fIirc(1)\fP cannot connect to the \fIircd\fP server it will try to start
-the server on it's own and will then try to reconnect to the newly booted
-\fIircd\fP server.
-.SH EXAMPLE
-.RS
-.nf
-tolsun% \fBircd\fP
-.fi
-.RE
-.LP
-Places \fIircd\fP into UNIX Background and starts up the server for use.
-Note:  You do not have to add the "&" to this command, the program will
-automatically detach itself from tty.
-.SH COPYRIGHT
-(c) 1988,1989 University of Oulu, Computing Center, Finland,
-.LP
-(c) 1988,1989 Department of Information Processing Science,
-University of Oulu, Finland
-.LP
-(c) 1988,1989,1990,1991 Jarkko Oikarinen
-.LP
-For full COPYRIGHT see LICENSE file with IRC package.
-.LP
-.RE
-.SH FILES
- /etc/utmp
- "ircd.conf"
-.SH "SEE ALSO"
-irc(1)
-.SH BUGS
-See the file 'BUGS' included in the distribution.
-.SH AUTHOR
-The current authors of the undernet IRC daemon are coder-com@undernet.org,
-the original author was Jarkko Oikarinen.
\ No newline at end of file
diff --git a/libs/dbprim/COPYING b/libs/dbprim/COPYING
deleted file mode 100644 (file)
index 161a3d1..0000000
+++ /dev/null
@@ -1,482 +0,0 @@
-                 GNU LIBRARY GENERAL PUBLIC LICENSE
-                      Version 2, June 1991
-
- Copyright (C) 1991 Free Software Foundation, Inc.
- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the library GPL.  It is
- numbered 2 because it goes with version 2 of the ordinary GPL.]
-
-                           Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
-  This license, the Library General Public License, applies to some
-specially designated Free Software Foundation software, and to any
-other libraries whose authors decide to use it.  You can use it for
-your libraries, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
-  To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if
-you distribute copies of the library, or if you modify it.
-
-  For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you.  You must make sure that they, too, receive or can get the source
-code.  If you link a program with the library, you must provide
-complete object files to the recipients so that they can relink them
-with the library, after making changes to the library and recompiling
-it.  And you must show them these terms so they know their rights.
-
-  Our method of protecting your rights has two steps: (1) copyright
-the library, and (2) offer you this license which gives you legal
-permission to copy, distribute and/or modify the library.
-
-  Also, for each distributor's protection, we want to make certain
-that everyone understands that there is no warranty for this free
-library.  If the library is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original
-version, so that any problems introduced by others will not reflect on
-the original authors' reputations.
-\f
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that companies distributing free
-software will individually obtain patent licenses, thus in effect
-transforming the program into proprietary software.  To prevent this,
-we have made it clear that any patent must be licensed for everyone's
-free use or not licensed at all.
-
-  Most GNU software, including some libraries, is covered by the ordinary
-GNU General Public License, which was designed for utility programs.  This
-license, the GNU Library General Public License, applies to certain
-designated libraries.  This license is quite different from the ordinary
-one; be sure to read it in full, and don't assume that anything in it is
-the same as in the ordinary license.
-
-  The reason we have a separate public license for some libraries is that
-they blur the distinction we usually make between modifying or adding to a
-program and simply using it.  Linking a program with a library, without
-changing the library, is in some sense simply using the library, and is
-analogous to running a utility program or application program.  However, in
-a textual and legal sense, the linked executable is a combined work, a
-derivative of the original library, and the ordinary General Public License
-treats it as such.
-
-  Because of this blurred distinction, using the ordinary General
-Public License for libraries did not effectively promote software
-sharing, because most developers did not use the libraries.  We
-concluded that weaker conditions might promote sharing better.
-
-  However, unrestricted linking of non-free programs would deprive the
-users of those programs of all benefit from the free status of the
-libraries themselves.  This Library General Public License is intended to
-permit developers of non-free programs to use free libraries, while
-preserving your freedom as a user of such programs to change the free
-libraries that are incorporated in them.  (We have not seen how to achieve
-this as regards changes in header files, but we have achieved it as regards
-changes in the actual functions of the Library.)  The hope is that this
-will lead to faster development of free libraries.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.  Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library".  The
-former contains code derived from the library, while the latter only
-works together with the library.
-
-  Note that it is possible for a library to be covered by the ordinary
-General Public License rather than by this special one.
-\f
-                 GNU LIBRARY GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License Agreement applies to any software library which
-contains a notice placed by the copyright holder or other authorized
-party saying it may be distributed under the terms of this Library
-General Public License (also called "this License").  Each licensee is
-addressed as "you".
-
-  A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
-  The "Library", below, refers to any such software library or work
-which has been distributed under these terms.  A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language.  (Hereinafter, translation is
-included without limitation in the term "modification".)
-
-  "Source code" for a work means the preferred form of the work for
-making modifications to it.  For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation
-and installation of the library.
-
-  Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it).  Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-  
-  1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
-  You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-\f
-  2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) The modified work must itself be a software library.
-
-    b) You must cause the files modified to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    c) You must cause the whole of the work to be licensed at no
-    charge to all third parties under the terms of this License.
-
-    d) If a facility in the modified Library refers to a function or a
-    table of data to be supplied by an application program that uses
-    the facility, other than as an argument passed when the facility
-    is invoked, then you must make a good faith effort to ensure that,
-    in the event an application does not supply such function or
-    table, the facility still operates, and performs whatever part of
-    its purpose remains meaningful.
-
-    (For example, a function in a library to compute square roots has
-    a purpose that is entirely well-defined independent of the
-    application.  Therefore, Subsection 2d requires that any
-    application-supplied function or table used by this function must
-    be optional: if the application does not supply it, the square
-    root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library.  To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License.  (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.)  Do not make any other change in
-these notices.
-\f
-  Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
-  This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
-  4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
-  If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library".  Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
-  However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library".  The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
-  When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library.  The
-threshold for this to be true is not precisely defined by law.
-
-  If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work.  (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
-  Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-\f
-  6. As an exception to the Sections above, you may also compile or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
-  You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License.  You must supply a copy of this License.  If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License.  Also, you must do one
-of these things:
-
-    a) Accompany the work with the complete corresponding
-    machine-readable source code for the Library including whatever
-    changes were used in the work (which must be distributed under
-    Sections 1 and 2 above); and, if the work is an executable linked
-    with the Library, with the complete machine-readable "work that
-    uses the Library", as object code and/or source code, so that the
-    user can modify the Library and then relink to produce a modified
-    executable containing the modified Library.  (It is understood
-    that the user who changes the contents of definitions files in the
-    Library will not necessarily be able to recompile the application
-    to use the modified definitions.)
-
-    b) Accompany the work with a written offer, valid for at
-    least three years, to give the same user the materials
-    specified in Subsection 6a, above, for a charge no more
-    than the cost of performing this distribution.
-
-    c) If distribution of the work is made by offering access to copy
-    from a designated place, offer equivalent access to copy the above
-    specified materials from the same place.
-
-    d) Verify that the user has already received a copy of these
-    materials or that you have already sent this user a copy.
-
-  For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it.  However, as a special exception,
-the source code distributed need not include anything that is normally
-distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
-  It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system.  Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-\f
-  7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
-    a) Accompany the combined library with a copy of the same work
-    based on the Library, uncombined with any other library
-    facilities.  This must be distributed under the terms of the
-    Sections above.
-
-    b) Give prominent notice with the combined library of the fact
-    that part of it is a work based on the Library, and explaining
-    where to find the accompanying uncombined form of the same work.
-
-  8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License.  Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License.  However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
-  9. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Library or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
-  10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-\f
-  11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply,
-and the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License may add
-an explicit geographical distribution limitation excluding those countries,
-so that distribution is permitted only in or among countries not thus
-excluded.  In such case, this License incorporates the limitation as if
-written in the body of this License.
-
-  13. The Free Software Foundation may publish revised and/or new
-versions of the Library General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation.  If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-\f
-  14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission.  For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this.  Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
-                           NO WARRANTY
-
-  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
-  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
-                    END OF TERMS AND CONDITIONS
-\f
-     Appendix: How to Apply These Terms to Your New Libraries
-
-  If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change.  You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
-  To apply these terms, attach the following notices to the library.  It is
-safest to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the library's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This library is free software; you can redistribute it and/or
-    modify it under the terms of the GNU Library General Public
-    License as published by the Free Software Foundation; either
-    version 2 of the License, or (at your option) any later version.
-
-    This library 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
-    Library General Public License for more details.
-
-    You should have received a copy of the GNU Library General Public
-    License along with this library; if not, write to the Free
-    Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-    MA 02111-1307, USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the
-  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
-  <signature of Ty Coon>, 1 April 1990
-  Ty Coon, President of Vice
-
-That's all there is to it!
diff --git a/libs/dbprim/ChangeLog b/libs/dbprim/ChangeLog
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/libs/dbprim/INSTALL b/libs/dbprim/INSTALL
deleted file mode 100644 (file)
index b42a17a..0000000
+++ /dev/null
@@ -1,182 +0,0 @@
-Basic Installation
-==================
-
-   These are generic installation instructions.
-
-   The `configure' shell script attempts to guess correct values for
-various system-dependent variables used during compilation.  It uses
-those values to create a `Makefile' in each directory of the package.
-It may also create one or more `.h' files containing system-dependent
-definitions.  Finally, it creates a shell script `config.status' that
-you can run in the future to recreate the current configuration, a file
-`config.cache' that saves the results of its tests to speed up
-reconfiguring, and a file `config.log' containing compiler output
-(useful mainly for debugging `configure').
-
-   If you need to do unusual things to compile the package, please try
-to figure out how `configure' could check whether to do them, and mail
-diffs or instructions to the address given in the `README' so they can
-be considered for the next release.  If at some point `config.cache'
-contains results you don't want to keep, you may remove or edit it.
-
-   The file `configure.in' is used to create `configure' by a program
-called `autoconf'.  You only need `configure.in' if you want to change
-it or regenerate `configure' using a newer version of `autoconf'.
-
-The simplest way to compile this package is:
-
-  1. `cd' to the directory containing the package's source code and type
-     `./configure' to configure the package for your system.  If you're
-     using `csh' on an old version of System V, you might need to type
-     `sh ./configure' instead to prevent `csh' from trying to execute
-     `configure' itself.
-
-     Running `configure' takes awhile.  While running, it prints some
-     messages telling which features it is checking for.
-
-  2. Type `make' to compile the package.
-
-  3. Optionally, type `make check' to run any self-tests that come with
-     the package.
-
-  4. Type `make install' to install the programs and any data files and
-     documentation.
-
-  5. You can remove the program binaries and object files from the
-     source code directory by typing `make clean'.  To also remove the
-     files that `configure' created (so you can compile the package for
-     a different kind of computer), type `make distclean'.  There is
-     also a `make maintainer-clean' target, but that is intended mainly
-     for the package's developers.  If you use it, you may have to get
-     all sorts of other programs in order to regenerate files that came
-     with the distribution.
-
-Compilers and Options
-=====================
-
-   Some systems require unusual options for compilation or linking that
-the `configure' script does not know about.  You can give `configure'
-initial values for variables by setting them in the environment.  Using
-a Bourne-compatible shell, you can do that on the command line like
-this:
-     CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
-
-Or on systems that have the `env' program, you can do it like this:
-     env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
-
-Compiling For Multiple Architectures
-====================================
-
-   You can compile the package for more than one kind of computer at the
-same time, by placing the object files for each architecture in their
-own directory.  To do this, you must use a version of `make' that
-supports the `VPATH' variable, such as GNU `make'.  `cd' to the
-directory where you want the object files and executables to go and run
-the `configure' script.  `configure' automatically checks for the
-source code in the directory that `configure' is in and in `..'.
-
-   If you have to use a `make' that does not supports the `VPATH'
-variable, you have to compile the package for one architecture at a time
-in the source code directory.  After you have installed the package for
-one architecture, use `make distclean' before reconfiguring for another
-architecture.
-
-Installation Names
-==================
-
-   By default, `make install' will install the package's files in
-`/usr/local/bin', `/usr/local/man', etc.  You can specify an
-installation prefix other than `/usr/local' by giving `configure' the
-option `--prefix=PATH'.
-
-   You can specify separate installation prefixes for
-architecture-specific files and architecture-independent files.  If you
-give `configure' the option `--exec-prefix=PATH', the package will use
-PATH as the prefix for installing programs and libraries.
-Documentation and other data files will still use the regular prefix.
-
-   In addition, if you use an unusual directory layout you can give
-options like `--bindir=PATH' to specify different values for particular
-kinds of files.  Run `configure --help' for a list of the directories
-you can set and what kinds of files go in them.
-
-   If the package supports it, you can cause programs to be installed
-with an extra prefix or suffix on their names by giving `configure' the
-option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
-
-Optional Features
-=================
-
-   Some packages pay attention to `--enable-FEATURE' options to
-`configure', where FEATURE indicates an optional part of the package.
-They may also pay attention to `--with-PACKAGE' options, where PACKAGE
-is something like `gnu-as' or `x' (for the X Window System).  The
-`README' should mention any `--enable-' and `--with-' options that the
-package recognizes.
-
-   For packages that use the X Window System, `configure' can usually
-find the X include and library files automatically, but if it doesn't,
-you can use the `configure' options `--x-includes=DIR' and
-`--x-libraries=DIR' to specify their locations.
-
-Specifying the System Type
-==========================
-
-   There may be some features `configure' can not figure out
-automatically, but needs to determine by the type of host the package
-will run on.  Usually `configure' can figure that out, but if it prints
-a message saying it can not guess the host type, give it the
-`--host=TYPE' option.  TYPE can either be a short name for the system
-type, such as `sun4', or a canonical name with three fields:
-     CPU-COMPANY-SYSTEM
-
-See the file `config.sub' for the possible values of each field.  If
-`config.sub' isn't included in this package, then this package doesn't
-need to know the host type.
-
-   If you are building compiler tools for cross-compiling, you can also
-use the `--target=TYPE' option to select the type of system they will
-produce code for and the `--build=TYPE' option to select the type of
-system on which you are compiling the package.
-
-Sharing Defaults
-================
-
-   If you want to set default values for `configure' scripts to share,
-you can create a site shell script called `config.site' that gives
-default values for variables like `CC', `cache_file', and `prefix'.
-`configure' looks for `PREFIX/share/config.site' if it exists, then
-`PREFIX/etc/config.site' if it exists.  Or, you can set the
-`CONFIG_SITE' environment variable to the location of the site script.
-A warning: not all `configure' scripts look for a site script.
-
-Operation Controls
-==================
-
-   `configure' recognizes the following options to control how it
-operates.
-
-`--cache-file=FILE'
-     Use and save the results of the tests in FILE instead of
-     `./config.cache'.  Set FILE to `/dev/null' to disable caching, for
-     debugging `configure'.
-
-`--help'
-     Print a summary of the options to `configure', and exit.
-
-`--quiet'
-`--silent'
-`-q'
-     Do not print messages saying which checks are being made.  To
-     suppress all normal output, redirect it to `/dev/null' (any error
-     messages will still be shown).
-
-`--srcdir=DIR'
-     Look for the package's source code in directory DIR.  Usually
-     `configure' can determine that directory automatically.
-
-`--version'
-     Print the version of Autoconf used to generate the `configure'
-     script, and exit.
-
-`configure' also accepts some other, not widely useful, options.
diff --git a/libs/dbprim/Makefile.am b/libs/dbprim/Makefile.am
deleted file mode 100644 (file)
index ac4ea90..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-## Prefered emacs editing mode: -*- Makefile -*-
-##
-## Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-##
-## This library is free software; you can redistribute it and/or
-## modify it under the terms of the GNU Library General Public
-## License as published by the Free Software Foundation; either
-## version 2 of the License, or (at your option) any later version.
-##
-## This library 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
-## Library General Public License for more details.
-##
-## You should have received a copy of the GNU Library General Public
-## License along with this library; if not, write to the Free
-## Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-## MA 02111-1307, USA
-##
-## @(#)$Id$
-##
-## Process this file with automake to generate Makefile.in
-
-AUTOMAKE_OPTIONS = foreign
-
-# The . here forces prefix ordering, so make check rebuilds the
-# library first if necessary
-SUBDIRS = . tests
-
-lib_LTLIBRARIES = libdbprim.la
-libdbprim_la_SOURCES = dbprim_int.h \
-                      \
-                      _hash_prime.c he_init.c ht_add.c ht_find.c ht_flush.c \
-                      ht_free.c ht_init.c ht_iter.c ht_move.c ht_remove.c \
-                      ht_resize.c \
-                      \
-                      le_init.c ll_add.c ll_find.c ll_flush.c ll_init.c \
-                      ll_iter.c ll_move.c ll_remove.c \
-                      \
-                      sh_find.c sh_flush.c sh_init.c sh_iter.c sh_move.c \
-                      _smat_comp.c smat_freelist.c _smat_hash.c \
-                      _smat_resize.c st_add.c st_find.c st_flush.c st_free.c \
-                      st_init.c st_iter.c st_remove.c st_resize.c
-libdbprim_la_LIBADD = @DBPRIM_ET_OBJS@
-libdbprim_la_DEPENDENCIES = @DBPRIM_ET_OBJS@
-libdbprim_la_LDFLAGS = -version-info 1:1:0
-
-include_HEADERS = dbprim.h
-
-EXTRA_DIST = dbprim.h.top dbprim.h.bot dbprim_err.et \
-            comp_et-sh.in COPYING INSTALL doc
-
-SUFFIXES = .et .h
-
-CLEANFILES = dbprim.h dbprim_err.c dbprim_err.h
-
-.et.c .et.h: comp_et-sh
-       $(SHELL) comp_et-sh --com_err=@COM_ERR@ --dir=$(top_builddir) $<
-
-dbprim_err.c dbprim_err.h: dbprim_err.et
-
-$(OBJECTS): dbprim.h
-
-dbprim.h: $(srcdir)/dbprim.h.top dbprim_err.h $(srcdir)/dbprim.h.bot
-       cat $(srcdir)/dbprim.h.top dbprim_err.h \
-               $(srcdir)/dbprim.h.bot > dbprim.h
-
-dist-hook:
-       rm -f dbprim.h dbprim_err.c dbprim_err.h
diff --git a/libs/dbprim/Makefile.in b/libs/dbprim/Makefile.in
deleted file mode 100644 (file)
index d78cd6f..0000000
+++ /dev/null
@@ -1,546 +0,0 @@
-# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
-
-# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-
-SHELL = @SHELL@
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-
-bindir = @bindir@
-sbindir = @sbindir@
-libexecdir = @libexecdir@
-datadir = @datadir@
-sysconfdir = @sysconfdir@
-sharedstatedir = @sharedstatedir@
-localstatedir = @localstatedir@
-libdir = @libdir@
-infodir = @infodir@
-mandir = @mandir@
-includedir = @includedir@
-oldincludedir = /usr/include
-
-DESTDIR =
-
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-
-top_builddir = .
-
-ACLOCAL = @ACLOCAL@
-AUTOCONF = @AUTOCONF@
-AUTOMAKE = @AUTOMAKE@
-AUTOHEADER = @AUTOHEADER@
-
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-transform = @program_transform_name@
-
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-host_alias = @host_alias@
-host_triplet = @host@
-AS = @AS@
-AWK = @AWK@
-CC = @CC@
-COM_ERR = @COM_ERR@
-DLLTOOL = @DLLTOOL@
-ECHO = @ECHO@
-EXEEXT = @EXEEXT@
-LIBTOOL = @LIBTOOL@
-LN_S = @LN_S@
-MAKEINFO = @MAKEINFO@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-RANLIB = @RANLIB@
-STRIP = @STRIP@
-VERSION = @VERSION@
-
-AUTOMAKE_OPTIONS = foreign
-
-# The . here forces prefix ordering, so make check rebuilds the
-# library first if necessary
-SUBDIRS = . tests
-
-lib_LTLIBRARIES = libdbprim.la
-libdbprim_la_SOURCES = dbprim_int.h \
-                      \
-                      _hash_prime.c he_init.c ht_add.c ht_find.c ht_flush.c \
-                      ht_free.c ht_init.c ht_iter.c ht_move.c ht_remove.c \
-                      ht_resize.c \
-                      \
-                      le_init.c ll_add.c ll_find.c ll_flush.c ll_init.c \
-                      ll_iter.c ll_move.c ll_remove.c \
-                      \
-                      sh_find.c sh_flush.c sh_init.c sh_iter.c sh_move.c \
-                      _smat_comp.c smat_freelist.c _smat_hash.c \
-                      _smat_resize.c st_add.c st_find.c st_flush.c st_free.c \
-                      st_init.c st_iter.c st_remove.c st_resize.c
-
-libdbprim_la_LIBADD = @DBPRIM_ET_OBJS@
-libdbprim_la_DEPENDENCIES = @DBPRIM_ET_OBJS@
-libdbprim_la_LDFLAGS = -version-info 1:1:0
-
-include_HEADERS = dbprim.h
-
-EXTRA_DIST = dbprim.h.top dbprim.h.bot dbprim_err.et \
-            comp_et-sh.in COPYING INSTALL doc
-
-
-SUFFIXES = .et .h
-
-CLEANFILES = dbprim.h dbprim_err.c dbprim_err.h
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_CLEAN_FILES =  comp_et-sh
-LTLIBRARIES =  $(lib_LTLIBRARIES)
-
-
-DEFS = @DEFS@ -I. -I$(srcdir) 
-CPPFLAGS = @CPPFLAGS@
-LDFLAGS = @LDFLAGS@
-LIBS = @LIBS@
-libdbprim_la_OBJECTS =  _hash_prime.lo he_init.lo ht_add.lo ht_find.lo \
-ht_flush.lo ht_free.lo ht_init.lo ht_iter.lo ht_move.lo ht_remove.lo \
-ht_resize.lo le_init.lo ll_add.lo ll_find.lo ll_flush.lo ll_init.lo \
-ll_iter.lo ll_move.lo ll_remove.lo sh_find.lo sh_flush.lo sh_init.lo \
-sh_iter.lo sh_move.lo _smat_comp.lo smat_freelist.lo _smat_hash.lo \
-_smat_resize.lo st_add.lo st_find.lo st_flush.lo st_free.lo st_init.lo \
-st_iter.lo st_remove.lo st_resize.lo
-CFLAGS = @CFLAGS@
-COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
-HEADERS =  $(include_HEADERS)
-
-DIST_COMMON =  COPYING ChangeLog INSTALL Makefile.am Makefile.in \
-acinclude.m4 aclocal.m4 comp_et-sh.in config.guess config.sub configure \
-configure.in install-sh ltmain.sh missing mkinstalldirs
-
-
-DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
-
-TAR = gtar
-GZIP_ENV = --best
-SOURCES = $(libdbprim_la_SOURCES)
-OBJECTS = $(libdbprim_la_OBJECTS)
-
-all: all-redirect
-.SUFFIXES:
-.SUFFIXES: .S .c .et .h .lo .o .obj .s
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
-       cd $(top_srcdir) && $(AUTOMAKE) --foreign --include-deps Makefile
-
-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
-       cd $(top_builddir) \
-         && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-$(ACLOCAL_M4):  configure.in  acinclude.m4
-       cd $(srcdir) && $(ACLOCAL)
-
-config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-       $(SHELL) ./config.status --recheck
-$(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
-       cd $(srcdir) && $(AUTOCONF)
-comp_et-sh: $(top_builddir)/config.status comp_et-sh.in
-       cd $(top_builddir) && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-mostlyclean-libLTLIBRARIES:
-
-clean-libLTLIBRARIES:
-       -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
-
-distclean-libLTLIBRARIES:
-
-maintainer-clean-libLTLIBRARIES:
-
-install-libLTLIBRARIES: $(lib_LTLIBRARIES)
-       @$(NORMAL_INSTALL)
-       $(mkinstalldirs) $(DESTDIR)$(libdir)
-       @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
-         if test -f $$p; then \
-           echo "$(LIBTOOL)  --mode=install $(INSTALL) $$p $(DESTDIR)$(libdir)/$$p"; \
-           $(LIBTOOL)  --mode=install $(INSTALL) $$p $(DESTDIR)$(libdir)/$$p; \
-         else :; fi; \
-       done
-
-uninstall-libLTLIBRARIES:
-       @$(NORMAL_UNINSTALL)
-       list='$(lib_LTLIBRARIES)'; for p in $$list; do \
-         $(LIBTOOL)  --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p; \
-       done
-
-.c.o:
-       $(COMPILE) -c $<
-
-# FIXME: We should only use cygpath when building on Windows,
-# and only if it is available.
-.c.obj:
-       $(COMPILE) -c `cygpath -w $<`
-
-.s.o:
-       $(COMPILE) -c $<
-
-.S.o:
-       $(COMPILE) -c $<
-
-mostlyclean-compile:
-       -rm -f *.o core *.core
-       -rm -f *.$(OBJEXT)
-
-clean-compile:
-
-distclean-compile:
-       -rm -f *.tab.c
-
-maintainer-clean-compile:
-
-.c.lo:
-       $(LIBTOOL) --mode=compile $(COMPILE) -c $<
-
-.s.lo:
-       $(LIBTOOL) --mode=compile $(COMPILE) -c $<
-
-.S.lo:
-       $(LIBTOOL) --mode=compile $(COMPILE) -c $<
-
-mostlyclean-libtool:
-       -rm -f *.lo
-
-clean-libtool:
-       -rm -rf .libs _libs
-
-distclean-libtool:
-
-maintainer-clean-libtool:
-
-libdbprim.la: $(libdbprim_la_OBJECTS) $(libdbprim_la_DEPENDENCIES)
-       $(LINK) -rpath $(libdir) $(libdbprim_la_LDFLAGS) $(libdbprim_la_OBJECTS) $(libdbprim_la_LIBADD) $(LIBS)
-
-install-includeHEADERS: $(include_HEADERS)
-       @$(NORMAL_INSTALL)
-       $(mkinstalldirs) $(DESTDIR)$(includedir)
-       @list='$(include_HEADERS)'; for p in $$list; do \
-         if test -f "$$p"; then d= ; else d="$(srcdir)/"; fi; \
-         echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p"; \
-         $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p; \
-       done
-
-uninstall-includeHEADERS:
-       @$(NORMAL_UNINSTALL)
-       list='$(include_HEADERS)'; for p in $$list; do \
-         rm -f $(DESTDIR)$(includedir)/$$p; \
-       done
-
-# This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-#     (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-
-@SET_MAKE@
-
-all-recursive install-data-recursive install-exec-recursive \
-installdirs-recursive install-recursive uninstall-recursive  \
-check-recursive installcheck-recursive info-recursive dvi-recursive:
-       @set fnord $(MAKEFLAGS); amf=$$2; \
-       dot_seen=no; \
-       target=`echo $@ | sed s/-recursive//`; \
-       list='$(SUBDIRS)'; for subdir in $$list; do \
-         echo "Making $$target in $$subdir"; \
-         if test "$$subdir" = "."; then \
-           dot_seen=yes; \
-           local_target="$$target-am"; \
-         else \
-           local_target="$$target"; \
-         fi; \
-         (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-          || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
-       done; \
-       if test "$$dot_seen" = "no"; then \
-         $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
-       fi; test -z "$$fail"
-
-mostlyclean-recursive clean-recursive distclean-recursive \
-maintainer-clean-recursive:
-       @set fnord $(MAKEFLAGS); amf=$$2; \
-       dot_seen=no; \
-       rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
-         rev="$$subdir $$rev"; \
-         test "$$subdir" != "." || dot_seen=yes; \
-       done; \
-       test "$$dot_seen" = "no" && rev=". $$rev"; \
-       target=`echo $@ | sed s/-recursive//`; \
-       for subdir in $$rev; do \
-         echo "Making $$target in $$subdir"; \
-         if test "$$subdir" = "."; then \
-           local_target="$$target-am"; \
-         else \
-           local_target="$$target"; \
-         fi; \
-         (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-          || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
-       done && test -z "$$fail"
-tags-recursive:
-       list='$(SUBDIRS)'; for subdir in $$list; do \
-         test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
-       done
-
-tags: TAGS
-
-ID: $(HEADERS) $(SOURCES) $(LISP)
-       list='$(SOURCES) $(HEADERS)'; \
-       unique=`for i in $$list; do echo $$i; done | \
-         awk '    { files[$$0] = 1; } \
-              END { for (i in files) print i; }'`; \
-       here=`pwd` && cd $(srcdir) \
-         && mkid -f$$here/ID $$unique $(LISP)
-
-TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) $(LISP)
-       tags=; \
-       here=`pwd`; \
-       list='$(SUBDIRS)'; for subdir in $$list; do \
-   if test "$$subdir" = .; then :; else \
-           test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
-   fi; \
-       done; \
-       list='$(SOURCES) $(HEADERS)'; \
-       unique=`for i in $$list; do echo $$i; done | \
-         awk '    { files[$$0] = 1; } \
-              END { for (i in files) print i; }'`; \
-       test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
-         || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
-
-mostlyclean-tags:
-
-clean-tags:
-
-distclean-tags:
-       -rm -f TAGS ID
-
-maintainer-clean-tags:
-
-distdir = $(PACKAGE)-$(VERSION)
-top_distdir = $(distdir)
-
-# This target untars the dist file and tries a VPATH configuration.  Then
-# it guarantees that the distribution is self-contained by making another
-# tarfile.
-distcheck: dist
-       -rm -rf $(distdir)
-       GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz
-       mkdir $(distdir)/=build
-       mkdir $(distdir)/=inst
-       dc_install_base=`cd $(distdir)/=inst && pwd`; \
-       cd $(distdir)/=build \
-         && ../configure --srcdir=.. --prefix=$$dc_install_base \
-         && $(MAKE) $(AM_MAKEFLAGS) \
-         && $(MAKE) $(AM_MAKEFLAGS) dvi \
-         && $(MAKE) $(AM_MAKEFLAGS) check \
-         && $(MAKE) $(AM_MAKEFLAGS) install \
-         && $(MAKE) $(AM_MAKEFLAGS) installcheck \
-         && $(MAKE) $(AM_MAKEFLAGS) dist
-       -rm -rf $(distdir)
-       @banner="$(distdir).tar.gz is ready for distribution"; \
-       dashes=`echo "$$banner" | sed s/./=/g`; \
-       echo "$$dashes"; \
-       echo "$$banner"; \
-       echo "$$dashes"
-dist: distdir
-       -chmod -R a+r $(distdir)
-       GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
-       -rm -rf $(distdir)
-dist-all: distdir
-       -chmod -R a+r $(distdir)
-       GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
-       -rm -rf $(distdir)
-distdir: $(DISTFILES)
-       -rm -rf $(distdir)
-       mkdir $(distdir)
-       -chmod 777 $(distdir)
-       @for file in $(DISTFILES); do \
-         d=$(srcdir); \
-         if test -d $$d/$$file; then \
-           cp -pr $$d/$$file $(distdir)/$$file; \
-         else \
-           test -f $(distdir)/$$file \
-           || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
-           || cp -p $$d/$$file $(distdir)/$$file || :; \
-         fi; \
-       done
-       for subdir in $(SUBDIRS); do \
-         if test "$$subdir" = .; then :; else \
-           test -d $(distdir)/$$subdir \
-           || mkdir $(distdir)/$$subdir \
-           || exit 1; \
-           chmod 777 $(distdir)/$$subdir; \
-           (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(distdir) distdir=../$(distdir)/$$subdir distdir) \
-             || exit 1; \
-         fi; \
-       done
-       $(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-hook
-_hash_prime.lo _hash_prime.o : _hash_prime.c dbprim.h dbprim_int.h
-_smat_comp.lo _smat_comp.o : _smat_comp.c dbprim.h dbprim_int.h
-_smat_freelist.lo _smat_freelist.o : _smat_freelist.c dbprim.h \
-       dbprim_int.h
-_smat_hash.lo _smat_hash.o : _smat_hash.c dbprim.h dbprim_int.h
-_smat_resize.lo _smat_resize.o : _smat_resize.c dbprim.h dbprim_int.h
-he_init.lo he_init.o : he_init.c dbprim.h dbprim_int.h
-ht_add.lo ht_add.o : ht_add.c dbprim.h dbprim_int.h
-ht_find.lo ht_find.o : ht_find.c dbprim.h dbprim_int.h
-ht_flush.lo ht_flush.o : ht_flush.c dbprim.h dbprim_int.h
-ht_free.lo ht_free.o : ht_free.c dbprim.h dbprim_int.h
-ht_init.lo ht_init.o : ht_init.c dbprim.h dbprim_int.h
-ht_iter.lo ht_iter.o : ht_iter.c dbprim.h dbprim_int.h
-ht_move.lo ht_move.o : ht_move.c dbprim.h dbprim_int.h
-ht_remove.lo ht_remove.o : ht_remove.c dbprim.h dbprim_int.h
-ht_resize.lo ht_resize.o : ht_resize.c dbprim.h dbprim_int.h
-le_init.lo le_init.o : le_init.c dbprim.h dbprim_int.h
-ll_add.lo ll_add.o : ll_add.c dbprim.h dbprim_int.h
-ll_find.lo ll_find.o : ll_find.c dbprim.h dbprim_int.h
-ll_flush.lo ll_flush.o : ll_flush.c dbprim.h dbprim_int.h
-ll_init.lo ll_init.o : ll_init.c dbprim.h dbprim_int.h
-ll_iter.lo ll_iter.o : ll_iter.c dbprim.h dbprim_int.h
-ll_move.lo ll_move.o : ll_move.c dbprim.h dbprim_int.h
-ll_remove.lo ll_remove.o : ll_remove.c dbprim.h dbprim_int.h
-sh_find.lo sh_find.o : sh_find.c dbprim.h dbprim_int.h
-sh_flush.lo sh_flush.o : sh_flush.c dbprim.h dbprim_int.h
-sh_init.lo sh_init.o : sh_init.c dbprim.h dbprim_int.h
-sh_iter.lo sh_iter.o : sh_iter.c dbprim.h dbprim_int.h
-sh_move.lo sh_move.o : sh_move.c dbprim.h dbprim_int.h
-smat_freelist.lo smat_freelist.o : smat_freelist.c dbprim.h dbprim_int.h
-st_add.lo st_add.o : st_add.c dbprim.h dbprim_int.h
-st_find.lo st_find.o : st_find.c dbprim.h dbprim_int.h
-st_flush.lo st_flush.o : st_flush.c dbprim.h dbprim_int.h
-st_free.lo st_free.o : st_free.c dbprim.h dbprim_int.h
-st_init.lo st_init.o : st_init.c dbprim.h dbprim_int.h
-st_iter.lo st_iter.o : st_iter.c dbprim.h dbprim_int.h
-st_remove.lo st_remove.o : st_remove.c dbprim.h dbprim_int.h
-st_resize.lo st_resize.o : st_resize.c dbprim.h dbprim_int.h
-
-info-am:
-info: info-recursive
-dvi-am:
-dvi: dvi-recursive
-check-am: all-am
-check: check-recursive
-installcheck-am:
-installcheck: installcheck-recursive
-install-exec-am: install-libLTLIBRARIES
-install-exec: install-exec-recursive
-
-install-data-am: install-includeHEADERS
-install-data: install-data-recursive
-
-install-am: all-am
-       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-install: install-recursive
-uninstall-am: uninstall-libLTLIBRARIES uninstall-includeHEADERS
-uninstall: uninstall-recursive
-all-am: Makefile $(LTLIBRARIES) $(HEADERS)
-all-redirect: all-recursive
-install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
-installdirs: installdirs-recursive
-installdirs-am:
-       $(mkinstalldirs)  $(DESTDIR)$(libdir) $(DESTDIR)$(includedir)
-
-
-mostlyclean-generic:
-
-clean-generic:
-       -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
-       -rm -f Makefile $(CONFIG_CLEAN_FILES)
-       -rm -f config.cache config.log stamp-h stamp-h[0-9]*
-
-maintainer-clean-generic:
-mostlyclean-am:  mostlyclean-libLTLIBRARIES mostlyclean-compile \
-               mostlyclean-libtool mostlyclean-tags \
-               mostlyclean-generic
-
-mostlyclean: mostlyclean-recursive
-
-clean-am:  clean-libLTLIBRARIES clean-compile clean-libtool clean-tags \
-               clean-generic mostlyclean-am
-
-clean: clean-recursive
-
-distclean-am:  distclean-libLTLIBRARIES distclean-compile \
-               distclean-libtool distclean-tags distclean-generic \
-               clean-am
-       -rm -f libtool
-
-distclean: distclean-recursive
-       -rm -f config.status
-
-maintainer-clean-am:  maintainer-clean-libLTLIBRARIES \
-               maintainer-clean-compile maintainer-clean-libtool \
-               maintainer-clean-tags maintainer-clean-generic \
-               distclean-am
-       @echo "This command is intended for maintainers to use;"
-       @echo "it deletes files that may require special tools to rebuild."
-
-maintainer-clean: maintainer-clean-recursive
-       -rm -f config.status
-
-.PHONY: mostlyclean-libLTLIBRARIES distclean-libLTLIBRARIES \
-clean-libLTLIBRARIES maintainer-clean-libLTLIBRARIES \
-uninstall-libLTLIBRARIES install-libLTLIBRARIES mostlyclean-compile \
-distclean-compile clean-compile maintainer-clean-compile \
-mostlyclean-libtool distclean-libtool clean-libtool \
-maintainer-clean-libtool uninstall-includeHEADERS \
-install-includeHEADERS install-data-recursive uninstall-data-recursive \
-install-exec-recursive uninstall-exec-recursive installdirs-recursive \
-uninstalldirs-recursive all-recursive check-recursive \
-installcheck-recursive info-recursive dvi-recursive \
-mostlyclean-recursive distclean-recursive clean-recursive \
-maintainer-clean-recursive tags tags-recursive mostlyclean-tags \
-distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
-dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
-install-exec install-data-am install-data install-am install \
-uninstall-am uninstall all-redirect all-am all installdirs-am \
-installdirs mostlyclean-generic distclean-generic clean-generic \
-maintainer-clean-generic clean mostlyclean distclean maintainer-clean
-
-
-.et.c .et.h: comp_et-sh
-       $(SHELL) comp_et-sh --com_err=@COM_ERR@ --dir=$(top_builddir) $<
-
-dbprim_err.c dbprim_err.h: dbprim_err.et
-
-$(OBJECTS): dbprim.h
-
-dbprim.h: $(srcdir)/dbprim.h.top dbprim_err.h $(srcdir)/dbprim.h.bot
-       cat $(srcdir)/dbprim.h.top dbprim_err.h \
-               $(srcdir)/dbprim.h.bot > dbprim.h
-
-dist-hook:
-       rm -f dbprim.h dbprim_err.c dbprim_err.h
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/libs/dbprim/_hash_prime.c b/libs/dbprim/_hash_prime.c
deleted file mode 100644 (file)
index 05f2562..0000000
+++ /dev/null
@@ -1,784 +0,0 @@
-/*
-** Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-**
-** This library is free software; you can redistribute it and/or
-** modify it under the terms of the GNU Library General Public
-** License as published by the Free Software Foundation; either
-** version 2 of the License, or (at your option) any later version.
-**
-** This library 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
-** Library General Public License for more details.
-**
-** You should have received a copy of the GNU Library General Public
-** License along with this library; if not, write to the Free
-** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-** MA 02111-1307, USA
-**
-** @(#)$Id$
-*/
-#include "dbprim.h"
-#include "dbprim_int.h"
-
-RCSTAG("@(#)$Id$");
-
-#define MAX_PRIME      4294967291UL
-
-/* Table of all 16-bit primes plus two extra--used for checking computed
- * primes for primality.
- */
-static unsigned long primes[] = {
-      3,     5,     7,    11,    13,    17,    19,    23,    29,
-     31,    37,    41,    43,    47,    53,    59,    61,    67,
-     71,    73,    79,    83,    89,    97,   101,   103,   107,
-    109,   113,   127,   131,   137,   139,   149,   151,   157,
-    163,   167,   173,   179,   181,   191,   193,   197,   199,
-    211,   223,   227,   229,   233,   239,   241,   251,   257,
-    263,   269,   271,   277,   281,   283,   293,   307,   311,
-    313,   317,   331,   337,   347,   349,   353,   359,   367,
-    373,   379,   383,   389,   397,   401,   409,   419,   421,
-    431,   433,   439,   443,   449,   457,   461,   463,   467,
-    479,   487,   491,   499,   503,   509,   521,   523,   541,
-    547,   557,   563,   569,   571,   577,   587,   593,   599,
-    601,   607,   613,   617,   619,   631,   641,   643,   647,
-    653,   659,   661,   673,   677,   683,   691,   701,   709,
-    719,   727,   733,   739,   743,   751,   757,   761,   769,
-    773,   787,   797,   809,   811,   821,   823,   827,   829,
-    839,   853,   857,   859,   863,   877,   881,   883,   887,
-    907,   911,   919,   929,   937,   941,   947,   953,   967,
-    971,   977,   983,   991,   997,  1009,  1013,  1019,  1021,
-   1031,  1033,  1039,  1049,  1051,  1061,  1063,  1069,  1087,
-   1091,  1093,  1097,  1103,  1109,  1117,  1123,  1129,  1151,
-   1153,  1163,  1171,  1181,  1187,  1193,  1201,  1213,  1217,
-   1223,  1229,  1231,  1237,  1249,  1259,  1277,  1279,  1283,
-   1289,  1291,  1297,  1301,  1303,  1307,  1319,  1321,  1327,
-   1361,  1367,  1373,  1381,  1399,  1409,  1423,  1427,  1429,
-   1433,  1439,  1447,  1451,  1453,  1459,  1471,  1481,  1483,
-   1487,  1489,  1493,  1499,  1511,  1523,  1531,  1543,  1549,
-   1553,  1559,  1567,  1571,  1579,  1583,  1597,  1601,  1607,
-   1609,  1613,  1619,  1621,  1627,  1637,  1657,  1663,  1667,
-   1669,  1693,  1697,  1699,  1709,  1721,  1723,  1733,  1741,
-   1747,  1753,  1759,  1777,  1783,  1787,  1789,  1801,  1811,
-   1823,  1831,  1847,  1861,  1867,  1871,  1873,  1877,  1879,
-   1889,  1901,  1907,  1913,  1931,  1933,  1949,  1951,  1973,
-   1979,  1987,  1993,  1997,  1999,  2003,  2011,  2017,  2027,
-   2029,  2039,  2053,  2063,  2069,  2081,  2083,  2087,  2089,
-   2099,  2111,  2113,  2129,  2131,  2137,  2141,  2143,  2153,
-   2161,  2179,  2203,  2207,  2213,  2221,  2237,  2239,  2243,
-   2251,  2267,  2269,  2273,  2281,  2287,  2293,  2297,  2309,
-   2311,  2333,  2339,  2341,  2347,  2351,  2357,  2371,  2377,
-   2381,  2383,  2389,  2393,  2399,  2411,  2417,  2423,  2437,
-   2441,  2447,  2459,  2467,  2473,  2477,  2503,  2521,  2531,
-   2539,  2543,  2549,  2551,  2557,  2579,  2591,  2593,  2609,
-   2617,  2621,  2633,  2647,  2657,  2659,  2663,  2671,  2677,
-   2683,  2687,  2689,  2693,  2699,  2707,  2711,  2713,  2719,
-   2729,  2731,  2741,  2749,  2753,  2767,  2777,  2789,  2791,
-   2797,  2801,  2803,  2819,  2833,  2837,  2843,  2851,  2857,
-   2861,  2879,  2887,  2897,  2903,  2909,  2917,  2927,  2939,
-   2953,  2957,  2963,  2969,  2971,  2999,  3001,  3011,  3019,
-   3023,  3037,  3041,  3049,  3061,  3067,  3079,  3083,  3089,
-   3109,  3119,  3121,  3137,  3163,  3167,  3169,  3181,  3187,
-   3191,  3203,  3209,  3217,  3221,  3229,  3251,  3253,  3257,
-   3259,  3271,  3299,  3301,  3307,  3313,  3319,  3323,  3329,
-   3331,  3343,  3347,  3359,  3361,  3371,  3373,  3389,  3391,
-   3407,  3413,  3433,  3449,  3457,  3461,  3463,  3467,  3469,
-   3491,  3499,  3511,  3517,  3527,  3529,  3533,  3539,  3541,
-   3547,  3557,  3559,  3571,  3581,  3583,  3593,  3607,  3613,
-   3617,  3623,  3631,  3637,  3643,  3659,  3671,  3673,  3677,
-   3691,  3697,  3701,  3709,  3719,  3727,  3733,  3739,  3761,
-   3767,  3769,  3779,  3793,  3797,  3803,  3821,  3823,  3833,
-   3847,  3851,  3853,  3863,  3877,  3881,  3889,  3907,  3911,
-   3917,  3919,  3923,  3929,  3931,  3943,  3947,  3967,  3989,
-   4001,  4003,  4007,  4013,  4019,  4021,  4027,  4049,  4051,
-   4057,  4073,  4079,  4091,  4093,  4099,  4111,  4127,  4129,
-   4133,  4139,  4153,  4157,  4159,  4177,  4201,  4211,  4217,
-   4219,  4229,  4231,  4241,  4243,  4253,  4259,  4261,  4271,
-   4273,  4283,  4289,  4297,  4327,  4337,  4339,  4349,  4357,
-   4363,  4373,  4391,  4397,  4409,  4421,  4423,  4441,  4447,
-   4451,  4457,  4463,  4481,  4483,  4493,  4507,  4513,  4517,
-   4519,  4523,  4547,  4549,  4561,  4567,  4583,  4591,  4597,
-   4603,  4621,  4637,  4639,  4643,  4649,  4651,  4657,  4663,
-   4673,  4679,  4691,  4703,  4721,  4723,  4729,  4733,  4751,
-   4759,  4783,  4787,  4789,  4793,  4799,  4801,  4813,  4817,
-   4831,  4861,  4871,  4877,  4889,  4903,  4909,  4919,  4931,
-   4933,  4937,  4943,  4951,  4957,  4967,  4969,  4973,  4987,
-   4993,  4999,  5003,  5009,  5011,  5021,  5023,  5039,  5051,
-   5059,  5077,  5081,  5087,  5099,  5101,  5107,  5113,  5119,
-   5147,  5153,  5167,  5171,  5179,  5189,  5197,  5209,  5227,
-   5231,  5233,  5237,  5261,  5273,  5279,  5281,  5297,  5303,
-   5309,  5323,  5333,  5347,  5351,  5381,  5387,  5393,  5399,
-   5407,  5413,  5417,  5419,  5431,  5437,  5441,  5443,  5449,
-   5471,  5477,  5479,  5483,  5501,  5503,  5507,  5519,  5521,
-   5527,  5531,  5557,  5563,  5569,  5573,  5581,  5591,  5623,
-   5639,  5641,  5647,  5651,  5653,  5657,  5659,  5669,  5683,
-   5689,  5693,  5701,  5711,  5717,  5737,  5741,  5743,  5749,
-   5779,  5783,  5791,  5801,  5807,  5813,  5821,  5827,  5839,
-   5843,  5849,  5851,  5857,  5861,  5867,  5869,  5879,  5881,
-   5897,  5903,  5923,  5927,  5939,  5953,  5981,  5987,  6007,
-   6011,  6029,  6037,  6043,  6047,  6053,  6067,  6073,  6079,
-   6089,  6091,  6101,  6113,  6121,  6131,  6133,  6143,  6151,
-   6163,  6173,  6197,  6199,  6203,  6211,  6217,  6221,  6229,
-   6247,  6257,  6263,  6269,  6271,  6277,  6287,  6299,  6301,
-   6311,  6317,  6323,  6329,  6337,  6343,  6353,  6359,  6361,
-   6367,  6373,  6379,  6389,  6397,  6421,  6427,  6449,  6451,
-   6469,  6473,  6481,  6491,  6521,  6529,  6547,  6551,  6553,
-   6563,  6569,  6571,  6577,  6581,  6599,  6607,  6619,  6637,
-   6653,  6659,  6661,  6673,  6679,  6689,  6691,  6701,  6703,
-   6709,  6719,  6733,  6737,  6761,  6763,  6779,  6781,  6791,
-   6793,  6803,  6823,  6827,  6829,  6833,  6841,  6857,  6863,
-   6869,  6871,  6883,  6899,  6907,  6911,  6917,  6947,  6949,
-   6959,  6961,  6967,  6971,  6977,  6983,  6991,  6997,  7001,
-   7013,  7019,  7027,  7039,  7043,  7057,  7069,  7079,  7103,
-   7109,  7121,  7127,  7129,  7151,  7159,  7177,  7187,  7193,
-   7207,  7211,  7213,  7219,  7229,  7237,  7243,  7247,  7253,
-   7283,  7297,  7307,  7309,  7321,  7331,  7333,  7349,  7351,
-   7369,  7393,  7411,  7417,  7433,  7451,  7457,  7459,  7477,
-   7481,  7487,  7489,  7499,  7507,  7517,  7523,  7529,  7537,
-   7541,  7547,  7549,  7559,  7561,  7573,  7577,  7583,  7589,
-   7591,  7603,  7607,  7621,  7639,  7643,  7649,  7669,  7673,
-   7681,  7687,  7691,  7699,  7703,  7717,  7723,  7727,  7741,
-   7753,  7757,  7759,  7789,  7793,  7817,  7823,  7829,  7841,
-   7853,  7867,  7873,  7877,  7879,  7883,  7901,  7907,  7919,
-   7927,  7933,  7937,  7949,  7951,  7963,  7993,  8009,  8011,
-   8017,  8039,  8053,  8059,  8069,  8081,  8087,  8089,  8093,
-   8101,  8111,  8117,  8123,  8147,  8161,  8167,  8171,  8179,
-   8191,  8209,  8219,  8221,  8231,  8233,  8237,  8243,  8263,
-   8269,  8273,  8287,  8291,  8293,  8297,  8311,  8317,  8329,
-   8353,  8363,  8369,  8377,  8387,  8389,  8419,  8423,  8429,
-   8431,  8443,  8447,  8461,  8467,  8501,  8513,  8521,  8527,
-   8537,  8539,  8543,  8563,  8573,  8581,  8597,  8599,  8609,
-   8623,  8627,  8629,  8641,  8647,  8663,  8669,  8677,  8681,
-   8689,  8693,  8699,  8707,  8713,  8719,  8731,  8737,  8741,
-   8747,  8753,  8761,  8779,  8783,  8803,  8807,  8819,  8821,
-   8831,  8837,  8839,  8849,  8861,  8863,  8867,  8887,  8893,
-   8923,  8929,  8933,  8941,  8951,  8963,  8969,  8971,  8999,
-   9001,  9007,  9011,  9013,  9029,  9041,  9043,  9049,  9059,
-   9067,  9091,  9103,  9109,  9127,  9133,  9137,  9151,  9157,
-   9161,  9173,  9181,  9187,  9199,  9203,  9209,  9221,  9227,
-   9239,  9241,  9257,  9277,  9281,  9283,  9293,  9311,  9319,
-   9323,  9337,  9341,  9343,  9349,  9371,  9377,  9391,  9397,
-   9403,  9413,  9419,  9421,  9431,  9433,  9437,  9439,  9461,
-   9463,  9467,  9473,  9479,  9491,  9497,  9511,  9521,  9533,
-   9539,  9547,  9551,  9587,  9601,  9613,  9619,  9623,  9629,
-   9631,  9643,  9649,  9661,  9677,  9679,  9689,  9697,  9719,
-   9721,  9733,  9739,  9743,  9749,  9767,  9769,  9781,  9787,
-   9791,  9803,  9811,  9817,  9829,  9833,  9839,  9851,  9857,
-   9859,  9871,  9883,  9887,  9901,  9907,  9923,  9929,  9931,
-   9941,  9949,  9967,  9973, 10007, 10009, 10037, 10039, 10061,
-  10067, 10069, 10079, 10091, 10093, 10099, 10103, 10111, 10133,
-  10139, 10141, 10151, 10159, 10163, 10169, 10177, 10181, 10193,
-  10211, 10223, 10243, 10247, 10253, 10259, 10267, 10271, 10273,
-  10289, 10301, 10303, 10313, 10321, 10331, 10333, 10337, 10343,
-  10357, 10369, 10391, 10399, 10427, 10429, 10433, 10453, 10457,
-  10459, 10463, 10477, 10487, 10499, 10501, 10513, 10529, 10531,
-  10559, 10567, 10589, 10597, 10601, 10607, 10613, 10627, 10631,
-  10639, 10651, 10657, 10663, 10667, 10687, 10691, 10709, 10711,
-  10723, 10729, 10733, 10739, 10753, 10771, 10781, 10789, 10799,
-  10831, 10837, 10847, 10853, 10859, 10861, 10867, 10883, 10889,
-  10891, 10903, 10909, 10937, 10939, 10949, 10957, 10973, 10979,
-  10987, 10993, 11003, 11027, 11047, 11057, 11059, 11069, 11071,
-  11083, 11087, 11093, 11113, 11117, 11119, 11131, 11149, 11159,
-  11161, 11171, 11173, 11177, 11197, 11213, 11239, 11243, 11251,
-  11257, 11261, 11273, 11279, 11287, 11299, 11311, 11317, 11321,
-  11329, 11351, 11353, 11369, 11383, 11393, 11399, 11411, 11423,
-  11437, 11443, 11447, 11467, 11471, 11483, 11489, 11491, 11497,
-  11503, 11519, 11527, 11549, 11551, 11579, 11587, 11593, 11597,
-  11617, 11621, 11633, 11657, 11677, 11681, 11689, 11699, 11701,
-  11717, 11719, 11731, 11743, 11777, 11779, 11783, 11789, 11801,
-  11807, 11813, 11821, 11827, 11831, 11833, 11839, 11863, 11867,
-  11887, 11897, 11903, 11909, 11923, 11927, 11933, 11939, 11941,
-  11953, 11959, 11969, 11971, 11981, 11987, 12007, 12011, 12037,
-  12041, 12043, 12049, 12071, 12073, 12097, 12101, 12107, 12109,
-  12113, 12119, 12143, 12149, 12157, 12161, 12163, 12197, 12203,
-  12211, 12227, 12239, 12241, 12251, 12253, 12263, 12269, 12277,
-  12281, 12289, 12301, 12323, 12329, 12343, 12347, 12373, 12377,
-  12379, 12391, 12401, 12409, 12413, 12421, 12433, 12437, 12451,
-  12457, 12473, 12479, 12487, 12491, 12497, 12503, 12511, 12517,
-  12527, 12539, 12541, 12547, 12553, 12569, 12577, 12583, 12589,
-  12601, 12611, 12613, 12619, 12637, 12641, 12647, 12653, 12659,
-  12671, 12689, 12697, 12703, 12713, 12721, 12739, 12743, 12757,
-  12763, 12781, 12791, 12799, 12809, 12821, 12823, 12829, 12841,
-  12853, 12889, 12893, 12899, 12907, 12911, 12917, 12919, 12923,
-  12941, 12953, 12959, 12967, 12973, 12979, 12983, 13001, 13003,
-  13007, 13009, 13033, 13037, 13043, 13049, 13063, 13093, 13099,
-  13103, 13109, 13121, 13127, 13147, 13151, 13159, 13163, 13171,
-  13177, 13183, 13187, 13217, 13219, 13229, 13241, 13249, 13259,
-  13267, 13291, 13297, 13309, 13313, 13327, 13331, 13337, 13339,
-  13367, 13381, 13397, 13399, 13411, 13417, 13421, 13441, 13451,
-  13457, 13463, 13469, 13477, 13487, 13499, 13513, 13523, 13537,
-  13553, 13567, 13577, 13591, 13597, 13613, 13619, 13627, 13633,
-  13649, 13669, 13679, 13681, 13687, 13691, 13693, 13697, 13709,
-  13711, 13721, 13723, 13729, 13751, 13757, 13759, 13763, 13781,
-  13789, 13799, 13807, 13829, 13831, 13841, 13859, 13873, 13877,
-  13879, 13883, 13901, 13903, 13907, 13913, 13921, 13931, 13933,
-  13963, 13967, 13997, 13999, 14009, 14011, 14029, 14033, 14051,
-  14057, 14071, 14081, 14083, 14087, 14107, 14143, 14149, 14153,
-  14159, 14173, 14177, 14197, 14207, 14221, 14243, 14249, 14251,
-  14281, 14293, 14303, 14321, 14323, 14327, 14341, 14347, 14369,
-  14387, 14389, 14401, 14407, 14411, 14419, 14423, 14431, 14437,
-  14447, 14449, 14461, 14479, 14489, 14503, 14519, 14533, 14537,
-  14543, 14549, 14551, 14557, 14561, 14563, 14591, 14593, 14621,
-  14627, 14629, 14633, 14639, 14653, 14657, 14669, 14683, 14699,
-  14713, 14717, 14723, 14731, 14737, 14741, 14747, 14753, 14759,
-  14767, 14771, 14779, 14783, 14797, 14813, 14821, 14827, 14831,
-  14843, 14851, 14867, 14869, 14879, 14887, 14891, 14897, 14923,
-  14929, 14939, 14947, 14951, 14957, 14969, 14983, 15013, 15017,
-  15031, 15053, 15061, 15073, 15077, 15083, 15091, 15101, 15107,
-  15121, 15131, 15137, 15139, 15149, 15161, 15173, 15187, 15193,
-  15199, 15217, 15227, 15233, 15241, 15259, 15263, 15269, 15271,
-  15277, 15287, 15289, 15299, 15307, 15313, 15319, 15329, 15331,
-  15349, 15359, 15361, 15373, 15377, 15383, 15391, 15401, 15413,
-  15427, 15439, 15443, 15451, 15461, 15467, 15473, 15493, 15497,
-  15511, 15527, 15541, 15551, 15559, 15569, 15581, 15583, 15601,
-  15607, 15619, 15629, 15641, 15643, 15647, 15649, 15661, 15667,
-  15671, 15679, 15683, 15727, 15731, 15733, 15737, 15739, 15749,
-  15761, 15767, 15773, 15787, 15791, 15797, 15803, 15809, 15817,
-  15823, 15859, 15877, 15881, 15887, 15889, 15901, 15907, 15913,
-  15919, 15923, 15937, 15959, 15971, 15973, 15991, 16001, 16007,
-  16033, 16057, 16061, 16063, 16067, 16069, 16073, 16087, 16091,
-  16097, 16103, 16111, 16127, 16139, 16141, 16183, 16187, 16189,
-  16193, 16217, 16223, 16229, 16231, 16249, 16253, 16267, 16273,
-  16301, 16319, 16333, 16339, 16349, 16361, 16363, 16369, 16381,
-  16411, 16417, 16421, 16427, 16433, 16447, 16451, 16453, 16477,
-  16481, 16487, 16493, 16519, 16529, 16547, 16553, 16561, 16567,
-  16573, 16603, 16607, 16619, 16631, 16633, 16649, 16651, 16657,
-  16661, 16673, 16691, 16693, 16699, 16703, 16729, 16741, 16747,
-  16759, 16763, 16787, 16811, 16823, 16829, 16831, 16843, 16871,
-  16879, 16883, 16889, 16901, 16903, 16921, 16927, 16931, 16937,
-  16943, 16963, 16979, 16981, 16987, 16993, 17011, 17021, 17027,
-  17029, 17033, 17041, 17047, 17053, 17077, 17093, 17099, 17107,
-  17117, 17123, 17137, 17159, 17167, 17183, 17189, 17191, 17203,
-  17207, 17209, 17231, 17239, 17257, 17291, 17293, 17299, 17317,
-  17321, 17327, 17333, 17341, 17351, 17359, 17377, 17383, 17387,
-  17389, 17393, 17401, 17417, 17419, 17431, 17443, 17449, 17467,
-  17471, 17477, 17483, 17489, 17491, 17497, 17509, 17519, 17539,
-  17551, 17569, 17573, 17579, 17581, 17597, 17599, 17609, 17623,
-  17627, 17657, 17659, 17669, 17681, 17683, 17707, 17713, 17729,
-  17737, 17747, 17749, 17761, 17783, 17789, 17791, 17807, 17827,
-  17837, 17839, 17851, 17863, 17881, 17891, 17903, 17909, 17911,
-  17921, 17923, 17929, 17939, 17957, 17959, 17971, 17977, 17981,
-  17987, 17989, 18013, 18041, 18043, 18047, 18049, 18059, 18061,
-  18077, 18089, 18097, 18119, 18121, 18127, 18131, 18133, 18143,
-  18149, 18169, 18181, 18191, 18199, 18211, 18217, 18223, 18229,
-  18233, 18251, 18253, 18257, 18269, 18287, 18289, 18301, 18307,
-  18311, 18313, 18329, 18341, 18353, 18367, 18371, 18379, 18397,
-  18401, 18413, 18427, 18433, 18439, 18443, 18451, 18457, 18461,
-  18481, 18493, 18503, 18517, 18521, 18523, 18539, 18541, 18553,
-  18583, 18587, 18593, 18617, 18637, 18661, 18671, 18679, 18691,
-  18701, 18713, 18719, 18731, 18743, 18749, 18757, 18773, 18787,
-  18793, 18797, 18803, 18839, 18859, 18869, 18899, 18911, 18913,
-  18917, 18919, 18947, 18959, 18973, 18979, 19001, 19009, 19013,
-  19031, 19037, 19051, 19069, 19073, 19079, 19081, 19087, 19121,
-  19139, 19141, 19157, 19163, 19181, 19183, 19207, 19211, 19213,
-  19219, 19231, 19237, 19249, 19259, 19267, 19273, 19289, 19301,
-  19309, 19319, 19333, 19373, 19379, 19381, 19387, 19391, 19403,
-  19417, 19421, 19423, 19427, 19429, 19433, 19441, 19447, 19457,
-  19463, 19469, 19471, 19477, 19483, 19489, 19501, 19507, 19531,
-  19541, 19543, 19553, 19559, 19571, 19577, 19583, 19597, 19603,
-  19609, 19661, 19681, 19687, 19697, 19699, 19709, 19717, 19727,
-  19739, 19751, 19753, 19759, 19763, 19777, 19793, 19801, 19813,
-  19819, 19841, 19843, 19853, 19861, 19867, 19889, 19891, 19913,
-  19919, 19927, 19937, 19949, 19961, 19963, 19973, 19979, 19991,
-  19993, 19997, 20011, 20021, 20023, 20029, 20047, 20051, 20063,
-  20071, 20089, 20101, 20107, 20113, 20117, 20123, 20129, 20143,
-  20147, 20149, 20161, 20173, 20177, 20183, 20201, 20219, 20231,
-  20233, 20249, 20261, 20269, 20287, 20297, 20323, 20327, 20333,
-  20341, 20347, 20353, 20357, 20359, 20369, 20389, 20393, 20399,
-  20407, 20411, 20431, 20441, 20443, 20477, 20479, 20483, 20507,
-  20509, 20521, 20533, 20543, 20549, 20551, 20563, 20593, 20599,
-  20611, 20627, 20639, 20641, 20663, 20681, 20693, 20707, 20717,
-  20719, 20731, 20743, 20747, 20749, 20753, 20759, 20771, 20773,
-  20789, 20807, 20809, 20849, 20857, 20873, 20879, 20887, 20897,
-  20899, 20903, 20921, 20929, 20939, 20947, 20959, 20963, 20981,
-  20983, 21001, 21011, 21013, 21017, 21019, 21023, 21031, 21059,
-  21061, 21067, 21089, 21101, 21107, 21121, 21139, 21143, 21149,
-  21157, 21163, 21169, 21179, 21187, 21191, 21193, 21211, 21221,
-  21227, 21247, 21269, 21277, 21283, 21313, 21317, 21319, 21323,
-  21341, 21347, 21377, 21379, 21383, 21391, 21397, 21401, 21407,
-  21419, 21433, 21467, 21481, 21487, 21491, 21493, 21499, 21503,
-  21517, 21521, 21523, 21529, 21557, 21559, 21563, 21569, 21577,
-  21587, 21589, 21599, 21601, 21611, 21613, 21617, 21647, 21649,
-  21661, 21673, 21683, 21701, 21713, 21727, 21737, 21739, 21751,
-  21757, 21767, 21773, 21787, 21799, 21803, 21817, 21821, 21839,
-  21841, 21851, 21859, 21863, 21871, 21881, 21893, 21911, 21929,
-  21937, 21943, 21961, 21977, 21991, 21997, 22003, 22013, 22027,
-  22031, 22037, 22039, 22051, 22063, 22067, 22073, 22079, 22091,
-  22093, 22109, 22111, 22123, 22129, 22133, 22147, 22153, 22157,
-  22159, 22171, 22189, 22193, 22229, 22247, 22259, 22271, 22273,
-  22277, 22279, 22283, 22291, 22303, 22307, 22343, 22349, 22367,
-  22369, 22381, 22391, 22397, 22409, 22433, 22441, 22447, 22453,
-  22469, 22481, 22483, 22501, 22511, 22531, 22541, 22543, 22549,
-  22567, 22571, 22573, 22613, 22619, 22621, 22637, 22639, 22643,
-  22651, 22669, 22679, 22691, 22697, 22699, 22709, 22717, 22721,
-  22727, 22739, 22741, 22751, 22769, 22777, 22783, 22787, 22807,
-  22811, 22817, 22853, 22859, 22861, 22871, 22877, 22901, 22907,
-  22921, 22937, 22943, 22961, 22963, 22973, 22993, 23003, 23011,
-  23017, 23021, 23027, 23029, 23039, 23041, 23053, 23057, 23059,
-  23063, 23071, 23081, 23087, 23099, 23117, 23131, 23143, 23159,
-  23167, 23173, 23189, 23197, 23201, 23203, 23209, 23227, 23251,
-  23269, 23279, 23291, 23293, 23297, 23311, 23321, 23327, 23333,
-  23339, 23357, 23369, 23371, 23399, 23417, 23431, 23447, 23459,
-  23473, 23497, 23509, 23531, 23537, 23539, 23549, 23557, 23561,
-  23563, 23567, 23581, 23593, 23599, 23603, 23609, 23623, 23627,
-  23629, 23633, 23663, 23669, 23671, 23677, 23687, 23689, 23719,
-  23741, 23743, 23747, 23753, 23761, 23767, 23773, 23789, 23801,
-  23813, 23819, 23827, 23831, 23833, 23857, 23869, 23873, 23879,
-  23887, 23893, 23899, 23909, 23911, 23917, 23929, 23957, 23971,
-  23977, 23981, 23993, 24001, 24007, 24019, 24023, 24029, 24043,
-  24049, 24061, 24071, 24077, 24083, 24091, 24097, 24103, 24107,
-  24109, 24113, 24121, 24133, 24137, 24151, 24169, 24179, 24181,
-  24197, 24203, 24223, 24229, 24239, 24247, 24251, 24281, 24317,
-  24329, 24337, 24359, 24371, 24373, 24379, 24391, 24407, 24413,
-  24419, 24421, 24439, 24443, 24469, 24473, 24481, 24499, 24509,
-  24517, 24527, 24533, 24547, 24551, 24571, 24593, 24611, 24623,
-  24631, 24659, 24671, 24677, 24683, 24691, 24697, 24709, 24733,
-  24749, 24763, 24767, 24781, 24793, 24799, 24809, 24821, 24841,
-  24847, 24851, 24859, 24877, 24889, 24907, 24917, 24919, 24923,
-  24943, 24953, 24967, 24971, 24977, 24979, 24989, 25013, 25031,
-  25033, 25037, 25057, 25073, 25087, 25097, 25111, 25117, 25121,
-  25127, 25147, 25153, 25163, 25169, 25171, 25183, 25189, 25219,
-  25229, 25237, 25243, 25247, 25253, 25261, 25301, 25303, 25307,
-  25309, 25321, 25339, 25343, 25349, 25357, 25367, 25373, 25391,
-  25409, 25411, 25423, 25439, 25447, 25453, 25457, 25463, 25469,
-  25471, 25523, 25537, 25541, 25561, 25577, 25579, 25583, 25589,
-  25601, 25603, 25609, 25621, 25633, 25639, 25643, 25657, 25667,
-  25673, 25679, 25693, 25703, 25717, 25733, 25741, 25747, 25759,
-  25763, 25771, 25793, 25799, 25801, 25819, 25841, 25847, 25849,
-  25867, 25873, 25889, 25903, 25913, 25919, 25931, 25933, 25939,
-  25943, 25951, 25969, 25981, 25997, 25999, 26003, 26017, 26021,
-  26029, 26041, 26053, 26083, 26099, 26107, 26111, 26113, 26119,
-  26141, 26153, 26161, 26171, 26177, 26183, 26189, 26203, 26209,
-  26227, 26237, 26249, 26251, 26261, 26263, 26267, 26293, 26297,
-  26309, 26317, 26321, 26339, 26347, 26357, 26371, 26387, 26393,
-  26399, 26407, 26417, 26423, 26431, 26437, 26449, 26459, 26479,
-  26489, 26497, 26501, 26513, 26539, 26557, 26561, 26573, 26591,
-  26597, 26627, 26633, 26641, 26647, 26669, 26681, 26683, 26687,
-  26693, 26699, 26701, 26711, 26713, 26717, 26723, 26729, 26731,
-  26737, 26759, 26777, 26783, 26801, 26813, 26821, 26833, 26839,
-  26849, 26861, 26863, 26879, 26881, 26891, 26893, 26903, 26921,
-  26927, 26947, 26951, 26953, 26959, 26981, 26987, 26993, 27011,
-  27017, 27031, 27043, 27059, 27061, 27067, 27073, 27077, 27091,
-  27103, 27107, 27109, 27127, 27143, 27179, 27191, 27197, 27211,
-  27239, 27241, 27253, 27259, 27271, 27277, 27281, 27283, 27299,
-  27329, 27337, 27361, 27367, 27397, 27407, 27409, 27427, 27431,
-  27437, 27449, 27457, 27479, 27481, 27487, 27509, 27527, 27529,
-  27539, 27541, 27551, 27581, 27583, 27611, 27617, 27631, 27647,
-  27653, 27673, 27689, 27691, 27697, 27701, 27733, 27737, 27739,
-  27743, 27749, 27751, 27763, 27767, 27773, 27779, 27791, 27793,
-  27799, 27803, 27809, 27817, 27823, 27827, 27847, 27851, 27883,
-  27893, 27901, 27917, 27919, 27941, 27943, 27947, 27953, 27961,
-  27967, 27983, 27997, 28001, 28019, 28027, 28031, 28051, 28057,
-  28069, 28081, 28087, 28097, 28099, 28109, 28111, 28123, 28151,
-  28163, 28181, 28183, 28201, 28211, 28219, 28229, 28277, 28279,
-  28283, 28289, 28297, 28307, 28309, 28319, 28349, 28351, 28387,
-  28393, 28403, 28409, 28411, 28429, 28433, 28439, 28447, 28463,
-  28477, 28493, 28499, 28513, 28517, 28537, 28541, 28547, 28549,
-  28559, 28571, 28573, 28579, 28591, 28597, 28603, 28607, 28619,
-  28621, 28627, 28631, 28643, 28649, 28657, 28661, 28663, 28669,
-  28687, 28697, 28703, 28711, 28723, 28729, 28751, 28753, 28759,
-  28771, 28789, 28793, 28807, 28813, 28817, 28837, 28843, 28859,
-  28867, 28871, 28879, 28901, 28909, 28921, 28927, 28933, 28949,
-  28961, 28979, 29009, 29017, 29021, 29023, 29027, 29033, 29059,
-  29063, 29077, 29101, 29123, 29129, 29131, 29137, 29147, 29153,
-  29167, 29173, 29179, 29191, 29201, 29207, 29209, 29221, 29231,
-  29243, 29251, 29269, 29287, 29297, 29303, 29311, 29327, 29333,
-  29339, 29347, 29363, 29383, 29387, 29389, 29399, 29401, 29411,
-  29423, 29429, 29437, 29443, 29453, 29473, 29483, 29501, 29527,
-  29531, 29537, 29567, 29569, 29573, 29581, 29587, 29599, 29611,
-  29629, 29633, 29641, 29663, 29669, 29671, 29683, 29717, 29723,
-  29741, 29753, 29759, 29761, 29789, 29803, 29819, 29833, 29837,
-  29851, 29863, 29867, 29873, 29879, 29881, 29917, 29921, 29927,
-  29947, 29959, 29983, 29989, 30011, 30013, 30029, 30047, 30059,
-  30071, 30089, 30091, 30097, 30103, 30109, 30113, 30119, 30133,
-  30137, 30139, 30161, 30169, 30181, 30187, 30197, 30203, 30211,
-  30223, 30241, 30253, 30259, 30269, 30271, 30293, 30307, 30313,
-  30319, 30323, 30341, 30347, 30367, 30389, 30391, 30403, 30427,
-  30431, 30449, 30467, 30469, 30491, 30493, 30497, 30509, 30517,
-  30529, 30539, 30553, 30557, 30559, 30577, 30593, 30631, 30637,
-  30643, 30649, 30661, 30671, 30677, 30689, 30697, 30703, 30707,
-  30713, 30727, 30757, 30763, 30773, 30781, 30803, 30809, 30817,
-  30829, 30839, 30841, 30851, 30853, 30859, 30869, 30871, 30881,
-  30893, 30911, 30931, 30937, 30941, 30949, 30971, 30977, 30983,
-  31013, 31019, 31033, 31039, 31051, 31063, 31069, 31079, 31081,
-  31091, 31121, 31123, 31139, 31147, 31151, 31153, 31159, 31177,
-  31181, 31183, 31189, 31193, 31219, 31223, 31231, 31237, 31247,
-  31249, 31253, 31259, 31267, 31271, 31277, 31307, 31319, 31321,
-  31327, 31333, 31337, 31357, 31379, 31387, 31391, 31393, 31397,
-  31469, 31477, 31481, 31489, 31511, 31513, 31517, 31531, 31541,
-  31543, 31547, 31567, 31573, 31583, 31601, 31607, 31627, 31643,
-  31649, 31657, 31663, 31667, 31687, 31699, 31721, 31723, 31727,
-  31729, 31741, 31751, 31769, 31771, 31793, 31799, 31817, 31847,
-  31849, 31859, 31873, 31883, 31891, 31907, 31957, 31963, 31973,
-  31981, 31991, 32003, 32009, 32027, 32029, 32051, 32057, 32059,
-  32063, 32069, 32077, 32083, 32089, 32099, 32117, 32119, 32141,
-  32143, 32159, 32173, 32183, 32189, 32191, 32203, 32213, 32233,
-  32237, 32251, 32257, 32261, 32297, 32299, 32303, 32309, 32321,
-  32323, 32327, 32341, 32353, 32359, 32363, 32369, 32371, 32377,
-  32381, 32401, 32411, 32413, 32423, 32429, 32441, 32443, 32467,
-  32479, 32491, 32497, 32503, 32507, 32531, 32533, 32537, 32561,
-  32563, 32569, 32573, 32579, 32587, 32603, 32609, 32611, 32621,
-  32633, 32647, 32653, 32687, 32693, 32707, 32713, 32717, 32719,
-  32749, 32771, 32779, 32783, 32789, 32797, 32801, 32803, 32831,
-  32833, 32839, 32843, 32869, 32887, 32909, 32911, 32917, 32933,
-  32939, 32941, 32957, 32969, 32971, 32983, 32987, 32993, 32999,
-  33013, 33023, 33029, 33037, 33049, 33053, 33071, 33073, 33083,
-  33091, 33107, 33113, 33119, 33149, 33151, 33161, 33179, 33181,
-  33191, 33199, 33203, 33211, 33223, 33247, 33287, 33289, 33301,
-  33311, 33317, 33329, 33331, 33343, 33347, 33349, 33353, 33359,
-  33377, 33391, 33403, 33409, 33413, 33427, 33457, 33461, 33469,
-  33479, 33487, 33493, 33503, 33521, 33529, 33533, 33547, 33563,
-  33569, 33577, 33581, 33587, 33589, 33599, 33601, 33613, 33617,
-  33619, 33623, 33629, 33637, 33641, 33647, 33679, 33703, 33713,
-  33721, 33739, 33749, 33751, 33757, 33767, 33769, 33773, 33791,
-  33797, 33809, 33811, 33827, 33829, 33851, 33857, 33863, 33871,
-  33889, 33893, 33911, 33923, 33931, 33937, 33941, 33961, 33967,
-  33997, 34019, 34031, 34033, 34039, 34057, 34061, 34123, 34127,
-  34129, 34141, 34147, 34157, 34159, 34171, 34183, 34211, 34213,
-  34217, 34231, 34253, 34259, 34261, 34267, 34273, 34283, 34297,
-  34301, 34303, 34313, 34319, 34327, 34337, 34351, 34361, 34367,
-  34369, 34381, 34403, 34421, 34429, 34439, 34457, 34469, 34471,
-  34483, 34487, 34499, 34501, 34511, 34513, 34519, 34537, 34543,
-  34549, 34583, 34589, 34591, 34603, 34607, 34613, 34631, 34649,
-  34651, 34667, 34673, 34679, 34687, 34693, 34703, 34721, 34729,
-  34739, 34747, 34757, 34759, 34763, 34781, 34807, 34819, 34841,
-  34843, 34847, 34849, 34871, 34877, 34883, 34897, 34913, 34919,
-  34939, 34949, 34961, 34963, 34981, 35023, 35027, 35051, 35053,
-  35059, 35069, 35081, 35083, 35089, 35099, 35107, 35111, 35117,
-  35129, 35141, 35149, 35153, 35159, 35171, 35201, 35221, 35227,
-  35251, 35257, 35267, 35279, 35281, 35291, 35311, 35317, 35323,
-  35327, 35339, 35353, 35363, 35381, 35393, 35401, 35407, 35419,
-  35423, 35437, 35447, 35449, 35461, 35491, 35507, 35509, 35521,
-  35527, 35531, 35533, 35537, 35543, 35569, 35573, 35591, 35593,
-  35597, 35603, 35617, 35671, 35677, 35729, 35731, 35747, 35753,
-  35759, 35771, 35797, 35801, 35803, 35809, 35831, 35837, 35839,
-  35851, 35863, 35869, 35879, 35897, 35899, 35911, 35923, 35933,
-  35951, 35963, 35969, 35977, 35983, 35993, 35999, 36007, 36011,
-  36013, 36017, 36037, 36061, 36067, 36073, 36083, 36097, 36107,
-  36109, 36131, 36137, 36151, 36161, 36187, 36191, 36209, 36217,
-  36229, 36241, 36251, 36263, 36269, 36277, 36293, 36299, 36307,
-  36313, 36319, 36341, 36343, 36353, 36373, 36383, 36389, 36433,
-  36451, 36457, 36467, 36469, 36473, 36479, 36493, 36497, 36523,
-  36527, 36529, 36541, 36551, 36559, 36563, 36571, 36583, 36587,
-  36599, 36607, 36629, 36637, 36643, 36653, 36671, 36677, 36683,
-  36691, 36697, 36709, 36713, 36721, 36739, 36749, 36761, 36767,
-  36779, 36781, 36787, 36791, 36793, 36809, 36821, 36833, 36847,
-  36857, 36871, 36877, 36887, 36899, 36901, 36913, 36919, 36923,
-  36929, 36931, 36943, 36947, 36973, 36979, 36997, 37003, 37013,
-  37019, 37021, 37039, 37049, 37057, 37061, 37087, 37097, 37117,
-  37123, 37139, 37159, 37171, 37181, 37189, 37199, 37201, 37217,
-  37223, 37243, 37253, 37273, 37277, 37307, 37309, 37313, 37321,
-  37337, 37339, 37357, 37361, 37363, 37369, 37379, 37397, 37409,
-  37423, 37441, 37447, 37463, 37483, 37489, 37493, 37501, 37507,
-  37511, 37517, 37529, 37537, 37547, 37549, 37561, 37567, 37571,
-  37573, 37579, 37589, 37591, 37607, 37619, 37633, 37643, 37649,
-  37657, 37663, 37691, 37693, 37699, 37717, 37747, 37781, 37783,
-  37799, 37811, 37813, 37831, 37847, 37853, 37861, 37871, 37879,
-  37889, 37897, 37907, 37951, 37957, 37963, 37967, 37987, 37991,
-  37993, 37997, 38011, 38039, 38047, 38053, 38069, 38083, 38113,
-  38119, 38149, 38153, 38167, 38177, 38183, 38189, 38197, 38201,
-  38219, 38231, 38237, 38239, 38261, 38273, 38281, 38287, 38299,
-  38303, 38317, 38321, 38327, 38329, 38333, 38351, 38371, 38377,
-  38393, 38431, 38447, 38449, 38453, 38459, 38461, 38501, 38543,
-  38557, 38561, 38567, 38569, 38593, 38603, 38609, 38611, 38629,
-  38639, 38651, 38653, 38669, 38671, 38677, 38693, 38699, 38707,
-  38711, 38713, 38723, 38729, 38737, 38747, 38749, 38767, 38783,
-  38791, 38803, 38821, 38833, 38839, 38851, 38861, 38867, 38873,
-  38891, 38903, 38917, 38921, 38923, 38933, 38953, 38959, 38971,
-  38977, 38993, 39019, 39023, 39041, 39043, 39047, 39079, 39089,
-  39097, 39103, 39107, 39113, 39119, 39133, 39139, 39157, 39161,
-  39163, 39181, 39191, 39199, 39209, 39217, 39227, 39229, 39233,
-  39239, 39241, 39251, 39293, 39301, 39313, 39317, 39323, 39341,
-  39343, 39359, 39367, 39371, 39373, 39383, 39397, 39409, 39419,
-  39439, 39443, 39451, 39461, 39499, 39503, 39509, 39511, 39521,
-  39541, 39551, 39563, 39569, 39581, 39607, 39619, 39623, 39631,
-  39659, 39667, 39671, 39679, 39703, 39709, 39719, 39727, 39733,
-  39749, 39761, 39769, 39779, 39791, 39799, 39821, 39827, 39829,
-  39839, 39841, 39847, 39857, 39863, 39869, 39877, 39883, 39887,
-  39901, 39929, 39937, 39953, 39971, 39979, 39983, 39989, 40009,
-  40013, 40031, 40037, 40039, 40063, 40087, 40093, 40099, 40111,
-  40123, 40127, 40129, 40151, 40153, 40163, 40169, 40177, 40189,
-  40193, 40213, 40231, 40237, 40241, 40253, 40277, 40283, 40289,
-  40343, 40351, 40357, 40361, 40387, 40423, 40427, 40429, 40433,
-  40459, 40471, 40483, 40487, 40493, 40499, 40507, 40519, 40529,
-  40531, 40543, 40559, 40577, 40583, 40591, 40597, 40609, 40627,
-  40637, 40639, 40693, 40697, 40699, 40709, 40739, 40751, 40759,
-  40763, 40771, 40787, 40801, 40813, 40819, 40823, 40829, 40841,
-  40847, 40849, 40853, 40867, 40879, 40883, 40897, 40903, 40927,
-  40933, 40939, 40949, 40961, 40973, 40993, 41011, 41017, 41023,
-  41039, 41047, 41051, 41057, 41077, 41081, 41113, 41117, 41131,
-  41141, 41143, 41149, 41161, 41177, 41179, 41183, 41189, 41201,
-  41203, 41213, 41221, 41227, 41231, 41233, 41243, 41257, 41263,
-  41269, 41281, 41299, 41333, 41341, 41351, 41357, 41381, 41387,
-  41389, 41399, 41411, 41413, 41443, 41453, 41467, 41479, 41491,
-  41507, 41513, 41519, 41521, 41539, 41543, 41549, 41579, 41593,
-  41597, 41603, 41609, 41611, 41617, 41621, 41627, 41641, 41647,
-  41651, 41659, 41669, 41681, 41687, 41719, 41729, 41737, 41759,
-  41761, 41771, 41777, 41801, 41809, 41813, 41843, 41849, 41851,
-  41863, 41879, 41887, 41893, 41897, 41903, 41911, 41927, 41941,
-  41947, 41953, 41957, 41959, 41969, 41981, 41983, 41999, 42013,
-  42017, 42019, 42023, 42043, 42061, 42071, 42073, 42083, 42089,
-  42101, 42131, 42139, 42157, 42169, 42179, 42181, 42187, 42193,
-  42197, 42209, 42221, 42223, 42227, 42239, 42257, 42281, 42283,
-  42293, 42299, 42307, 42323, 42331, 42337, 42349, 42359, 42373,
-  42379, 42391, 42397, 42403, 42407, 42409, 42433, 42437, 42443,
-  42451, 42457, 42461, 42463, 42467, 42473, 42487, 42491, 42499,
-  42509, 42533, 42557, 42569, 42571, 42577, 42589, 42611, 42641,
-  42643, 42649, 42667, 42677, 42683, 42689, 42697, 42701, 42703,
-  42709, 42719, 42727, 42737, 42743, 42751, 42767, 42773, 42787,
-  42793, 42797, 42821, 42829, 42839, 42841, 42853, 42859, 42863,
-  42899, 42901, 42923, 42929, 42937, 42943, 42953, 42961, 42967,
-  42979, 42989, 43003, 43013, 43019, 43037, 43049, 43051, 43063,
-  43067, 43093, 43103, 43117, 43133, 43151, 43159, 43177, 43189,
-  43201, 43207, 43223, 43237, 43261, 43271, 43283, 43291, 43313,
-  43319, 43321, 43331, 43391, 43397, 43399, 43403, 43411, 43427,
-  43441, 43451, 43457, 43481, 43487, 43499, 43517, 43541, 43543,
-  43573, 43577, 43579, 43591, 43597, 43607, 43609, 43613, 43627,
-  43633, 43649, 43651, 43661, 43669, 43691, 43711, 43717, 43721,
-  43753, 43759, 43777, 43781, 43783, 43787, 43789, 43793, 43801,
-  43853, 43867, 43889, 43891, 43913, 43933, 43943, 43951, 43961,
-  43963, 43969, 43973, 43987, 43991, 43997, 44017, 44021, 44027,
-  44029, 44041, 44053, 44059, 44071, 44087, 44089, 44101, 44111,
-  44119, 44123, 44129, 44131, 44159, 44171, 44179, 44189, 44201,
-  44203, 44207, 44221, 44249, 44257, 44263, 44267, 44269, 44273,
-  44279, 44281, 44293, 44351, 44357, 44371, 44381, 44383, 44389,
-  44417, 44449, 44453, 44483, 44491, 44497, 44501, 44507, 44519,
-  44531, 44533, 44537, 44543, 44549, 44563, 44579, 44587, 44617,
-  44621, 44623, 44633, 44641, 44647, 44651, 44657, 44683, 44687,
-  44699, 44701, 44711, 44729, 44741, 44753, 44771, 44773, 44777,
-  44789, 44797, 44809, 44819, 44839, 44843, 44851, 44867, 44879,
-  44887, 44893, 44909, 44917, 44927, 44939, 44953, 44959, 44963,
-  44971, 44983, 44987, 45007, 45013, 45053, 45061, 45077, 45083,
-  45119, 45121, 45127, 45131, 45137, 45139, 45161, 45179, 45181,
-  45191, 45197, 45233, 45247, 45259, 45263, 45281, 45289, 45293,
-  45307, 45317, 45319, 45329, 45337, 45341, 45343, 45361, 45377,
-  45389, 45403, 45413, 45427, 45433, 45439, 45481, 45491, 45497,
-  45503, 45523, 45533, 45541, 45553, 45557, 45569, 45587, 45589,
-  45599, 45613, 45631, 45641, 45659, 45667, 45673, 45677, 45691,
-  45697, 45707, 45737, 45751, 45757, 45763, 45767, 45779, 45817,
-  45821, 45823, 45827, 45833, 45841, 45853, 45863, 45869, 45887,
-  45893, 45943, 45949, 45953, 45959, 45971, 45979, 45989, 46021,
-  46027, 46049, 46051, 46061, 46073, 46091, 46093, 46099, 46103,
-  46133, 46141, 46147, 46153, 46171, 46181, 46183, 46187, 46199,
-  46219, 46229, 46237, 46261, 46271, 46273, 46279, 46301, 46307,
-  46309, 46327, 46337, 46349, 46351, 46381, 46399, 46411, 46439,
-  46441, 46447, 46451, 46457, 46471, 46477, 46489, 46499, 46507,
-  46511, 46523, 46549, 46559, 46567, 46573, 46589, 46591, 46601,
-  46619, 46633, 46639, 46643, 46649, 46663, 46679, 46681, 46687,
-  46691, 46703, 46723, 46727, 46747, 46751, 46757, 46769, 46771,
-  46807, 46811, 46817, 46819, 46829, 46831, 46853, 46861, 46867,
-  46877, 46889, 46901, 46919, 46933, 46957, 46993, 46997, 47017,
-  47041, 47051, 47057, 47059, 47087, 47093, 47111, 47119, 47123,
-  47129, 47137, 47143, 47147, 47149, 47161, 47189, 47207, 47221,
-  47237, 47251, 47269, 47279, 47287, 47293, 47297, 47303, 47309,
-  47317, 47339, 47351, 47353, 47363, 47381, 47387, 47389, 47407,
-  47417, 47419, 47431, 47441, 47459, 47491, 47497, 47501, 47507,
-  47513, 47521, 47527, 47533, 47543, 47563, 47569, 47581, 47591,
-  47599, 47609, 47623, 47629, 47639, 47653, 47657, 47659, 47681,
-  47699, 47701, 47711, 47713, 47717, 47737, 47741, 47743, 47777,
-  47779, 47791, 47797, 47807, 47809, 47819, 47837, 47843, 47857,
-  47869, 47881, 47903, 47911, 47917, 47933, 47939, 47947, 47951,
-  47963, 47969, 47977, 47981, 48017, 48023, 48029, 48049, 48073,
-  48079, 48091, 48109, 48119, 48121, 48131, 48157, 48163, 48179,
-  48187, 48193, 48197, 48221, 48239, 48247, 48259, 48271, 48281,
-  48299, 48311, 48313, 48337, 48341, 48353, 48371, 48383, 48397,
-  48407, 48409, 48413, 48437, 48449, 48463, 48473, 48479, 48481,
-  48487, 48491, 48497, 48523, 48527, 48533, 48539, 48541, 48563,
-  48571, 48589, 48593, 48611, 48619, 48623, 48647, 48649, 48661,
-  48673, 48677, 48679, 48731, 48733, 48751, 48757, 48761, 48767,
-  48779, 48781, 48787, 48799, 48809, 48817, 48821, 48823, 48847,
-  48857, 48859, 48869, 48871, 48883, 48889, 48907, 48947, 48953,
-  48973, 48989, 48991, 49003, 49009, 49019, 49031, 49033, 49037,
-  49043, 49057, 49069, 49081, 49103, 49109, 49117, 49121, 49123,
-  49139, 49157, 49169, 49171, 49177, 49193, 49199, 49201, 49207,
-  49211, 49223, 49253, 49261, 49277, 49279, 49297, 49307, 49331,
-  49333, 49339, 49363, 49367, 49369, 49391, 49393, 49409, 49411,
-  49417, 49429, 49433, 49451, 49459, 49463, 49477, 49481, 49499,
-  49523, 49529, 49531, 49537, 49547, 49549, 49559, 49597, 49603,
-  49613, 49627, 49633, 49639, 49663, 49667, 49669, 49681, 49697,
-  49711, 49727, 49739, 49741, 49747, 49757, 49783, 49787, 49789,
-  49801, 49807, 49811, 49823, 49831, 49843, 49853, 49871, 49877,
-  49891, 49919, 49921, 49927, 49937, 49939, 49943, 49957, 49991,
-  49993, 49999, 50021, 50023, 50033, 50047, 50051, 50053, 50069,
-  50077, 50087, 50093, 50101, 50111, 50119, 50123, 50129, 50131,
-  50147, 50153, 50159, 50177, 50207, 50221, 50227, 50231, 50261,
-  50263, 50273, 50287, 50291, 50311, 50321, 50329, 50333, 50341,
-  50359, 50363, 50377, 50383, 50387, 50411, 50417, 50423, 50441,
-  50459, 50461, 50497, 50503, 50513, 50527, 50539, 50543, 50549,
-  50551, 50581, 50587, 50591, 50593, 50599, 50627, 50647, 50651,
-  50671, 50683, 50707, 50723, 50741, 50753, 50767, 50773, 50777,
-  50789, 50821, 50833, 50839, 50849, 50857, 50867, 50873, 50891,
-  50893, 50909, 50923, 50929, 50951, 50957, 50969, 50971, 50989,
-  50993, 51001, 51031, 51043, 51047, 51059, 51061, 51071, 51109,
-  51131, 51133, 51137, 51151, 51157, 51169, 51193, 51197, 51199,
-  51203, 51217, 51229, 51239, 51241, 51257, 51263, 51283, 51287,
-  51307, 51329, 51341, 51343, 51347, 51349, 51361, 51383, 51407,
-  51413, 51419, 51421, 51427, 51431, 51437, 51439, 51449, 51461,
-  51473, 51479, 51481, 51487, 51503, 51511, 51517, 51521, 51539,
-  51551, 51563, 51577, 51581, 51593, 51599, 51607, 51613, 51631,
-  51637, 51647, 51659, 51673, 51679, 51683, 51691, 51713, 51719,
-  51721, 51749, 51767, 51769, 51787, 51797, 51803, 51817, 51827,
-  51829, 51839, 51853, 51859, 51869, 51871, 51893, 51899, 51907,
-  51913, 51929, 51941, 51949, 51971, 51973, 51977, 51991, 52009,
-  52021, 52027, 52051, 52057, 52067, 52069, 52081, 52103, 52121,
-  52127, 52147, 52153, 52163, 52177, 52181, 52183, 52189, 52201,
-  52223, 52237, 52249, 52253, 52259, 52267, 52289, 52291, 52301,
-  52313, 52321, 52361, 52363, 52369, 52379, 52387, 52391, 52433,
-  52453, 52457, 52489, 52501, 52511, 52517, 52529, 52541, 52543,
-  52553, 52561, 52567, 52571, 52579, 52583, 52609, 52627, 52631,
-  52639, 52667, 52673, 52691, 52697, 52709, 52711, 52721, 52727,
-  52733, 52747, 52757, 52769, 52783, 52807, 52813, 52817, 52837,
-  52859, 52861, 52879, 52883, 52889, 52901, 52903, 52919, 52937,
-  52951, 52957, 52963, 52967, 52973, 52981, 52999, 53003, 53017,
-  53047, 53051, 53069, 53077, 53087, 53089, 53093, 53101, 53113,
-  53117, 53129, 53147, 53149, 53161, 53171, 53173, 53189, 53197,
-  53201, 53231, 53233, 53239, 53267, 53269, 53279, 53281, 53299,
-  53309, 53323, 53327, 53353, 53359, 53377, 53381, 53401, 53407,
-  53411, 53419, 53437, 53441, 53453, 53479, 53503, 53507, 53527,
-  53549, 53551, 53569, 53591, 53593, 53597, 53609, 53611, 53617,
-  53623, 53629, 53633, 53639, 53653, 53657, 53681, 53693, 53699,
-  53717, 53719, 53731, 53759, 53773, 53777, 53783, 53791, 53813,
-  53819, 53831, 53849, 53857, 53861, 53881, 53887, 53891, 53897,
-  53899, 53917, 53923, 53927, 53939, 53951, 53959, 53987, 53993,
-  54001, 54011, 54013, 54037, 54049, 54059, 54083, 54091, 54101,
-  54121, 54133, 54139, 54151, 54163, 54167, 54181, 54193, 54217,
-  54251, 54269, 54277, 54287, 54293, 54311, 54319, 54323, 54331,
-  54347, 54361, 54367, 54371, 54377, 54401, 54403, 54409, 54413,
-  54419, 54421, 54437, 54443, 54449, 54469, 54493, 54497, 54499,
-  54503, 54517, 54521, 54539, 54541, 54547, 54559, 54563, 54577,
-  54581, 54583, 54601, 54617, 54623, 54629, 54631, 54647, 54667,
-  54673, 54679, 54709, 54713, 54721, 54727, 54751, 54767, 54773,
-  54779, 54787, 54799, 54829, 54833, 54851, 54869, 54877, 54881,
-  54907, 54917, 54919, 54941, 54949, 54959, 54973, 54979, 54983,
-  55001, 55009, 55021, 55049, 55051, 55057, 55061, 55073, 55079,
-  55103, 55109, 55117, 55127, 55147, 55163, 55171, 55201, 55207,
-  55213, 55217, 55219, 55229, 55243, 55249, 55259, 55291, 55313,
-  55331, 55333, 55337, 55339, 55343, 55351, 55373, 55381, 55399,
-  55411, 55439, 55441, 55457, 55469, 55487, 55501, 55511, 55529,
-  55541, 55547, 55579, 55589, 55603, 55609, 55619, 55621, 55631,
-  55633, 55639, 55661, 55663, 55667, 55673, 55681, 55691, 55697,
-  55711, 55717, 55721, 55733, 55763, 55787, 55793, 55799, 55807,
-  55813, 55817, 55819, 55823, 55829, 55837, 55843, 55849, 55871,
-  55889, 55897, 55901, 55903, 55921, 55927, 55931, 55933, 55949,
-  55967, 55987, 55997, 56003, 56009, 56039, 56041, 56053, 56081,
-  56087, 56093, 56099, 56101, 56113, 56123, 56131, 56149, 56167,
-  56171, 56179, 56197, 56207, 56209, 56237, 56239, 56249, 56263,
-  56267, 56269, 56299, 56311, 56333, 56359, 56369, 56377, 56383,
-  56393, 56401, 56417, 56431, 56437, 56443, 56453, 56467, 56473,
-  56477, 56479, 56489, 56501, 56503, 56509, 56519, 56527, 56531,
-  56533, 56543, 56569, 56591, 56597, 56599, 56611, 56629, 56633,
-  56659, 56663, 56671, 56681, 56687, 56701, 56711, 56713, 56731,
-  56737, 56747, 56767, 56773, 56779, 56783, 56807, 56809, 56813,
-  56821, 56827, 56843, 56857, 56873, 56891, 56893, 56897, 56909,
-  56911, 56921, 56923, 56929, 56941, 56951, 56957, 56963, 56983,
-  56989, 56993, 56999, 57037, 57041, 57047, 57059, 57073, 57077,
-  57089, 57097, 57107, 57119, 57131, 57139, 57143, 57149, 57163,
-  57173, 57179, 57191, 57193, 57203, 57221, 57223, 57241, 57251,
-  57259, 57269, 57271, 57283, 57287, 57301, 57329, 57331, 57347,
-  57349, 57367, 57373, 57383, 57389, 57397, 57413, 57427, 57457,
-  57467, 57487, 57493, 57503, 57527, 57529, 57557, 57559, 57571,
-  57587, 57593, 57601, 57637, 57641, 57649, 57653, 57667, 57679,
-  57689, 57697, 57709, 57713, 57719, 57727, 57731, 57737, 57751,
-  57773, 57781, 57787, 57791, 57793, 57803, 57809, 57829, 57839,
-  57847, 57853, 57859, 57881, 57899, 57901, 57917, 57923, 57943,
-  57947, 57973, 57977, 57991, 58013, 58027, 58031, 58043, 58049,
-  58057, 58061, 58067, 58073, 58099, 58109, 58111, 58129, 58147,
-  58151, 58153, 58169, 58171, 58189, 58193, 58199, 58207, 58211,
-  58217, 58229, 58231, 58237, 58243, 58271, 58309, 58313, 58321,
-  58337, 58363, 58367, 58369, 58379, 58391, 58393, 58403, 58411,
-  58417, 58427, 58439, 58441, 58451, 58453, 58477, 58481, 58511,
-  58537, 58543, 58549, 58567, 58573, 58579, 58601, 58603, 58613,
-  58631, 58657, 58661, 58679, 58687, 58693, 58699, 58711, 58727,
-  58733, 58741, 58757, 58763, 58771, 58787, 58789, 58831, 58889,
-  58897, 58901, 58907, 58909, 58913, 58921, 58937, 58943, 58963,
-  58967, 58979, 58991, 58997, 59009, 59011, 59021, 59023, 59029,
-  59051, 59053, 59063, 59069, 59077, 59083, 59093, 59107, 59113,
-  59119, 59123, 59141, 59149, 59159, 59167, 59183, 59197, 59207,
-  59209, 59219, 59221, 59233, 59239, 59243, 59263, 59273, 59281,
-  59333, 59341, 59351, 59357, 59359, 59369, 59377, 59387, 59393,
-  59399, 59407, 59417, 59419, 59441, 59443, 59447, 59453, 59467,
-  59471, 59473, 59497, 59509, 59513, 59539, 59557, 59561, 59567,
-  59581, 59611, 59617, 59621, 59627, 59629, 59651, 59659, 59663,
-  59669, 59671, 59693, 59699, 59707, 59723, 59729, 59743, 59747,
-  59753, 59771, 59779, 59791, 59797, 59809, 59833, 59863, 59879,
-  59887, 59921, 59929, 59951, 59957, 59971, 59981, 59999, 60013,
-  60017, 60029, 60037, 60041, 60077, 60083, 60089, 60091, 60101,
-  60103, 60107, 60127, 60133, 60139, 60149, 60161, 60167, 60169,
-  60209, 60217, 60223, 60251, 60257, 60259, 60271, 60289, 60293,
-  60317, 60331, 60337, 60343, 60353, 60373, 60383, 60397, 60413,
-  60427, 60443, 60449, 60457, 60493, 60497, 60509, 60521, 60527,
-  60539, 60589, 60601, 60607, 60611, 60617, 60623, 60631, 60637,
-  60647, 60649, 60659, 60661, 60679, 60689, 60703, 60719, 60727,
-  60733, 60737, 60757, 60761, 60763, 60773, 60779, 60793, 60811,
-  60821, 60859, 60869, 60887, 60889, 60899, 60901, 60913, 60917,
-  60919, 60923, 60937, 60943, 60953, 60961, 61001, 61007, 61027,
-  61031, 61043, 61051, 61057, 61091, 61099, 61121, 61129, 61141,
-  61151, 61153, 61169, 61211, 61223, 61231, 61253, 61261, 61283,
-  61291, 61297, 61331, 61333, 61339, 61343, 61357, 61363, 61379,
-  61381, 61403, 61409, 61417, 61441, 61463, 61469, 61471, 61483,
-  61487, 61493, 61507, 61511, 61519, 61543, 61547, 61553, 61559,
-  61561, 61583, 61603, 61609, 61613, 61627, 61631, 61637, 61643,
-  61651, 61657, 61667, 61673, 61681, 61687, 61703, 61717, 61723,
-  61729, 61751, 61757, 61781, 61813, 61819, 61837, 61843, 61861,
-  61871, 61879, 61909, 61927, 61933, 61949, 61961, 61967, 61979,
-  61981, 61987, 61991, 62003, 62011, 62017, 62039, 62047, 62053,
-  62057, 62071, 62081, 62099, 62119, 62129, 62131, 62137, 62141,
-  62143, 62171, 62189, 62191, 62201, 62207, 62213, 62219, 62233,
-  62273, 62297, 62299, 62303, 62311, 62323, 62327, 62347, 62351,
-  62383, 62401, 62417, 62423, 62459, 62467, 62473, 62477, 62483,
-  62497, 62501, 62507, 62533, 62539, 62549, 62563, 62581, 62591,
-  62597, 62603, 62617, 62627, 62633, 62639, 62653, 62659, 62683,
-  62687, 62701, 62723, 62731, 62743, 62753, 62761, 62773, 62791,
-  62801, 62819, 62827, 62851, 62861, 62869, 62873, 62897, 62903,
-  62921, 62927, 62929, 62939, 62969, 62971, 62981, 62983, 62987,
-  62989, 63029, 63031, 63059, 63067, 63073, 63079, 63097, 63103,
-  63113, 63127, 63131, 63149, 63179, 63197, 63199, 63211, 63241,
-  63247, 63277, 63281, 63299, 63311, 63313, 63317, 63331, 63337,
-  63347, 63353, 63361, 63367, 63377, 63389, 63391, 63397, 63409,
-  63419, 63421, 63439, 63443, 63463, 63467, 63473, 63487, 63493,
-  63499, 63521, 63527, 63533, 63541, 63559, 63577, 63587, 63589,
-  63599, 63601, 63607, 63611, 63617, 63629, 63647, 63649, 63659,
-  63667, 63671, 63689, 63691, 63697, 63703, 63709, 63719, 63727,
-  63737, 63743, 63761, 63773, 63781, 63793, 63799, 63803, 63809,
-  63823, 63839, 63841, 63853, 63857, 63863, 63901, 63907, 63913,
-  63929, 63949, 63977, 63997, 64007, 64013, 64019, 64033, 64037,
-  64063, 64067, 64081, 64091, 64109, 64123, 64151, 64153, 64157,
-  64171, 64187, 64189, 64217, 64223, 64231, 64237, 64271, 64279,
-  64283, 64301, 64303, 64319, 64327, 64333, 64373, 64381, 64399,
-  64403, 64433, 64439, 64451, 64453, 64483, 64489, 64499, 64513,
-  64553, 64567, 64577, 64579, 64591, 64601, 64609, 64613, 64621,
-  64627, 64633, 64661, 64663, 64667, 64679, 64693, 64709, 64717,
-  64747, 64763, 64781, 64783, 64793, 64811, 64817, 64849, 64853,
-  64871, 64877, 64879, 64891, 64901, 64919, 64921, 64927, 64937,
-  64951, 64969, 64997, 65003, 65011, 65027, 65029, 65033, 65053,
-  65063, 65071, 65089, 65099, 65101, 65111, 65119, 65123, 65129,
-  65141, 65147, 65167, 65171, 65173, 65179, 65183, 65203, 65213,
-  65239, 65257, 65267, 65269, 65287, 65293, 65309, 65323, 65327,
-  65353, 65357, 65371, 65381, 65393, 65407, 65413, 65419, 65423,
-  65437, 65447, 65449, 65479, 65497, 65519, 65521, 65537, 65539
-}; 
-
-unsigned long
-_hash_prime(unsigned long start)
-{
-  int i;
-
-  /* Range-check the starting number */
-  if (start < 4)
-    return start;
-  else if (start > MAX_PRIME) /* largest 32-bit prime */
-    return MAX_PRIME;
-
-  /* OK, force the number to the next highest odd (the |= 1), then
-   * check sequential odd numbers (the += 2)...
-   */
-  for (start |= 1; ; start += 2)
-    for (i = 0; ; i++) /* Walk through the table of 16-bit primes */
-      if (!(start % primes[i])) /* it divided evenly, so skip to the next */
-       break;
-      else if ((start / primes[i]) < primes[i])
-       return start; /* we've checked everything now, so it's prime */
-
-  /* NOT REACHED */
-  return 0;
-}
diff --git a/libs/dbprim/_smat_comp.c b/libs/dbprim/_smat_comp.c
deleted file mode 100644 (file)
index 777a698..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
-** Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-**
-** This library is free software; you can redistribute it and/or
-** modify it under the terms of the GNU Library General Public
-** License as published by the Free Software Foundation; either
-** version 2 of the License, or (at your option) any later version.
-**
-** This library 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
-** Library General Public License for more details.
-**
-** You should have received a copy of the GNU Library General Public
-** License along with this library; if not, write to the Free
-** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-** MA 02111-1307, USA
-**
-** @(#)$Id$
-*/
-#include "dbprim.h"
-#include "dbprim_int.h"
-
-RCSTAG("@(#)$Id$");
-
-unsigned long
-_smat_comp(hash_table_t *table, db_key_t *key1, db_key_t *key2)
-{
-  int i;
-  void **objects1, **objects2;
-
-  if (!key1 || !key2 || !dk_key(key1) || !dk_key(key2)) /* if invalid... */
-    return 1; /* return "no match" */
-
-  objects1 = dk_key(key1); /* massage these into a useful form */
-  objects2 = dk_key(key2);
-
-  /* walk through the elements in the array and compare them */
-  for (i = SMAT_LOC_FIRST; i < SMAT_LOC_SECOND; i++)
-    if (objects1[i] != objects2[i])
-      return 1; /* they don't match */
-
-  return 0; /* we've got a match */
-}
diff --git a/libs/dbprim/_smat_hash.c b/libs/dbprim/_smat_hash.c
deleted file mode 100644 (file)
index 357016d..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
-** Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-**
-** This library is free software; you can redistribute it and/or
-** modify it under the terms of the GNU Library General Public
-** License as published by the Free Software Foundation; either
-** version 2 of the License, or (at your option) any later version.
-**
-** This library 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
-** Library General Public License for more details.
-**
-** You should have received a copy of the GNU Library General Public
-** License along with this library; if not, write to the Free
-** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-** MA 02111-1307, USA
-**
-** @(#)$Id$
-*/
-#include "dbprim.h"
-#include "dbprim_int.h"
-
-RCSTAG("@(#)$Id$");
-
-unsigned long
-_smat_hash(hash_table_t *table, db_key_t *key)
-{
-  int i, j;
-  unsigned int hash = 0;
-  void **objects;
-  unsigned char *c;
-
-  if (!key || !dk_key(key)) /* if the key's invalid, return 0 */
-    return 0;
-
-  objects = dk_key(key); /* get the key--a pair of pointers */
-
-  /* walk through both elements in the array... */
-  for (i = SMAT_LOC_FIRST; i < SMAT_LOC_SECOND; i++) {
-    c = objects[i]; /* get a char pointer to the pointer value */
-    for (j = 0; j < sizeof(void *); j++) /* step through each character */
-      hash = (hash * 257) + c[j];
-  }
-
-  return hash; /* return the hash value */
-}
diff --git a/libs/dbprim/_smat_resize.c b/libs/dbprim/_smat_resize.c
deleted file mode 100644 (file)
index bd34a6a..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
-** Copyright (C) 2003 by Kevin L. Mitchell <klmitch@mit.edu>
-**
-** This library is free software; you can redistribute it and/or
-** modify it under the terms of the GNU Library General Public
-** License as published by the Free Software Foundation; either
-** version 2 of the License, or (at your option) any later version.
-**
-** This library 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
-** Library General Public License for more details.
-**
-** You should have received a copy of the GNU Library General Public
-** License along with this library; if not, write to the Free
-** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-** MA 02111-1307, USA
-**
-** @(#)$Id$
-*/
-#include "dbprim.h"
-#include "dbprim_int.h"
-
-RCSTAG("@(#)$Id$");
-
-unsigned long
-_smat_resize(hash_table_t *table, unsigned long new_mod)
-{
-  smat_table_t *stab;
-
-  stab = ht_extra(table);
-
-  /* If a resize callback was registered, call it */
-  if (stab->st_resize)
-    return (*stab->st_resize)(stab, new_mod);
-
-  return 0; /* allow the resize */
-}
diff --git a/libs/dbprim/acinclude.m4 b/libs/dbprim/acinclude.m4
deleted file mode 100644 (file)
index 8c0a1da..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-## DO NOT EDIT BELOW THIS LINE -- generated by acinclude
-
-dnl @(#)$Id: acinclude.m4,v 1.1 2003-03-07 02:36:10 klmitch Exp $
-dnl
-dnl KLM_COM_ERR_OBJ
-dnl
-dnl Defines the given OBJ if com_err is enabled.
-
-AC_DEFUN(KLM_COM_ERR_OBJ,
-[AC_REQUIRE([KLM_WITH_COM_ERR])
-if test "x$COM_ERR" = "xtrue"; then
-    $1="$2"
-else
-    $1=
-fi
-AC_SUBST($1)
-])
-
-dnl @(#)$Id: acinclude.m4,v 1.1 2003-03-07 02:36:10 klmitch Exp $
-dnl
-dnl KLM_WITH_COM_ERR
-dnl
-dnl Adds --with-com_err, which tells it where to look for com_err
-
-AC_DEFUN(KLM_WITH_COM_ERR,
-[klm_path_com_err=no
-
-AC_ARG_WITH(com_err,
-[  --with-com_err=dir      Use the com_err installed in dir (/usr/local)],
-[if test "x${withval}" = "xyes"; then
-    klm_path_com_err=
-else
-    klm_path_com_err="${withval}"
-fi
-])
-
-if test "x${klm_path_com_err}" != "xno"; then
-    AC_CACHE_CHECK([com_err install location], klm_cv_path_com_err,
-    [if test "x${klm_path_com_err}" = x; then
-       klm_cv_path_com_err=/usr/local
-    else
-       klm_cv_path_com_err="${klm_path_com_err}"
-    fi
-    ])
-
-    COM_ERR=true
-else
-    klm_cv_path_com_err=
-    COM_ERR=false
-fi
-AC_SUBST(COM_ERR)
-])
-
diff --git a/libs/dbprim/aclocal.m4 b/libs/dbprim/aclocal.m4
deleted file mode 100644 (file)
index e0038a6..0000000
+++ /dev/null
@@ -1,3481 +0,0 @@
-dnl aclocal.m4 generated automatically by aclocal 1.4-p5
-
-dnl Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl This program is distributed in the hope that it will be useful,
-dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-dnl PARTICULAR PURPOSE.
-
-
-dnl @(#)$Id: aclocal.m4,v 1.1 2003-03-07 02:36:10 klmitch Exp $
-dnl
-dnl KLM_COM_ERR_OBJ
-dnl
-dnl Defines the given OBJ if com_err is enabled.
-
-AC_DEFUN(KLM_COM_ERR_OBJ,
-[AC_REQUIRE([KLM_WITH_COM_ERR])
-if test "x$COM_ERR" = "xtrue"; then
-    $1="$2"
-else
-    $1=
-fi
-AC_SUBST($1)
-])
-
-dnl @(#)$Id: aclocal.m4,v 1.1 2003-03-07 02:36:10 klmitch Exp $
-dnl
-dnl KLM_WITH_COM_ERR
-dnl
-dnl Adds --with-com_err, which tells it where to look for com_err
-
-AC_DEFUN(KLM_WITH_COM_ERR,
-[klm_path_com_err=no
-
-AC_ARG_WITH(com_err,
-[  --with-com_err=dir      Use the com_err installed in dir (/usr/local)],
-[if test "x${withval}" = "xyes"; then
-    klm_path_com_err=
-else
-    klm_path_com_err="${withval}"
-fi
-])
-
-if test "x${klm_path_com_err}" != "xno"; then
-    AC_CACHE_CHECK([com_err install location], klm_cv_path_com_err,
-    [if test "x${klm_path_com_err}" = x; then
-       klm_cv_path_com_err=/usr/local
-    else
-       klm_cv_path_com_err="${klm_path_com_err}"
-    fi
-    ])
-
-    COM_ERR=true
-else
-    klm_cv_path_com_err=
-    COM_ERR=false
-fi
-AC_SUBST(COM_ERR)
-])
-
-
-# Do all the work for Automake.  This macro actually does too much --
-# some checks are only needed if your package does certain things.
-# But this isn't really a big deal.
-
-# serial 1
-
-dnl Usage:
-dnl AM_INIT_AUTOMAKE(package,version, [no-define])
-
-AC_DEFUN([AM_INIT_AUTOMAKE],
-[AC_REQUIRE([AC_PROG_INSTALL])
-PACKAGE=[$1]
-AC_SUBST(PACKAGE)
-VERSION=[$2]
-AC_SUBST(VERSION)
-dnl test to see if srcdir already configured
-if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
-  AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
-fi
-ifelse([$3],,
-AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
-AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package]))
-AC_REQUIRE([AM_SANITY_CHECK])
-AC_REQUIRE([AC_ARG_PROGRAM])
-dnl FIXME This is truly gross.
-missing_dir=`cd $ac_aux_dir && pwd`
-AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
-AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
-AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
-AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
-AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
-AC_REQUIRE([AC_PROG_MAKE_SET])])
-
-#
-# Check to make sure that the build environment is sane.
-#
-
-AC_DEFUN([AM_SANITY_CHECK],
-[AC_MSG_CHECKING([whether build environment is sane])
-# Just in case
-sleep 1
-echo timestamp > conftestfile
-# Do `set' in a subshell so we don't clobber the current shell's
-# arguments.  Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
-   set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
-   if test "[$]*" = "X"; then
-      # -L didn't work.
-      set X `ls -t $srcdir/configure conftestfile`
-   fi
-   if test "[$]*" != "X $srcdir/configure conftestfile" \
-      && test "[$]*" != "X conftestfile $srcdir/configure"; then
-
-      # If neither matched, then we have a broken ls.  This can happen
-      # if, for instance, CONFIG_SHELL is bash and it inherits a
-      # broken ls alias from the environment.  This has actually
-      # happened.  Such a system could not be considered "sane".
-      AC_MSG_ERROR([ls -t appears to fail.  Make sure there is not a broken
-alias in your environment])
-   fi
-
-   test "[$]2" = conftestfile
-   )
-then
-   # Ok.
-   :
-else
-   AC_MSG_ERROR([newly created file is older than distributed files!
-Check your system clock])
-fi
-rm -f conftest*
-AC_MSG_RESULT(yes)])
-
-dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY)
-dnl The program must properly implement --version.
-AC_DEFUN([AM_MISSING_PROG],
-[AC_MSG_CHECKING(for working $2)
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf.  Sigh.
-if ($2 --version) < /dev/null > /dev/null 2>&1; then
-   $1=$2
-   AC_MSG_RESULT(found)
-else
-   $1="$3/missing $2"
-   AC_MSG_RESULT(missing)
-fi
-AC_SUBST($1)])
-
-# libtool.m4 - Configure libtool for the host system. -*-Shell-script-*-
-
-# serial 46 AC_PROG_LIBTOOL
-AC_DEFUN([AC_PROG_LIBTOOL],
-[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl
-
-# This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-AC_SUBST(LIBTOOL)dnl
-
-# Prevent multiple expansion
-define([AC_PROG_LIBTOOL], [])
-])
-
-AC_DEFUN([AC_LIBTOOL_SETUP],
-[AC_PREREQ(2.13)dnl
-AC_REQUIRE([AC_ENABLE_SHARED])dnl
-AC_REQUIRE([AC_ENABLE_STATIC])dnl
-AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl
-AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_PROG_LD])dnl
-AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl
-AC_REQUIRE([AC_PROG_NM])dnl
-AC_REQUIRE([AC_PROG_LN_S])dnl
-AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl
-AC_REQUIRE([AC_OBJEXT])dnl
-AC_REQUIRE([AC_EXEEXT])dnl
-dnl
-
-_LT_AC_PROG_ECHO_BACKSLASH
-# Only perform the check for file, if the check method requires it
-case $deplibs_check_method in
-file_magic*)
-  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
-    AC_PATH_MAGIC
-  fi
-  ;;
-esac
-
-AC_CHECK_TOOL(RANLIB, ranlib, :)
-AC_CHECK_TOOL(STRIP, strip, :)
-
-ifdef([AC_PROVIDE_AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no)
-ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
-enable_win32_dll=yes, enable_win32_dll=no)
-
-AC_ARG_ENABLE(libtool-lock,
-  [  --disable-libtool-lock  avoid locking (might break parallel builds)])
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
-
-# Some flags need to be propagated to the compiler or linker for good
-# libtool support.
-case $host in
-*-*-irix6*)
-  # Find out which ABI we are using.
-  echo '[#]line __oline__ "configure"' > conftest.$ac_ext
-  if AC_TRY_EVAL(ac_compile); then
-    case `/usr/bin/file conftest.$ac_objext` in
-    *32-bit*)
-      LD="${LD-ld} -32"
-      ;;
-    *N32*)
-      LD="${LD-ld} -n32"
-      ;;
-    *64-bit*)
-      LD="${LD-ld} -64"
-      ;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-
-*-*-sco3.2v5*)
-  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
-  SAVE_CFLAGS="$CFLAGS"
-  CFLAGS="$CFLAGS -belf"
-  AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
-    [AC_LANG_SAVE
-     AC_LANG_C
-     AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
-     AC_LANG_RESTORE])
-  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
-    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
-    CFLAGS="$SAVE_CFLAGS"
-  fi
-  ;;
-
-ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
-[*-*-cygwin* | *-*-mingw* | *-*-pw32*)
-  AC_CHECK_TOOL(DLLTOOL, dlltool, false)
-  AC_CHECK_TOOL(AS, as, false)
-  AC_CHECK_TOOL(OBJDUMP, objdump, false)
-
-  # recent cygwin and mingw systems supply a stub DllMain which the user
-  # can override, but on older systems we have to supply one
-  AC_CACHE_CHECK([if libtool should supply DllMain function], lt_cv_need_dllmain,
-    [AC_TRY_LINK([],
-      [extern int __attribute__((__stdcall__)) DllMain(void*, int, void*);
-      DllMain (0, 0, 0);],
-      [lt_cv_need_dllmain=no],[lt_cv_need_dllmain=yes])])
-
-  case $host/$CC in
-  *-*-cygwin*/gcc*-mno-cygwin*|*-*-mingw*)
-    # old mingw systems require "-dll" to link a DLL, while more recent ones
-    # require "-mdll"
-    SAVE_CFLAGS="$CFLAGS"
-    CFLAGS="$CFLAGS -mdll"
-    AC_CACHE_CHECK([how to link DLLs], lt_cv_cc_dll_switch,
-      [AC_TRY_LINK([], [], [lt_cv_cc_dll_switch=-mdll],[lt_cv_cc_dll_switch=-dll])])
-    CFLAGS="$SAVE_CFLAGS" ;;
-  *-*-cygwin* | *-*-pw32*)
-    # cygwin systems need to pass --dll to the linker, and not link
-    # crt.o which will require a WinMain@16 definition.
-    lt_cv_cc_dll_switch="-Wl,--dll -nostartfiles" ;;
-  esac
-  ;;
-  ])
-esac
-
-_LT_AC_LTCONFIG_HACK
-
-])
-
-# _LT_AC_CHECK_DLFCN
-# --------------------
-AC_DEFUN(_LT_AC_CHECK_DLFCN,
-[AC_CHECK_HEADERS(dlfcn.h)
-])# _LT_AC_CHECK_DLFCN
-
-# AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
-# ---------------------------------
-AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE],
-[AC_REQUIRE([AC_CANONICAL_HOST])
-AC_REQUIRE([AC_PROG_NM])
-AC_REQUIRE([AC_OBJEXT])
-# Check for command to grab the raw symbol name followed by C symbol from nm.
-AC_MSG_CHECKING([command to parse $NM output])
-AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], [dnl
-
-# These are sane defaults that work on at least a few old systems.
-# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
-
-# Character class describing NM global symbol codes.
-[symcode='[BCDEGRST]']
-
-# Regexp to match symbols that can be accessed directly from C.
-[sympat='\([_A-Za-z][_A-Za-z0-9]*\)']
-
-# Transform the above into a raw symbol and a C symbol.
-symxfrm='\1 \2\3 \3'
-
-# Transform an extracted symbol line into a proper C declaration
-lt_cv_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'"
-
-# Define system-specific variables.
-case $host_os in
-aix*)
-  [symcode='[BCDT]']
-  ;;
-cygwin* | mingw* | pw32*)
-  [symcode='[ABCDGISTW]']
-  ;;
-hpux*) # Its linker distinguishes data from code symbols
-  lt_cv_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
-  ;;
-irix*)
-  [symcode='[BCDEGRST]']
-  ;;
-solaris* | sysv5*)
-  [symcode='[BDT]']
-  ;;
-sysv4)
-  [symcode='[DFNSTU]']
-  ;;
-esac
-
-# Handle CRLF in mingw tool chain
-opt_cr=
-case $host_os in
-mingw*)
-  opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp
-  ;;
-esac
-
-# If we're using GNU nm, then use its standard symbol codes.
-if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then
-  [symcode='[ABCDGISTW]']
-fi
-
-# Try without a prefix undercore, then with it.
-for ac_symprfx in "" "_"; do
-
-  # Write the raw and C identifiers.
-[lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[       ]\($symcode$symcode*\)[         ][      ]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'"]
-
-  # Check to see that the pipe works correctly.
-  pipe_works=no
-  rm -f conftest*
-  cat > conftest.$ac_ext <<EOF
-#ifdef __cplusplus
-extern "C" {
-#endif
-char nm_test_var;
-void nm_test_func(){}
-#ifdef __cplusplus
-}
-#endif
-int main(){nm_test_var='a';nm_test_func();return(0);}
-EOF
-
-  if AC_TRY_EVAL(ac_compile); then
-    # Now try to grab the symbols.
-    nlist=conftest.nm
-    if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then
-      # Try sorting and uniquifying the output.
-      if sort "$nlist" | uniq > "$nlist"T; then
-       mv -f "$nlist"T "$nlist"
-      else
-       rm -f "$nlist"T
-      fi
-
-      # Make sure that we snagged all the symbols we need.
-      if egrep ' nm_test_var$' "$nlist" >/dev/null; then
-       if egrep ' nm_test_func$' "$nlist" >/dev/null; then
-         cat <<EOF > conftest.$ac_ext
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-EOF
-         # Now generate the symbol file.
-         eval "$lt_cv_global_symbol_to_cdecl"' < "$nlist" >> conftest.$ac_ext'
-
-         cat <<EOF >> conftest.$ac_ext
-#if defined (__STDC__) && __STDC__
-# define lt_ptr_t void *
-#else
-# define lt_ptr_t char *
-# define const
-#endif
-
-/* The mapping between symbol names and symbols. */
-const struct {
-  const char *name;
-  lt_ptr_t address;
-}
-[lt_preloaded_symbols[] =]
-{
-EOF
-         sed "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" >> conftest.$ac_ext
-         cat <<\EOF >> conftest.$ac_ext
-  {0, (lt_ptr_t) 0}
-};
-
-#ifdef __cplusplus
-}
-#endif
-EOF
-         # Now try linking the two files.
-         mv conftest.$ac_objext conftstm.$ac_objext
-         save_LIBS="$LIBS"
-         save_CFLAGS="$CFLAGS"
-         LIBS="conftstm.$ac_objext"
-         CFLAGS="$CFLAGS$no_builtin_flag"
-         if AC_TRY_EVAL(ac_link) && test -s conftest; then
-           pipe_works=yes
-         fi
-         LIBS="$save_LIBS"
-         CFLAGS="$save_CFLAGS"
-       else
-         echo "cannot find nm_test_func in $nlist" >&AC_FD_CC
-       fi
-      else
-       echo "cannot find nm_test_var in $nlist" >&AC_FD_CC
-      fi
-    else
-      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AC_FD_CC
-    fi
-  else
-    echo "$progname: failed program was:" >&AC_FD_CC
-    cat conftest.$ac_ext >&5
-  fi
-  rm -f conftest* conftst*
-
-  # Do not use the global_symbol_pipe unless it works.
-  if test "$pipe_works" = yes; then
-    break
-  else
-    lt_cv_sys_global_symbol_pipe=
-  fi
-done
-])
-global_symbol_pipe="$lt_cv_sys_global_symbol_pipe"
-if test -z "$lt_cv_sys_global_symbol_pipe"; then
-  global_symbol_to_cdecl=
-else
-  global_symbol_to_cdecl="$lt_cv_global_symbol_to_cdecl"
-fi
-if test -z "$global_symbol_pipe$global_symbol_to_cdecl"; then
-  AC_MSG_RESULT(failed)
-else
-  AC_MSG_RESULT(ok)
-fi
-]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
-
-# _LT_AC_LIBTOOL_SYS_PATH_SEPARATOR
-# ---------------------------------
-AC_DEFUN([_LT_AC_LIBTOOL_SYS_PATH_SEPARATOR],
-[# Find the correct PATH separator.  Usually this is `:', but
-# DJGPP uses `;' like DOS.
-if test "X${PATH_SEPARATOR+set}" != Xset; then
-  UNAME=${UNAME-`uname 2>/dev/null`}
-  case X$UNAME in
-    *-DOS) lt_cv_sys_path_separator=';' ;;
-    *)     lt_cv_sys_path_separator=':' ;;
-  esac
-fi
-])# _LT_AC_LIBTOOL_SYS_PATH_SEPARATOR
-
-# _LT_AC_PROG_ECHO_BACKSLASH
-# --------------------------
-# Add some code to the start of the generated configure script which
-# will find an echo command which doesn;t interpret backslashes.
-AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH],
-[ifdef([AC_DIVERSION_NOTICE], [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)],
-                              [AC_DIVERT_PUSH(NOTICE)])
-_LT_AC_LIBTOOL_SYS_PATH_SEPARATOR
-
-# Check that we are running under the correct shell.
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-case X$ECHO in
-X*--fallback-echo)
-  # Remove one level of quotation (which was required for Make).
-  ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','`
-  ;;
-esac
-
-echo=${ECHO-echo}
-if test "X[$]1" = X--no-reexec; then
-  # Discard the --no-reexec flag, and continue.
-  shift
-elif test "X[$]1" = X--fallback-echo; then
-  # Avoid inline document here, it may be left over
-  :
-elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
-  # Yippee, $echo works!
-  :
-else
-  # Restart under the correct shell.
-  exec $SHELL "[$]0" --no-reexec ${1+"[$]@"}
-fi
-
-if test "X[$]1" = X--fallback-echo; then
-  # used as fallback echo
-  shift
-  cat <<EOF
-$*
-EOF
-  exit 0
-fi
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
-
-if test -z "$ECHO"; then
-if test "X${echo_test_string+set}" != Xset; then
-# find a string as large as possible, as long as the shell can cope with it
-  for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do
-    # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
-    if (echo_test_string="`eval $cmd`") 2>/dev/null &&
-       echo_test_string="`eval $cmd`" &&
-       (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null
-    then
-      break
-    fi
-  done
-fi
-
-if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
-   echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
-   test "X$echo_testing_string" = "X$echo_test_string"; then
-  :
-else
-  # The Solaris, AIX, and Digital Unix default echo programs unquote
-  # backslashes.  This makes it impossible to quote backslashes using
-  #   echo "$something" | sed 's/\\/\\\\/g'
-  #
-  # So, first we look for a working echo in the user's PATH.
-
-  IFS="${IFS=  }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
-  for dir in $PATH /usr/ucb; do
-    if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
-       test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
-       echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
-       test "X$echo_testing_string" = "X$echo_test_string"; then
-      echo="$dir/echo"
-      break
-    fi
-  done
-  IFS="$save_ifs"
-
-  if test "X$echo" = Xecho; then
-    # We didn't find a better echo, so look for alternatives.
-    if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' &&
-       echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` &&
-       test "X$echo_testing_string" = "X$echo_test_string"; then
-      # This shell has a builtin print -r that does the trick.
-      echo='print -r'
-    elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) &&
-        test "X$CONFIG_SHELL" != X/bin/ksh; then
-      # If we have ksh, try running configure again with it.
-      ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
-      export ORIGINAL_CONFIG_SHELL
-      CONFIG_SHELL=/bin/ksh
-      export CONFIG_SHELL
-      exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"}
-    else
-      # Try using printf.
-      echo='printf %s\n'
-      if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
-        echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
-        test "X$echo_testing_string" = "X$echo_test_string"; then
-       # Cool, printf works
-       :
-      elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
-          test "X$echo_testing_string" = 'X\t' &&
-          echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
-          test "X$echo_testing_string" = "X$echo_test_string"; then
-       CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
-       export CONFIG_SHELL
-       SHELL="$CONFIG_SHELL"
-       export SHELL
-       echo="$CONFIG_SHELL [$]0 --fallback-echo"
-      elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
-          test "X$echo_testing_string" = 'X\t' &&
-          echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
-          test "X$echo_testing_string" = "X$echo_test_string"; then
-       echo="$CONFIG_SHELL [$]0 --fallback-echo"
-      else
-       # maybe with a smaller string...
-       prev=:
-
-       for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do
-         if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null
-         then
-           break
-         fi
-         prev="$cmd"
-       done
-
-       if test "$prev" != 'sed 50q "[$]0"'; then
-         echo_test_string=`eval $prev`
-         export echo_test_string
-         exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"}
-       else
-         # Oops.  We lost completely, so just stick with echo.
-         echo=echo
-       fi
-      fi
-    fi
-  fi
-fi
-fi
-
-# Copy echo and quote the copy suitably for passing to libtool from
-# the Makefile, instead of quoting the original, which is used later.
-ECHO=$echo
-if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then
-   ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo"
-fi
-
-AC_SUBST(ECHO)
-AC_DIVERT_POP
-])# _LT_AC_PROG_ECHO_BACKSLASH
-
-# _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
-#                           ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
-# ------------------------------------------------------------------
-AC_DEFUN(_LT_AC_TRY_DLOPEN_SELF,
-[if test "$cross_compiling" = yes; then :
-  [$4]
-else
-  AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl
-  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-  lt_status=$lt_dlunknown
-  cat > conftest.$ac_ext <<EOF
-[#line __oline__ "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-#  define LT_DLGLOBAL          RTLD_GLOBAL
-#else
-#  ifdef DL_GLOBAL
-#    define LT_DLGLOBAL                DL_GLOBAL
-#  else
-#    define LT_DLGLOBAL                0
-#  endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
-   find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-#  ifdef RTLD_LAZY
-#    define LT_DLLAZY_OR_NOW           RTLD_LAZY
-#  else
-#    ifdef DL_LAZY
-#      define LT_DLLAZY_OR_NOW         DL_LAZY
-#    else
-#      ifdef RTLD_NOW
-#        define LT_DLLAZY_OR_NOW       RTLD_NOW
-#      else
-#        ifdef DL_NOW
-#          define LT_DLLAZY_OR_NOW     DL_NOW
-#        else
-#          define LT_DLLAZY_OR_NOW     0
-#        endif
-#      endif
-#    endif
-#  endif
-#endif
-
-#ifdef __cplusplus
-extern "C" void exit (int);
-#endif
-
-void fnord() { int i=42;}
-int main ()
-{
-  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-  int status = $lt_dlunknown;
-
-  if (self)
-    {
-      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
-      /* dlclose (self); */
-    }
-
-    exit (status);
-}]
-EOF
-  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
-    (./conftest; exit; ) 2>/dev/null
-    lt_status=$?
-    case x$lt_status in
-      x$lt_dlno_uscore) $1 ;;
-      x$lt_dlneed_uscore) $2 ;;
-      x$lt_unknown|x*) $3 ;;
-    esac
-  else :
-    # compilation failed
-    $3
-  fi
-fi
-rm -fr conftest*
-])# _LT_AC_TRY_DLOPEN_SELF
-
-# AC_LIBTOOL_DLOPEN_SELF
-# -------------------
-AC_DEFUN(AC_LIBTOOL_DLOPEN_SELF,
-[if test "x$enable_dlopen" != xyes; then
-  enable_dlopen=unknown
-  enable_dlopen_self=unknown
-  enable_dlopen_self_static=unknown
-else
-  lt_cv_dlopen=no
-  lt_cv_dlopen_libs=
-
-  case $host_os in
-  beos*)
-    lt_cv_dlopen="load_add_on"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-    ;;
-
-  cygwin* | mingw* | pw32*)
-    lt_cv_dlopen="LoadLibrary"
-    lt_cv_dlopen_libs=
-   ;;
-
-  *)
-    AC_CHECK_LIB(dl, dlopen,  [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
-      [AC_CHECK_FUNC(dlopen, lt_cv_dlopen="dlopen",
-        [AC_CHECK_FUNC(shl_load, lt_cv_dlopen="shl_load",
-          [AC_CHECK_LIB(svld, dlopen,
-           [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
-            [AC_CHECK_LIB(dld, shl_load,
-              [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"])
-           ])
-          ])
-        ])
-      ])
-    ;;
-  esac
-
-  if test "x$lt_cv_dlopen" != xno; then
-    enable_dlopen=yes
-  else
-    enable_dlopen=no
-  fi
-
-  case $lt_cv_dlopen in
-  dlopen)
-    save_CPPFLAGS="$CPPFLAGS"
-    AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl
-    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
-
-    save_LDFLAGS="$LDFLAGS"
-    eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
-
-    save_LIBS="$LIBS"
-    LIBS="$lt_cv_dlopen_libs $LIBS"
-
-    AC_CACHE_CHECK([whether a program can dlopen itself],
-         lt_cv_dlopen_self, [dnl
-         _LT_AC_TRY_DLOPEN_SELF(
-           lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
-           lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
-    ])
-
-    if test "x$lt_cv_dlopen_self" = xyes; then
-      LDFLAGS="$LDFLAGS $link_static_flag"
-      AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
-         lt_cv_dlopen_self_static, [dnl
-         _LT_AC_TRY_DLOPEN_SELF(
-           lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
-           lt_cv_dlopen_self_static=no,  lt_cv_dlopen_self_static=cross)
-      ])
-    fi
-
-    CPPFLAGS="$save_CPPFLAGS"
-    LDFLAGS="$save_LDFLAGS"
-    LIBS="$save_LIBS"
-    ;;
-  esac
-
-  case $lt_cv_dlopen_self in
-  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
-  *) enable_dlopen_self=unknown ;;
-  esac
-
-  case $lt_cv_dlopen_self_static in
-  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
-  *) enable_dlopen_self_static=unknown ;;
-  esac
-fi
-])# AC_LIBTOOL_DLOPEN_SELF
-
-AC_DEFUN([_LT_AC_LTCONFIG_HACK],
-[AC_REQUIRE([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])dnl
-# Sed substitution that helps us do robust quoting.  It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed='sed -e s/^X//'
-[sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g']
-
-# Same as above, but do not quote variable references.
-[double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g']
-
-# Sed substitution to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# Constants:
-rm="rm -f"
-
-# Global variables:
-default_ofile=libtool
-can_build_shared=yes
-
-# All known linkers require a `.a' archive for static linking (except M$VC,
-# which needs '.lib').
-libext=a
-ltmain="$ac_aux_dir/ltmain.sh"
-ofile="$default_ofile"
-with_gnu_ld="$lt_cv_prog_gnu_ld"
-need_locks="$enable_libtool_lock"
-
-old_CC="$CC"
-old_CFLAGS="$CFLAGS"
-
-# Set sane defaults for various variables
-test -z "$AR" && AR=ar
-test -z "$AR_FLAGS" && AR_FLAGS=cru
-test -z "$AS" && AS=as
-test -z "$CC" && CC=cc
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-test -z "$LD" && LD=ld
-test -z "$LN_S" && LN_S="ln -s"
-test -z "$MAGIC_CMD" && MAGIC_CMD=file
-test -z "$NM" && NM=nm
-test -z "$OBJDUMP" && OBJDUMP=objdump
-test -z "$RANLIB" && RANLIB=:
-test -z "$STRIP" && STRIP=:
-test -z "$ac_objext" && ac_objext=o
-
-if test x"$host" != x"$build"; then
-  ac_tool_prefix=${host_alias}-
-else
-  ac_tool_prefix=
-fi
-
-# Transform linux* to *-*-linux-gnu*, to support old configure scripts.
-case $host_os in
-linux-gnu*) ;;
-linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
-esac
-
-case $host_os in
-aix3*)
-  # AIX sometimes has problems with the GCC collect2 program.  For some
-  # reason, if we set the COLLECT_NAMES environment variable, the problems
-  # vanish in a puff of smoke.
-  if test "X${COLLECT_NAMES+set}" != Xset; then
-    COLLECT_NAMES=
-    export COLLECT_NAMES
-  fi
-  ;;
-esac
-
-# Determine commands to create old-style static archives.
-old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs'
-old_postinstall_cmds='chmod 644 $oldlib'
-old_postuninstall_cmds=
-
-if test -n "$RANLIB"; then
-  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
-  old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds"
-fi
-
-# Allow CC to be a program name with arguments.
-set dummy $CC
-compiler="[$]2"
-
-AC_MSG_CHECKING([for objdir])
-rm -f .libs 2>/dev/null
-mkdir .libs 2>/dev/null
-if test -d .libs; then
-  objdir=.libs
-else
-  # MS-DOS does not allow filenames that begin with a dot.
-  objdir=_libs
-fi
-rmdir .libs 2>/dev/null
-AC_MSG_RESULT($objdir)
-
-
-AC_ARG_WITH(pic, 
-[  --with-pic              try to use only PIC/non-PIC objects [default=use both]],
-pic_mode="$withval", pic_mode=default)
-test -z "$pic_mode" && pic_mode=default
-
-# We assume here that the value for lt_cv_prog_cc_pic will not be cached
-# in isolation, and that seeing it set (from the cache) indicates that
-# the associated values are set (in the cache) correctly too.
-AC_MSG_CHECKING([for $compiler option to produce PIC])
-AC_CACHE_VAL(lt_cv_prog_cc_pic,
-[ lt_cv_prog_cc_pic=
-  lt_cv_prog_cc_shlib=
-  lt_cv_prog_cc_wl=
-  lt_cv_prog_cc_static=
-  lt_cv_prog_cc_no_builtin=
-  lt_cv_prog_cc_can_build_shared=$can_build_shared
-
-  if test "$GCC" = yes; then
-    lt_cv_prog_cc_wl='-Wl,'
-    lt_cv_prog_cc_static='-static'
-
-    case $host_os in
-    aix*)
-      # Below there is a dirty hack to force normal static linking with -ldl
-      # The problem is because libdl dynamically linked with both libc and
-      # libC (AIX C++ library), which obviously doesn't included in libraries
-      # list by gcc. This cause undefined symbols with -static flags.
-      # This hack allows C programs to be linked with "-static -ldl", but
-      # we not sure about C++ programs.
-      lt_cv_prog_cc_static="$lt_cv_prog_cc_static ${lt_cv_prog_cc_wl}-lC"
-      ;;
-    amigaos*)
-      # FIXME: we need at least 68020 code to build shared libraries, but
-      # adding the `-m68020' flag to GCC prevents building anything better,
-      # like `-m68040'.
-      lt_cv_prog_cc_pic='-m68020 -resident32 -malways-restore-a4'
-      ;;
-    beos* | irix5* | irix6* | osf3* | osf4* | osf5*)
-      # PIC is the default for these OSes.
-      ;;
-    darwin* | rhapsody*)
-      # PIC is the default on this platform
-      # Common symbols not allowed in MH_DYLIB files
-      lt_cv_prog_cc_pic='-fno-common'
-      ;;
-    cygwin* | mingw* | pw32* | os2*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      lt_cv_prog_cc_pic='-DDLL_EXPORT'
-      ;;
-    sysv4*MP*)
-      if test -d /usr/nec; then
-        lt_cv_prog_cc_pic=-Kconform_pic
-      fi
-      ;;
-    *)
-      lt_cv_prog_cc_pic='-fPIC'
-      ;;
-    esac
-  else
-    # PORTME Check for PIC flags for the system compiler.
-    case $host_os in
-    aix3* | aix4* | aix5*)
-      # All AIX code is PIC.
-      if test "$host_cpu" = ia64; then
-        # AIX 5 now supports IA64 processor
-        lt_cv_prog_cc_static='-Bstatic'
-        lt_cv_prog_cc_wl='-Wl,'
-      else
-        lt_cv_prog_cc_static='-bnso -bI:/lib/syscalls.exp'
-      fi
-      ;;
-
-    hpux9* | hpux10* | hpux11*)
-      # Is there a better lt_cv_prog_cc_static that works with the bundled CC?
-      lt_cv_prog_cc_wl='-Wl,'
-      lt_cv_prog_cc_static="${lt_cv_prog_cc_wl}-a ${lt_cv_prog_cc_wl}archive"
-      lt_cv_prog_cc_pic='+Z'
-      ;;
-
-    irix5* | irix6*)
-      lt_cv_prog_cc_wl='-Wl,'
-      lt_cv_prog_cc_static='-non_shared'
-      # PIC (with -KPIC) is the default.
-      ;;
-
-    cygwin* | mingw* | pw32* | os2*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      lt_cv_prog_cc_pic='-DDLL_EXPORT'
-      ;;
-
-    newsos6)
-      lt_cv_prog_cc_pic='-KPIC'
-      lt_cv_prog_cc_static='-Bstatic'
-      ;;
-
-    osf3* | osf4* | osf5*)
-      # All OSF/1 code is PIC.
-      lt_cv_prog_cc_wl='-Wl,'
-      lt_cv_prog_cc_static='-non_shared'
-      ;;
-
-    sco3.2v5*)
-      lt_cv_prog_cc_pic='-Kpic'
-      lt_cv_prog_cc_static='-dn'
-      lt_cv_prog_cc_shlib='-belf'
-      ;;
-
-    solaris*)
-      lt_cv_prog_cc_pic='-KPIC'
-      lt_cv_prog_cc_static='-Bstatic'
-      lt_cv_prog_cc_wl='-Wl,'
-      ;;
-
-    sunos4*)
-      lt_cv_prog_cc_pic='-PIC'
-      lt_cv_prog_cc_static='-Bstatic'
-      lt_cv_prog_cc_wl='-Qoption ld '
-      ;;
-
-    sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-      lt_cv_prog_cc_pic='-KPIC'
-      lt_cv_prog_cc_static='-Bstatic'
-      if test "x$host_vendor" = xsni; then
-        lt_cv_prog_cc_wl='-LD'
-      else
-        lt_cv_prog_cc_wl='-Wl,'
-      fi
-      ;;
-
-    uts4*)
-      lt_cv_prog_cc_pic='-pic'
-      lt_cv_prog_cc_static='-Bstatic'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec ;then
-       lt_cv_prog_cc_pic='-Kconform_pic'
-       lt_cv_prog_cc_static='-Bstatic'
-      fi
-      ;;
-
-    *)
-      lt_cv_prog_cc_can_build_shared=no
-      ;;
-    esac
-  fi
-])
-if test -z "$lt_cv_prog_cc_pic"; then
-  AC_MSG_RESULT([none])
-else
-  AC_MSG_RESULT([$lt_cv_prog_cc_pic])
-
-  # Check to make sure the pic_flag actually works.
-  AC_MSG_CHECKING([if $compiler PIC flag $lt_cv_prog_cc_pic works])
-  AC_CACHE_VAL(lt_cv_prog_cc_pic_works, [dnl
-    save_CFLAGS="$CFLAGS"
-    CFLAGS="$CFLAGS $lt_cv_prog_cc_pic -DPIC"
-    AC_TRY_COMPILE([], [], [dnl
-      case $host_os in
-      hpux9* | hpux10* | hpux11*)
-       # On HP-UX, both CC and GCC only warn that PIC is supported... then
-       # they create non-PIC objects.  So, if there were any warnings, we
-       # assume that PIC is not supported.
-       if test -s conftest.err; then
-         lt_cv_prog_cc_pic_works=no
-       else
-         lt_cv_prog_cc_pic_works=yes
-       fi
-       ;;
-      *)
-       lt_cv_prog_cc_pic_works=yes
-       ;;
-      esac
-    ], [dnl
-      lt_cv_prog_cc_pic_works=no
-    ])
-    CFLAGS="$save_CFLAGS"
-  ])
-
-  if test "X$lt_cv_prog_cc_pic_works" = Xno; then
-    lt_cv_prog_cc_pic=
-    lt_cv_prog_cc_can_build_shared=no
-  else
-    lt_cv_prog_cc_pic=" $lt_cv_prog_cc_pic"
-  fi
-
-  AC_MSG_RESULT([$lt_cv_prog_cc_pic_works])
-fi
-
-# Check for any special shared library compilation flags.
-if test -n "$lt_cv_prog_cc_shlib"; then
-  AC_MSG_WARN([\`$CC' requires \`$lt_cv_prog_cc_shlib' to build shared libraries])
-  if echo "$old_CC $old_CFLAGS " | [egrep -e "[        ]$lt_cv_prog_cc_shlib[  ]"] >/dev/null; then :
-  else
-   AC_MSG_WARN([add \`$lt_cv_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure])
-    lt_cv_prog_cc_can_build_shared=no
-  fi
-fi
-
-AC_MSG_CHECKING([if $compiler static flag $lt_cv_prog_cc_static works])
-AC_CACHE_VAL([lt_cv_prog_cc_static_works], [dnl
-  lt_cv_prog_cc_static_works=no
-  save_LDFLAGS="$LDFLAGS"
-  LDFLAGS="$LDFLAGS $lt_cv_prog_cc_static"
-  AC_TRY_LINK([], [], [lt_cv_prog_cc_static_works=yes])
-  LDFLAGS="$save_LDFLAGS"
-])
-
-# Belt *and* braces to stop my trousers falling down:
-test "X$lt_cv_prog_cc_static_works" = Xno && lt_cv_prog_cc_static=
-AC_MSG_RESULT([$lt_cv_prog_cc_static_works])
-
-pic_flag="$lt_cv_prog_cc_pic"
-special_shlib_compile_flags="$lt_cv_prog_cc_shlib"
-wl="$lt_cv_prog_cc_wl"
-link_static_flag="$lt_cv_prog_cc_static"
-no_builtin_flag="$lt_cv_prog_cc_no_builtin"
-can_build_shared="$lt_cv_prog_cc_can_build_shared"
-
-
-# Check to see if options -o and -c are simultaneously supported by compiler
-AC_MSG_CHECKING([if $compiler supports -c -o file.$ac_objext])
-AC_CACHE_VAL([lt_cv_compiler_c_o], [
-$rm -r conftest 2>/dev/null
-mkdir conftest
-cd conftest
-echo "int some_variable = 0;" > conftest.$ac_ext
-mkdir out
-# According to Tom Tromey, Ian Lance Taylor reported there are C compilers
-# that will create temporary files in the current directory regardless of
-# the output directory.  Thus, making CWD read-only will cause this test
-# to fail, enabling locking or at least warning the user not to do parallel
-# builds.
-chmod -w .
-save_CFLAGS="$CFLAGS"
-CFLAGS="$CFLAGS -o out/conftest2.$ac_objext"
-compiler_c_o=no
-if { (eval echo configure:__oline__: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.$ac_objext; then
-  # The compiler can only warn and ignore the option if not recognized
-  # So say no if there are warnings
-  if test -s out/conftest.err; then
-    lt_cv_compiler_c_o=no
-  else
-    lt_cv_compiler_c_o=yes
-  fi
-else
-  # Append any errors to the config.log.
-  cat out/conftest.err 1>&AC_FD_CC
-  lt_cv_compiler_c_o=no
-fi
-CFLAGS="$save_CFLAGS"
-chmod u+w .
-$rm conftest* out/*
-rmdir out
-cd ..
-rmdir conftest
-$rm -r conftest 2>/dev/null
-])
-compiler_c_o=$lt_cv_compiler_c_o
-AC_MSG_RESULT([$compiler_c_o])
-
-if test x"$compiler_c_o" = x"yes"; then
-  # Check to see if we can write to a .lo
-  AC_MSG_CHECKING([if $compiler supports -c -o file.lo])
-  AC_CACHE_VAL([lt_cv_compiler_o_lo], [
-  lt_cv_compiler_o_lo=no
-  save_CFLAGS="$CFLAGS"
-  CFLAGS="$CFLAGS -c -o conftest.lo"
-  AC_TRY_COMPILE([], [int some_variable = 0;], [dnl
-    # The compiler can only warn and ignore the option if not recognized
-    # So say no if there are warnings
-    if test -s conftest.err; then
-      lt_cv_compiler_o_lo=no
-    else
-      lt_cv_compiler_o_lo=yes
-    fi
-  ])
-  CFLAGS="$save_CFLAGS"
-  ])
-  compiler_o_lo=$lt_cv_compiler_o_lo
-  AC_MSG_RESULT([$compiler_o_lo])
-else
-  compiler_o_lo=no
-fi
-
-# Check to see if we can do hard links to lock some files if needed
-hard_links="nottested"
-if test "$compiler_c_o" = no && test "$need_locks" != no; then
-  # do not overwrite the value of need_locks provided by the user
-  AC_MSG_CHECKING([if we can lock with hard links])
-  hard_links=yes
-  $rm conftest*
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  touch conftest.a
-  ln conftest.a conftest.b 2>&5 || hard_links=no
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  AC_MSG_RESULT([$hard_links])
-  if test "$hard_links" = no; then
-    AC_MSG_WARN([\`$CC' does not support \`-c -o', so \`make -j' may be unsafe])
-    need_locks=warn
-  fi
-else
-  need_locks=no
-fi
-
-if test "$GCC" = yes; then
-  # Check to see if options -fno-rtti -fno-exceptions are supported by compiler
-  AC_MSG_CHECKING([if $compiler supports -fno-rtti -fno-exceptions])
-  echo "int some_variable = 0;" > conftest.$ac_ext
-  save_CFLAGS="$CFLAGS"
-  CFLAGS="$CFLAGS -fno-rtti -fno-exceptions -c conftest.$ac_ext"
-  compiler_rtti_exceptions=no
-  AC_TRY_COMPILE([], [int some_variable = 0;], [dnl
-    # The compiler can only warn and ignore the option if not recognized
-    # So say no if there are warnings
-    if test -s conftest.err; then
-      compiler_rtti_exceptions=no
-    else
-      compiler_rtti_exceptions=yes
-    fi
-  ])
-  CFLAGS="$save_CFLAGS"
-  AC_MSG_RESULT([$compiler_rtti_exceptions])
-
-  if test "$compiler_rtti_exceptions" = "yes"; then
-    no_builtin_flag=' -fno-builtin -fno-rtti -fno-exceptions'
-  else
-    no_builtin_flag=' -fno-builtin'
-  fi
-fi
-
-# See if the linker supports building shared libraries.
-AC_MSG_CHECKING([whether the linker ($LD) supports shared libraries])
-
-allow_undefined_flag=
-no_undefined_flag=
-need_lib_prefix=unknown
-need_version=unknown
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-archive_cmds=
-archive_expsym_cmds=
-old_archive_from_new_cmds=
-old_archive_from_expsyms_cmds=
-export_dynamic_flag_spec=
-whole_archive_flag_spec=
-thread_safe_flag_spec=
-hardcode_into_libs=no
-hardcode_libdir_flag_spec=
-hardcode_libdir_separator=
-hardcode_direct=no
-hardcode_minus_L=no
-hardcode_shlibpath_var=unsupported
-runpath_var=
-link_all_deplibs=unknown
-always_export_symbols=no
-export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | sed '\''s/.* //'\'' | sort | uniq > $export_symbols'
-# include_expsyms should be a list of space-separated symbols to be *always*
-# included in the symbol list
-include_expsyms=
-# exclude_expsyms can be an egrep regular expression of symbols to exclude
-# it will be wrapped by ` (' and `)$', so one must not match beginning or
-# end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
-# as well as any symbol that contains `d'.
-exclude_expsyms="_GLOBAL_OFFSET_TABLE_"
-# Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
-# platforms (ab)use it in PIC code, but their linkers get confused if
-# the symbol is explicitly referenced.  Since portable code cannot
-# rely on this symbol name, it's probably fine to never include it in
-# preloaded symbol tables.
-extract_expsyms_cmds=
-
-case $host_os in
-cygwin* | mingw* | pw32* )
-  # FIXME: the MSVC++ port hasn't been tested in a loooong time
-  # When not using gcc, we currently assume that we are using
-  # Microsoft Visual C++.
-  if test "$GCC" != yes; then
-    with_gnu_ld=no
-  fi
-  ;;
-
-esac
-
-ld_shlibs=yes
-if test "$with_gnu_ld" = yes; then
-  # If archive_cmds runs LD, not CC, wlarc should be empty
-  wlarc='${wl}'
-
-  # See if GNU ld supports shared libraries.
-  case $host_os in
-  aix3* | aix4* | aix5*)
-    # On AIX, the GNU linker is very broken
-    # Note:Check GNU linker on AIX 5-IA64 when/if it becomes available.
-    ld_shlibs=no
-    cat <<EOF 1>&2
-
-*** Warning: the GNU linker, at least up to release 2.9.1, is reported
-*** to be unable to reliably create shared libraries on AIX.
-*** Therefore, libtool is disabling shared libraries support.  If you
-*** really care for shared libraries, you may want to modify your PATH
-*** so that a non-GNU linker is found, and then restart.
-
-EOF
-    ;;
-
-  amigaos*)
-    archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-    hardcode_libdir_flag_spec='-L$libdir'
-    hardcode_minus_L=yes
-
-    # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
-    # that the semantics of dynamic libraries on AmigaOS, at least up
-    # to version 4, is to share data among multiple programs linked
-    # with the same dynamic library.  Since this doesn't match the
-    # behavior of shared libraries on other platforms, we can use
-    # them.
-    ld_shlibs=no
-    ;;
-
-  beos*)
-    if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
-      allow_undefined_flag=unsupported
-      # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
-      # support --undefined.  This deserves some investigation.  FIXME
-      archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-    else
-      ld_shlibs=no
-    fi
-    ;;
-
-  cygwin* | mingw* | pw32*)
-    # hardcode_libdir_flag_spec is actually meaningless, as there is
-    # no search path for DLLs.
-    hardcode_libdir_flag_spec='-L$libdir'
-    allow_undefined_flag=unsupported
-    always_export_symbols=yes
-
-    extract_expsyms_cmds='test -f $output_objdir/impgen.c || \
-      sed -e "/^# \/\* impgen\.c starts here \*\//,/^# \/\* impgen.c ends here \*\// { s/^# //;s/^# *$//; p; }" -e d < $''0 > $output_objdir/impgen.c~
-      test -f $output_objdir/impgen.exe || (cd $output_objdir && \
-      if test "x$HOST_CC" != "x" ; then $HOST_CC -o impgen impgen.c ; \
-      else $CC -o impgen impgen.c ; fi)~
-      $output_objdir/impgen $dir/$soroot > $output_objdir/$soname-def'
-
-    old_archive_from_expsyms_cmds='$DLLTOOL --as=$AS --dllname $soname --def $output_objdir/$soname-def --output-lib $output_objdir/$newlib'
-
-    # cygwin and mingw dlls have different entry points and sets of symbols
-    # to exclude.
-    # FIXME: what about values for MSVC?
-    dll_entry=__cygwin_dll_entry@12
-    dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12~
-    case $host_os in
-    mingw*)
-      # mingw values
-      dll_entry=_DllMainCRTStartup@12
-      dll_exclude_symbols=DllMain@12,DllMainCRTStartup@12,DllEntryPoint@12~
-      ;;
-    esac
-
-    # mingw and cygwin differ, and it's simplest to just exclude the union
-    # of the two symbol sets.
-    dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12,DllMainCRTStartup@12,DllEntryPoint@12
-
-    # recent cygwin and mingw systems supply a stub DllMain which the user
-    # can override, but on older systems we have to supply one (in ltdll.c)
-    if test "x$lt_cv_need_dllmain" = "xyes"; then
-      ltdll_obj='$output_objdir/$soname-ltdll.'"$ac_objext "
-      ltdll_cmds='test -f $output_objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < [$]0 > $output_objdir/$soname-ltdll.c~
-       test -f $output_objdir/$soname-ltdll.$ac_objext || (cd $output_objdir && $CC -c $soname-ltdll.c)~'
-    else
-      ltdll_obj=
-      ltdll_cmds=
-    fi
-
-    # Extract the symbol export list from an `--export-all' def file,
-    # then regenerate the def file from the symbol export list, so that
-    # the compiled dll only exports the symbol export list.
-    # Be careful not to strip the DATA tag left be newer dlltools.
-    export_symbols_cmds="$ltdll_cmds"'
-      $DLLTOOL --export-all --exclude-symbols '$dll_exclude_symbols' --output-def $output_objdir/$soname-def '$ltdll_obj'$libobjs $convenience~
-      [sed -e "1,/EXPORTS/d" -e "s/ @ [0-9]*//" -e "s/ *;.*$//"] < $output_objdir/$soname-def > $export_symbols'
-
-    # If the export-symbols file already is a .def file (1st line
-    # is EXPORTS), use it as is.
-    # If DATA tags from a recent dlltool are present, honour them!
-    archive_expsym_cmds='if test "x`head -1 $export_symbols`" = xEXPORTS; then
-        cp $export_symbols $output_objdir/$soname-def;
-      else
-        echo EXPORTS > $output_objdir/$soname-def;
-        _lt_hint=1;
-        cat $export_symbols | while read symbol; do
-         set dummy \$symbol;
-         case \[$]# in
-           2) echo "   \[$]2 @ \$_lt_hint ; " >> $output_objdir/$soname-def;;
-           *) echo "     \[$]2 @ \$_lt_hint \[$]3 ; " >> $output_objdir/$soname-def;;
-         esac;
-         _lt_hint=`expr 1 + \$_lt_hint`;
-        done;
-      fi~
-      '"$ltdll_cmds"'
-      $CC -Wl,--base-file,$output_objdir/$soname-base '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags~
-      $DLLTOOL --as=$AS --dllname $soname --exclude-symbols '$dll_exclude_symbols' --def $output_objdir/$soname-def --base-file $output_objdir/$soname-base --output-exp $output_objdir/$soname-exp~
-      $CC -Wl,--base-file,$output_objdir/$soname-base $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags~
-      $DLLTOOL --as=$AS --dllname $soname --exclude-symbols '$dll_exclude_symbols' --def $output_objdir/$soname-def --base-file $output_objdir/$soname-base --output-exp $output_objdir/$soname-exp --output-lib $output_objdir/$libname.dll.a~
-      $CC $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags'
-    ;;
-
-  netbsd*)
-    if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-      archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
-      wlarc=
-    else
-      archive_cmds='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-      archive_expsym_cmds='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-    fi
-    ;;
-
-  solaris* | sysv5*)
-    if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then
-      ld_shlibs=no
-      cat <<EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems.  Therefore, libtool
-*** is disabling shared libraries support.  We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer.  Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-EOF
-    elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
-      archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-      archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-    else
-      ld_shlibs=no
-    fi
-    ;;
-
-  sunos4*)
-    archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-    wlarc=
-    hardcode_direct=yes
-    hardcode_shlibpath_var=no
-    ;;
-
-  *)
-    if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
-      archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-      archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-    else
-      ld_shlibs=no
-    fi
-    ;;
-  esac
-
-  if test "$ld_shlibs" = yes; then
-    runpath_var=LD_RUN_PATH
-    hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir'
-    export_dynamic_flag_spec='${wl}--export-dynamic'
-    case $host_os in
-    cygwin* | mingw* | pw32*)
-      # dlltool doesn't understand --whole-archive et. al.
-      whole_archive_flag_spec=
-      ;;
-    *)
-      # ancient GNU ld didn't support --whole-archive et. al.
-      if $LD --help 2>&1 | egrep 'no-whole-archive' > /dev/null; then
-       whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-      else
-       whole_archive_flag_spec=
-      fi
-      ;;
-    esac
-  fi
-else
-  # PORTME fill in a description of your system's linker (not GNU ld)
-  case $host_os in
-  aix3*)
-    allow_undefined_flag=unsupported
-    always_export_symbols=yes
-    archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
-    # Note: this linker hardcodes the directories in LIBPATH if there
-    # are no directories specified by -L.
-    hardcode_minus_L=yes
-    if test "$GCC" = yes && test -z "$link_static_flag"; then
-      # Neither direct hardcoding nor static linking is supported with a
-      # broken collect2.
-      hardcode_direct=unsupported
-    fi
-    ;;
-
-  aix4* | aix5*)
-    # When large executables or shared objects are built, AIX ld can
-    # have problems creating the table of contents.  If linking a library
-    # or program results in "error TOC overflow" add -mminimal-toc to
-    # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
-    # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
-    archive_cmds=''
-    hardcode_libdir_separator=':'
-    if test "$GCC" = yes; then
-      collect2name=`${CC} -print-prog-name=collect2`
-      if test -f "$collect2name" && \
-        strings "$collect2name" | grep resolve_lib_name >/dev/null
-      then
-       # We have reworked collect2
-       hardcode_direct=yes
-      else
-        # We have old collect2
-        hardcode_direct=unsupported
-        # It fails to find uninstalled libraries when the uninstalled
-        # path is not listed in the libpath.  Setting hardcode_minus_L
-        # to unsupported forces relinking
-        hardcode_minus_L=yes
-        hardcode_libdir_flag_spec='-L$libdir'
-        hardcode_libdir_separator=
-      fi
-      shared_flag='-shared'
-    else
-      if test "$host_cpu" = ia64; then
-        shared_flag='-G'
-      else
-        shared_flag='${wl}-bM:SRE'
-      fi
-      hardcode_direct=yes
-    fi
-
-    if test "$host_cpu" = ia64; then
-      # On IA64, the linker does run time linking by default, so we don't
-      # have to do anything special.
-      aix_use_runtimelinking=no
-      exp_sym_flag='-Bexport'
-      no_entry_flag=""
-    else
-      # Test if we are trying to use run time linking, or normal AIX style linking.
-      # If -brtl is somewhere in LDFLAGS, we need to do run time linking.
-      aix_use_runtimelinking=no
-      for ld_flag in $LDFLAGS; do
-        if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl" ); then
-          aix_use_runtimelinking=yes
-          break
-        fi
-      done
-      exp_sym_flag='-bexport'
-      no_entry_flag='-bnoentry'
-    fi
-    # It seems that -bexpall can do strange things, so it is better to
-    # generate a list of symbols to export.
-    always_export_symbols=yes
-    if test "$aix_use_runtimelinking" = yes; then
-      hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:/usr/lib:/lib'
-      allow_undefined_flag=' -Wl,-G'
-      archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
-    else
-      if test "$host_cpu" = ia64; then
-        hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
-       allow_undefined_flag="-znodefs"
-        archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname ${wl}-h$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
-      else
-        hardcode_libdir_flag_spec='${wl}-bnolibpath ${wl}-blibpath:$libdir:/usr/lib:/lib'
-        # Warning - without using the other run time loading flags, -berok will
-        #           link without error, but may produce a broken library.
-        allow_undefined_flag='${wl}-berok'
-        # This is a bit strange, but is similar to how AIX traditionally builds
-        # it's shared libraries.
-        archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"' ~$AR -crlo $objdir/$libname$release.a $objdir/$soname'
-      fi
-    fi
-    ;;
-
-  amigaos*)
-    archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-    hardcode_libdir_flag_spec='-L$libdir'
-    hardcode_minus_L=yes
-    # see comment about different semantics on the GNU ld section
-    ld_shlibs=no
-    ;;
-
-  cygwin* | mingw* | pw32*)
-    # When not using gcc, we currently assume that we are using
-    # Microsoft Visual C++.
-    # hardcode_libdir_flag_spec is actually meaningless, as there is
-    # no search path for DLLs.
-    hardcode_libdir_flag_spec=' '
-    allow_undefined_flag=unsupported
-    # Tell ltmain to make .lib files, not .a files.
-    libext=lib
-    # FIXME: Setting linknames here is a bad hack.
-    archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | sed -e '\''s/ -lc$//'\''` -link -dll~linknames='
-    # The linker will automatically build a .lib file if we build a DLL.
-    old_archive_from_new_cmds='true'
-    # FIXME: Should let the user specify the lib program.
-    old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs'
-    fix_srcfile_path='`cygpath -w "$srcfile"`'
-    ;;
-
-  darwin* | rhapsody*)
-    allow_undefined_flag='-undefined suppress'
-    # FIXME: Relying on posixy $() will cause problems for
-    #        cross-compilation, but unfortunately the echo tests do not
-    #        yet detect zsh echo's removal of \ escapes.
-    archive_cmds='$CC $(test .$module = .yes && echo -bundle || echo -dynamiclib) $allow_undefined_flag -o $lib $libobjs $deplibs$linkopts -install_name $rpath/$soname $(test -n "$verstring" -a x$verstring != x0.0 && echo $verstring)'
-    # We need to add '_' to the symbols in $export_symbols first
-    #archive_expsym_cmds="$archive_cmds"' && strip -s $export_symbols'
-    hardcode_direct=yes
-    hardcode_shlibpath_var=no
-    whole_archive_flag_spec='-all_load $convenience'
-    ;;
-
-  freebsd1*)
-    ld_shlibs=no
-    ;;
-
-  # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
-  # support.  Future versions do this automatically, but an explicit c++rt0.o
-  # does not break anything, and helps significantly (at the cost of a little
-  # extra space).
-  freebsd2.2*)
-    archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
-    hardcode_libdir_flag_spec='-R$libdir'
-    hardcode_direct=yes
-    hardcode_shlibpath_var=no
-    ;;
-
-  # Unfortunately, older versions of FreeBSD 2 do not have this feature.
-  freebsd2*)
-    archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-    hardcode_direct=yes
-    hardcode_minus_L=yes
-    hardcode_shlibpath_var=no
-    ;;
-
-  # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
-  freebsd*)
-    archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
-    hardcode_libdir_flag_spec='-R$libdir'
-    hardcode_direct=yes
-    hardcode_shlibpath_var=no
-    ;;
-
-  hpux9* | hpux10* | hpux11*)
-    case $host_os in
-    hpux9*) archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ;;
-    *) archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' ;;
-    esac
-    hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
-    hardcode_libdir_separator=:
-    hardcode_direct=yes
-    hardcode_minus_L=yes # Not in the search PATH, but as the default
-                        # location of the library.
-    export_dynamic_flag_spec='${wl}-E'
-    ;;
-
-  irix5* | irix6*)
-    if test "$GCC" = yes; then
-      archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-    else
-      archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-    fi
-    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-    hardcode_libdir_separator=:
-    link_all_deplibs=yes
-    ;;
-
-  netbsd*)
-    if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-      archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
-    else
-      archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
-    fi
-    hardcode_libdir_flag_spec='-R$libdir'
-    hardcode_direct=yes
-    hardcode_shlibpath_var=no
-    ;;
-
-  newsos6)
-    archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
-    hardcode_direct=yes
-    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-    hardcode_libdir_separator=:
-    hardcode_shlibpath_var=no
-    ;;
-
-  openbsd*)
-    archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-    hardcode_libdir_flag_spec='-R$libdir'
-    hardcode_direct=yes
-    hardcode_shlibpath_var=no
-    ;;
-
-  os2*)
-    hardcode_libdir_flag_spec='-L$libdir'
-    hardcode_minus_L=yes
-    allow_undefined_flag=unsupported
-    archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
-    old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
-    ;;
-
-  osf3*)
-    if test "$GCC" = yes; then
-      allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
-      archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-    else
-      allow_undefined_flag=' -expect_unresolved \*'
-      archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-    fi
-    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-    hardcode_libdir_separator=:
-    ;;
-
-  osf4* | osf5*)       # as osf3* with the addition of -msym flag
-    if test "$GCC" = yes; then
-      allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
-      archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-    else
-      allow_undefined_flag=' -expect_unresolved \*'
-      archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-      archive_expsym_cmds='for i in `cat $export_symbols`; do printf "-exported_symbol " >> $lib.exp; echo "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
-      $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp'
-
-      #Both c and cxx compiler support -rpath directly
-      hardcode_libdir_flag_spec='-rpath $libdir'
-    fi
-    hardcode_libdir_separator=:
-    ;;
-
-  sco3.2v5*)
-    archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-    hardcode_shlibpath_var=no
-    runpath_var=LD_RUN_PATH
-    hardcode_runpath_var=yes
-    ;;
-
-  solaris*)
-    no_undefined_flag=' -z defs'
-    # $CC -shared without GNU ld will not create a library from C++
-    # object files and a static libstdc++, better avoid it by now
-    archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
-    archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-               $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
-    hardcode_libdir_flag_spec='-R$libdir'
-    hardcode_shlibpath_var=no
-    case $host_os in
-    [solaris2.[0-5] | solaris2.[0-5].*]) ;;
-    *) # Supported since Solaris 2.6 (maybe 2.5.1?)
-      whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;;
-    esac
-    link_all_deplibs=yes
-    ;;
-
-  sunos4*)
-    if test "x$host_vendor" = xsequent; then
-      # Use $CC to link under sequent, because it throws in some extra .o
-      # files that make .init and .fini sections work.
-      archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
-    else
-      archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
-    fi
-    hardcode_libdir_flag_spec='-L$libdir'
-    hardcode_direct=yes
-    hardcode_minus_L=yes
-    hardcode_shlibpath_var=no
-    ;;
-
-  sysv4)
-    if test "x$host_vendor" = xsno; then
-      archive_cmds='$LD -G -Bsymbolic -h $soname -o $lib $libobjs $deplibs $linkopts'
-      hardcode_direct=yes # is this really true???
-    else
-      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_direct=no #Motorola manual says yes, but my tests say they lie
-    fi
-    runpath_var='LD_RUN_PATH'
-    hardcode_shlibpath_var=no
-    ;;
-
-  sysv4.3*)
-    archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-    hardcode_shlibpath_var=no
-    export_dynamic_flag_spec='-Bexport'
-    ;;
-
-  sysv5*)
-    no_undefined_flag=' -z text'
-    # $CC -shared without GNU ld will not create a library from C++
-    # object files and a static libstdc++, better avoid it by now
-    archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
-    archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-               $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
-    hardcode_libdir_flag_spec=
-    hardcode_shlibpath_var=no
-    runpath_var='LD_RUN_PATH'
-    ;;
-
-  uts4*)
-    archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-    hardcode_libdir_flag_spec='-L$libdir'
-    hardcode_shlibpath_var=no
-    ;;
-
-  dgux*)
-    archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-    hardcode_libdir_flag_spec='-L$libdir'
-    hardcode_shlibpath_var=no
-    ;;
-
-  sysv4*MP*)
-    if test -d /usr/nec; then
-      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_shlibpath_var=no
-      runpath_var=LD_RUN_PATH
-      hardcode_runpath_var=yes
-      ld_shlibs=yes
-    fi
-    ;;
-
-  sysv4.2uw2*)
-    archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
-    hardcode_direct=yes
-    hardcode_minus_L=no
-    hardcode_shlibpath_var=no
-    hardcode_runpath_var=yes
-    runpath_var=LD_RUN_PATH
-    ;;
-
-  sysv5uw7* | unixware7*)
-    no_undefined_flag='${wl}-z ${wl}text'
-    if test "$GCC" = yes; then
-      archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-    else
-      archive_cmds='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-    fi
-    runpath_var='LD_RUN_PATH'
-    hardcode_shlibpath_var=no
-    ;;
-
-  *)
-    ld_shlibs=no
-    ;;
-  esac
-fi
-AC_MSG_RESULT([$ld_shlibs])
-test "$ld_shlibs" = no && can_build_shared=no
-
-# Check hardcoding attributes.
-AC_MSG_CHECKING([how to hardcode library paths into programs])
-hardcode_action=
-if test -n "$hardcode_libdir_flag_spec" || \
-   test -n "$runpath_var"; then
-
-  # We can hardcode non-existant directories.
-  if test "$hardcode_direct" != no &&
-     # If the only mechanism to avoid hardcoding is shlibpath_var, we
-     # have to relink, otherwise we might link with an installed library
-     # when we should be linking with a yet-to-be-installed one
-     ## test "$hardcode_shlibpath_var" != no &&
-     test "$hardcode_minus_L" != no; then
-    # Linking always hardcodes the temporary library directory.
-    hardcode_action=relink
-  else
-    # We can link without hardcoding, and we can hardcode nonexisting dirs.
-    hardcode_action=immediate
-  fi
-else
-  # We cannot hardcode anything, or else we can only hardcode existing
-  # directories.
-  hardcode_action=unsupported
-fi
-AC_MSG_RESULT([$hardcode_action])
-
-striplib=
-old_striplib=
-AC_MSG_CHECKING([whether stripping libraries is possible])
-if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
-  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
-  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
-  AC_MSG_RESULT([yes])
-else
-  AC_MSG_RESULT([no])
-fi
-
-reload_cmds='$LD$reload_flag -o $output$reload_objs'
-test -z "$deplibs_check_method" && deplibs_check_method=unknown
-
-# PORTME Fill in your ld.so characteristics
-AC_MSG_CHECKING([dynamic linker characteristics])
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-
-case $host_os in
-aix3*)
-  version_type=linux
-  library_names_spec='${libname}${release}.so$versuffix $libname.a'
-  shlibpath_var=LIBPATH
-
-  # AIX has no versioning support, so we append a major version to the name.
-  soname_spec='${libname}${release}.so$major'
-  ;;
-
-aix4* | aix5*)
-  version_type=linux
-  if test "$host_cpu" = ia64; then
-    # AIX 5 supports IA64
-    library_names_spec='${libname}${release}.so$major ${libname}${release}.so$versuffix $libname.so'
-    shlibpath_var=LD_LIBRARY_PATH
-  else
-    # With GCC up to 2.95.x, collect2 would create an import file
-    # for dependence libraries.  The import file would start with
-    # the line `#! .'.  This would cause the generated library to
-    # depend on `.', always an invalid library.  This was fixed in
-    # development snapshots of GCC prior to 3.0.
-    case $host_os in
-      [ aix4 | aix4.[01] | aix4.[01].*)]
-      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
-           echo ' yes '
-           echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
-        :
-      else
-        can_build_shared=no
-      fi
-      ;;
-    esac
-    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
-    # soname into executable. Probably we can add versioning support to
-    # collect2, so additional links can be useful in future.
-    if test "$aix_use_runtimelinking" = yes; then
-      # If using run time linking (on AIX 4.2 or later) use lib<name>.so instead of
-      # lib<name>.a to let people know that these are not typical AIX shared libraries.
-      library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
-    else
-      # We preserve .a as extension for shared libraries through AIX4.2
-      # and later when we are not doing run time linking.
-      library_names_spec='${libname}${release}.a $libname.a'
-      soname_spec='${libname}${release}.so$major'
-    fi
-    shlibpath_var=LIBPATH
-    deplibs_check_method=pass_all
-  fi
-  ;;
-
-amigaos*)
-  library_names_spec='$libname.ixlibrary $libname.a'
-  # Create ${libname}_ixlibrary.a entries in /sys/libs.
-  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | [$Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\'']`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done'
-  ;;
-
-beos*)
-  library_names_spec='${libname}.so'
-  dynamic_linker="$host_os ld.so"
-  shlibpath_var=LIBRARY_PATH
-  ;;
-
-bsdi4*)
-  version_type=linux
-  need_version=no
-  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
-  soname_spec='${libname}${release}.so$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
-  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
-  export_dynamic_flag_spec=-rdynamic
-  # the default ld.so.conf also contains /usr/contrib/lib and
-  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
-  # libtool to hard-code these into programs
-  ;;
-
-cygwin* | mingw* | pw32*)
-  version_type=windows
-  need_version=no
-  need_lib_prefix=no
-  case $GCC,$host_os in
-  yes,cygwin*)
-    library_names_spec='$libname.dll.a'
-    soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | [sed -e 's/[.]/-/g']`${versuffix}.dll'
-    postinstall_cmds='dlpath=`bash 2>&1 -c '\''. $dir/${file}i;echo \$dlname'\''`~
-      dldir=$destdir/`dirname \$dlpath`~
-      test -d \$dldir || mkdir -p \$dldir~
-      $install_prog .libs/$dlname \$dldir/$dlname'
-    postuninstall_cmds='dldll=`bash 2>&1 -c '\''. $file; echo \$dlname'\''`~
-      dlpath=$dir/\$dldll~
-       $rm \$dlpath'
-    ;;
-  yes,mingw*)
-    library_names_spec='${libname}`echo ${release} | [sed -e 's/[.]/-/g']`${versuffix}.dll'
-    sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | sed -e "s/^libraries://" -e "s/;/ /g"`
-    ;;
-  yes,pw32*)
-    library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll'
-    ;;
-  *)
-    library_names_spec='${libname}`echo ${release} | [sed -e 's/[.]/-/g']`${versuffix}.dll $libname.lib'
-    ;;
-  esac
-  dynamic_linker='Win32 ld.exe'
-  # FIXME: first we should search . and the directory the executable is in
-  shlibpath_var=PATH
-  ;;
-
-darwin* | rhapsody*)
-  dynamic_linker="$host_os dyld"
-  version_type=darwin
-  need_lib_prefix=no
-  need_version=no
-  # FIXME: Relying on posixy $() will cause problems for
-  #        cross-compilation, but unfortunately the echo tests do not
-  #        yet detect zsh echo's removal of \ escapes.
-  library_names_spec='${libname}${release}${versuffix}.$(test .$module = .yes && echo so || echo dylib) ${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib) ${libname}.$(test .$module = .yes && echo so || echo dylib)'
-  soname_spec='${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib)'
-  shlibpath_overrides_runpath=yes
-  shlibpath_var=DYLD_LIBRARY_PATH
-  ;;
-
-freebsd1*)
-  dynamic_linker=no
-  ;;
-
-freebsd*)
-  objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
-  version_type=freebsd-$objformat
-  case $version_type in
-    freebsd-elf*)
-      library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so'
-      need_version=no
-      need_lib_prefix=no
-      ;;
-    freebsd-*)
-      library_names_spec='${libname}${release}.so$versuffix $libname.so$versuffix'
-      need_version=yes
-      ;;
-  esac
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_os in
-  freebsd2*)
-    shlibpath_overrides_runpath=yes
-    ;;
-  *)
-    shlibpath_overrides_runpath=no
-    hardcode_into_libs=yes
-    ;;
-  esac
-  ;;
-
-gnu*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so${major} ${libname}.so'
-  soname_spec='${libname}${release}.so$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  hardcode_into_libs=yes
-  ;;
-
-hpux9* | hpux10* | hpux11*)
-  # Give a soname corresponding to the major version so that dld.sl refuses to
-  # link against other versions.
-  dynamic_linker="$host_os dld.sl"
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  shlibpath_var=SHLIB_PATH
-  shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
-  library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl'
-  soname_spec='${libname}${release}.sl$major'
-  # HP-UX runs *really* slowly unless shared libraries are mode 555.
-  postinstall_cmds='chmod 555 $lib'
-  ;;
-
-irix5* | irix6*)
-  version_type=irix
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}.so$major'
-  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so $libname.so'
-  case $host_os in
-  irix5*)
-    libsuff= shlibsuff=
-    ;;
-  *)
-    case $LD in # libtool.m4 will add one of these switches to LD
-    *-32|*"-32 ") libsuff= shlibsuff= libmagic=32-bit;;
-    *-n32|*"-n32 ") libsuff=32 shlibsuff=N32 libmagic=N32;;
-    *-64|*"-64 ") libsuff=64 shlibsuff=64 libmagic=64-bit;;
-    *) libsuff= shlibsuff= libmagic=never-match;;
-    esac
-    ;;
-  esac
-  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
-  shlibpath_overrides_runpath=no
-  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
-  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
-  ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*)
-  dynamic_linker=no
-  ;;
-
-# This must be Linux ELF.
-linux-gnu*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
-  soname_spec='${libname}${release}.so$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  # This implies no fast_install, which is unacceptable.
-  # Some rework will be needed to allow for fast_install
-  # before this can be enabled.
-  hardcode_into_libs=yes
-
-  # We used to test for /lib/ld.so.1 and disable shared libraries on
-  # powerpc, because MkLinux only supported shared libraries with the
-  # GNU dynamic linker.  Since this was broken with cross compilers,
-  # most powerpc-linux boxes support dynamic linking these days and
-  # people can always --disable-shared, the test was removed, and we
-  # assume the GNU/Linux dynamic linker is in use.
-  dynamic_linker='GNU/Linux ld.so'
-  ;;
-
-netbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-    library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
-    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-    dynamic_linker='NetBSD (a.out) ld.so'
-  else
-    library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so ${libname}.so'
-    soname_spec='${libname}${release}.so$major'
-    dynamic_linker='NetBSD ld.elf_so'
-  fi
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  ;;
-
-newsos6)
-  version_type=linux
-  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-openbsd*)
-  version_type=sunos
-  if test "$with_gnu_ld" = yes; then
-    need_lib_prefix=no
-    need_version=no
-  fi
-  library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-os2*)
-  libname_spec='$name'
-  need_lib_prefix=no
-  library_names_spec='$libname.dll $libname.a'
-  dynamic_linker='OS/2 ld.exe'
-  shlibpath_var=LIBPATH
-  ;;
-
-osf3* | osf4* | osf5*)
-  version_type=osf
-  need_version=no
-  soname_spec='${libname}${release}.so'
-  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
-  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
-  ;;
-
-sco3.2v5*)
-  version_type=osf
-  soname_spec='${libname}${release}.so$major'
-  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-solaris*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
-  soname_spec='${libname}${release}.so$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  # ldd complains unless libraries are executable
-  postinstall_cmds='chmod +x $lib'
-  ;;
-
-sunos4*)
-  version_type=sunos
-  library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
-  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  if test "$with_gnu_ld" = yes; then
-    need_lib_prefix=no
-  fi
-  need_version=yes
-  ;;
-
-sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-  version_type=linux
-  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
-  soname_spec='${libname}${release}.so$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_vendor in
-    sni)
-      shlibpath_overrides_runpath=no
-      ;;
-    motorola)
-      need_lib_prefix=no
-      need_version=no
-      shlibpath_overrides_runpath=no
-      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
-      ;;
-  esac
-  ;;
-
-uts4*)
-  version_type=linux
-  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
-  soname_spec='${libname}${release}.so$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-dgux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
-  soname_spec='${libname}${release}.so$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-sysv4*MP*)
-  if test -d /usr/nec ;then
-    version_type=linux
-    library_names_spec='$libname.so.$versuffix $libname.so.$major $libname.so'
-    soname_spec='$libname.so.$major'
-    shlibpath_var=LD_LIBRARY_PATH
-  fi
-  ;;
-
-*)
-  dynamic_linker=no
-  ;;
-esac
-AC_MSG_RESULT([$dynamic_linker])
-test "$dynamic_linker" = no && can_build_shared=no
-
-# Report the final consequences.
-AC_MSG_CHECKING([if libtool supports shared libraries])
-AC_MSG_RESULT([$can_build_shared])
-
-if test "$hardcode_action" = relink; then
-  # Fast installation is not supported
-  enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
-     test "$enable_shared" = no; then
-  # Fast installation is not necessary
-  enable_fast_install=needless
-fi
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
-  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-AC_LIBTOOL_DLOPEN_SELF
-
-if test "$enable_shared" = yes && test "$GCC" = yes; then
-  case $archive_cmds in
-  *'~'*)
-    # FIXME: we may have to deal with multi-command sequences.
-    ;;
-  '$CC '*)
-    # Test whether the compiler implicitly links with -lc since on some
-    # systems, -lgcc has to come before -lc. If gcc already passes -lc
-    # to ld, don't add -lc before -lgcc.
-    AC_MSG_CHECKING([whether -lc should be explicitly linked in])
-    AC_CACHE_VAL([lt_cv_archive_cmds_need_lc],
-    [$rm conftest*
-    echo 'static int dummy;' > conftest.$ac_ext
-
-    if AC_TRY_EVAL(ac_compile); then
-      soname=conftest
-      lib=conftest
-      libobjs=conftest.$ac_objext
-      deplibs=
-      wl=$lt_cv_prog_cc_wl
-      compiler_flags=-v
-      linker_flags=-v
-      verstring=
-      output_objdir=.
-      libname=conftest
-      save_allow_undefined_flag=$allow_undefined_flag
-      allow_undefined_flag=
-      if AC_TRY_EVAL(archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1)
-      then
-       lt_cv_archive_cmds_need_lc=no
-      else
-       lt_cv_archive_cmds_need_lc=yes
-      fi
-      allow_undefined_flag=$save_allow_undefined_flag
-    else
-      cat conftest.err 1>&5
-    fi])
-    AC_MSG_RESULT([$lt_cv_archive_cmds_need_lc])
-    ;;
-  esac
-fi
-need_lc=${lt_cv_archive_cmds_need_lc-yes}
-
-# The second clause should only fire when bootstrapping the
-# libtool distribution, otherwise you forgot to ship ltmain.sh
-# with your package, and you will get complaints that there are
-# no rules to generate ltmain.sh.
-if test -f "$ltmain"; then
-  :
-else
-  # If there is no Makefile yet, we rely on a make rule to execute
-  # `config.status --recheck' to rerun these tests and create the
-  # libtool script then.
-  test -f Makefile && make "$ltmain"
-fi
-
-if test -f "$ltmain"; then
-  trap "$rm \"${ofile}T\"; exit 1" 1 2 15
-  $rm -f "${ofile}T"
-
-  echo creating $ofile
-
-  # Now quote all the things that may contain metacharacters while being
-  # careful not to overquote the AC_SUBSTed values.  We take copies of the
-  # variables and quote the copies for generation of the libtool script.
-  for var in echo old_CC old_CFLAGS \
-    AR AR_FLAGS CC LD LN_S NM SHELL \
-    reload_flag reload_cmds wl \
-    pic_flag link_static_flag no_builtin_flag export_dynamic_flag_spec \
-    thread_safe_flag_spec whole_archive_flag_spec libname_spec \
-    library_names_spec soname_spec \
-    RANLIB old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \
-    old_postuninstall_cmds archive_cmds archive_expsym_cmds postinstall_cmds \
-    postuninstall_cmds extract_expsyms_cmds old_archive_from_expsyms_cmds \
-    old_striplib striplib file_magic_cmd export_symbols_cmds \
-    deplibs_check_method allow_undefined_flag no_undefined_flag \
-    finish_cmds finish_eval global_symbol_pipe global_symbol_to_cdecl \
-    hardcode_libdir_flag_spec hardcode_libdir_separator  \
-    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
-    compiler_c_o compiler_o_lo need_locks exclude_expsyms include_expsyms; do
-
-    case $var in
-    reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \
-    old_postinstall_cmds | old_postuninstall_cmds | \
-    export_symbols_cmds | archive_cmds | archive_expsym_cmds | \
-    extract_expsyms_cmds | old_archive_from_expsyms_cmds | \
-    postinstall_cmds | postuninstall_cmds | \
-    finish_cmds | sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
-      # Double-quote double-evaled strings.
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
-      ;;
-    *)
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
-      ;;
-    esac
-  done
-
-  cat <<__EOF__ > "${ofile}T"
-#! $SHELL
-
-# `$echo "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
-# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
-# NOTE: Changes made to this file will be lost: look at ltmain.sh.
-#
-# Copyright (C) 1996-2000 Free Software Foundation, Inc.
-# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
-#
-# This program 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 of the License, or
-# (at your option) any later version.
-#
-# This program 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Sed that helps us avoid accidentally triggering echo(1) options like -n.
-Xsed="sed -e s/^X//"
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
-
-# ### BEGIN LIBTOOL CONFIG
-
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
-
-# Whether or not to build shared libraries.
-build_libtool_libs=$enable_shared
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$need_lc
-
-# Whether or not to build static libraries.
-build_old_libs=$enable_static
-
-# Whether or not to optimize for fast installation.
-fast_install=$enable_fast_install
-
-# The host system.
-host_alias=$host_alias
-host=$host
-
-# An echo program that does not interpret backslashes.
-echo=$lt_echo
-
-# The archiver.
-AR=$lt_AR
-AR_FLAGS=$lt_AR_FLAGS
-
-# The default C compiler.
-CC=$lt_CC
-
-# Is the compiler the GNU C compiler?
-with_gcc=$GCC
-
-# The linker used to build libraries.
-LD=$lt_LD
-
-# Whether we need hard or soft links.
-LN_S=$lt_LN_S
-
-# A BSD-compatible nm program.
-NM=$lt_NM
-
-# A symbol stripping program
-STRIP=$STRIP
-
-# Used to examine libraries when file_magic_cmd begins "file"
-MAGIC_CMD=$MAGIC_CMD
-
-# Used on cygwin: DLL creation program.
-DLLTOOL="$DLLTOOL"
-
-# Used on cygwin: object dumper.
-OBJDUMP="$OBJDUMP"
-
-# Used on cygwin: assembler.
-AS="$AS"
-
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
-
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag
-reload_cmds=$lt_reload_cmds
-
-# How to pass a linker flag through the compiler.
-wl=$lt_wl
-
-# Object file suffix (normally "o").
-objext="$ac_objext"
-
-# Old archive suffix (normally "a").
-libext="$libext"
-
-# Executable file suffix (normally "").
-exeext="$exeext"
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_pic_flag
-pic_mode=$pic_mode
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_compiler_c_o
-
-# Can we write directly to a .lo ?
-compiler_o_lo=$lt_compiler_o_lo
-
-# Must we lock files when doing compilation ?
-need_locks=$lt_need_locks
-
-# Do we need the lib prefix for modules?
-need_lib_prefix=$need_lib_prefix
-
-# Do we need a version for libraries?
-need_version=$need_version
-
-# Whether dlopen is supported.
-dlopen_support=$enable_dlopen
-
-# Whether dlopen of programs is supported.
-dlopen_self=$enable_dlopen_self
-
-# Whether dlopen of statically linked programs is supported.
-dlopen_self_static=$enable_dlopen_self_static
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_link_static_flag
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_no_builtin_flag
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_whole_archive_flag_spec
-
-# Compiler flag to generate thread-safe objects.
-thread_safe_flag_spec=$lt_thread_safe_flag_spec
-
-# Library versioning type.
-version_type=$version_type
-
-# Format of library name prefix.
-libname_spec=$lt_libname_spec
-
-# List of archive names.  First name is the real one, the rest are links.
-# The last name is the one that the linker finds with -lNAME.
-library_names_spec=$lt_library_names_spec
-
-# The coded name of the library, if different from the real name.
-soname_spec=$lt_soname_spec
-
-# Commands used to build and install an old-style archive.
-RANLIB=$lt_RANLIB
-old_archive_cmds=$lt_old_archive_cmds
-old_postinstall_cmds=$lt_old_postinstall_cmds
-old_postuninstall_cmds=$lt_old_postuninstall_cmds
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
-
-# Commands used to build and install a shared archive.
-archive_cmds=$lt_archive_cmds
-archive_expsym_cmds=$lt_archive_expsym_cmds
-postinstall_cmds=$lt_postinstall_cmds
-postuninstall_cmds=$lt_postuninstall_cmds
-
-# Commands to strip libraries.
-old_striplib=$lt_old_striplib
-striplib=$lt_striplib
-
-# Method to check whether dependent libraries are shared objects.
-deplibs_check_method=$lt_deplibs_check_method
-
-# Command to use when deplibs_check_method == file_magic.
-file_magic_cmd=$lt_file_magic_cmd
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_allow_undefined_flag
-
-# Flag that forces no undefined symbols.
-no_undefined_flag=$lt_no_undefined_flag
-
-# Commands used to finish a libtool library installation in a directory.
-finish_cmds=$lt_finish_cmds
-
-# Same as above, but a single script fragment to be evaled but not shown.
-finish_eval=$lt_finish_eval
-
-# Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe=$lt_global_symbol_pipe
-
-# Transform the output of nm in a proper C declaration
-global_symbol_to_cdecl=$lt_global_symbol_to_cdecl
-
-# This is the shared library runtime path variable.
-runpath_var=$runpath_var
-
-# This is the shared library path variable.
-shlibpath_var=$shlibpath_var
-
-# Is shlibpath searched before the hard-coded library search path?
-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$hardcode_action
-
-# Whether we should hardcode library paths into libraries.
-hardcode_into_libs=$hardcode_into_libs
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
-
-# Whether we need a single -rpath flag with a separated argument.
-hardcode_libdir_separator=$lt_hardcode_libdir_separator
-
-# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the
-# resulting binary.
-hardcode_direct=$hardcode_direct
-
-# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
-# resulting binary.
-hardcode_minus_L=$hardcode_minus_L
-
-# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
-# the resulting binary.
-hardcode_shlibpath_var=$hardcode_shlibpath_var
-
-# Variables whose values should be saved in libtool wrapper scripts and
-# restored at relink time.
-variables_saved_for_relink="$variables_saved_for_relink"
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$link_all_deplibs
-
-# Compile-time system search path for libraries
-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
-
-# Run-time system search path for libraries
-sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
-
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path="$fix_srcfile_path"
-
-# Set to yes if exported symbols are required.
-always_export_symbols=$always_export_symbols
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_export_symbols_cmds
-
-# The commands to extract the exported symbol list from a shared archive.
-extract_expsyms_cmds=$lt_extract_expsyms_cmds
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_exclude_expsyms
-
-# Symbols that must always be exported.
-include_expsyms=$lt_include_expsyms
-
-# ### END LIBTOOL CONFIG
-
-__EOF__
-
-  case $host_os in
-  aix3*)
-    cat <<\EOF >> "${ofile}T"
-
-# AIX sometimes has problems with the GCC collect2 program.  For some
-# reason, if we set the COLLECT_NAMES environment variable, the problems
-# vanish in a puff of smoke.
-if test "X${COLLECT_NAMES+set}" != Xset; then
-  COLLECT_NAMES=
-  export COLLECT_NAMES
-fi
-EOF
-    ;;
-  esac
-
-  case $host_os in
-  cygwin* | mingw* | pw32* | os2*)
-    cat <<'EOF' >> "${ofile}T"
-      # This is a source program that is used to create dlls on Windows
-      # Don't remove nor modify the starting and closing comments
-# /* ltdll.c starts here */
-# #define WIN32_LEAN_AND_MEAN
-# #include <windows.h>
-# #undef WIN32_LEAN_AND_MEAN
-# #include <stdio.h>
-#
-# #ifndef __CYGWIN__
-# #  ifdef __CYGWIN32__
-# #    define __CYGWIN__ __CYGWIN32__
-# #  endif
-# #endif
-#
-# #ifdef __cplusplus
-# extern "C" {
-# #endif
-# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved);
-# #ifdef __cplusplus
-# }
-# #endif
-#
-# #ifdef __CYGWIN__
-# #include <cygwin/cygwin_dll.h>
-# DECLARE_CYGWIN_DLL( DllMain );
-# #endif
-# HINSTANCE __hDllInstance_base;
-#
-# BOOL APIENTRY
-# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved)
-# {
-#   __hDllInstance_base = hInst;
-#   return TRUE;
-# }
-# /* ltdll.c ends here */
-        # This is a source program that is used to create import libraries
-        # on Windows for dlls which lack them. Don't remove nor modify the
-        # starting and closing comments
-# /* impgen.c starts here */
-# /*   Copyright (C) 1999-2000 Free Software Foundation, Inc.
-#
-#  This file is part of GNU libtool.
-#
-#  This program 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 of the License, or
-#  (at your option) any later version.
-#
-#  This program 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#  */
-#
-# #include <stdio.h>           /* for printf() */
-# #include <unistd.h>          /* for open(), lseek(), read() */
-# #include <fcntl.h>           /* for O_RDONLY, O_BINARY */
-# #include <string.h>          /* for strdup() */
-#
-# /* O_BINARY isn't required (or even defined sometimes) under Unix */
-# #ifndef O_BINARY
-# #define O_BINARY 0
-# #endif
-#
-# static unsigned int
-# pe_get16 (fd, offset)
-#      int fd;
-#      int offset;
-# {
-#   unsigned char b[2];
-#   lseek (fd, offset, SEEK_SET);
-#   read (fd, b, 2);
-#   return b[0] + (b[1]<<8);
-# }
-#
-# static unsigned int
-# pe_get32 (fd, offset)
-#     int fd;
-#     int offset;
-# {
-#   unsigned char b[4];
-#   lseek (fd, offset, SEEK_SET);
-#   read (fd, b, 4);
-#   return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
-# }
-#
-# static unsigned int
-# pe_as32 (ptr)
-#      void *ptr;
-# {
-#   unsigned char *b = ptr;
-#   return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
-# }
-#
-# int
-# main (argc, argv)
-#     int argc;
-#     char *argv[];
-# {
-#     int dll;
-#     unsigned long pe_header_offset, opthdr_ofs, num_entries, i;
-#     unsigned long export_rva, export_size, nsections, secptr, expptr;
-#     unsigned long name_rvas, nexp;
-#     unsigned char *expdata, *erva;
-#     char *filename, *dll_name;
-#
-#     filename = argv[1];
-#
-#     dll = open(filename, O_RDONLY|O_BINARY);
-#     if (dll < 1)
-#      return 1;
-#
-#     dll_name = filename;
-#
-#     for (i=0; filename[i]; i++)
-#      if (filename[i] == '/' || filename[i] == '\\'  || filename[i] == ':')
-#          dll_name = filename + i +1;
-#
-#     pe_header_offset = pe_get32 (dll, 0x3c);
-#     opthdr_ofs = pe_header_offset + 4 + 20;
-#     num_entries = pe_get32 (dll, opthdr_ofs + 92);
-#
-#     if (num_entries < 1) /* no exports */
-#      return 1;
-#
-#     export_rva = pe_get32 (dll, opthdr_ofs + 96);
-#     export_size = pe_get32 (dll, opthdr_ofs + 100);
-#     nsections = pe_get16 (dll, pe_header_offset + 4 +2);
-#     secptr = (pe_header_offset + 4 + 20 +
-#            pe_get16 (dll, pe_header_offset + 4 + 16));
-#
-#     expptr = 0;
-#     for (i = 0; i < nsections; i++)
-#     {
-#      char sname[8];
-#      unsigned long secptr1 = secptr + 40 * i;
-#      unsigned long vaddr = pe_get32 (dll, secptr1 + 12);
-#      unsigned long vsize = pe_get32 (dll, secptr1 + 16);
-#      unsigned long fptr = pe_get32 (dll, secptr1 + 20);
-#      lseek(dll, secptr1, SEEK_SET);
-#      read(dll, sname, 8);
-#      if (vaddr <= export_rva && vaddr+vsize > export_rva)
-#      {
-#          expptr = fptr + (export_rva - vaddr);
-#          if (export_rva + export_size > vaddr + vsize)
-#              export_size = vsize - (export_rva - vaddr);
-#          break;
-#      }
-#     }
-#
-#     expdata = (unsigned char*)malloc(export_size);
-#     lseek (dll, expptr, SEEK_SET);
-#     read (dll, expdata, export_size);
-#     erva = expdata - export_rva;
-#
-#     nexp = pe_as32 (expdata+24);
-#     name_rvas = pe_as32 (expdata+32);
-#
-#     printf ("EXPORTS\n");
-#     for (i = 0; i<nexp; i++)
-#     {
-#      unsigned long name_rva = pe_as32 (erva+name_rvas+i*4);
-#      printf ("\t%s @ %ld ;\n", erva+name_rva, 1+ i);
-#     }
-#
-#     return 0;
-# }
-# /* impgen.c ends here */
-
-EOF
-    ;;
-  esac
-
-  # We use sed instead of cat because bash on DJGPP gets confused if
-  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
-  # text mode, it properly converts lines to CR/LF.  This bash problem
-  # is reportedly fixed, but why not run on old versions too?
-  sed '$q' "$ltmain" >> "${ofile}T" || (rm -f "${ofile}T"; exit 1)
-
-  mv -f "${ofile}T" "$ofile" || \
-    (rm -f "$ofile" && cp "${ofile}T" "$ofile" && rm -f "${ofile}T")
-  chmod +x "$ofile"
-fi
-
-])# _LT_AC_LTCONFIG_HACK
-
-# AC_LIBTOOL_DLOPEN - enable checks for dlopen support
-AC_DEFUN([AC_LIBTOOL_DLOPEN], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])])
-
-# AC_LIBTOOL_WIN32_DLL - declare package support for building win32 dll's
-AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_BEFORE([$0], [AC_LIBTOOL_SETUP])])
-
-# AC_ENABLE_SHARED - implement the --enable-shared flag
-# Usage: AC_ENABLE_SHARED[(DEFAULT)]
-#   Where DEFAULT is either `yes' or `no'.  If omitted, it defaults to
-#   `yes'.
-AC_DEFUN([AC_ENABLE_SHARED],
-[define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
-AC_ARG_ENABLE(shared,
-changequote(<<, >>)dnl
-<<  --enable-shared[=PKGS]  build shared libraries [default=>>AC_ENABLE_SHARED_DEFAULT],
-changequote([, ])dnl
-[p=${PACKAGE-default}
-case $enableval in
-yes) enable_shared=yes ;;
-no) enable_shared=no ;;
-*)
-  enable_shared=no
-  # Look at the argument we got.  We use all the common list separators.
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
-  for pkg in $enableval; do
-    if test "X$pkg" = "X$p"; then
-      enable_shared=yes
-    fi
-  done
-  IFS="$ac_save_ifs"
-  ;;
-esac],
-enable_shared=AC_ENABLE_SHARED_DEFAULT)dnl
-])
-
-# AC_DISABLE_SHARED - set the default shared flag to --disable-shared
-AC_DEFUN([AC_DISABLE_SHARED],
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-AC_ENABLE_SHARED(no)])
-
-# AC_ENABLE_STATIC - implement the --enable-static flag
-# Usage: AC_ENABLE_STATIC[(DEFAULT)]
-#   Where DEFAULT is either `yes' or `no'.  If omitted, it defaults to
-#   `yes'.
-AC_DEFUN([AC_ENABLE_STATIC],
-[define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
-AC_ARG_ENABLE(static,
-changequote(<<, >>)dnl
-<<  --enable-static[=PKGS]  build static libraries [default=>>AC_ENABLE_STATIC_DEFAULT],
-changequote([, ])dnl
-[p=${PACKAGE-default}
-case $enableval in
-yes) enable_static=yes ;;
-no) enable_static=no ;;
-*)
-  enable_static=no
-  # Look at the argument we got.  We use all the common list separators.
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
-  for pkg in $enableval; do
-    if test "X$pkg" = "X$p"; then
-      enable_static=yes
-    fi
-  done
-  IFS="$ac_save_ifs"
-  ;;
-esac],
-enable_static=AC_ENABLE_STATIC_DEFAULT)dnl
-])
-
-# AC_DISABLE_STATIC - set the default static flag to --disable-static
-AC_DEFUN([AC_DISABLE_STATIC],
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-AC_ENABLE_STATIC(no)])
-
-
-# AC_ENABLE_FAST_INSTALL - implement the --enable-fast-install flag
-# Usage: AC_ENABLE_FAST_INSTALL[(DEFAULT)]
-#   Where DEFAULT is either `yes' or `no'.  If omitted, it defaults to
-#   `yes'.
-AC_DEFUN([AC_ENABLE_FAST_INSTALL],
-[define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl
-AC_ARG_ENABLE(fast-install,
-changequote(<<, >>)dnl
-<<  --enable-fast-install[=PKGS]  optimize for fast installation [default=>>AC_ENABLE_FAST_INSTALL_DEFAULT],
-changequote([, ])dnl
-[p=${PACKAGE-default}
-case $enableval in
-yes) enable_fast_install=yes ;;
-no) enable_fast_install=no ;;
-*)
-  enable_fast_install=no
-  # Look at the argument we got.  We use all the common list separators.
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
-  for pkg in $enableval; do
-    if test "X$pkg" = "X$p"; then
-      enable_fast_install=yes
-    fi
-  done
-  IFS="$ac_save_ifs"
-  ;;
-esac],
-enable_fast_install=AC_ENABLE_FAST_INSTALL_DEFAULT)dnl
-])
-
-# AC_DISABLE_FAST_INSTALL - set the default to --disable-fast-install
-AC_DEFUN([AC_DISABLE_FAST_INSTALL],
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-AC_ENABLE_FAST_INSTALL(no)])
-
-# AC_LIBTOOL_PICMODE - implement the --with-pic flag
-# Usage: AC_LIBTOOL_PICMODE[(MODE)]
-#   Where MODE is either `yes' or `no'.  If omitted, it defaults to
-#   `both'.
-AC_DEFUN([AC_LIBTOOL_PICMODE],
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-pic_mode=ifelse($#,1,$1,default)])
-
-
-# AC_PATH_TOOL_PREFIX - find a file program which can recognise shared library
-AC_DEFUN([AC_PATH_TOOL_PREFIX],
-[AC_MSG_CHECKING([for $1])
-AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
-[case $MAGIC_CMD in
-  /*)
-  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
-  ;;
-  ?:/*)
-  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path.
-  ;;
-  *)
-  ac_save_MAGIC_CMD="$MAGIC_CMD"
-  IFS="${IFS=   }"; ac_save_ifs="$IFS"; IFS=":"
-dnl $ac_dummy forces splitting on constant user-supplied paths.
-dnl POSIX.2 word splitting is done only on the output of word expansions,
-dnl not every word.  This closes a longstanding sh security hole.
-  ac_dummy="ifelse([$2], , $PATH, [$2])"
-  for ac_dir in $ac_dummy; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$1; then
-      lt_cv_path_MAGIC_CMD="$ac_dir/$1"
-      if test -n "$file_magic_test_file"; then
-       case $deplibs_check_method in
-       "file_magic "*)
-         file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
-         MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-         if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
-           egrep "$file_magic_regex" > /dev/null; then
-           :
-         else
-           cat <<EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such.  This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem.  Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-EOF
-         fi ;;
-       esac
-      fi
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
-  MAGIC_CMD="$ac_save_MAGIC_CMD"
-  ;;
-esac])
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
-  AC_MSG_RESULT($MAGIC_CMD)
-else
-  AC_MSG_RESULT(no)
-fi
-])
-
-
-# AC_PATH_MAGIC - find a file program which can recognise a shared library
-AC_DEFUN([AC_PATH_MAGIC],
-[AC_REQUIRE([AC_CHECK_TOOL_PREFIX])dnl
-AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin:$PATH)
-if test -z "$lt_cv_path_MAGIC_CMD"; then
-  if test -n "$ac_tool_prefix"; then
-    AC_PATH_TOOL_PREFIX(file, /usr/bin:$PATH)
-  else
-    MAGIC_CMD=:
-  fi
-fi
-])
-
-
-# AC_PROG_LD - find the path to the GNU or non-GNU linker
-AC_DEFUN([AC_PROG_LD],
-[AC_ARG_WITH(gnu-ld,
-[  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]],
-test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-ac_prog=ld
-if test "$GCC" = yes; then
-  # Check if gcc -print-prog-name=ld gives a path.
-  AC_MSG_CHECKING([for ld used by GCC])
-  case $host in
-  *-*-mingw*)
-    # gcc leaves a trailing carriage return which upsets mingw
-    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
-  *)
-    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
-  esac
-  case $ac_prog in
-    # Accept absolute paths.
-    [[\\/]* | [A-Za-z]:[\\/]*)]
-      [re_direlt='/[^/][^/]*/\.\./']
-      # Canonicalize the path of ld
-      ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
-      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
-       ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
-      done
-      test -z "$LD" && LD="$ac_prog"
-      ;;
-  "")
-    # If it fails, then pretend we aren't using GCC.
-    ac_prog=ld
-    ;;
-  *)
-    # If it is relative, then search for the first ld in PATH.
-    with_gnu_ld=unknown
-    ;;
-  esac
-elif test "$with_gnu_ld" = yes; then
-  AC_MSG_CHECKING([for GNU ld])
-else
-  AC_MSG_CHECKING([for non-GNU ld])
-fi
-AC_CACHE_VAL(lt_cv_path_LD,
-[if test -z "$LD"; then
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
-  for ac_dir in $PATH; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-      lt_cv_path_LD="$ac_dir/$ac_prog"
-      # Check to see if the program is GNU ld.  I'd rather use --version,
-      # but apparently some GNU ld's only accept -v.
-      # Break only if it was the GNU/non-GNU ld that we prefer.
-      if "$lt_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
-       test "$with_gnu_ld" != no && break
-      else
-       test "$with_gnu_ld" != yes && break
-      fi
-    fi
-  done
-  IFS="$ac_save_ifs"
-else
-  lt_cv_path_LD="$LD" # Let the user override the test with a path.
-fi])
-LD="$lt_cv_path_LD"
-if test -n "$LD"; then
-  AC_MSG_RESULT($LD)
-else
-  AC_MSG_RESULT(no)
-fi
-test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
-AC_PROG_LD_GNU
-])
-
-# AC_PROG_LD_GNU -
-AC_DEFUN([AC_PROG_LD_GNU],
-[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
-[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
-if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
-  lt_cv_prog_gnu_ld=yes
-else
-  lt_cv_prog_gnu_ld=no
-fi])
-with_gnu_ld=$lt_cv_prog_gnu_ld
-])
-
-# AC_PROG_LD_RELOAD_FLAG - find reload flag for linker
-#   -- PORTME Some linkers may need a different reload flag.
-AC_DEFUN([AC_PROG_LD_RELOAD_FLAG],
-[AC_CACHE_CHECK([for $LD option to reload object files], lt_cv_ld_reload_flag,
-[lt_cv_ld_reload_flag='-r'])
-reload_flag=$lt_cv_ld_reload_flag
-test -n "$reload_flag" && reload_flag=" $reload_flag"
-])
-
-# AC_DEPLIBS_CHECK_METHOD - how to check for library dependencies
-#  -- PORTME fill in with the dynamic library characteristics
-AC_DEFUN([AC_DEPLIBS_CHECK_METHOD],
-[AC_CACHE_CHECK([how to recognise dependant libraries],
-lt_cv_deplibs_check_method,
-[lt_cv_file_magic_cmd='$MAGIC_CMD'
-lt_cv_file_magic_test_file=
-lt_cv_deplibs_check_method='unknown'
-# Need to set the preceding variable on all platforms that support
-# interlibrary dependencies.
-# 'none' -- dependencies not supported.
-# `unknown' -- same as none, but documents that we really don't know.
-# 'pass_all' -- all dependencies passed with no checks.
-# 'test_compile' -- check by making test program.
-# ['file_magic [regex]'] -- check by looking for files in library path
-# which responds to the $file_magic_cmd with a given egrep regex.
-# If you have `file' or equivalent on your system and you're not sure
-# whether `pass_all' will *always* work, you probably want this one.
-
-case $host_os in
-aix4* | aix5*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-beos*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-bsdi4*)
-  [lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)']
-  lt_cv_file_magic_cmd='/usr/bin/file -L'
-  lt_cv_file_magic_test_file=/shlib/libc.so
-  ;;
-
-cygwin* | mingw* | pw32*)
-  lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
-  lt_cv_file_magic_cmd='$OBJDUMP -f'
-  ;;
-
-darwin* | rhapsody*)
-  lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library'
-  lt_cv_file_magic_cmd='/usr/bin/file -L'
-  case "$host_os" in
-  rhapsody* | darwin1.[012])
-    lt_cv_file_magic_test_file=`echo /System/Library/Frameworks/System.framework/Versions/*/System | head -1`
-    ;;
-  *) # Darwin 1.3 on
-    lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib'
-    ;;
-  esac
-  ;;
-
-freebsd*)
-  if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
-    case $host_cpu in
-    i*86 )
-      # Not sure whether the presence of OpenBSD here was a mistake.
-      # Let's accept both of them until this is cleared up.
-      [lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[3-9]86 (compact )?demand paged shared library']
-      lt_cv_file_magic_cmd=/usr/bin/file
-      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
-      ;;
-    esac
-  else
-    lt_cv_deplibs_check_method=pass_all
-  fi
-  ;;
-
-gnu*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-hpux10.20*|hpux11*)
-  [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library']
-  lt_cv_file_magic_cmd=/usr/bin/file
-  lt_cv_file_magic_test_file=/usr/lib/libc.sl
-  ;;
-
-irix5* | irix6*)
-  case $host_os in
-  irix5*)
-    # this will be overridden with pass_all, but let us keep it just in case
-    lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1"
-    ;;
-  *)
-    case $LD in
-    *-32|*"-32 ") libmagic=32-bit;;
-    *-n32|*"-n32 ") libmagic=N32;;
-    *-64|*"-64 ") libmagic=64-bit;;
-    *) libmagic=never-match;;
-    esac
-    # this will be overridden with pass_all, but let us keep it just in case
-    [lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[1234] dynamic lib MIPS - version 1"]
-    ;;
-  esac
-  lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*`
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-# This must be Linux ELF.
-linux-gnu*)
-  case $host_cpu in
-  alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* | s390* )
-    lt_cv_deplibs_check_method=pass_all ;;
-  *)
-    # glibc up to 2.1.1 does not perform some relocations on ARM
-    [lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;;]
-  esac
-  lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
-  ;;
-
-netbsd*)
-  if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
-    [lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$']
-  else
-    [lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so$']
-  fi
-  ;;
-
-newos6*)
-  [lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)']
-  lt_cv_file_magic_cmd=/usr/bin/file
-  lt_cv_file_magic_test_file=/usr/lib/libnls.so
-  ;;
-
-osf3* | osf4* | osf5*)
-  # this will be overridden with pass_all, but let us keep it just in case
-  lt_cv_deplibs_check_method='file_magic COFF format alpha shared library'
-  lt_cv_file_magic_test_file=/shlib/libc.so
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-sco3.2v5*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-solaris*)
-  lt_cv_deplibs_check_method=pass_all
-  lt_cv_file_magic_test_file=/lib/libc.so
-  ;;
-
-[sysv5uw[78]* | sysv4*uw2*)]
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-  case $host_vendor in
-  motorola)
-    [lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]']
-    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
-    ;;
-  ncr)
-    lt_cv_deplibs_check_method=pass_all
-    ;;
-  sequent)
-    lt_cv_file_magic_cmd='/bin/file'
-    [lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )']
-    ;;
-  sni)
-    lt_cv_file_magic_cmd='/bin/file'
-    [lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"]
-    lt_cv_file_magic_test_file=/lib/libc.so
-    ;;
-  esac
-  ;;
-esac
-])
-file_magic_cmd=$lt_cv_file_magic_cmd
-deplibs_check_method=$lt_cv_deplibs_check_method
-])
-
-
-# AC_PROG_NM - find the path to a BSD-compatible name lister
-AC_DEFUN([AC_PROG_NM],
-[AC_MSG_CHECKING([for BSD-compatible nm])
-AC_CACHE_VAL(lt_cv_path_NM,
-[if test -n "$NM"; then
-  # Let the user override the test.
-  lt_cv_path_NM="$NM"
-else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
-  for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
-    test -z "$ac_dir" && ac_dir=.
-    tmp_nm=$ac_dir/${ac_tool_prefix}nm
-    if test -f $tmp_nm || test -f $tmp_nm$ac_exeext ; then
-      # Check to see if the nm accepts a BSD-compat flag.
-      # Adding the `sed 1q' prevents false positives on HP-UX, which says:
-      #   nm: unknown option "B" ignored
-      # Tru64's nm complains that /dev/null is an invalid object file
-      if ($tmp_nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep '(/dev/null|Invalid file or object type)' >/dev/null; then
-       lt_cv_path_NM="$tmp_nm -B"
-       break
-      elif ($tmp_nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
-       lt_cv_path_NM="$tmp_nm -p"
-       break
-      else
-       lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
-       continue # so that we can try to find one that supports BSD flags
-      fi
-    fi
-  done
-  IFS="$ac_save_ifs"
-  test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm
-fi])
-NM="$lt_cv_path_NM"
-AC_MSG_RESULT([$NM])
-])
-
-# AC_CHECK_LIBM - check for math library
-AC_DEFUN([AC_CHECK_LIBM],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-LIBM=
-case $host in
-*-*-beos* | *-*-cygwin* | *-*-pw32*)
-  # These system don't have libm
-  ;;
-*-ncr-sysv4.3*)
-  AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
-  AC_CHECK_LIB(m, main, LIBM="$LIBM -lm")
-  ;;
-*)
-  AC_CHECK_LIB(m, main, LIBM="-lm")
-  ;;
-esac
-])
-
-# AC_LIBLTDL_CONVENIENCE[(dir)] - sets LIBLTDL to the link flags for
-# the libltdl convenience library and INCLTDL to the include flags for
-# the libltdl header and adds --enable-ltdl-convenience to the
-# configure arguments.  Note that LIBLTDL and INCLTDL are not
-# AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called.  If DIR is not
-# provided, it is assumed to be `libltdl'.  LIBLTDL will be prefixed
-# with '${top_builddir}/' and INCLTDL will be prefixed with
-# '${top_srcdir}/' (note the single quotes!).  If your package is not
-# flat and you're not using automake, define top_builddir and
-# top_srcdir appropriately in the Makefiles.
-AC_DEFUN([AC_LIBLTDL_CONVENIENCE],
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-  case $enable_ltdl_convenience in
-  no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;;
-  "") enable_ltdl_convenience=yes
-      ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;;
-  esac
-  LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la
-  INCLTDL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
-])
-
-# AC_LIBLTDL_INSTALLABLE[(dir)] - sets LIBLTDL to the link flags for
-# the libltdl installable library and INCLTDL to the include flags for
-# the libltdl header and adds --enable-ltdl-install to the configure
-# arguments.  Note that LIBLTDL and INCLTDL are not AC_SUBSTed, nor is
-# AC_CONFIG_SUBDIRS called.  If DIR is not provided and an installed
-# libltdl is not found, it is assumed to be `libltdl'.  LIBLTDL will
-# be prefixed with '${top_builddir}/' and INCLTDL will be prefixed
-# with '${top_srcdir}/' (note the single quotes!).  If your package is
-# not flat and you're not using automake, define top_builddir and
-# top_srcdir appropriately in the Makefiles.
-# In the future, this macro may have to be called after AC_PROG_LIBTOOL.
-AC_DEFUN([AC_LIBLTDL_INSTALLABLE],
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-  AC_CHECK_LIB(ltdl, main,
-  [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no],
-  [if test x"$enable_ltdl_install" = xno; then
-     AC_MSG_WARN([libltdl not installed, but installation disabled])
-   else
-     enable_ltdl_install=yes
-   fi
-  ])
-  if test x"$enable_ltdl_install" = x"yes"; then
-    ac_configure_args="$ac_configure_args --enable-ltdl-install"
-    LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la
-    INCLTDL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
-  else
-    ac_configure_args="$ac_configure_args --enable-ltdl-install=no"
-    LIBLTDL="-lltdl"
-    INCLTDL=
-  fi
-])
-
-# old names
-AC_DEFUN([AM_PROG_LIBTOOL],   [AC_PROG_LIBTOOL])
-AC_DEFUN([AM_ENABLE_SHARED],  [AC_ENABLE_SHARED($@)])
-AC_DEFUN([AM_ENABLE_STATIC],  [AC_ENABLE_STATIC($@)])
-AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
-AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
-AC_DEFUN([AM_PROG_LD],        [AC_PROG_LD])
-AC_DEFUN([AM_PROG_NM],        [AC_PROG_NM])
-
-# This is just to silence aclocal about the macro not being used
-ifelse([AC_DISABLE_FAST_INSTALL])
-
diff --git a/libs/dbprim/comp_et-sh.in b/libs/dbprim/comp_et-sh.in
deleted file mode 100755 (executable)
index 5d29ca2..0000000
+++ /dev/null
@@ -1,434 +0,0 @@
-#! /bin/sh
-#
-# Copyright (C) 2000 by Kevin L. Mitchell <klmitch@mit.edu>
-#
-# This program 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 of the License, or
-# (at your option) any later version.
-#
-# This program 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-#
-# @(#)$Id: comp_et-sh.in,v 1.1 2003-03-07 02:36:10 klmitch Exp $
-
-com_err=true
-c_file=
-c_name=
-c_dir=
-h_file=
-h_name=
-h_dir=
-dir=
-in_file=
-
-ce_prev=
-for ce_option
-do
-    # if the previous option needed an argument, assign it...
-    if test -n "$ce_prev"; then
-       eval "$ce_prev=\$ce_option"
-       ce_prev=
-       continue
-    fi
-
-    case "$ce_option" in
-    -*=*) ce_optarg=`echo "$ce_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
-    *) ce_optarg= ;;
-    esac
-
-    case "$ce_option" in
-
-     -c_f   |  -c_fi   |  -c_fil   |  -c_file   | \
-     -c-f   |  -c-fi   |  -c-fil   |  -c-file   | \
-    --c_f   | --c_fi   | --c_fil   | --c_file   | \
-    --c-f   | --c-fi   | --c-fil   | --c-file   )
-       ce_prev=c_file ;;
-     -c_f=* |  -c_fi=* |  -c_fil=* |  -c_file=* | \
-     -c-f=* |  -c-fi=* |  -c-fil=* |  -c-file=* | \
-    --c_f=* | --c_fi=* | --c_fil=* | --c_file=* | \
-    --c-f=* | --c-fi=* | --c-fil=* | --c-file=* )
-       c_file="$ce_optarg" ;;
-
-     -c_d   |  -c_di   |  -c_dir   | \
-     -c-d   |  -c-di   |  -c-dir   | \
-    --c_d   | --c_di   | --c_dir   | \
-    --c-d   | --c-di   | --c-dir   )
-       ce_prev=c_dir ;;
-     -c_d=* |  -c_di=* |  -c_dir=* | \
-     -c-d=* |  -c-di=* |  -c-dir=* | \
-    --c_d=* | --c_di=* | --c_dir=* | \
-    --c-d=* | --c-di=* | --c-dir=* )
-       c_dir="$ce_optarg" ;;
-
-     -h_f   |  -h_fi   |  -h_fil   |  -h_file   | \
-     -h-f   |  -h-fi   |  -h-fil   |  -h-file   | \
-    --h_f   | --h_fi   | --h_fil   | --h_file   | \
-    --h-f   | --h-fi   | --h-fil   | --h-file   )
-       ce_prev=h_file ;;
-     -h_f=* |  -h_fi=* |  -h_fil=* |  -h_file=* | \
-     -h-f=* |  -h-fi=* |  -h-fil=* |  -h-file=* | \
-    --h_f=* | --h_fi=* | --h_fil=* | --h_file=* | \
-    --h-f=* | --h-fi=* | --h-fil=* | --h-file=* )
-       h_file="$ce_optarg" ;;
-
-     -h_d   |  -h_di   |  -h_dir   | \
-     -h-d   |  -h-di   |  -h-dir   | \
-    --h_d   | --h_di   | --h_dir   | \
-    --h-d   | --h-di   | --h-dir   )
-       ce_prev=h_dir ;;           
-     -h_d=* |  -h_di=* |  -h_dir=* | \
-     -h-d=* |  -h-di=* |  -h-dir=* | \
-    --h_d=* | --h_di=* | --h_dir=* | \
-    --h-d=* | --h-di=* | --h-dir=* )
-       h_dir="$ce_optarg" ;;
-
-     -d   |  -di   |  -dir   | \
-    --d   | --di   | --dir   )
-       ce_prev=dir ;;
-     -d=* |  -di=* |  -dir=* | \
-    --d=* | --di=* | --dir=* )
-       dir="$ce_optarg" ;;
-
-     -com   |  -com_   |  -com_e   |  -com_er   |  -com_err   | \
-              -com-   |  -com-e   |  -com-er   |  -com-err   | \
-    --com   | --com_   | --com_e   | --com_er   | --com_err   | \
-             --com-   | --com-e   | --com-er   | --com-err   )
-       ce_prev=com_err ;;
-     -com=* |  -com_=* |  -com_e=* |  -com_er=* |  -com_err=* | \
-              -com-=* |  -com-e=* |  -com-er=* |  -com-err=* | \
-    --com=* | --com_=* | --com_e=* | --com_er=* | --com_err=* | \
-             --com-=* | --com-e=* | --com-er=* | --com-err=* )
-       com_err="$ce_optarg" ;;
-
-     -he |  -hel |  -help | \
-    --he | --hel | --help )
-       cat <<EOF
-Usage: $0 [options] <infile>
-Options:
-  --c-file=FILE              Set the output .c file to FILE
-  --h-file=FILE              Set the output .h file to FILE
-  --com-err=OPTION           Selects whether support for com_err should be
-                             used; OPTION may be either true or false
-  --help                     Print this message
-EOF
-       exit 0 ;;
-
-    -*)
-       echo "$0: Invalid option $ce_option; use --help to show usage" 1>&2
-       exit 1 ;;
-
-    *)
-       if test -n "$in_file"; then
-           echo "$0: Can only process one file at a time" 1>&2
-           exit 1
-       fi
-       in_file="$ce_option" ;;
-    esac
-done
-
-if test -n "$ce_prev"; then
-    echo "$0: Missing argument for option; use --help to show usage" 1>&2
-    exit 1
-fi
-
-if test -z "$in_file"; then
-    echo "$0: No input file specified; use --help to show usage" 1>&2
-    exit 1
-fi
-
-if test ! -r "$in_file"; then
-    echo "$0: Unable to read input file $in_file" 1>&2
-    exit 1
-fi
-
-com_err=`echo "$com_err" | tr 'A-Z' 'a-z'`
-
-case "$com_err" in
-t | tr | tru | true | y | ye | yes)
-    com_err=true ;;
-
-f | fa | fal | fals | false | n | no)
-    com_err=false ;;
-
-*)
-    echo "$0: Invalid value for --com-err; use --help to show usage" 1>&2
-    exit 1 ;;
-esac
-
-in_dir=`echo "$in_file" | sed 's%/[^/]*$%%'`
-in_name=`echo "$in_file" | sed -e 's%.*/%%' -e 's/\.et$//'`
-
-if test -z "$dir"; then
-    dir="$in_dir"
-fi
-
-if test -z "$c_dir"; then
-    c_dir="$dir"
-fi
-
-if test -z "$h_dir"; then
-    h_dir="$dir"
-fi
-
-if test "$com_err" = false; then
-    c_file="/dev/null"
-    c_dir=
-elif test -z "$c_file"; then
-    c_file="$c_dir/$in_name.c"
-fi
-
-c_name=`echo "$c_file" | sed 's%.*/%%'`
-
-if test -z "$h_file"; then
-    h_file="$h_dir/$in_name.h"
-fi
-
-h_name=`echo "$h_file" | sed 's%.*/%%'`
-
-@AWK@ -f - "com_err=$com_err" "c_file=$c_file" "c_name=$c_name" \
-                           "h_file=$h_file" "h_name=$h_name" "$in_file" <<\EOF
-BEGIN {
-    char_shift = 64;
-
-    c2n["A"] = 1;   c2n["B"] = 2;   c2n["C"] = 3;   c2n["D"] = 4;
-    c2n["E"] = 5;   c2n["F"] = 6;   c2n["G"] = 7;   c2n["H"] = 8;
-    c2n["I"] = 9;   c2n["J"] = 10;  c2n["K"] = 11;  c2n["L"] = 12;
-    c2n["M"] = 13;  c2n["N"] = 14;  c2n["O"] = 15;  c2n["P"] = 16;
-    c2n["Q"] = 17;  c2n["R"] = 18;  c2n["S"] = 19;  c2n["T"] = 20;
-    c2n["U"] = 21;  c2n["V"] = 22;  c2n["W"] = 23;  c2n["X"] = 24;
-    c2n["Y"] = 25;  c2n["Z"] = 26;  c2n["a"] = 27;  c2n["b"] = 28;
-    c2n["c"] = 29;  c2n["d"] = 30;  c2n["e"] = 31;  c2n["f"] = 32;
-    c2n["g"] = 33;  c2n["h"] = 34;  c2n["i"] = 35;  c2n["j"] = 36;
-    c2n["k"] = 37;  c2n["l"] = 38;  c2n["m"] = 39;  c2n["n"] = 40;
-    c2n["o"] = 41;  c2n["p"] = 42;  c2n["q"] = 43;  c2n["r"] = 44;
-    c2n["s"] = 45;  c2n["t"] = 46;  c2n["u"] = 47;  c2n["v"] = 48;
-    c2n["w"] = 49;  c2n["x"] = 50;  c2n["y"] = 51;  c2n["z"] = 52;
-    c2n["0"] = 53;  c2n["1"] = 54;  c2n["2"] = 55;  c2n["3"] = 56;
-    c2n["4"] = 57;  c2n["5"] = 58;  c2n["6"] = 59;  c2n["7"] = 60;
-    c2n["8"] = 61;  c2n["9"] = 62;  c2n["_"] = 63;
-}
-
-/^#/ { next }
-
-/^[ \t]*(error_table|et)[ \t]+[a-zA-Z][a-zA-Z0-9_]+/ {
-    tab_num = 0;
-    tab_name = $2;
-    mod_base = 1000000;
-
-    for (i = 1; i <= length(tab_name); i++) {
-       tab_num = (tab_num * char_shift) + c2n[substr(tab_name, i, 1)];
-    }
-
-    # Some awk programs don't have enough precision, so we have to play
-    # some games here...
-    base_low = tab_num % mod_base;
-    base_high = int(tab_num / mod_base);
-    base_sign = 1;
-
-    # now shift it over by 8 bits...
-    base_low = base_low * 256;
-    base_high = (base_high * 256) + int(base_low / mod_base);
-    base_low = base_low % mod_base;
-
-    # Next, figure out the sign...
-    if (tab_num > (128 * 256 * 256)) {
-       # subtract 256 * 256 * 256 * 256...
-       sub_low = 256 * 256 * 256 % mod_base;
-       sub_high = int(256 * 256 * 256 / mod_base);
-
-       sub_low = sub_low * 256;
-       sub_high = (sub_high * 256) + int(sub_low / mod_base);
-       sub_low = sub_low % mod_base;
-
-       base_low = sub_low - base_low;
-       base_high = sub_high - base_high;
-       base_sign = -1;
-       # Now correct for base_low being negative...
-       if (base_low < 0) {
-           base_low = base_low + mod_base;
-           base_high--;
-       }
-    }
-
-    curr_low = base_low;
-    curr_high = base_high;
-    curr_sign = base_sign;
-
-    tab_count = 0;
-
-    print "/*" > h_file;
-    print " * " h_name ":" > h_file;
-    print " * This file is automatically generated; please do not edit it." > h_file;
-    print " */" > h_file;
-
-    print "/*" > c_file;
-    print " * " c_name ":" > c_file;
-    print " * This file is automatically generated; please do not edit it." > c_file;
-    print " */" > c_file;
-    print "#if defined(__STDC__) || defined(_MSDOS) || defined(_WIN32)" > c_file;
-    print "#define NOARGS void" > c_file;
-    print "#else" > c_file;
-    print "#define NOARGS" > c_file;
-    print "#define const" > c_file;
-    print "#endif" > c_file;
-    print "" > c_file;
-    print "static const char * const text[] = {" > c_file;
-}
-
-(cont == 1) && ($0 ~ /\\[ \t]*$/) {
-    text = substr($0, 1, length($0) - 1);
-    cont_buf = cont_buf text;
-}
-
-(cont == 1) && ($0 ~ /"[ \t]*$/) {
-    printf "\t%s,\n", cont_buf $0 > c_file;
-    cont = 0;
-}
-
-/^[ \t]*(error_code|ec)[ \t]+[A-Z_0-9]+,[ \t]*$/ {
-    tag = substr($2, 1, length($2) - 1);
-    if (curr_high == 0) {
-       printf "#define %-40s (%dL)\n", tag, curr_sign * curr_low > h_file;
-    } else {
-       printf "#define %-40s (%d%06dL)\n", tag, curr_sign * curr_high , curr_low > h_file;
-    }
-    curr_low += curr_sign;
-    if (curr_low >= mod_base) {
-       curr_low -= mod_base;
-       curr_high++;
-    }
-    if (curr_low < 0) {
-       curr_low += mod_base;
-       curr_high--;
-    }
-
-    tab_count++;
-    skipone = 1;
-    next;
-}
-
-/^[ \t]*(error_code|ec)[ \t]+[A-Z_0-9]+,[ \t]*".*"[ \t]*$/ {
-    tag = substr($2, 1, length($2) - 1);
-    if (curr_high == 0) {
-       printf "#define %-40s (%dL)\n", tag, curr_sign * curr_low > h_file;
-    } else {
-       printf "#define %-40s (%d%06dL)\n", tag, curr_sign * curr_high , curr_low > h_file;
-    }
-    curr_low += curr_sign;
-    if (curr_low >= mod_base) {
-       curr_low -= mod_base;
-       curr_high++;
-    }
-    if (curr_low < 0) {
-       curr_low += mod_base;
-       curr_high--;
-    }
-
-    text = "";
-    for (i = 3; i <= NF; i++) {
-       text = text FS $i;
-    }
-
-    text = substr(text, 2, length(text) - 1);
-    printf "\t%s,\n", text > c_file;
-    tab_count++;
-}
-
-/^[ \t]*(error_code|ec)[ \t]+[A-Z_0-9]+,[ \t]*".*\\[ \t]*$/ {
-    tag = substr($2, 1, length($2) - 1);
-    if (curr_high == 0) {
-       printf "#define %-40s (%dL)\n", tag, curr_sign * curr_low > h_file;
-    } else {
-       printf "#define %-40s (%d%06dL)\n", tag, curr_sign * curr_high , curr_low > h_file;
-    }
-    curr_low += curr_sign;
-    if (curr_low >= mod_base) {
-       curr_low -= mod_base;
-       curr_high++;
-    }
-    if (curr_low < 0) {
-       curr_low += mod_base;
-       curr_high--;
-    }
-
-    text = "";
-    for (i = 3; i <= NF; i++) {
-       text = text FS $i;
-    }
-
-    text = substr(text, 2, length(text) - 2);
-    cont_buf = text;
-    cont++;
-}
-
-/^[ \t]*".*\\[ \t]*$/ {
-    if (skipone) {
-       text = substr($0, 1, length($0) - 1);
-       cont_buf = text;
-       cont++;
-    }
-    skipone = 0;
-}
-
-{
-    if (skipone) {
-       printf "\t%s,\n", $0 > c_file;
-    }
-    skipone = 0;
-}
-
-END {
-    if (com_err == "false") {
-       print "#define initialize_" tab_name "_error_table()" > h_file;
-    } else {
-       print "extern void initialize_" tab_name "_error_table ();" > h_file;
-    }
-
-    if (base_high == 0) {
-       printf "#define ERROR_TABLE_BASE_%s (%dL)\n", tab_name, base_sign * base_low > h_file;
-    } else {
-       printf "#define ERROR_TABLE_BASE_%s (%d%06dL)\n", tab_name, base_sign * base_high, base_low > h_file;
-    }
-    print "" > h_file;
-    print "/* for compatibility with older versions... */" > h_file;
-    print "#define init_" tab_name "_err_tbl initialize_" tab_name "_error_table" > h_file;
-    print "#define " tab_name "_err_base ERROR_TABLE_BASE_" tab_name > h_file;
-
-    print "    0" > c_file;
-    print "};" > c_file;
-    print "" > c_file;
-    print "struct error_table {" > c_file;
-    print "    char const * const * msgs;" > c_file;
-    print "    long base;" > c_file;
-    print "    int n_msgs;" > c_file;
-    print "};" > c_file;
-    print "struct et_list {" > c_file;
-    print "    struct et_list *next;" > c_file;
-    print "    const struct error_table * table;" > c_file;
-    print "};" > c_file;
-    print "extern struct et_list *_et_list;" > c_file;
-    print "" > c_file;
-    if (base_high == 0) {
-       printf "static const struct error_table et = { text, %dL, %d };\n", base_sign * base_low, tab_count > c_file;
-    } else {
-       printf "static const struct error_table et = { text, %d%06dL, %d };\n", base_sign * base_high, base_low, tab_count > c_file;
-    }
-    print "" > c_file;
-    print "static struct et_list link = { 0, 0 };" > c_file;
-    print "" > c_file;
-    print "void initialize_" tab_name "_error_table (NOARGS) {" > c_file;
-    print "    if (!link.table) {" > c_file;
-    print "        link.next = _et_list;" > c_file;
-    print "        link.table = &et;" > c_file;
-    print "        _et_list = &link;" > c_file;
-    print "    }" > c_file;
-    print "}"> c_file;
-}
-EOF
diff --git a/libs/dbprim/config.guess b/libs/dbprim/config.guess
deleted file mode 100755 (executable)
index ba66165..0000000
+++ /dev/null
@@ -1,1371 +0,0 @@
-#! /bin/sh
-# Attempt to guess a canonical system name.
-#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
-#   Free Software Foundation, Inc.
-
-timestamp='2001-04-20'
-
-# This file 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 of the License, or
-# (at your option) any later version.
-#
-# This program 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Written by Per Bothner <bothner@cygnus.com>.
-# Please send patches to <config-patches@gnu.org>.
-#
-# This script attempts to guess a canonical system name similar to
-# config.sub.  If it succeeds, it prints the system name on stdout, and
-# exits with 0.  Otherwise, it exits with 1.
-#
-# The plan is that this can be called by configure scripts if you
-# don't specify an explicit build system type.
-
-me=`echo "$0" | sed -e 's,.*/,,'`
-
-usage="\
-Usage: $0 [OPTION]
-
-Output the configuration name of the system \`$me' is run on.
-
-Operation modes:
-  -h, --help         print this help, then exit
-  -t, --time-stamp   print date of last modification, then exit
-  -v, --version      print version number, then exit
-
-Report bugs and patches to <config-patches@gnu.org>."
-
-version="\
-GNU config.guess ($timestamp)
-
-Originally written by Per Bothner.
-Copyright (C) 1992, 93, 94, 95, 96, 97, 98, 99, 2000
-Free Software Foundation, Inc.
-
-This is free software; see the source for copying conditions.  There is NO
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-
-help="
-Try \`$me --help' for more information."
-
-# Parse command line
-while test $# -gt 0 ; do
-  case $1 in
-    --time-stamp | --time* | -t )
-       echo "$timestamp" ; exit 0 ;;
-    --version | -v )
-       echo "$version" ; exit 0 ;;
-    --help | --h* | -h )
-       echo "$usage"; exit 0 ;;
-    -- )     # Stop option processing
-       shift; break ;;
-    - )        # Use stdin as input.
-       break ;;
-    -* )
-       echo "$me: invalid option $1$help" >&2
-       exit 1 ;;
-    * )
-       break ;;
-  esac
-done
-
-if test $# != 0; then
-  echo "$me: too many arguments$help" >&2
-  exit 1
-fi
-
-
-dummy=dummy-$$
-trap 'rm -f $dummy.c $dummy.o $dummy.rel $dummy; exit 1' 1 2 15
-
-# CC_FOR_BUILD -- compiler used by this script.
-# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
-# use `HOST_CC' if defined, but it is deprecated.
-
-case $CC_FOR_BUILD,$HOST_CC,$CC in
- ,,)    echo "int dummy(){}" > $dummy.c
-       for c in cc gcc c89 ; do
-         ($c $dummy.c -c -o $dummy.o) >/dev/null 2>&1
-         if test $? = 0 ; then
-            CC_FOR_BUILD="$c"; break
-         fi
-       done
-       rm -f $dummy.c $dummy.o $dummy.rel
-       if test x"$CC_FOR_BUILD" = x ; then
-         CC_FOR_BUILD=no_compiler_found
-       fi
-       ;;
- ,,*)   CC_FOR_BUILD=$CC ;;
- ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
-esac
-
-# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
-# (ghazi@noc.rutgers.edu 8/24/94.)
-if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
-       PATH=$PATH:/.attbin ; export PATH
-fi
-
-UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
-UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
-UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
-UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
-
-# Note: order is significant - the case branches are not exclusive.
-
-case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
-    *:NetBSD:*:*)
-       # Netbsd (nbsd) targets should (where applicable) match one or
-       # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
-       # *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
-       # switched to ELF, *-*-netbsd* would select the old
-       # object file format.  This provides both forward
-       # compatibility and a consistent mechanism for selecting the
-       # object file format.
-       # Determine the machine/vendor (is the vendor relevant).
-       case "${UNAME_MACHINE}" in
-           amiga) machine=m68k-unknown ;;
-           arm32) machine=arm-unknown ;;
-           atari*) machine=m68k-atari ;;
-           sun3*) machine=m68k-sun ;;
-           mac68k) machine=m68k-apple ;;
-           macppc) machine=powerpc-apple ;;
-           hp3[0-9][05]) machine=m68k-hp ;;
-           ibmrt|romp-ibm) machine=romp-ibm ;;
-           *) machine=${UNAME_MACHINE}-unknown ;;
-       esac
-       # The Operating System including object format, if it has switched
-       # to ELF recently, or will in the future.
-       case "${UNAME_MACHINE}" in
-           i386|sparc|amiga|arm*|hp300|mvme68k|vax|atari|luna68k|mac68k|news68k|next68k|pc532|sun3*|x68k)
-               if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
-                       | grep __ELF__ >/dev/null
-               then
-                   # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
-                   # Return netbsd for either.  FIX?
-                   os=netbsd
-               else
-                   os=netbsdelf
-               fi
-               ;;
-           *)
-               os=netbsd
-               ;;
-       esac
-       # The OS release
-       release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
-       # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
-       # contains redundant information, the shorter form:
-       # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
-       echo "${machine}-${os}${release}"
-       exit 0 ;;
-    alpha:OSF1:*:*)
-       if test $UNAME_RELEASE = "V4.0"; then
-               UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
-       fi
-       # A Vn.n version is a released version.
-       # A Tn.n version is a released field test version.
-       # A Xn.n version is an unreleased experimental baselevel.
-       # 1.2 uses "1.2" for uname -r.
-       cat <<EOF >$dummy.s
-       .data
-\$Lformat:
-       .byte 37,100,45,37,120,10,0     # "%d-%x\n"
-
-       .text
-       .globl main
-       .align 4
-       .ent main
-main:
-       .frame \$30,16,\$26,0
-       ldgp \$29,0(\$27)
-       .prologue 1
-       .long 0x47e03d80 # implver \$0
-       lda \$2,-1
-       .long 0x47e20c21 # amask \$2,\$1
-       lda \$16,\$Lformat
-       mov \$0,\$17
-       not \$1,\$18
-       jsr \$26,printf
-       ldgp \$29,0(\$26)
-       mov 0,\$16
-       jsr \$26,exit
-       .end main
-EOF
-       $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
-       if test "$?" = 0 ; then
-               case `./$dummy` in
-                       0-0)
-                               UNAME_MACHINE="alpha"
-                               ;;
-                       1-0)
-                               UNAME_MACHINE="alphaev5"
-                               ;;
-                       1-1)
-                               UNAME_MACHINE="alphaev56"
-                               ;;
-                       1-101)
-                               UNAME_MACHINE="alphapca56"
-                               ;;
-                       2-303)
-                               UNAME_MACHINE="alphaev6"
-                               ;;
-                       2-307)
-                               UNAME_MACHINE="alphaev67"
-                               ;;
-               esac
-       fi
-       rm -f $dummy.s $dummy
-       echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
-       exit 0 ;;
-    Alpha\ *:Windows_NT*:*)
-       # How do we know it's Interix rather than the generic POSIX subsystem?
-       # Should we change UNAME_MACHINE based on the output of uname instead
-       # of the specific Alpha model?
-       echo alpha-pc-interix
-       exit 0 ;;
-    21064:Windows_NT:50:3)
-       echo alpha-dec-winnt3.5
-       exit 0 ;;
-    Amiga*:UNIX_System_V:4.0:*)
-       echo m68k-unknown-sysv4
-       exit 0;;
-    amiga:OpenBSD:*:*)
-       echo m68k-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    *:[Aa]miga[Oo][Ss]:*:*)
-       echo ${UNAME_MACHINE}-unknown-amigaos
-       exit 0 ;;
-    arc64:OpenBSD:*:*)
-       echo mips64el-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    arc:OpenBSD:*:*)
-       echo mipsel-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    hkmips:OpenBSD:*:*)
-       echo mips-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    pmax:OpenBSD:*:*)
-       echo mipsel-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    sgi:OpenBSD:*:*)
-       echo mips-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    wgrisc:OpenBSD:*:*)
-       echo mipsel-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    *:OS/390:*:*)
-       echo i370-ibm-openedition
-       exit 0 ;;
-    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
-       echo arm-acorn-riscix${UNAME_RELEASE}
-       exit 0;;
-    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
-       echo hppa1.1-hitachi-hiuxmpp
-       exit 0;;
-    Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
-       # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
-       if test "`(/bin/universe) 2>/dev/null`" = att ; then
-               echo pyramid-pyramid-sysv3
-       else
-               echo pyramid-pyramid-bsd
-       fi
-       exit 0 ;;
-    NILE*:*:*:dcosx)
-       echo pyramid-pyramid-svr4
-       exit 0 ;;
-    sun4H:SunOS:5.*:*)
-       echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-       exit 0 ;;
-    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
-       echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-       exit 0 ;;
-    i86pc:SunOS:5.*:*)
-       echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-       exit 0 ;;
-    sun4*:SunOS:6*:*)
-       # According to config.sub, this is the proper way to canonicalize
-       # SunOS6.  Hard to guess exactly what SunOS6 will be like, but
-       # it's likely to be more like Solaris than SunOS4.
-       echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-       exit 0 ;;
-    sun4*:SunOS:*:*)
-       case "`/usr/bin/arch -k`" in
-           Series*|S4*)
-               UNAME_RELEASE=`uname -v`
-               ;;
-       esac
-       # Japanese Language versions have a version number like `4.1.3-JL'.
-       echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
-       exit 0 ;;
-    sun3*:SunOS:*:*)
-       echo m68k-sun-sunos${UNAME_RELEASE}
-       exit 0 ;;
-    sun*:*:4.2BSD:*)
-       UNAME_RELEASE=`(head -1 /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
-       test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
-       case "`/bin/arch`" in
-           sun3)
-               echo m68k-sun-sunos${UNAME_RELEASE}
-               ;;
-           sun4)
-               echo sparc-sun-sunos${UNAME_RELEASE}
-               ;;
-       esac
-       exit 0 ;;
-    aushp:SunOS:*:*)
-       echo sparc-auspex-sunos${UNAME_RELEASE}
-       exit 0 ;;
-    atari*:OpenBSD:*:*)
-       echo m68k-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    # The situation for MiNT is a little confusing.  The machine name
-    # can be virtually everything (everything which is not
-    # "atarist" or "atariste" at least should have a processor
-    # > m68000).  The system name ranges from "MiNT" over "FreeMiNT"
-    # to the lowercase version "mint" (or "freemint").  Finally
-    # the system name "TOS" denotes a system which is actually not
-    # MiNT.  But MiNT is downward compatible to TOS, so this should
-    # be no problem.
-    atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
-        echo m68k-atari-mint${UNAME_RELEASE}
-       exit 0 ;;
-    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
-       echo m68k-atari-mint${UNAME_RELEASE}
-        exit 0 ;;
-    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
-        echo m68k-atari-mint${UNAME_RELEASE}
-       exit 0 ;;
-    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
-        echo m68k-milan-mint${UNAME_RELEASE}
-        exit 0 ;;
-    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
-        echo m68k-hades-mint${UNAME_RELEASE}
-        exit 0 ;;
-    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
-        echo m68k-unknown-mint${UNAME_RELEASE}
-        exit 0 ;;
-    sun3*:OpenBSD:*:*)
-       echo m68k-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    mac68k:OpenBSD:*:*)
-       echo m68k-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    mvme68k:OpenBSD:*:*)
-       echo m68k-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    mvme88k:OpenBSD:*:*)
-       echo m88k-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    powerpc:machten:*:*)
-       echo powerpc-apple-machten${UNAME_RELEASE}
-       exit 0 ;;
-    RISC*:Mach:*:*)
-       echo mips-dec-mach_bsd4.3
-       exit 0 ;;
-    RISC*:ULTRIX:*:*)
-       echo mips-dec-ultrix${UNAME_RELEASE}
-       exit 0 ;;
-    VAX*:ULTRIX*:*:*)
-       echo vax-dec-ultrix${UNAME_RELEASE}
-       exit 0 ;;
-    2020:CLIX:*:* | 2430:CLIX:*:*)
-       echo clipper-intergraph-clix${UNAME_RELEASE}
-       exit 0 ;;
-    mips:*:*:UMIPS | mips:*:*:RISCos)
-       sed 's/^        //' << EOF >$dummy.c
-#ifdef __cplusplus
-#include <stdio.h>  /* for printf() prototype */
-       int main (int argc, char *argv[]) {
-#else
-       int main (argc, argv) int argc; char *argv[]; {
-#endif
-       #if defined (host_mips) && defined (MIPSEB)
-       #if defined (SYSTYPE_SYSV)
-         printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
-       #endif
-       #if defined (SYSTYPE_SVR4)
-         printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
-       #endif
-       #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
-         printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
-       #endif
-       #endif
-         exit (-1);
-       }
-EOF
-       $CC_FOR_BUILD $dummy.c -o $dummy \
-         && ./$dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
-         && rm -f $dummy.c $dummy && exit 0
-       rm -f $dummy.c $dummy
-       echo mips-mips-riscos${UNAME_RELEASE}
-       exit 0 ;;
-    Motorola:PowerMAX_OS:*:*)
-       echo powerpc-motorola-powermax
-       exit 0 ;;
-    Night_Hawk:Power_UNIX:*:*)
-       echo powerpc-harris-powerunix
-       exit 0 ;;
-    m88k:CX/UX:7*:*)
-       echo m88k-harris-cxux7
-       exit 0 ;;
-    m88k:*:4*:R4*)
-       echo m88k-motorola-sysv4
-       exit 0 ;;
-    m88k:*:3*:R3*)
-       echo m88k-motorola-sysv3
-       exit 0 ;;
-    AViiON:dgux:*:*)
-        # DG/UX returns AViiON for all architectures
-        UNAME_PROCESSOR=`/usr/bin/uname -p`
-       if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
-       then
-           if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
-              [ ${TARGET_BINARY_INTERFACE}x = x ]
-           then
-               echo m88k-dg-dgux${UNAME_RELEASE}
-           else
-               echo m88k-dg-dguxbcs${UNAME_RELEASE}
-           fi
-       else
-           echo i586-dg-dgux${UNAME_RELEASE}
-       fi
-       exit 0 ;;
-    M88*:DolphinOS:*:*)        # DolphinOS (SVR3)
-       echo m88k-dolphin-sysv3
-       exit 0 ;;
-    M88*:*:R3*:*)
-       # Delta 88k system running SVR3
-       echo m88k-motorola-sysv3
-       exit 0 ;;
-    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
-       echo m88k-tektronix-sysv3
-       exit 0 ;;
-    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
-       echo m68k-tektronix-bsd
-       exit 0 ;;
-    *:IRIX*:*:*)
-       echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
-       exit 0 ;;
-    ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
-       echo romp-ibm-aix      # uname -m gives an 8 hex-code CPU id
-       exit 0 ;;              # Note that: echo "'`uname -s`'" gives 'AIX '
-    i*86:AIX:*:*)
-       echo i386-ibm-aix
-       exit 0 ;;
-    ia64:AIX:*:*)
-       if [ -x /usr/bin/oslevel ] ; then
-               IBM_REV=`/usr/bin/oslevel`
-       else
-               IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
-       fi
-       echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
-       exit 0 ;;
-    *:AIX:2:3)
-       if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
-               sed 's/^                //' << EOF >$dummy.c
-               #include <sys/systemcfg.h>
-
-               main()
-                       {
-                       if (!__power_pc())
-                               exit(1);
-                       puts("powerpc-ibm-aix3.2.5");
-                       exit(0);
-                       }
-EOF
-               $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0
-               rm -f $dummy.c $dummy
-               echo rs6000-ibm-aix3.2.5
-       elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
-               echo rs6000-ibm-aix3.2.4
-       else
-               echo rs6000-ibm-aix3.2
-       fi
-       exit 0 ;;
-    *:AIX:*:[45])
-       IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | awk '{ print $1 }'`
-       if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
-               IBM_ARCH=rs6000
-       else
-               IBM_ARCH=powerpc
-       fi
-       if [ -x /usr/bin/oslevel ] ; then
-               IBM_REV=`/usr/bin/oslevel`
-       else
-               IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
-       fi
-       echo ${IBM_ARCH}-ibm-aix${IBM_REV}
-       exit 0 ;;
-    *:AIX:*:*)
-       echo rs6000-ibm-aix
-       exit 0 ;;
-    ibmrt:4.4BSD:*|romp-ibm:BSD:*)
-       echo romp-ibm-bsd4.4
-       exit 0 ;;
-    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
-       echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
-       exit 0 ;;                           # report: romp-ibm BSD 4.3
-    *:BOSX:*:*)
-       echo rs6000-bull-bosx
-       exit 0 ;;
-    DPX/2?00:B.O.S.:*:*)
-       echo m68k-bull-sysv3
-       exit 0 ;;
-    9000/[34]??:4.3bsd:1.*:*)
-       echo m68k-hp-bsd
-       exit 0 ;;
-    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
-       echo m68k-hp-bsd4.4
-       exit 0 ;;
-    9000/[34678]??:HP-UX:*:*)
-       HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
-       case "${UNAME_MACHINE}" in
-           9000/31? )            HP_ARCH=m68000 ;;
-           9000/[34]?? )         HP_ARCH=m68k ;;
-           9000/[678][0-9][0-9])
-              case "${HPUX_REV}" in
-                11.[0-9][0-9])
-                  if [ -x /usr/bin/getconf ]; then
-                    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
-                    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
-                    case "${sc_cpu_version}" in
-                      523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
-                      528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
-                      532)                      # CPU_PA_RISC2_0
-                        case "${sc_kernel_bits}" in
-                          32) HP_ARCH="hppa2.0n" ;;
-                          64) HP_ARCH="hppa2.0w" ;;
-                        esac ;;
-                    esac
-                  fi ;;
-              esac
-              if [ "${HP_ARCH}" = "" ]; then
-              sed 's/^              //' << EOF >$dummy.c
-
-              #define _HPUX_SOURCE
-              #include <stdlib.h>
-              #include <unistd.h>
-
-              int main ()
-              {
-              #if defined(_SC_KERNEL_BITS)
-                  long bits = sysconf(_SC_KERNEL_BITS);
-              #endif
-                  long cpu  = sysconf (_SC_CPU_VERSION);
-
-                  switch (cpu)
-               {
-               case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
-               case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
-               case CPU_PA_RISC2_0:
-              #if defined(_SC_KERNEL_BITS)
-                   switch (bits)
-                       {
-                       case 64: puts ("hppa2.0w"); break;
-                       case 32: puts ("hppa2.0n"); break;
-                       default: puts ("hppa2.0"); break;
-                       } break;
-              #else  /* !defined(_SC_KERNEL_BITS) */
-                   puts ("hppa2.0"); break;
-              #endif
-               default: puts ("hppa1.0"); break;
-               }
-                  exit (0);
-              }
-EOF
-       (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./$dummy`
-       if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi
-       rm -f $dummy.c $dummy
-       fi ;;
-       esac
-       echo ${HP_ARCH}-hp-hpux${HPUX_REV}
-       exit 0 ;;
-    ia64:HP-UX:*:*)
-       HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
-       echo ia64-hp-hpux${HPUX_REV}
-       exit 0 ;;
-    3050*:HI-UX:*:*)
-       sed 's/^        //' << EOF >$dummy.c
-       #include <unistd.h>
-       int
-       main ()
-       {
-         long cpu = sysconf (_SC_CPU_VERSION);
-         /* The order matters, because CPU_IS_HP_MC68K erroneously returns
-            true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct
-            results, however.  */
-         if (CPU_IS_PA_RISC (cpu))
-           {
-             switch (cpu)
-               {
-                 case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
-                 case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
-                 case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
-                 default: puts ("hppa-hitachi-hiuxwe2"); break;
-               }
-           }
-         else if (CPU_IS_HP_MC68K (cpu))
-           puts ("m68k-hitachi-hiuxwe2");
-         else puts ("unknown-hitachi-hiuxwe2");
-         exit (0);
-       }
-EOF
-       $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0
-       rm -f $dummy.c $dummy
-       echo unknown-hitachi-hiuxwe2
-       exit 0 ;;
-    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
-       echo hppa1.1-hp-bsd
-       exit 0 ;;
-    9000/8??:4.3bsd:*:*)
-       echo hppa1.0-hp-bsd
-       exit 0 ;;
-    *9??*:MPE/iX:*:*)
-       echo hppa1.0-hp-mpeix
-       exit 0 ;;
-    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
-       echo hppa1.1-hp-osf
-       exit 0 ;;
-    hp8??:OSF1:*:*)
-       echo hppa1.0-hp-osf
-       exit 0 ;;
-    i*86:OSF1:*:*)
-       if [ -x /usr/sbin/sysversion ] ; then
-           echo ${UNAME_MACHINE}-unknown-osf1mk
-       else
-           echo ${UNAME_MACHINE}-unknown-osf1
-       fi
-       exit 0 ;;
-    parisc*:Lites*:*:*)
-       echo hppa1.1-hp-lites
-       exit 0 ;;
-    hppa*:OpenBSD:*:*)
-       echo hppa-unknown-openbsd
-       exit 0 ;;
-    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
-       echo c1-convex-bsd
-        exit 0 ;;
-    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
-       if getsysinfo -f scalar_acc
-       then echo c32-convex-bsd
-       else echo c2-convex-bsd
-       fi
-        exit 0 ;;
-    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
-       echo c34-convex-bsd
-        exit 0 ;;
-    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
-       echo c38-convex-bsd
-        exit 0 ;;
-    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
-       echo c4-convex-bsd
-        exit 0 ;;
-    CRAY*X-MP:*:*:*)
-       echo xmp-cray-unicos
-        exit 0 ;;
-    CRAY*Y-MP:*:*:*)
-       echo ymp-cray-unicos${UNAME_RELEASE}
-       exit 0 ;;
-    CRAY*[A-Z]90:*:*:*)
-       echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
-       | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
-             -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/
-       exit 0 ;;
-    CRAY*TS:*:*:*)
-       echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-       exit 0 ;;
-    CRAY*T3D:*:*:*)
-       echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-       exit 0 ;;
-    CRAY*T3E:*:*:*)
-       echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-       exit 0 ;;
-    CRAY*SV1:*:*:*)
-       echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-       exit 0 ;;
-    CRAY-2:*:*:*)
-       echo cray2-cray-unicos
-        exit 0 ;;
-    F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
-       FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
-        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
-        FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
-        echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
-        exit 0 ;;
-    hp300:OpenBSD:*:*)
-       echo m68k-unknown-openbsd${UNAME_RELEASE}
-       exit 0 ;;
-    i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
-       echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
-       exit 0 ;;
-    sparc*:BSD/OS:*:*)
-       echo sparc-unknown-bsdi${UNAME_RELEASE}
-       exit 0 ;;
-    *:BSD/OS:*:*)
-       echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
-       exit 0 ;;
-    *:FreeBSD:*:*)
-       echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
-       exit 0 ;;
-    *:OpenBSD:*:*)
-       echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
-       exit 0 ;;
-    i*:CYGWIN*:*)
-       echo ${UNAME_MACHINE}-pc-cygwin
-       exit 0 ;;
-    i*:MINGW*:*)
-       echo ${UNAME_MACHINE}-pc-mingw32
-       exit 0 ;;
-    i*:PW*:*)
-       echo ${UNAME_MACHINE}-pc-pw32
-       exit 0 ;;
-    i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
-       # How do we know it's Interix rather than the generic POSIX subsystem?
-       # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
-       # UNAME_MACHINE based on the output of uname instead of i386?
-       echo i386-pc-interix
-       exit 0 ;;
-    i*:UWIN*:*)
-       echo ${UNAME_MACHINE}-pc-uwin
-       exit 0 ;;
-    p*:CYGWIN*:*)
-       echo powerpcle-unknown-cygwin
-       exit 0 ;;
-    prep*:SunOS:5.*:*)
-       echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-       exit 0 ;;
-    *:GNU:*:*)
-       echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
-       exit 0 ;;
-    i*86:Minix:*:*)
-       echo ${UNAME_MACHINE}-pc-minix
-       exit 0 ;;
-    arm*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
-       exit 0 ;;
-    ia64:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux
-       exit 0 ;;
-    m68*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
-       exit 0 ;;
-    mips:Linux:*:*)
-       cat >$dummy.c <<EOF
-#ifdef __cplusplus
-#include <stdio.h>  /* for printf() prototype */
-int main (int argc, char *argv[]) {
-#else
-int main (argc, argv) int argc; char *argv[]; {
-#endif
-#ifdef __MIPSEB__
-  printf ("%s-unknown-linux-gnu\n", argv[1]);
-#endif
-#ifdef __MIPSEL__
-  printf ("%sel-unknown-linux-gnu\n", argv[1]);
-#endif
-  return 0;
-}
-EOF
-       $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm -f $dummy.c $dummy && exit 0
-       rm -f $dummy.c $dummy
-       ;;
-    ppc:Linux:*:*)
-       # Determine Lib Version
-       cat >$dummy.c <<EOF
-#include <features.h>
-#if defined(__GLIBC__)
-extern char __libc_version[];
-extern char __libc_release[];
-#endif
-main(argc, argv)
-     int argc;
-     char *argv[];
-{
-#if defined(__GLIBC__)
-  printf("%s %s\n", __libc_version, __libc_release);
-#else
-  printf("unknown\n");
-#endif
-  return 0;
-}
-EOF
-       LIBC=""
-       $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null
-       if test "$?" = 0 ; then
-               ./$dummy | grep 1\.99 > /dev/null
-               if test "$?" = 0 ; then LIBC="libc1" ; fi
-       fi
-       rm -f $dummy.c $dummy
-       echo powerpc-unknown-linux-gnu${LIBC}
-       exit 0 ;;
-    alpha:Linux:*:*)
-       cat <<EOF >$dummy.s
-         .data
-         \$Lformat:
-               .byte 37,100,45,37,120,10,0     # "%d-%x\n"
-          .text
-               .globl main
-               .align 4
-               .ent main
-           main:
-               .frame \$30,16,\$26,0
-               ldgp \$29,0(\$27)
-               .prologue 1
-               .long 0x47e03d80 # implver \$0
-               lda \$2,-1
-               .long 0x47e20c21 # amask \$2,\$1
-               lda \$16,\$Lformat
-               mov \$0,\$17
-               not \$1,\$18
-               jsr \$26,printf
-               ldgp \$29,0(\$26)
-               mov 0,\$16
-               jsr \$26,exit
-               .end main
-EOF
-       LIBC=""
-       $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
-       if test "$?" = 0 ; then
-               case `./$dummy` in
-               0-0)    UNAME_MACHINE="alpha" ;;
-               1-0)    UNAME_MACHINE="alphaev5" ;;
-               1-1)    UNAME_MACHINE="alphaev56" ;;
-               1-101)  UNAME_MACHINE="alphapca56" ;;
-               2-303)  UNAME_MACHINE="alphaev6" ;;
-               2-307)  UNAME_MACHINE="alphaev67" ;;
-               esac
-               objdump --private-headers $dummy | \
-                 grep ld.so.1 > /dev/null
-               if test "$?" = 0 ; then
-                       LIBC="libc1"
-               fi
-       fi
-       rm -f $dummy.s $dummy
-       echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
-       exit 0 ;;
-    parisc:Linux:*:* | hppa:Linux:*:*)
-       # Look for CPU level
-       case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
-         PA7*) echo hppa1.1-unknown-linux-gnu ;;
-         PA8*) echo hppa2.0-unknown-linux-gnu ;;
-         *)    echo hppa-unknown-linux-gnu ;;
-       esac
-       exit 0 ;;
-    parisc64:Linux:*:* | hppa64:Linux:*:*)
-       echo hppa64-unknown-linux-gnu
-       exit 0 ;;
-    s390:Linux:*:* | s390x:Linux:*:*)
-       echo ${UNAME_MACHINE}-ibm-linux
-       exit 0 ;;
-    sh*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
-       exit 0 ;;
-    sparc:Linux:*:* | sparc64:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
-       exit 0 ;;
-    x86_64:Linux:*:*)
-       echo x86_64-unknown-linux-gnu
-       exit 0 ;;
-    i*86:Linux:*:*)
-       # The BFD linker knows what the default object file format is, so
-       # first see if it will tell us. cd to the root directory to prevent
-       # problems with other programs or directories called `ld' in the path.
-       ld_supported_emulations=`cd /; ld --help 2>&1 \
-                        | sed -ne '/supported emulations:/!d
-                                   s/[         ][      ]*/ /g
-                                   s/.*supported emulations: *//
-                                   s/ .*//
-                                   p'`
-        case "$ld_supported_emulations" in
-         i*86linux)
-               echo "${UNAME_MACHINE}-pc-linux-gnuaout"
-               exit 0
-               ;;
-         elf_i*86)
-               TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
-               ;;
-         i*86coff)
-               echo "${UNAME_MACHINE}-pc-linux-gnucoff"
-               exit 0
-               ;;
-       esac
-       # Either a pre-BFD a.out linker (linux-gnuoldld)
-       # or one that does not give us useful --help.
-       # GCC wants to distinguish between linux-gnuoldld and linux-gnuaout.
-       # If ld does not provide *any* "supported emulations:"
-       # that means it is gnuoldld.
-       test -z "$ld_supported_emulations" && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0
-       case "${UNAME_MACHINE}" in
-       i*86)
-         VENDOR=pc;
-         ;;
-       *)
-         VENDOR=unknown;
-         ;;
-       esac
-       # Determine whether the default compiler is a.out or elf
-       cat >$dummy.c <<EOF
-#include <features.h>
-#ifdef __cplusplus
-#include <stdio.h>  /* for printf() prototype */
-       int main (int argc, char *argv[]) {
-#else
-       int main (argc, argv) int argc; char *argv[]; {
-#endif
-#ifdef __ELF__
-# ifdef __GLIBC__
-#  if __GLIBC__ >= 2
-    printf ("%s-${VENDOR}-linux-gnu\n", argv[1]);
-#  else
-    printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]);
-#  endif
-# else
-   printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]);
-# endif
-#else
-  printf ("%s-${VENDOR}-linux-gnuaout\n", argv[1]);
-#endif
-  return 0;
-}
-EOF
-       $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm -f $dummy.c $dummy && exit 0
-       rm -f $dummy.c $dummy
-       test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
-       ;;
-# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.  earlier versions
-# are messed up and put the nodename in both sysname and nodename.
-    i*86:DYNIX/ptx:4*:*)
-       echo i386-sequent-sysv4
-       exit 0 ;;
-    i*86:UNIX_SV:4.2MP:2.*)
-        # Unixware is an offshoot of SVR4, but it has its own version
-        # number series starting with 2...
-        # I am not positive that other SVR4 systems won't match this,
-       # I just have to hope.  -- rms.
-        # Use sysv4.2uw... so that sysv4* matches it.
-       echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
-       exit 0 ;;
-    i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
-       UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
-       if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
-               echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
-       else
-               echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
-       fi
-       exit 0 ;;
-    i*86:*:5:7*)
-        # Fixed at (any) Pentium or better
-        UNAME_MACHINE=i586
-        if [ ${UNAME_SYSTEM} = "UnixWare" ] ; then
-           echo ${UNAME_MACHINE}-sco-sysv${UNAME_RELEASE}uw${UNAME_VERSION}
-       else
-           echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE}
-       fi
-       exit 0 ;;
-    i*86:*:3.2:*)
-       if test -f /usr/options/cb.name; then
-               UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
-               echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
-       elif /bin/uname -X 2>/dev/null >/dev/null ; then
-               UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')`
-               (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486
-               (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \
-                       && UNAME_MACHINE=i586
-               (/bin/uname -X|egrep '^Machine.*Pent ?II' >/dev/null) \
-                       && UNAME_MACHINE=i686
-               (/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) \
-                       && UNAME_MACHINE=i686
-               echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
-       else
-               echo ${UNAME_MACHINE}-pc-sysv32
-       fi
-       exit 0 ;;
-    i*86:*DOS:*:*)
-       echo ${UNAME_MACHINE}-pc-msdosdjgpp
-       exit 0 ;;
-    pc:*:*:*)
-       # Left here for compatibility:
-        # uname -m prints for DJGPP always 'pc', but it prints nothing about
-        # the processor, so we play safe by assuming i386.
-       echo i386-pc-msdosdjgpp
-        exit 0 ;;
-    Intel:Mach:3*:*)
-       echo i386-pc-mach3
-       exit 0 ;;
-    paragon:*:*:*)
-       echo i860-intel-osf1
-       exit 0 ;;
-    i860:*:4.*:*) # i860-SVR4
-       if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
-         echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
-       else # Add other i860-SVR4 vendors below as they are discovered.
-         echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
-       fi
-       exit 0 ;;
-    mini*:CTIX:SYS*5:*)
-       # "miniframe"
-       echo m68010-convergent-sysv
-       exit 0 ;;
-    M68*:*:R3V[567]*:*)
-       test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
-    3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0)
-       OS_REL=''
-       test -r /etc/.relid \
-       && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
-       /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-         && echo i486-ncr-sysv4.3${OS_REL} && exit 0
-       /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
-         && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
-    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
-        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-          && echo i486-ncr-sysv4 && exit 0 ;;
-    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
-       echo m68k-unknown-lynxos${UNAME_RELEASE}
-       exit 0 ;;
-    mc68030:UNIX_System_V:4.*:*)
-       echo m68k-atari-sysv4
-       exit 0 ;;
-    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
-       echo i386-unknown-lynxos${UNAME_RELEASE}
-       exit 0 ;;
-    TSUNAMI:LynxOS:2.*:*)
-       echo sparc-unknown-lynxos${UNAME_RELEASE}
-       exit 0 ;;
-    rs6000:LynxOS:2.*:*)
-       echo rs6000-unknown-lynxos${UNAME_RELEASE}
-       exit 0 ;;
-    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
-       echo powerpc-unknown-lynxos${UNAME_RELEASE}
-       exit 0 ;;
-    SM[BE]S:UNIX_SV:*:*)
-       echo mips-dde-sysv${UNAME_RELEASE}
-       exit 0 ;;
-    RM*:ReliantUNIX-*:*:*)
-       echo mips-sni-sysv4
-       exit 0 ;;
-    RM*:SINIX-*:*:*)
-       echo mips-sni-sysv4
-       exit 0 ;;
-    *:SINIX-*:*:*)
-       if uname -p 2>/dev/null >/dev/null ; then
-               UNAME_MACHINE=`(uname -p) 2>/dev/null`
-               echo ${UNAME_MACHINE}-sni-sysv4
-       else
-               echo ns32k-sni-sysv
-       fi
-       exit 0 ;;
-    PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
-                           # says <Richard.M.Bartel@ccMail.Census.GOV>
-        echo i586-unisys-sysv4
-        exit 0 ;;
-    *:UNIX_System_V:4*:FTX*)
-       # From Gerald Hewes <hewes@openmarket.com>.
-       # How about differentiating between stratus architectures? -djm
-       echo hppa1.1-stratus-sysv4
-       exit 0 ;;
-    *:*:*:FTX*)
-       # From seanf@swdc.stratus.com.
-       echo i860-stratus-sysv4
-       exit 0 ;;
-    mc68*:A/UX:*:*)
-       echo m68k-apple-aux${UNAME_RELEASE}
-       exit 0 ;;
-    news*:NEWS-OS:6*:*)
-       echo mips-sony-newsos6
-       exit 0 ;;
-    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
-       if [ -d /usr/nec ]; then
-               echo mips-nec-sysv${UNAME_RELEASE}
-       else
-               echo mips-unknown-sysv${UNAME_RELEASE}
-       fi
-        exit 0 ;;
-    BeBox:BeOS:*:*)    # BeOS running on hardware made by Be, PPC only.
-       echo powerpc-be-beos
-       exit 0 ;;
-    BeMac:BeOS:*:*)    # BeOS running on Mac or Mac clone, PPC only.
-       echo powerpc-apple-beos
-       exit 0 ;;
-    BePC:BeOS:*:*)     # BeOS running on Intel PC compatible.
-       echo i586-pc-beos
-       exit 0 ;;
-    SX-4:SUPER-UX:*:*)
-       echo sx4-nec-superux${UNAME_RELEASE}
-       exit 0 ;;
-    SX-5:SUPER-UX:*:*)
-       echo sx5-nec-superux${UNAME_RELEASE}
-       exit 0 ;;
-    Power*:Rhapsody:*:*)
-       echo powerpc-apple-rhapsody${UNAME_RELEASE}
-       exit 0 ;;
-    *:Rhapsody:*:*)
-       echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
-       exit 0 ;;
-    *:Darwin:*:*)
-       echo `uname -p`-apple-darwin${UNAME_RELEASE}
-       exit 0 ;;
-    *:procnto*:*:* | *:QNX:[0123456789]*:*)
-       if test "${UNAME_MACHINE}" = "x86pc"; then
-               UNAME_MACHINE=pc
-       fi
-       echo `uname -p`-${UNAME_MACHINE}-nto-qnx
-       exit 0 ;;
-    *:QNX:*:4*)
-       echo i386-pc-qnx
-       exit 0 ;;
-    NSR-[KW]:NONSTOP_KERNEL:*:*)
-       echo nsr-tandem-nsk${UNAME_RELEASE}
-       exit 0 ;;
-    *:NonStop-UX:*:*)
-       echo mips-compaq-nonstopux
-       exit 0 ;;
-    BS2000:POSIX*:*:*)
-       echo bs2000-siemens-sysv
-       exit 0 ;;
-    DS/*:UNIX_System_V:*:*)
-       echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
-       exit 0 ;;
-    *:Plan9:*:*)
-       # "uname -m" is not consistent, so use $cputype instead. 386
-       # is converted to i386 for consistency with other x86
-       # operating systems.
-       if test "$cputype" = "386"; then
-           UNAME_MACHINE=i386
-       else
-           UNAME_MACHINE="$cputype"
-       fi
-       echo ${UNAME_MACHINE}-unknown-plan9
-       exit 0 ;;
-    i*86:OS/2:*:*)
-       # If we were able to find `uname', then EMX Unix compatibility
-       # is probably installed.
-       echo ${UNAME_MACHINE}-pc-os2-emx
-       exit 0 ;;
-    *:TOPS-10:*:*)
-       echo pdp10-unknown-tops10
-       exit 0 ;;
-    *:TENEX:*:*)
-       echo pdp10-unknown-tenex
-       exit 0 ;;
-    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
-       echo pdp10-dec-tops20
-       exit 0 ;;
-    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
-       echo pdp10-xkl-tops20
-       exit 0 ;;
-    *:TOPS-20:*:*)
-       echo pdp10-unknown-tops20
-       exit 0 ;;
-    *:ITS:*:*)
-       echo pdp10-unknown-its
-       exit 0 ;;
-esac
-
-#echo '(No uname command or uname output not recognized.)' 1>&2
-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
-
-cat >$dummy.c <<EOF
-#ifdef _SEQUENT_
-# include <sys/types.h>
-# include <sys/utsname.h>
-#endif
-main ()
-{
-#if defined (sony)
-#if defined (MIPSEB)
-  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
-     I don't know....  */
-  printf ("mips-sony-bsd\n"); exit (0);
-#else
-#include <sys/param.h>
-  printf ("m68k-sony-newsos%s\n",
-#ifdef NEWSOS4
-          "4"
-#else
-         ""
-#endif
-         ); exit (0);
-#endif
-#endif
-
-#if defined (__arm) && defined (__acorn) && defined (__unix)
-  printf ("arm-acorn-riscix"); exit (0);
-#endif
-
-#if defined (hp300) && !defined (hpux)
-  printf ("m68k-hp-bsd\n"); exit (0);
-#endif
-
-#if defined (NeXT)
-#if !defined (__ARCHITECTURE__)
-#define __ARCHITECTURE__ "m68k"
-#endif
-  int version;
-  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
-  if (version < 4)
-    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
-  else
-    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
-  exit (0);
-#endif
-
-#if defined (MULTIMAX) || defined (n16)
-#if defined (UMAXV)
-  printf ("ns32k-encore-sysv\n"); exit (0);
-#else
-#if defined (CMU)
-  printf ("ns32k-encore-mach\n"); exit (0);
-#else
-  printf ("ns32k-encore-bsd\n"); exit (0);
-#endif
-#endif
-#endif
-
-#if defined (__386BSD__)
-  printf ("i386-pc-bsd\n"); exit (0);
-#endif
-
-#if defined (sequent)
-#if defined (i386)
-  printf ("i386-sequent-dynix\n"); exit (0);
-#endif
-#if defined (ns32000)
-  printf ("ns32k-sequent-dynix\n"); exit (0);
-#endif
-#endif
-
-#if defined (_SEQUENT_)
-    struct utsname un;
-
-    uname(&un);
-
-    if (strncmp(un.version, "V2", 2) == 0) {
-       printf ("i386-sequent-ptx2\n"); exit (0);
-    }
-    if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
-       printf ("i386-sequent-ptx1\n"); exit (0);
-    }
-    printf ("i386-sequent-ptx\n"); exit (0);
-
-#endif
-
-#if defined (vax)
-# if !defined (ultrix)
-#  include <sys/param.h>
-#  if defined (BSD)
-#   if BSD == 43
-      printf ("vax-dec-bsd4.3\n"); exit (0);
-#   else
-#    if BSD == 199006
-      printf ("vax-dec-bsd4.3reno\n"); exit (0);
-#    else
-      printf ("vax-dec-bsd\n"); exit (0);
-#    endif
-#   endif
-#  else
-    printf ("vax-dec-bsd\n"); exit (0);
-#  endif
-# else
-    printf ("vax-dec-ultrix\n"); exit (0);
-# endif
-#endif
-
-#if defined (alliant) && defined (i860)
-  printf ("i860-alliant-bsd\n"); exit (0);
-#endif
-
-  exit (1);
-}
-EOF
-
-$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm -f $dummy.c $dummy && exit 0
-rm -f $dummy.c $dummy
-
-# Apollos put the system type in the environment.
-
-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
-
-# Convex versions that predate uname can use getsysinfo(1)
-
-if [ -x /usr/convex/getsysinfo ]
-then
-    case `getsysinfo -f cpu_type` in
-    c1*)
-       echo c1-convex-bsd
-       exit 0 ;;
-    c2*)
-       if getsysinfo -f scalar_acc
-       then echo c32-convex-bsd
-       else echo c2-convex-bsd
-       fi
-       exit 0 ;;
-    c34*)
-       echo c34-convex-bsd
-       exit 0 ;;
-    c38*)
-       echo c38-convex-bsd
-       exit 0 ;;
-    c4*)
-       echo c4-convex-bsd
-       exit 0 ;;
-    esac
-fi
-
-cat >&2 <<EOF
-$0: unable to guess system type
-
-This script, last modified $timestamp, has failed to recognize
-the operating system you are using. It is advised that you
-download the most up to date version of the config scripts from
-
-    ftp://ftp.gnu.org/pub/gnu/config/
-
-If the version you run ($0) is already up to date, please
-send the following data and any information you think might be
-pertinent to <config-patches@gnu.org> in order to provide the needed
-information to handle your system.
-
-config.guess timestamp = $timestamp
-
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
-/bin/uname -X     = `(/bin/uname -X) 2>/dev/null`
-
-hostinfo               = `(hostinfo) 2>/dev/null`
-/bin/universe          = `(/bin/universe) 2>/dev/null`
-/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null`
-/bin/arch              = `(/bin/arch) 2>/dev/null`
-/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
-
-UNAME_MACHINE = ${UNAME_MACHINE}
-UNAME_RELEASE = ${UNAME_RELEASE}
-UNAME_SYSTEM  = ${UNAME_SYSTEM}
-UNAME_VERSION = ${UNAME_VERSION}
-EOF
-
-exit 1
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "timestamp='"
-# time-stamp-format: "%:y-%02m-%02d"
-# time-stamp-end: "'"
-# End:
diff --git a/libs/dbprim/config.sub b/libs/dbprim/config.sub
deleted file mode 100755 (executable)
index a06a480..0000000
+++ /dev/null
@@ -1,1362 +0,0 @@
-#! /bin/sh
-# Configuration validation subroutine script.
-#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
-#   Free Software Foundation, Inc.
-
-timestamp='2001-04-20'
-
-# This file is (in principle) common to ALL GNU software.
-# The presence of a machine in this file suggests that SOME GNU software
-# can handle that machine.  It does not imply ALL GNU software can.
-#
-# This file 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 of the License, or
-# (at your option) any later version.
-#
-# This program 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., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
-
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Please send patches to <config-patches@gnu.org>.
-#
-# Configuration subroutine to validate and canonicalize a configuration type.
-# Supply the specified configuration type as an argument.
-# If it is invalid, we print an error message on stderr and exit with code 1.
-# Otherwise, we print the canonical config type on stdout and succeed.
-
-# This file is supposed to be the same for all GNU packages
-# and recognize all the CPU types, system types and aliases
-# that are meaningful with *any* GNU software.
-# Each package is responsible for reporting which valid configurations
-# it does not support.  The user should be able to distinguish
-# a failure to support a valid configuration from a meaningless
-# configuration.
-
-# The goal of this file is to map all the various variations of a given
-# machine specification into a single specification in the form:
-#      CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
-# or in some cases, the newer four-part form:
-#      CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
-# It is wrong to echo any other type of specification.
-
-me=`echo "$0" | sed -e 's,.*/,,'`
-
-usage="\
-Usage: $0 [OPTION] CPU-MFR-OPSYS
-       $0 [OPTION] ALIAS
-
-Canonicalize a configuration name.
-
-Operation modes:
-  -h, --help         print this help, then exit
-  -t, --time-stamp   print date of last modification, then exit
-  -v, --version      print version number, then exit
-
-Report bugs and patches to <config-patches@gnu.org>."
-
-version="\
-GNU config.sub ($timestamp)
-
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
-Free Software Foundation, Inc.
-
-This is free software; see the source for copying conditions.  There is NO
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-
-help="
-Try \`$me --help' for more information."
-
-# Parse command line
-while test $# -gt 0 ; do
-  case $1 in
-    --time-stamp | --time* | -t )
-       echo "$timestamp" ; exit 0 ;;
-    --version | -v )
-       echo "$version" ; exit 0 ;;
-    --help | --h* | -h )
-       echo "$usage"; exit 0 ;;
-    -- )     # Stop option processing
-       shift; break ;;
-    - )        # Use stdin as input.
-       break ;;
-    -* )
-       echo "$me: invalid option $1$help"
-       exit 1 ;;
-
-    *local*)
-       # First pass through any local machine types.
-       echo $1
-       exit 0;;
-
-    * )
-       break ;;
-  esac
-done
-
-case $# in
- 0) echo "$me: missing argument$help" >&2
-    exit 1;;
- 1) ;;
- *) echo "$me: too many arguments$help" >&2
-    exit 1;;
-esac
-
-# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
-# Here we must recognize all the valid KERNEL-OS combinations.
-maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
-case $maybe_os in
-  nto-qnx* | linux-gnu* | storm-chaos* | os2-emx*)
-    os=-$maybe_os
-    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
-    ;;
-  *)
-    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
-    if [ $basic_machine != $1 ]
-    then os=`echo $1 | sed 's/.*-/-/'`
-    else os=; fi
-    ;;
-esac
-
-### Let's recognize common machines as not being operating systems so
-### that things like config.sub decstation-3100 work.  We also
-### recognize some manufacturers as not being operating systems, so we
-### can provide default operating systems below.
-case $os in
-       -sun*os*)
-               # Prevent following clause from handling this invalid input.
-               ;;
-       -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
-       -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
-       -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
-       -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
-       -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
-       -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
-       -apple | -axis)
-               os=
-               basic_machine=$1
-               ;;
-       -sim | -cisco | -oki | -wec | -winbond)
-               os=
-               basic_machine=$1
-               ;;
-       -scout)
-               ;;
-       -wrs)
-               os=-vxworks
-               basic_machine=$1
-               ;;
-       -hiux*)
-               os=-hiuxwe2
-               ;;
-       -sco5)
-               os=-sco3.2v5
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-               ;;
-       -sco4)
-               os=-sco3.2v4
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-               ;;
-       -sco3.2.[4-9]*)
-               os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-               ;;
-       -sco3.2v[4-9]*)
-               # Don't forget version if it is 3.2v4 or newer.
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-               ;;
-       -sco*)
-               os=-sco3.2v2
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-               ;;
-       -udk*)
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-               ;;
-       -isc)
-               os=-isc2.2
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-               ;;
-       -clix*)
-               basic_machine=clipper-intergraph
-               ;;
-       -isc*)
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-               ;;
-       -lynx*)
-               os=-lynxos
-               ;;
-       -ptx*)
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
-               ;;
-       -windowsnt*)
-               os=`echo $os | sed -e 's/windowsnt/winnt/'`
-               ;;
-       -psos*)
-               os=-psos
-               ;;
-       -mint | -mint[0-9]*)
-               basic_machine=m68k-atari
-               os=-mint
-               ;;
-esac
-
-# Decode aliases for certain CPU-COMPANY combinations.
-case $basic_machine in
-       # Recognize the basic CPU types without company name.
-       # Some are omitted here because they have special meanings below.
-       tahoe | i860 | ia64 | m32r | m68k | m68000 | m88k | ns32k | arc \
-               | arm | arme[lb] | arm[bl]e | armv[2345] | armv[345][lb] | strongarm | xscale \
-               | pyramid | mn10200 | mn10300 | tron | a29k \
-               | 580 | i960 | h8300 \
-               | x86 | ppcbe | mipsbe | mipsle | shbe | shle \
-               | hppa | hppa1.0 | hppa1.1 | hppa2.0 | hppa2.0w | hppa2.0n \
-               | hppa64 \
-               | alpha | alphaev[4-8] | alphaev56 | alphapca5[67] \
-               | alphaev6[78] \
-               | we32k | ns16k | clipper | i370 | sh | sh[34] \
-               | powerpc | powerpcle \
-               | 1750a | dsp16xx | pdp10 | pdp11 \
-               | mips16 | mips64 | mipsel | mips64el \
-               | mips64orion | mips64orionel | mipstx39 | mipstx39el \
-               | mips64vr4300 | mips64vr4300el | mips64vr4100 | mips64vr4100el \
-               | mips64vr5000 | miprs64vr5000el | mcore | s390 | s390x \
-               | sparc | sparclet | sparclite | sparc64 | sparcv9 | sparcv9b \
-               | v850 | c4x \
-               | thumb | d10v | d30v | fr30 | avr | openrisc | tic80 \
-               | pj | pjl | h8500)
-               basic_machine=$basic_machine-unknown
-               ;;
-       m6811 | m68hc11 | m6812 | m68hc12)
-               # Motorola 68HC11/12.
-               basic_machine=$basic_machine-unknown
-               os=-none
-               ;;
-       m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | z8k | v70 | w65)
-               ;;
-
-       # We use `pc' rather than `unknown'
-       # because (1) that's what they normally are, and
-       # (2) the word "unknown" tends to confuse beginning users.
-       i*86 | x86_64)
-         basic_machine=$basic_machine-pc
-         ;;
-       # Object if more than one company name word.
-       *-*-*)
-               echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
-               exit 1
-               ;;
-       # Recognize the basic CPU types with company name.
-       # FIXME: clean up the formatting here.
-       vax-* | tahoe-* | i*86-* | i860-* | ia64-* | m32r-* | m68k-* | m68000-* \
-             | m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | c[123]* \
-             | arm-*  | armbe-* | armle-* | armv*-* | strongarm-* | xscale-* \
-             | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \
-             | power-* | none-* | 580-* | cray2-* | h8300-* | h8500-* | i960-* \
-             | xmp-* | ymp-* \
-             | x86-* | ppcbe-* | mipsbe-* | mipsle-* | shbe-* | shle-* \
-             | hppa-* | hppa1.0-* | hppa1.1-* | hppa2.0-* | hppa2.0w-* \
-             | hppa2.0n-* | hppa64-* \
-             | alpha-* | alphaev[4-8]-* | alphaev56-* | alphapca5[67]-* \
-             | alphaev6[78]-* \
-             | we32k-* | cydra-* | ns16k-* | pn-* | np1-* | xps100-* \
-             | clipper-* | orion-* \
-             | sparclite-* | pdp10-* | pdp11-* | sh-* | powerpc-* | powerpcle-* \
-             | sparc64-* | sparcv9-* | sparcv9b-* | sparc86x-* \
-             | mips16-* | mips64-* | mipsel-* \
-             | mips64el-* | mips64orion-* | mips64orionel-* \
-             | mips64vr4100-* | mips64vr4100el-* | mips64vr4300-* | mips64vr4300el-* \
-             | mipstx39-* | mipstx39el-* | mcore-* \
-             | f30[01]-* | f700-* | s390-* | s390x-* | sv1-* | t3e-* \
-             | [cjt]90-* \
-             | m88110-* | m680[01234]0-* | m683?2-* | m68360-* | z8k-* | d10v-* \
-             | thumb-* | v850-* | d30v-* | tic30-* | tic80-* | c30-* | fr30-* \
-             | bs2000-* | tic54x-* | c54x-* | x86_64-* | pj-* | pjl-*)
-               ;;
-       # Recognize the various machine names and aliases which stand
-       # for a CPU type and a company and sometimes even an OS.
-       386bsd)
-               basic_machine=i386-unknown
-               os=-bsd
-               ;;
-       3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
-               basic_machine=m68000-att
-               ;;
-       3b*)
-               basic_machine=we32k-att
-               ;;
-       a29khif)
-               basic_machine=a29k-amd
-               os=-udi
-               ;;
-       adobe68k)
-               basic_machine=m68010-adobe
-               os=-scout
-               ;;
-       alliant | fx80)
-               basic_machine=fx80-alliant
-               ;;
-       altos | altos3068)
-               basic_machine=m68k-altos
-               ;;
-       am29k)
-               basic_machine=a29k-none
-               os=-bsd
-               ;;
-       amdahl)
-               basic_machine=580-amdahl
-               os=-sysv
-               ;;
-       amiga | amiga-*)
-               basic_machine=m68k-unknown
-               ;;
-       amigaos | amigados)
-               basic_machine=m68k-unknown
-               os=-amigaos
-               ;;
-       amigaunix | amix)
-               basic_machine=m68k-unknown
-               os=-sysv4
-               ;;
-       apollo68)
-               basic_machine=m68k-apollo
-               os=-sysv
-               ;;
-       apollo68bsd)
-               basic_machine=m68k-apollo
-               os=-bsd
-               ;;
-       aux)
-               basic_machine=m68k-apple
-               os=-aux
-               ;;
-       balance)
-               basic_machine=ns32k-sequent
-               os=-dynix
-               ;;
-       convex-c1)
-               basic_machine=c1-convex
-               os=-bsd
-               ;;
-       convex-c2)
-               basic_machine=c2-convex
-               os=-bsd
-               ;;
-       convex-c32)
-               basic_machine=c32-convex
-               os=-bsd
-               ;;
-       convex-c34)
-               basic_machine=c34-convex
-               os=-bsd
-               ;;
-       convex-c38)
-               basic_machine=c38-convex
-               os=-bsd
-               ;;
-       cray | ymp)
-               basic_machine=ymp-cray
-               os=-unicos
-               ;;
-       cray2)
-               basic_machine=cray2-cray
-               os=-unicos
-               ;;
-       [cjt]90)
-               basic_machine=${basic_machine}-cray
-               os=-unicos
-               ;;
-       crds | unos)
-               basic_machine=m68k-crds
-               ;;
-       cris | cris-* | etrax*)
-               basic_machine=cris-axis
-               ;;
-       da30 | da30-*)
-               basic_machine=m68k-da30
-               ;;
-       decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
-               basic_machine=mips-dec
-               ;;
-       delta | 3300 | motorola-3300 | motorola-delta \
-             | 3300-motorola | delta-motorola)
-               basic_machine=m68k-motorola
-               ;;
-       delta88)
-               basic_machine=m88k-motorola
-               os=-sysv3
-               ;;
-       dpx20 | dpx20-*)
-               basic_machine=rs6000-bull
-               os=-bosx
-               ;;
-       dpx2* | dpx2*-bull)
-               basic_machine=m68k-bull
-               os=-sysv3
-               ;;
-       ebmon29k)
-               basic_machine=a29k-amd
-               os=-ebmon
-               ;;
-       elxsi)
-               basic_machine=elxsi-elxsi
-               os=-bsd
-               ;;
-       encore | umax | mmax)
-               basic_machine=ns32k-encore
-               ;;
-       es1800 | OSE68k | ose68k | ose | OSE)
-               basic_machine=m68k-ericsson
-               os=-ose
-               ;;
-       fx2800)
-               basic_machine=i860-alliant
-               ;;
-       genix)
-               basic_machine=ns32k-ns
-               ;;
-       gmicro)
-               basic_machine=tron-gmicro
-               os=-sysv
-               ;;
-       go32)
-               basic_machine=i386-pc
-               os=-go32
-               ;;
-       h3050r* | hiux*)
-               basic_machine=hppa1.1-hitachi
-               os=-hiuxwe2
-               ;;
-       h8300hms)
-               basic_machine=h8300-hitachi
-               os=-hms
-               ;;
-       h8300xray)
-               basic_machine=h8300-hitachi
-               os=-xray
-               ;;
-       h8500hms)
-               basic_machine=h8500-hitachi
-               os=-hms
-               ;;
-       harris)
-               basic_machine=m88k-harris
-               os=-sysv3
-               ;;
-       hp300-*)
-               basic_machine=m68k-hp
-               ;;
-       hp300bsd)
-               basic_machine=m68k-hp
-               os=-bsd
-               ;;
-       hp300hpux)
-               basic_machine=m68k-hp
-               os=-hpux
-               ;;
-       hp3k9[0-9][0-9] | hp9[0-9][0-9])
-               basic_machine=hppa1.0-hp
-               ;;
-       hp9k2[0-9][0-9] | hp9k31[0-9])
-               basic_machine=m68000-hp
-               ;;
-       hp9k3[2-9][0-9])
-               basic_machine=m68k-hp
-               ;;
-       hp9k6[0-9][0-9] | hp6[0-9][0-9])
-               basic_machine=hppa1.0-hp
-               ;;
-       hp9k7[0-79][0-9] | hp7[0-79][0-9])
-               basic_machine=hppa1.1-hp
-               ;;
-       hp9k78[0-9] | hp78[0-9])
-               # FIXME: really hppa2.0-hp
-               basic_machine=hppa1.1-hp
-               ;;
-       hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
-               # FIXME: really hppa2.0-hp
-               basic_machine=hppa1.1-hp
-               ;;
-       hp9k8[0-9][13679] | hp8[0-9][13679])
-               basic_machine=hppa1.1-hp
-               ;;
-       hp9k8[0-9][0-9] | hp8[0-9][0-9])
-               basic_machine=hppa1.0-hp
-               ;;
-       hppa-next)
-               os=-nextstep3
-               ;;
-       hppaosf)
-               basic_machine=hppa1.1-hp
-               os=-osf
-               ;;
-       hppro)
-               basic_machine=hppa1.1-hp
-               os=-proelf
-               ;;
-       i370-ibm* | ibm*)
-               basic_machine=i370-ibm
-               ;;
-# I'm not sure what "Sysv32" means.  Should this be sysv3.2?
-       i*86v32)
-               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-               os=-sysv32
-               ;;
-       i*86v4*)
-               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-               os=-sysv4
-               ;;
-       i*86v)
-               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-               os=-sysv
-               ;;
-       i*86sol2)
-               basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-               os=-solaris2
-               ;;
-       i386mach)
-               basic_machine=i386-mach
-               os=-mach
-               ;;
-       i386-vsta | vsta)
-               basic_machine=i386-unknown
-               os=-vsta
-               ;;
-       iris | iris4d)
-               basic_machine=mips-sgi
-               case $os in
-                   -irix*)
-                       ;;
-                   *)
-                       os=-irix4
-                       ;;
-               esac
-               ;;
-       isi68 | isi)
-               basic_machine=m68k-isi
-               os=-sysv
-               ;;
-       m88k-omron*)
-               basic_machine=m88k-omron
-               ;;
-       magnum | m3230)
-               basic_machine=mips-mips
-               os=-sysv
-               ;;
-       merlin)
-               basic_machine=ns32k-utek
-               os=-sysv
-               ;;
-       mingw32)
-               basic_machine=i386-pc
-               os=-mingw32
-               ;;
-       miniframe)
-               basic_machine=m68000-convergent
-               ;;
-       *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
-               basic_machine=m68k-atari
-               os=-mint
-               ;;
-       mipsel*-linux*)
-               basic_machine=mipsel-unknown
-               os=-linux-gnu
-               ;;
-       mips*-linux*)
-               basic_machine=mips-unknown
-               os=-linux-gnu
-               ;;
-       mips3*-*)
-               basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
-               ;;
-       mips3*)
-               basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
-               ;;
-       mmix*)
-               basic_machine=mmix-knuth
-               os=-mmixware
-               ;;
-       monitor)
-               basic_machine=m68k-rom68k
-               os=-coff
-               ;;
-       msdos)
-               basic_machine=i386-pc
-               os=-msdos
-               ;;
-       mvs)
-               basic_machine=i370-ibm
-               os=-mvs
-               ;;
-       ncr3000)
-               basic_machine=i486-ncr
-               os=-sysv4
-               ;;
-       netbsd386)
-               basic_machine=i386-unknown
-               os=-netbsd
-               ;;
-       netwinder)
-               basic_machine=armv4l-rebel
-               os=-linux
-               ;;
-       news | news700 | news800 | news900)
-               basic_machine=m68k-sony
-               os=-newsos
-               ;;
-       news1000)
-               basic_machine=m68030-sony
-               os=-newsos
-               ;;
-       news-3600 | risc-news)
-               basic_machine=mips-sony
-               os=-newsos
-               ;;
-       necv70)
-               basic_machine=v70-nec
-               os=-sysv
-               ;;
-       next | m*-next )
-               basic_machine=m68k-next
-               case $os in
-                   -nextstep* )
-                       ;;
-                   -ns2*)
-                     os=-nextstep2
-                       ;;
-                   *)
-                     os=-nextstep3
-                       ;;
-               esac
-               ;;
-       nh3000)
-               basic_machine=m68k-harris
-               os=-cxux
-               ;;
-       nh[45]000)
-               basic_machine=m88k-harris
-               os=-cxux
-               ;;
-       nindy960)
-               basic_machine=i960-intel
-               os=-nindy
-               ;;
-       mon960)
-               basic_machine=i960-intel
-               os=-mon960
-               ;;
-       nonstopux)
-               basic_machine=mips-compaq
-               os=-nonstopux
-               ;;
-       np1)
-               basic_machine=np1-gould
-               ;;
-       nsr-tandem)
-               basic_machine=nsr-tandem
-               ;;
-       op50n-* | op60c-*)
-               basic_machine=hppa1.1-oki
-               os=-proelf
-               ;;
-       OSE68000 | ose68000)
-               basic_machine=m68000-ericsson
-               os=-ose
-               ;;
-       os68k)
-               basic_machine=m68k-none
-               os=-os68k
-               ;;
-       pa-hitachi)
-               basic_machine=hppa1.1-hitachi
-               os=-hiuxwe2
-               ;;
-       paragon)
-               basic_machine=i860-intel
-               os=-osf
-               ;;
-       pbd)
-               basic_machine=sparc-tti
-               ;;
-       pbb)
-               basic_machine=m68k-tti
-               ;;
-        pc532 | pc532-*)
-               basic_machine=ns32k-pc532
-               ;;
-       pentium | p5 | k5 | k6 | nexgen)
-               basic_machine=i586-pc
-               ;;
-       pentiumpro | p6 | 6x86 | athlon)
-               basic_machine=i686-pc
-               ;;
-       pentiumii | pentium2)
-               basic_machine=i686-pc
-               ;;
-       pentium-* | p5-* | k5-* | k6-* | nexgen-*)
-               basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
-               ;;
-       pentiumpro-* | p6-* | 6x86-* | athlon-*)
-               basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
-               ;;
-       pentiumii-* | pentium2-*)
-               basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
-               ;;
-       pn)
-               basic_machine=pn-gould
-               ;;
-       power)  basic_machine=power-ibm
-               ;;
-       ppc)    basic_machine=powerpc-unknown
-               ;;
-       ppc-*)  basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
-               ;;
-       ppcle | powerpclittle | ppc-le | powerpc-little)
-               basic_machine=powerpcle-unknown
-               ;;
-       ppcle-* | powerpclittle-*)
-               basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
-               ;;
-       ps2)
-               basic_machine=i386-ibm
-               ;;
-       pw32)
-               basic_machine=i586-unknown
-               os=-pw32
-               ;;
-       rom68k)
-               basic_machine=m68k-rom68k
-               os=-coff
-               ;;
-       rm[46]00)
-               basic_machine=mips-siemens
-               ;;
-       rtpc | rtpc-*)
-               basic_machine=romp-ibm
-               ;;
-       sa29200)
-               basic_machine=a29k-amd
-               os=-udi
-               ;;
-       sequent)
-               basic_machine=i386-sequent
-               ;;
-       sh)
-               basic_machine=sh-hitachi
-               os=-hms
-               ;;
-       sparclite-wrs)
-               basic_machine=sparclite-wrs
-               os=-vxworks
-               ;;
-       sps7)
-               basic_machine=m68k-bull
-               os=-sysv2
-               ;;
-       spur)
-               basic_machine=spur-unknown
-               ;;
-       st2000)
-               basic_machine=m68k-tandem
-               ;;
-       stratus)
-               basic_machine=i860-stratus
-               os=-sysv4
-               ;;
-       sun2)
-               basic_machine=m68000-sun
-               ;;
-       sun2os3)
-               basic_machine=m68000-sun
-               os=-sunos3
-               ;;
-       sun2os4)
-               basic_machine=m68000-sun
-               os=-sunos4
-               ;;
-       sun3os3)
-               basic_machine=m68k-sun
-               os=-sunos3
-               ;;
-       sun3os4)
-               basic_machine=m68k-sun
-               os=-sunos4
-               ;;
-       sun4os3)
-               basic_machine=sparc-sun
-               os=-sunos3
-               ;;
-       sun4os4)
-               basic_machine=sparc-sun
-               os=-sunos4
-               ;;
-       sun4sol2)
-               basic_machine=sparc-sun
-               os=-solaris2
-               ;;
-       sun3 | sun3-*)
-               basic_machine=m68k-sun
-               ;;
-       sun4)
-               basic_machine=sparc-sun
-               ;;
-       sun386 | sun386i | roadrunner)
-               basic_machine=i386-sun
-               ;;
-       sv1)
-               basic_machine=sv1-cray
-               os=-unicos
-               ;;
-       symmetry)
-               basic_machine=i386-sequent
-               os=-dynix
-               ;;
-       t3e)
-               basic_machine=t3e-cray
-               os=-unicos
-               ;;
-       tic54x | c54x*)
-               basic_machine=tic54x-unknown
-               os=-coff
-               ;;
-       tx39)
-               basic_machine=mipstx39-unknown
-               ;;
-       tx39el)
-               basic_machine=mipstx39el-unknown
-               ;;
-       tower | tower-32)
-               basic_machine=m68k-ncr
-               ;;
-       udi29k)
-               basic_machine=a29k-amd
-               os=-udi
-               ;;
-       ultra3)
-               basic_machine=a29k-nyu
-               os=-sym1
-               ;;
-       v810 | necv810)
-               basic_machine=v810-nec
-               os=-none
-               ;;
-       vaxv)
-               basic_machine=vax-dec
-               os=-sysv
-               ;;
-       vms)
-               basic_machine=vax-dec
-               os=-vms
-               ;;
-       vpp*|vx|vx-*)
-               basic_machine=f301-fujitsu
-               ;;
-       vxworks960)
-               basic_machine=i960-wrs
-               os=-vxworks
-               ;;
-       vxworks68)
-               basic_machine=m68k-wrs
-               os=-vxworks
-               ;;
-       vxworks29k)
-               basic_machine=a29k-wrs
-               os=-vxworks
-               ;;
-       w65*)
-               basic_machine=w65-wdc
-               os=-none
-               ;;
-       w89k-*)
-               basic_machine=hppa1.1-winbond
-               os=-proelf
-               ;;
-       xmp)
-               basic_machine=xmp-cray
-               os=-unicos
-               ;;
-        xps | xps100)
-               basic_machine=xps100-honeywell
-               ;;
-       z8k-*-coff)
-               basic_machine=z8k-unknown
-               os=-sim
-               ;;
-       none)
-               basic_machine=none-none
-               os=-none
-               ;;
-
-# Here we handle the default manufacturer of certain CPU types.  It is in
-# some cases the only manufacturer, in others, it is the most popular.
-       w89k)
-               basic_machine=hppa1.1-winbond
-               ;;
-       op50n)
-               basic_machine=hppa1.1-oki
-               ;;
-       op60c)
-               basic_machine=hppa1.1-oki
-               ;;
-       mips)
-               if [ x$os = x-linux-gnu ]; then
-                       basic_machine=mips-unknown
-               else
-                       basic_machine=mips-mips
-               fi
-               ;;
-       romp)
-               basic_machine=romp-ibm
-               ;;
-       rs6000)
-               basic_machine=rs6000-ibm
-               ;;
-       vax)
-               basic_machine=vax-dec
-               ;;
-       pdp10)
-               # there are many clones, so DEC is not a safe bet
-               basic_machine=pdp10-unknown
-               ;;
-       pdp11)
-               basic_machine=pdp11-dec
-               ;;
-       we32k)
-               basic_machine=we32k-att
-               ;;
-       sh3 | sh4)
-               basic_machine=sh-unknown
-               ;;
-       sparc | sparcv9 | sparcv9b)
-               basic_machine=sparc-sun
-               ;;
-        cydra)
-               basic_machine=cydra-cydrome
-               ;;
-       orion)
-               basic_machine=orion-highlevel
-               ;;
-       orion105)
-               basic_machine=clipper-highlevel
-               ;;
-       mac | mpw | mac-mpw)
-               basic_machine=m68k-apple
-               ;;
-       pmac | pmac-mpw)
-               basic_machine=powerpc-apple
-               ;;
-       c4x*)
-               basic_machine=c4x-none
-               os=-coff
-               ;;
-       *-unknown)
-               # Make sure to match an already-canonicalized machine name.
-               ;;
-       *)
-               echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
-               exit 1
-               ;;
-esac
-
-# Here we canonicalize certain aliases for manufacturers.
-case $basic_machine in
-       *-digital*)
-               basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
-               ;;
-       *-commodore*)
-               basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
-               ;;
-       *)
-               ;;
-esac
-
-# Decode manufacturer-specific aliases for certain operating systems.
-
-if [ x"$os" != x"" ]
-then
-case $os in
-        # First match some system type aliases
-        # that might get confused with valid system types.
-       # -solaris* is a basic system type, with this one exception.
-       -solaris1 | -solaris1.*)
-               os=`echo $os | sed -e 's|solaris1|sunos4|'`
-               ;;
-       -solaris)
-               os=-solaris2
-               ;;
-       -svr4*)
-               os=-sysv4
-               ;;
-       -unixware*)
-               os=-sysv4.2uw
-               ;;
-       -gnu/linux*)
-               os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
-               ;;
-       # First accept the basic system types.
-       # The portable systems comes first.
-       # Each alternative MUST END IN A *, to match a version number.
-       # -sysv* is not here because it comes later, after sysvr4.
-       -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
-             | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
-             | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
-             | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
-             | -aos* \
-             | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
-             | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
-             | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \
-             | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
-             | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
-             | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
-             | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
-             | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
-             | -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \
-             | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
-             | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* | -os2*)
-       # Remember, each alternative MUST END IN *, to match a version number.
-               ;;
-       -qnx*)
-               case $basic_machine in
-                   x86-* | i*86-*)
-                       ;;
-                   *)
-                       os=-nto$os
-                       ;;
-               esac
-               ;;
-       -nto*)
-               os=-nto-qnx
-               ;;
-       -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
-             | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
-             | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
-               ;;
-       -mac*)
-               os=`echo $os | sed -e 's|mac|macos|'`
-               ;;
-       -linux*)
-               os=`echo $os | sed -e 's|linux|linux-gnu|'`
-               ;;
-       -sunos5*)
-               os=`echo $os | sed -e 's|sunos5|solaris2|'`
-               ;;
-       -sunos6*)
-               os=`echo $os | sed -e 's|sunos6|solaris3|'`
-               ;;
-       -opened*)
-               os=-openedition
-               ;;
-       -wince*)
-               os=-wince
-               ;;
-       -osfrose*)
-               os=-osfrose
-               ;;
-       -osf*)
-               os=-osf
-               ;;
-       -utek*)
-               os=-bsd
-               ;;
-       -dynix*)
-               os=-bsd
-               ;;
-       -acis*)
-               os=-aos
-               ;;
-       -386bsd)
-               os=-bsd
-               ;;
-       -ctix* | -uts*)
-               os=-sysv
-               ;;
-       -ns2 )
-               os=-nextstep2
-               ;;
-       -nsk*)
-               os=-nsk
-               ;;
-       # Preserve the version number of sinix5.
-       -sinix5.*)
-               os=`echo $os | sed -e 's|sinix|sysv|'`
-               ;;
-       -sinix*)
-               os=-sysv4
-               ;;
-       -triton*)
-               os=-sysv3
-               ;;
-       -oss*)
-               os=-sysv3
-               ;;
-       -svr4)
-               os=-sysv4
-               ;;
-       -svr3)
-               os=-sysv3
-               ;;
-       -sysvr4)
-               os=-sysv4
-               ;;
-       # This must come after -sysvr4.
-       -sysv*)
-               ;;
-       -ose*)
-               os=-ose
-               ;;
-       -es1800*)
-               os=-ose
-               ;;
-       -xenix)
-               os=-xenix
-               ;;
-        -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
-               os=-mint
-               ;;
-       -none)
-               ;;
-       *)
-               # Get rid of the `-' at the beginning of $os.
-               os=`echo $os | sed 's/[^-]*-//'`
-               echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
-               exit 1
-               ;;
-esac
-else
-
-# Here we handle the default operating systems that come with various machines.
-# The value should be what the vendor currently ships out the door with their
-# machine or put another way, the most popular os provided with the machine.
-
-# Note that if you're going to try to match "-MANUFACTURER" here (say,
-# "-sun"), then you have to tell the case statement up towards the top
-# that MANUFACTURER isn't an operating system.  Otherwise, code above
-# will signal an error saying that MANUFACTURER isn't an operating
-# system, and we'll never get to this point.
-
-case $basic_machine in
-       *-acorn)
-               os=-riscix1.2
-               ;;
-       arm*-rebel)
-               os=-linux
-               ;;
-       arm*-semi)
-               os=-aout
-               ;;
-       pdp10-*)
-               os=-tops20
-               ;;
-        pdp11-*)
-               os=-none
-               ;;
-       *-dec | vax-*)
-               os=-ultrix4.2
-               ;;
-       m68*-apollo)
-               os=-domain
-               ;;
-       i386-sun)
-               os=-sunos4.0.2
-               ;;
-       m68000-sun)
-               os=-sunos3
-               # This also exists in the configure program, but was not the
-               # default.
-               # os=-sunos4
-               ;;
-       m68*-cisco)
-               os=-aout
-               ;;
-       mips*-cisco)
-               os=-elf
-               ;;
-       mips*-*)
-               os=-elf
-               ;;
-       *-tti)  # must be before sparc entry or we get the wrong os.
-               os=-sysv3
-               ;;
-       sparc-* | *-sun)
-               os=-sunos4.1.1
-               ;;
-       *-be)
-               os=-beos
-               ;;
-       *-ibm)
-               os=-aix
-               ;;
-       *-wec)
-               os=-proelf
-               ;;
-       *-winbond)
-               os=-proelf
-               ;;
-       *-oki)
-               os=-proelf
-               ;;
-       *-hp)
-               os=-hpux
-               ;;
-       *-hitachi)
-               os=-hiux
-               ;;
-       i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
-               os=-sysv
-               ;;
-       *-cbm)
-               os=-amigaos
-               ;;
-       *-dg)
-               os=-dgux
-               ;;
-       *-dolphin)
-               os=-sysv3
-               ;;
-       m68k-ccur)
-               os=-rtu
-               ;;
-       m88k-omron*)
-               os=-luna
-               ;;
-       *-next )
-               os=-nextstep
-               ;;
-       *-sequent)
-               os=-ptx
-               ;;
-       *-crds)
-               os=-unos
-               ;;
-       *-ns)
-               os=-genix
-               ;;
-       i370-*)
-               os=-mvs
-               ;;
-       *-next)
-               os=-nextstep3
-               ;;
-        *-gould)
-               os=-sysv
-               ;;
-        *-highlevel)
-               os=-bsd
-               ;;
-       *-encore)
-               os=-bsd
-               ;;
-        *-sgi)
-               os=-irix
-               ;;
-        *-siemens)
-               os=-sysv4
-               ;;
-       *-masscomp)
-               os=-rtu
-               ;;
-       f30[01]-fujitsu | f700-fujitsu)
-               os=-uxpv
-               ;;
-       *-rom68k)
-               os=-coff
-               ;;
-       *-*bug)
-               os=-coff
-               ;;
-       *-apple)
-               os=-macos
-               ;;
-       *-atari*)
-               os=-mint
-               ;;
-       *)
-               os=-none
-               ;;
-esac
-fi
-
-# Here we handle the case where we know the os, and the CPU type, but not the
-# manufacturer.  We pick the logical manufacturer.
-vendor=unknown
-case $basic_machine in
-       *-unknown)
-               case $os in
-                       -riscix*)
-                               vendor=acorn
-                               ;;
-                       -sunos*)
-                               vendor=sun
-                               ;;
-                       -aix*)
-                               vendor=ibm
-                               ;;
-                       -beos*)
-                               vendor=be
-                               ;;
-                       -hpux*)
-                               vendor=hp
-                               ;;
-                       -mpeix*)
-                               vendor=hp
-                               ;;
-                       -hiux*)
-                               vendor=hitachi
-                               ;;
-                       -unos*)
-                               vendor=crds
-                               ;;
-                       -dgux*)
-                               vendor=dg
-                               ;;
-                       -luna*)
-                               vendor=omron
-                               ;;
-                       -genix*)
-                               vendor=ns
-                               ;;
-                       -mvs* | -opened*)
-                               vendor=ibm
-                               ;;
-                       -ptx*)
-                               vendor=sequent
-                               ;;
-                       -vxsim* | -vxworks*)
-                               vendor=wrs
-                               ;;
-                       -aux*)
-                               vendor=apple
-                               ;;
-                       -hms*)
-                               vendor=hitachi
-                               ;;
-                       -mpw* | -macos*)
-                               vendor=apple
-                               ;;
-                       -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
-                               vendor=atari
-                               ;;
-               esac
-               basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
-               ;;
-esac
-
-echo $basic_machine$os
-exit 0
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "timestamp='"
-# time-stamp-format: "%:y-%02m-%02d"
-# time-stamp-end: "'"
-# End:
diff --git a/libs/dbprim/configure b/libs/dbprim/configure
deleted file mode 100755 (executable)
index c950819..0000000
+++ /dev/null
@@ -1,5440 +0,0 @@
-#! /bin/sh
-
-# Guess values for system-dependent variables and create Makefiles.
-# Generated automatically using autoconf version 2.13 
-# Copyright (C) 1992, 93, 94, 95, 96 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:
-ac_help="$ac_help
-  --enable-shared[=PKGS]  build shared libraries [default=yes]"
-ac_help="$ac_help
-  --enable-static[=PKGS]  build static libraries [default=yes]"
-ac_help="$ac_help
-  --enable-fast-install[=PKGS]  optimize for fast installation [default=yes]"
-ac_help="$ac_help
-  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]"
-
-# Find the correct PATH separator.  Usually this is `:', but
-# DJGPP uses `;' like DOS.
-if test "X${PATH_SEPARATOR+set}" != Xset; then
-  UNAME=${UNAME-`uname 2>/dev/null`}
-  case X$UNAME in
-    *-DOS) lt_cv_sys_path_separator=';' ;;
-    *)     lt_cv_sys_path_separator=':' ;;
-  esac
-fi
-
-
-# Check that we are running under the correct shell.
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-case X$ECHO in
-X*--fallback-echo)
-  # Remove one level of quotation (which was required for Make).
-  ECHO=`echo "$ECHO" | sed 's,\\\\\$\\$0,'$0','`
-  ;;
-esac
-
-echo=${ECHO-echo}
-if test "X$1" = X--no-reexec; then
-  # Discard the --no-reexec flag, and continue.
-  shift
-elif test "X$1" = X--fallback-echo; then
-  # Avoid inline document here, it may be left over
-  :
-elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
-  # Yippee, $echo works!
-  :
-else
-  # Restart under the correct shell.
-  exec $SHELL "$0" --no-reexec ${1+"$@"}
-fi
-
-if test "X$1" = X--fallback-echo; then
-  # used as fallback echo
-  shift
-  cat <<EOF
-
-EOF
-  exit 0
-fi
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
-
-if test -z "$ECHO"; then
-if test "X${echo_test_string+set}" != Xset; then
-# find a string as large as possible, as long as the shell can cope with it
-  for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do
-    # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
-    if (echo_test_string="`eval $cmd`") 2>/dev/null &&
-       echo_test_string="`eval $cmd`" &&
-       (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null
-    then
-      break
-    fi
-  done
-fi
-
-if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
-   echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
-   test "X$echo_testing_string" = "X$echo_test_string"; then
-  :
-else
-  # The Solaris, AIX, and Digital Unix default echo programs unquote
-  # backslashes.  This makes it impossible to quote backslashes using
-  #   echo "$something" | sed 's/\\/\\\\/g'
-  #
-  # So, first we look for a working echo in the user's PATH.
-
-  IFS="${IFS=  }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
-  for dir in $PATH /usr/ucb; do
-    if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
-       test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
-       echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
-       test "X$echo_testing_string" = "X$echo_test_string"; then
-      echo="$dir/echo"
-      break
-    fi
-  done
-  IFS="$save_ifs"
-
-  if test "X$echo" = Xecho; then
-    # We didn't find a better echo, so look for alternatives.
-    if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' &&
-       echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` &&
-       test "X$echo_testing_string" = "X$echo_test_string"; then
-      # This shell has a builtin print -r that does the trick.
-      echo='print -r'
-    elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) &&
-        test "X$CONFIG_SHELL" != X/bin/ksh; then
-      # If we have ksh, try running configure again with it.
-      ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
-      export ORIGINAL_CONFIG_SHELL
-      CONFIG_SHELL=/bin/ksh
-      export CONFIG_SHELL
-      exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"}
-    else
-      # Try using printf.
-      echo='printf %s\n'
-      if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
-        echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
-        test "X$echo_testing_string" = "X$echo_test_string"; then
-       # Cool, printf works
-       :
-      elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
-          test "X$echo_testing_string" = 'X\t' &&
-          echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
-          test "X$echo_testing_string" = "X$echo_test_string"; then
-       CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
-       export CONFIG_SHELL
-       SHELL="$CONFIG_SHELL"
-       export SHELL
-       echo="$CONFIG_SHELL $0 --fallback-echo"
-      elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
-          test "X$echo_testing_string" = 'X\t' &&
-          echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
-          test "X$echo_testing_string" = "X$echo_test_string"; then
-       echo="$CONFIG_SHELL $0 --fallback-echo"
-      else
-       # maybe with a smaller string...
-       prev=:
-
-       for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do
-         if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null
-         then
-           break
-         fi
-         prev="$cmd"
-       done
-
-       if test "$prev" != 'sed 50q "$0"'; then
-         echo_test_string=`eval $prev`
-         export echo_test_string
-         exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"}
-       else
-         # Oops.  We lost completely, so just stick with echo.
-         echo=echo
-       fi
-      fi
-    fi
-  fi
-fi
-fi
-
-# Copy echo and quote the copy suitably for passing to libtool from
-# the Makefile, instead of quoting the original, which is used later.
-ECHO=$echo
-if test "X$ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then
-   ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo"
-fi
-
-
-ac_help="$ac_help
-  --disable-libtool-lock  avoid locking (might break parallel builds)"
-ac_help="$ac_help
-  --with-pic              try to use only PIC/non-PIC objects [default=use both]"
-ac_help="$ac_help
-  --with-com_err=dir      Use the com_err installed in dir (/usr/local)"
-
-# 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
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datadir='${prefix}/share'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-libdir='${exec_prefix}/lib'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-infodir='${prefix}/info'
-mandir='${prefix}/man'
-
-# Initialize some other variables.
-subdirs=
-MFLAGS= MAKEFLAGS=
-SHELL=${CONFIG_SHELL-/bin/sh}
-# Maximum number of lines to put in a shell here document.
-ac_max_here_lines=12
-
-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
-
-  -bindir | --bindir | --bindi | --bind | --bin | --bi)
-    ac_prev=bindir ;;
-  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
-    bindir="$ac_optarg" ;;
-
-  -build | --build | --buil | --bui | --bu)
-    ac_prev=build ;;
-  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
-    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" ;;
-
-  -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
-    ac_prev=datadir ;;
-  -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
-  | --da=*)
-    datadir="$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=EPREFIX   install architecture-dependent files in EPREFIX
-                          [same as prefix]
-  --bindir=DIR            user executables in DIR [EPREFIX/bin]
-  --sbindir=DIR           system admin executables in DIR [EPREFIX/sbin]
-  --libexecdir=DIR        program executables in DIR [EPREFIX/libexec]
-  --datadir=DIR           read-only architecture-independent data in DIR
-                          [PREFIX/share]
-  --sysconfdir=DIR        read-only single-machine data in DIR [PREFIX/etc]
-  --sharedstatedir=DIR    modifiable architecture-independent data in DIR
-                          [PREFIX/com]
-  --localstatedir=DIR     modifiable single-machine data in DIR [PREFIX/var]
-  --libdir=DIR            object code libraries in DIR [EPREFIX/lib]
-  --includedir=DIR        C header files in DIR [PREFIX/include]
-  --oldincludedir=DIR     C header files for non-gcc in DIR [/usr/include]
-  --infodir=DIR           info documentation in DIR [PREFIX/info]
-  --mandir=DIR            man documentation in DIR [PREFIX/man]
-  --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
-EOF
-    cat << EOF
-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
-EOF
-    if test -n "$ac_help"; then
-      echo "--enable and --with options recognized:$ac_help"
-    fi
-    exit 0 ;;
-
-  -host | --host | --hos | --ho)
-    ac_prev=host ;;
-  -host=* | --host=* | --hos=* | --ho=*)
-    host="$ac_optarg" ;;
-
-  -includedir | --includedir | --includedi | --included | --include \
-  | --includ | --inclu | --incl | --inc)
-    ac_prev=includedir ;;
-  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
-  | --includ=* | --inclu=* | --incl=* | --inc=*)
-    includedir="$ac_optarg" ;;
-
-  -infodir | --infodir | --infodi | --infod | --info | --inf)
-    ac_prev=infodir ;;
-  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
-    infodir="$ac_optarg" ;;
-
-  -libdir | --libdir | --libdi | --libd)
-    ac_prev=libdir ;;
-  -libdir=* | --libdir=* | --libdi=* | --libd=*)
-    libdir="$ac_optarg" ;;
-
-  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
-  | --libexe | --libex | --libe)
-    ac_prev=libexecdir ;;
-  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
-  | --libexe=* | --libex=* | --libe=*)
-    libexecdir="$ac_optarg" ;;
-
-  -localstatedir | --localstatedir | --localstatedi | --localstated \
-  | --localstate | --localstat | --localsta | --localst \
-  | --locals | --local | --loca | --loc | --lo)
-    ac_prev=localstatedir ;;
-  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
-  | --localstate=* | --localstat=* | --localsta=* | --localst=* \
-  | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
-    localstatedir="$ac_optarg" ;;
-
-  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
-    ac_prev=mandir ;;
-  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
-    mandir="$ac_optarg" ;;
-
-  -nfp | --nfp | --nf)
-    # Obsolete; use --without-fp.
-    with_fp=no ;;
-
-  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
-  | --no-cr | --no-c)
-    no_create=yes ;;
-
-  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
-  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
-    no_recursion=yes ;;
-
-  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
-  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
-  | --oldin | --oldi | --old | --ol | --o)
-    ac_prev=oldincludedir ;;
-  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
-  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
-  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
-    oldincludedir="$ac_optarg" ;;
-
-  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
-    ac_prev=prefix ;;
-  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
-    prefix="$ac_optarg" ;;
-
-  -program-prefix | --program-prefix | --program-prefi | --program-pref \
-  | --program-pre | --program-pr | --program-p)
-    ac_prev=program_prefix ;;
-  -program-prefix=* | --program-prefix=* | --program-prefi=* \
-  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
-    program_prefix="$ac_optarg" ;;
-
-  -program-suffix | --program-suffix | --program-suffi | --program-suff \
-  | --program-suf | --program-su | --program-s)
-    ac_prev=program_suffix ;;
-  -program-suffix=* | --program-suffix=* | --program-suffi=* \
-  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
-    program_suffix="$ac_optarg" ;;
-
-  -program-transform-name | --program-transform-name \
-  | --program-transform-nam | --program-transform-na \
-  | --program-transform-n | --program-transform- \
-  | --program-transform | --program-transfor \
-  | --program-transfo | --program-transf \
-  | --program-trans | --program-tran \
-  | --progr-tra | --program-tr | --program-t)
-    ac_prev=program_transform_name ;;
-  -program-transform-name=* | --program-transform-name=* \
-  | --program-transform-nam=* | --program-transform-na=* \
-  | --program-transform-n=* | --program-transform-=* \
-  | --program-transform=* | --program-transfor=* \
-  | --program-transfo=* | --program-transf=* \
-  | --program-trans=* | --program-tran=* \
-  | --progr-tra=* | --program-tr=* | --program-t=*)
-    program_transform_name="$ac_optarg" ;;
-
-  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-  | -silent | --silent | --silen | --sile | --sil)
-    silent=yes ;;
-
-  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
-    ac_prev=sbindir ;;
-  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
-  | --sbi=* | --sb=*)
-    sbindir="$ac_optarg" ;;
-
-  -sharedstatedir | --sharedstatedir | --sharedstatedi \
-  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
-  | --sharedst | --shareds | --shared | --share | --shar \
-  | --sha | --sh)
-    ac_prev=sharedstatedir ;;
-  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
-  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
-  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
-  | --sha=* | --sh=*)
-    sharedstatedir="$ac_optarg" ;;
-
-  -site | --site | --sit)
-    ac_prev=site ;;
-  -site=* | --site=* | --sit=*)
-    site="$ac_optarg" ;;
-
-  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
-    ac_prev=srcdir ;;
-  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
-    srcdir="$ac_optarg" ;;
-
-  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
-  | --syscon | --sysco | --sysc | --sys | --sy)
-    ac_prev=sysconfdir ;;
-  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
-  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
-    sysconfdir="$ac_optarg" ;;
-
-  -target | --target | --targe | --targ | --tar | --ta | --t)
-    ac_prev=target ;;
-  -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.13"
-    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 these to C if already set.  These must not be set unconditionally
-# because not all systems understand e.g. LANG=C (notably SCO).
-# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
-# Non-C LC_CTYPE values break the ctype check.
-if test "${LANG+set}"   = set; then LANG=C;   export LANG;   fi
-if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
-if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
-if test "${LC_CTYPE+set}"    = set; then LC_CTYPE=C;    export LC_CTYPE;    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=dbprim_int.h
-
-# 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'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-
-ac_exeext=
-ac_objext=o
-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
-
-
-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
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# 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
-echo "configure:728: checking for a BSD compatible install" >&5
-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=":"
-  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.
-      # Don't use installbsd from OSF since it installs stuff as root
-      # by default.
-      for ac_prog in ginstall 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.
-           :
-         else
-           ac_cv_path_install="$ac_dir/$ac_prog -c"
-           break 2
-         fi
-       fi
-      done
-      ;;
-    esac
-  done
-  IFS="$ac_save_IFS"
-
-fi
-  if test "${ac_cv_path_install+set}" = set; then
-    INSTALL="$ac_cv_path_install"
-  else
-    # As a last resort, use the slow shell script.  We don't cache a
-    # path for INSTALL within a source directory, because that will
-    # break other packages using the cache if that directory is
-    # removed, or if the path is relative.
-    INSTALL="$ac_install_sh"
-  fi
-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_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6
-echo "configure:781: checking whether build environment is sane" >&5
-# Just in case
-sleep 1
-echo timestamp > conftestfile
-# Do `set' in a subshell so we don't clobber the current shell's
-# arguments.  Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
-   set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
-   if test "$*" = "X"; then
-      # -L didn't work.
-      set X `ls -t $srcdir/configure conftestfile`
-   fi
-   if test "$*" != "X $srcdir/configure conftestfile" \
-      && test "$*" != "X conftestfile $srcdir/configure"; then
-
-      # If neither matched, then we have a broken ls.  This can happen
-      # if, for instance, CONFIG_SHELL is bash and it inherits a
-      # broken ls alias from the environment.  This has actually
-      # happened.  Such a system could not be considered "sane".
-      { echo "configure: error: ls -t appears to fail.  Make sure there is not a broken
-alias in your environment" 1>&2; exit 1; }
-   fi
-
-   test "$2" = conftestfile
-   )
-then
-   # Ok.
-   :
-else
-   { echo "configure: error: newly created file is older than distributed files!
-Check your system clock" 1>&2; exit 1; }
-fi
-rm -f conftest*
-echo "$ac_t""yes" 1>&6
-if test "$program_transform_name" = s,x,x,; then
-  program_transform_name=
-else
-  # Double any \ or $.  echo might interpret backslashes.
-  cat <<\EOF_SED > conftestsed
-s,\\,\\\\,g; s,\$,$$,g
-EOF_SED
-  program_transform_name="`echo $program_transform_name|sed -f conftestsed`"
-  rm -f conftestsed
-fi
-test "$program_prefix" != NONE &&
-  program_transform_name="s,^,${program_prefix},; $program_transform_name"
-# Use a double $ so make ignores it.
-test "$program_suffix" != NONE &&
-  program_transform_name="s,\$\$,${program_suffix},; $program_transform_name"
-
-# sed with no file args requires a program.
-test "$program_transform_name" = "" && program_transform_name="s,x,x,"
-
-echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-echo "configure:838: checking whether ${MAKE-make} sets \${MAKE}" >&5
-set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
-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
-
-
-PACKAGE=dbprim
-
-VERSION=0.1
-
-if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
-  { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; }
-fi
-cat >> confdefs.h <<EOF
-#define PACKAGE "$PACKAGE"
-EOF
-
-cat >> confdefs.h <<EOF
-#define VERSION "$VERSION"
-EOF
-
-
-
-missing_dir=`cd $ac_aux_dir && pwd`
-echo $ac_n "checking for working aclocal""... $ac_c" 1>&6
-echo "configure:884: checking for working aclocal" >&5
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf.  Sigh.
-if (aclocal --version) < /dev/null > /dev/null 2>&1; then
-   ACLOCAL=aclocal
-   echo "$ac_t""found" 1>&6
-else
-   ACLOCAL="$missing_dir/missing aclocal"
-   echo "$ac_t""missing" 1>&6
-fi
-
-echo $ac_n "checking for working autoconf""... $ac_c" 1>&6
-echo "configure:897: checking for working autoconf" >&5
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf.  Sigh.
-if (autoconf --version) < /dev/null > /dev/null 2>&1; then
-   AUTOCONF=autoconf
-   echo "$ac_t""found" 1>&6
-else
-   AUTOCONF="$missing_dir/missing autoconf"
-   echo "$ac_t""missing" 1>&6
-fi
-
-echo $ac_n "checking for working automake""... $ac_c" 1>&6
-echo "configure:910: checking for working automake" >&5
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf.  Sigh.
-if (automake --version) < /dev/null > /dev/null 2>&1; then
-   AUTOMAKE=automake
-   echo "$ac_t""found" 1>&6
-else
-   AUTOMAKE="$missing_dir/missing automake"
-   echo "$ac_t""missing" 1>&6
-fi
-
-echo $ac_n "checking for working autoheader""... $ac_c" 1>&6
-echo "configure:923: checking for working autoheader" >&5
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf.  Sigh.
-if (autoheader --version) < /dev/null > /dev/null 2>&1; then
-   AUTOHEADER=autoheader
-   echo "$ac_t""found" 1>&6
-else
-   AUTOHEADER="$missing_dir/missing autoheader"
-   echo "$ac_t""missing" 1>&6
-fi
-
-echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6
-echo "configure:936: checking for working makeinfo" >&5
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf.  Sigh.
-if (makeinfo --version) < /dev/null > /dev/null 2>&1; then
-   MAKEINFO=makeinfo
-   echo "$ac_t""found" 1>&6
-else
-   MAKEINFO="$missing_dir/missing makeinfo"
-   echo "$ac_t""missing" 1>&6
-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
-echo "configure:953: checking for $ac_word" >&5
-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=":"
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; 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"
-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
-
-if test -z "$CC"; then
-  # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:983: checking for $ac_word" >&5
-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=":"
-  ac_prog_rejected=no
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
-        ac_prog_rejected=yes
-       continue
-      fi
-      ac_cv_prog_CC="cc"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
-if test $ac_prog_rejected = yes; then
-  # We found a bogon in the path, so make sure we never use it.
-  set dummy $ac_cv_prog_CC
-  shift
-  if test $# -gt 0; then
-    # We chose a different compiler from the bogus one.
-    # However, it has the same basename, so the bogon will be chosen
-    # first if we set CC to just the basename; use the full file name.
-    shift
-    set dummy "$ac_dir/$ac_word" "$@"
-    shift
-    ac_cv_prog_CC="$@"
-  fi
-fi
-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
-
-  if test -z "$CC"; then
-    case "`uname -s`" in
-    *win32* | *WIN32*)
-      # Extract the first word of "cl", so it can be a program name with args.
-set dummy cl; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1034: checking for $ac_word" >&5
-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=":"
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      ac_cv_prog_CC="cl"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
-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
- ;;
-    esac
-  fi
-  test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; }
-fi
-
-echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:1066: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
-
-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'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-
-cat > conftest.$ac_ext << EOF
-
-#line 1077 "configure"
-#include "confdefs.h"
-
-main(){return(0);}
-EOF
-if { (eval echo configure:1082: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  ac_cv_prog_cc_works=yes
-  # If we can't run a trivial program, we are probably using a cross compiler.
-  if (./conftest; exit) 2>/dev/null; then
-    ac_cv_prog_cc_cross=no
-  else
-    ac_cv_prog_cc_cross=yes
-  fi
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  ac_cv_prog_cc_works=no
-fi
-rm -fr conftest*
-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'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-
-echo "$ac_t""$ac_cv_prog_cc_works" 1>&6
-if test $ac_cv_prog_cc_works = no; then
-  { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
-fi
-echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:1108: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
-echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
-cross_compiling=$ac_cv_prog_cc_cross
-
-echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:1113: checking whether we are using GNU C" >&5
-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 { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1122: \"$ac_try\") 1>&5; (eval $ac_try) 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
-else
-  GCC=
-fi
-
-ac_test_CFLAGS="${CFLAGS+set}"
-ac_save_CFLAGS="$CFLAGS"
-CFLAGS=
-echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:1141: checking whether ${CC-cc} accepts -g" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_cc_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_cc_g=yes
-else
-  ac_cv_prog_cc_g=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ac_cv_prog_cc_g" 1>&6
-if test "$ac_test_CFLAGS" = set; then
-  CFLAGS="$ac_save_CFLAGS"
-elif test $ac_cv_prog_cc_g = yes; then
-  if test "$GCC" = yes; then
-    CFLAGS="-g -O2"
-  else
-    CFLAGS="-g"
-  fi
-else
-  if test "$GCC" = yes; then
-    CFLAGS="-O2"
-  else
-    CFLAGS=
-  fi
-fi
-
-for ac_prog in gawk mawk nawk awk
-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
-echo "configure:1177: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  if test -n "$AWK"; then
-  ac_cv_prog_AWK="$AWK" # Let the user override the test.
-else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      ac_cv_prog_AWK="$ac_prog"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
-fi
-fi
-AWK="$ac_cv_prog_AWK"
-if test -n "$AWK"; then
-  echo "$ac_t""$AWK" 1>&6
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-test -n "$AWK" && break
-done
-
-echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6
-echo "configure:1207: checking for Cygwin environment" >&5
-if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat > conftest.$ac_ext <<EOF
-#line 1212 "configure"
-#include "confdefs.h"
-
-int main() {
-
-#ifndef __CYGWIN__
-#define __CYGWIN__ __CYGWIN32__
-#endif
-return __CYGWIN__;
-; return 0; }
-EOF
-if { (eval echo configure:1223: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  ac_cv_cygwin=yes
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  ac_cv_cygwin=no
-fi
-rm -f conftest*
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_cygwin" 1>&6
-CYGWIN=
-test "$ac_cv_cygwin" = yes && CYGWIN=yes
-echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6
-echo "configure:1240: checking for mingw32 environment" >&5
-if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat > conftest.$ac_ext <<EOF
-#line 1245 "configure"
-#include "confdefs.h"
-
-int main() {
-return __MINGW32__;
-; return 0; }
-EOF
-if { (eval echo configure:1252: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  ac_cv_mingw32=yes
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  ac_cv_mingw32=no
-fi
-rm -f conftest*
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_mingw32" 1>&6
-MINGW32=
-test "$ac_cv_mingw32" = yes && MINGW32=yes
-echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:1269: checking how to run the C preprocessor" >&5
-# 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 1284 "configure"
-#include "confdefs.h"
-#include <assert.h>
-Syntax Error
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1290: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
-  :
-else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  CPP="${CC-cc} -E -traditional-cpp"
-  cat > conftest.$ac_ext <<EOF
-#line 1301 "configure"
-#include "confdefs.h"
-#include <assert.h>
-Syntax Error
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1307: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
-  :
-else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  CPP="${CC-cc} -nologo -E"
-  cat > conftest.$ac_ext <<EOF
-#line 1318 "configure"
-#include "confdefs.h"
-#include <assert.h>
-Syntax Error
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1324: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
-  :
-else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  CPP=/lib/cpp
-fi
-rm -f conftest*
-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
-
-# Check whether --enable-shared or --disable-shared was given.
-if test "${enable_shared+set}" = set; then
-  enableval="$enable_shared"
-  p=${PACKAGE-default}
-case $enableval in
-yes) enable_shared=yes ;;
-no) enable_shared=no ;;
-*)
-  enable_shared=no
-  # Look at the argument we got.  We use all the common list separators.
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
-  for pkg in $enableval; do
-    if test "X$pkg" = "X$p"; then
-      enable_shared=yes
-    fi
-  done
-  IFS="$ac_save_ifs"
-  ;;
-esac
-else
-  enable_shared=yes
-fi
-
-# Check whether --enable-static or --disable-static was given.
-if test "${enable_static+set}" = set; then
-  enableval="$enable_static"
-  p=${PACKAGE-default}
-case $enableval in
-yes) enable_static=yes ;;
-no) enable_static=no ;;
-*)
-  enable_static=no
-  # Look at the argument we got.  We use all the common list separators.
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
-  for pkg in $enableval; do
-    if test "X$pkg" = "X$p"; then
-      enable_static=yes
-    fi
-  done
-  IFS="$ac_save_ifs"
-  ;;
-esac
-else
-  enable_static=yes
-fi
-
-# Check whether --enable-fast-install or --disable-fast-install was given.
-if test "${enable_fast_install+set}" = set; then
-  enableval="$enable_fast_install"
-  p=${PACKAGE-default}
-case $enableval in
-yes) enable_fast_install=yes ;;
-no) enable_fast_install=no ;;
-*)
-  enable_fast_install=no
-  # Look at the argument we got.  We use all the common list separators.
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
-  for pkg in $enableval; do
-    if test "X$pkg" = "X$p"; then
-      enable_fast_install=yes
-    fi
-  done
-  IFS="$ac_save_ifs"
-  ;;
-esac
-else
-  enable_fast_install=yes
-fi
-
-
-# Make sure we can run config.sub.
-if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then :
-else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
-fi
-
-echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:1424: checking host system type" >&5
-
-host_alias=$host
-case "$host_alias" in
-NONE)
-  case $nonopt in
-  NONE)
-    if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then :
-    else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; }
-    fi ;;
-  *) host_alias=$nonopt ;;
-  esac ;;
-esac
-
-host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias`
-host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-echo "$ac_t""$host" 1>&6
-
-echo $ac_n "checking build system type""... $ac_c" 1>&6
-echo "configure:1445: checking build system type" >&5
-
-build_alias=$build
-case "$build_alias" in
-NONE)
-  case $nonopt in
-  NONE) build_alias=$host_alias ;;
-  *) build_alias=$nonopt ;;
-  esac ;;
-esac
-
-build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias`
-build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-echo "$ac_t""$build" 1>&6
-
-# Check whether --with-gnu-ld or --without-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then
-  withval="$with_gnu_ld"
-  test "$withval" = no || with_gnu_ld=yes
-else
-  with_gnu_ld=no
-fi
-
-ac_prog=ld
-if test "$GCC" = yes; then
-  # Check if gcc -print-prog-name=ld gives a path.
-  echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6
-echo "configure:1474: checking for ld used by GCC" >&5
-  case $host in
-  *-*-mingw*)
-    # gcc leaves a trailing carriage return which upsets mingw
-    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
-  *)
-    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
-  esac
-  case $ac_prog in
-    # Accept absolute paths.
-    [\\/]* | [A-Za-z]:[\\/]*)
-      re_direlt='/[^/][^/]*/\.\./'
-      # Canonicalize the path of ld
-      ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
-      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
-       ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
-      done
-      test -z "$LD" && LD="$ac_prog"
-      ;;
-  "")
-    # If it fails, then pretend we aren't using GCC.
-    ac_prog=ld
-    ;;
-  *)
-    # If it is relative, then search for the first ld in PATH.
-    with_gnu_ld=unknown
-    ;;
-  esac
-elif test "$with_gnu_ld" = yes; then
-  echo $ac_n "checking for GNU ld""... $ac_c" 1>&6
-echo "configure:1504: checking for GNU ld" >&5
-else
-  echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6
-echo "configure:1507: checking for non-GNU ld" >&5
-fi
-if eval "test \"`echo '$''{'lt_cv_path_LD'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  if test -z "$LD"; then
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
-  for ac_dir in $PATH; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-      lt_cv_path_LD="$ac_dir/$ac_prog"
-      # Check to see if the program is GNU ld.  I'd rather use --version,
-      # but apparently some GNU ld's only accept -v.
-      # Break only if it was the GNU/non-GNU ld that we prefer.
-      if "$lt_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
-       test "$with_gnu_ld" != no && break
-      else
-       test "$with_gnu_ld" != yes && break
-      fi
-    fi
-  done
-  IFS="$ac_save_ifs"
-else
-  lt_cv_path_LD="$LD" # Let the user override the test with a path.
-fi
-fi
-
-LD="$lt_cv_path_LD"
-if test -n "$LD"; then
-  echo "$ac_t""$LD" 1>&6
-else
-  echo "$ac_t""no" 1>&6
-fi
-test -z "$LD" && { echo "configure: error: no acceptable ld found in \$PATH" 1>&2; exit 1; }
-echo $ac_n "checking if the linker ($LD) is GNU ld""... $ac_c" 1>&6
-echo "configure:1542: checking if the linker ($LD) is GNU ld" >&5
-if eval "test \"`echo '$''{'lt_cv_prog_gnu_ld'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  # I'd rather use --version here, but apparently some GNU ld's only accept -v.
-if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
-  lt_cv_prog_gnu_ld=yes
-else
-  lt_cv_prog_gnu_ld=no
-fi
-fi
-
-echo "$ac_t""$lt_cv_prog_gnu_ld" 1>&6
-with_gnu_ld=$lt_cv_prog_gnu_ld
-
-
-echo $ac_n "checking for $LD option to reload object files""... $ac_c" 1>&6
-echo "configure:1559: checking for $LD option to reload object files" >&5
-if eval "test \"`echo '$''{'lt_cv_ld_reload_flag'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  lt_cv_ld_reload_flag='-r'
-fi
-
-echo "$ac_t""$lt_cv_ld_reload_flag" 1>&6
-reload_flag=$lt_cv_ld_reload_flag
-test -n "$reload_flag" && reload_flag=" $reload_flag"
-
-echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6
-echo "configure:1571: checking for BSD-compatible nm" >&5
-if eval "test \"`echo '$''{'lt_cv_path_NM'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  if test -n "$NM"; then
-  # Let the user override the test.
-  lt_cv_path_NM="$NM"
-else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
-  for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
-    test -z "$ac_dir" && ac_dir=.
-    tmp_nm=$ac_dir/${ac_tool_prefix}nm
-    if test -f $tmp_nm || test -f $tmp_nm$ac_exeext ; then
-      # Check to see if the nm accepts a BSD-compat flag.
-      # Adding the `sed 1q' prevents false positives on HP-UX, which says:
-      #   nm: unknown option "B" ignored
-      # Tru64's nm complains that /dev/null is an invalid object file
-      if ($tmp_nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep '(/dev/null|Invalid file or object type)' >/dev/null; then
-       lt_cv_path_NM="$tmp_nm -B"
-       break
-      elif ($tmp_nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
-       lt_cv_path_NM="$tmp_nm -p"
-       break
-      else
-       lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
-       continue # so that we can try to find one that supports BSD flags
-      fi
-    fi
-  done
-  IFS="$ac_save_ifs"
-  test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm
-fi
-fi
-
-NM="$lt_cv_path_NM"
-echo "$ac_t""$NM" 1>&6
-
-echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
-echo "configure:1609: checking whether ln -s works" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  rm -f conftestdata
-if ln -s X conftestdata 2>/dev/null
-then
-  rm -f conftestdata
-  ac_cv_prog_LN_S="ln -s"
-else
-  ac_cv_prog_LN_S=ln
-fi
-fi
-LN_S="$ac_cv_prog_LN_S"
-if test "$ac_cv_prog_LN_S" = "ln -s"; then
-  echo "$ac_t""yes" 1>&6
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-echo $ac_n "checking how to recognise dependant libraries""... $ac_c" 1>&6
-echo "configure:1630: checking how to recognise dependant libraries" >&5
-if eval "test \"`echo '$''{'lt_cv_deplibs_check_method'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  lt_cv_file_magic_cmd='$MAGIC_CMD'
-lt_cv_file_magic_test_file=
-lt_cv_deplibs_check_method='unknown'
-# Need to set the preceding variable on all platforms that support
-# interlibrary dependencies.
-# 'none' -- dependencies not supported.
-# `unknown' -- same as none, but documents that we really don't know.
-# 'pass_all' -- all dependencies passed with no checks.
-# 'test_compile' -- check by making test program.
-# ['file_magic [regex]'] -- check by looking for files in library path
-# which responds to the $file_magic_cmd with a given egrep regex.
-# If you have `file' or equivalent on your system and you're not sure
-# whether `pass_all' will *always* work, you probably want this one.
-
-case $host_os in
-aix4* | aix5*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-beos*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-bsdi4*)
-  lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
-  lt_cv_file_magic_cmd='/usr/bin/file -L'
-  lt_cv_file_magic_test_file=/shlib/libc.so
-  ;;
-
-cygwin* | mingw* | pw32*)
-  lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
-  lt_cv_file_magic_cmd='$OBJDUMP -f'
-  ;;
-
-darwin* | rhapsody*)
-  lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library'
-  lt_cv_file_magic_cmd='/usr/bin/file -L'
-  case "$host_os" in
-  rhapsody* | darwin1.012)
-    lt_cv_file_magic_test_file=`echo /System/Library/Frameworks/System.framework/Versions/*/System | head -1`
-    ;;
-  *) # Darwin 1.3 on
-    lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib'
-    ;;
-  esac
-  ;;
-
-freebsd*)
-  if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
-    case $host_cpu in
-    i*86 )
-      # Not sure whether the presence of OpenBSD here was a mistake.
-      # Let's accept both of them until this is cleared up.
-      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[3-9]86 (compact )?demand paged shared library'
-      lt_cv_file_magic_cmd=/usr/bin/file
-      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
-      ;;
-    esac
-  else
-    lt_cv_deplibs_check_method=pass_all
-  fi
-  ;;
-
-gnu*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-hpux10.20*|hpux11*)
-  lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library'
-  lt_cv_file_magic_cmd=/usr/bin/file
-  lt_cv_file_magic_test_file=/usr/lib/libc.sl
-  ;;
-
-irix5* | irix6*)
-  case $host_os in
-  irix5*)
-    # this will be overridden with pass_all, but let us keep it just in case
-    lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1"
-    ;;
-  *)
-    case $LD in
-    *-32|*"-32 ") libmagic=32-bit;;
-    *-n32|*"-n32 ") libmagic=N32;;
-    *-64|*"-64 ") libmagic=64-bit;;
-    *) libmagic=never-match;;
-    esac
-    # this will be overridden with pass_all, but let us keep it just in case
-    lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[1234] dynamic lib MIPS - version 1"
-    ;;
-  esac
-  lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*`
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-# This must be Linux ELF.
-linux-gnu*)
-  case $host_cpu in
-  alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* | s390* )
-    lt_cv_deplibs_check_method=pass_all ;;
-  *)
-    # glibc up to 2.1.1 does not perform some relocations on ARM
-    lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;;
-  esac
-  lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
-  ;;
-
-netbsd*)
-  if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
-    lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
-  else
-    lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so$'
-  fi
-  ;;
-
-newos6*)
-  lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
-  lt_cv_file_magic_cmd=/usr/bin/file
-  lt_cv_file_magic_test_file=/usr/lib/libnls.so
-  ;;
-
-osf3* | osf4* | osf5*)
-  # this will be overridden with pass_all, but let us keep it just in case
-  lt_cv_deplibs_check_method='file_magic COFF format alpha shared library'
-  lt_cv_file_magic_test_file=/shlib/libc.so
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-sco3.2v5*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-solaris*)
-  lt_cv_deplibs_check_method=pass_all
-  lt_cv_file_magic_test_file=/lib/libc.so
-  ;;
-
-sysv5uw[78]* | sysv4*uw2*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-  case $host_vendor in
-  motorola)
-    lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
-    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
-    ;;
-  ncr)
-    lt_cv_deplibs_check_method=pass_all
-    ;;
-  sequent)
-    lt_cv_file_magic_cmd='/bin/file'
-    lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
-    ;;
-  sni)
-    lt_cv_file_magic_cmd='/bin/file'
-    lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
-    lt_cv_file_magic_test_file=/lib/libc.so
-    ;;
-  esac
-  ;;
-esac
-
-fi
-
-echo "$ac_t""$lt_cv_deplibs_check_method" 1>&6
-file_magic_cmd=$lt_cv_file_magic_cmd
-deplibs_check_method=$lt_cv_deplibs_check_method
-
-echo $ac_n "checking for object suffix""... $ac_c" 1>&6
-echo "configure:1803: checking for object suffix" >&5
-if eval "test \"`echo '$''{'ac_cv_objext'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  rm -f conftest*
-echo 'int i = 1;' > conftest.$ac_ext
-if { (eval echo configure:1809: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  for ac_file in conftest.*; do
-    case $ac_file in
-    *.c) ;;
-    *) ac_cv_objext=`echo $ac_file | sed -e s/conftest.//` ;;
-    esac
-  done
-else
-  { echo "configure: error: installation or configuration problem; compiler does not work" 1>&2; exit 1; }
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_objext" 1>&6
-OBJEXT=$ac_cv_objext
-ac_objext=$ac_cv_objext
-
-
-
-echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
-echo "configure:1829: checking for executable suffix" >&5
-if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  if test "$CYGWIN" = yes || test "$MINGW32" = yes; then
-  ac_cv_exeext=.exe
-else
-  rm -f conftest*
-  echo 'int main () { return 0; }' > conftest.$ac_ext
-  ac_cv_exeext=
-  if { (eval echo configure:1839: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
-    for file in conftest.*; do
-      case $file in
-      *.c | *.o | *.obj) ;;
-      *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;;
-      esac
-    done
-  else
-    { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; }
-  fi
-  rm -f conftest*
-  test x"${ac_cv_exeext}" = x && ac_cv_exeext=no
-fi
-fi
-
-EXEEXT=""
-test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext}
-echo "$ac_t""${ac_cv_exeext}" 1>&6
-ac_exeext=$EXEEXT
-
-if test $host != $build; then
-  ac_tool_prefix=${host_alias}-
-else
-  ac_tool_prefix=
-fi
-
-
-
-
-# Check for command to grab the raw symbol name followed by C symbol from nm.
-echo $ac_n "checking command to parse $NM output""... $ac_c" 1>&6
-echo "configure:1870: checking command to parse $NM output" >&5
-if eval "test \"`echo '$''{'lt_cv_sys_global_symbol_pipe'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  
-# These are sane defaults that work on at least a few old systems.
-# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
-
-# Character class describing NM global symbol codes.
-symcode='[BCDEGRST]'
-
-# Regexp to match symbols that can be accessed directly from C.
-sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
-
-# Transform the above into a raw symbol and a C symbol.
-symxfrm='\1 \2\3 \3'
-
-# Transform an extracted symbol line into a proper C declaration
-lt_cv_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'"
-
-# Define system-specific variables.
-case $host_os in
-aix*)
-  symcode='[BCDT]'
-  ;;
-cygwin* | mingw* | pw32*)
-  symcode='[ABCDGISTW]'
-  ;;
-hpux*) # Its linker distinguishes data from code symbols
-  lt_cv_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
-  ;;
-irix*)
-  symcode='[BCDEGRST]'
-  ;;
-solaris* | sysv5*)
-  symcode='[BDT]'
-  ;;
-sysv4)
-  symcode='[DFNSTU]'
-  ;;
-esac
-
-# Handle CRLF in mingw tool chain
-opt_cr=
-case $host_os in
-mingw*)
-  opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp
-  ;;
-esac
-
-# If we're using GNU nm, then use its standard symbol codes.
-if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then
-  symcode='[ABCDGISTW]'
-fi
-
-# Try without a prefix undercore, then with it.
-for ac_symprfx in "" "_"; do
-
-  # Write the raw and C identifiers.
-lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[        ]\($symcode$symcode*\)[         ][      ]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'"
-
-  # Check to see that the pipe works correctly.
-  pipe_works=no
-  rm -f conftest*
-  cat > conftest.$ac_ext <<EOF
-#ifdef __cplusplus
-extern "C" {
-#endif
-char nm_test_var;
-void nm_test_func(){}
-#ifdef __cplusplus
-}
-#endif
-int main(){nm_test_var='a';nm_test_func();return(0);}
-EOF
-
-  if { (eval echo configure:1946: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-    # Now try to grab the symbols.
-    nlist=conftest.nm
-    if { (eval echo configure:1949: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\") 1>&5; (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5; } && test -s "$nlist"; then
-      # Try sorting and uniquifying the output.
-      if sort "$nlist" | uniq > "$nlist"T; then
-       mv -f "$nlist"T "$nlist"
-      else
-       rm -f "$nlist"T
-      fi
-
-      # Make sure that we snagged all the symbols we need.
-      if egrep ' nm_test_var$' "$nlist" >/dev/null; then
-       if egrep ' nm_test_func$' "$nlist" >/dev/null; then
-         cat <<EOF > conftest.$ac_ext
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-EOF
-         # Now generate the symbol file.
-         eval "$lt_cv_global_symbol_to_cdecl"' < "$nlist" >> conftest.$ac_ext'
-
-         cat <<EOF >> conftest.$ac_ext
-#if defined (__STDC__) && __STDC__
-# define lt_ptr_t void *
-#else
-# define lt_ptr_t char *
-# define const
-#endif
-
-/* The mapping between symbol names and symbols. */
-const struct {
-  const char *name;
-  lt_ptr_t address;
-}
-lt_preloaded_symbols[] =
-{
-EOF
-         sed "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" >> conftest.$ac_ext
-         cat <<\EOF >> conftest.$ac_ext
-  {0, (lt_ptr_t) 0}
-};
-
-#ifdef __cplusplus
-}
-#endif
-EOF
-         # Now try linking the two files.
-         mv conftest.$ac_objext conftstm.$ac_objext
-         save_LIBS="$LIBS"
-         save_CFLAGS="$CFLAGS"
-         LIBS="conftstm.$ac_objext"
-         CFLAGS="$CFLAGS$no_builtin_flag"
-         if { (eval echo configure:2000: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
-           pipe_works=yes
-         fi
-         LIBS="$save_LIBS"
-         CFLAGS="$save_CFLAGS"
-       else
-         echo "cannot find nm_test_func in $nlist" >&5
-       fi
-      else
-       echo "cannot find nm_test_var in $nlist" >&5
-      fi
-    else
-      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
-    fi
-  else
-    echo "$progname: failed program was:" >&5
-    cat conftest.$ac_ext >&5
-  fi
-  rm -f conftest* conftst*
-
-  # Do not use the global_symbol_pipe unless it works.
-  if test "$pipe_works" = yes; then
-    break
-  else
-    lt_cv_sys_global_symbol_pipe=
-  fi
-done
-
-fi
-
-global_symbol_pipe="$lt_cv_sys_global_symbol_pipe"
-if test -z "$lt_cv_sys_global_symbol_pipe"; then
-  global_symbol_to_cdecl=
-else
-  global_symbol_to_cdecl="$lt_cv_global_symbol_to_cdecl"
-fi
-if test -z "$global_symbol_pipe$global_symbol_to_cdecl"; then
-  echo "$ac_t""failed" 1>&6
-else
-  echo "$ac_t""ok" 1>&6
-fi
-
-for ac_hdr in dlfcn.h
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2046: checking for $ac_hdr" >&5
-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 2051 "configure"
-#include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2056: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=yes"
-else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&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 | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
-else
-  echo "$ac_t""no" 1>&6
-fi
-done
-
-
-
-
-
-# Only perform the check for file, if the check method requires it
-case $deplibs_check_method in
-file_magic*)
-  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
-    echo $ac_n "checking for ${ac_tool_prefix}file""... $ac_c" 1>&6
-echo "configure:2091: checking for ${ac_tool_prefix}file" >&5
-if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  case $MAGIC_CMD in
-  /*)
-  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
-  ;;
-  ?:/*)
-  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path.
-  ;;
-  *)
-  ac_save_MAGIC_CMD="$MAGIC_CMD"
-  IFS="${IFS=   }"; ac_save_ifs="$IFS"; IFS=":"
-  ac_dummy="/usr/bin:$PATH"
-  for ac_dir in $ac_dummy; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/${ac_tool_prefix}file; then
-      lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file"
-      if test -n "$file_magic_test_file"; then
-       case $deplibs_check_method in
-       "file_magic "*)
-         file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
-         MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-         if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
-           egrep "$file_magic_regex" > /dev/null; then
-           :
-         else
-           cat <<EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such.  This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem.  Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-EOF
-         fi ;;
-       esac
-      fi
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
-  MAGIC_CMD="$ac_save_MAGIC_CMD"
-  ;;
-esac
-fi
-
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
-  echo "$ac_t""$MAGIC_CMD" 1>&6
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-if test -z "$lt_cv_path_MAGIC_CMD"; then
-  if test -n "$ac_tool_prefix"; then
-    echo $ac_n "checking for file""... $ac_c" 1>&6
-echo "configure:2153: checking for file" >&5
-if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  case $MAGIC_CMD in
-  /*)
-  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
-  ;;
-  ?:/*)
-  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path.
-  ;;
-  *)
-  ac_save_MAGIC_CMD="$MAGIC_CMD"
-  IFS="${IFS=   }"; ac_save_ifs="$IFS"; IFS=":"
-  ac_dummy="/usr/bin:$PATH"
-  for ac_dir in $ac_dummy; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/file; then
-      lt_cv_path_MAGIC_CMD="$ac_dir/file"
-      if test -n "$file_magic_test_file"; then
-       case $deplibs_check_method in
-       "file_magic "*)
-         file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
-         MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-         if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
-           egrep "$file_magic_regex" > /dev/null; then
-           :
-         else
-           cat <<EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such.  This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem.  Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-EOF
-         fi ;;
-       esac
-      fi
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
-  MAGIC_CMD="$ac_save_MAGIC_CMD"
-  ;;
-esac
-fi
-
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
-  echo "$ac_t""$MAGIC_CMD" 1>&6
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-  else
-    MAGIC_CMD=:
-  fi
-fi
-
-  fi
-  ;;
-esac
-
-# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2224: checking for $ac_word" >&5
-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=":"
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
-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
-
-
-if test -z "$ac_cv_prog_RANLIB"; then
-if test -n "$ac_tool_prefix"; then
-  # 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
-echo "configure:2256: checking for $ac_word" >&5
-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=":"
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; 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
-
-else
-  RANLIB=":"
-fi
-fi
-
-# Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2291: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  if test -n "$STRIP"; then
-  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
-else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      ac_cv_prog_STRIP="${ac_tool_prefix}strip"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
-fi
-fi
-STRIP="$ac_cv_prog_STRIP"
-if test -n "$STRIP"; then
-  echo "$ac_t""$STRIP" 1>&6
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-
-if test -z "$ac_cv_prog_STRIP"; then
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2323: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  if test -n "$STRIP"; then
-  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
-else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      ac_cv_prog_STRIP="strip"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
-  test -z "$ac_cv_prog_STRIP" && ac_cv_prog_STRIP=":"
-fi
-fi
-STRIP="$ac_cv_prog_STRIP"
-if test -n "$STRIP"; then
-  echo "$ac_t""$STRIP" 1>&6
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-else
-  STRIP=":"
-fi
-fi
-
-
-enable_dlopen=no
-enable_win32_dll=no
-
-# Check whether --enable-libtool-lock or --disable-libtool-lock was given.
-if test "${enable_libtool_lock+set}" = set; then
-  enableval="$enable_libtool_lock"
-  :
-fi
-
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
-
-# Some flags need to be propagated to the compiler or linker for good
-# libtool support.
-case $host in
-*-*-irix6*)
-  # Find out which ABI we are using.
-  echo '#line 2372 "configure"' > conftest.$ac_ext
-  if { (eval echo configure:2373: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-    case `/usr/bin/file conftest.$ac_objext` in
-    *32-bit*)
-      LD="${LD-ld} -32"
-      ;;
-    *N32*)
-      LD="${LD-ld} -n32"
-      ;;
-    *64-bit*)
-      LD="${LD-ld} -64"
-      ;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-
-*-*-sco3.2v5*)
-  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
-  SAVE_CFLAGS="$CFLAGS"
-  CFLAGS="$CFLAGS -belf"
-  echo $ac_n "checking whether the C compiler needs -belf""... $ac_c" 1>&6
-echo "configure:2394: checking whether the C compiler needs -belf" >&5
-if eval "test \"`echo '$''{'lt_cv_cc_needs_belf'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  
-     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'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-
-     cat > conftest.$ac_ext <<EOF
-#line 2407 "configure"
-#include "confdefs.h"
-
-int main() {
-
-; return 0; }
-EOF
-if { (eval echo configure:2414: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  lt_cv_cc_needs_belf=yes
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  lt_cv_cc_needs_belf=no
-fi
-rm -f conftest*
-     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'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-
-fi
-
-echo "$ac_t""$lt_cv_cc_needs_belf" 1>&6
-  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
-    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
-    CFLAGS="$SAVE_CFLAGS"
-  fi
-  ;;
-
-
-esac
-
-# Sed substitution that helps us do robust quoting.  It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed='sed -e s/^X//'
-sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g'
-
-# Sed substitution to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# Constants:
-rm="rm -f"
-
-# Global variables:
-default_ofile=libtool
-can_build_shared=yes
-
-# All known linkers require a `.a' archive for static linking (except M$VC,
-# which needs '.lib').
-libext=a
-ltmain="$ac_aux_dir/ltmain.sh"
-ofile="$default_ofile"
-with_gnu_ld="$lt_cv_prog_gnu_ld"
-need_locks="$enable_libtool_lock"
-
-old_CC="$CC"
-old_CFLAGS="$CFLAGS"
-
-# Set sane defaults for various variables
-test -z "$AR" && AR=ar
-test -z "$AR_FLAGS" && AR_FLAGS=cru
-test -z "$AS" && AS=as
-test -z "$CC" && CC=cc
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-test -z "$LD" && LD=ld
-test -z "$LN_S" && LN_S="ln -s"
-test -z "$MAGIC_CMD" && MAGIC_CMD=file
-test -z "$NM" && NM=nm
-test -z "$OBJDUMP" && OBJDUMP=objdump
-test -z "$RANLIB" && RANLIB=:
-test -z "$STRIP" && STRIP=:
-test -z "$ac_objext" && ac_objext=o
-
-if test x"$host" != x"$build"; then
-  ac_tool_prefix=${host_alias}-
-else
-  ac_tool_prefix=
-fi
-
-# Transform linux* to *-*-linux-gnu*, to support old configure scripts.
-case $host_os in
-linux-gnu*) ;;
-linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
-esac
-
-case $host_os in
-aix3*)
-  # AIX sometimes has problems with the GCC collect2 program.  For some
-  # reason, if we set the COLLECT_NAMES environment variable, the problems
-  # vanish in a puff of smoke.
-  if test "X${COLLECT_NAMES+set}" != Xset; then
-    COLLECT_NAMES=
-    export COLLECT_NAMES
-  fi
-  ;;
-esac
-
-# Determine commands to create old-style static archives.
-old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs'
-old_postinstall_cmds='chmod 644 $oldlib'
-old_postuninstall_cmds=
-
-if test -n "$RANLIB"; then
-  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
-  old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds"
-fi
-
-# Allow CC to be a program name with arguments.
-set dummy $CC
-compiler="$2"
-
-echo $ac_n "checking for objdir""... $ac_c" 1>&6
-echo "configure:2527: checking for objdir" >&5
-rm -f .libs 2>/dev/null
-mkdir .libs 2>/dev/null
-if test -d .libs; then
-  objdir=.libs
-else
-  # MS-DOS does not allow filenames that begin with a dot.
-  objdir=_libs
-fi
-rmdir .libs 2>/dev/null
-echo "$ac_t""$objdir" 1>&6
-
-
-# Check whether --with-pic or --without-pic was given.
-if test "${with_pic+set}" = set; then
-  withval="$with_pic"
-  pic_mode="$withval"
-else
-  pic_mode=default
-fi
-
-test -z "$pic_mode" && pic_mode=default
-
-# We assume here that the value for lt_cv_prog_cc_pic will not be cached
-# in isolation, and that seeing it set (from the cache) indicates that
-# the associated values are set (in the cache) correctly too.
-echo $ac_n "checking for $compiler option to produce PIC""... $ac_c" 1>&6
-echo "configure:2554: checking for $compiler option to produce PIC" >&5
-if eval "test \"`echo '$''{'lt_cv_prog_cc_pic'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-   lt_cv_prog_cc_pic=
-  lt_cv_prog_cc_shlib=
-  lt_cv_prog_cc_wl=
-  lt_cv_prog_cc_static=
-  lt_cv_prog_cc_no_builtin=
-  lt_cv_prog_cc_can_build_shared=$can_build_shared
-
-  if test "$GCC" = yes; then
-    lt_cv_prog_cc_wl='-Wl,'
-    lt_cv_prog_cc_static='-static'
-
-    case $host_os in
-    aix*)
-      # Below there is a dirty hack to force normal static linking with -ldl
-      # The problem is because libdl dynamically linked with both libc and
-      # libC (AIX C++ library), which obviously doesn't included in libraries
-      # list by gcc. This cause undefined symbols with -static flags.
-      # This hack allows C programs to be linked with "-static -ldl", but
-      # we not sure about C++ programs.
-      lt_cv_prog_cc_static="$lt_cv_prog_cc_static ${lt_cv_prog_cc_wl}-lC"
-      ;;
-    amigaos*)
-      # FIXME: we need at least 68020 code to build shared libraries, but
-      # adding the `-m68020' flag to GCC prevents building anything better,
-      # like `-m68040'.
-      lt_cv_prog_cc_pic='-m68020 -resident32 -malways-restore-a4'
-      ;;
-    beos* | irix5* | irix6* | osf3* | osf4* | osf5*)
-      # PIC is the default for these OSes.
-      ;;
-    darwin* | rhapsody*)
-      # PIC is the default on this platform
-      # Common symbols not allowed in MH_DYLIB files
-      lt_cv_prog_cc_pic='-fno-common'
-      ;;
-    cygwin* | mingw* | pw32* | os2*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      lt_cv_prog_cc_pic='-DDLL_EXPORT'
-      ;;
-    sysv4*MP*)
-      if test -d /usr/nec; then
-        lt_cv_prog_cc_pic=-Kconform_pic
-      fi
-      ;;
-    *)
-      lt_cv_prog_cc_pic='-fPIC'
-      ;;
-    esac
-  else
-    # PORTME Check for PIC flags for the system compiler.
-    case $host_os in
-    aix3* | aix4* | aix5*)
-      # All AIX code is PIC.
-      if test "$host_cpu" = ia64; then
-        # AIX 5 now supports IA64 processor
-        lt_cv_prog_cc_static='-Bstatic'
-        lt_cv_prog_cc_wl='-Wl,'
-      else
-        lt_cv_prog_cc_static='-bnso -bI:/lib/syscalls.exp'
-      fi
-      ;;
-
-    hpux9* | hpux10* | hpux11*)
-      # Is there a better lt_cv_prog_cc_static that works with the bundled CC?
-      lt_cv_prog_cc_wl='-Wl,'
-      lt_cv_prog_cc_static="${lt_cv_prog_cc_wl}-a ${lt_cv_prog_cc_wl}archive"
-      lt_cv_prog_cc_pic='+Z'
-      ;;
-
-    irix5* | irix6*)
-      lt_cv_prog_cc_wl='-Wl,'
-      lt_cv_prog_cc_static='-non_shared'
-      # PIC (with -KPIC) is the default.
-      ;;
-
-    cygwin* | mingw* | pw32* | os2*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      lt_cv_prog_cc_pic='-DDLL_EXPORT'
-      ;;
-
-    newsos6)
-      lt_cv_prog_cc_pic='-KPIC'
-      lt_cv_prog_cc_static='-Bstatic'
-      ;;
-
-    osf3* | osf4* | osf5*)
-      # All OSF/1 code is PIC.
-      lt_cv_prog_cc_wl='-Wl,'
-      lt_cv_prog_cc_static='-non_shared'
-      ;;
-
-    sco3.2v5*)
-      lt_cv_prog_cc_pic='-Kpic'
-      lt_cv_prog_cc_static='-dn'
-      lt_cv_prog_cc_shlib='-belf'
-      ;;
-
-    solaris*)
-      lt_cv_prog_cc_pic='-KPIC'
-      lt_cv_prog_cc_static='-Bstatic'
-      lt_cv_prog_cc_wl='-Wl,'
-      ;;
-
-    sunos4*)
-      lt_cv_prog_cc_pic='-PIC'
-      lt_cv_prog_cc_static='-Bstatic'
-      lt_cv_prog_cc_wl='-Qoption ld '
-      ;;
-
-    sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-      lt_cv_prog_cc_pic='-KPIC'
-      lt_cv_prog_cc_static='-Bstatic'
-      if test "x$host_vendor" = xsni; then
-        lt_cv_prog_cc_wl='-LD'
-      else
-        lt_cv_prog_cc_wl='-Wl,'
-      fi
-      ;;
-
-    uts4*)
-      lt_cv_prog_cc_pic='-pic'
-      lt_cv_prog_cc_static='-Bstatic'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec ;then
-       lt_cv_prog_cc_pic='-Kconform_pic'
-       lt_cv_prog_cc_static='-Bstatic'
-      fi
-      ;;
-
-    *)
-      lt_cv_prog_cc_can_build_shared=no
-      ;;
-    esac
-  fi
-
-fi
-
-if test -z "$lt_cv_prog_cc_pic"; then
-  echo "$ac_t""none" 1>&6
-else
-  echo "$ac_t""$lt_cv_prog_cc_pic" 1>&6
-
-  # Check to make sure the pic_flag actually works.
-  echo $ac_n "checking if $compiler PIC flag $lt_cv_prog_cc_pic works""... $ac_c" 1>&6
-echo "configure:2706: checking if $compiler PIC flag $lt_cv_prog_cc_pic works" >&5
-  if eval "test \"`echo '$''{'lt_cv_prog_cc_pic_works'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-      save_CFLAGS="$CFLAGS"
-    CFLAGS="$CFLAGS $lt_cv_prog_cc_pic -DPIC"
-    cat > conftest.$ac_ext <<EOF
-#line 2713 "configure"
-#include "confdefs.h"
-
-int main() {
-
-; return 0; }
-EOF
-if { (eval echo configure:2720: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-        case $host_os in
-      hpux9* | hpux10* | hpux11*)
-       # On HP-UX, both CC and GCC only warn that PIC is supported... then
-       # they create non-PIC objects.  So, if there were any warnings, we
-       # assume that PIC is not supported.
-       if test -s conftest.err; then
-         lt_cv_prog_cc_pic_works=no
-       else
-         lt_cv_prog_cc_pic_works=yes
-       fi
-       ;;
-      *)
-       lt_cv_prog_cc_pic_works=yes
-       ;;
-      esac
-    
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-        lt_cv_prog_cc_pic_works=no
-    
-fi
-rm -f conftest*
-    CFLAGS="$save_CFLAGS"
-  
-fi
-
-
-  if test "X$lt_cv_prog_cc_pic_works" = Xno; then
-    lt_cv_prog_cc_pic=
-    lt_cv_prog_cc_can_build_shared=no
-  else
-    lt_cv_prog_cc_pic=" $lt_cv_prog_cc_pic"
-  fi
-
-  echo "$ac_t""$lt_cv_prog_cc_pic_works" 1>&6
-fi
-
-# Check for any special shared library compilation flags.
-if test -n "$lt_cv_prog_cc_shlib"; then
-  echo "configure: warning: \`$CC' requires \`$lt_cv_prog_cc_shlib' to build shared libraries" 1>&2
-  if echo "$old_CC $old_CFLAGS " | egrep -e "[         ]$lt_cv_prog_cc_shlib[  ]" >/dev/null; then :
-  else
-   echo "configure: warning: add \`$lt_cv_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" 1>&2
-    lt_cv_prog_cc_can_build_shared=no
-  fi
-fi
-
-echo $ac_n "checking if $compiler static flag $lt_cv_prog_cc_static works""... $ac_c" 1>&6
-echo "configure:2772: checking if $compiler static flag $lt_cv_prog_cc_static works" >&5
-if eval "test \"`echo '$''{'lt_cv_prog_cc_static_works'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-    lt_cv_prog_cc_static_works=no
-  save_LDFLAGS="$LDFLAGS"
-  LDFLAGS="$LDFLAGS $lt_cv_prog_cc_static"
-  cat > conftest.$ac_ext <<EOF
-#line 2780 "configure"
-#include "confdefs.h"
-
-int main() {
-
-; return 0; }
-EOF
-if { (eval echo configure:2787: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  lt_cv_prog_cc_static_works=yes
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-fi
-rm -f conftest*
-  LDFLAGS="$save_LDFLAGS"
-
-fi
-
-
-# Belt *and* braces to stop my trousers falling down:
-test "X$lt_cv_prog_cc_static_works" = Xno && lt_cv_prog_cc_static=
-echo "$ac_t""$lt_cv_prog_cc_static_works" 1>&6
-
-pic_flag="$lt_cv_prog_cc_pic"
-special_shlib_compile_flags="$lt_cv_prog_cc_shlib"
-wl="$lt_cv_prog_cc_wl"
-link_static_flag="$lt_cv_prog_cc_static"
-no_builtin_flag="$lt_cv_prog_cc_no_builtin"
-can_build_shared="$lt_cv_prog_cc_can_build_shared"
-
-
-# Check to see if options -o and -c are simultaneously supported by compiler
-echo $ac_n "checking if $compiler supports -c -o file.$ac_objext""... $ac_c" 1>&6
-echo "configure:2814: checking if $compiler supports -c -o file.$ac_objext" >&5
-if eval "test \"`echo '$''{'lt_cv_compiler_c_o'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  
-$rm -r conftest 2>/dev/null
-mkdir conftest
-cd conftest
-echo "int some_variable = 0;" > conftest.$ac_ext
-mkdir out
-# According to Tom Tromey, Ian Lance Taylor reported there are C compilers
-# that will create temporary files in the current directory regardless of
-# the output directory.  Thus, making CWD read-only will cause this test
-# to fail, enabling locking or at least warning the user not to do parallel
-# builds.
-chmod -w .
-save_CFLAGS="$CFLAGS"
-CFLAGS="$CFLAGS -o out/conftest2.$ac_objext"
-compiler_c_o=no
-if { (eval echo configure:2833: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.$ac_objext; then
-  # The compiler can only warn and ignore the option if not recognized
-  # So say no if there are warnings
-  if test -s out/conftest.err; then
-    lt_cv_compiler_c_o=no
-  else
-    lt_cv_compiler_c_o=yes
-  fi
-else
-  # Append any errors to the config.log.
-  cat out/conftest.err 1>&5
-  lt_cv_compiler_c_o=no
-fi
-CFLAGS="$save_CFLAGS"
-chmod u+w .
-$rm conftest* out/*
-rmdir out
-cd ..
-rmdir conftest
-$rm -r conftest 2>/dev/null
-
-fi
-
-compiler_c_o=$lt_cv_compiler_c_o
-echo "$ac_t""$compiler_c_o" 1>&6
-
-if test x"$compiler_c_o" = x"yes"; then
-  # Check to see if we can write to a .lo
-  echo $ac_n "checking if $compiler supports -c -o file.lo""... $ac_c" 1>&6
-echo "configure:2862: checking if $compiler supports -c -o file.lo" >&5
-  if eval "test \"`echo '$''{'lt_cv_compiler_o_lo'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  
-  lt_cv_compiler_o_lo=no
-  save_CFLAGS="$CFLAGS"
-  CFLAGS="$CFLAGS -c -o conftest.lo"
-  cat > conftest.$ac_ext <<EOF
-#line 2871 "configure"
-#include "confdefs.h"
-
-int main() {
-int some_variable = 0;
-; return 0; }
-EOF
-if { (eval echo configure:2878: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-      # The compiler can only warn and ignore the option if not recognized
-    # So say no if there are warnings
-    if test -s conftest.err; then
-      lt_cv_compiler_o_lo=no
-    else
-      lt_cv_compiler_o_lo=yes
-    fi
-  
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-fi
-rm -f conftest*
-  CFLAGS="$save_CFLAGS"
-  
-fi
-
-  compiler_o_lo=$lt_cv_compiler_o_lo
-  echo "$ac_t""$compiler_o_lo" 1>&6
-else
-  compiler_o_lo=no
-fi
-
-# Check to see if we can do hard links to lock some files if needed
-hard_links="nottested"
-if test "$compiler_c_o" = no && test "$need_locks" != no; then
-  # do not overwrite the value of need_locks provided by the user
-  echo $ac_n "checking if we can lock with hard links""... $ac_c" 1>&6
-echo "configure:2908: checking if we can lock with hard links" >&5
-  hard_links=yes
-  $rm conftest*
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  touch conftest.a
-  ln conftest.a conftest.b 2>&5 || hard_links=no
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  echo "$ac_t""$hard_links" 1>&6
-  if test "$hard_links" = no; then
-    echo "configure: warning: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" 1>&2
-    need_locks=warn
-  fi
-else
-  need_locks=no
-fi
-
-if test "$GCC" = yes; then
-  # Check to see if options -fno-rtti -fno-exceptions are supported by compiler
-  echo $ac_n "checking if $compiler supports -fno-rtti -fno-exceptions""... $ac_c" 1>&6
-echo "configure:2927: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
-  echo "int some_variable = 0;" > conftest.$ac_ext
-  save_CFLAGS="$CFLAGS"
-  CFLAGS="$CFLAGS -fno-rtti -fno-exceptions -c conftest.$ac_ext"
-  compiler_rtti_exceptions=no
-  cat > conftest.$ac_ext <<EOF
-#line 2933 "configure"
-#include "confdefs.h"
-
-int main() {
-int some_variable = 0;
-; return 0; }
-EOF
-if { (eval echo configure:2940: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-      # The compiler can only warn and ignore the option if not recognized
-    # So say no if there are warnings
-    if test -s conftest.err; then
-      compiler_rtti_exceptions=no
-    else
-      compiler_rtti_exceptions=yes
-    fi
-  
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-fi
-rm -f conftest*
-  CFLAGS="$save_CFLAGS"
-  echo "$ac_t""$compiler_rtti_exceptions" 1>&6
-
-  if test "$compiler_rtti_exceptions" = "yes"; then
-    no_builtin_flag=' -fno-builtin -fno-rtti -fno-exceptions'
-  else
-    no_builtin_flag=' -fno-builtin'
-  fi
-fi
-
-# See if the linker supports building shared libraries.
-echo $ac_n "checking whether the linker ($LD) supports shared libraries""... $ac_c" 1>&6
-echo "configure:2967: checking whether the linker ($LD) supports shared libraries" >&5
-
-allow_undefined_flag=
-no_undefined_flag=
-need_lib_prefix=unknown
-need_version=unknown
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-archive_cmds=
-archive_expsym_cmds=
-old_archive_from_new_cmds=
-old_archive_from_expsyms_cmds=
-export_dynamic_flag_spec=
-whole_archive_flag_spec=
-thread_safe_flag_spec=
-hardcode_into_libs=no
-hardcode_libdir_flag_spec=
-hardcode_libdir_separator=
-hardcode_direct=no
-hardcode_minus_L=no
-hardcode_shlibpath_var=unsupported
-runpath_var=
-link_all_deplibs=unknown
-always_export_symbols=no
-export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | sed '\''s/.* //'\'' | sort | uniq > $export_symbols'
-# include_expsyms should be a list of space-separated symbols to be *always*
-# included in the symbol list
-include_expsyms=
-# exclude_expsyms can be an egrep regular expression of symbols to exclude
-# it will be wrapped by ` (' and `)$', so one must not match beginning or
-# end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
-# as well as any symbol that contains `d'.
-exclude_expsyms="_GLOBAL_OFFSET_TABLE_"
-# Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
-# platforms (ab)use it in PIC code, but their linkers get confused if
-# the symbol is explicitly referenced.  Since portable code cannot
-# rely on this symbol name, it's probably fine to never include it in
-# preloaded symbol tables.
-extract_expsyms_cmds=
-
-case $host_os in
-cygwin* | mingw* | pw32* )
-  # FIXME: the MSVC++ port hasn't been tested in a loooong time
-  # When not using gcc, we currently assume that we are using
-  # Microsoft Visual C++.
-  if test "$GCC" != yes; then
-    with_gnu_ld=no
-  fi
-  ;;
-
-esac
-
-ld_shlibs=yes
-if test "$with_gnu_ld" = yes; then
-  # If archive_cmds runs LD, not CC, wlarc should be empty
-  wlarc='${wl}'
-
-  # See if GNU ld supports shared libraries.
-  case $host_os in
-  aix3* | aix4* | aix5*)
-    # On AIX, the GNU linker is very broken
-    # Note:Check GNU linker on AIX 5-IA64 when/if it becomes available.
-    ld_shlibs=no
-    cat <<EOF 1>&2
-
-*** Warning: the GNU linker, at least up to release 2.9.1, is reported
-*** to be unable to reliably create shared libraries on AIX.
-*** Therefore, libtool is disabling shared libraries support.  If you
-*** really care for shared libraries, you may want to modify your PATH
-*** so that a non-GNU linker is found, and then restart.
-
-EOF
-    ;;
-
-  amigaos*)
-    archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-    hardcode_libdir_flag_spec='-L$libdir'
-    hardcode_minus_L=yes
-
-    # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
-    # that the semantics of dynamic libraries on AmigaOS, at least up
-    # to version 4, is to share data among multiple programs linked
-    # with the same dynamic library.  Since this doesn't match the
-    # behavior of shared libraries on other platforms, we can use
-    # them.
-    ld_shlibs=no
-    ;;
-
-  beos*)
-    if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
-      allow_undefined_flag=unsupported
-      # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
-      # support --undefined.  This deserves some investigation.  FIXME
-      archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-    else
-      ld_shlibs=no
-    fi
-    ;;
-
-  cygwin* | mingw* | pw32*)
-    # hardcode_libdir_flag_spec is actually meaningless, as there is
-    # no search path for DLLs.
-    hardcode_libdir_flag_spec='-L$libdir'
-    allow_undefined_flag=unsupported
-    always_export_symbols=yes
-
-    extract_expsyms_cmds='test -f $output_objdir/impgen.c || \
-      sed -e "/^# \/\* impgen\.c starts here \*\//,/^# \/\* impgen.c ends here \*\// { s/^# //;s/^# *$//; p; }" -e d < $''0 > $output_objdir/impgen.c~
-      test -f $output_objdir/impgen.exe || (cd $output_objdir && \
-      if test "x$HOST_CC" != "x" ; then $HOST_CC -o impgen impgen.c ; \
-      else $CC -o impgen impgen.c ; fi)~
-      $output_objdir/impgen $dir/$soroot > $output_objdir/$soname-def'
-
-    old_archive_from_expsyms_cmds='$DLLTOOL --as=$AS --dllname $soname --def $output_objdir/$soname-def --output-lib $output_objdir/$newlib'
-
-    # cygwin and mingw dlls have different entry points and sets of symbols
-    # to exclude.
-    # FIXME: what about values for MSVC?
-    dll_entry=__cygwin_dll_entry@12
-    dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12~
-    case $host_os in
-    mingw*)
-      # mingw values
-      dll_entry=_DllMainCRTStartup@12
-      dll_exclude_symbols=DllMain@12,DllMainCRTStartup@12,DllEntryPoint@12~
-      ;;
-    esac
-
-    # mingw and cygwin differ, and it's simplest to just exclude the union
-    # of the two symbol sets.
-    dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12,DllMainCRTStartup@12,DllEntryPoint@12
-
-    # recent cygwin and mingw systems supply a stub DllMain which the user
-    # can override, but on older systems we have to supply one (in ltdll.c)
-    if test "x$lt_cv_need_dllmain" = "xyes"; then
-      ltdll_obj='$output_objdir/$soname-ltdll.'"$ac_objext "
-      ltdll_cmds='test -f $output_objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < [$]0 > $output_objdir/$soname-ltdll.c~
-       test -f $output_objdir/$soname-ltdll.$ac_objext || (cd $output_objdir && $CC -c $soname-ltdll.c)~'
-    else
-      ltdll_obj=
-      ltdll_cmds=
-    fi
-
-    # Extract the symbol export list from an `--export-all' def file,
-    # then regenerate the def file from the symbol export list, so that
-    # the compiled dll only exports the symbol export list.
-    # Be careful not to strip the DATA tag left be newer dlltools.
-    export_symbols_cmds="$ltdll_cmds"'
-      $DLLTOOL --export-all --exclude-symbols '$dll_exclude_symbols' --output-def $output_objdir/$soname-def '$ltdll_obj'$libobjs $convenience~
-      sed -e "1,/EXPORTS/d" -e "s/ @ [0-9]*//" -e "s/ *;.*$//" < $output_objdir/$soname-def > $export_symbols'
-
-    # If the export-symbols file already is a .def file (1st line
-    # is EXPORTS), use it as is.
-    # If DATA tags from a recent dlltool are present, honour them!
-    archive_expsym_cmds='if test "x`head -1 $export_symbols`" = xEXPORTS; then
-        cp $export_symbols $output_objdir/$soname-def;
-      else
-        echo EXPORTS > $output_objdir/$soname-def;
-        _lt_hint=1;
-        cat $export_symbols | while read symbol; do
-         set dummy \$symbol;
-         case \$# in
-           2) echo "   \$2 @ \$_lt_hint ; " >> $output_objdir/$soname-def;;
-           *) echo "     \$2 @ \$_lt_hint \$3 ; " >> $output_objdir/$soname-def;;
-         esac;
-         _lt_hint=`expr 1 + \$_lt_hint`;
-        done;
-      fi~
-      '"$ltdll_cmds"'
-      $CC -Wl,--base-file,$output_objdir/$soname-base '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags~
-      $DLLTOOL --as=$AS --dllname $soname --exclude-symbols '$dll_exclude_symbols' --def $output_objdir/$soname-def --base-file $output_objdir/$soname-base --output-exp $output_objdir/$soname-exp~
-      $CC -Wl,--base-file,$output_objdir/$soname-base $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags~
-      $DLLTOOL --as=$AS --dllname $soname --exclude-symbols '$dll_exclude_symbols' --def $output_objdir/$soname-def --base-file $output_objdir/$soname-base --output-exp $output_objdir/$soname-exp --output-lib $output_objdir/$libname.dll.a~
-      $CC $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags'
-    ;;
-
-  netbsd*)
-    if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-      archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
-      wlarc=
-    else
-      archive_cmds='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-      archive_expsym_cmds='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-    fi
-    ;;
-
-  solaris* | sysv5*)
-    if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then
-      ld_shlibs=no
-      cat <<EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems.  Therefore, libtool
-*** is disabling shared libraries support.  We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer.  Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-EOF
-    elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
-      archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-      archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-    else
-      ld_shlibs=no
-    fi
-    ;;
-
-  sunos4*)
-    archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-    wlarc=
-    hardcode_direct=yes
-    hardcode_shlibpath_var=no
-    ;;
-
-  *)
-    if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
-      archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-      archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-    else
-      ld_shlibs=no
-    fi
-    ;;
-  esac
-
-  if test "$ld_shlibs" = yes; then
-    runpath_var=LD_RUN_PATH
-    hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir'
-    export_dynamic_flag_spec='${wl}--export-dynamic'
-    case $host_os in
-    cygwin* | mingw* | pw32*)
-      # dlltool doesn't understand --whole-archive et. al.
-      whole_archive_flag_spec=
-      ;;
-    *)
-      # ancient GNU ld didn't support --whole-archive et. al.
-      if $LD --help 2>&1 | egrep 'no-whole-archive' > /dev/null; then
-       whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-      else
-       whole_archive_flag_spec=
-      fi
-      ;;
-    esac
-  fi
-else
-  # PORTME fill in a description of your system's linker (not GNU ld)
-  case $host_os in
-  aix3*)
-    allow_undefined_flag=unsupported
-    always_export_symbols=yes
-    archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
-    # Note: this linker hardcodes the directories in LIBPATH if there
-    # are no directories specified by -L.
-    hardcode_minus_L=yes
-    if test "$GCC" = yes && test -z "$link_static_flag"; then
-      # Neither direct hardcoding nor static linking is supported with a
-      # broken collect2.
-      hardcode_direct=unsupported
-    fi
-    ;;
-
-  aix4* | aix5*)
-    # When large executables or shared objects are built, AIX ld can
-    # have problems creating the table of contents.  If linking a library
-    # or program results in "error TOC overflow" add -mminimal-toc to
-    # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
-    # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
-    archive_cmds=''
-    hardcode_libdir_separator=':'
-    if test "$GCC" = yes; then
-      collect2name=`${CC} -print-prog-name=collect2`
-      if test -f "$collect2name" && \
-        strings "$collect2name" | grep resolve_lib_name >/dev/null
-      then
-       # We have reworked collect2
-       hardcode_direct=yes
-      else
-        # We have old collect2
-        hardcode_direct=unsupported
-        # It fails to find uninstalled libraries when the uninstalled
-        # path is not listed in the libpath.  Setting hardcode_minus_L
-        # to unsupported forces relinking
-        hardcode_minus_L=yes
-        hardcode_libdir_flag_spec='-L$libdir'
-        hardcode_libdir_separator=
-      fi
-      shared_flag='-shared'
-    else
-      if test "$host_cpu" = ia64; then
-        shared_flag='-G'
-      else
-        shared_flag='${wl}-bM:SRE'
-      fi
-      hardcode_direct=yes
-    fi
-
-    if test "$host_cpu" = ia64; then
-      # On IA64, the linker does run time linking by default, so we don't
-      # have to do anything special.
-      aix_use_runtimelinking=no
-      exp_sym_flag='-Bexport'
-      no_entry_flag=""
-    else
-      # Test if we are trying to use run time linking, or normal AIX style linking.
-      # If -brtl is somewhere in LDFLAGS, we need to do run time linking.
-      aix_use_runtimelinking=no
-      for ld_flag in $LDFLAGS; do
-        if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl" ); then
-          aix_use_runtimelinking=yes
-          break
-        fi
-      done
-      exp_sym_flag='-bexport'
-      no_entry_flag='-bnoentry'
-    fi
-    # It seems that -bexpall can do strange things, so it is better to
-    # generate a list of symbols to export.
-    always_export_symbols=yes
-    if test "$aix_use_runtimelinking" = yes; then
-      hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:/usr/lib:/lib'
-      allow_undefined_flag=' -Wl,-G'
-      archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
-    else
-      if test "$host_cpu" = ia64; then
-        hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
-       allow_undefined_flag="-znodefs"
-        archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname ${wl}-h$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
-      else
-        hardcode_libdir_flag_spec='${wl}-bnolibpath ${wl}-blibpath:$libdir:/usr/lib:/lib'
-        # Warning - without using the other run time loading flags, -berok will
-        #           link without error, but may produce a broken library.
-        allow_undefined_flag='${wl}-berok'
-        # This is a bit strange, but is similar to how AIX traditionally builds
-        # it's shared libraries.
-        archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"' ~$AR -crlo $objdir/$libname$release.a $objdir/$soname'
-      fi
-    fi
-    ;;
-
-  amigaos*)
-    archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-    hardcode_libdir_flag_spec='-L$libdir'
-    hardcode_minus_L=yes
-    # see comment about different semantics on the GNU ld section
-    ld_shlibs=no
-    ;;
-
-  cygwin* | mingw* | pw32*)
-    # When not using gcc, we currently assume that we are using
-    # Microsoft Visual C++.
-    # hardcode_libdir_flag_spec is actually meaningless, as there is
-    # no search path for DLLs.
-    hardcode_libdir_flag_spec=' '
-    allow_undefined_flag=unsupported
-    # Tell ltmain to make .lib files, not .a files.
-    libext=lib
-    # FIXME: Setting linknames here is a bad hack.
-    archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | sed -e '\''s/ -lc$//'\''` -link -dll~linknames='
-    # The linker will automatically build a .lib file if we build a DLL.
-    old_archive_from_new_cmds='true'
-    # FIXME: Should let the user specify the lib program.
-    old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs'
-    fix_srcfile_path='`cygpath -w "$srcfile"`'
-    ;;
-
-  darwin* | rhapsody*)
-    allow_undefined_flag='-undefined suppress'
-    # FIXME: Relying on posixy $() will cause problems for
-    #        cross-compilation, but unfortunately the echo tests do not
-    #        yet detect zsh echo's removal of \ escapes.
-    archive_cmds='$CC $(test .$module = .yes && echo -bundle || echo -dynamiclib) $allow_undefined_flag -o $lib $libobjs $deplibs$linkopts -install_name $rpath/$soname $(test -n "$verstring" -a x$verstring != x0.0 && echo $verstring)'
-    # We need to add '_' to the symbols in $export_symbols first
-    #archive_expsym_cmds="$archive_cmds"' && strip -s $export_symbols'
-    hardcode_direct=yes
-    hardcode_shlibpath_var=no
-    whole_archive_flag_spec='-all_load $convenience'
-    ;;
-
-  freebsd1*)
-    ld_shlibs=no
-    ;;
-
-  # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
-  # support.  Future versions do this automatically, but an explicit c++rt0.o
-  # does not break anything, and helps significantly (at the cost of a little
-  # extra space).
-  freebsd2.2*)
-    archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
-    hardcode_libdir_flag_spec='-R$libdir'
-    hardcode_direct=yes
-    hardcode_shlibpath_var=no
-    ;;
-
-  # Unfortunately, older versions of FreeBSD 2 do not have this feature.
-  freebsd2*)
-    archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-    hardcode_direct=yes
-    hardcode_minus_L=yes
-    hardcode_shlibpath_var=no
-    ;;
-
-  # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
-  freebsd*)
-    archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
-    hardcode_libdir_flag_spec='-R$libdir'
-    hardcode_direct=yes
-    hardcode_shlibpath_var=no
-    ;;
-
-  hpux9* | hpux10* | hpux11*)
-    case $host_os in
-    hpux9*) archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ;;
-    *) archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' ;;
-    esac
-    hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
-    hardcode_libdir_separator=:
-    hardcode_direct=yes
-    hardcode_minus_L=yes # Not in the search PATH, but as the default
-                        # location of the library.
-    export_dynamic_flag_spec='${wl}-E'
-    ;;
-
-  irix5* | irix6*)
-    if test "$GCC" = yes; then
-      archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-    else
-      archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-    fi
-    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-    hardcode_libdir_separator=:
-    link_all_deplibs=yes
-    ;;
-
-  netbsd*)
-    if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-      archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
-    else
-      archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
-    fi
-    hardcode_libdir_flag_spec='-R$libdir'
-    hardcode_direct=yes
-    hardcode_shlibpath_var=no
-    ;;
-
-  newsos6)
-    archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
-    hardcode_direct=yes
-    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-    hardcode_libdir_separator=:
-    hardcode_shlibpath_var=no
-    ;;
-
-  openbsd*)
-    archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-    hardcode_libdir_flag_spec='-R$libdir'
-    hardcode_direct=yes
-    hardcode_shlibpath_var=no
-    ;;
-
-  os2*)
-    hardcode_libdir_flag_spec='-L$libdir'
-    hardcode_minus_L=yes
-    allow_undefined_flag=unsupported
-    archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
-    old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
-    ;;
-
-  osf3*)
-    if test "$GCC" = yes; then
-      allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
-      archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-    else
-      allow_undefined_flag=' -expect_unresolved \*'
-      archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-    fi
-    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-    hardcode_libdir_separator=:
-    ;;
-
-  osf4* | osf5*)       # as osf3* with the addition of -msym flag
-    if test "$GCC" = yes; then
-      allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
-      archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-    else
-      allow_undefined_flag=' -expect_unresolved \*'
-      archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-      archive_expsym_cmds='for i in `cat $export_symbols`; do printf "-exported_symbol " >> $lib.exp; echo "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
-      $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp'
-
-      #Both c and cxx compiler support -rpath directly
-      hardcode_libdir_flag_spec='-rpath $libdir'
-    fi
-    hardcode_libdir_separator=:
-    ;;
-
-  sco3.2v5*)
-    archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-    hardcode_shlibpath_var=no
-    runpath_var=LD_RUN_PATH
-    hardcode_runpath_var=yes
-    ;;
-
-  solaris*)
-    no_undefined_flag=' -z defs'
-    # $CC -shared without GNU ld will not create a library from C++
-    # object files and a static libstdc++, better avoid it by now
-    archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
-    archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-               $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
-    hardcode_libdir_flag_spec='-R$libdir'
-    hardcode_shlibpath_var=no
-    case $host_os in
-    solaris2.[0-5] | solaris2.[0-5].*) ;;
-    *) # Supported since Solaris 2.6 (maybe 2.5.1?)
-      whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;;
-    esac
-    link_all_deplibs=yes
-    ;;
-
-  sunos4*)
-    if test "x$host_vendor" = xsequent; then
-      # Use $CC to link under sequent, because it throws in some extra .o
-      # files that make .init and .fini sections work.
-      archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
-    else
-      archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
-    fi
-    hardcode_libdir_flag_spec='-L$libdir'
-    hardcode_direct=yes
-    hardcode_minus_L=yes
-    hardcode_shlibpath_var=no
-    ;;
-
-  sysv4)
-    if test "x$host_vendor" = xsno; then
-      archive_cmds='$LD -G -Bsymbolic -h $soname -o $lib $libobjs $deplibs $linkopts'
-      hardcode_direct=yes # is this really true???
-    else
-      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_direct=no #Motorola manual says yes, but my tests say they lie
-    fi
-    runpath_var='LD_RUN_PATH'
-    hardcode_shlibpath_var=no
-    ;;
-
-  sysv4.3*)
-    archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-    hardcode_shlibpath_var=no
-    export_dynamic_flag_spec='-Bexport'
-    ;;
-
-  sysv5*)
-    no_undefined_flag=' -z text'
-    # $CC -shared without GNU ld will not create a library from C++
-    # object files and a static libstdc++, better avoid it by now
-    archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
-    archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-               $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
-    hardcode_libdir_flag_spec=
-    hardcode_shlibpath_var=no
-    runpath_var='LD_RUN_PATH'
-    ;;
-
-  uts4*)
-    archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-    hardcode_libdir_flag_spec='-L$libdir'
-    hardcode_shlibpath_var=no
-    ;;
-
-  dgux*)
-    archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-    hardcode_libdir_flag_spec='-L$libdir'
-    hardcode_shlibpath_var=no
-    ;;
-
-  sysv4*MP*)
-    if test -d /usr/nec; then
-      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_shlibpath_var=no
-      runpath_var=LD_RUN_PATH
-      hardcode_runpath_var=yes
-      ld_shlibs=yes
-    fi
-    ;;
-
-  sysv4.2uw2*)
-    archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
-    hardcode_direct=yes
-    hardcode_minus_L=no
-    hardcode_shlibpath_var=no
-    hardcode_runpath_var=yes
-    runpath_var=LD_RUN_PATH
-    ;;
-
-  sysv5uw7* | unixware7*)
-    no_undefined_flag='${wl}-z ${wl}text'
-    if test "$GCC" = yes; then
-      archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-    else
-      archive_cmds='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-    fi
-    runpath_var='LD_RUN_PATH'
-    hardcode_shlibpath_var=no
-    ;;
-
-  *)
-    ld_shlibs=no
-    ;;
-  esac
-fi
-echo "$ac_t""$ld_shlibs" 1>&6
-test "$ld_shlibs" = no && can_build_shared=no
-
-# Check hardcoding attributes.
-echo $ac_n "checking how to hardcode library paths into programs""... $ac_c" 1>&6
-echo "configure:3583: checking how to hardcode library paths into programs" >&5
-hardcode_action=
-if test -n "$hardcode_libdir_flag_spec" || \
-   test -n "$runpath_var"; then
-
-  # We can hardcode non-existant directories.
-  if test "$hardcode_direct" != no &&
-     # If the only mechanism to avoid hardcoding is shlibpath_var, we
-     # have to relink, otherwise we might link with an installed library
-     # when we should be linking with a yet-to-be-installed one
-     ## test "$hardcode_shlibpath_var" != no &&
-     test "$hardcode_minus_L" != no; then
-    # Linking always hardcodes the temporary library directory.
-    hardcode_action=relink
-  else
-    # We can link without hardcoding, and we can hardcode nonexisting dirs.
-    hardcode_action=immediate
-  fi
-else
-  # We cannot hardcode anything, or else we can only hardcode existing
-  # directories.
-  hardcode_action=unsupported
-fi
-echo "$ac_t""$hardcode_action" 1>&6
-
-striplib=
-old_striplib=
-echo $ac_n "checking whether stripping libraries is possible""... $ac_c" 1>&6
-echo "configure:3611: checking whether stripping libraries is possible" >&5
-if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
-  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
-  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
-  echo "$ac_t""yes" 1>&6
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-reload_cmds='$LD$reload_flag -o $output$reload_objs'
-test -z "$deplibs_check_method" && deplibs_check_method=unknown
-
-# PORTME Fill in your ld.so characteristics
-echo $ac_n "checking dynamic linker characteristics""... $ac_c" 1>&6
-echo "configure:3625: checking dynamic linker characteristics" >&5
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-
-case $host_os in
-aix3*)
-  version_type=linux
-  library_names_spec='${libname}${release}.so$versuffix $libname.a'
-  shlibpath_var=LIBPATH
-
-  # AIX has no versioning support, so we append a major version to the name.
-  soname_spec='${libname}${release}.so$major'
-  ;;
-
-aix4* | aix5*)
-  version_type=linux
-  if test "$host_cpu" = ia64; then
-    # AIX 5 supports IA64
-    library_names_spec='${libname}${release}.so$major ${libname}${release}.so$versuffix $libname.so'
-    shlibpath_var=LD_LIBRARY_PATH
-  else
-    # With GCC up to 2.95.x, collect2 would create an import file
-    # for dependence libraries.  The import file would start with
-    # the line `#! .'.  This would cause the generated library to
-    # depend on `.', always an invalid library.  This was fixed in
-    # development snapshots of GCC prior to 3.0.
-    case $host_os in
-       aix4 | aix4.[01] | aix4.[01].*)
-      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
-           echo ' yes '
-           echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
-        :
-      else
-        can_build_shared=no
-      fi
-      ;;
-    esac
-    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
-    # soname into executable. Probably we can add versioning support to
-    # collect2, so additional links can be useful in future.
-    if test "$aix_use_runtimelinking" = yes; then
-      # If using run time linking (on AIX 4.2 or later) use lib<name>.so instead of
-      # lib<name>.a to let people know that these are not typical AIX shared libraries.
-      library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
-    else
-      # We preserve .a as extension for shared libraries through AIX4.2
-      # and later when we are not doing run time linking.
-      library_names_spec='${libname}${release}.a $libname.a'
-      soname_spec='${libname}${release}.so$major'
-    fi
-    shlibpath_var=LIBPATH
-    deplibs_check_method=pass_all
-  fi
-  ;;
-
-amigaos*)
-  library_names_spec='$libname.ixlibrary $libname.a'
-  # Create ${libname}_ixlibrary.a entries in /sys/libs.
-  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done'
-  ;;
-
-beos*)
-  library_names_spec='${libname}.so'
-  dynamic_linker="$host_os ld.so"
-  shlibpath_var=LIBRARY_PATH
-  ;;
-
-bsdi4*)
-  version_type=linux
-  need_version=no
-  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
-  soname_spec='${libname}${release}.so$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
-  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
-  export_dynamic_flag_spec=-rdynamic
-  # the default ld.so.conf also contains /usr/contrib/lib and
-  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
-  # libtool to hard-code these into programs
-  ;;
-
-cygwin* | mingw* | pw32*)
-  version_type=windows
-  need_version=no
-  need_lib_prefix=no
-  case $GCC,$host_os in
-  yes,cygwin*)
-    library_names_spec='$libname.dll.a'
-    soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll'
-    postinstall_cmds='dlpath=`bash 2>&1 -c '\''. $dir/${file}i;echo \$dlname'\''`~
-      dldir=$destdir/`dirname \$dlpath`~
-      test -d \$dldir || mkdir -p \$dldir~
-      $install_prog .libs/$dlname \$dldir/$dlname'
-    postuninstall_cmds='dldll=`bash 2>&1 -c '\''. $file; echo \$dlname'\''`~
-      dlpath=$dir/\$dldll~
-       $rm \$dlpath'
-    ;;
-  yes,mingw*)
-    library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll'
-    sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | sed -e "s/^libraries://" -e "s/;/ /g"`
-    ;;
-  yes,pw32*)
-    library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | sed -e 's/./-/g'`${versuffix}.dll'
-    ;;
-  *)
-    library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.lib'
-    ;;
-  esac
-  dynamic_linker='Win32 ld.exe'
-  # FIXME: first we should search . and the directory the executable is in
-  shlibpath_var=PATH
-  ;;
-
-darwin* | rhapsody*)
-  dynamic_linker="$host_os dyld"
-  version_type=darwin
-  need_lib_prefix=no
-  need_version=no
-  # FIXME: Relying on posixy $() will cause problems for
-  #        cross-compilation, but unfortunately the echo tests do not
-  #        yet detect zsh echo's removal of \ escapes.
-  library_names_spec='${libname}${release}${versuffix}.$(test .$module = .yes && echo so || echo dylib) ${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib) ${libname}.$(test .$module = .yes && echo so || echo dylib)'
-  soname_spec='${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib)'
-  shlibpath_overrides_runpath=yes
-  shlibpath_var=DYLD_LIBRARY_PATH
-  ;;
-
-freebsd1*)
-  dynamic_linker=no
-  ;;
-
-freebsd*)
-  objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
-  version_type=freebsd-$objformat
-  case $version_type in
-    freebsd-elf*)
-      library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so'
-      need_version=no
-      need_lib_prefix=no
-      ;;
-    freebsd-*)
-      library_names_spec='${libname}${release}.so$versuffix $libname.so$versuffix'
-      need_version=yes
-      ;;
-  esac
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_os in
-  freebsd2*)
-    shlibpath_overrides_runpath=yes
-    ;;
-  *)
-    shlibpath_overrides_runpath=no
-    hardcode_into_libs=yes
-    ;;
-  esac
-  ;;
-
-gnu*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so${major} ${libname}.so'
-  soname_spec='${libname}${release}.so$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  hardcode_into_libs=yes
-  ;;
-
-hpux9* | hpux10* | hpux11*)
-  # Give a soname corresponding to the major version so that dld.sl refuses to
-  # link against other versions.
-  dynamic_linker="$host_os dld.sl"
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  shlibpath_var=SHLIB_PATH
-  shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
-  library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl'
-  soname_spec='${libname}${release}.sl$major'
-  # HP-UX runs *really* slowly unless shared libraries are mode 555.
-  postinstall_cmds='chmod 555 $lib'
-  ;;
-
-irix5* | irix6*)
-  version_type=irix
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}.so$major'
-  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so $libname.so'
-  case $host_os in
-  irix5*)
-    libsuff= shlibsuff=
-    ;;
-  *)
-    case $LD in # libtool.m4 will add one of these switches to LD
-    *-32|*"-32 ") libsuff= shlibsuff= libmagic=32-bit;;
-    *-n32|*"-n32 ") libsuff=32 shlibsuff=N32 libmagic=N32;;
-    *-64|*"-64 ") libsuff=64 shlibsuff=64 libmagic=64-bit;;
-    *) libsuff= shlibsuff= libmagic=never-match;;
-    esac
-    ;;
-  esac
-  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
-  shlibpath_overrides_runpath=no
-  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
-  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
-  ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*)
-  dynamic_linker=no
-  ;;
-
-# This must be Linux ELF.
-linux-gnu*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
-  soname_spec='${libname}${release}.so$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  # This implies no fast_install, which is unacceptable.
-  # Some rework will be needed to allow for fast_install
-  # before this can be enabled.
-  hardcode_into_libs=yes
-
-  # We used to test for /lib/ld.so.1 and disable shared libraries on
-  # powerpc, because MkLinux only supported shared libraries with the
-  # GNU dynamic linker.  Since this was broken with cross compilers,
-  # most powerpc-linux boxes support dynamic linking these days and
-  # people can always --disable-shared, the test was removed, and we
-  # assume the GNU/Linux dynamic linker is in use.
-  dynamic_linker='GNU/Linux ld.so'
-  ;;
-
-netbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-    library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
-    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-    dynamic_linker='NetBSD (a.out) ld.so'
-  else
-    library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so ${libname}.so'
-    soname_spec='${libname}${release}.so$major'
-    dynamic_linker='NetBSD ld.elf_so'
-  fi
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  ;;
-
-newsos6)
-  version_type=linux
-  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-openbsd*)
-  version_type=sunos
-  if test "$with_gnu_ld" = yes; then
-    need_lib_prefix=no
-    need_version=no
-  fi
-  library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-os2*)
-  libname_spec='$name'
-  need_lib_prefix=no
-  library_names_spec='$libname.dll $libname.a'
-  dynamic_linker='OS/2 ld.exe'
-  shlibpath_var=LIBPATH
-  ;;
-
-osf3* | osf4* | osf5*)
-  version_type=osf
-  need_version=no
-  soname_spec='${libname}${release}.so'
-  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
-  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
-  ;;
-
-sco3.2v5*)
-  version_type=osf
-  soname_spec='${libname}${release}.so$major'
-  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-solaris*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
-  soname_spec='${libname}${release}.so$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  # ldd complains unless libraries are executable
-  postinstall_cmds='chmod +x $lib'
-  ;;
-
-sunos4*)
-  version_type=sunos
-  library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
-  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  if test "$with_gnu_ld" = yes; then
-    need_lib_prefix=no
-  fi
-  need_version=yes
-  ;;
-
-sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-  version_type=linux
-  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
-  soname_spec='${libname}${release}.so$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_vendor in
-    sni)
-      shlibpath_overrides_runpath=no
-      ;;
-    motorola)
-      need_lib_prefix=no
-      need_version=no
-      shlibpath_overrides_runpath=no
-      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
-      ;;
-  esac
-  ;;
-
-uts4*)
-  version_type=linux
-  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
-  soname_spec='${libname}${release}.so$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-dgux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
-  soname_spec='${libname}${release}.so$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-sysv4*MP*)
-  if test -d /usr/nec ;then
-    version_type=linux
-    library_names_spec='$libname.so.$versuffix $libname.so.$major $libname.so'
-    soname_spec='$libname.so.$major'
-    shlibpath_var=LD_LIBRARY_PATH
-  fi
-  ;;
-
-*)
-  dynamic_linker=no
-  ;;
-esac
-echo "$ac_t""$dynamic_linker" 1>&6
-test "$dynamic_linker" = no && can_build_shared=no
-
-# Report the final consequences.
-echo $ac_n "checking if libtool supports shared libraries""... $ac_c" 1>&6
-echo "configure:4011: checking if libtool supports shared libraries" >&5
-echo "$ac_t""$can_build_shared" 1>&6
-
-if test "$hardcode_action" = relink; then
-  # Fast installation is not supported
-  enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
-     test "$enable_shared" = no; then
-  # Fast installation is not necessary
-  enable_fast_install=needless
-fi
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
-  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-if test "x$enable_dlopen" != xyes; then
-  enable_dlopen=unknown
-  enable_dlopen_self=unknown
-  enable_dlopen_self_static=unknown
-else
-  lt_cv_dlopen=no
-  lt_cv_dlopen_libs=
-
-  case $host_os in
-  beos*)
-    lt_cv_dlopen="load_add_on"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-    ;;
-
-  cygwin* | mingw* | pw32*)
-    lt_cv_dlopen="LoadLibrary"
-    lt_cv_dlopen_libs=
-   ;;
-
-  *)
-    echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
-echo "configure:4050: checking for dlopen in -ldl" >&5
-ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  ac_save_LIBS="$LIBS"
-LIBS="-ldl  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 4058 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char dlopen();
-
-int main() {
-dlopen()
-; return 0; }
-EOF
-if { (eval echo configure:4069: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
-  echo "$ac_t""no" 1>&6
-echo $ac_n "checking for dlopen""... $ac_c" 1>&6
-echo "configure:4088: checking for dlopen" >&5
-if eval "test \"`echo '$''{'ac_cv_func_dlopen'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat > conftest.$ac_ext <<EOF
-#line 4093 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char dlopen(); below.  */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char dlopen();
-
-int main() {
-
-/* 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_dlopen) || defined (__stub___dlopen)
-choke me
-#else
-dlopen();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:4116: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_func_dlopen=yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_func_dlopen=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'dlopen`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  lt_cv_dlopen="dlopen"
-else
-  echo "$ac_t""no" 1>&6
-echo $ac_n "checking for shl_load""... $ac_c" 1>&6
-echo "configure:4134: checking for shl_load" >&5
-if eval "test \"`echo '$''{'ac_cv_func_shl_load'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat > conftest.$ac_ext <<EOF
-#line 4139 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char shl_load(); below.  */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char shl_load();
-
-int main() {
-
-/* 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_shl_load) || defined (__stub___shl_load)
-choke me
-#else
-shl_load();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:4162: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_func_shl_load=yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_func_shl_load=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'shl_load`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  lt_cv_dlopen="shl_load"
-else
-  echo "$ac_t""no" 1>&6
-echo $ac_n "checking for dlopen in -lsvld""... $ac_c" 1>&6
-echo "configure:4180: checking for dlopen in -lsvld" >&5
-ac_lib_var=`echo svld'_'dlopen | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  ac_save_LIBS="$LIBS"
-LIBS="-lsvld  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 4188 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char dlopen();
-
-int main() {
-dlopen()
-; return 0; }
-EOF
-if { (eval echo configure:4199: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
-else
-  echo "$ac_t""no" 1>&6
-echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6
-echo "configure:4218: checking for shl_load in -ldld" >&5
-ac_lib_var=`echo dld'_'shl_load | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  ac_save_LIBS="$LIBS"
-LIBS="-ldld  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 4226 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char shl_load();
-
-int main() {
-shl_load()
-; return 0; }
-EOF
-if { (eval echo configure:4237: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-           
-fi
-
-          
-fi
-
-        
-fi
-
-      
-fi
-
-    ;;
-  esac
-
-  if test "x$lt_cv_dlopen" != xno; then
-    enable_dlopen=yes
-  else
-    enable_dlopen=no
-  fi
-
-  case $lt_cv_dlopen in
-  dlopen)
-    save_CPPFLAGS="$CPPFLAGS"
-        test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
-
-    save_LDFLAGS="$LDFLAGS"
-    eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
-
-    save_LIBS="$LIBS"
-    LIBS="$lt_cv_dlopen_libs $LIBS"
-
-    echo $ac_n "checking whether a program can dlopen itself""... $ac_c" 1>&6
-echo "configure:4290: checking whether a program can dlopen itself" >&5
-if eval "test \"`echo '$''{'lt_cv_dlopen_self'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-         if test "$cross_compiling" = yes; then :
-  lt_cv_dlopen_self=cross
-else
-    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-  lt_status=$lt_dlunknown
-  cat > conftest.$ac_ext <<EOF
-#line 4300 "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-#  define LT_DLGLOBAL          RTLD_GLOBAL
-#else
-#  ifdef DL_GLOBAL
-#    define LT_DLGLOBAL                DL_GLOBAL
-#  else
-#    define LT_DLGLOBAL                0
-#  endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
-   find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-#  ifdef RTLD_LAZY
-#    define LT_DLLAZY_OR_NOW           RTLD_LAZY
-#  else
-#    ifdef DL_LAZY
-#      define LT_DLLAZY_OR_NOW         DL_LAZY
-#    else
-#      ifdef RTLD_NOW
-#        define LT_DLLAZY_OR_NOW       RTLD_NOW
-#      else
-#        ifdef DL_NOW
-#          define LT_DLLAZY_OR_NOW     DL_NOW
-#        else
-#          define LT_DLLAZY_OR_NOW     0
-#        endif
-#      endif
-#    endif
-#  endif
-#endif
-
-#ifdef __cplusplus
-extern "C" void exit (int);
-#endif
-
-void fnord() { int i=42;}
-int main ()
-{
-  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-  int status = $lt_dlunknown;
-
-  if (self)
-    {
-      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
-      /* dlclose (self); */
-    }
-
-    exit (status);
-}
-EOF
-  if { (eval echo configure:4361: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} 2>/dev/null; then
-    (./conftest; exit; ) 2>/dev/null
-    lt_status=$?
-    case x$lt_status in
-      x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
-      x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
-      x$lt_unknown|x*) lt_cv_dlopen_self=no ;;
-    esac
-  else :
-    # compilation failed
-    lt_cv_dlopen_self=no
-  fi
-fi
-rm -fr conftest*
-
-    
-fi
-
-echo "$ac_t""$lt_cv_dlopen_self" 1>&6
-
-    if test "x$lt_cv_dlopen_self" = xyes; then
-      LDFLAGS="$LDFLAGS $link_static_flag"
-      echo $ac_n "checking whether a statically linked program can dlopen itself""... $ac_c" 1>&6
-echo "configure:4384: checking whether a statically linked program can dlopen itself" >&5
-if eval "test \"`echo '$''{'lt_cv_dlopen_self_static'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-         if test "$cross_compiling" = yes; then :
-  lt_cv_dlopen_self_static=cross
-else
-    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-  lt_status=$lt_dlunknown
-  cat > conftest.$ac_ext <<EOF
-#line 4394 "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-#  define LT_DLGLOBAL          RTLD_GLOBAL
-#else
-#  ifdef DL_GLOBAL
-#    define LT_DLGLOBAL                DL_GLOBAL
-#  else
-#    define LT_DLGLOBAL                0
-#  endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
-   find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-#  ifdef RTLD_LAZY
-#    define LT_DLLAZY_OR_NOW           RTLD_LAZY
-#  else
-#    ifdef DL_LAZY
-#      define LT_DLLAZY_OR_NOW         DL_LAZY
-#    else
-#      ifdef RTLD_NOW
-#        define LT_DLLAZY_OR_NOW       RTLD_NOW
-#      else
-#        ifdef DL_NOW
-#          define LT_DLLAZY_OR_NOW     DL_NOW
-#        else
-#          define LT_DLLAZY_OR_NOW     0
-#        endif
-#      endif
-#    endif
-#  endif
-#endif
-
-#ifdef __cplusplus
-extern "C" void exit (int);
-#endif
-
-void fnord() { int i=42;}
-int main ()
-{
-  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-  int status = $lt_dlunknown;
-
-  if (self)
-    {
-      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
-      /* dlclose (self); */
-    }
-
-    exit (status);
-}
-EOF
-  if { (eval echo configure:4455: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} 2>/dev/null; then
-    (./conftest; exit; ) 2>/dev/null
-    lt_status=$?
-    case x$lt_status in
-      x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
-      x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
-      x$lt_unknown|x*) lt_cv_dlopen_self_static=no ;;
-    esac
-  else :
-    # compilation failed
-    lt_cv_dlopen_self_static=no
-  fi
-fi
-rm -fr conftest*
-
-      
-fi
-
-echo "$ac_t""$lt_cv_dlopen_self_static" 1>&6
-    fi
-
-    CPPFLAGS="$save_CPPFLAGS"
-    LDFLAGS="$save_LDFLAGS"
-    LIBS="$save_LIBS"
-    ;;
-  esac
-
-  case $lt_cv_dlopen_self in
-  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
-  *) enable_dlopen_self=unknown ;;
-  esac
-
-  case $lt_cv_dlopen_self_static in
-  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
-  *) enable_dlopen_self_static=unknown ;;
-  esac
-fi
-
-
-if test "$enable_shared" = yes && test "$GCC" = yes; then
-  case $archive_cmds in
-  *'~'*)
-    # FIXME: we may have to deal with multi-command sequences.
-    ;;
-  '$CC '*)
-    # Test whether the compiler implicitly links with -lc since on some
-    # systems, -lgcc has to come before -lc. If gcc already passes -lc
-    # to ld, don't add -lc before -lgcc.
-    echo $ac_n "checking whether -lc should be explicitly linked in""... $ac_c" 1>&6
-echo "configure:4504: checking whether -lc should be explicitly linked in" >&5
-    if eval "test \"`echo '$''{'lt_cv_archive_cmds_need_lc'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  $rm conftest*
-    echo 'static int dummy;' > conftest.$ac_ext
-
-    if { (eval echo configure:4511: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-      soname=conftest
-      lib=conftest
-      libobjs=conftest.$ac_objext
-      deplibs=
-      wl=$lt_cv_prog_cc_wl
-      compiler_flags=-v
-      linker_flags=-v
-      verstring=
-      output_objdir=.
-      libname=conftest
-      save_allow_undefined_flag=$allow_undefined_flag
-      allow_undefined_flag=
-      if { (eval echo configure:4524: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\") 1>&5; (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5; }
-      then
-       lt_cv_archive_cmds_need_lc=no
-      else
-       lt_cv_archive_cmds_need_lc=yes
-      fi
-      allow_undefined_flag=$save_allow_undefined_flag
-    else
-      cat conftest.err 1>&5
-    fi
-fi
-
-    echo "$ac_t""$lt_cv_archive_cmds_need_lc" 1>&6
-    ;;
-  esac
-fi
-need_lc=${lt_cv_archive_cmds_need_lc-yes}
-
-# The second clause should only fire when bootstrapping the
-# libtool distribution, otherwise you forgot to ship ltmain.sh
-# with your package, and you will get complaints that there are
-# no rules to generate ltmain.sh.
-if test -f "$ltmain"; then
-  :
-else
-  # If there is no Makefile yet, we rely on a make rule to execute
-  # `config.status --recheck' to rerun these tests and create the
-  # libtool script then.
-  test -f Makefile && make "$ltmain"
-fi
-
-if test -f "$ltmain"; then
-  trap "$rm \"${ofile}T\"; exit 1" 1 2 15
-  $rm -f "${ofile}T"
-
-  echo creating $ofile
-
-  # Now quote all the things that may contain metacharacters while being
-  # careful not to overquote the AC_SUBSTed values.  We take copies of the
-  # variables and quote the copies for generation of the libtool script.
-  for var in echo old_CC old_CFLAGS \
-    AR AR_FLAGS CC LD LN_S NM SHELL \
-    reload_flag reload_cmds wl \
-    pic_flag link_static_flag no_builtin_flag export_dynamic_flag_spec \
-    thread_safe_flag_spec whole_archive_flag_spec libname_spec \
-    library_names_spec soname_spec \
-    RANLIB old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \
-    old_postuninstall_cmds archive_cmds archive_expsym_cmds postinstall_cmds \
-    postuninstall_cmds extract_expsyms_cmds old_archive_from_expsyms_cmds \
-    old_striplib striplib file_magic_cmd export_symbols_cmds \
-    deplibs_check_method allow_undefined_flag no_undefined_flag \
-    finish_cmds finish_eval global_symbol_pipe global_symbol_to_cdecl \
-    hardcode_libdir_flag_spec hardcode_libdir_separator  \
-    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
-    compiler_c_o compiler_o_lo need_locks exclude_expsyms include_expsyms; do
-
-    case $var in
-    reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \
-    old_postinstall_cmds | old_postuninstall_cmds | \
-    export_symbols_cmds | archive_cmds | archive_expsym_cmds | \
-    extract_expsyms_cmds | old_archive_from_expsyms_cmds | \
-    postinstall_cmds | postuninstall_cmds | \
-    finish_cmds | sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
-      # Double-quote double-evaled strings.
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
-      ;;
-    *)
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
-      ;;
-    esac
-  done
-
-  cat <<__EOF__ > "${ofile}T"
-#! $SHELL
-
-# `$echo "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
-# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
-# NOTE: Changes made to this file will be lost: look at ltmain.sh.
-#
-# Copyright (C) 1996-2000 Free Software Foundation, Inc.
-# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
-#
-# This program 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 of the License, or
-# (at your option) any later version.
-#
-# This program 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Sed that helps us avoid accidentally triggering echo(1) options like -n.
-Xsed="sed -e s/^X//"
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
-
-# ### BEGIN LIBTOOL CONFIG
-
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
-
-# Whether or not to build shared libraries.
-build_libtool_libs=$enable_shared
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$need_lc
-
-# Whether or not to build static libraries.
-build_old_libs=$enable_static
-
-# Whether or not to optimize for fast installation.
-fast_install=$enable_fast_install
-
-# The host system.
-host_alias=$host_alias
-host=$host
-
-# An echo program that does not interpret backslashes.
-echo=$lt_echo
-
-# The archiver.
-AR=$lt_AR
-AR_FLAGS=$lt_AR_FLAGS
-
-# The default C compiler.
-CC=$lt_CC
-
-# Is the compiler the GNU C compiler?
-with_gcc=$GCC
-
-# The linker used to build libraries.
-LD=$lt_LD
-
-# Whether we need hard or soft links.
-LN_S=$lt_LN_S
-
-# A BSD-compatible nm program.
-NM=$lt_NM
-
-# A symbol stripping program
-STRIP=$STRIP
-
-# Used to examine libraries when file_magic_cmd begins "file"
-MAGIC_CMD=$MAGIC_CMD
-
-# Used on cygwin: DLL creation program.
-DLLTOOL="$DLLTOOL"
-
-# Used on cygwin: object dumper.
-OBJDUMP="$OBJDUMP"
-
-# Used on cygwin: assembler.
-AS="$AS"
-
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
-
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag
-reload_cmds=$lt_reload_cmds
-
-# How to pass a linker flag through the compiler.
-wl=$lt_wl
-
-# Object file suffix (normally "o").
-objext="$ac_objext"
-
-# Old archive suffix (normally "a").
-libext="$libext"
-
-# Executable file suffix (normally "").
-exeext="$exeext"
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_pic_flag
-pic_mode=$pic_mode
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_compiler_c_o
-
-# Can we write directly to a .lo ?
-compiler_o_lo=$lt_compiler_o_lo
-
-# Must we lock files when doing compilation ?
-need_locks=$lt_need_locks
-
-# Do we need the lib prefix for modules?
-need_lib_prefix=$need_lib_prefix
-
-# Do we need a version for libraries?
-need_version=$need_version
-
-# Whether dlopen is supported.
-dlopen_support=$enable_dlopen
-
-# Whether dlopen of programs is supported.
-dlopen_self=$enable_dlopen_self
-
-# Whether dlopen of statically linked programs is supported.
-dlopen_self_static=$enable_dlopen_self_static
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_link_static_flag
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_no_builtin_flag
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_whole_archive_flag_spec
-
-# Compiler flag to generate thread-safe objects.
-thread_safe_flag_spec=$lt_thread_safe_flag_spec
-
-# Library versioning type.
-version_type=$version_type
-
-# Format of library name prefix.
-libname_spec=$lt_libname_spec
-
-# List of archive names.  First name is the real one, the rest are links.
-# The last name is the one that the linker finds with -lNAME.
-library_names_spec=$lt_library_names_spec
-
-# The coded name of the library, if different from the real name.
-soname_spec=$lt_soname_spec
-
-# Commands used to build and install an old-style archive.
-RANLIB=$lt_RANLIB
-old_archive_cmds=$lt_old_archive_cmds
-old_postinstall_cmds=$lt_old_postinstall_cmds
-old_postuninstall_cmds=$lt_old_postuninstall_cmds
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
-
-# Commands used to build and install a shared archive.
-archive_cmds=$lt_archive_cmds
-archive_expsym_cmds=$lt_archive_expsym_cmds
-postinstall_cmds=$lt_postinstall_cmds
-postuninstall_cmds=$lt_postuninstall_cmds
-
-# Commands to strip libraries.
-old_striplib=$lt_old_striplib
-striplib=$lt_striplib
-
-# Method to check whether dependent libraries are shared objects.
-deplibs_check_method=$lt_deplibs_check_method
-
-# Command to use when deplibs_check_method == file_magic.
-file_magic_cmd=$lt_file_magic_cmd
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_allow_undefined_flag
-
-# Flag that forces no undefined symbols.
-no_undefined_flag=$lt_no_undefined_flag
-
-# Commands used to finish a libtool library installation in a directory.
-finish_cmds=$lt_finish_cmds
-
-# Same as above, but a single script fragment to be evaled but not shown.
-finish_eval=$lt_finish_eval
-
-# Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe=$lt_global_symbol_pipe
-
-# Transform the output of nm in a proper C declaration
-global_symbol_to_cdecl=$lt_global_symbol_to_cdecl
-
-# This is the shared library runtime path variable.
-runpath_var=$runpath_var
-
-# This is the shared library path variable.
-shlibpath_var=$shlibpath_var
-
-# Is shlibpath searched before the hard-coded library search path?
-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$hardcode_action
-
-# Whether we should hardcode library paths into libraries.
-hardcode_into_libs=$hardcode_into_libs
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
-
-# Whether we need a single -rpath flag with a separated argument.
-hardcode_libdir_separator=$lt_hardcode_libdir_separator
-
-# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the
-# resulting binary.
-hardcode_direct=$hardcode_direct
-
-# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
-# resulting binary.
-hardcode_minus_L=$hardcode_minus_L
-
-# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
-# the resulting binary.
-hardcode_shlibpath_var=$hardcode_shlibpath_var
-
-# Variables whose values should be saved in libtool wrapper scripts and
-# restored at relink time.
-variables_saved_for_relink="$variables_saved_for_relink"
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$link_all_deplibs
-
-# Compile-time system search path for libraries
-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
-
-# Run-time system search path for libraries
-sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
-
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path="$fix_srcfile_path"
-
-# Set to yes if exported symbols are required.
-always_export_symbols=$always_export_symbols
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_export_symbols_cmds
-
-# The commands to extract the exported symbol list from a shared archive.
-extract_expsyms_cmds=$lt_extract_expsyms_cmds
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_exclude_expsyms
-
-# Symbols that must always be exported.
-include_expsyms=$lt_include_expsyms
-
-# ### END LIBTOOL CONFIG
-
-__EOF__
-
-  case $host_os in
-  aix3*)
-    cat <<\EOF >> "${ofile}T"
-
-# AIX sometimes has problems with the GCC collect2 program.  For some
-# reason, if we set the COLLECT_NAMES environment variable, the problems
-# vanish in a puff of smoke.
-if test "X${COLLECT_NAMES+set}" != Xset; then
-  COLLECT_NAMES=
-  export COLLECT_NAMES
-fi
-EOF
-    ;;
-  esac
-
-  case $host_os in
-  cygwin* | mingw* | pw32* | os2*)
-    cat <<'EOF' >> "${ofile}T"
-      # This is a source program that is used to create dlls on Windows
-      # Don't remove nor modify the starting and closing comments
-# /* ltdll.c starts here */
-# #define WIN32_LEAN_AND_MEAN
-# #include <windows.h>
-# #undef WIN32_LEAN_AND_MEAN
-# #include <stdio.h>
-#
-# #ifndef __CYGWIN__
-# #  ifdef __CYGWIN32__
-# #    define __CYGWIN__ __CYGWIN32__
-# #  endif
-# #endif
-#
-# #ifdef __cplusplus
-# extern "C" {
-# #endif
-# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved);
-# #ifdef __cplusplus
-# }
-# #endif
-#
-# #ifdef __CYGWIN__
-# #include <cygwin/cygwin_dll.h>
-# DECLARE_CYGWIN_DLL( DllMain );
-# #endif
-# HINSTANCE __hDllInstance_base;
-#
-# BOOL APIENTRY
-# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved)
-# {
-#   __hDllInstance_base = hInst;
-#   return TRUE;
-# }
-# /* ltdll.c ends here */
-        # This is a source program that is used to create import libraries
-        # on Windows for dlls which lack them. Don't remove nor modify the
-        # starting and closing comments
-# /* impgen.c starts here */
-# /*   Copyright (C) 1999-2000 Free Software Foundation, Inc.
-#
-#  This file is part of GNU libtool.
-#
-#  This program 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 of the License, or
-#  (at your option) any later version.
-#
-#  This program 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#  */
-#
-# #include <stdio.h>           /* for printf() */
-# #include <unistd.h>          /* for open(), lseek(), read() */
-# #include <fcntl.h>           /* for O_RDONLY, O_BINARY */
-# #include <string.h>          /* for strdup() */
-#
-# /* O_BINARY isn't required (or even defined sometimes) under Unix */
-# #ifndef O_BINARY
-# #define O_BINARY 0
-# #endif
-#
-# static unsigned int
-# pe_get16 (fd, offset)
-#      int fd;
-#      int offset;
-# {
-#   unsigned char b[2];
-#   lseek (fd, offset, SEEK_SET);
-#   read (fd, b, 2);
-#   return b[0] + (b[1]<<8);
-# }
-#
-# static unsigned int
-# pe_get32 (fd, offset)
-#     int fd;
-#     int offset;
-# {
-#   unsigned char b[4];
-#   lseek (fd, offset, SEEK_SET);
-#   read (fd, b, 4);
-#   return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
-# }
-#
-# static unsigned int
-# pe_as32 (ptr)
-#      void *ptr;
-# {
-#   unsigned char *b = ptr;
-#   return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
-# }
-#
-# int
-# main (argc, argv)
-#     int argc;
-#     char *argv[];
-# {
-#     int dll;
-#     unsigned long pe_header_offset, opthdr_ofs, num_entries, i;
-#     unsigned long export_rva, export_size, nsections, secptr, expptr;
-#     unsigned long name_rvas, nexp;
-#     unsigned char *expdata, *erva;
-#     char *filename, *dll_name;
-#
-#     filename = argv[1];
-#
-#     dll = open(filename, O_RDONLY|O_BINARY);
-#     if (dll < 1)
-#      return 1;
-#
-#     dll_name = filename;
-#
-#     for (i=0; filename[i]; i++)
-#      if (filename[i] == '/' || filename[i] == '\\'  || filename[i] == ':')
-#          dll_name = filename + i +1;
-#
-#     pe_header_offset = pe_get32 (dll, 0x3c);
-#     opthdr_ofs = pe_header_offset + 4 + 20;
-#     num_entries = pe_get32 (dll, opthdr_ofs + 92);
-#
-#     if (num_entries < 1) /* no exports */
-#      return 1;
-#
-#     export_rva = pe_get32 (dll, opthdr_ofs + 96);
-#     export_size = pe_get32 (dll, opthdr_ofs + 100);
-#     nsections = pe_get16 (dll, pe_header_offset + 4 +2);
-#     secptr = (pe_header_offset + 4 + 20 +
-#            pe_get16 (dll, pe_header_offset + 4 + 16));
-#
-#     expptr = 0;
-#     for (i = 0; i < nsections; i++)
-#     {
-#      char sname[8];
-#      unsigned long secptr1 = secptr + 40 * i;
-#      unsigned long vaddr = pe_get32 (dll, secptr1 + 12);
-#      unsigned long vsize = pe_get32 (dll, secptr1 + 16);
-#      unsigned long fptr = pe_get32 (dll, secptr1 + 20);
-#      lseek(dll, secptr1, SEEK_SET);
-#      read(dll, sname, 8);
-#      if (vaddr <= export_rva && vaddr+vsize > export_rva)
-#      {
-#          expptr = fptr + (export_rva - vaddr);
-#          if (export_rva + export_size > vaddr + vsize)
-#              export_size = vsize - (export_rva - vaddr);
-#          break;
-#      }
-#     }
-#
-#     expdata = (unsigned char*)malloc(export_size);
-#     lseek (dll, expptr, SEEK_SET);
-#     read (dll, expdata, export_size);
-#     erva = expdata - export_rva;
-#
-#     nexp = pe_as32 (expdata+24);
-#     name_rvas = pe_as32 (expdata+32);
-#
-#     printf ("EXPORTS\n");
-#     for (i = 0; i<nexp; i++)
-#     {
-#      unsigned long name_rva = pe_as32 (erva+name_rvas+i*4);
-#      printf ("\t%s @ %ld ;\n", erva+name_rva, 1+ i);
-#     }
-#
-#     return 0;
-# }
-# /* impgen.c ends here */
-
-EOF
-    ;;
-  esac
-
-  # We use sed instead of cat because bash on DJGPP gets confused if
-  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
-  # text mode, it properly converts lines to CR/LF.  This bash problem
-  # is reportedly fixed, but why not run on old versions too?
-  sed '$q' "$ltmain" >> "${ofile}T" || (rm -f "${ofile}T"; exit 1)
-
-  mv -f "${ofile}T" "$ofile" || \
-    (rm -f "$ofile" && cp "${ofile}T" "$ofile" && rm -f "${ofile}T")
-  chmod +x "$ofile"
-fi
-
-
-
-
-
-# This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-
-# Prevent multiple expansion
-
-
-
-
-
-
-
-klm_path_com_err=no
-
-# Check whether --with-com_err or --without-com_err was given.
-if test "${with_com_err+set}" = set; then
-  withval="$with_com_err"
-  if test "x${withval}" = "xyes"; then
-    klm_path_com_err=
-else
-    klm_path_com_err="${withval}"
-fi
-
-fi
-
-
-if test "x${klm_path_com_err}" != "xno"; then
-    echo $ac_n "checking com_err install location""... $ac_c" 1>&6
-echo "configure:5122: checking com_err install location" >&5
-if eval "test \"`echo '$''{'klm_cv_path_com_err'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  if test "x${klm_path_com_err}" = x; then
-       klm_cv_path_com_err=/usr/local
-    else
-       klm_cv_path_com_err="${klm_path_com_err}"
-    fi
-    
-fi
-
-echo "$ac_t""$klm_cv_path_com_err" 1>&6
-
-    COM_ERR=true
-else
-    klm_cv_path_com_err=
-    COM_ERR=false
-fi
-
-
-
-if test "x$COM_ERR" = "xtrue"; then
-    DBPRIM_ET_OBJS="dbprim_err.lo"
-else
-    DBPRIM_ET_OBJS=
-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
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, don't put newlines in cache variables' values.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(set) 2>&1 |
-  case `(ac_space=' '; set | grep ac_space) 2>&1` in
-  *ac_space=\ *)
-    # `set' does not quote correctly, so add quotes (double-quote substitution
-    # turns \\\\ into \\, and sed turns \\ into \).
-    sed -n \
-      -e "s/'/'\\\\''/g" \
-      -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
-    ;;
-  *)
-    # `set' quotes correctly as required by POSIX, so do not add quotes.
-    sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
-    ;;
-  esac >> 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
-
-# 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 2.13"
-    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 tests/Makefile comp_et-sh" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
-EOF
-cat >> $CONFIG_STATUS <<EOF
-
-# 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%@SHELL@%$SHELL%g
-s%@CFLAGS@%$CFLAGS%g
-s%@CPPFLAGS@%$CPPFLAGS%g
-s%@CXXFLAGS@%$CXXFLAGS%g
-s%@FFLAGS@%$FFLAGS%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%@bindir@%$bindir%g
-s%@sbindir@%$sbindir%g
-s%@libexecdir@%$libexecdir%g
-s%@datadir@%$datadir%g
-s%@sysconfdir@%$sysconfdir%g
-s%@sharedstatedir@%$sharedstatedir%g
-s%@localstatedir@%$localstatedir%g
-s%@libdir@%$libdir%g
-s%@includedir@%$includedir%g
-s%@oldincludedir@%$oldincludedir%g
-s%@infodir@%$infodir%g
-s%@mandir@%$mandir%g
-s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
-s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g
-s%@INSTALL_DATA@%$INSTALL_DATA%g
-s%@PACKAGE@%$PACKAGE%g
-s%@VERSION@%$VERSION%g
-s%@ACLOCAL@%$ACLOCAL%g
-s%@AUTOCONF@%$AUTOCONF%g
-s%@AUTOMAKE@%$AUTOMAKE%g
-s%@AUTOHEADER@%$AUTOHEADER%g
-s%@MAKEINFO@%$MAKEINFO%g
-s%@SET_MAKE@%$SET_MAKE%g
-s%@CC@%$CC%g
-s%@AWK@%$AWK%g
-s%@host@%$host%g
-s%@host_alias@%$host_alias%g
-s%@host_cpu@%$host_cpu%g
-s%@host_vendor@%$host_vendor%g
-s%@host_os@%$host_os%g
-s%@build@%$build%g
-s%@build_alias@%$build_alias%g
-s%@build_cpu@%$build_cpu%g
-s%@build_vendor@%$build_vendor%g
-s%@build_os@%$build_os%g
-s%@LN_S@%$LN_S%g
-s%@OBJEXT@%$OBJEXT%g
-s%@EXEEXT@%$EXEEXT%g
-s%@ECHO@%$ECHO%g
-s%@RANLIB@%$RANLIB%g
-s%@STRIP@%$STRIP%g
-s%@CPP@%$CPP%g
-s%@LIBTOOL@%$LIBTOOL%g
-s%@COM_ERR@%$COM_ERR%g
-s%@DBPRIM_ET_OBJS@%$DBPRIM_ET_OBJS%g
-
-CEOF
-EOF
-
-cat >> $CONFIG_STATUS <<\EOF
-
-# Split the substitutions into bite-sized pieces for seds with
-# small command number limits, like on Digital OSF/1 and HP-UX.
-ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
-ac_file=1 # Number of current file.
-ac_beg=1 # First line for current file.
-ac_end=$ac_max_sed_cmds # Line after last line for current file.
-ac_more_lines=:
-ac_sed_cmds=""
-while $ac_more_lines; do
-  if test $ac_beg -gt 1; then
-    sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
-  else
-    sed "${ac_end}q" conftest.subs > conftest.s$ac_file
-  fi
-  if test ! -s conftest.s$ac_file; then
-    ac_more_lines=false
-    rm -f conftest.s$ac_file
-  else
-    if test -z "$ac_sed_cmds"; then
-      ac_sed_cmds="sed -f conftest.s$ac_file"
-    else
-      ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
-    fi
-    ac_file=`expr $ac_file + 1`
-    ac_beg=$ac_end
-    ac_end=`expr $ac_end + $ac_max_sed_cmds`
-  fi
-done
-if test -z "$ac_sed_cmds"; then
-  ac_sed_cmds=cat
-fi
-EOF
-
-cat >> $CONFIG_STATUS <<EOF
-
-CONFIG_FILES=\${CONFIG_FILES-"Makefile tests/Makefile comp_et-sh"}
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
-  # Support "outfile[:infile[: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 a relative srcdir, top_srcdir, and INSTALL 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
-
-  ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
-  sed -e "$ac_comsub
-s%@configure_input@%$configure_input%g
-s%@srcdir@%$srcdir%g
-s%@top_srcdir@%$top_srcdir%g
-s%@INSTALL@%$INSTALL%g
-" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
-fi; done
-rm -f conftest.s*
-
-EOF
-cat >> $CONFIG_STATUS <<EOF
-
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-
-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/libs/dbprim/configure.in b/libs/dbprim/configure.in
deleted file mode 100644 (file)
index 8428623..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-dnl Prefered emacs editing mode: -*- shell-script -*-
-dnl
-dnl Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-dnl
-dnl This library is free software; you can redistribute it and/or
-dnl modify it under the terms of the GNU Library General Public
-dnl License as published by the Free Software Foundation; either
-dnl version 2 of the License, or (at your option) any later version.
-dnl
-dnl This library is distributed in the hope that it will be useful,
-dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
-dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-dnl Library General Public License for more details.
-dnl
-dnl You should have received a copy of the GNU Library General Public
-dnl License along with this library; if not, write to the Free
-dnl Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-dnl MA 02111-1307, USA
-dnl
-dnl @(#)$Id$
-dnl
-dnl Process this file with autoconf to produce a configure script.
-
-AC_INIT(dbprim_int.h)
-AM_INIT_AUTOMAKE(dbprim, 0.1)
-
-dnl Checks for programs.
-AC_PROG_CC
-AC_PROG_AWK
-AM_PROG_LIBTOOL
-
-dnl Checks for libraries.
-
-dnl Checks for header files.
-
-dnl Checks for typedefs, structures, and compiler characteristics.
-
-dnl Checks for library functions.
-
-KLM_COM_ERR_OBJ([DBPRIM_ET_OBJS], [dbprim_err.lo])
-
-AC_OUTPUT(Makefile tests/Makefile comp_et-sh)
diff --git a/libs/dbprim/dbprim.h.bot b/libs/dbprim/dbprim.h.bot
deleted file mode 100644 (file)
index 42b11e1..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-
-/* end dbprim_err.h -*- c -*- */
-
-/* @(#)$Id: dbprim.h.bot,v 1.1 2003-03-07 02:36:10 klmitch Exp $ */
-
-#endif /* __include_dbprim_h__ */
diff --git a/libs/dbprim/dbprim.h.top b/libs/dbprim/dbprim.h.top
deleted file mode 100644 (file)
index 8c5da10..0000000
+++ /dev/null
@@ -1,1381 +0,0 @@
-/* -*- c -*-
-** Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-**
-** This library is free software; you can redistribute it and/or
-** modify it under the terms of the GNU Library General Public
-** License as published by the Free Software Foundation; either
-** version 2 of the License, or (at your option) any later version.
-**
-** This library 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
-** Library General Public License for more details.
-**
-** You should have received a copy of the GNU Library General Public
-** License along with this library; if not, write to the Free
-** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-** MA 02111-1307, USA
-**
-** @(#)$Id: dbprim.h.top,v 1.1 2003-03-07 02:36:10 klmitch Exp $
-*/
-#ifndef __include_dbprim_h__
-#define __include_dbprim_h__
-/** \mainpage Database Primitives Library
- *
- * This library contains a set of database primitives.  The primitives
- * defined by this library include a powerful linked list abstraction,
- * a hash table with optional automatic resizing, and a powerful and
- * efficient sparse matrix implementation.  All of the necessary
- * declarations for using this library are found in the header file
- * dbprim.h.  For more information about the components of this
- * library, see the module list.
- */
-
-/** \defgroup dbprim_key Database keys
- *
- * This module contains interfaces common to all database
- * modules--mainly the macros concerned with manipulating database
- * keys and the definition of the key structure.
- *
- * The key may be any arbitrary pointer, including a pointer to a
- * string.  Everything that handles a key either copies the contents
- * of the #db_key_t structure or passes it to a user-defined
- * function.  If required, as in the case of a string, a length may
- * also be represented in the key structure.
- */
-
-/** \defgroup dbprim_link Linked lists
- * \brief Operations for linked lists.
- *
- * Linked lists are a very basic data structure used in building
- * databases.  This library provides a simple yet powerful
- * implementation of generic linked lists, based on two
- * caller-allocated structures.  The #link_head_t structure describes
- * the head of a linked list and contains information regarding the
- * number of elements in the linked list as well as pointers
- * referencing the first and last elements in the list.  The
- * #link_elem_t structure describes a specific element in the linked
- * list and contains pointers referencing the next and previous
- * elements in the list, as well as a pointer to the object, a pointer
- * to the head of the linked list, and a set of user-specified flags.
- *
- * Elements may be added at any arbitrary location in the linked list
- * with ll_add(); moved to any other arbitrary location in the linked
- * list with ll_move(), or removed from the list with ll_remove().  In
- * addition, the user may search the list using a user-defined
- * comparison function with ll_find(); iterate over every element in
- * the list with ll_iter(); or remove all items from the list with
- * ll_flush(), optionally executing a user-specified clean-up
- * function.
- */
-
-/** \defgroup dbprim_hash Hash tables
- * \brief Operations for hash tables.
- *
- * Hash tables are a basic data structure used in building databases.
- * Hash tables provide a means of storing data such that an arbitrary
- * entry may be looked up efficiently.  This library implements a hash
- * table that may optionally grow and shrink to provide maximum
- * efficiency.  The implementation is with two kinds of
- * caller-allocated structures--a #hash_table_t structure that
- * describes the table and a #hash_entry_t structure for each entry in
- * the table.  The library allocates a bucket array which must be
- * released with the ht_free() function when the hash table has been
- * emptied.  Additionally, the hash table may be manually resized with
- * the ht_resize() function.
- *
- * Entries may be added to and removed from the table using the
- * ht_add() and ht_remove() functions.  Additionally, the key on a
- * given entry may be changed using the ht_move() function.  Of
- * course, any given entry may be looked up using the ht_find()
- * function, and ht_iter() will execute a user-defined function for
- * each entry in the hash table (in an unspecified order).  The
- * ht_flush() function will remove all entries from the hash table,
- * optionally executing a user-specified clean-up function.
- */
-
-/** \defgroup dbprim_smat Sparse matrices
- * \brief Operations for sparse matrices.
- *
- * Sparse matrices are advanced data structures used to represent
- * associations.  For instance, a manager may have several employees,
- * but several of those employees may report to more than one
- * manager.  (Yes, this is a contrived example, so sue me.)  The
- * simplest way to represent such assocations is with a matrix, or a
- * two-dimensional array.  However, such an implementation cannot
- * easily be extended dynamically--imagine if a manager retires and
- * two more are hired, for instance.  It would also use an enormous
- * amount of memory, as most employees would only report to one or two
- * managers.
- *
- * A sparse matrix solves this problem by only allocating memory for
- * the cells in the full matrix which are actually used.  That is, no
- * memory is allocated to represent Alice reporting to Bob unless
- * Alice actually does report to Bob.  This is a simple concept, but
- * fairly difficult to implement efficiently--how do you tell if Alice
- * reports to Bob?  The solution utilized by this library is to
- * combine the strengths of linked lists and hash tables.  Each cell
- * is in two linked lists, rooted at the rows and columns of the
- * matrix, but a hash table is used when attempting to look up a given
- * cell.  If the cell is allocated, then there will be an entry in the
- * hash table, and finding the given cell is as fast as a hash table
- * look-up.
- *
- * Because sparse matrices are so complicated, there are three
- * structures and a variety of operations used.  Two of the
- * structures, #smat_table_t and #smat_head_t, are caller-allocated.
- * However, the third structure, #smat_entry_t, must be allocated by
- * the library.  To avoid too much overhead from malloc(), a free list
- * is used.  The free list may be managed with the smat_cleanup() and
- * smat_freemem() calls.
- *
- * The #smat_table_t contains the hash table.  Only one of these need
- * be allocated per type of association--for instance, in the above
- * example, only one #smat_table_t needs to be allocated to represent
- * the manager-employee relationship.
- *
- * The #smat_head_t contains the linked list.  There are actually two
- * kinds of these structures--one is #SMAT_LOC_FIRST, which could be
- * regarded as a ``row,'' and the other is #SMAT_LOC_SECOND, which
- * could be regarded as a ``column.''  Which one is used for which
- * type of data is irrelevant, as long as consistency is maintained.
- * For the above example, a #smat_head_t for a manager may be
- * #SMAT_LOC_FIRST, and one for an employee must then be
- * #SMAT_LOC_SECOND.  (These values are set when initializing the
- * #smat_head_t structure.)
- *
- * An association may be created with the st_add() function, which
- * allows an arbitrary ordering in the associated linked lists by the
- * same mechanism as for the linked list component of the library.  An
- * association may be removed with st_remove(), or looked up with
- * st_find().  If iteration over all associations is desired, use the
- * st_iter() function.  Removing all associations from a table may be
- * performed with st_flush(), which optionally calls a user-defined
- * clean-up function.  The associated hash table may be resized with
- * st_resize(), and the bucket table may be released with st_free().
- *
- * An association may also be reordered within the linked lists using
- * the sh_move() function.  If a particular entry is desired, use the
- * sh_find() function with a user-defined comparison function to
- * locate it.  Iteration may be performed with the sh_iter() function,
- * and all entries in a given linked list may be removed with the
- * sh_flush() function, which again may optionally call a user-defined
- * clean-up function.
- */
-
-/** \ingroup dbprim_key
- * \brief Database key.
- *
- * This structure is a generic key containing a void * pointer and a
- * length parameter.  It should be accessed with * dk_key() and
- * dk_len().
- */
-typedef struct _db_key_s     db_key_t;
-
-/** \ingroup dbprim_link
- * \brief Linked list head.
- *
- * This structure is the head of all linked lists maintained by this
- * library.
- */
-typedef struct _link_head_s  link_head_t;
-
-/** \ingroup dbprim_link
- * \brief Linked list element.
- *
- * This structure represents a single element of a linked list.
- */
-typedef struct _link_elem_s  link_elem_t;
-
-/** \ingroup dbprim_hash
- * \brief Hash table.
- *
- * This structure is the basis of all hash tables maintained by this
- * library.
- */
-typedef struct _hash_table_s hash_table_t;
-
-/** \ingroup dbprim_hash
- * \brief Hash table entry.
- *
- * This structure represents a single entry of a hash table.
- */
-typedef struct _hash_entry_s hash_entry_t;
-
-/** \ingroup dbprim_smat
- * \brief Sparse matrix table.
- *
- * This structure is the basis of all sparse matrices maintained by
- * this library.
- */
-typedef struct _smat_table_s smat_table_t;
-
-/** \ingroup dbprim_smat
- * \brief Sparse matrix list head.
- *
- * This structure is the head of a linked list of sparse matrix
- * entries.
- */
-typedef struct _smat_head_s  smat_head_t;
-
-/** \ingroup dbprim_smat
- * \brief Sparse matrix entry.
- *
- * This structure is allocated by the library and represents a single
- * element in a sparse matrix.
- */
-typedef struct _smat_entry_s smat_entry_t;
-
-/** \ingroup dbprim_link
- * \brief Linked list iteration callback.
- *
- * This function pointer references a callback used by ll_iter() and
- * ll_flush().  It should return 0 for success.  A non-zero return
- * value will terminate the operation and will become the return value
- * of the ll_iter() or ll_flush() call.
- */
-typedef unsigned long (*link_iter_t)(link_head_t *, link_elem_t *, void *);
-
-/** \ingroup dbprim_link
- * \brief Linked list comparison callback.
- *
- * This function pointer references a callback used by ll_find().  It
- * should return 0 if the entry passed as the second argument matches
- * the key passed as the first argument.
- */
-typedef unsigned long (*link_comp_t)(db_key_t *, void *);
-
-/** \ingroup dbprim_hash
- * \brief Hash table iteration callback.
- *
- * This function pointer references a callback used by ht_iter() and
- * ht_flush().  It should return 0 for success.  A non-zero return
- * value will terminate the operation and will become the return value
- * of the ht_iter() or ht_flush() call.
- */
-typedef unsigned long (*hash_iter_t)(hash_table_t *, hash_entry_t *, void *);
-
-/** \ingroup dbprim_hash
- * \brief Hash function callback.
- *
- * This function is associated with a hash table, and is responsible
- * for generating a hash value.  The full 32-bit range of an
- * <CODE>unsigned long</CODE> should be used--do *not* reduce the hash
- * value by the modulus of the hash table.
- */
-typedef unsigned long (*hash_func_t)(hash_table_t *, db_key_t *);
-
-/** \ingroup dbprim_hash
- * \brief Hash table comparison callback.
- *
- * This function pointer references a callback used to compare entries
- * in a hash table.  It should return 0 for identical entries and
- * non-zero otherwise.  No assumptions should be made about the order
- * in which the two keys are passed to this function.
- */
-typedef unsigned long (*hash_comp_t)(hash_table_t *, db_key_t *, db_key_t *);
-
-/** \ingroup dbprim_hash
- * \brief Hash table resize callback.
- *
- * This function pointer references a callback that will be called
- * with both the old and new hash table sizes whenever a hash table is
- * resized.  It should return non-zero only when the resize should be
- * inhibited.
- */
-typedef unsigned long (*hash_resize_t)(hash_table_t *, unsigned long);
-
-/** \ingroup dbprim_smat
- * \brief Sparse matrix table resize callback.
- *
- * This function pointer references a callback that will be called
- * with both the old and new sparse matrix table sizes whenever a
- * sparse matrix's hash table table is resized.  It should return
- * non-zero only when the resize should be inhibited.
- */
-typedef unsigned long (*smat_resize_t)(smat_table_t *, unsigned long);
-
-/** \ingroup dbprim_smat
- * \brief Sparse matrix iteration callback.
- *
- * This function pointer references a callback used by st_iter(),
- * st_flush(), sh_iter(), and sh_flush().  It should return 0 for
- * success.  A non-zero return value will terminate the operation and
- * will become the return value of the call.
- */
-typedef unsigned long (*smat_iter_t)(smat_table_t *, smat_entry_t *, void *);
-
-/** \ingroup dbprim_smat
- * \brief Sparse matrix comparison callback.
- *
- * This function pointer references a callback used by sh_find().  It
- * should return 0 if the sparse matrix entry represented by the
- * second argument matches the key passed as the first argument.
- */
-typedef unsigned long (*smat_comp_t)(db_key_t *, smat_entry_t *);
-
-/** \ingroup dbprim_link
- * \brief Linked list location.
- *
- * This enumeration is used to specify where an element in a linked
- * list should be placed.  It should be referenced by the typedef
- * #link_loc_t.
- */
-enum _link_loc_e {
-  LINK_LOC_HEAD,       /**< Element should be inserted at head of list. */
-  LINK_LOC_TAIL,       /**< Element should be inserted at tail of list. */
-  LINK_LOC_BEFORE,     /**< Element should be inserted before specified
-                            element. */
-  LINK_LOC_AFTER       /**< Element should be inserted after specified
-                            element. */
-};
-
-/** \ingroup dbprim_link
- * \brief Linked list location.
- *
- * See the documentation for the enumeration #_link_loc_e.
- */
-typedef enum _link_loc_e link_loc_t;
-
-/** \ingroup dbprim_smat
- * \brief Sparse matrix location.
- *
- * This enumeration is used to specify whether an element is a row or
- * column element.  It should be referenced by the typedef
- * #smat_loc_t.
- */
-enum _smat_loc_e {
-  SMAT_LOC_FIRST,      /**< First entry (``row''). */
-  SMAT_LOC_SECOND      /**< Second entry (``column''). */
-};
-
-/** \ingroup dbprim_smat
- * \brief Sparse matrix location.
- *
- * See the documentation for the enumeration #_smat_loc_e.
- */
-typedef enum _smat_loc_e smat_loc_t;
-
-struct _db_key_s {
-  void *dk_key;                /* Pointer to the key. */
-  int   dk_len;                /* Length of the key, if that has any meaning. */
-};
-
-/** \ingroup dbprim_key
- * \brief Database key static initializer.
- *
- * This macro allows a #db_key_t to be initialized statically.
- *
- * \param key  A pointer to the key.
- * \param size Size of the key.
- */
-#define DB_KEY_INIT(key, size) { (key), (size) }
-
-/** \ingroup dbprim_key
- * \brief Database key accessor macro.
- *
- * This macro allows access to the key field of a #db_key_t.  It may
- * be used as an lvalue in order to assign a key to a #db_key_t.
- *
- * \param key  A pointer to a #db_key_t.
- * \return     A pointer to a key (<CODE>void *</CODE>).
- */
-#define dk_key(key)    ((key)->dk_key)
-
-/** \ingroup dbprim_key
- * \brief Database key length accessor macro.
- *
- * This macro allows access to the key length field of a #db_key_t.
- * It may be used as an lvalue in order to assign a length to a
- * #db_key_t.
- *
- * \param key  A pointer to a #db_key_t.
- * \return     An \c int describing the length of the key.
- */
-#define dk_len(key)    ((key)->dk_len)
-
-struct _link_head_s {
-  unsigned long        lh_magic;       /* Magic number. */
-  unsigned long        lh_count;       /* Number of entries in the linked list. */
-  link_elem_t  *lh_first;      /* First element in the list. */
-  link_elem_t  *lh_last;       /* Last element in the list. */
-  void        *lh_extra;       /* Extra data associated with list. */
-};
-
-#define LINK_HEAD_MAGIC        0x4c6155d7
-
-/** \ingroup dbprim_link
- * \brief Linked list head static initializer.
- *
- * This macro statically initializes a #link_head_t.
- *
- * \param extra        Extra pointer data that should be associated with the
- *             list head.
- */
-#define LINK_HEAD_INIT(extra)  { LINK_HEAD_MAGIC, 0, 0, 0, (extra) }
-
-/** \ingroup dbprim_link
- * \brief Linked list head verification macro.
- *
- * This macro verifies that a given pointer actually does point to a
- * linked list head.
- *
- * \param list A pointer to a #link_head_t.
- *
- * \return     Boolean true if \p list is a valid linked list head or
- *             false otherwise.
- */
-#define ll_verify(list)                ((list) && \
-                                (list)->lh_magic == LINK_HEAD_MAGIC)
-
-/** \ingroup dbprim_link
- * \brief Linked list count.
- *
- * This macro retrieves the number of elements in a linked list.
- *
- * \param list A pointer to a #link_head_t.
- *
- * \return     An <CODE>unsigned long</CODE> containing a count of
- *             the number of elements in the linked list.
- */
-#define ll_count(list) ((list)->lh_count)
-
-/** \ingroup dbprim_link
- * \brief First element in linked list.
- *
- * This macro retrieves the first element in a linked list.
- *
- * \param list A pointer to a #link_head_t.
- *
- * \return     A pointer to a #link_elem_t.
- */
-#define ll_first(list) ((list)->lh_first)
-
-/** \ingroup dbprim_link
- * \brief Last element in a linked list.
- *
- * This macro retrieves the last element in a linked list.
- *
- * \param list A pointer to a #link_head_t.
- *
- * \return     A pointer to a #link_elem_t.
- */
-#define ll_last(list)  ((list)->lh_last)
-
-/** \ingroup dbprim_link
- * \brief Extra pointer data in a linked list.
- *
- * This macro retrieves the extra pointer data associated with a
- * particular linked list.
- *
- * \param list A pointer to a #link_head_t.
- *
- * \return     A pointer to \c void.
- */
-#define ll_extra(list) ((list)->lh_extra)
-
-unsigned long ll_init(link_head_t *list, void *extra);
-unsigned long ll_add(link_head_t *list, link_elem_t *new, link_loc_t loc,
-                    link_elem_t *elem);
-unsigned long ll_move(link_head_t *list, link_elem_t *elem, link_loc_t loc,
-                     link_elem_t *elem2);
-unsigned long ll_remove(link_head_t *list, link_elem_t *elem);
-unsigned long ll_find(link_head_t *list, link_elem_t **elem_p,
-                     link_comp_t comp_func, link_elem_t *start,
-                     db_key_t *key);
-unsigned long ll_iter(link_head_t *list, link_iter_t iter_func, void *extra);
-unsigned long ll_flush(link_head_t *list, link_iter_t flush_func, void *extra);
-
-struct _link_elem_s {
-  unsigned long        le_magic;       /* magic number */
-  link_elem_t  *le_next;       /* next element in list */
-  link_elem_t  *le_prev;       /* previous element in list */
-  void        *le_object;      /* the object pointed to by this link */
-  link_head_t  *le_head;       /* the head of the list */
-  unsigned long        le_flags;       /* flags associated with this element */
-};
-
-#define LINK_ELEM_MAGIC        0x97cdf72a
-
-/** \ingroup dbprim_link
- * \brief Linked list element static initializer.
- *
- * This macro statically initializes a #link_elem_t.
- *
- * \param obj  A pointer to \c void representing the object
- *             associated with the element.
- */
-#define LINK_ELEM_INIT(obj) { LINK_ELEM_MAGIC, 0, 0, (obj), 0, 0 }
-
-/** \ingroup dbprim_link
- * \brief Linked list element verification macro.
- *
- * This macro verifies that a given pointer actually does point to a
- * linked list element.
- *
- * \param element
- *             A pointer to a #link_elem_t.
- *
- * \return     Boolean true if \p element is a valid linked list
- *             element or false otherwise.
- */
-#define le_verify(element)     ((element) && \
-                                (element)->le_magic == LINK_ELEM_MAGIC)
-
-/** \ingroup dbprim_link
- * \brief Linked list element next pointer.
- *
- * This macro retrieves a pointer to the next element in the linked
- * list.
- *
- * \param elem A pointer to a #link_elem_t.
- *
- * \return     A pointer to a #link_elem_t representing the next
- *             element in the linked list.
- */
-#define le_next(elem)  ((elem)->le_next)
-
-/** \ingroup dbprim_link
- * \brief Linked list element previous pointer.
- *
- * This macro retrieves a pointer to the previous element in the
- * linked list.
- *
- * \param elem A pointer to a #link_elem_t.
- *
- * \return     A pointer to a #link_elem_t representing the previous
- *             element in the linked list.
- */
-#define le_prev(elem)  ((elem)->le_prev)
-
-/** \ingroup dbprim_link
- * \brief Linked list element object pointer.
- *
- * This macro retrieves a pointer to the object represented by the
- * element.  It may be used as an lvalue to change the object pointed
- * to.  Care should be taken when using this feature.
- *
- * \param elem A pointer to a #link_elem_t.
- *
- * \return     A pointer to \c void representing the object
- *             associated with the linked list element.
- */
-#define le_object(elem)        ((elem)->le_object)
-
-/** \ingroup dbprim_link
- * \brief Linked list element head pointer.
- *
- * This macro retrieves a pointer to the head of the linked list that
- * the element is in.
- *
- * \param elem A pointer to a #link_elem_t.
- *
- * \return     A pointer to a #link_head_t representing the head of
- *             the linked list the element is in.
- */
-#define le_head(elem)  ((elem)->le_head)
-
-/** \ingroup dbprim_link
- * \brief Linked list element flags.
- *
- * This macro retrieves a set of user-defined flags associated with
- * the element.  It may be used as an lvalue to set those flags.
- *
- * \param elem A pointer to a #link_elem_t.
- *
- * \return     An <CODE>unsigned long</CODE> containing the flags
- *             associated with the element.
- */
-#define le_flags(elem) ((elem)->le_flags)
-
-unsigned long le_init(link_elem_t *elem, void *object);
-
-struct _hash_table_s {
-  unsigned long        ht_magic;       /* magic number */
-  unsigned long        ht_flags;       /* flags associated with the table */
-  unsigned long        ht_modulus;     /* size (modulus) of the hash table--prime */
-  unsigned long        ht_count;       /* number of elements in the table */
-  unsigned long        ht_rollover;    /* size at which the table grows */
-  unsigned long        ht_rollunder;   /* size at which the table shrinks */
-  link_head_t  *ht_table;      /* actual table entries */
-  hash_func_t  ht_func;        /* function for computing the hash */
-  hash_comp_t  ht_comp;        /* function for comparing hash keys */
-  hash_resize_t        ht_resize;      /* function for resize notify/inhibit */
-  void        *ht_extra;       /* extra data associated with the table */
-};
-
-#define HASH_TABLE_MAGIC 0x2da7ffd9
-
-/** \ingroup dbprim_hash
- * \brief Flag permitting a hash table to automatically grow.
- *
- * If passed in to #HASH_TABLE_INIT() or #ht_init(), allows the hash
- * table to grow automatically.
- */
-#define HASH_FLAG_AUTOGROW   0x00000001 /* let table automatically grow */
-
-/** \ingroup dbprim_hash
- * \brief Flag permitting a hash table to automatically shrink.
- *
- * If passed in to #HASH_TABLE_INIT() or #ht_init(), allows the hash
- * table to shrink automatically.
- */
-#define HASH_FLAG_AUTOSHRINK 0x00000002 /* let table automatically shrink */
-
-#define HASH_FLAG_MASK      (HASH_FLAG_AUTOGROW | HASH_FLAG_AUTOSHRINK)
-
-#define HASH_FLAG_FREEZE     0x80000000 /* hash table frozen */
-
-/** \ingroup dbprim_hash
- * \brief Hash table static initializer.
- *
- * This macro statically initializes a #hash_table_t.
- *
- * \param flags        A bit-wise OR of #HASH_FLAG_AUTOGROW and
- *             #HASH_FLAG_AUTOSHRINK.  If neither behavior is
- *             desired, use 0.
- * \param func A #hash_func_t function pointer for a hash function.
- * \param comp A #hash_comp_t function pointer for a comparison
- *             function.
- * \param resize
- *             A #hash_resize_t function pointer for determining
- *             whether resizing is permitted and/or for notification
- *             of the resize.
- * \param extra        Extra pointer data that should be associated with the
- *             hash table.
- */
-#define HASH_TABLE_INIT(flags, func, comp, resize, extra) \
-       { HASH_TABLE_MAGIC, (flags) & HASH_FLAG_MASK, 0, 0, 0, 0, 0, \
-         (func), (comp), (resize), (extra) }
-
-/** \ingroup dbprim_hash
- * \brief Hash table verification macro.
- *
- * This macro verifies that a given pointer actually does point to a
- * hash table.
- *
- * \param table        A pointer to a #hash_table_t.
- *
- * \return     Boolean true if \p table is a valid hash table or
- *             false otherwise.
- */
-#define ht_verify(table)       ((table) && \
-                                (table)->ht_magic == HASH_TABLE_MAGIC)
-
-/** \ingroup dbprim_hash
- * \brief Hash table flags.
- *
- * This macro retrieves the flags associated with the hash table.
- * Only #HASH_FLAG_AUTOGROW and #HASH_FLAG_AUTOSHRINK have any meaning
- * to the application; all other bits are reserved for use in the
- * library.  This macro may be used as an lvalue, but care must be
- * taken to avoid modifying the library-specific bits.
- *
- * \param table        A pointer to a #hash_table_t.
- *
- * \return     An <CODE>unsigned long</CODE> containing the flags for
- *             the hash table.
- */
-#define ht_flags(table)          ((table)->ht_flags)
-
-/** \ingroup dbprim_hash
- * \brief Determine if a hash table is frozen.
- *
- * This macro returns a non-zero value if the table is currently
- * frozen.  The hash table may be frozen if there is an iteration in
- * progress.
- *
- * \param table        A pointer to a #hash_table_t.
- *
- * \return     A zero value if the table is not frozen or a non-zero
- *             value if the table is frozen.
- */
-#define ht_frozen(table)  ((table)->ht_flags & HASH_FLAG_FROZEN)
-
-/** \ingroup dbprim_hash
- * \brief Hash table modulus.
- *
- * This macro retrieves the number of buckets allocated for the hash
- * table.  An application may wish to save this value between
- * invocations to avoid the overhead of growing the table while
- * filling it with data.
- *
- * \param table        A pointer to a #hash_table_t.
- *
- * \return     An <CODE>unsigned long</CODE> containing the number of
- *             buckets allocated for the hash table.
- */
-#define ht_modulus(table) ((table)->ht_modulus)
-
-/** \ingroup dbprim_hash
- * \brief Hash table count.
- *
- * This macro retrieves the total number of items actually in the hash
- * table.
- *
- * \param table        A pointer to a #hash_table_t.
- *
- * \return     An <CODE>unsigned long</CODE> containing a count of
- *             the number of items in the hash table.
- */
-#define ht_count(table)          ((table)->ht_count)
-
-/** \ingroup dbprim_hash
- * \brief Hash table hash function.
- *
- * This macro retrieves the hash function pointer.
- *
- * \param table        A pointer to a #hash_table_t.
- *
- * \return     A #hash_func_t.
- */
-#define ht_func(table)   ((table)->ht_func)
-
-/** \ingroup dbprim_hash
- * \brief Hash table comparison function.
- *
- * This macro retrieves the comparison function pointer.
- *
- * \param table        A pointer to a #hash_table_t.
- *
- * \return     A #hash_comp_t.
- */
-#define ht_comp(table)   ((table)->ht_comp)
-
-/** \ingroup dbprim_hash
- * \brief Hash table resize callback function.
- *
- * This macro retrieves the resize callback function pointer.
- *
- * \param table        A pointer to a #hash_table_t.
- *
- * \return     A #hash_resize_t.
- */
-#define ht_rsize(table)          ((table)->ht_resize)
-
-/** \ingroup dbprim_hash
- * \brief Extra pointer data in a hash table.
- *
- * This macro retrieves the extra pointer data associated with a
- * particular hash table.
- *
- * \param table        A pointer to a #hash_table_t.
- *
- * \return     A pointer to \c void.
- */
-#define ht_extra(table)          ((table)->ht_extra)
-
-/** \ingroup dbprim_hash
- * \brief Hash table memory size.
- *
- * This macro returns the physical size of the bucket array allocated
- * by the library for this hash table.
- *
- * \param table        A pointer to a #hash_table_t.
- *
- * \return     A \c size_t.
- */
-#define ht_size(table)   ((table)->ht_modulus * sizeof(link_head_t))
-
-unsigned long ht_init(hash_table_t *table, unsigned long flags,
-                     hash_func_t func, hash_comp_t comp,
-                     hash_resize_t resize, void *extra,
-                     unsigned long init_mod);
-unsigned long ht_add(hash_table_t *table, hash_entry_t *entry, db_key_t *key);
-unsigned long ht_move(hash_table_t *table, hash_entry_t *entry, db_key_t *key);
-unsigned long ht_remove(hash_table_t *table, hash_entry_t *entry);
-unsigned long ht_find(hash_table_t *table, hash_entry_t **entry_p,
-                     db_key_t *key);
-unsigned long ht_iter(hash_table_t *table, hash_iter_t iter_func, void *extra);
-unsigned long ht_flush(hash_table_t *table, hash_iter_t flush_func,
-                      void *extra);
-unsigned long ht_resize(hash_table_t *table, unsigned long new_size);
-unsigned long ht_free(hash_table_t *table);
-
-struct _hash_entry_s {
-  unsigned long he_magic;      /* magic number */
-  link_elem_t  he_elem;        /* link element */
-  hash_table_t *he_table;      /* hash table we're in */
-  unsigned long        he_hash;        /* hash value */
-  db_key_t     he_key;         /* entry's key */
-  void        *he_value;       /* actual entry */
-};
-
-#define HASH_ENTRY_MAGIC 0x35afaf51
-
-/** \ingroup dbprim_hash
- * \brief Hash table entry static initializer.
- *
- * This macro statically initializes a #hash_entry_t.
- *
- * \param value        A pointer to \c void representing the object
- *             associated with the entry.
- */
-#define HASH_ENTRY_INIT(value) \
-      { HASH_ENTRY_MAGIC, LINK_ELEM_INIT(0), 0, 0, DB_KEY_INIT(0, 0), (value) }
-
-/** \ingroup dbprim_hash
- * \brief Hash table entry verification macro.
- *
- * This macro verifies that a given pointer actually does point to a
- * hash table entry.
- *
- * \param entry        A pointer to a #hash_entry_t.
- *
- * \return     Boolean true if \p entry is a valid hash table entry
- *             or false otherwise.
- */
-#define he_verify(entry)       ((entry) && \
-                                (entry)->he_magic == HASH_ENTRY_MAGIC)
-
-/** \ingroup dbprim_hash
- * \brief Hash table entry linked list element.
- *
- * This macro provides access to the linked list element buried in the
- * hash table entry.  It should *not* be used on entries currently in
- * a hash table.  The purpose of this macro is to allow an object
- * containing a hash table entry to be placed upon a free list.
- *
- * \param entry        A pointer to a #hash_entry_t.
- *
- * \return     A pointer to a #link_elem_t.
- */
-#define he_link(entry) (&((entry)->he_elem))
-
-/** \ingroup dbprim_hash
- * \brief Hash table entry flags.
- *
- * This macro retrieves a set of user-defined flags associated with
- * the entry.  It may be used as an lvalue to set those flags.
- *
- * \param entry        A pointer to a #hash_entry_t.
- *
- * \return     An <CODE>unsigned long</CODE> containing the flags
- *             associated with the entry.
- */
-#define he_flags(entry)        ((entry)->he_elem.le_flags)
-
-/** \ingroup dbprim_hash
- * \brief Hash table entry table pointer.
- *
- * This macro retrieves a pointer to the hash table the entry is in.
- *
- * \param entry        A pointer to a #hash_entry_t.
- *
- * \return     A pointer to a #hash_table_t.
- */
-#define he_table(entry)        ((entry)->he_table)
-
-/** \ingroup dbprim_hash
- * \brief Hash table entry hash value.
- *
- * This macro retrieves the hash value of the given hash entry.  If
- * the hash table has been resized, this value may not be the same as
- * a previous value.
- *
- * \param entry        A pointer to a #hash_entry_t.
- *
- * \return     An <CODE>unsigned long</CODE> containing the hash code
- *             for the entry.
- */
-#define he_hash(entry) ((entry)->he_hash)
-
-/** \ingroup dbprim_hash
- * \brief Hash table entry key pointer.
- *
- * This macro retrieves the key associated with the hash table entry.
- *
- * \param entry        A pointer to a #hash_entry_t.
- *
- * \return     A pointer to a #db_key_t.
- */
-#define he_key(entry)  (&((entry)->he_key))
-
-/** \ingroup dbprim_hash
- * \brief Hash table entry value pointer.
- *
- * This macro retrieves the value associated with the hash table
- * entry.  It may be treated as an lvalue to change that value.  Care
- * should be taken when using this option.
- *
- * \param entry        A pointer to a #hash_entry_t.
- *
- * \return     A pointer to \c void representing the value associated
- *             with this entry.
- */
-#define he_value(entry)        ((entry)->he_value)
-
-unsigned long he_init(hash_entry_t *entry, void *value);
-
-unsigned long smat_cleanup(void);
-unsigned long smat_freemem(void);
-
-/* Macro to convert a link_elem_t into a smat_entry_t */
-#define _smat_ent(ent) ((smat_entry_t *)le_object(ent))
-
-struct _smat_table_s {
-  unsigned long        st_magic;       /* magic number */
-  smat_resize_t        st_resize;      /* function pointer for resize callback */
-  hash_table_t st_table;       /* hash table */
-};
-
-#define SMAT_TABLE_MAGIC 0x2f92a7b1
-
-/** \ingroup dbprim_smat
- * \brief Sparse matrix table static initializer.
- *
- * This macro statically initializes a #smat_table_t.
- *
- * \param flags        A bit-wise OR of #HASH_FLAG_AUTOGROW and
- *             #HASH_FLAG_AUTOSHRINK.  If neither behavior is
- *             desired, use 0.
- * \param resize
- *             A #smat_resize_t function pointer for determining
- *             whether resizing is permitted and/or for notification
- *             of the resize.
- * \param extra        Extra pointer data that should be associated with the
- *             sparse matrix.
- */
-#define SMAT_TABLE_INIT(flags, resize, extra) \
-       { SMAT_TABLE_MAGIC, (resize), \
-         HASH_TABLE_INIT((flags), _smat_hash, _smat_comp, _smat_resize, \
-                         (extra)) }
-
-/** \ingroup dbprim_smat
- * \brief Sparse matrix table verification macro.
- *
- * This macro verifies that a given pointer actually does point to a
- * sparse matrix table.
- *
- * \param table        A pointer to a #smat_table_t.
- *
- * \return     Boolean true if \p table is a valid sparse matrix
- *             table or false otherwise.
- */
-#define st_verify(table)       ((table) && \
-                                (table)->st_magic == SMAT_TABLE_MAGIC)
-
-/** \ingroup dbprim_smat
- * \brief Sparse matrix table flags.
- *
- * This macro retrieves the flags associated with the sparse matrix
- * table.  Only #HASH_FLAG_AUTOGROW and #HASH_FLAG_AUTOSHRINK have any
- * meaning to the application; all other bits are reserved for use in
- * the library.  This macro may be used as an lvalue, but care must be
- * taken to avoid modifying the library-specific bits.
- *
- * \param table        A pointer to a #smat_table_t.
- *
- * \return     An <CODE>unsigned long</CODE> containing the flags for
- *             the sparse matrix table.
- */
-#define st_flags(table)          ((table)->st_table.ht_flags)
-
-/** \ingroup dbprim_smat
- * \brief Determine if a sparse matrix is frozen.
- *
- * This macro returns a non-zero value if the matrix is currently
- * frozen.  The sparse matrix may be frozen if there is an iteration
- * in progress.
- *
- * \param table        A pointer to a #smat_table_t.
- *
- * \return     A zero value if the matrix is not frozen or a non-zero
- *             value if the matrix is frozen.
- */
-#define st_frozen(table)  ((table)->st_table.ht_flags & HASH_FLAG_FROZEN)
-
-/** \ingroup dbprim_smat
- * \brief Sparse matrix table modulus.
- *
- * This macro retrieves the number of buckets allocated for the sparse
- * matrix table.  An application may wish to save this value between
- * invocations to avoid the overhead of growing the table while
- * filling it with data.
- *
- * \param table        A pointer to a #smat_table_t.
- *
- * \return     An <CODE>unsigned long</CODE> containing the number of
- *             buckets allocated for the sparse matrix table.
- */
-#define st_modulus(table) ((table)->st_table.ht_modulus)
-
-/** \ingroup dbprim_smat
- * \brief Sparse matrix table count.
- *
- * This macro retrieves the total number of items actually in the
- * sparse matrix table.
- *
- * \param table        A pointer to a #smat_table_t.
- *
- * \return     An <CODE>unsigned long</CODE> containing a count of
- *             the number of items in the sparse matrix table.
- */
-#define st_count(table)          ((table)->st_table.ht_count)
-
-/** \ingroup dbprim_hash
- * \brief Sparse matrix table resize callback function.
- *
- * This macro retrieves the resize callback function pointer.
- *
- * \param table        A pointer to a #smat_table_t.
- *
- * \return     A #smat_resize_t.
- */
-#define st_rsize(table)          ((table)->st_resize)
-
-/** \ingroup dbprim_smat
- * \brief Extra pointer data in a sparse matrix table.
- *
- * This macro retrieves the extra pointer data associated with a
- * particular sparse matrix table.
- *
- * \param table        A pointer to a #smat_table_t.
- *
- * \return     A pointer to \c void.
- */
-#define st_extra(table)          ((table)->st_table.ht_extra)
-
-/** \ingroup dbprim_smat
- * \brief Sparse matrix table memory size.
- *
- * This macro returns the physical size of the memory allocated by the
- * library for this sparse matrix table.
- *
- * \note The st_size() macro already counts the memory for each list
- * in the table.  Summing the results of sh_size() and st_size() will
- * over-count the amount of memory actually in use. 
- *
- * \param table        A pointer to a #smat_table_t.
- *
- * \return     A \c size_t.
- */
-#define st_size(table) ((table)->st_table.ht_modulus * sizeof(link_head_t) + \
-                       (table)->st_table.ht_count * sizeof(smat_entry_t))
-
-unsigned long _smat_hash(hash_table_t *table, db_key_t *key);
-unsigned long _smat_comp(hash_table_t *table, db_key_t *key1, db_key_t *key2);
-unsigned long _smat_resize(hash_table_t *table, unsigned long new_mod);
-
-unsigned long st_init(smat_table_t *table, unsigned long flags,
-                     smat_resize_t resize, void *extra,
-                     unsigned long init_mod);
-unsigned long st_add(smat_table_t *table, smat_entry_t **entry_p,
-                    smat_head_t *head1, link_loc_t loc1, smat_entry_t *ent1,
-                    smat_head_t *head2, link_loc_t loc2, smat_entry_t *ent2);
-unsigned long st_remove(smat_table_t *table, smat_entry_t *entry);
-unsigned long st_find(smat_table_t *table, smat_entry_t **entry_p,
-                     smat_head_t *head1, smat_head_t *head2);
-unsigned long st_iter(smat_table_t *table, smat_iter_t iter_func, void *extra);
-unsigned long st_flush(smat_table_t *table, smat_iter_t flush_func,
-                      void *extra);
-unsigned long st_resize(smat_table_t *table, unsigned long new_size);
-unsigned long st_free(smat_table_t *table);
-
-struct _smat_head_s {
-  unsigned long sh_magic;      /* magic number */
-  smat_loc_t   sh_elem;        /* 0 or 1 to indicate first or second */
-  smat_table_t *sh_table;      /* table this object's in */
-  link_head_t  sh_head;        /* linked list head */
-};
-
-#define SMAT_HEAD_MAGIC 0x4e5d9b8e
-
-/** \ingroup dbprim_smat
- * \brief Sparse matrix list head static initializer.
- *
- * This macro statically initializes a #smat_head_t.
- *
- * \param elem One of #SMAT_LOC_FIRST or #SMAT_LOC_SECOND specifing
- *             whether the object is a member of the set of rows or
- *             columns.
- * \param object
- *             A pointer to \c void representing the object
- *             associated with the list head.
- */
-#define SMAT_HEAD_INIT(elem, object) \
-       { SMAT_HEAD_MAGIC, (elem), 0, LINK_HEAD_INIT(object) }
-
-/** \ingroup dbprim_smat
- * \brief Sparse matrix list head verification macro.
- *
- * This macro verifies that a given pointer actually does point to a
- * sparse matrix head.
- *
- * \param head A pointer to a #smat_head_t.
- *
- * \return     Boolean true if \p head is a valid sparse matrix head
- *             or false otherwise.
- */
-#define sh_verify(head)                ((head) && \
-                                (head)->sh_magic == SMAT_HEAD_MAGIC)
-
-/** \ingroup dbprim_smat
- * \brief Sparse matrix list head element macro.
- *
- * This macro retrieves the position indicator for the sparse matrix
- * head.  It will return one of #SMAT_LOC_FIRST or #SMAT_LOC_SECOND.
- *
- * \param head A pointer to #smat_head_t.
- *
- * \return     An #smat_loc_t.
- */
-#define sh_elem(head)  ((head)->sh_elem)
-
-/** \ingroup dbprim_smat
- * \brief Sparse matrix list head table pointer.
- *
- * If there are any elements in this sparse matrix list head, this
- * macro will retrieve a pointer to the table in which they reside.
- *
- * \param head A pointer to #smat_head_t.
- *
- * \return     A pointer to #smat_table_t.
- */
-#define sh_table(head) ((head)->sh_table)
-
-/** \ingroup dbprim_smat
- * \brief Determine if a sparse matrix is frozen.
- *
- * This macro returns a non-zero value if the matrix is currently
- * frozen.  The sparse matrix may be frozen if there is an iteration
- * in progress.
- *
- * \param head A pointer to a #smat_head_t.
- *
- * \return     A zero value if the matrix is not frozen or a non-zero
- *             value if the matrix is frozen.
- */
-#define sh_frozen(head) (st_frozen((head)->sh_table))
-
-/** \ingroup dbprim_smat
- * \brief Sparse matrix list count.
- *
- * This macro retrieves the number of elements in the sparse matrix
- * list rooted at \p head.
- *
- * \param head A pointer to #smat_head_t.
- *
- * \return     An <CODE>unsigned long</CODE> containing a count of
- *             the number of elements in the sparse matrix list.
- */
-#define sh_count(head) ((head)->sh_head.lh_count)
-
-/* helper macro to directly reference the link element */
-#define _sh_first(head)        ((head)->sh_head.lh_first)
-/** \ingroup dbprim_smat
- * \brief First element in sparse matrix list.
- *
- * This macro retrieves a pointer to the #smat_entry_t for the first
- * element in the sparse matrix list.
- *
- * \warning This macro may evaluate the \c head argument twice.
- *
- * \param head A pointer to #smat_head_t.
- *
- * \return     A pointer to #smat_entry_t.
- */
-#define sh_first(head) (_sh_first(head) ? _smat_ent(_sh_first(head)) : 0)
-
-/* helper macro to directly reference the link element */
-#define _sh_last(head) ((head)->sh_head.lh_last)
-/** \ingroup dbprim_smat
- * \brief Last element in sparse matrix list.
- *
- * This macro retrieves a pointer to the #smat_entry_t for the last
- * element in the sparse matrix list.
- *
- * \warning This macro may evaluate the \c head argument twice.
- *
- * \param head A pointer to #smat_head_t.
- *
- * \return     A pointer to #smat_entry_t.
- */
-#define sh_last(head)  (_sh_last(head) ? _smat_ent(_sh_last(head)) : 0)
-
-/** \ingroup dbprim_smat
- * \brief Object represented by a sparse matrix list head.
- *
- * This macro retrieves a pointer to the object referenced by the
- * sparse matrix list head.
- *
- * \param head A pointer to #smat_head_t.
- *
- * \return     A pointer to \c void.
- */
-#define sh_object(head)        ((head)->sh_head.lh_extra)
-
-/** \ingroup dbprim_smat
- * \brief Sparse matrix list memory size.
- *
- * This macro returns the physical size of the memory allocated by the
- * library for this sparse matrix list.
- *
- * \note The st_size() macro already counts the memory for each list
- * in the table.  Summing the results of sh_size() and st_size() will
- * over-count the amount of memory actually in use. 
- *
- * \param head A pointer to #smat_head_t.
- *
- * \return     A \c size_t.
- */
-#define sh_size(head)  ((head)->sh_elem.lh_count * sizeof(smat_entry_t))
-
-unsigned long sh_init(smat_head_t *head, smat_loc_t elem, void *object);
-unsigned long sh_move(smat_head_t *head, smat_entry_t *elem, link_loc_t loc,
-                     smat_entry_t *elem2);
-unsigned long sh_find(smat_head_t *head, smat_entry_t **elem_p,
-                     smat_comp_t comp_func, smat_entry_t *start,
-                     db_key_t *key);
-unsigned long sh_iter(smat_head_t *head, smat_iter_t iter_func, void *extra);
-unsigned long sh_flush(smat_head_t *head, smat_iter_t flush_func, void *extra);
-
-struct _smat_entry_s {
-  unsigned long        se_magic;       /* magic number */
-  smat_table_t *se_table;      /* sparse matrix table */
-  hash_entry_t se_hash;        /* hash table entry */
-  link_elem_t  se_link[2];     /* linked list elements */
-  void        *se_object[2];   /* objects */
-};
-
-#define SMAT_ENTRY_MAGIC 0x466b34b5
-
-/** \ingroup dbprim_smat
- * \brief Sparse matrix entry verification macro.
- *
- * This macro verifies that a given pointer actually does point to a
- * sparse matrix entry.
- *
- * \param entry        A pointer to a #smat_entry_t.
- *
- * \return     Boolean true if \p entry is a valid sparse matrix
- *             entry or false otherwise.
- */
-#define se_verify(entry)       ((entry) && \
-                                (entry)->se_magic == SMAT_ENTRY_MAGIC)
-
-/** \ingroup dbprim_smat
- * \brief Sparse matrix entry table.
- *
- * This macro retrieves a pointer to the table that the sparse matrix
- * entry is in.
- *
- * \param entry        A pointer to a #smat_entry_t.
- *
- * \return     A pointer to a #smat_table_t.
- */
-#define se_table(entry)            ((entry)->se_table)
-
-/** \ingroup dbprim_smat
- * \internal
- * \brief Sparse matrix entry linked list element.
- *
- * This macro provides access to the linked list element buried in the
- * sparse matrix entry for use by the free list routines.
- *
- * \param entry        A pointer to a #smat_entry_t.
- *
- * \return     A pointer to a #link_elem_t.
- */
-#define _se_link(entry)            (&((entry)->se_hash.he_elem))
-
-/** \ingroup dbprim_smat
- * \brief Sparse matrix entry flags.
- *
- * This macro retrieves a set of user-defined flags associated with
- * the entry.  It may be used as an lvalue to set those flags.
- *
- * \param entry        A pointer to a #smat_entry_t.
- *
- * \return     An <CODE>unsigned long</CODE> containing the flags
- *             associated with the entry.
- */
-#define se_flags(entry)     ((entry)->se_hash.he_elem.le_flags)
-
-/** \ingroup dbprim_smat
- * \brief Sparse matrix table entry hash value.
- *
- * This macro retrieves the hash value of the given sparse matrix
- * entry.  If the sparse matrix hash been resized, this value may not
- * be the same as a previous value.
- *
- * \param entry        A pointer to a #smat_entry_t.
- *
- * \return     An <CODE>unsigned long</CODE> containing the hash code
- *             for the entry.
- */
-#define se_hash(entry)     ((entry)->se_hash.he_hash)
-
-/* helper macro to directly reference the link element */
-#define _se_next(entry, n)  ((entry)->se_link[(n)].le_next)
-/** \ingroup dbprim_smat
- * \brief Next element in sparse matrix list.
- *
- * This macro retrieves a pointer to the #link_elem_t for the next
- * element in the sparse matrix list.
- *
- * \warning This macro may evaluate the \c entry and \c n arguments
- * twice.
- *
- * \param entry        A pointer to #smat_entry_t.
- * \param n    One of #SMAT_LOC_FIRST or #SMAT_LOC_SECOND to specify
- *             which list thread is desired.
- *
- * \return     A pointer to #smat_entry_t.
- */
-#define se_next(entry, n)   (_se_next(entry, n) ? \
-                            _smat_ent(_se_next(entry, n)) : 0)
-
-/* helper macro to directly reference the link element */
-#define _se_prev(entry, n)  ((entry)->se_link[(n)].le_prev)
-/** \ingroup dbprim_smat
- * \brief Previous element in sparse matrix list.
- *
- * This macro retrieves a pointer to the #link_elem_t for the previous
- * element in the sparse matrix list.
- *
- * \warning This macro may evaluate the \c entry and \c n arguments
- * twice.
- *
- * \param entry        A pointer to #smat_entry_t.
- * \param n    One of #SMAT_LOC_FIRST or #SMAT_LOC_SECOND to specify
- *             which list thread is desired.
- *
- * \return     A pointer to #smat_entry_t.
- */
-#define se_prev(entry, n)   (_se_prev(entry, n) ? \
-                            _smat_ent(_se_prev(entry, n)) : 0)
-
-/** \ingroup dbprim_smat
- * \brief Flags associated with an entry in a sparse matrix list.
- *
- * This macro retrieves a set of user-defined flags associated with
- * the entry in a sparse matrix list.  It may be used as an lvalue to
- * set those flags.
- *
- * \param entry        A pointer to #smat_entry_t.
- * \param n    One of #SMAT_LOC_FIRST or #SMAT_LOC_SECOND to specify
- *             which list thread is desired.
- *
- * \return     An <CODE>unsigned long</CODE> containing the flags
- *             associated with the entry.
- */
-#define se_lflags(entry, n) ((entry)->se_link[(n)].le_flags)
-
-/** \ingroup dbprim_smat
- * \brief Object associated with an entry in a sparse matrix list.
- *
- * This macro retrieves a pointer to one of the object represented by
- * the entry.  It may be used as an lvalue to change the object
- * pointed to.  Care should be taken when using this feature.
- *
- * \param entry        A pointer to #smat_entry_t.
- * \param n    One of #SMAT_LOC_FIRST or #SMAT_LOC_SECOND to specify
- *             which list thread is desired.
- *
- * \return     A pointer to \c void representing the object.
- */
-#define se_object(entry, n) ((entry)->se_object[(n)])
-
-/* begin dbprim_err.h */
-
diff --git a/libs/dbprim/dbprim_err.et b/libs/dbprim/dbprim_err.et
deleted file mode 100644 (file)
index c7aacb9..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-# Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Library General Public
-# License as published by the Free Software Foundation; either
-# version 2 of the License, or (at your option) any later version.
-#
-# This library 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
-# Library General Public License for more details.
-#
-# You should have received a copy of the GNU Library General Public
-# License along with this library; if not, write to the Free
-# Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-# MA 02111-1307, USA
-#
-# @(#)$Id: dbprim_err.et,v 1.1 2003-03-07 02:36:10 klmitch Exp $
-
-error_table dbpr
-
-error_code DB_ERR_BADARGS,             "Bad arguments"
-
-error_code DB_ERR_BUSY,                        "Element already in use"
-error_code DB_ERR_UNUSED,              "Element is not in use"
-error_code DB_ERR_WRONGTABLE,          "Element is not in this table"
-error_code DB_ERR_NOENTRY,             "No matching element"
-
-error_code DB_ERR_DUPLICATE,           "Duplicate keys found"
-error_code DB_ERR_NOTEMPTY,            "Table not empty"
-error_code DB_ERR_FROZEN,              "Table is frozen; try again later"
-error_code DB_ERR_NOTABLE,             "No table allocated"
-error_code DB_ERR_READDFAILED,         "Failed to re-add entry to table"
-error_code DB_ERR_UNRECOVERABLE,       "Unrecoverable error; table unusable"
-
-end
diff --git a/libs/dbprim/dbprim_int.h b/libs/dbprim/dbprim_int.h
deleted file mode 100644 (file)
index 60ee6de..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
-** Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-**
-** This library is free software; you can redistribute it and/or
-** modify it under the terms of the GNU Library General Public
-** License as published by the Free Software Foundation; either
-** version 2 of the License, or (at your option) any later version.
-**
-** This library 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
-** Library General Public License for more details.
-**
-** You should have received a copy of the GNU Library General Public
-** License along with this library; if not, write to the Free
-** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-** MA 02111-1307, USA
-**
-** @(#)$Id$
-*/
-#ifndef __include_dbprim_int_h__
-#define __include_dbprim_int_h__
-
-#ifdef __GNUC__
-# if (__GNUC__ < 2) || (__GNUC__ == 2 && __GNUC_MINOR__ < 7)
-#  define __attribute__(A)
-# endif
-#else
-# define __extension__
-# define __attribute__(A)
-#endif
-
-#define RCSTAG(tag) static char rcsid[] __attribute__((unused)) = tag
-
-unsigned long _hash_prime(unsigned long start);
-
-#define _hash_rollover(mod)    (((mod) * 4) / 3)
-#define _hash_rollunder(mod)   (((mod) * 3) / 4)
-#define _hash_fuzz(mod)                (((mod) * 4) / 3)
-
-unsigned long _st_remove(smat_table_t *table, smat_entry_t *entry,
-                        unsigned int remflag);
-
-#define ST_REM_FIRST   0x0001  /* remove from first list */
-#define ST_REM_SECOND  0x0002  /* remove from second list */
-#define ST_REM_HASH    0x0004  /* remove from hash table */
-#define ST_REM_FREE    0x0008  /* free the entry */
-
-smat_entry_t *_smat_alloc(void);
-void _smat_free(smat_entry_t *entry);
-
-#endif /* __include_dbprim_int_h__ */
diff --git a/libs/dbprim/doc/Doxyfile b/libs/dbprim/doc/Doxyfile
deleted file mode 100644 (file)
index a9d58ef..0000000
+++ /dev/null
@@ -1,191 +0,0 @@
-# Doxygen configuration generated by Doxywizard version 0.1
-#---------------------------------------------------------------------------
-# General configuration options
-#---------------------------------------------------------------------------
-PROJECT_NAME           = dbprim
-PROJECT_NUMBER         = 
-OUTPUT_DIRECTORY       = doc
-OUTPUT_LANGUAGE        = English
-EXTRACT_ALL            = NO
-EXTRACT_PRIVATE        = NO
-EXTRACT_STATIC         = NO
-HIDE_UNDOC_MEMBERS     = YES
-HIDE_UNDOC_CLASSES     = YES
-BRIEF_MEMBER_DESC      = YES
-REPEAT_BRIEF           = NO
-ALWAYS_DETAILED_SEC    = NO
-FULL_PATH_NAMES        = NO
-STRIP_FROM_PATH        = 
-INTERNAL_DOCS          = NO
-CLASS_DIAGRAMS         = NO
-SOURCE_BROWSER         = NO
-INLINE_SOURCES         = NO
-STRIP_CODE_COMMENTS    = YES
-CASE_SENSE_NAMES       = YES
-SHORT_NAMES            = NO
-HIDE_SCOPE_NAMES       = NO
-VERBATIM_HEADERS       = NO
-SHOW_INCLUDE_FILES     = NO
-JAVADOC_AUTOBRIEF      = NO
-INHERIT_DOCS           = YES
-INLINE_INFO            = YES
-SORT_MEMBER_DOCS       = YES
-DISTRIBUTE_GROUP_DOC   = NO
-TAB_SIZE               = 8
-ENABLED_SECTIONS       = 
-GENERATE_TODOLIST      = YES
-GENERATE_TESTLIST      = YES
-GENERATE_BUGLIST       = YES
-ALIASES                = 
-MAX_INITIALIZER_LINES  = 0
-OPTIMIZE_OUTPUT_FOR_C  = YES
-SHOW_USED_FILES        = YES
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-QUIET                  = NO
-WARNINGS               = YES
-WARN_IF_UNDOCUMENTED   = YES
-WARN_FORMAT            = 
-WARN_LOGFILE           = 
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-INPUT                  = ll_init.c \
-                        ll_add.c \
-                        ll_move.c \
-                        ll_remove.c \
-                        ll_find.c \
-                        ll_iter.c \
-                        ll_flush.c \
-                        le_init.c \
-                        ht_init.c \
-                        ht_add.c \
-                        ht_move.c \
-                        ht_remove.c \
-                        ht_find.c \
-                        ht_iter.c \
-                        ht_flush.c \
-                        ht_resize.c \
-                        ht_free.c \
-                        he_init.c \
-                        smat_freelist.c \
-                        _smat_hash.c \
-                        _smat_comp.c \
-                        st_init.c \
-                        st_add.c \
-                        st_remove.c \
-                        st_find.c \
-                        st_iter.c \
-                        st_flush.c \
-                        st_resize.c \
-                        st_free.c \
-                        sh_init.c \
-                        sh_move.c \
-                        sh_find.c \
-                        sh_iter.c \
-                        sh_flush.c \
-                        dbprim.h.top \
-                        dbprim_int.h
-FILE_PATTERNS          = 
-RECURSIVE              = NO
-EXCLUDE                = 
-EXCLUDE_PATTERNS       = 
-EXAMPLE_PATH           = 
-EXAMPLE_PATTERNS       = 
-IMAGE_PATH             = 
-INPUT_FILTER           = 
-FILTER_SOURCE_FILES    = NO
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-ALPHABETICAL_INDEX     = NO
-COLS_IN_ALPHA_INDEX    = 5
-IGNORE_PREFIX          = 
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-GENERATE_HTML          = YES
-HTML_OUTPUT            = 
-HTML_HEADER            = 
-HTML_FOOTER            = 
-HTML_STYLESHEET        = 
-HTML_ALIGN_MEMBERS     = YES
-GENERATE_HTMLHELP      = NO
-GENERATE_CHI           = NO
-BINARY_TOC             = NO
-TOC_EXPAND             = NO
-DISABLE_INDEX          = NO
-ENUM_VALUES_PER_LINE   = 4
-GENERATE_TREEVIEW      = NO
-TREEVIEW_WIDTH         = 250
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-GENERATE_LATEX         = YES
-LATEX_OUTPUT           = 
-COMPACT_LATEX          = NO
-PAPER_TYPE             = letter
-EXTRA_PACKAGES         = 
-LATEX_HEADER           = 
-PDF_HYPERLINKS         = NO
-USE_PDFLATEX           = NO
-LATEX_BATCHMODE        = NO
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-GENERATE_RTF           = NO
-RTF_OUTPUT             = 
-COMPACT_RTF            = NO
-RTF_HYPERLINKS         = NO
-RTF_STYLESHEET_FILE    = 
-RTF_EXTENSIONS_FILE    = 
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-GENERATE_MAN           = YES
-MAN_OUTPUT             = 
-MAN_EXTENSION          = 
-MAN_LINKS              = NO
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor   
-#---------------------------------------------------------------------------
-ENABLE_PREPROCESSING   = YES
-MACRO_EXPANSION        = NO
-EXPAND_ONLY_PREDEF     = NO
-SEARCH_INCLUDES        = YES
-INCLUDE_PATH           = 
-INCLUDE_FILE_PATTERNS  = 
-PREDEFINED             = 
-EXPAND_AS_DEFINED      = 
-#---------------------------------------------------------------------------
-# Configuration::addtions related to external references   
-#---------------------------------------------------------------------------
-TAGFILES               = 
-GENERATE_TAGFILE       = 
-ALLEXTERNALS           = NO
-PERL_PATH              = 
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool   
-#---------------------------------------------------------------------------
-HAVE_DOT               = NO
-CLASS_GRAPH            = YES
-COLLABORATION_GRAPH    = YES
-INCLUDE_GRAPH          = YES
-INCLUDED_BY_GRAPH      = YES
-GRAPHICAL_HIERARCHY    = YES
-DOT_PATH               = 
-MAX_DOT_GRAPH_WIDTH    = 1024
-MAX_DOT_GRAPH_HEIGHT   = 1024
-GENERATE_LEGEND        = YES
-DOT_CLEANUP            = YES
-#---------------------------------------------------------------------------
-# Configuration::addtions related to the search engine   
-#---------------------------------------------------------------------------
-SEARCHENGINE           = NO
-CGI_NAME               = 
-CGI_URL                = 
-DOC_URL                = 
-DOC_ABSPATH            = 
-BIN_ABSPATH            = 
-EXT_DOC_PATHS          = 
diff --git a/libs/dbprim/doc/html/doxygen.css b/libs/dbprim/doc/html/doxygen.css
deleted file mode 100644 (file)
index 7f8e5b8..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-H1 { text-align: center; }
-A.qindex {}
-A.qindexRef {}
-A.el { text-decoration: none; font-weight: bold }
-A.elRef { font-weight: bold }
-A.code { text-decoration: none; font-weight: normal; color: #4444ee }
-A.codeRef { font-weight: normal; color: #4444ee }
-DL.el { margin-left: -1cm }
-DIV.fragment { width: 100%; border: none; background-color: #eeeeee }
-DIV.ah { background-color: black; margin-bottom: 3; margin-top: 3 }
-TD.md { background-color: #f2f2ff }
-DIV.groupHeader { margin-left: 16; margin-top: 12; margin-bottom: 6; font-weight: bold }
-DIV.groupText { margin-left: 16; font-style: italic; font-size: smaller }
-FONT.keyword       { color: #008000 }
-FONT.keywordtype   { color: #604020 }
-FONT.keywordflow   { color: #e08000 }
-FONT.comment       { color: #800000 }
-FONT.preprocessor  { color: #806020 }
-FONT.stringliteral { color: #002080 }
-FONT.charliteral   { color: #008080 }
diff --git a/libs/dbprim/doc/html/doxygen.gif b/libs/dbprim/doc/html/doxygen.gif
deleted file mode 100644 (file)
index 192c83c..0000000
Binary files a/libs/dbprim/doc/html/doxygen.gif and /dev/null differ
diff --git a/libs/dbprim/doc/html/group__dbprim__hash.html b/libs/dbprim/doc/html/group__dbprim__hash.html
deleted file mode 100644 (file)
index ee3b12c..0000000
+++ /dev/null
@@ -1,1795 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
-<title>Hash tables</title>
-<link href="doxygen.css" rel="stylesheet" type="text/css">
-</head><body bgcolor="#ffffff">
-<!-- Generated by Doxygen 1.2.8.1 -->
-<center>
-<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="modules.html">Modules</a> &nbsp; </center>
-<hr><h1>Hash tables</h1>Operations for hash tables. 
-<a href="#_details">More...</a><table border=0 cellpadding=0 cellspacing=0>
-<tr><td colspan=2><br><h2>Defines</h2></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__hash.html#a16">HASH_FLAG_AUTOGROW</a></td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Flag permitting a hash table to automatically grow.</em> <a href="#a16">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__hash.html#a17">HASH_FLAG_AUTOSHRINK</a></td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Flag permitting a hash table to automatically shrink.</em> <a href="#a17">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__hash.html#a18">HASH_TABLE_INIT</a>(flags, func, comp, resize, extra)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Hash table static initializer.</em> <a href="#a18">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__hash.html#a19">ht_verify</a>(table)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Hash table verification macro.</em> <a href="#a19">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__hash.html#a20">ht_flags</a>(table)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Hash table flags.</em> <a href="#a20">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__hash.html#a21">ht_frozen</a>(table)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Determine if a hash table is frozen.</em> <a href="#a21">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__hash.html#a22">ht_modulus</a>(table)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Hash table modulus.</em> <a href="#a22">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__hash.html#a23">ht_count</a>(table)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Hash table count.</em> <a href="#a23">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__hash.html#a24">ht_func</a>(table)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Hash table hash function.</em> <a href="#a24">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__hash.html#a25">ht_comp</a>(table)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Hash table comparison function.</em> <a href="#a25">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__hash.html#a26">ht_rsize</a>(table)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Hash table resize callback function.</em> <a href="#a26">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__hash.html#a27">ht_extra</a>(table)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Extra pointer data in a hash table.</em> <a href="#a27">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__hash.html#a28">ht_size</a>(table)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Hash table memory size.</em> <a href="#a28">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__hash.html#a29">HASH_ENTRY_INIT</a>(value)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Hash table entry static initializer.</em> <a href="#a29">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__hash.html#a30">he_verify</a>(entry)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Hash table entry verification macro.</em> <a href="#a30">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__hash.html#a31">he_link</a>(entry)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Hash table entry linked list element.</em> <a href="#a31">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__hash.html#a32">he_flags</a>(entry)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Hash table entry flags.</em> <a href="#a32">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__hash.html#a33">he_table</a>(entry)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Hash table entry table pointer.</em> <a href="#a33">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__hash.html#a34">he_hash</a>(entry)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Hash table entry hash value.</em> <a href="#a34">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__hash.html#a35">he_key</a>(entry)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Hash table entry key pointer.</em> <a href="#a35">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__hash.html#a36">he_value</a>(entry)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Hash table entry value pointer.</em> <a href="#a36">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__hash.html#a37">st_rsize</a>(table)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Sparse matrix table resize callback function.</em> <a href="#a37">More...</a><em></em></font><br><br></td></tr>
-<tr><td colspan=2><br><h2>Typedefs</h2></td></tr>
-<tr><td nowrap align=right valign=top>typedef struct _hash_table_s&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__hash.html#a0">hash_table_t</a></td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Hash table.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>typedef struct _hash_entry_s&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__hash.html#a1">hash_entry_t</a></td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Hash table entry.</em> <a href="#a1">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>typedef unsigned long (*&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__hash.html#a2">hash_iter_t</a> )(<a class="el" href="group__dbprim__hash.html#a0">hash_table_t</a> *, <a class="el" href="group__dbprim__hash.html#a1">hash_entry_t</a> *, void *)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Hash table iteration callback.</em> <a href="#a2">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>typedef unsigned long (*&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__hash.html#a3">hash_func_t</a> )(<a class="el" href="group__dbprim__hash.html#a0">hash_table_t</a> *, <a class="el" href="group__dbprim__key.html#a0">db_key_t</a> *)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Hash function callback.</em> <a href="#a3">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>typedef unsigned long (*&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__hash.html#a4">hash_comp_t</a> )(<a class="el" href="group__dbprim__hash.html#a0">hash_table_t</a> *, <a class="el" href="group__dbprim__key.html#a0">db_key_t</a> *, <a class="el" href="group__dbprim__key.html#a0">db_key_t</a> *)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Hash table comparison callback.</em> <a href="#a4">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>typedef unsigned long (*&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__hash.html#a5">hash_resize_t</a> )(<a class="el" href="group__dbprim__hash.html#a0">hash_table_t</a> *, unsigned long)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Hash table resize callback.</em> <a href="#a5">More...</a><em></em></font><br><br></td></tr>
-<tr><td colspan=2><br><h2>Functions</h2></td></tr>
-<tr><td nowrap align=right valign=top>unsigned long&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__hash.html#a6">ht_init</a> (<a class="el" href="group__dbprim__hash.html#a0">hash_table_t</a> *table, unsigned long flags, <a class="el" href="group__dbprim__hash.html#a3">hash_func_t</a> func, <a class="el" href="group__dbprim__hash.html#a4">hash_comp_t</a> comp, <a class="el" href="group__dbprim__hash.html#a5">hash_resize_t</a> resize, void *extra, unsigned long init_mod)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Dynamically initialize a hash table.</em> <a href="#a6">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>unsigned long&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__hash.html#a7">ht_add</a> (<a class="el" href="group__dbprim__hash.html#a0">hash_table_t</a> *table, <a class="el" href="group__dbprim__hash.html#a1">hash_entry_t</a> *entry, <a class="el" href="group__dbprim__key.html#a0">db_key_t</a> *key)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Add an entry to a hash table.</em> <a href="#a7">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>unsigned long&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__hash.html#a8">ht_move</a> (<a class="el" href="group__dbprim__hash.html#a0">hash_table_t</a> *table, <a class="el" href="group__dbprim__hash.html#a1">hash_entry_t</a> *entry, <a class="el" href="group__dbprim__key.html#a0">db_key_t</a> *key)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Move an entry in the hash table.</em> <a href="#a8">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>unsigned long&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__hash.html#a9">ht_remove</a> (<a class="el" href="group__dbprim__hash.html#a0">hash_table_t</a> *table, <a class="el" href="group__dbprim__hash.html#a1">hash_entry_t</a> *entry)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Remove an element from a hash table.</em> <a href="#a9">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>unsigned long&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__hash.html#a10">ht_find</a> (<a class="el" href="group__dbprim__hash.html#a0">hash_table_t</a> *table, <a class="el" href="group__dbprim__hash.html#a1">hash_entry_t</a> **entry_p, <a class="el" href="group__dbprim__key.html#a0">db_key_t</a> *key)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Find an entry in a hash table.</em> <a href="#a10">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>unsigned long&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__hash.html#a11">ht_iter</a> (<a class="el" href="group__dbprim__hash.html#a0">hash_table_t</a> *table, <a class="el" href="group__dbprim__hash.html#a2">hash_iter_t</a> iter_func, void *extra)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Iterate over each entry in a hash table.</em> <a href="#a11">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>unsigned long&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__hash.html#a12">ht_flush</a> (<a class="el" href="group__dbprim__hash.html#a0">hash_table_t</a> *table, <a class="el" href="group__dbprim__hash.html#a2">hash_iter_t</a> flush_func, void *extra)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Flush a hash table.</em> <a href="#a12">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>unsigned long&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__hash.html#a13">ht_resize</a> (<a class="el" href="group__dbprim__hash.html#a0">hash_table_t</a> *table, unsigned long new_size)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Resize a hash table.</em> <a href="#a13">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>unsigned long&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__hash.html#a14">ht_free</a> (<a class="el" href="group__dbprim__hash.html#a0">hash_table_t</a> *table)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Free memory used by an empty hash table.</em> <a href="#a14">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>unsigned long&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__hash.html#a15">he_init</a> (<a class="el" href="group__dbprim__hash.html#a1">hash_entry_t</a> *entry, void *value)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Dynamically initialize a hash table entry.</em> <a href="#a15">More...</a><em></em></font><br><br></td></tr>
-</table>
-<hr><a name="_details"></a><h2>Detailed Description</h2>
-Hash tables are a basic data structure used in building databases. Hash tables provide a means of storing data such that an arbitrary entry may be looked up efficiently. This library implements a hash table that may optionally grow and shrink to provide maximum efficiency. The implementation is with two kinds of caller-allocated structures--a <a class="el" href="group__dbprim__hash.html#a0">hash_table_t</a> structure that describes the table and a <a class="el" href="group__dbprim__hash.html#a1">hash_entry_t</a> structure for each entry in the table. The library allocates a bucket array which must be released with the <a class="el" href="group__dbprim__hash.html#a14">ht_free</a>() function when the hash table has been emptied. Additionally, the hash table may be manually resized with the <a class="el" href="group__dbprim__hash.html#a13">ht_resize</a>() function.
-<p>
-Entries may be added to and removed from the table using the <a class="el" href="group__dbprim__hash.html#a7">ht_add</a>() and <a class="el" href="group__dbprim__hash.html#a9">ht_remove</a>() functions. Additionally, the key on a given entry may be changed using the <a class="el" href="group__dbprim__hash.html#a8">ht_move</a>() function. Of course, any given entry may be looked up using the <a class="el" href="group__dbprim__hash.html#a10">ht_find</a>() function, and <a class="el" href="group__dbprim__hash.html#a11">ht_iter</a>() will execute a user-defined function for each entry in the hash table (in an unspecified order). The <a class="el" href="group__dbprim__hash.html#a12">ht_flush</a>() function will remove all entries from the hash table, optionally executing a user-specified clean-up function. <hr><h2>Define Documentation</h2>
-<a name="a29" doxytag="dbprim.h.top::HASH_ENTRY_INIT"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define HASH_ENTRY_INIT(
-          </b></td>
-          <td valign="bottom"><b>
-value&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro statically initializes a <a class="el" href="group__dbprim__hash.html#a1">hash_entry_t</a>.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>value</em>
-&nbsp;</td><td>
-A pointer to <code>void</code> representing the object associated with the entry. </td></tr>
-</table>
-</dl>    </td>
-  </tr>
-</table>
-<a name="a16" doxytag="dbprim.h.top::HASH_FLAG_AUTOGROW"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define HASH_FLAG_AUTOGROW
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- If passed in to <a class="el" href="group__dbprim__hash.html#a18">HASH_TABLE_INIT</a>() or <a class="el" href="group__dbprim__hash.html#a6">ht_init</a>(), allows the hash table to grow automatically.     </td>
-  </tr>
-</table>
-<a name="a17" doxytag="dbprim.h.top::HASH_FLAG_AUTOSHRINK"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define HASH_FLAG_AUTOSHRINK
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- If passed in to <a class="el" href="group__dbprim__hash.html#a18">HASH_TABLE_INIT</a>() or <a class="el" href="group__dbprim__hash.html#a6">ht_init</a>(), allows the hash table to shrink automatically.     </td>
-  </tr>
-</table>
-<a name="a18" doxytag="dbprim.h.top::HASH_TABLE_INIT"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define HASH_TABLE_INIT(
-          </b></td>
-          <td valign="bottom"><b>
-flags, func, comp, resize, extra&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro statically initializes a <a class="el" href="group__dbprim__hash.html#a0">hash_table_t</a>.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>flags</em>
-&nbsp;</td><td>
-A bit-wise OR of <a class="el" href="group__dbprim__hash.html#a16">HASH_FLAG_AUTOGROW</a> and <a class="el" href="group__dbprim__hash.html#a17">HASH_FLAG_AUTOSHRINK</a>. If neither behavior is desired, use 0. </td></tr>
-<tr><td valign=top><em>func</em>
-&nbsp;</td><td>
-A <a class="el" href="group__dbprim__hash.html#a3">hash_func_t</a> function pointer for a hash function. </td></tr>
-<tr><td valign=top><em>comp</em>
-&nbsp;</td><td>
-A <a class="el" href="group__dbprim__hash.html#a4">hash_comp_t</a> function pointer for a comparison function. </td></tr>
-<tr><td valign=top><em>resize</em>
-&nbsp;</td><td>
-A <a class="el" href="group__dbprim__hash.html#a5">hash_resize_t</a> function pointer for determining whether resizing is permitted and/or for notification of the resize. </td></tr>
-<tr><td valign=top><em>extra</em>
-&nbsp;</td><td>
-Extra pointer data that should be associated with the hash table. </td></tr>
-</table>
-</dl>    </td>
-  </tr>
-</table>
-<a name="a32" doxytag="dbprim.h.top::he_flags"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define he_flags(
-          </b></td>
-          <td valign="bottom"><b>
-entry&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro retrieves a set of user-defined flags associated with the entry. It may be used as an lvalue to set those flags.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>entry</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__hash.html#a1">hash_entry_t</a>.
-<p>
-</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Returns: </b><dd>
-An <code>unsigned long</code> containing the flags associated with the entry. </dl>    </td>
-  </tr>
-</table>
-<a name="a34" doxytag="dbprim.h.top::he_hash"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define he_hash(
-          </b></td>
-          <td valign="bottom"><b>
-entry&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro retrieves the hash value of the given hash entry. If the hash table has been resized, this value may not be the same as a previous value.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>entry</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__hash.html#a1">hash_entry_t</a>.
-<p>
-</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Returns: </b><dd>
-An <code>unsigned long</code> containing the hash code for the entry. </dl>    </td>
-  </tr>
-</table>
-<a name="a35" doxytag="dbprim.h.top::he_key"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define he_key(
-          </b></td>
-          <td valign="bottom"><b>
-entry&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro retrieves the key associated with the hash table entry.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>entry</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__hash.html#a1">hash_entry_t</a>.
-<p>
-</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Returns: </b><dd>
-A pointer to a <a class="el" href="group__dbprim__key.html#a0">db_key_t</a>. </dl>    </td>
-  </tr>
-</table>
-<a name="a31" doxytag="dbprim.h.top::he_link"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define he_link(
-          </b></td>
-          <td valign="bottom"><b>
-entry&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro provides access to the linked list element buried in the hash table entry. It should *not* be used on entries currently in a hash table. The purpose of this macro is to allow an object containing a hash table entry to be placed upon a free list.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>entry</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__hash.html#a1">hash_entry_t</a>.
-<p>
-</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Returns: </b><dd>
-A pointer to a <a class="el" href="group__dbprim__link.html#a1">link_elem_t</a>. </dl>    </td>
-  </tr>
-</table>
-<a name="a33" doxytag="dbprim.h.top::he_table"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define he_table(
-          </b></td>
-          <td valign="bottom"><b>
-entry&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro retrieves a pointer to the hash table the entry is in.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>entry</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__hash.html#a1">hash_entry_t</a>.
-<p>
-</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Returns: </b><dd>
-A pointer to a <a class="el" href="group__dbprim__hash.html#a0">hash_table_t</a>. </dl>    </td>
-  </tr>
-</table>
-<a name="a36" doxytag="dbprim.h.top::he_value"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define he_value(
-          </b></td>
-          <td valign="bottom"><b>
-entry&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro retrieves the value associated with the hash table entry. It may be treated as an lvalue to change that value. Care should be taken when using this option.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>entry</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__hash.html#a1">hash_entry_t</a>.
-<p>
-</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Returns: </b><dd>
-A pointer to <code>void</code> representing the value associated with this entry. </dl>    </td>
-  </tr>
-</table>
-<a name="a30" doxytag="dbprim.h.top::he_verify"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define he_verify(
-          </b></td>
-          <td valign="bottom"><b>
-entry&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro verifies that a given pointer actually does point to a hash table entry.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>entry</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__hash.html#a1">hash_entry_t</a>.
-<p>
-</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Returns: </b><dd>
-Boolean true if <code>entry</code> is a valid hash table entry or false otherwise. </dl>    </td>
-  </tr>
-</table>
-<a name="a25" doxytag="dbprim.h.top::ht_comp"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define ht_comp(
-          </b></td>
-          <td valign="bottom"><b>
-table&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro retrieves the comparison function pointer.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>table</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__hash.html#a0">hash_table_t</a>.
-<p>
-</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Returns: </b><dd>
-A <a class="el" href="group__dbprim__hash.html#a4">hash_comp_t</a>. </dl>    </td>
-  </tr>
-</table>
-<a name="a23" doxytag="dbprim.h.top::ht_count"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define ht_count(
-          </b></td>
-          <td valign="bottom"><b>
-table&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro retrieves the total number of items actually in the hash table.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>table</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__hash.html#a0">hash_table_t</a>.
-<p>
-</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Returns: </b><dd>
-An <code>unsigned long</code> containing a count of the number of items in the hash table. </dl>    </td>
-  </tr>
-</table>
-<a name="a27" doxytag="dbprim.h.top::ht_extra"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define ht_extra(
-          </b></td>
-          <td valign="bottom"><b>
-table&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro retrieves the extra pointer data associated with a particular hash table.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>table</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__hash.html#a0">hash_table_t</a>.
-<p>
-</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Returns: </b><dd>
-A pointer to <code>void</code>. </dl>    </td>
-  </tr>
-</table>
-<a name="a20" doxytag="dbprim.h.top::ht_flags"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define ht_flags(
-          </b></td>
-          <td valign="bottom"><b>
-table&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro retrieves the flags associated with the hash table. Only <a class="el" href="group__dbprim__hash.html#a16">HASH_FLAG_AUTOGROW</a> and <a class="el" href="group__dbprim__hash.html#a17">HASH_FLAG_AUTOSHRINK</a> have any meaning to the application; all other bits are reserved for use in the library. This macro may be used as an lvalue, but care must be taken to avoid modifying the library-specific bits.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>table</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__hash.html#a0">hash_table_t</a>.
-<p>
-</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Returns: </b><dd>
-An <code>unsigned long</code> containing the flags for the hash table. </dl>    </td>
-  </tr>
-</table>
-<a name="a21" doxytag="dbprim.h.top::ht_frozen"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define ht_frozen(
-          </b></td>
-          <td valign="bottom"><b>
-table&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro returns a non-zero value if the table is currently frozen. The hash table may be frozen if there is an iteration in progress.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>table</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__hash.html#a0">hash_table_t</a>.
-<p>
-</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Returns: </b><dd>
-A zero value if the table is not frozen or a non-zero value if the table is frozen. </dl>    </td>
-  </tr>
-</table>
-<a name="a24" doxytag="dbprim.h.top::ht_func"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define ht_func(
-          </b></td>
-          <td valign="bottom"><b>
-table&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro retrieves the hash function pointer.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>table</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__hash.html#a0">hash_table_t</a>.
-<p>
-</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Returns: </b><dd>
-A <a class="el" href="group__dbprim__hash.html#a3">hash_func_t</a>. </dl>    </td>
-  </tr>
-</table>
-<a name="a22" doxytag="dbprim.h.top::ht_modulus"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define ht_modulus(
-          </b></td>
-          <td valign="bottom"><b>
-table&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro retrieves the number of buckets allocated for the hash table. An application may wish to save this value between invocations to avoid the overhead of growing the table while filling it with data.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>table</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__hash.html#a0">hash_table_t</a>.
-<p>
-</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Returns: </b><dd>
-An <code>unsigned long</code> containing the number of buckets allocated for the hash table. </dl>    </td>
-  </tr>
-</table>
-<a name="a26" doxytag="dbprim.h.top::ht_rsize"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define ht_rsize(
-          </b></td>
-          <td valign="bottom"><b>
-table&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro retrieves the resize callback function pointer.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>table</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__hash.html#a0">hash_table_t</a>.
-<p>
-</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Returns: </b><dd>
-A <a class="el" href="group__dbprim__hash.html#a5">hash_resize_t</a>. </dl>    </td>
-  </tr>
-</table>
-<a name="a28" doxytag="dbprim.h.top::ht_size"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define ht_size(
-          </b></td>
-          <td valign="bottom"><b>
-table&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro returns the physical size of the bucket array allocated by the library for this hash table.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>table</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__hash.html#a0">hash_table_t</a>.
-<p>
-</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Returns: </b><dd>
-A <code>size_t</code>. </dl>    </td>
-  </tr>
-</table>
-<a name="a19" doxytag="dbprim.h.top::ht_verify"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define ht_verify(
-          </b></td>
-          <td valign="bottom"><b>
-table&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro verifies that a given pointer actually does point to a hash table.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>table</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__hash.html#a0">hash_table_t</a>.
-<p>
-</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Returns: </b><dd>
-Boolean true if <code>table</code> is a valid hash table or false otherwise. </dl>    </td>
-  </tr>
-</table>
-<a name="a37" doxytag="dbprim.h.top::st_rsize"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define st_rsize(
-          </b></td>
-          <td valign="bottom"><b>
-table&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro retrieves the resize callback function pointer.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>table</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__smat.html#a0">smat_table_t</a>.
-<p>
-</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Returns: </b><dd>
-A <a class="el" href="group__dbprim__smat.html#a3">smat_resize_t</a>. </dl>    </td>
-  </tr>
-</table>
-<hr><h2>Typedef Documentation</h2>
-<a name="a4" doxytag="dbprim.h.top::hash_comp_t"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-typedef unsigned long(* hash_comp_t)(<a class="el" href="group__dbprim__hash.html#a0">hash_table_t</a> *, <a class="el" href="group__dbprim__key.html#a0">db_key_t</a> *, <a class="el" href="group__dbprim__key.html#a0">db_key_t</a> *)
-          </b></td>
-        </tr>
-
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This function pointer references a callback used to compare entries in a hash table. It should return 0 for identical entries and non-zero otherwise. No assumptions should be made about the order in which the two keys are passed to this function.     </td>
-  </tr>
-</table>
-<a name="a1" doxytag="dbprim.h.top::hash_entry_t"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-typedef struct _hash_entry_s hash_entry_t
-          </b></td>
-        </tr>
-
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This structure represents a single entry of a hash table.     </td>
-  </tr>
-</table>
-<a name="a3" doxytag="dbprim.h.top::hash_func_t"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-typedef unsigned long(* hash_func_t)(<a class="el" href="group__dbprim__hash.html#a0">hash_table_t</a> *, <a class="el" href="group__dbprim__key.html#a0">db_key_t</a> *)
-          </b></td>
-        </tr>
-
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This function is associated with a hash table, and is responsible for generating a hash value. The full 32-bit range of an <code>unsigned long</code> should be used--do *not* reduce the hash value by the modulus of the hash table.     </td>
-  </tr>
-</table>
-<a name="a2" doxytag="dbprim.h.top::hash_iter_t"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-typedef unsigned long(* hash_iter_t)(<a class="el" href="group__dbprim__hash.html#a0">hash_table_t</a> *, <a class="el" href="group__dbprim__hash.html#a1">hash_entry_t</a> *, void *)
-          </b></td>
-        </tr>
-
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This function pointer references a callback used by <a class="el" href="group__dbprim__hash.html#a11">ht_iter</a>() and <a class="el" href="group__dbprim__hash.html#a12">ht_flush</a>(). It should return 0 for success. A non-zero return value will terminate the operation and will become the return value of the <a class="el" href="group__dbprim__hash.html#a11">ht_iter</a>() or <a class="el" href="group__dbprim__hash.html#a12">ht_flush</a>() call.     </td>
-  </tr>
-</table>
-<a name="a5" doxytag="dbprim.h.top::hash_resize_t"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-typedef unsigned long(* hash_resize_t)(<a class="el" href="group__dbprim__hash.html#a0">hash_table_t</a> *, unsigned long)
-          </b></td>
-        </tr>
-
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This function pointer references a callback that will be called with both the old and new hash table sizes whenever a hash table is resized. It should return non-zero only when the resize should be inhibited.     </td>
-  </tr>
-</table>
-<a name="a0" doxytag="dbprim.h.top::hash_table_t"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-typedef struct _hash_table_s hash_table_t
-          </b></td>
-        </tr>
-
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This structure is the basis of all hash tables maintained by this library.     </td>
-  </tr>
-</table>
-<hr><h2>Function Documentation</h2>
-<a name="a15" doxytag="he_init.c::he_init"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-unsigned long he_init (
-          </b></td>
-          <td valign="bottom"><b>
-<a class="el" href="group__dbprim__hash.html#a1">hash_entry_t</a> * <em>entry</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-void * <em>value</em>&nbsp;)
-          </b></td>
-        </tr>
-
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This function dynamically initializes a hash table entry.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>entry</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__hash.html#a1">hash_entry_t</a> to be initialized. </td></tr>
-<tr><td valign=top><em>value</em>
-&nbsp;</td><td>
-A pointer to <code>void</code> which will be the value of the hash table entry.</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Return values: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>DB_ERR_BADARGS</em>
-&nbsp;</td><td>
-A <code>NULL</code> pointer was passed for <code>entry</code>. </td></tr>
-</table>
-</dl>    </td>
-  </tr>
-</table>
-<a name="a7" doxytag="ht_add.c::ht_add"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-unsigned long ht_add (
-          </b></td>
-          <td valign="bottom"><b>
-<a class="el" href="group__dbprim__hash.html#a0">hash_table_t</a> * <em>table</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-<a class="el" href="group__dbprim__hash.html#a1">hash_entry_t</a> * <em>entry</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-<a class="el" href="group__dbprim__key.html#a0">db_key_t</a> * <em>key</em>&nbsp;)
-          </b></td>
-        </tr>
-
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This function adds an entry to a hash table.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>table</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__hash.html#a0">hash_table_t</a>. </td></tr>
-<tr><td valign=top><em>entry</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__hash.html#a1">hash_entry_t</a> to be added to the table. </td></tr>
-<tr><td valign=top><em>key</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__key.html#a0">db_key_t</a> containing the key for the entry.</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Return values: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>DB_ERR_BADARGS</em>
-&nbsp;</td><td>
-An invalid argument was given. </td></tr>
-<tr><td valign=top><em>DB_ERR_BUSY</em>
-&nbsp;</td><td>
-The entry is already in a table. </td></tr>
-<tr><td valign=top><em>DB_ERR_FROZEN</em>
-&nbsp;</td><td>
-The table is currently frozen. </td></tr>
-<tr><td valign=top><em>DB_ERR_NOTABLE</em>
-&nbsp;</td><td>
-The bucket table has not been allocated and automatic growth is not enabled. </td></tr>
-<tr><td valign=top><em>DB_ERR_DUPLICATE</em>
-&nbsp;</td><td>
-The entry is a duplicate of an existing entry. </td></tr>
-<tr><td valign=top><em>DB_ERR_UNRECOVERABLE</em>
-&nbsp;</td><td>
-An unrecoverable error occurred while resizing the table. </td></tr>
-</table>
-</dl>    </td>
-  </tr>
-</table>
-<a name="a10" doxytag="ht_find.c::ht_find"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-unsigned long ht_find (
-          </b></td>
-          <td valign="bottom"><b>
-<a class="el" href="group__dbprim__hash.html#a0">hash_table_t</a> * <em>table</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-<a class="el" href="group__dbprim__hash.html#a1">hash_entry_t</a> ** <em>entry_p</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-<a class="el" href="group__dbprim__key.html#a0">db_key_t</a> * <em>key</em>&nbsp;)
-          </b></td>
-        </tr>
-
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This function looks up an entry matching the given <code>key</code>.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>table</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__hash.html#a0">hash_table_t</a>. </td></tr>
-<tr><td valign=top><em>entry_p</em>
-&nbsp;</td><td>
-A pointer to a pointer to a <a class="el" href="group__dbprim__hash.html#a1">hash_entry_t</a>. This is a result parameter. If <code>NULL</code> is passed, the lookup will be performed and an appropriate error code returned.  </td></tr>
-<tr><td valign=top><em>key</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__key.html#a0">db_key_t</a> describing the item to find.</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Return values: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>DB_ERR_BADARGS</em>
-&nbsp;</td><td>
-An argument was invalid. </td></tr>
-<tr><td valign=top><em>DB_ERR_NOENTRY</em>
-&nbsp;</td><td>
-No matching entry was found. </td></tr>
-</table>
-</dl>    </td>
-  </tr>
-</table>
-<a name="a12" doxytag="ht_flush.c::ht_flush"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-unsigned long ht_flush (
-          </b></td>
-          <td valign="bottom"><b>
-<a class="el" href="group__dbprim__hash.html#a0">hash_table_t</a> * <em>table</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-<a class="el" href="group__dbprim__hash.html#a2">hash_iter_t</a> <em>flush_func</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-void * <em>extra</em>&nbsp;)
-          </b></td>
-        </tr>
-
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This function flushes a hash table--that is, it removes each entry from the table. If a <code>flush_func</code> is specified, it will be called on the entry after it has been removed from the table, and may safely call <code>free()</code>.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>table</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__hash.html#a0">hash_table_t</a>. </td></tr>
-<tr><td valign=top><em>flush_func</em>
-&nbsp;</td><td>
-A pointer to a callback function used to perform user-specified actions on an entry after removing it from the table. May be <code>NULL</code>. See the documentation for <a class="el" href="group__dbprim__hash.html#a2">hash_iter_t</a> for more information. </td></tr>
-<tr><td valign=top><em>extra</em>
-&nbsp;</td><td>
-A <code>void</code> pointer that will be passed to <code>flush_func</code>.</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Return values: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>DB_ERR_BADARGS</em>
-&nbsp;</td><td>
-An argument was invalid. </td></tr>
-<tr><td valign=top><em>DB_ERR_FROZEN</em>
-&nbsp;</td><td>
-The hash table is frozen. </td></tr>
-</table>
-</dl>    </td>
-  </tr>
-</table>
-<a name="a14" doxytag="ht_free.c::ht_free"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-unsigned long ht_free (
-          </b></td>
-          <td valign="bottom"><b>
-<a class="el" href="group__dbprim__hash.html#a0">hash_table_t</a> * <em>table</em>&nbsp;)
-          </b></td>
-        </tr>
-
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This function releases the memory used by the bucket table in an empty hash table.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>table</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__hash.html#a0">hash_table_t</a>.</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Return values: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>DB_ERR_BADARGS</em>
-&nbsp;</td><td>
-An invalid argument was given. </td></tr>
-<tr><td valign=top><em>DB_ERR_FROZEN</em>
-&nbsp;</td><td>
-The table is frozen. </td></tr>
-<tr><td valign=top><em>DB_ERR_NOTEMPTY</em>
-&nbsp;</td><td>
-The table is not empty. </td></tr>
-</table>
-</dl>    </td>
-  </tr>
-</table>
-<a name="a6" doxytag="ht_init.c::ht_init"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-unsigned long ht_init (
-          </b></td>
-          <td valign="bottom"><b>
-<a class="el" href="group__dbprim__hash.html#a0">hash_table_t</a> * <em>table</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-unsigned long <em>flags</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-<a class="el" href="group__dbprim__hash.html#a3">hash_func_t</a> <em>func</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-<a class="el" href="group__dbprim__hash.html#a4">hash_comp_t</a> <em>comp</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-<a class="el" href="group__dbprim__hash.html#a5">hash_resize_t</a> <em>resize</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-void * <em>extra</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-unsigned long <em>init_mod</em>&nbsp;)
-          </b></td>
-        </tr>
-
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This function dynamically initializes a hash table.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>table</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__hash.html#a0">hash_table_t</a> to be initialized. </td></tr>
-<tr><td valign=top><em>flags</em>
-&nbsp;</td><td>
-A bit-wise OR of <a class="el" href="group__dbprim__hash.html#a16">HASH_FLAG_AUTOGROW</a> and <a class="el" href="group__dbprim__hash.html#a17">HASH_FLAG_AUTOSHRINK</a>. If neither behavior is desired, use 0. </td></tr>
-<tr><td valign=top><em>func</em>
-&nbsp;</td><td>
-A <a class="el" href="group__dbprim__hash.html#a3">hash_func_t</a> function pointer for a hash function. </td></tr>
-<tr><td valign=top><em>comp</em>
-&nbsp;</td><td>
-A <a class="el" href="group__dbprim__hash.html#a4">hash_comp_t</a> function pointer for a comparison function. </td></tr>
-<tr><td valign=top><em>resize</em>
-&nbsp;</td><td>
-A <a class="el" href="group__dbprim__hash.html#a5">hash_resize_t</a> function pointer for determining whether resizing is permitted and/or for notification of the resize. </td></tr>
-<tr><td valign=top><em>extra</em>
-&nbsp;</td><td>
-Extra pointer data that should be associated with the hash table. </td></tr>
-<tr><td valign=top><em>init_mod</em>
-&nbsp;</td><td>
-An initial modulus for the table. This will presumably be extracted by <a class="el" href="group__dbprim__hash.html#a22">ht_modulus</a>() in a previous invocation of the application. A 0 value is valid.</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Return values: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>DB_ERR_BADARGS</em>
-&nbsp;</td><td>
-An invalid argument was given. </td></tr>
-<tr><td valign=top><em>ENOMEM</em>
-&nbsp;</td><td>
-Unable to allocate memory. </td></tr>
-</table>
-</dl>    </td>
-  </tr>
-</table>
-<a name="a11" doxytag="ht_iter.c::ht_iter"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-unsigned long ht_iter (
-          </b></td>
-          <td valign="bottom"><b>
-<a class="el" href="group__dbprim__hash.html#a0">hash_table_t</a> * <em>table</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-<a class="el" href="group__dbprim__hash.html#a2">hash_iter_t</a> <em>iter_func</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-void * <em>extra</em>&nbsp;)
-          </b></td>
-        </tr>
-
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This function iterates over every entry in a hash table (in an unspecified order), executing the given <code>iter_func</code> on each entry.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>table</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__hash.html#a0">hash_table_t</a>. </td></tr>
-<tr><td valign=top><em>iter_func</em>
-&nbsp;</td><td>
-A pointer to a callback function used to perform user-specified actions on an entry in a hash table. <code>NULL</code> is an invalid value. See the documentation for <a class="el" href="group__dbprim__hash.html#a2">hash_iter_t</a> for more information. </td></tr>
-<tr><td valign=top><em>extra</em>
-&nbsp;</td><td>
-A <code>void</code> pointer that will be passed to <code>iter_func</code>.</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Return values: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>DB_ERR_BADARGS</em>
-&nbsp;</td><td>
-An argument was invalid. </td></tr>
-<tr><td valign=top><em>DB_ERR_FROZEN</em>
-&nbsp;</td><td>
-The hash table is frozen. </td></tr>
-</table>
-</dl>    </td>
-  </tr>
-</table>
-<a name="a8" doxytag="ht_move.c::ht_move"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-unsigned long ht_move (
-          </b></td>
-          <td valign="bottom"><b>
-<a class="el" href="group__dbprim__hash.html#a0">hash_table_t</a> * <em>table</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-<a class="el" href="group__dbprim__hash.html#a1">hash_entry_t</a> * <em>entry</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-<a class="el" href="group__dbprim__key.html#a0">db_key_t</a> * <em>key</em>&nbsp;)
-          </b></td>
-        </tr>
-
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This function moves an existing entry in the hash table to correspond to the new key.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>table</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__hash.html#a0">hash_table_t</a>. </td></tr>
-<tr><td valign=top><em>entry</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__hash.html#a1">hash_entry_t</a> to be moved. It must already be in the hash table. </td></tr>
-<tr><td valign=top><em>key</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__key.html#a0">db_key_t</a> describing the new key for the entry.</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Return values: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>DB_ERR_BADARGS</em>
-&nbsp;</td><td>
-An invalid argument was given. </td></tr>
-<tr><td valign=top><em>DB_ERR_UNUSED</em>
-&nbsp;</td><td>
-Entry is not in a hash table. </td></tr>
-<tr><td valign=top><em>DB_ERR_WRONGTABLE</em>
-&nbsp;</td><td>
-Entry is not in this hash table. </td></tr>
-<tr><td valign=top><em>DB_ERR_FROZEN</em>
-&nbsp;</td><td>
-Hash table is frozen. </td></tr>
-<tr><td valign=top><em>DB_ERR_DUPLICATE</em>
-&nbsp;</td><td>
-New key is a duplicate of an existing key. </td></tr>
-<tr><td valign=top><em>DB_ERR_READDFAILED</em>
-&nbsp;</td><td>
-Unable to re-add entry to table. </td></tr>
-</table>
-</dl>    </td>
-  </tr>
-</table>
-<a name="a9" doxytag="ht_remove.c::ht_remove"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-unsigned long ht_remove (
-          </b></td>
-          <td valign="bottom"><b>
-<a class="el" href="group__dbprim__hash.html#a0">hash_table_t</a> * <em>table</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-<a class="el" href="group__dbprim__hash.html#a1">hash_entry_t</a> * <em>entry</em>&nbsp;)
-          </b></td>
-        </tr>
-
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This function removes the given element from the specified hash table.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>table</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__hash.html#a0">hash_table_t</a>. </td></tr>
-<tr><td valign=top><em>entry</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__hash.html#a1">hash_entry_t</a> to be removed from the table.</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Return values: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>DB_ERR_BADARGS</em>
-&nbsp;</td><td>
-An invalid argument was given. </td></tr>
-<tr><td valign=top><em>DB_ERR_UNUSED</em>
-&nbsp;</td><td>
-Entry is not in a hash table. </td></tr>
-<tr><td valign=top><em>DB_ERR_WRONGTABLE</em>
-&nbsp;</td><td>
-Entry is not in this hash table. </td></tr>
-<tr><td valign=top><em>DB_ERR_FROZEN</em>
-&nbsp;</td><td>
-Hash table is frozen. </td></tr>
-<tr><td valign=top><em>DB_ERR_UNRECOVERABLE</em>
-&nbsp;</td><td>
-An unrecoverable error occurred while resizing the table. </td></tr>
-</table>
-</dl>    </td>
-  </tr>
-</table>
-<a name="a13" doxytag="ht_resize.c::ht_resize"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-unsigned long ht_resize (
-          </b></td>
-          <td valign="bottom"><b>
-<a class="el" href="group__dbprim__hash.html#a0">hash_table_t</a> * <em>table</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-unsigned long <em>new_size</em>&nbsp;)
-          </b></td>
-        </tr>
-
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This function resizes a hash table to the given <code>new_size</code>. If <code>new_size</code> is 0, then an appropriate new size based on the current number of items in the hash table will be selected.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>table</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__hash.html#a0">hash_table_t</a>. </td></tr>
-<tr><td valign=top><em>new_size</em>
-&nbsp;</td><td>
-A new size value for the table.</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Return values: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>DB_ERR_BADARGS</em>
-&nbsp;</td><td>
-An argument was invalid. </td></tr>
-<tr><td valign=top><em>DB_ERR_FROZEN</em>
-&nbsp;</td><td>
-The table is currently frozen. </td></tr>
-<tr><td valign=top><em>DB_ERR_UNRECOVERABLE</em>
-&nbsp;</td><td>
-A catastrophic error was encountered. The table is now unusable. </td></tr>
-<tr><td valign=top><em>ENOMEM</em>
-&nbsp;</td><td>
-No memory could be allocated for the new bucket table. </td></tr>
-</table>
-</dl>    </td>
-  </tr>
-</table>
-<hr><address><small>Generated at Thu Mar 6 21:23:10 2003 for dbprim by
-<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.gif" alt="doxygen" align="middle" border=0 
-width=110 height=53></a>1.2.8.1 written by <a href="mailto:dimitri@stack.nl">Dimitri van Heesch</a>,
- &copy;&nbsp;1997-2001</small></address>
-</body>
-</html>
diff --git a/libs/dbprim/doc/html/group__dbprim__key.html b/libs/dbprim/doc/html/group__dbprim__key.html
deleted file mode 100644 (file)
index feac03c..0000000
+++ /dev/null
@@ -1,172 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
-<title>Database keys</title>
-<link href="doxygen.css" rel="stylesheet" type="text/css">
-</head><body bgcolor="#ffffff">
-<!-- Generated by Doxygen 1.2.8.1 -->
-<center>
-<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="modules.html">Modules</a> &nbsp; </center>
-<hr><h1>Database keys</h1><table border=0 cellpadding=0 cellspacing=0>
-<tr><td colspan=2><br><h2>Defines</h2></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__key.html#a1">DB_KEY_INIT</a>(key, size)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Database key static initializer.</em> <a href="#a1">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__key.html#a2">dk_key</a>(key)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Database key accessor macro.</em> <a href="#a2">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__key.html#a3">dk_len</a>(key)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Database key length accessor macro.</em> <a href="#a3">More...</a><em></em></font><br><br></td></tr>
-<tr><td colspan=2><br><h2>Typedefs</h2></td></tr>
-<tr><td nowrap align=right valign=top>typedef struct _db_key_s&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__key.html#a0">db_key_t</a></td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Database key.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr>
-</table>
-<hr><a name="_details"></a><h2>Detailed Description</h2>
-This module contains interfaces common to all database modules--mainly the macros concerned with manipulating database keys and the definition of the key structure.
-<p>
-The key may be any arbitrary pointer, including a pointer to a string. Everything that handles a key either copies the contents of the <a class="el" href="group__dbprim__key.html#a0">db_key_t</a> structure or passes it to a user-defined function. If required, as in the case of a string, a length may also be represented in the key structure. <hr><h2>Define Documentation</h2>
-<a name="a1" doxytag="dbprim.h.top::DB_KEY_INIT"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define DB_KEY_INIT(
-          </b></td>
-          <td valign="bottom"><b>
-key, size&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro allows a <a class="el" href="group__dbprim__key.html#a0">db_key_t</a> to be initialized statically.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>key</em>
-&nbsp;</td><td>
-A pointer to the key. </td></tr>
-<tr><td valign=top><em>size</em>
-&nbsp;</td><td>
-Size of the key. </td></tr>
-</table>
-</dl>    </td>
-  </tr>
-</table>
-<a name="a2" doxytag="dbprim.h.top::dk_key"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define dk_key(
-          </b></td>
-          <td valign="bottom"><b>
-key&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro allows access to the key field of a <a class="el" href="group__dbprim__key.html#a0">db_key_t</a>. It may be used as an lvalue in order to assign a key to a <a class="el" href="group__dbprim__key.html#a0">db_key_t</a>.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>key</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__key.html#a0">db_key_t</a>. </td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Returns: </b><dd>
-A pointer to a key (<code>void *</code>). </dl>    </td>
-  </tr>
-</table>
-<a name="a3" doxytag="dbprim.h.top::dk_len"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define dk_len(
-          </b></td>
-          <td valign="bottom"><b>
-key&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro allows access to the key length field of a <a class="el" href="group__dbprim__key.html#a0">db_key_t</a>. It may be used as an lvalue in order to assign a length to a <a class="el" href="group__dbprim__key.html#a0">db_key_t</a>.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>key</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__key.html#a0">db_key_t</a>. </td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Returns: </b><dd>
-An <code>int</code> describing the length of the key. </dl>    </td>
-  </tr>
-</table>
-<hr><h2>Typedef Documentation</h2>
-<a name="a0" doxytag="dbprim.h.top::db_key_t"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-typedef struct _db_key_s db_key_t
-          </b></td>
-        </tr>
-
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This structure is a generic key containing a void * pointer and a length parameter. It should be accessed with * <a class="el" href="group__dbprim__key.html#a2">dk_key</a>() and <a class="el" href="group__dbprim__key.html#a3">dk_len</a>().     </td>
-  </tr>
-</table>
-<hr><address><small>Generated at Thu Mar 6 21:23:10 2003 for dbprim by
-<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.gif" alt="doxygen" align="middle" border=0 
-width=110 height=53></a>1.2.8.1 written by <a href="mailto:dimitri@stack.nl">Dimitri van Heesch</a>,
- &copy;&nbsp;1997-2001</small></address>
-</body>
-</html>
diff --git a/libs/dbprim/doc/html/group__dbprim__link.html b/libs/dbprim/doc/html/group__dbprim__link.html
deleted file mode 100644 (file)
index 6998afe..0000000
+++ /dev/null
@@ -1,1314 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
-<title>Linked lists</title>
-<link href="doxygen.css" rel="stylesheet" type="text/css">
-</head><body bgcolor="#ffffff">
-<!-- Generated by Doxygen 1.2.8.1 -->
-<center>
-<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="modules.html">Modules</a> &nbsp; </center>
-<hr><h1>Linked lists</h1>Operations for linked lists. 
-<a href="#_details">More...</a><table border=0 cellpadding=0 cellspacing=0>
-<tr><td colspan=2><br><h2>Defines</h2></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__link.html#a13">LINK_HEAD_INIT</a>(extra)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Linked list head static initializer.</em> <a href="#a13">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__link.html#a14">ll_verify</a>(list)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Linked list head verification macro.</em> <a href="#a14">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__link.html#a15">ll_count</a>(list)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Linked list count.</em> <a href="#a15">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__link.html#a16">ll_first</a>(list)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>First element in linked list.</em> <a href="#a16">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__link.html#a17">ll_last</a>(list)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Last element in a linked list.</em> <a href="#a17">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__link.html#a18">ll_extra</a>(list)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Extra pointer data in a linked list.</em> <a href="#a18">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__link.html#a19">LINK_ELEM_INIT</a>(obj)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Linked list element static initializer.</em> <a href="#a19">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__link.html#a20">le_verify</a>(element)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Linked list element verification macro.</em> <a href="#a20">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__link.html#a21">le_next</a>(elem)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Linked list element next pointer.</em> <a href="#a21">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__link.html#a22">le_prev</a>(elem)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Linked list element previous pointer.</em> <a href="#a22">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__link.html#a23">le_object</a>(elem)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Linked list element object pointer.</em> <a href="#a23">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__link.html#a24">le_head</a>(elem)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Linked list element head pointer.</em> <a href="#a24">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__link.html#a25">le_flags</a>(elem)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Linked list element flags.</em> <a href="#a25">More...</a><em></em></font><br><br></td></tr>
-<tr><td colspan=2><br><h2>Typedefs</h2></td></tr>
-<tr><td nowrap align=right valign=top>typedef struct _link_head_s&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__link.html#a0">link_head_t</a></td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Linked list head.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>typedef struct _link_elem_s&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__link.html#a1">link_elem_t</a></td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Linked list element.</em> <a href="#a1">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>typedef unsigned long (*&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__link.html#a2">link_iter_t</a> )(<a class="el" href="group__dbprim__link.html#a0">link_head_t</a> *, <a class="el" href="group__dbprim__link.html#a1">link_elem_t</a> *, void *)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Linked list iteration callback.</em> <a href="#a2">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>typedef unsigned long (*&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__link.html#a3">link_comp_t</a> )(<a class="el" href="group__dbprim__key.html#a0">db_key_t</a> *, void *)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Linked list comparison callback.</em> <a href="#a3">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>typedef enum <a class="el" href="group__dbprim__link.html#a26">_link_loc_e</a>&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__link.html#a4">link_loc_t</a></td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Linked list location.</em> <a href="#a4">More...</a><em></em></font><br><br></td></tr>
-<tr><td colspan=2><br><h2>Enumerations</h2></td></tr>
-<tr><td nowrap align=right valign=top>enum &nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__link.html#a26">_link_loc_e</a> { <a class="el" href="group__dbprim__link.html#a26a98">LINK_LOC_HEAD</a>, 
-<a class="el" href="group__dbprim__link.html#a26a99">LINK_LOC_TAIL</a>, 
-<a class="el" href="group__dbprim__link.html#a26a100">LINK_LOC_BEFORE</a>, 
-<a class="el" href="group__dbprim__link.html#a26a101">LINK_LOC_AFTER</a>
- }</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Linked list location.</em> <a href="#a26">More...</a><em></em></font><br><br></td></tr>
-<tr><td colspan=2><br><h2>Functions</h2></td></tr>
-<tr><td nowrap align=right valign=top>unsigned long&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__link.html#a5">ll_init</a> (<a class="el" href="group__dbprim__link.html#a0">link_head_t</a> *list, void *extra)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Dynamically initialize a linked list head.</em> <a href="#a5">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>unsigned long&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__link.html#a6">ll_add</a> (<a class="el" href="group__dbprim__link.html#a0">link_head_t</a> *list, <a class="el" href="group__dbprim__link.html#a1">link_elem_t</a> *new, <a class="el" href="group__dbprim__link.html#a4">link_loc_t</a> loc, <a class="el" href="group__dbprim__link.html#a1">link_elem_t</a> *elem)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Add an element to a linked list.</em> <a href="#a6">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>unsigned long&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__link.html#a7">ll_move</a> (<a class="el" href="group__dbprim__link.html#a0">link_head_t</a> *list, <a class="el" href="group__dbprim__link.html#a1">link_elem_t</a> *new, <a class="el" href="group__dbprim__link.html#a4">link_loc_t</a> loc, <a class="el" href="group__dbprim__link.html#a1">link_elem_t</a> *elem)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Move an element within a linked list.</em> <a href="#a7">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>unsigned long&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__link.html#a8">ll_remove</a> (<a class="el" href="group__dbprim__link.html#a0">link_head_t</a> *list, <a class="el" href="group__dbprim__link.html#a1">link_elem_t</a> *elem)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Remove an element from a linked list.</em> <a href="#a8">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>unsigned long&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__link.html#a9">ll_find</a> (<a class="el" href="group__dbprim__link.html#a0">link_head_t</a> *list, <a class="el" href="group__dbprim__link.html#a1">link_elem_t</a> **elem_p, <a class="el" href="group__dbprim__link.html#a3">link_comp_t</a> comp_func, <a class="el" href="group__dbprim__link.html#a1">link_elem_t</a> *start, <a class="el" href="group__dbprim__key.html#a0">db_key_t</a> *key)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Find an element in a linked list.</em> <a href="#a9">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>unsigned long&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__link.html#a10">ll_iter</a> (<a class="el" href="group__dbprim__link.html#a0">link_head_t</a> *list, <a class="el" href="group__dbprim__link.html#a2">link_iter_t</a> iter_func, void *extra)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Iterate over each entry in a linked list.</em> <a href="#a10">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>unsigned long&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__link.html#a11">ll_flush</a> (<a class="el" href="group__dbprim__link.html#a0">link_head_t</a> *list, <a class="el" href="group__dbprim__link.html#a2">link_iter_t</a> flush_func, void *extra)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Flush a linked list.</em> <a href="#a11">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>unsigned long&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__link.html#a12">le_init</a> (<a class="el" href="group__dbprim__link.html#a1">link_elem_t</a> *elem, void *object)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Dynamically initialize a linked list element.</em> <a href="#a12">More...</a><em></em></font><br><br></td></tr>
-</table>
-<hr><a name="_details"></a><h2>Detailed Description</h2>
-Linked lists are a very basic data structure used in building databases. This library provides a simple yet powerful implementation of generic linked lists, based on two caller-allocated structures. The <a class="el" href="group__dbprim__link.html#a0">link_head_t</a> structure describes the head of a linked list and contains information regarding the number of elements in the linked list as well as pointers referencing the first and last elements in the list. The <a class="el" href="group__dbprim__link.html#a1">link_elem_t</a> structure describes a specific element in the linked list and contains pointers referencing the next and previous elements in the list, as well as a pointer to the object, a pointer to the head of the linked list, and a set of user-specified flags.
-<p>
-Elements may be added at any arbitrary location in the linked list with <a class="el" href="group__dbprim__link.html#a6">ll_add</a>(); moved to any other arbitrary location in the linked list with <a class="el" href="group__dbprim__link.html#a7">ll_move</a>(), or removed from the list with <a class="el" href="group__dbprim__link.html#a8">ll_remove</a>(). In addition, the user may search the list using a user-defined comparison function with <a class="el" href="group__dbprim__link.html#a9">ll_find</a>(); iterate over every element in the list with <a class="el" href="group__dbprim__link.html#a10">ll_iter</a>(); or remove all items from the list with <a class="el" href="group__dbprim__link.html#a11">ll_flush</a>(), optionally executing a user-specified clean-up function. <hr><h2>Define Documentation</h2>
-<a name="a19" doxytag="dbprim.h.top::LINK_ELEM_INIT"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define LINK_ELEM_INIT(
-          </b></td>
-          <td valign="bottom"><b>
-obj&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro statically initializes a <a class="el" href="group__dbprim__link.html#a1">link_elem_t</a>.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>obj</em>
-&nbsp;</td><td>
-A pointer to <code>void</code> representing the object associated with the element. </td></tr>
-</table>
-</dl>    </td>
-  </tr>
-</table>
-<a name="a13" doxytag="dbprim.h.top::LINK_HEAD_INIT"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define LINK_HEAD_INIT(
-          </b></td>
-          <td valign="bottom"><b>
-extra&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro statically initializes a <a class="el" href="group__dbprim__link.html#a0">link_head_t</a>.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>extra</em>
-&nbsp;</td><td>
-Extra pointer data that should be associated with the list head. </td></tr>
-</table>
-</dl>    </td>
-  </tr>
-</table>
-<a name="a25" doxytag="dbprim.h.top::le_flags"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define le_flags(
-          </b></td>
-          <td valign="bottom"><b>
-elem&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro retrieves a set of user-defined flags associated with the element. It may be used as an lvalue to set those flags.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>elem</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__link.html#a1">link_elem_t</a>.
-<p>
-</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Returns: </b><dd>
-An <code>unsigned long</code> containing the flags associated with the element. </dl>    </td>
-  </tr>
-</table>
-<a name="a24" doxytag="dbprim.h.top::le_head"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define le_head(
-          </b></td>
-          <td valign="bottom"><b>
-elem&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro retrieves a pointer to the head of the linked list that the element is in.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>elem</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__link.html#a1">link_elem_t</a>.
-<p>
-</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Returns: </b><dd>
-A pointer to a <a class="el" href="group__dbprim__link.html#a0">link_head_t</a> representing the head of the linked list the element is in. </dl>    </td>
-  </tr>
-</table>
-<a name="a21" doxytag="dbprim.h.top::le_next"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define le_next(
-          </b></td>
-          <td valign="bottom"><b>
-elem&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro retrieves a pointer to the next element in the linked list.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>elem</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__link.html#a1">link_elem_t</a>.
-<p>
-</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Returns: </b><dd>
-A pointer to a <a class="el" href="group__dbprim__link.html#a1">link_elem_t</a> representing the next element in the linked list. </dl>    </td>
-  </tr>
-</table>
-<a name="a23" doxytag="dbprim.h.top::le_object"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define le_object(
-          </b></td>
-          <td valign="bottom"><b>
-elem&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro retrieves a pointer to the object represented by the element. It may be used as an lvalue to change the object pointed to. Care should be taken when using this feature.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>elem</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__link.html#a1">link_elem_t</a>.
-<p>
-</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Returns: </b><dd>
-A pointer to <code>void</code> representing the object associated with the linked list element. </dl>    </td>
-  </tr>
-</table>
-<a name="a22" doxytag="dbprim.h.top::le_prev"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define le_prev(
-          </b></td>
-          <td valign="bottom"><b>
-elem&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro retrieves a pointer to the previous element in the linked list.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>elem</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__link.html#a1">link_elem_t</a>.
-<p>
-</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Returns: </b><dd>
-A pointer to a <a class="el" href="group__dbprim__link.html#a1">link_elem_t</a> representing the previous element in the linked list. </dl>    </td>
-  </tr>
-</table>
-<a name="a20" doxytag="dbprim.h.top::le_verify"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define le_verify(
-          </b></td>
-          <td valign="bottom"><b>
-element&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro verifies that a given pointer actually does point to a linked list element.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>element</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__link.html#a1">link_elem_t</a>.
-<p>
-</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Returns: </b><dd>
-Boolean true if <code>element</code> is a valid linked list element or false otherwise. </dl>    </td>
-  </tr>
-</table>
-<a name="a15" doxytag="dbprim.h.top::ll_count"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define ll_count(
-          </b></td>
-          <td valign="bottom"><b>
-list&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro retrieves the number of elements in a linked list.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>list</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__link.html#a0">link_head_t</a>.
-<p>
-</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Returns: </b><dd>
-An <code>unsigned long</code> containing a count of the number of elements in the linked list. </dl>    </td>
-  </tr>
-</table>
-<a name="a18" doxytag="dbprim.h.top::ll_extra"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define ll_extra(
-          </b></td>
-          <td valign="bottom"><b>
-list&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro retrieves the extra pointer data associated with a particular linked list.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>list</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__link.html#a0">link_head_t</a>.
-<p>
-</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Returns: </b><dd>
-A pointer to <code>void</code>. </dl>    </td>
-  </tr>
-</table>
-<a name="a16" doxytag="dbprim.h.top::ll_first"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define ll_first(
-          </b></td>
-          <td valign="bottom"><b>
-list&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro retrieves the first element in a linked list.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>list</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__link.html#a0">link_head_t</a>.
-<p>
-</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Returns: </b><dd>
-A pointer to a <a class="el" href="group__dbprim__link.html#a1">link_elem_t</a>. </dl>    </td>
-  </tr>
-</table>
-<a name="a17" doxytag="dbprim.h.top::ll_last"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define ll_last(
-          </b></td>
-          <td valign="bottom"><b>
-list&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro retrieves the last element in a linked list.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>list</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__link.html#a0">link_head_t</a>.
-<p>
-</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Returns: </b><dd>
-A pointer to a <a class="el" href="group__dbprim__link.html#a1">link_elem_t</a>. </dl>    </td>
-  </tr>
-</table>
-<a name="a14" doxytag="dbprim.h.top::ll_verify"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define ll_verify(
-          </b></td>
-          <td valign="bottom"><b>
-list&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro verifies that a given pointer actually does point to a linked list head.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>list</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__link.html#a0">link_head_t</a>.
-<p>
-</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Returns: </b><dd>
-Boolean true if <code>list</code> is a valid linked list head or false otherwise. </dl>    </td>
-  </tr>
-</table>
-<hr><h2>Typedef Documentation</h2>
-<a name="a3" doxytag="dbprim.h.top::link_comp_t"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-typedef unsigned long(* link_comp_t)(<a class="el" href="group__dbprim__key.html#a0">db_key_t</a> *, void *)
-          </b></td>
-        </tr>
-
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This function pointer references a callback used by <a class="el" href="group__dbprim__link.html#a9">ll_find</a>(). It should return 0 if the entry passed as the second argument matches the key passed as the first argument.     </td>
-  </tr>
-</table>
-<a name="a1" doxytag="dbprim.h.top::link_elem_t"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-typedef struct _link_elem_s link_elem_t
-          </b></td>
-        </tr>
-
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This structure represents a single element of a linked list.     </td>
-  </tr>
-</table>
-<a name="a0" doxytag="dbprim.h.top::link_head_t"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-typedef struct _link_head_s link_head_t
-          </b></td>
-        </tr>
-
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This structure is the head of all linked lists maintained by this library.     </td>
-  </tr>
-</table>
-<a name="a2" doxytag="dbprim.h.top::link_iter_t"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-typedef unsigned long(* link_iter_t)(<a class="el" href="group__dbprim__link.html#a0">link_head_t</a> *, <a class="el" href="group__dbprim__link.html#a1">link_elem_t</a> *, void *)
-          </b></td>
-        </tr>
-
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This function pointer references a callback used by <a class="el" href="group__dbprim__link.html#a10">ll_iter</a>() and <a class="el" href="group__dbprim__link.html#a11">ll_flush</a>(). It should return 0 for success. A non-zero return value will terminate the operation and will become the return value of the <a class="el" href="group__dbprim__link.html#a10">ll_iter</a>() or <a class="el" href="group__dbprim__link.html#a11">ll_flush</a>() call.     </td>
-  </tr>
-</table>
-<a name="a4" doxytag="dbprim.h.top::link_loc_t"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-typedef enum <a class="el" href="group__dbprim__link.html#a26">_link_loc_e</a> link_loc_t
-          </b></td>
-        </tr>
-
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- See the documentation for the enumeration <a class="el" href="group__dbprim__link.html#a26">_link_loc_e</a>.     </td>
-  </tr>
-</table>
-<hr><h2>Enumeration Type Documentation</h2>
-<a name="a26" doxytag="dbprim.h.top::_link_loc_e"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-enum _link_loc_e
-          </b></td>
-        </tr>
-
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This enumeration is used to specify where an element in a linked list should be placed. It should be referenced by the typedef <a class="el" href="group__dbprim__link.html#a4">link_loc_t</a>. <dl compact><dt>
-<b>Enumeration values:</b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><a name="a26a98" doxytag="LINK_LOC_HEAD"></a><em>LINK_LOC_HEAD</em>
-&nbsp;</td><td>
-Element should be inserted at head of list. </td></tr>
-<tr><td valign=top><a name="a26a99" doxytag="LINK_LOC_TAIL"></a><em>LINK_LOC_TAIL</em>
-&nbsp;</td><td>
-Element should be inserted at tail of list. </td></tr>
-<tr><td valign=top><a name="a26a100" doxytag="LINK_LOC_BEFORE"></a><em>LINK_LOC_BEFORE</em>
-&nbsp;</td><td>
-Element should be inserted before specified element. </td></tr>
-<tr><td valign=top><a name="a26a101" doxytag="LINK_LOC_AFTER"></a><em>LINK_LOC_AFTER</em>
-&nbsp;</td><td>
-Element should be inserted after specified element. </td></tr>
-</table>
-</dl>
-    </td>
-  </tr>
-</table>
-<hr><h2>Function Documentation</h2>
-<a name="a12" doxytag="le_init.c::le_init"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-unsigned long le_init (
-          </b></td>
-          <td valign="bottom"><b>
-<a class="el" href="group__dbprim__link.html#a1">link_elem_t</a> * <em>elem</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-void * <em>object</em>&nbsp;)
-          </b></td>
-        </tr>
-
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This function dynamically initializes a linked list element.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>elem</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__link.html#a1">link_elem_t</a> to be initialized. </td></tr>
-<tr><td valign=top><em>object</em>
-&nbsp;</td><td>
-A pointer to <code>void</code> used to represent the object associated with the element. May not be <code>NULL</code>.</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Return values: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>DB_ERR_BADARGS</em>
-&nbsp;</td><td>
-A <code>NULL</code> pointer was passed for <code>elem</code> or <code>object</code>. </td></tr>
-</table>
-</dl>    </td>
-  </tr>
-</table>
-<a name="a6" doxytag="ll_add.c::ll_add"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-unsigned long ll_add (
-          </b></td>
-          <td valign="bottom"><b>
-<a class="el" href="group__dbprim__link.html#a0">link_head_t</a> * <em>list</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-<a class="el" href="group__dbprim__link.html#a1">link_elem_t</a> * <em>new</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-<a class="el" href="group__dbprim__link.html#a4">link_loc_t</a> <em>loc</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-<a class="el" href="group__dbprim__link.html#a1">link_elem_t</a> * <em>elem</em>&nbsp;)
-          </b></td>
-        </tr>
-
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This function adds a given element to a specified linked list in the specified location.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>list</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__link.html#a0">link_head_t</a>. </td></tr>
-<tr><td valign=top><em>new</em>
-&nbsp;</td><td>
-A pointer to the <a class="el" href="group__dbprim__link.html#a1">link_elem_t</a> to be added to the linked list. </td></tr>
-<tr><td valign=top><em>loc</em>
-&nbsp;</td><td>
-A <a class="el" href="group__dbprim__link.html#a4">link_loc_t</a> indicating where the entry should be added. </td></tr>
-<tr><td valign=top><em>elem</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__link.html#a1">link_elem_t</a> describing another element in the list if <code>loc</code> is <a class="el" href="group__dbprim__link.html#a26a100">LINK_LOC_BEFORE</a> or <a class="el" href="group__dbprim__link.html#a26a101">LINK_LOC_AFTER</a>.</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Return values: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>DB_ERR_BADARGS</em>
-&nbsp;</td><td>
-An argument was invalid. </td></tr>
-<tr><td valign=top><em>DB_ERR_BUSY</em>
-&nbsp;</td><td>
-The element is already in a list. </td></tr>
-<tr><td valign=top><em>DB_ERR_WRONGTABLE</em>
-&nbsp;</td><td>
-<code>elem</code> is in a different list. </td></tr>
-<tr><td valign=top><em>DB_ERR_UNUSED</em>
-&nbsp;</td><td>
-<code>elem</code> is not in any list. </td></tr>
-</table>
-</dl>    </td>
-  </tr>
-</table>
-<a name="a9" doxytag="ll_find.c::ll_find"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-unsigned long ll_find (
-          </b></td>
-          <td valign="bottom"><b>
-<a class="el" href="group__dbprim__link.html#a0">link_head_t</a> * <em>list</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-<a class="el" href="group__dbprim__link.html#a1">link_elem_t</a> ** <em>elem_p</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-<a class="el" href="group__dbprim__link.html#a3">link_comp_t</a> <em>comp_func</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-<a class="el" href="group__dbprim__link.html#a1">link_elem_t</a> * <em>start</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-<a class="el" href="group__dbprim__key.html#a0">db_key_t</a> * <em>key</em>&nbsp;)
-          </b></td>
-        </tr>
-
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This function iterates through a linked list looking for an element that matches the given <code>key</code>.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>list</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__link.html#a0">link_head_t</a>. </td></tr>
-<tr><td valign=top><em>elem_p</em>
-&nbsp;</td><td>
-A pointer to a pointer to a <a class="el" href="group__dbprim__link.html#a1">link_elem_t</a>. This is a result parameter. <code>NULL</code> is an invalid value. </td></tr>
-<tr><td valign=top><em>comp_func</em>
-&nbsp;</td><td>
-A pointer to a comparison function used to compare the key to a particular element. See the documentation for <a class="el" href="group__dbprim__link.html#a3">link_comp_t</a> for more information. </td></tr>
-<tr><td valign=top><em>start</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__link.html#a1">link_elem_t</a> describing where in the linked list to start. If <code>NULL</code> is passed, the beginning of the list will be assumed. </td></tr>
-<tr><td valign=top><em>key</em>
-&nbsp;</td><td>
-A key to search for.</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Return values: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>DB_ERR_BADARGS</em>
-&nbsp;</td><td>
-An argument was invalid. </td></tr>
-<tr><td valign=top><em>DB_ERR_WRONGTABLE</em>
-&nbsp;</td><td>
-<code>start</code> is not in this linked list. </td></tr>
-<tr><td valign=top><em>DB_ERR_NOENTRY</em>
-&nbsp;</td><td>
-No matching entry was found. </td></tr>
-</table>
-</dl>    </td>
-  </tr>
-</table>
-<a name="a11" doxytag="ll_flush.c::ll_flush"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-unsigned long ll_flush (
-          </b></td>
-          <td valign="bottom"><b>
-<a class="el" href="group__dbprim__link.html#a0">link_head_t</a> * <em>list</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-<a class="el" href="group__dbprim__link.html#a2">link_iter_t</a> <em>flush_func</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-void * <em>extra</em>&nbsp;)
-          </b></td>
-        </tr>
-
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This function flushes a linked list--that is, it removes each element from the list. If a <code>flush_func</code> is specified, it will be called on the entry after it has been removed from the list, and may safely call <code>free()</code>.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>list</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__link.html#a0">link_head_t</a>. </td></tr>
-<tr><td valign=top><em>flush_func</em>
-&nbsp;</td><td>
-A pointer to a callback function used to perform user-specified actions on an element after removing it from the list. May be <code>NULL</code>. See the documentation for <a class="el" href="group__dbprim__link.html#a2">link_iter_t</a> for more information. </td></tr>
-<tr><td valign=top><em>extra</em>
-&nbsp;</td><td>
-A <code>void</code> pointer that will be passed to <code>flush_func</code>.</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Return values: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>DB_ERR_BADARGS</em>
-&nbsp;</td><td>
-An argument was invalid. </td></tr>
-</table>
-</dl>    </td>
-  </tr>
-</table>
-<a name="a5" doxytag="ll_init.c::ll_init"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-unsigned long ll_init (
-          </b></td>
-          <td valign="bottom"><b>
-<a class="el" href="group__dbprim__link.html#a0">link_head_t</a> * <em>list</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-void * <em>extra</em>&nbsp;)
-          </b></td>
-        </tr>
-
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This function dynamically initializes a linked list head.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>list</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__link.html#a0">link_head_t</a> to be initialized. </td></tr>
-<tr><td valign=top><em>extra</em>
-&nbsp;</td><td>
-A pointer to <code>void</code> containing extra pointer data associated with the linked list.</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Return values: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>DB_ERR_BADARGS</em>
-&nbsp;</td><td>
-A <code>NULL</code> pointer was passed for <code>list</code>. </td></tr>
-</table>
-</dl>    </td>
-  </tr>
-</table>
-<a name="a10" doxytag="ll_iter.c::ll_iter"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-unsigned long ll_iter (
-          </b></td>
-          <td valign="bottom"><b>
-<a class="el" href="group__dbprim__link.html#a0">link_head_t</a> * <em>list</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-<a class="el" href="group__dbprim__link.html#a2">link_iter_t</a> <em>iter_func</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-void * <em>extra</em>&nbsp;)
-          </b></td>
-        </tr>
-
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This function iterates over a linked list, executing the given <code>iter_func</code> for each entry.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>list</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__link.html#a0">link_head_t</a>. </td></tr>
-<tr><td valign=top><em>iter_func</em>
-&nbsp;</td><td>
-A pointer to a callback function used to perform user-specified actions on an element in a linked list. <code>NULL</code> is an invalid value. See the documentation for <a class="el" href="group__dbprim__link.html#a2">link_iter_t</a> for more information. </td></tr>
-<tr><td valign=top><em>extra</em>
-&nbsp;</td><td>
-A <code>void</code> pointer that will be passed to <code>iter_func</code>.</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Return values: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>DB_ERR_BADARGS</em>
-&nbsp;</td><td>
-An argument was invalid. </td></tr>
-</table>
-</dl>    </td>
-  </tr>
-</table>
-<a name="a7" doxytag="ll_move.c::ll_move"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-unsigned long ll_move (
-          </b></td>
-          <td valign="bottom"><b>
-<a class="el" href="group__dbprim__link.html#a0">link_head_t</a> * <em>list</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-<a class="el" href="group__dbprim__link.html#a1">link_elem_t</a> * <em>elem</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-<a class="el" href="group__dbprim__link.html#a4">link_loc_t</a> <em>loc</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-<a class="el" href="group__dbprim__link.html#a1">link_elem_t</a> * <em>elem2</em>&nbsp;)
-          </b></td>
-        </tr>
-
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This function moves a specified element within the linked list.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>list</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__link.html#a0">link_head_t</a>. </td></tr>
-<tr><td valign=top><em>elem</em>
-&nbsp;</td><td>
-A pointer to the <a class="el" href="group__dbprim__link.html#a1">link_elem_t</a> describing the element to be moved. </td></tr>
-<tr><td valign=top><em>loc</em>
-&nbsp;</td><td>
-A <a class="el" href="group__dbprim__link.html#a4">link_loc_t</a> indicating where the entry should be moved to. </td></tr>
-<tr><td valign=top><em>elem2</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__link.html#a1">link_elem_t</a> describing another element in the list if <code>loc</code> is <a class="el" href="group__dbprim__link.html#a26a100">LINK_LOC_BEFORE</a> or <a class="el" href="group__dbprim__link.html#a26a101">LINK_LOC_AFTER</a>.</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Return values: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>DB_ERR_BADARGS</em>
-&nbsp;</td><td>
-An argument was invalid. </td></tr>
-<tr><td valign=top><em>DB_ERR_BUSY</em>
-&nbsp;</td><td>
-<code>elem</code> and <code>elem2</code> are the same element. </td></tr>
-<tr><td valign=top><em>DB_ERR_WRONGTABLE</em>
-&nbsp;</td><td>
-<code>elem</code> or <code>elem2</code> are in a different list. </td></tr>
-<tr><td valign=top><em>DB_ERR_UNUSED</em>
-&nbsp;</td><td>
-<code>elem</code> or <code>elem2</code> are not in any list. </td></tr>
-</table>
-</dl>    </td>
-  </tr>
-</table>
-<a name="a8" doxytag="ll_remove.c::ll_remove"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-unsigned long ll_remove (
-          </b></td>
-          <td valign="bottom"><b>
-<a class="el" href="group__dbprim__link.html#a0">link_head_t</a> * <em>list</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-<a class="el" href="group__dbprim__link.html#a1">link_elem_t</a> * <em>elem</em>&nbsp;)
-          </b></td>
-        </tr>
-
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This function removes a specified element from a linked list.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>list</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__link.html#a0">link_head_t</a>. </td></tr>
-<tr><td valign=top><em>elem</em>
-&nbsp;</td><td>
-A pointer to the <a class="el" href="group__dbprim__link.html#a1">link_elem_t</a> describing the element to be removed.</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Return values: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>DB_ERR_BADARGS</em>
-&nbsp;</td><td>
-An argument was invalid. </td></tr>
-<tr><td valign=top><em>DB_ERR_UNUSED</em>
-&nbsp;</td><td>
-<code>elem</code> is not in a linked list. </td></tr>
-<tr><td valign=top><em>DB_ERR_WRONGTABLE</em>
-&nbsp;</td><td>
-<code>elem</code> is not in this linked list. </td></tr>
-</table>
-</dl>    </td>
-  </tr>
-</table>
-<hr><address><small>Generated at Thu Mar 6 21:23:10 2003 for dbprim by
-<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.gif" alt="doxygen" align="middle" border=0 
-width=110 height=53></a>1.2.8.1 written by <a href="mailto:dimitri@stack.nl">Dimitri van Heesch</a>,
- &copy;&nbsp;1997-2001</small></address>
-</body>
-</html>
diff --git a/libs/dbprim/doc/html/group__dbprim__smat.html b/libs/dbprim/doc/html/group__dbprim__smat.html
deleted file mode 100644 (file)
index a7d1dee..0000000
+++ /dev/null
@@ -1,2407 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
-<title>Sparse matrices</title>
-<link href="doxygen.css" rel="stylesheet" type="text/css">
-</head><body bgcolor="#ffffff">
-<!-- Generated by Doxygen 1.2.8.1 -->
-<center>
-<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="modules.html">Modules</a> &nbsp; </center>
-<hr><h1>Sparse matrices</h1>Operations for sparse matrices. 
-<a href="#_details">More...</a><table border=0 cellpadding=0 cellspacing=0>
-<tr><td colspan=2><br><h2>Defines</h2></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__smat.html#a21">SMAT_TABLE_INIT</a>(flags, resize, extra)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Sparse matrix table static initializer.</em> <a href="#a21">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__smat.html#a22">st_verify</a>(table)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Sparse matrix table verification macro.</em> <a href="#a22">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__smat.html#a23">st_flags</a>(table)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Sparse matrix table flags.</em> <a href="#a23">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__smat.html#a24">st_frozen</a>(table)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Determine if a sparse matrix is frozen.</em> <a href="#a24">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__smat.html#a25">st_modulus</a>(table)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Sparse matrix table modulus.</em> <a href="#a25">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__smat.html#a26">st_count</a>(table)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Sparse matrix table count.</em> <a href="#a26">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__smat.html#a27">st_extra</a>(table)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Extra pointer data in a sparse matrix table.</em> <a href="#a27">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__smat.html#a28">st_size</a>(table)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Sparse matrix table memory size.</em> <a href="#a28">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__smat.html#a29">SMAT_HEAD_INIT</a>(elem, object)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Sparse matrix list head static initializer.</em> <a href="#a29">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__smat.html#a30">sh_verify</a>(head)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Sparse matrix list head verification macro.</em> <a href="#a30">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__smat.html#a31">sh_elem</a>(head)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Sparse matrix list head element macro.</em> <a href="#a31">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__smat.html#a32">sh_table</a>(head)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Sparse matrix list head table pointer.</em> <a href="#a32">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__smat.html#a33">sh_frozen</a>(head)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Determine if a sparse matrix is frozen.</em> <a href="#a33">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__smat.html#a34">sh_count</a>(head)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Sparse matrix list count.</em> <a href="#a34">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__smat.html#a35">sh_first</a>(head)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>First element in sparse matrix list.</em> <a href="#a35">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__smat.html#a36">sh_last</a>(head)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Last element in sparse matrix list.</em> <a href="#a36">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__smat.html#a37">sh_object</a>(head)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Object represented by a sparse matrix list head.</em> <a href="#a37">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__smat.html#a38">sh_size</a>(head)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Sparse matrix list memory size.</em> <a href="#a38">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__smat.html#a39">se_verify</a>(entry)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Sparse matrix entry verification macro.</em> <a href="#a39">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__smat.html#a40">se_table</a>(entry)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Sparse matrix entry table.</em> <a href="#a40">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__smat.html#a41">_se_link</a>(entry)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Sparse matrix entry linked list element.</em> <a href="#a41">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__smat.html#a42">se_flags</a>(entry)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Sparse matrix entry flags.</em> <a href="#a42">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__smat.html#a43">se_hash</a>(entry)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Sparse matrix table entry hash value.</em> <a href="#a43">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__smat.html#a44">se_next</a>(entry, n)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Next element in sparse matrix list.</em> <a href="#a44">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__smat.html#a45">se_prev</a>(entry, n)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Previous element in sparse matrix list.</em> <a href="#a45">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__smat.html#a46">se_lflags</a>(entry, n)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Flags associated with an entry in a sparse matrix list.</em> <a href="#a46">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__smat.html#a47">se_object</a>(entry, n)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Object associated with an entry in a sparse matrix list.</em> <a href="#a47">More...</a><em></em></font><br><br></td></tr>
-<tr><td colspan=2><br><h2>Typedefs</h2></td></tr>
-<tr><td nowrap align=right valign=top>typedef struct _smat_table_s&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__smat.html#a0">smat_table_t</a></td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Sparse matrix table.</em> <a href="#a0">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>typedef struct _smat_head_s&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__smat.html#a1">smat_head_t</a></td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Sparse matrix list head.</em> <a href="#a1">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>typedef struct _smat_entry_s&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__smat.html#a2">smat_entry_t</a></td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Sparse matrix entry.</em> <a href="#a2">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>typedef unsigned long (*&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__smat.html#a3">smat_resize_t</a> )(<a class="el" href="group__dbprim__smat.html#a0">smat_table_t</a> *, unsigned long)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Sparse matrix table resize callback.</em> <a href="#a3">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>typedef unsigned long (*&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__smat.html#a4">smat_iter_t</a> )(<a class="el" href="group__dbprim__smat.html#a0">smat_table_t</a> *, <a class="el" href="group__dbprim__smat.html#a2">smat_entry_t</a> *, void *)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Sparse matrix iteration callback.</em> <a href="#a4">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>typedef unsigned long (*&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__smat.html#a5">smat_comp_t</a> )(<a class="el" href="group__dbprim__key.html#a0">db_key_t</a> *, <a class="el" href="group__dbprim__smat.html#a2">smat_entry_t</a> *)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Sparse matrix comparison callback.</em> <a href="#a5">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>typedef enum <a class="el" href="group__dbprim__smat.html#a48">_smat_loc_e</a>&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__smat.html#a6">smat_loc_t</a></td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Sparse matrix location.</em> <a href="#a6">More...</a><em></em></font><br><br></td></tr>
-<tr><td colspan=2><br><h2>Enumerations</h2></td></tr>
-<tr><td nowrap align=right valign=top>enum &nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__smat.html#a48">_smat_loc_e</a> { <a class="el" href="group__dbprim__smat.html#a48a102">SMAT_LOC_FIRST</a>, 
-<a class="el" href="group__dbprim__smat.html#a48a103">SMAT_LOC_SECOND</a>
- }</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Sparse matrix location.</em> <a href="#a48">More...</a><em></em></font><br><br></td></tr>
-<tr><td colspan=2><br><h2>Functions</h2></td></tr>
-<tr><td nowrap align=right valign=top>unsigned long&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__smat.html#a7">smat_cleanup</a> (void)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Clean up the smat free list.</em> <a href="#a7">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>unsigned long&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__smat.html#a8">smat_freemem</a> (void)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Report how much memory is used by the free list.</em> <a href="#a8">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>unsigned long&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__smat.html#a9">st_init</a> (<a class="el" href="group__dbprim__smat.html#a0">smat_table_t</a> *table, unsigned long flags, <a class="el" href="group__dbprim__smat.html#a3">smat_resize_t</a> resize, void *extra, unsigned long init_mod)</td></tr>
-<tr><td nowrap align=right valign=top>unsigned long&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__smat.html#a10">st_add</a> (<a class="el" href="group__dbprim__smat.html#a0">smat_table_t</a> *table, <a class="el" href="group__dbprim__smat.html#a2">smat_entry_t</a> **entry_p, <a class="el" href="group__dbprim__smat.html#a1">smat_head_t</a> *head1, <a class="el" href="group__dbprim__link.html#a4">link_loc_t</a> loc1, <a class="el" href="group__dbprim__smat.html#a2">smat_entry_t</a> *ent1, <a class="el" href="group__dbprim__smat.html#a1">smat_head_t</a> *head2, <a class="el" href="group__dbprim__link.html#a4">link_loc_t</a> loc2, <a class="el" href="group__dbprim__smat.html#a2">smat_entry_t</a> *ent2)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Add an entry to a sparse matrix.</em> <a href="#a10">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>unsigned long&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__smat.html#a11">st_remove</a> (<a class="el" href="group__dbprim__smat.html#a0">smat_table_t</a> *table, <a class="el" href="group__dbprim__smat.html#a2">smat_entry_t</a> *entry)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Remove an entry from a sparse matrix.</em> <a href="#a11">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>unsigned long&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__smat.html#a12">st_find</a> (<a class="el" href="group__dbprim__smat.html#a0">smat_table_t</a> *table, <a class="el" href="group__dbprim__smat.html#a2">smat_entry_t</a> **entry_p, <a class="el" href="group__dbprim__smat.html#a1">smat_head_t</a> *head1, <a class="el" href="group__dbprim__smat.html#a1">smat_head_t</a> *head2)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Find an entry in a sparse matrix.</em> <a href="#a12">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>unsigned long&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__smat.html#a13">st_iter</a> (<a class="el" href="group__dbprim__smat.html#a0">smat_table_t</a> *table, <a class="el" href="group__dbprim__smat.html#a4">smat_iter_t</a> iter_func, void *extra)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Iterate over each entry in a sparse matrix.</em> <a href="#a13">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>unsigned long&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__smat.html#a14">st_flush</a> (<a class="el" href="group__dbprim__smat.html#a0">smat_table_t</a> *table, <a class="el" href="group__dbprim__smat.html#a4">smat_iter_t</a> flush_func, void *extra)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Flush a sparse matrix.</em> <a href="#a14">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>unsigned long&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__smat.html#a15">st_resize</a> (<a class="el" href="group__dbprim__smat.html#a0">smat_table_t</a> *table, unsigned long new_size)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Resize a sparse matrix table.</em> <a href="#a15">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>unsigned long&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__smat.html#a16">st_free</a> (<a class="el" href="group__dbprim__smat.html#a0">smat_table_t</a> *table)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Free memory used by an empty sparse matrix table.</em> <a href="#a16">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>unsigned long&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__smat.html#a17">sh_init</a> (<a class="el" href="group__dbprim__smat.html#a1">smat_head_t</a> *head, <a class="el" href="group__dbprim__smat.html#a6">smat_loc_t</a> elem, void *object)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Dynamically initialize a sparse matrix row or column head.</em> <a href="#a17">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>unsigned long&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__smat.html#a18">sh_move</a> (<a class="el" href="group__dbprim__smat.html#a1">smat_head_t</a> *head, <a class="el" href="group__dbprim__smat.html#a2">smat_entry_t</a> *elem, <a class="el" href="group__dbprim__link.html#a4">link_loc_t</a> loc, <a class="el" href="group__dbprim__smat.html#a2">smat_entry_t</a> *elem2)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Move an entry within a row or column list.</em> <a href="#a18">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>unsigned long&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__smat.html#a19">sh_find</a> (<a class="el" href="group__dbprim__smat.html#a1">smat_head_t</a> *head, <a class="el" href="group__dbprim__smat.html#a2">smat_entry_t</a> **elem_p, <a class="el" href="group__dbprim__smat.html#a5">smat_comp_t</a> comp_func, <a class="el" href="group__dbprim__smat.html#a2">smat_entry_t</a> *start, <a class="el" href="group__dbprim__key.html#a0">db_key_t</a> *key)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Find an entry in a row or column of a sparse matrix.</em> <a href="#a19">More...</a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>unsigned long&nbsp;</td><td valign=bottom><a class="el" href="group__dbprim__smat.html#a20">sh_iter</a> (<a class="el" href="group__dbprim__smat.html#a1">smat_head_t</a> *head, <a class="el" href="group__dbprim__smat.html#a4">smat_iter_t</a> iter_func, void *extra)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Iterate over each entry in a row or column of a sparse matrix.</em> <a href="#a20">More...</a><em></em></font><br><br></td></tr>
-</table>
-<hr><a name="_details"></a><h2>Detailed Description</h2>
-Sparse matrices are advanced data structures used to represent associations. For instance, a manager may have several employees, but several of those employees may report to more than one manager. (Yes, this is a contrived example, so sue me.) The simplest way to represent such assocations is with a matrix, or a two-dimensional array. However, such an implementation cannot easily be extended dynamically--imagine if a manager retires and two more are hired, for instance. It would also use an enormous amount of memory, as most employees would only report to one or two managers.
-<p>
-A sparse matrix solves this problem by only allocating memory for the cells in the full matrix which are actually used. That is, no memory is allocated to represent Alice reporting to Bob unless Alice actually does report to Bob. This is a simple concept, but fairly difficult to implement efficiently--how do you tell if Alice reports to Bob? The solution utilized by this library is to combine the strengths of linked lists and hash tables. Each cell is in two linked lists, rooted at the rows and columns of the matrix, but a hash table is used when attempting to look up a given cell. If the cell is allocated, then there will be an entry in the hash table, and finding the given cell is as fast as a hash table look-up.
-<p>
-Because sparse matrices are so complicated, there are three structures and a variety of operations used. Two of the structures, <a class="el" href="group__dbprim__smat.html#a0">smat_table_t</a> and <a class="el" href="group__dbprim__smat.html#a1">smat_head_t</a>, are caller-allocated. However, the third structure, <a class="el" href="group__dbprim__smat.html#a2">smat_entry_t</a>, must be allocated by the library. To avoid too much overhead from malloc(), a free list is used. The free list may be managed with the <a class="el" href="group__dbprim__smat.html#a7">smat_cleanup</a>() and <a class="el" href="group__dbprim__smat.html#a8">smat_freemem</a>() calls.
-<p>
-The <a class="el" href="group__dbprim__smat.html#a0">smat_table_t</a> contains the hash table. Only one of these need be allocated per type of association--for instance, in the above example, only one <a class="el" href="group__dbprim__smat.html#a0">smat_table_t</a> needs to be allocated to represent the manager-employee relationship.
-<p>
-The <a class="el" href="group__dbprim__smat.html#a1">smat_head_t</a> contains the linked list. There are actually two kinds of these structures--one is <a class="el" href="group__dbprim__smat.html#a48a102">SMAT_LOC_FIRST</a>, which could be regarded as a ``row,'' and the other is <a class="el" href="group__dbprim__smat.html#a48a103">SMAT_LOC_SECOND</a>, which could be regarded as a ``column.'' Which one is used for which type of data is irrelevant, as long as consistency is maintained. For the above example, a <a class="el" href="group__dbprim__smat.html#a1">smat_head_t</a> for a manager may be <a class="el" href="group__dbprim__smat.html#a48a102">SMAT_LOC_FIRST</a>, and one for an employee must then be <a class="el" href="group__dbprim__smat.html#a48a103">SMAT_LOC_SECOND</a>. (These values are set when initializing the <a class="el" href="group__dbprim__smat.html#a1">smat_head_t</a> structure.)
-<p>
-An association may be created with the <a class="el" href="group__dbprim__smat.html#a10">st_add</a>() function, which allows an arbitrary ordering in the associated linked lists by the same mechanism as for the linked list component of the library. An association may be removed with <a class="el" href="group__dbprim__smat.html#a11">st_remove</a>(), or looked up with <a class="el" href="group__dbprim__smat.html#a12">st_find</a>(). If iteration over all associations is desired, use the <a class="el" href="group__dbprim__smat.html#a13">st_iter</a>() function. Removing all associations from a table may be performed with <a class="el" href="group__dbprim__smat.html#a14">st_flush</a>(), which optionally calls a user-defined clean-up function. The associated hash table may be resized with <a class="el" href="group__dbprim__smat.html#a15">st_resize</a>(), and the bucket table may be released with <a class="el" href="group__dbprim__smat.html#a16">st_free</a>().
-<p>
-An association may also be reordered within the linked lists using the <a class="el" href="group__dbprim__smat.html#a18">sh_move</a>() function. If a particular entry is desired, use the <a class="el" href="group__dbprim__smat.html#a19">sh_find</a>() function with a user-defined comparison function to locate it. Iteration may be performed with the <a class="el" href="group__dbprim__smat.html#a20">sh_iter</a>() function, and all entries in a given linked list may be removed with the sh_flush() function, which again may optionally call a user-defined clean-up function. <hr><h2>Define Documentation</h2>
-<a name="a29" doxytag="dbprim.h.top::SMAT_HEAD_INIT"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define SMAT_HEAD_INIT(
-          </b></td>
-          <td valign="bottom"><b>
-elem, object&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro statically initializes a <a class="el" href="group__dbprim__smat.html#a1">smat_head_t</a>.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>elem</em>
-&nbsp;</td><td>
-One of <a class="el" href="group__dbprim__smat.html#a48a102">SMAT_LOC_FIRST</a> or <a class="el" href="group__dbprim__smat.html#a48a103">SMAT_LOC_SECOND</a> specifing whether the object is a member of the set of rows or columns. </td></tr>
-<tr><td valign=top><em>object</em>
-&nbsp;</td><td>
-A pointer to <code>void</code> representing the object associated with the list head. </td></tr>
-</table>
-</dl>    </td>
-  </tr>
-</table>
-<a name="a21" doxytag="dbprim.h.top::SMAT_TABLE_INIT"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define SMAT_TABLE_INIT(
-          </b></td>
-          <td valign="bottom"><b>
-flags, resize, extra&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro statically initializes a <a class="el" href="group__dbprim__smat.html#a0">smat_table_t</a>.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>flags</em>
-&nbsp;</td><td>
-A bit-wise OR of <a class="el" href="group__dbprim__hash.html#a16">HASH_FLAG_AUTOGROW</a> and <a class="el" href="group__dbprim__hash.html#a17">HASH_FLAG_AUTOSHRINK</a>. If neither behavior is desired, use 0. </td></tr>
-<tr><td valign=top><em>resize</em>
-&nbsp;</td><td>
-A <a class="el" href="group__dbprim__smat.html#a3">smat_resize_t</a> function pointer for determining whether resizing is permitted and/or for notification of the resize. </td></tr>
-<tr><td valign=top><em>extra</em>
-&nbsp;</td><td>
-Extra pointer data that should be associated with the sparse matrix. </td></tr>
-</table>
-</dl>    </td>
-  </tr>
-</table>
-<a name="a41" doxytag="dbprim.h.top::_se_link"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define _se_link(
-          </b></td>
-          <td valign="bottom"><b>
-entry&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
-For internal use only.    </td>
-  </tr>
-</table>
-<a name="a42" doxytag="dbprim.h.top::se_flags"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define se_flags(
-          </b></td>
-          <td valign="bottom"><b>
-entry&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro retrieves a set of user-defined flags associated with the entry. It may be used as an lvalue to set those flags.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>entry</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__smat.html#a2">smat_entry_t</a>.
-<p>
-</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Returns: </b><dd>
-An <code>unsigned long</code> containing the flags associated with the entry. </dl>    </td>
-  </tr>
-</table>
-<a name="a43" doxytag="dbprim.h.top::se_hash"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define se_hash(
-          </b></td>
-          <td valign="bottom"><b>
-entry&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro retrieves the hash value of the given sparse matrix entry. If the sparse matrix hash been resized, this value may not be the same as a previous value.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>entry</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__smat.html#a2">smat_entry_t</a>.
-<p>
-</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Returns: </b><dd>
-An <code>unsigned long</code> containing the hash code for the entry. </dl>    </td>
-  </tr>
-</table>
-<a name="a46" doxytag="dbprim.h.top::se_lflags"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define se_lflags(
-          </b></td>
-          <td valign="bottom"><b>
-entry, n&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro retrieves a set of user-defined flags associated with the entry in a sparse matrix list. It may be used as an lvalue to set those flags.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>entry</em>
-&nbsp;</td><td>
-A pointer to <a class="el" href="group__dbprim__smat.html#a2">smat_entry_t</a>. </td></tr>
-<tr><td valign=top><em>n</em>
-&nbsp;</td><td>
-One of <a class="el" href="group__dbprim__smat.html#a48a102">SMAT_LOC_FIRST</a> or <a class="el" href="group__dbprim__smat.html#a48a103">SMAT_LOC_SECOND</a> to specify which list thread is desired.
-<p>
-</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Returns: </b><dd>
-An <code>unsigned long</code> containing the flags associated with the entry. </dl>    </td>
-  </tr>
-</table>
-<a name="a44" doxytag="dbprim.h.top::se_next"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define se_next(
-          </b></td>
-          <td valign="bottom"><b>
-entry, n&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro retrieves a pointer to the <a class="el" href="group__dbprim__link.html#a1">link_elem_t</a> for the next element in the sparse matrix list.
-<p>
-<dl compact><dt>
-<b>Warning: </b><dd>
-This macro may evaluate the <code>entry</code> and <code>n</code> arguments twice.</dl><dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>entry</em>
-&nbsp;</td><td>
-A pointer to <a class="el" href="group__dbprim__smat.html#a2">smat_entry_t</a>. </td></tr>
-<tr><td valign=top><em>n</em>
-&nbsp;</td><td>
-One of <a class="el" href="group__dbprim__smat.html#a48a102">SMAT_LOC_FIRST</a> or <a class="el" href="group__dbprim__smat.html#a48a103">SMAT_LOC_SECOND</a> to specify which list thread is desired.
-<p>
-</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Returns: </b><dd>
-A pointer to <a class="el" href="group__dbprim__smat.html#a2">smat_entry_t</a>. </dl>    </td>
-  </tr>
-</table>
-<a name="a47" doxytag="dbprim.h.top::se_object"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define se_object(
-          </b></td>
-          <td valign="bottom"><b>
-entry, n&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro retrieves a pointer to one of the object represented by the entry. It may be used as an lvalue to change the object pointed to. Care should be taken when using this feature.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>entry</em>
-&nbsp;</td><td>
-A pointer to <a class="el" href="group__dbprim__smat.html#a2">smat_entry_t</a>. </td></tr>
-<tr><td valign=top><em>n</em>
-&nbsp;</td><td>
-One of <a class="el" href="group__dbprim__smat.html#a48a102">SMAT_LOC_FIRST</a> or <a class="el" href="group__dbprim__smat.html#a48a103">SMAT_LOC_SECOND</a> to specify which list thread is desired.
-<p>
-</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Returns: </b><dd>
-A pointer to <code>void</code> representing the object. </dl>    </td>
-  </tr>
-</table>
-<a name="a45" doxytag="dbprim.h.top::se_prev"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define se_prev(
-          </b></td>
-          <td valign="bottom"><b>
-entry, n&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro retrieves a pointer to the <a class="el" href="group__dbprim__link.html#a1">link_elem_t</a> for the previous element in the sparse matrix list.
-<p>
-<dl compact><dt>
-<b>Warning: </b><dd>
-This macro may evaluate the <code>entry</code> and <code>n</code> arguments twice.</dl><dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>entry</em>
-&nbsp;</td><td>
-A pointer to <a class="el" href="group__dbprim__smat.html#a2">smat_entry_t</a>. </td></tr>
-<tr><td valign=top><em>n</em>
-&nbsp;</td><td>
-One of <a class="el" href="group__dbprim__smat.html#a48a102">SMAT_LOC_FIRST</a> or <a class="el" href="group__dbprim__smat.html#a48a103">SMAT_LOC_SECOND</a> to specify which list thread is desired.
-<p>
-</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Returns: </b><dd>
-A pointer to <a class="el" href="group__dbprim__smat.html#a2">smat_entry_t</a>. </dl>    </td>
-  </tr>
-</table>
-<a name="a40" doxytag="dbprim.h.top::se_table"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define se_table(
-          </b></td>
-          <td valign="bottom"><b>
-entry&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro retrieves a pointer to the table that the sparse matrix entry is in.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>entry</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__smat.html#a2">smat_entry_t</a>.
-<p>
-</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Returns: </b><dd>
-A pointer to a <a class="el" href="group__dbprim__smat.html#a0">smat_table_t</a>. </dl>    </td>
-  </tr>
-</table>
-<a name="a39" doxytag="dbprim.h.top::se_verify"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define se_verify(
-          </b></td>
-          <td valign="bottom"><b>
-entry&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro verifies that a given pointer actually does point to a sparse matrix entry.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>entry</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__smat.html#a2">smat_entry_t</a>.
-<p>
-</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Returns: </b><dd>
-Boolean true if <code>entry</code> is a valid sparse matrix entry or false otherwise. </dl>    </td>
-  </tr>
-</table>
-<a name="a34" doxytag="dbprim.h.top::sh_count"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define sh_count(
-          </b></td>
-          <td valign="bottom"><b>
-head&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro retrieves the number of elements in the sparse matrix list rooted at <code>head</code>.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>head</em>
-&nbsp;</td><td>
-A pointer to <a class="el" href="group__dbprim__smat.html#a1">smat_head_t</a>.
-<p>
-</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Returns: </b><dd>
-An <code>unsigned long</code> containing a count of the number of elements in the sparse matrix list. </dl>    </td>
-  </tr>
-</table>
-<a name="a31" doxytag="dbprim.h.top::sh_elem"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define sh_elem(
-          </b></td>
-          <td valign="bottom"><b>
-head&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro retrieves the position indicator for the sparse matrix head. It will return one of <a class="el" href="group__dbprim__smat.html#a48a102">SMAT_LOC_FIRST</a> or <a class="el" href="group__dbprim__smat.html#a48a103">SMAT_LOC_SECOND</a>.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>head</em>
-&nbsp;</td><td>
-A pointer to <a class="el" href="group__dbprim__smat.html#a1">smat_head_t</a>.
-<p>
-</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Returns: </b><dd>
-An <a class="el" href="group__dbprim__smat.html#a6">smat_loc_t</a>. </dl>    </td>
-  </tr>
-</table>
-<a name="a35" doxytag="dbprim.h.top::sh_first"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define sh_first(
-          </b></td>
-          <td valign="bottom"><b>
-head&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro retrieves a pointer to the <a class="el" href="group__dbprim__smat.html#a2">smat_entry_t</a> for the first element in the sparse matrix list.
-<p>
-<dl compact><dt>
-<b>Warning: </b><dd>
-This macro may evaluate the <code>head</code> argument twice.</dl><dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>head</em>
-&nbsp;</td><td>
-A pointer to <a class="el" href="group__dbprim__smat.html#a1">smat_head_t</a>.
-<p>
-</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Returns: </b><dd>
-A pointer to <a class="el" href="group__dbprim__smat.html#a2">smat_entry_t</a>. </dl>    </td>
-  </tr>
-</table>
-<a name="a33" doxytag="dbprim.h.top::sh_frozen"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define sh_frozen(
-          </b></td>
-          <td valign="bottom"><b>
-head&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro returns a non-zero value if the matrix is currently frozen. The sparse matrix may be frozen if there is an iteration in progress.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>head</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__smat.html#a1">smat_head_t</a>.
-<p>
-</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Returns: </b><dd>
-A zero value if the matrix is not frozen or a non-zero value if the matrix is frozen. </dl>    </td>
-  </tr>
-</table>
-<a name="a36" doxytag="dbprim.h.top::sh_last"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define sh_last(
-          </b></td>
-          <td valign="bottom"><b>
-head&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro retrieves a pointer to the <a class="el" href="group__dbprim__smat.html#a2">smat_entry_t</a> for the last element in the sparse matrix list.
-<p>
-<dl compact><dt>
-<b>Warning: </b><dd>
-This macro may evaluate the <code>head</code> argument twice.</dl><dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>head</em>
-&nbsp;</td><td>
-A pointer to <a class="el" href="group__dbprim__smat.html#a1">smat_head_t</a>.
-<p>
-</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Returns: </b><dd>
-A pointer to <a class="el" href="group__dbprim__smat.html#a2">smat_entry_t</a>. </dl>    </td>
-  </tr>
-</table>
-<a name="a37" doxytag="dbprim.h.top::sh_object"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define sh_object(
-          </b></td>
-          <td valign="bottom"><b>
-head&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro retrieves a pointer to the object referenced by the sparse matrix list head.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>head</em>
-&nbsp;</td><td>
-A pointer to <a class="el" href="group__dbprim__smat.html#a1">smat_head_t</a>.
-<p>
-</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Returns: </b><dd>
-A pointer to <code>void</code>. </dl>    </td>
-  </tr>
-</table>
-<a name="a38" doxytag="dbprim.h.top::sh_size"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define sh_size(
-          </b></td>
-          <td valign="bottom"><b>
-head&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro returns the physical size of the memory allocated by the library for this sparse matrix list.
-<p>
-<dl compact><dt>
-<b>Note: </b><dd>
-The <a class="el" href="group__dbprim__smat.html#a28">st_size</a>() macro already counts the memory for each list in the table. Summing the results of <a class="el" href="group__dbprim__smat.html#a38">sh_size</a>() and <a class="el" href="group__dbprim__smat.html#a28">st_size</a>() will over-count the amount of memory actually in use.</dl><dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>head</em>
-&nbsp;</td><td>
-A pointer to <a class="el" href="group__dbprim__smat.html#a1">smat_head_t</a>.
-<p>
-</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Returns: </b><dd>
-A <code>size_t</code>. </dl>    </td>
-  </tr>
-</table>
-<a name="a32" doxytag="dbprim.h.top::sh_table"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define sh_table(
-          </b></td>
-          <td valign="bottom"><b>
-head&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- If there are any elements in this sparse matrix list head, this macro will retrieve a pointer to the table in which they reside.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>head</em>
-&nbsp;</td><td>
-A pointer to <a class="el" href="group__dbprim__smat.html#a1">smat_head_t</a>.
-<p>
-</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Returns: </b><dd>
-A pointer to <a class="el" href="group__dbprim__smat.html#a0">smat_table_t</a>. </dl>    </td>
-  </tr>
-</table>
-<a name="a30" doxytag="dbprim.h.top::sh_verify"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define sh_verify(
-          </b></td>
-          <td valign="bottom"><b>
-head&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro verifies that a given pointer actually does point to a sparse matrix head.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>head</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__smat.html#a1">smat_head_t</a>.
-<p>
-</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Returns: </b><dd>
-Boolean true if <code>head</code> is a valid sparse matrix head or false otherwise. </dl>    </td>
-  </tr>
-</table>
-<a name="a26" doxytag="dbprim.h.top::st_count"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define st_count(
-          </b></td>
-          <td valign="bottom"><b>
-table&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro retrieves the total number of items actually in the sparse matrix table.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>table</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__smat.html#a0">smat_table_t</a>.
-<p>
-</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Returns: </b><dd>
-An <code>unsigned long</code> containing a count of the number of items in the sparse matrix table. </dl>    </td>
-  </tr>
-</table>
-<a name="a27" doxytag="dbprim.h.top::st_extra"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define st_extra(
-          </b></td>
-          <td valign="bottom"><b>
-table&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro retrieves the extra pointer data associated with a particular sparse matrix table.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>table</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__smat.html#a0">smat_table_t</a>.
-<p>
-</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Returns: </b><dd>
-A pointer to <code>void</code>. </dl>    </td>
-  </tr>
-</table>
-<a name="a23" doxytag="dbprim.h.top::st_flags"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define st_flags(
-          </b></td>
-          <td valign="bottom"><b>
-table&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro retrieves the flags associated with the sparse matrix table. Only <a class="el" href="group__dbprim__hash.html#a16">HASH_FLAG_AUTOGROW</a> and <a class="el" href="group__dbprim__hash.html#a17">HASH_FLAG_AUTOSHRINK</a> have any meaning to the application; all other bits are reserved for use in the library. This macro may be used as an lvalue, but care must be taken to avoid modifying the library-specific bits.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>table</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__smat.html#a0">smat_table_t</a>.
-<p>
-</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Returns: </b><dd>
-An <code>unsigned long</code> containing the flags for the sparse matrix table. </dl>    </td>
-  </tr>
-</table>
-<a name="a24" doxytag="dbprim.h.top::st_frozen"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define st_frozen(
-          </b></td>
-          <td valign="bottom"><b>
-table&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro returns a non-zero value if the matrix is currently frozen. The sparse matrix may be frozen if there is an iteration in progress.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>table</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__smat.html#a0">smat_table_t</a>.
-<p>
-</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Returns: </b><dd>
-A zero value if the matrix is not frozen or a non-zero value if the matrix is frozen. </dl>    </td>
-  </tr>
-</table>
-<a name="a25" doxytag="dbprim.h.top::st_modulus"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define st_modulus(
-          </b></td>
-          <td valign="bottom"><b>
-table&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro retrieves the number of buckets allocated for the sparse matrix table. An application may wish to save this value between invocations to avoid the overhead of growing the table while filling it with data.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>table</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__smat.html#a0">smat_table_t</a>.
-<p>
-</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Returns: </b><dd>
-An <code>unsigned long</code> containing the number of buckets allocated for the sparse matrix table. </dl>    </td>
-  </tr>
-</table>
-<a name="a28" doxytag="dbprim.h.top::st_size"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define st_size(
-          </b></td>
-          <td valign="bottom"><b>
-table&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro returns the physical size of the memory allocated by the library for this sparse matrix table.
-<p>
-<dl compact><dt>
-<b>Note: </b><dd>
-The <a class="el" href="group__dbprim__smat.html#a28">st_size</a>() macro already counts the memory for each list in the table. Summing the results of <a class="el" href="group__dbprim__smat.html#a38">sh_size</a>() and <a class="el" href="group__dbprim__smat.html#a28">st_size</a>() will over-count the amount of memory actually in use.</dl><dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>table</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__smat.html#a0">smat_table_t</a>.
-<p>
-</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Returns: </b><dd>
-A <code>size_t</code>. </dl>    </td>
-  </tr>
-</table>
-<a name="a22" doxytag="dbprim.h.top::st_verify"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-#define st_verify(
-          </b></td>
-          <td valign="bottom"><b>
-table&nbsp;)
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This macro verifies that a given pointer actually does point to a sparse matrix table.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>table</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__smat.html#a0">smat_table_t</a>.
-<p>
-</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Returns: </b><dd>
-Boolean true if <code>table</code> is a valid sparse matrix table or false otherwise. </dl>    </td>
-  </tr>
-</table>
-<hr><h2>Typedef Documentation</h2>
-<a name="a5" doxytag="dbprim.h.top::smat_comp_t"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-typedef unsigned long(* smat_comp_t)(<a class="el" href="group__dbprim__key.html#a0">db_key_t</a> *, <a class="el" href="group__dbprim__smat.html#a2">smat_entry_t</a> *)
-          </b></td>
-        </tr>
-
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This function pointer references a callback used by <a class="el" href="group__dbprim__smat.html#a19">sh_find</a>(). It should return 0 if the sparse matrix entry represented by the second argument matches the key passed as the first argument.     </td>
-  </tr>
-</table>
-<a name="a2" doxytag="dbprim.h.top::smat_entry_t"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-typedef struct _smat_entry_s smat_entry_t
-          </b></td>
-        </tr>
-
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This structure is allocated by the library and represents a single element in a sparse matrix.     </td>
-  </tr>
-</table>
-<a name="a1" doxytag="dbprim.h.top::smat_head_t"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-typedef struct _smat_head_s smat_head_t
-          </b></td>
-        </tr>
-
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This structure is the head of a linked list of sparse matrix entries.     </td>
-  </tr>
-</table>
-<a name="a4" doxytag="dbprim.h.top::smat_iter_t"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-typedef unsigned long(* smat_iter_t)(<a class="el" href="group__dbprim__smat.html#a0">smat_table_t</a> *, <a class="el" href="group__dbprim__smat.html#a2">smat_entry_t</a> *, void *)
-          </b></td>
-        </tr>
-
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This function pointer references a callback used by <a class="el" href="group__dbprim__smat.html#a13">st_iter</a>(), <a class="el" href="group__dbprim__smat.html#a14">st_flush</a>(), <a class="el" href="group__dbprim__smat.html#a20">sh_iter</a>(), and sh_flush(). It should return 0 for success. A non-zero return value will terminate the operation and will become the return value of the call.     </td>
-  </tr>
-</table>
-<a name="a6" doxytag="dbprim.h.top::smat_loc_t"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-typedef enum <a class="el" href="group__dbprim__smat.html#a48">_smat_loc_e</a> smat_loc_t
-          </b></td>
-        </tr>
-
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- See the documentation for the enumeration <a class="el" href="group__dbprim__smat.html#a48">_smat_loc_e</a>.     </td>
-  </tr>
-</table>
-<a name="a3" doxytag="dbprim.h.top::smat_resize_t"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-typedef unsigned long(* smat_resize_t)(<a class="el" href="group__dbprim__smat.html#a0">smat_table_t</a> *, unsigned long)
-          </b></td>
-        </tr>
-
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This function pointer references a callback that will be called with both the old and new sparse matrix table sizes whenever a sparse matrix's hash table table is resized. It should return non-zero only when the resize should be inhibited.     </td>
-  </tr>
-</table>
-<a name="a0" doxytag="dbprim.h.top::smat_table_t"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-typedef struct _smat_table_s smat_table_t
-          </b></td>
-        </tr>
-
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This structure is the basis of all sparse matrices maintained by this library.     </td>
-  </tr>
-</table>
-<hr><h2>Enumeration Type Documentation</h2>
-<a name="a48" doxytag="dbprim.h.top::_smat_loc_e"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-enum _smat_loc_e
-          </b></td>
-        </tr>
-
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This enumeration is used to specify whether an element is a row or column element. It should be referenced by the typedef <a class="el" href="group__dbprim__smat.html#a6">smat_loc_t</a>. <dl compact><dt>
-<b>Enumeration values:</b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><a name="a48a102" doxytag="SMAT_LOC_FIRST"></a><em>SMAT_LOC_FIRST</em>
-&nbsp;</td><td>
-First entry (``row''). </td></tr>
-<tr><td valign=top><a name="a48a103" doxytag="SMAT_LOC_SECOND"></a><em>SMAT_LOC_SECOND</em>
-&nbsp;</td><td>
-Second entry (``column''). </td></tr>
-</table>
-</dl>
-    </td>
-  </tr>
-</table>
-<hr><h2>Function Documentation</h2>
-<a name="a19" doxytag="sh_find.c::sh_find"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-unsigned long sh_find (
-          </b></td>
-          <td valign="bottom"><b>
-<a class="el" href="group__dbprim__smat.html#a1">smat_head_t</a> * <em>head</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-<a class="el" href="group__dbprim__smat.html#a2">smat_entry_t</a> ** <em>elem_p</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-<a class="el" href="group__dbprim__smat.html#a5">smat_comp_t</a> <em>comp_func</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-<a class="el" href="group__dbprim__smat.html#a2">smat_entry_t</a> * <em>start</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-<a class="el" href="group__dbprim__key.html#a0">db_key_t</a> * <em>key</em>&nbsp;)
-          </b></td>
-        </tr>
-
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This function iterates through the given row or column of a sparse matrix looking for an element that matches the given <code>key</code>.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>head</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__smat.html#a1">smat_head_t</a>. </td></tr>
-<tr><td valign=top><em>elem_p</em>
-&nbsp;</td><td>
-A pointer to a pointer to a <a class="el" href="group__dbprim__smat.html#a2">smat_entry_t</a>. This is a result pramater. <code>NULL</code> is an invalid value. </td></tr>
-<tr><td valign=top><em>comp_func</em>
-&nbsp;</td><td>
-A pointer to a comparison function used to compare the key to a particular entry. See the documentation for <a class="el" href="group__dbprim__smat.html#a5">smat_comp_t</a> for more information. </td></tr>
-<tr><td valign=top><em>start</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__smat.html#a2">smat_entry_t</a> describing where in the row or column to start. If <code>NULL</code> is passed, the beginning of the row or column will be assumed. </td></tr>
-<tr><td valign=top><em>key</em>
-&nbsp;</td><td>
-A key to search for.</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Return values: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>DB_ERR_BADARGS</em>
-&nbsp;</td><td>
-An argument was invalid. </td></tr>
-<tr><td valign=top><em>DB_ERR_WRONGTABLE</em>
-&nbsp;</td><td>
-<code>start</code> is not in this row or column. </td></tr>
-<tr><td valign=top><em>DB_ERR_NOENTRY</em>
-&nbsp;</td><td>
-No matching entry was found. </td></tr>
-</table>
-</dl>    </td>
-  </tr>
-</table>
-<a name="a17" doxytag="sh_init.c::sh_init"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-unsigned long sh_init (
-          </b></td>
-          <td valign="bottom"><b>
-<a class="el" href="group__dbprim__smat.html#a1">smat_head_t</a> * <em>head</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-<a class="el" href="group__dbprim__smat.html#a6">smat_loc_t</a> <em>elem</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-void * <em>object</em>&nbsp;)
-          </b></td>
-        </tr>
-
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This function dynamically initializes a sparse matrix row or column linked list head. The <code>elem</code> argument specifies whether the object is to be associated with a <a class="el" href="group__dbprim__smat.html#a48a102">SMAT_LOC_FIRST</a> list or a <a class="el" href="group__dbprim__smat.html#a48a103">SMAT_LOC_SECOND</a> list.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>head</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__smat.html#a1">smat_head_t</a> to be initialized. </td></tr>
-<tr><td valign=top><em>elem</em>
-&nbsp;</td><td>
-Either <a class="el" href="group__dbprim__smat.html#a48a102">SMAT_LOC_FIRST</a> or <a class="el" href="group__dbprim__smat.html#a48a103">SMAT_LOC_SECOND</a>. </td></tr>
-<tr><td valign=top><em>object</em>
-&nbsp;</td><td>
-A pointer to the object containing the sparse matrix row or column head.</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Return values: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>DB_ERR_BADARGS</em>
-&nbsp;</td><td>
-An invalid argument was given. </td></tr>
-</table>
-</dl>    </td>
-  </tr>
-</table>
-<a name="a20" doxytag="sh_iter.c::sh_iter"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-unsigned long sh_iter (
-          </b></td>
-          <td valign="bottom"><b>
-<a class="el" href="group__dbprim__smat.html#a1">smat_head_t</a> * <em>head</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-<a class="el" href="group__dbprim__smat.html#a4">smat_iter_t</a> <em>iter_func</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-void * <em>extra</em>&nbsp;)
-          </b></td>
-        </tr>
-
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This function iterates over a row or column of a sparse matrix, executing the given <code>iter_func</code> for each entry.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>head</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__smat.html#a1">smat_head_t</a>. </td></tr>
-<tr><td valign=top><em>iter_func</em>
-&nbsp;</td><td>
-A pointer to a callback function used to perform user-specified actions on an entry in a row or column of a sparse matrix. <code>NULL</code> is an invalid value. See the documentation for <a class="el" href="group__dbprim__smat.html#a4">smat_iter_t</a> for more information. </td></tr>
-<tr><td valign=top><em>extra</em>
-&nbsp;</td><td>
-A <code>void</code> pointer that will be passed to <code>iter_func</code>.</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Return values: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>DB_ERR_BADARGS</em>
-&nbsp;</td><td>
-An argument was invalid. </td></tr>
-</table>
-</dl>    </td>
-  </tr>
-</table>
-<a name="a18" doxytag="sh_move.c::sh_move"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-unsigned long sh_move (
-          </b></td>
-          <td valign="bottom"><b>
-<a class="el" href="group__dbprim__smat.html#a1">smat_head_t</a> * <em>head</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-<a class="el" href="group__dbprim__smat.html#a2">smat_entry_t</a> * <em>elem</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-<a class="el" href="group__dbprim__link.html#a4">link_loc_t</a> <em>loc</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-<a class="el" href="group__dbprim__smat.html#a2">smat_entry_t</a> * <em>elem2</em>&nbsp;)
-          </b></td>
-        </tr>
-
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This function allows the specified entry to be shifted within the linked list describing the row or column. It is very similar to the <a class="el" href="group__dbprim__link.html#a7">ll_move</a>() function.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>head</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__smat.html#a1">smat_head_t</a>. </td></tr>
-<tr><td valign=top><em>elem</em>
-&nbsp;</td><td>
-A pointer to the <a class="el" href="group__dbprim__smat.html#a2">smat_entry_t</a> describing the entry to be moved. </td></tr>
-<tr><td valign=top><em>loc</em>
-&nbsp;</td><td>
-A <a class="el" href="group__dbprim__link.html#a4">link_loc_t</a> indicating where the entry should be moved to. </td></tr>
-<tr><td valign=top><em>elem2</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__smat.html#a2">smat_entry_t</a> describing another entry in the list if <code>loc</code> is <a class="el" href="group__dbprim__link.html#a26a100">LINK_LOC_BEFORE</a> or <a class="el" href="group__dbprim__link.html#a26a101">LINK_LOC_AFTER</a>.</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Return values: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>DB_ERR_BADARGS</em>
-&nbsp;</td><td>
-An argument was invalid. </td></tr>
-<tr><td valign=top><em>DB_ERR_BUSY</em>
-&nbsp;</td><td>
-<code>elem</code> and <code>elem2</code> are the same entry. </td></tr>
-<tr><td valign=top><em>DB_ERR_WRONGTABLE</em>
-&nbsp;</td><td>
-<code>elem</code> or <code>elem2</code> are in a different row or column. </td></tr>
-<tr><td valign=top><em>DB_ERR_UNUSED</em>
-&nbsp;</td><td>
-<code>elem</code> or <code>elem2</code> are not in any row or column. </td></tr>
-</table>
-</dl>    </td>
-  </tr>
-</table>
-<a name="a7" doxytag="smat_freelist.c::smat_cleanup"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-unsigned long smat_cleanup (
-          </b></td>
-          <td valign="bottom"><b>
-void&nbsp;)
-          </b></td>
-        </tr>
-
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This function frees all smat_entry_t objects on the internal free list. It is always successful and returns 0.     </td>
-  </tr>
-</table>
-<a name="a8" doxytag="smat_freelist.c::smat_freemem"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-unsigned long smat_freemem (
-          </b></td>
-          <td valign="bottom"><b>
-void&nbsp;)
-          </b></td>
-        </tr>
-
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This function returns the amount of memory being used by the internal free list of smat_entry_t objects.
-<p>
-<dl compact><dt>
-<b>Returns: </b><dd>
-A number indicating the size, in bytes, of the memory allocated for smat_entry_t objects on the free list. </dl>    </td>
-  </tr>
-</table>
-<a name="a10" doxytag="st_add.c::st_add"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-unsigned long st_add (
-          </b></td>
-          <td valign="bottom"><b>
-<a class="el" href="group__dbprim__smat.html#a0">smat_table_t</a> * <em>table</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-<a class="el" href="group__dbprim__smat.html#a2">smat_entry_t</a> ** <em>entry_p</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-<a class="el" href="group__dbprim__smat.html#a1">smat_head_t</a> * <em>head1</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-<a class="el" href="group__dbprim__link.html#a4">link_loc_t</a> <em>loc1</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-<a class="el" href="group__dbprim__smat.html#a2">smat_entry_t</a> * <em>ent1</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-<a class="el" href="group__dbprim__smat.html#a1">smat_head_t</a> * <em>head2</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-<a class="el" href="group__dbprim__link.html#a4">link_loc_t</a> <em>loc2</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-<a class="el" href="group__dbprim__smat.html#a2">smat_entry_t</a> * <em>ent2</em>&nbsp;)
-          </b></td>
-        </tr>
-
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This function adds an entry to a sparse matrix. The entry is referenced in three different places, thus the complex set of arguments. This function will allocate a <a class="el" href="group__dbprim__smat.html#a2">smat_entry_t</a> and return it through the <code>entry_p</code> result parameter.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>table</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__smat.html#a0">smat_table_t</a>. </td></tr>
-<tr><td valign=top><em>entry_p</em>
-&nbsp;</td><td>
-A pointer to a pointer to a <a class="el" href="group__dbprim__smat.html#a2">smat_entry_t</a>. This is a result parameter. If <code>NULL</code> is passed, the addition will be performed and an appropriate error code returned. </td></tr>
-<tr><td valign=top><em>head1</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__smat.html#a1">smat_head_t</a> representing a <a class="el" href="group__dbprim__smat.html#a48a102">SMAT_LOC_FIRST</a> sparse matrix list. </td></tr>
-<tr><td valign=top><em>loc1</em>
-&nbsp;</td><td>
-A <a class="el" href="group__dbprim__link.html#a4">link_loc_t</a> indicating where the entry should be added for <code>head1</code>. </td></tr>
-<tr><td valign=top><em>ent1</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__smat.html#a2">smat_entry_t</a> describing another element in the list represented by <code>head1</code> if <code>loc1</code> is <a class="el" href="group__dbprim__link.html#a26a100">LINK_LOC_BEFORE</a> or <a class="el" href="group__dbprim__link.html#a26a101">LINK_LOC_AFTER</a>. </td></tr>
-<tr><td valign=top><em>head2</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__smat.html#a1">smat_head_t</a> representing a <a class="el" href="group__dbprim__smat.html#a48a103">SMAT_LOC_SECOND</a> sparse matrix list. </td></tr>
-<tr><td valign=top><em>loc2</em>
-&nbsp;</td><td>
-A <a class="el" href="group__dbprim__link.html#a4">link_loc_t</a> indicating where the entry should be added for <code>head2</code>. </td></tr>
-<tr><td valign=top><em>ent2</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__smat.html#a2">smat_entry_t</a> describing another element in the list represented by <code>head2</code> if <code>loc2</code> is <a class="el" href="group__dbprim__link.html#a26a100">LINK_LOC_BEFORE</a> or <a class="el" href="group__dbprim__link.html#a26a101">LINK_LOC_AFTER</a>.</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Return values: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>DB_ERR_BADARGS</em>
-&nbsp;</td><td>
-An argument was invalid. </td></tr>
-<tr><td valign=top><em>DB_ERR_BUSY</em>
-&nbsp;</td><td>
-One of the arguments is already in the table. </td></tr>
-<tr><td valign=top><em>DB_ERR_FROZEN</em>
-&nbsp;</td><td>
-The table is currently frozen. </td></tr>
-<tr><td valign=top><em>DB_ERR_NOTABLE</em>
-&nbsp;</td><td>
-The bucket table has not been allocated and automatic growth is not enabled. </td></tr>
-<tr><td valign=top><em>DB_ERR_WRONGTABLE</em>
-&nbsp;</td><td>
-One of the arguments was not in the proper table or list. </td></tr>
-<tr><td valign=top><em>DB_ERR_UNUSED</em>
-&nbsp;</td><td>
-One of the <code>ent</code> arguments is not presently in a list. </td></tr>
-<tr><td valign=top><em>DB_ERR_UNRECOVERABLE</em>
-&nbsp;</td><td>
-An unrecoverable error occurred while resizing the table. </td></tr>
-<tr><td valign=top><em>ENOMEM</em>
-&nbsp;</td><td>
-No memory could be allocated for the <a class="el" href="group__dbprim__smat.html#a2">smat_entry_t</a> structure. </td></tr>
-</table>
-</dl>    </td>
-  </tr>
-</table>
-<a name="a12" doxytag="st_find.c::st_find"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-unsigned long st_find (
-          </b></td>
-          <td valign="bottom"><b>
-<a class="el" href="group__dbprim__smat.html#a0">smat_table_t</a> * <em>table</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-<a class="el" href="group__dbprim__smat.html#a2">smat_entry_t</a> ** <em>entry_p</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-<a class="el" href="group__dbprim__smat.html#a1">smat_head_t</a> * <em>head1</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-<a class="el" href="group__dbprim__smat.html#a1">smat_head_t</a> * <em>head2</em>&nbsp;)
-          </b></td>
-        </tr>
-
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This function looks up the entry matching the given <code>head1</code> and <code>head2</code>.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>table</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__smat.html#a0">smat_table_t</a>. </td></tr>
-<tr><td valign=top><em>entry_p</em>
-&nbsp;</td><td>
-A pointer to a pointer to a <a class="el" href="group__dbprim__smat.html#a2">smat_entry_t</a>. This is a result parameter. If <code>NULL</code> is passed, the lookup will be performed and an appropriate error code returned. </td></tr>
-<tr><td valign=top><em>head1</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__smat.html#a1">smat_head_t</a> initialized to <a class="el" href="group__dbprim__smat.html#a48a102">SMAT_LOC_FIRST</a>. </td></tr>
-<tr><td valign=top><em>head2</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__smat.html#a1">smat_head_t</a> initialized to <a class="el" href="group__dbprim__smat.html#a48a103">SMAT_LOC_SECOND</a>.</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Return values: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>DB_ERR_BADARGS</em>
-&nbsp;</td><td>
-An argument was invalid. </td></tr>
-<tr><td valign=top><em>DB_ERR_WRONGTABLE</em>
-&nbsp;</td><td>
-One or both of <code>head1</code> or <code>head2</code> are not referenced in this table. </td></tr>
-<tr><td valign=top><em>DB_ERR_NOENTRY</em>
-&nbsp;</td><td>
-No matching entry was found. </td></tr>
-</table>
-</dl>    </td>
-  </tr>
-</table>
-<a name="a14" doxytag="st_flush.c::st_flush"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-unsigned long st_flush (
-          </b></td>
-          <td valign="bottom"><b>
-<a class="el" href="group__dbprim__smat.html#a0">smat_table_t</a> * <em>table</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-<a class="el" href="group__dbprim__smat.html#a4">smat_iter_t</a> <em>flush_func</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-void * <em>extra</em>&nbsp;)
-          </b></td>
-        </tr>
-
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This function flushes a sparse matrix--that is, it removes each entry from the matrix. If a <code>flush_func</code> is specified, it will be called on the entry after it has been removed from the table, and may safely call <code>free()</code>.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>table</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__smat.html#a0">smat_table_t</a>. </td></tr>
-<tr><td valign=top><em>flush_func</em>
-&nbsp;</td><td>
-A pointer to a callback function used to perform user-specified actions on an entry after removing it from the table. May be <code>NULL</code>. See the documentation for <a class="el" href="group__dbprim__smat.html#a4">smat_iter_t</a> for more information. </td></tr>
-<tr><td valign=top><em>extra</em>
-&nbsp;</td><td>
-A <code>void</code> pointer that will be passed to <code>iter_func</code>.</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Return values: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>DB_ERR_BADARGS</em>
-&nbsp;</td><td>
-An argument was invalid. </td></tr>
-<tr><td valign=top><em>DB_ERR_FROZEN</em>
-&nbsp;</td><td>
-The sparse matrix is frozen. </td></tr>
-</table>
-</dl>    </td>
-  </tr>
-</table>
-<a name="a16" doxytag="st_free.c::st_free"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-unsigned long st_free (
-          </b></td>
-          <td valign="bottom"><b>
-<a class="el" href="group__dbprim__smat.html#a0">smat_table_t</a> * <em>table</em>&nbsp;)
-          </b></td>
-        </tr>
-
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This function releases the memory used by the bucket table of the empty hash table associated with a sparse matrix.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>table</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__smat.html#a0">smat_table_t</a>.</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Return values: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>DB_ERR_BADARGS</em>
-&nbsp;</td><td>
-An invalid argument was given. </td></tr>
-<tr><td valign=top><em>DB_ERR_FROZEN</em>
-&nbsp;</td><td>
-The table is frozen. </td></tr>
-<tr><td valign=top><em>DB_ERR_NOTEMPTY</em>
-&nbsp;</td><td>
-The table is not empty. </td></tr>
-</table>
-</dl>    </td>
-  </tr>
-</table>
-<a name="a9" doxytag="st_init.c::st_init"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-unsigned long st_init (
-          </b></td>
-          <td valign="bottom"><b>
-<a class="el" href="group__dbprim__smat.html#a0">smat_table_t</a> * <em>table</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-unsigned long <em>flags</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-<a class="el" href="group__dbprim__smat.html#a3">smat_resize_t</a> <em>resize</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-void * <em>extra</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-unsigned long <em>init_mod</em>&nbsp;)
-          </b></td>
-        </tr>
-
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-This function dynamically initializes a sparse matrix table.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>table</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__smat.html#a0">smat_table_t</a> to be initialized. </td></tr>
-<tr><td valign=top><em>flags</em>
-&nbsp;</td><td>
-A bit-wise OR of <a class="el" href="group__dbprim__hash.html#a16">HASH_FLAG_AUTOGROW</a> and <a class="el" href="group__dbprim__hash.html#a17">HASH_FLAG_AUTOSHRINK</a>. If neither behavior is desired, use 0. </td></tr>
-<tr><td valign=top><em>resize</em>
-&nbsp;</td><td>
-A <a class="el" href="group__dbprim__hash.html#a5">hash_resize_t</a> function pointer for determining whether resizing is permitted and/or for notification of the resize. </td></tr>
-<tr><td valign=top><em>extra</em>
-&nbsp;</td><td>
-Extra pointer data that should be associated with the sparse matrix table. </td></tr>
-<tr><td valign=top><em>init_mod</em>
-&nbsp;</td><td>
-An initial modulus for the table. This will presumably be extracted by <a class="el" href="group__dbprim__smat.html#a25">st_modulus</a>() in a previous invocation of the application. A 0 value is valid.</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Return values: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>DB_ERR_BADARGS</em>
-&nbsp;</td><td>
-An invalid argument was given. </td></tr>
-<tr><td valign=top><em>ENOMEM</em>
-&nbsp;</td><td>
-Unable to allocate memory. </td></tr>
-</table>
-</dl>    </td>
-  </tr>
-</table>
-<a name="a13" doxytag="st_iter.c::st_iter"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-unsigned long st_iter (
-          </b></td>
-          <td valign="bottom"><b>
-<a class="el" href="group__dbprim__smat.html#a0">smat_table_t</a> * <em>table</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-<a class="el" href="group__dbprim__smat.html#a4">smat_iter_t</a> <em>iter_func</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-void * <em>extra</em>&nbsp;)
-          </b></td>
-        </tr>
-
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This function iterates over every entry in a sparse matrix (in an unspecified order), executing the given <code>iter_func</code> on each entry.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>table</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__smat.html#a0">smat_table_t</a>. </td></tr>
-<tr><td valign=top><em>iter_func</em>
-&nbsp;</td><td>
-A pointer to a callback function used to perform user-specified actions on an entry in a sparse matrix. <code>NULL</code> is an invalid value. See the documentation for <a class="el" href="group__dbprim__smat.html#a4">smat_iter_t</a> for more information. </td></tr>
-<tr><td valign=top><em>extra</em>
-&nbsp;</td><td>
-A <code>void</code> pointer that will be passed to <code>iter_func</code>.</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Return values: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>DB_ERR_BADARGS</em>
-&nbsp;</td><td>
-An argument was invalid. </td></tr>
-<tr><td valign=top><em>DB_ERR_FROZEN</em>
-&nbsp;</td><td>
-The sparse matrix is frozen. </td></tr>
-</table>
-</dl>    </td>
-  </tr>
-</table>
-<a name="a11" doxytag="st_remove.c::st_remove"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-unsigned long st_remove (
-          </b></td>
-          <td valign="bottom"><b>
-<a class="el" href="group__dbprim__smat.html#a0">smat_table_t</a> * <em>table</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-<a class="el" href="group__dbprim__smat.html#a2">smat_entry_t</a> * <em>entry</em>&nbsp;)
-          </b></td>
-        </tr>
-
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This function removes the given entry from the specified sparse matrix.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>table</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__smat.html#a0">smat_table_t</a>. </td></tr>
-<tr><td valign=top><em>entry</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__smat.html#a2">smat_entry_t</a> to be removed from the table.</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Return values: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>DB_ERR_BADARGS</em>
-&nbsp;</td><td>
-An invalid argument was given. </td></tr>
-<tr><td valign=top><em>DB_ERR_WRONGTABLE</em>
-&nbsp;</td><td>
-Entry is not in this sparse matrix. </td></tr>
-<tr><td valign=top><em>DB_ERR_UNRECOVERABLE</em>
-&nbsp;</td><td>
-An unrecoverable error occurred while removing the entry from the table. </td></tr>
-</table>
-</dl>    </td>
-  </tr>
-</table>
-<a name="a15" doxytag="st_resize.c::st_resize"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
-  <tr>
-    <td class="md">
-      <table cellpadding="0" cellspacing="0" border="0">
-        <tr>
-          <td nowrap valign="top"><b> 
-unsigned long st_resize (
-          </b></td>
-          <td valign="bottom"><b>
-<a class="el" href="group__dbprim__smat.html#a0">smat_table_t</a> * <em>table</em>, 
-          </b></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td><b>
-unsigned long <em>new_size</em>&nbsp;)
-          </b></td>
-        </tr>
-
-      </table>
-    </td>
-  </tr>
-</table>
-<table cellspacing=5 cellpadding=0 border=0>
-  <tr>
-    <td>
-      &nbsp;
-    </td>
-    <td>
-
-<p>
-
-<p>
- This function resizes the hash table associated with a sparse matrix based on the <code>new_size</code> parameter. See the documentation for <a class="el" href="group__dbprim__hash.html#a13">ht_resize</a>() for more information.<dl compact><dt>
-<b>Parameters: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>table</em>
-&nbsp;</td><td>
-A pointer to a <a class="el" href="group__dbprim__smat.html#a0">smat_table_t</a>. </td></tr>
-<tr><td valign=top><em>new_size</em>
-&nbsp;</td><td>
-A new size value for the table.</td></tr>
-</table>
-</dl><dl compact><dt>
-<b>Return values: </b><dd>
-<table border=0 cellspacing=2 cellpadding=0>
-<tr><td valign=top><em>DB_ERR_BADARGS</em>
-&nbsp;</td><td>
-An argument was invalid. </td></tr>
-<tr><td valign=top><em>DB_ERR_FROZEN</em>
-&nbsp;</td><td>
-The table is currently frozen. </td></tr>
-<tr><td valign=top><em>DB_ERR_UNRECOVERABLE</em>
-&nbsp;</td><td>
-A catastrophic error was encountered. The table is now unusable. </td></tr>
-<tr><td valign=top><em>ENOMEM</em>
-&nbsp;</td><td>
-No memory could be allocated for the new bucket table. </td></tr>
-</table>
-</dl>    </td>
-  </tr>
-</table>
-<hr><address><small>Generated at Thu Mar 6 21:23:10 2003 for dbprim by
-<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.gif" alt="doxygen" align="middle" border=0 
-width=110 height=53></a>1.2.8.1 written by <a href="mailto:dimitri@stack.nl">Dimitri van Heesch</a>,
- &copy;&nbsp;1997-2001</small></address>
-</body>
-</html>
diff --git a/libs/dbprim/doc/html/index.html b/libs/dbprim/doc/html/index.html
deleted file mode 100644 (file)
index 9042fe4..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
-<title>Database Primitives Library</title>
-<link href="doxygen.css" rel="stylesheet" type="text/css">
-</head><body bgcolor="#ffffff">
-<!-- Generated by Doxygen 1.2.8.1 -->
-<center>
-<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="modules.html">Modules</a> &nbsp; </center>
-<hr><h1>Database Primitives Library</h1>
-<p>
- This library contains a set of database primitives. The primitives defined by this library include a powerful linked list abstraction, a hash table with optional automatic resizing, and a powerful and efficient sparse matrix implementation. All of the necessary declarations for using this library are found in the header file dbprim.h. For more information about the components of this library, see the module list.
-<p>
-<hr><address><small>Generated at Thu Mar 6 21:23:10 2003 for dbprim by
-<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.gif" alt="doxygen" align="middle" border=0 
-width=110 height=53></a>1.2.8.1 written by <a href="mailto:dimitri@stack.nl">Dimitri van Heesch</a>,
- &copy;&nbsp;1997-2001</small></address>
-</body>
-</html>
diff --git a/libs/dbprim/doc/html/modules.html b/libs/dbprim/doc/html/modules.html
deleted file mode 100644 (file)
index df6ede4..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
-<title>Module Index</title>
-<link href="doxygen.css" rel="stylesheet" type="text/css">
-</head><body bgcolor="#ffffff">
-<!-- Generated by Doxygen 1.2.8.1 -->
-<center>
-<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="modules.html">Modules</a> &nbsp; </center>
-<hr><h1>dbprim Modules</h1>Here is a list of all modules:<ul>
-<li><a class="el" href="group__dbprim__key.html">Database keys</a>
-<li><a class="el" href="group__dbprim__link.html">Linked lists</a>
-<li><a class="el" href="group__dbprim__hash.html">Hash tables</a>
-<li><a class="el" href="group__dbprim__smat.html">Sparse matrices</a>
-</ul>
-<hr><address><small>Generated at Thu Mar 6 21:23:10 2003 for dbprim by
-<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.gif" alt="doxygen" align="middle" border=0 
-width=110 height=53></a>1.2.8.1 written by <a href="mailto:dimitri@stack.nl">Dimitri van Heesch</a>,
- &copy;&nbsp;1997-2001</small></address>
-</body>
-</html>
diff --git a/libs/dbprim/doc/latex/Makefile b/libs/dbprim/doc/latex/Makefile
deleted file mode 100644 (file)
index f0e40cb..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-all: refman.dvi
-
-ps: refman.ps
-
-pdf: refman.pdf
-
-ps_2on1: refman_2on1.ps
-
-pdf_2on1: refman_2on1.pdf
-
-refman.ps: refman.dvi
-       dvips -o refman.ps refman.dvi
-
-refman.pdf: refman.ps
-       ps2pdf refman.ps refman.pdf
-
-refman_2on1.ps: refman.ps
-       psnup -2 refman.ps >refman_2on1.ps
-
-refman_2on1.pdf: refman_2on1.ps
-       ps2pdf refman_2on1.ps refman_2on1.pdf
-
-refman.dvi: refman.tex doxygen.sty
-       echo "Running latex..."
-       latex refman.tex
-       echo "Running makeindex..."
-       makeindex refman.idx
-       echo "Rerunning latex...."
-       latex refman.tex
-clean:
-       rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out
diff --git a/libs/dbprim/doc/latex/doxygen.sty b/libs/dbprim/doc/latex/doxygen.sty
deleted file mode 100644 (file)
index edea946..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{doxygen}
-\RequirePackage{calc}
-\RequirePackage{array}
-\pagestyle{fancyplain}
-\addtolength{\headwidth}{\marginparsep}
-\addtolength{\headwidth}{\marginparwidth}
-\newcommand{\clearemptydoublepage}{\newpage{\pagestyle{empty}\cleardoublepage}}
-\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
-\renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}}
-\lhead[\fancyplain{}{\bfseries\thepage}]
-        {\fancyplain{}{\bfseries\rightmark}}
-\rhead[\fancyplain{}{\bfseries\leftmark}]
-        {\fancyplain{}{\bfseries\thepage}}
-\rfoot[\fancyplain{}{\bfseries\scriptsize Generated at Thu Mar 6 21:23:10 2003 for dbprim by Doxygen written by Dimitri van Heesch \copyright~1997-2001}]{}
-\lfoot[]{\fancyplain{}{\bfseries\scriptsize Generated at Thu Mar 6 21:23:10 2003 for dbprim by Doxygen written by Dimitri van Heesch \copyright~1997-2001}}
-\cfoot{}
-\newenvironment{CompactList}
-{\begin{list}{}{
-  \setlength{\leftmargin}{0.5cm}
-  \setlength{\itemsep}{0pt}
-  \setlength{\parsep}{0pt}
-  \setlength{\topsep}{0pt}
-  \renewcommand{\makelabel}{}}}
-{\end{list}}
-\newenvironment{CompactItemize}
-{
-  \begin{itemize}
-  \setlength{\itemsep}{-3pt}
-  \setlength{\parsep}{0pt}
-  \setlength{\topsep}{0pt}
-  \setlength{\partopsep}{0pt}
-}
-{\end{itemize}}
-\newcommand{\PBS}[1]{\let\temp=\\#1\let\\=\temp}
-\newlength{\tmplength}
-\newenvironment{TabularC}[1]
-{
-\setlength{\tmplength}
-     {\linewidth/(#1)-\tabcolsep*2-\arrayrulewidth*(#1+1)/(#1)}
-      \par\begin{tabular*}{\linewidth}
-             {*{#1}{|>{\PBS\raggedright\hspace{0pt}}p{\the\tmplength}}|}
-}
-{\end{tabular*}\par}
-\newcommand{\entrylabel}[1]{
-   {\parbox[b]{\labelwidth-4pt}{\makebox[0pt][l]{\textbf{#1}}\\}}}
-\newenvironment{Desc}
-{\begin{list}{}
-  {
-    \settowidth{\labelwidth}{40pt}
-    \setlength{\leftmargin}{\labelwidth}
-    \setlength{\parsep}{0pt}
-    \setlength{\itemsep}{-4pt}
-    \renewcommand{\makelabel}{\entrylabel}
-  }
-}
-{\end{list}}
-\newenvironment{Indent}
-  {\begin{list}{}{\setlength{\leftmargin}{0.5cm}}
-      \item[]\ignorespaces}
-  {\unskip\end{list}}
-\setlength{\parindent}{0cm}
-\setlength{\parskip}{0.2cm}
-\addtocounter{secnumdepth}{1}
-\sloppy
diff --git a/libs/dbprim/doc/latex/group__dbprim__hash.tex b/libs/dbprim/doc/latex/group__dbprim__hash.tex
deleted file mode 100644 (file)
index 1144a5d..0000000
+++ /dev/null
@@ -1,744 +0,0 @@
-\section{Hash tables}
-\label{group__dbprim__hash}\index{Hash tables@{Hash tables}}
-Operations for hash tables. 
-\subsection*{Defines}
-\begin{CompactItemize}
-\item 
-\#define {\bf HASH\_\-FLAG\_\-AUTOGROW}
-\begin{CompactList}\small\item\em Flag permitting a hash table to automatically grow.\item\end{CompactList}\item 
-\#define {\bf HASH\_\-FLAG\_\-AUTOSHRINK}
-\begin{CompactList}\small\item\em Flag permitting a hash table to automatically shrink.\item\end{CompactList}\item 
-\#define {\bf HASH\_\-TABLE\_\-INIT}(flags, func, comp, resize, extra)
-\begin{CompactList}\small\item\em Hash table static initializer.\item\end{CompactList}\item 
-\#define {\bf ht\_\-verify}(table)
-\begin{CompactList}\small\item\em Hash table verification macro.\item\end{CompactList}\item 
-\#define {\bf ht\_\-flags}(table)
-\begin{CompactList}\small\item\em Hash table flags.\item\end{CompactList}\item 
-\#define {\bf ht\_\-frozen}(table)
-\begin{CompactList}\small\item\em Determine if a hash table is frozen.\item\end{CompactList}\item 
-\#define {\bf ht\_\-modulus}(table)
-\begin{CompactList}\small\item\em Hash table modulus.\item\end{CompactList}\item 
-\#define {\bf ht\_\-count}(table)
-\begin{CompactList}\small\item\em Hash table count.\item\end{CompactList}\item 
-\#define {\bf ht\_\-func}(table)
-\begin{CompactList}\small\item\em Hash table hash function.\item\end{CompactList}\item 
-\#define {\bf ht\_\-comp}(table)
-\begin{CompactList}\small\item\em Hash table comparison function.\item\end{CompactList}\item 
-\#define {\bf ht\_\-rsize}(table)
-\begin{CompactList}\small\item\em Hash table resize callback function.\item\end{CompactList}\item 
-\#define {\bf ht\_\-extra}(table)
-\begin{CompactList}\small\item\em Extra pointer data in a hash table.\item\end{CompactList}\item 
-\#define {\bf ht\_\-size}(table)
-\begin{CompactList}\small\item\em Hash table memory size.\item\end{CompactList}\item 
-\#define {\bf HASH\_\-ENTRY\_\-INIT}(value)
-\begin{CompactList}\small\item\em Hash table entry static initializer.\item\end{CompactList}\item 
-\#define {\bf he\_\-verify}(entry)
-\begin{CompactList}\small\item\em Hash table entry verification macro.\item\end{CompactList}\item 
-\#define {\bf he\_\-link}(entry)
-\begin{CompactList}\small\item\em Hash table entry linked list element.\item\end{CompactList}\item 
-\#define {\bf he\_\-flags}(entry)
-\begin{CompactList}\small\item\em Hash table entry flags.\item\end{CompactList}\item 
-\#define {\bf he\_\-table}(entry)
-\begin{CompactList}\small\item\em Hash table entry table pointer.\item\end{CompactList}\item 
-\#define {\bf he\_\-hash}(entry)
-\begin{CompactList}\small\item\em Hash table entry hash value.\item\end{CompactList}\item 
-\#define {\bf he\_\-key}(entry)
-\begin{CompactList}\small\item\em Hash table entry key pointer.\item\end{CompactList}\item 
-\#define {\bf he\_\-value}(entry)
-\begin{CompactList}\small\item\em Hash table entry value pointer.\item\end{CompactList}\item 
-\#define {\bf st\_\-rsize}(table)
-\begin{CompactList}\small\item\em Sparse matrix table resize callback function.\item\end{CompactList}\end{CompactItemize}
-\subsection*{Typedefs}
-\begin{CompactItemize}
-\item 
-typedef struct \_\-hash\_\-table\_\-s {\bf hash\_\-table\_\-t}
-\begin{CompactList}\small\item\em Hash table.\item\end{CompactList}\item 
-typedef struct \_\-hash\_\-entry\_\-s {\bf hash\_\-entry\_\-t}
-\begin{CompactList}\small\item\em Hash table entry.\item\end{CompactList}\item 
-typedef unsigned long ($\ast$ {\bf hash\_\-iter\_\-t} )({\bf hash\_\-table\_\-t} $\ast$, {\bf hash\_\-entry\_\-t} $\ast$, void $\ast$)
-\begin{CompactList}\small\item\em Hash table iteration callback.\item\end{CompactList}\item 
-typedef unsigned long ($\ast$ {\bf hash\_\-func\_\-t} )({\bf hash\_\-table\_\-t} $\ast$, {\bf db\_\-key\_\-t} $\ast$)
-\begin{CompactList}\small\item\em Hash function callback.\item\end{CompactList}\item 
-typedef unsigned long ($\ast$ {\bf hash\_\-comp\_\-t} )({\bf hash\_\-table\_\-t} $\ast$, {\bf db\_\-key\_\-t} $\ast$, {\bf db\_\-key\_\-t} $\ast$)
-\begin{CompactList}\small\item\em Hash table comparison callback.\item\end{CompactList}\item 
-typedef unsigned long ($\ast$ {\bf hash\_\-resize\_\-t} )({\bf hash\_\-table\_\-t} $\ast$, unsigned long)
-\begin{CompactList}\small\item\em Hash table resize callback.\item\end{CompactList}\end{CompactItemize}
-\subsection*{Functions}
-\begin{CompactItemize}
-\item 
-unsigned long {\bf ht\_\-init} ({\bf hash\_\-table\_\-t} $\ast$table, unsigned long flags, {\bf hash\_\-func\_\-t} func, {\bf hash\_\-comp\_\-t} comp, {\bf hash\_\-resize\_\-t} resize, void $\ast$extra, unsigned long init\_\-mod)
-\begin{CompactList}\small\item\em Dynamically initialize a hash table.\item\end{CompactList}\item 
-unsigned long {\bf ht\_\-add} ({\bf hash\_\-table\_\-t} $\ast$table, {\bf hash\_\-entry\_\-t} $\ast$entry, {\bf db\_\-key\_\-t} $\ast$key)
-\begin{CompactList}\small\item\em Add an entry to a hash table.\item\end{CompactList}\item 
-unsigned long {\bf ht\_\-move} ({\bf hash\_\-table\_\-t} $\ast$table, {\bf hash\_\-entry\_\-t} $\ast$entry, {\bf db\_\-key\_\-t} $\ast$key)
-\begin{CompactList}\small\item\em Move an entry in the hash table.\item\end{CompactList}\item 
-unsigned long {\bf ht\_\-remove} ({\bf hash\_\-table\_\-t} $\ast$table, {\bf hash\_\-entry\_\-t} $\ast$entry)
-\begin{CompactList}\small\item\em Remove an element from a hash table.\item\end{CompactList}\item 
-unsigned long {\bf ht\_\-find} ({\bf hash\_\-table\_\-t} $\ast$table, {\bf hash\_\-entry\_\-t} $\ast$$\ast$entry\_\-p, {\bf db\_\-key\_\-t} $\ast$key)
-\begin{CompactList}\small\item\em Find an entry in a hash table.\item\end{CompactList}\item 
-unsigned long {\bf ht\_\-iter} ({\bf hash\_\-table\_\-t} $\ast$table, {\bf hash\_\-iter\_\-t} iter\_\-func, void $\ast$extra)
-\begin{CompactList}\small\item\em Iterate over each entry in a hash table.\item\end{CompactList}\item 
-unsigned long {\bf ht\_\-flush} ({\bf hash\_\-table\_\-t} $\ast$table, {\bf hash\_\-iter\_\-t} flush\_\-func, void $\ast$extra)
-\begin{CompactList}\small\item\em Flush a hash table.\item\end{CompactList}\item 
-unsigned long {\bf ht\_\-resize} ({\bf hash\_\-table\_\-t} $\ast$table, unsigned long new\_\-size)
-\begin{CompactList}\small\item\em Resize a hash table.\item\end{CompactList}\item 
-unsigned long {\bf ht\_\-free} ({\bf hash\_\-table\_\-t} $\ast$table)
-\begin{CompactList}\small\item\em Free memory used by an empty hash table.\item\end{CompactList}\item 
-unsigned long {\bf he\_\-init} ({\bf hash\_\-entry\_\-t} $\ast$entry, void $\ast$value)
-\begin{CompactList}\small\item\em Dynamically initialize a hash table entry.\item\end{CompactList}\end{CompactItemize}
-
-
-\subsection{Detailed Description}
-Hash tables are a basic data structure used in building databases. Hash tables provide a means of storing data such that an arbitrary entry may be looked up efficiently. This library implements a hash table that may optionally grow and shrink to provide maximum efficiency. The implementation is with two kinds of caller-allocated structures--a {\bf hash\_\-table\_\-t} {\rm (p.\,\pageref{group__dbprim__hash_a0})} structure that describes the table and a {\bf hash\_\-entry\_\-t} {\rm (p.\,\pageref{group__dbprim__hash_a1})} structure for each entry in the table. The library allocates a bucket array which must be released with the {\bf ht\_\-free}() {\rm (p.\,\pageref{group__dbprim__hash_a14})} function when the hash table has been emptied. Additionally, the hash table may be manually resized with the {\bf ht\_\-resize}() {\rm (p.\,\pageref{group__dbprim__hash_a13})} function.
-
-Entries may be added to and removed from the table using the {\bf ht\_\-add}() {\rm (p.\,\pageref{group__dbprim__hash_a7})} and {\bf ht\_\-remove}() {\rm (p.\,\pageref{group__dbprim__hash_a9})} functions. Additionally, the key on a given entry may be changed using the {\bf ht\_\-move}() {\rm (p.\,\pageref{group__dbprim__hash_a8})} function. Of course, any given entry may be looked up using the {\bf ht\_\-find}() {\rm (p.\,\pageref{group__dbprim__hash_a10})} function, and {\bf ht\_\-iter}() {\rm (p.\,\pageref{group__dbprim__hash_a11})} will execute a user-defined function for each entry in the hash table (in an unspecified order). The {\bf ht\_\-flush}() {\rm (p.\,\pageref{group__dbprim__hash_a12})} function will remove all entries from the hash table, optionally executing a user-specified clean-up function. 
-
-\subsection{Define Documentation}
-\index{dbprim_hash@{dbprim\_\-hash}!HASH_ENTRY_INIT@{HASH\_\-ENTRY\_\-INIT}}
-\index{HASH_ENTRY_INIT@{HASH\_\-ENTRY\_\-INIT}!dbprim_hash@{dbprim\_\-hash}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define HASH\_\-ENTRY\_\-INIT(value)}\label{group__dbprim__hash_a29}
-
-
-
-
- This macro statically initializes a {\bf hash\_\-entry\_\-t} {\rm (p.\,\pageref{group__dbprim__hash_a1})}.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em value}]A pointer to {\tt void} representing the object associated with the entry. \end{description}
-\end{Desc}
-\index{dbprim_hash@{dbprim\_\-hash}!HASH_FLAG_AUTOGROW@{HASH\_\-FLAG\_\-AUTOGROW}}
-\index{HASH_FLAG_AUTOGROW@{HASH\_\-FLAG\_\-AUTOGROW}!dbprim_hash@{dbprim\_\-hash}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define HASH\_\-FLAG\_\-AUTOGROW}\label{group__dbprim__hash_a16}
-
-
-
-
- If passed in to {\bf HASH\_\-TABLE\_\-INIT}() {\rm (p.\,\pageref{group__dbprim__hash_a18})} or {\bf ht\_\-init}() {\rm (p.\,\pageref{group__dbprim__hash_a6})}, allows the hash table to grow automatically. \index{dbprim_hash@{dbprim\_\-hash}!HASH_FLAG_AUTOSHRINK@{HASH\_\-FLAG\_\-AUTOSHRINK}}
-\index{HASH_FLAG_AUTOSHRINK@{HASH\_\-FLAG\_\-AUTOSHRINK}!dbprim_hash@{dbprim\_\-hash}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define HASH\_\-FLAG\_\-AUTOSHRINK}\label{group__dbprim__hash_a17}
-
-
-
-
- If passed in to {\bf HASH\_\-TABLE\_\-INIT}() {\rm (p.\,\pageref{group__dbprim__hash_a18})} or {\bf ht\_\-init}() {\rm (p.\,\pageref{group__dbprim__hash_a6})}, allows the hash table to shrink automatically. \index{dbprim_hash@{dbprim\_\-hash}!HASH_TABLE_INIT@{HASH\_\-TABLE\_\-INIT}}
-\index{HASH_TABLE_INIT@{HASH\_\-TABLE\_\-INIT}!dbprim_hash@{dbprim\_\-hash}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define HASH\_\-TABLE\_\-INIT(flags, func, comp, resize, extra)}\label{group__dbprim__hash_a18}
-
-
-
-
- This macro statically initializes a {\bf hash\_\-table\_\-t} {\rm (p.\,\pageref{group__dbprim__hash_a0})}.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em flags}]A bit-wise OR of {\bf HASH\_\-FLAG\_\-AUTOGROW} {\rm (p.\,\pageref{group__dbprim__hash_a16})} and {\bf HASH\_\-FLAG\_\-AUTOSHRINK} {\rm (p.\,\pageref{group__dbprim__hash_a17})}. If neither behavior is desired, use 0. \item[
-{\em func}]A {\bf hash\_\-func\_\-t} {\rm (p.\,\pageref{group__dbprim__hash_a3})} function pointer for a hash function. \item[
-{\em comp}]A {\bf hash\_\-comp\_\-t} {\rm (p.\,\pageref{group__dbprim__hash_a4})} function pointer for a comparison function. \item[
-{\em resize}]A {\bf hash\_\-resize\_\-t} {\rm (p.\,\pageref{group__dbprim__hash_a5})} function pointer for determining whether resizing is permitted and/or for notification of the resize. \item[
-{\em extra}]Extra pointer data that should be associated with the hash table. \end{description}
-\end{Desc}
-\index{dbprim_hash@{dbprim\_\-hash}!he_flags@{he\_\-flags}}
-\index{he_flags@{he\_\-flags}!dbprim_hash@{dbprim\_\-hash}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define he\_\-flags(entry)}\label{group__dbprim__hash_a32}
-
-
-
-
- This macro retrieves a set of user-defined flags associated with the entry. It may be used as an lvalue to set those flags.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em entry}]A pointer to a {\bf hash\_\-entry\_\-t} {\rm (p.\,\pageref{group__dbprim__hash_a1})}.
-
-\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Returns: }]\par
-An {\tt unsigned long} containing the flags associated with the entry. \end{Desc}
-\index{dbprim_hash@{dbprim\_\-hash}!he_hash@{he\_\-hash}}
-\index{he_hash@{he\_\-hash}!dbprim_hash@{dbprim\_\-hash}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define he\_\-hash(entry)}\label{group__dbprim__hash_a34}
-
-
-
-
- This macro retrieves the hash value of the given hash entry. If the hash table has been resized, this value may not be the same as a previous value.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em entry}]A pointer to a {\bf hash\_\-entry\_\-t} {\rm (p.\,\pageref{group__dbprim__hash_a1})}.
-
-\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Returns: }]\par
-An {\tt unsigned long} containing the hash code for the entry. \end{Desc}
-\index{dbprim_hash@{dbprim\_\-hash}!he_key@{he\_\-key}}
-\index{he_key@{he\_\-key}!dbprim_hash@{dbprim\_\-hash}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define he\_\-key(entry)}\label{group__dbprim__hash_a35}
-
-
-
-
- This macro retrieves the key associated with the hash table entry.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em entry}]A pointer to a {\bf hash\_\-entry\_\-t} {\rm (p.\,\pageref{group__dbprim__hash_a1})}.
-
-\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Returns: }]\par
-A pointer to a {\bf db\_\-key\_\-t} {\rm (p.\,\pageref{group__dbprim__key_a0})}. \end{Desc}
-\index{dbprim_hash@{dbprim\_\-hash}!he_link@{he\_\-link}}
-\index{he_link@{he\_\-link}!dbprim_hash@{dbprim\_\-hash}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define he\_\-link(entry)}\label{group__dbprim__hash_a31}
-
-
-
-
- This macro provides access to the linked list element buried in the hash table entry. It should $\ast$not$\ast$ be used on entries currently in a hash table. The purpose of this macro is to allow an object containing a hash table entry to be placed upon a free list.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em entry}]A pointer to a {\bf hash\_\-entry\_\-t} {\rm (p.\,\pageref{group__dbprim__hash_a1})}.
-
-\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Returns: }]\par
-A pointer to a {\bf link\_\-elem\_\-t} {\rm (p.\,\pageref{group__dbprim__link_a1})}. \end{Desc}
-\index{dbprim_hash@{dbprim\_\-hash}!he_table@{he\_\-table}}
-\index{he_table@{he\_\-table}!dbprim_hash@{dbprim\_\-hash}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define he\_\-table(entry)}\label{group__dbprim__hash_a33}
-
-
-
-
- This macro retrieves a pointer to the hash table the entry is in.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em entry}]A pointer to a {\bf hash\_\-entry\_\-t} {\rm (p.\,\pageref{group__dbprim__hash_a1})}.
-
-\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Returns: }]\par
-A pointer to a {\bf hash\_\-table\_\-t} {\rm (p.\,\pageref{group__dbprim__hash_a0})}. \end{Desc}
-\index{dbprim_hash@{dbprim\_\-hash}!he_value@{he\_\-value}}
-\index{he_value@{he\_\-value}!dbprim_hash@{dbprim\_\-hash}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define he\_\-value(entry)}\label{group__dbprim__hash_a36}
-
-
-
-
- This macro retrieves the value associated with the hash table entry. It may be treated as an lvalue to change that value. Care should be taken when using this option.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em entry}]A pointer to a {\bf hash\_\-entry\_\-t} {\rm (p.\,\pageref{group__dbprim__hash_a1})}.
-
-\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Returns: }]\par
-A pointer to {\tt void} representing the value associated with this entry. \end{Desc}
-\index{dbprim_hash@{dbprim\_\-hash}!he_verify@{he\_\-verify}}
-\index{he_verify@{he\_\-verify}!dbprim_hash@{dbprim\_\-hash}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define he\_\-verify(entry)}\label{group__dbprim__hash_a30}
-
-
-
-
- This macro verifies that a given pointer actually does point to a hash table entry.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em entry}]A pointer to a {\bf hash\_\-entry\_\-t} {\rm (p.\,\pageref{group__dbprim__hash_a1})}.
-
-\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Returns: }]\par
-Boolean true if {\tt entry} is a valid hash table entry or false otherwise. \end{Desc}
-\index{dbprim_hash@{dbprim\_\-hash}!ht_comp@{ht\_\-comp}}
-\index{ht_comp@{ht\_\-comp}!dbprim_hash@{dbprim\_\-hash}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define ht\_\-comp(table)}\label{group__dbprim__hash_a25}
-
-
-
-
- This macro retrieves the comparison function pointer.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em table}]A pointer to a {\bf hash\_\-table\_\-t} {\rm (p.\,\pageref{group__dbprim__hash_a0})}.
-
-\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Returns: }]\par
-A {\bf hash\_\-comp\_\-t} {\rm (p.\,\pageref{group__dbprim__hash_a4})}. \end{Desc}
-\index{dbprim_hash@{dbprim\_\-hash}!ht_count@{ht\_\-count}}
-\index{ht_count@{ht\_\-count}!dbprim_hash@{dbprim\_\-hash}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define ht\_\-count(table)}\label{group__dbprim__hash_a23}
-
-
-
-
- This macro retrieves the total number of items actually in the hash table.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em table}]A pointer to a {\bf hash\_\-table\_\-t} {\rm (p.\,\pageref{group__dbprim__hash_a0})}.
-
-\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Returns: }]\par
-An {\tt unsigned long} containing a count of the number of items in the hash table. \end{Desc}
-\index{dbprim_hash@{dbprim\_\-hash}!ht_extra@{ht\_\-extra}}
-\index{ht_extra@{ht\_\-extra}!dbprim_hash@{dbprim\_\-hash}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define ht\_\-extra(table)}\label{group__dbprim__hash_a27}
-
-
-
-
- This macro retrieves the extra pointer data associated with a particular hash table.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em table}]A pointer to a {\bf hash\_\-table\_\-t} {\rm (p.\,\pageref{group__dbprim__hash_a0})}.
-
-\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Returns: }]\par
-A pointer to {\tt void}. \end{Desc}
-\index{dbprim_hash@{dbprim\_\-hash}!ht_flags@{ht\_\-flags}}
-\index{ht_flags@{ht\_\-flags}!dbprim_hash@{dbprim\_\-hash}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define ht\_\-flags(table)}\label{group__dbprim__hash_a20}
-
-
-
-
- This macro retrieves the flags associated with the hash table. Only {\bf HASH\_\-FLAG\_\-AUTOGROW} {\rm (p.\,\pageref{group__dbprim__hash_a16})} and {\bf HASH\_\-FLAG\_\-AUTOSHRINK} {\rm (p.\,\pageref{group__dbprim__hash_a17})} have any meaning to the application; all other bits are reserved for use in the library. This macro may be used as an lvalue, but care must be taken to avoid modifying the library-specific bits.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em table}]A pointer to a {\bf hash\_\-table\_\-t} {\rm (p.\,\pageref{group__dbprim__hash_a0})}.
-
-\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Returns: }]\par
-An {\tt unsigned long} containing the flags for the hash table. \end{Desc}
-\index{dbprim_hash@{dbprim\_\-hash}!ht_frozen@{ht\_\-frozen}}
-\index{ht_frozen@{ht\_\-frozen}!dbprim_hash@{dbprim\_\-hash}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define ht\_\-frozen(table)}\label{group__dbprim__hash_a21}
-
-
-
-
- This macro returns a non-zero value if the table is currently frozen. The hash table may be frozen if there is an iteration in progress.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em table}]A pointer to a {\bf hash\_\-table\_\-t} {\rm (p.\,\pageref{group__dbprim__hash_a0})}.
-
-\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Returns: }]\par
-A zero value if the table is not frozen or a non-zero value if the table is frozen. \end{Desc}
-\index{dbprim_hash@{dbprim\_\-hash}!ht_func@{ht\_\-func}}
-\index{ht_func@{ht\_\-func}!dbprim_hash@{dbprim\_\-hash}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define ht\_\-func(table)}\label{group__dbprim__hash_a24}
-
-
-
-
- This macro retrieves the hash function pointer.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em table}]A pointer to a {\bf hash\_\-table\_\-t} {\rm (p.\,\pageref{group__dbprim__hash_a0})}.
-
-\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Returns: }]\par
-A {\bf hash\_\-func\_\-t} {\rm (p.\,\pageref{group__dbprim__hash_a3})}. \end{Desc}
-\index{dbprim_hash@{dbprim\_\-hash}!ht_modulus@{ht\_\-modulus}}
-\index{ht_modulus@{ht\_\-modulus}!dbprim_hash@{dbprim\_\-hash}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define ht\_\-modulus(table)}\label{group__dbprim__hash_a22}
-
-
-
-
- This macro retrieves the number of buckets allocated for the hash table. An application may wish to save this value between invocations to avoid the overhead of growing the table while filling it with data.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em table}]A pointer to a {\bf hash\_\-table\_\-t} {\rm (p.\,\pageref{group__dbprim__hash_a0})}.
-
-\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Returns: }]\par
-An {\tt unsigned long} containing the number of buckets allocated for the hash table. \end{Desc}
-\index{dbprim_hash@{dbprim\_\-hash}!ht_rsize@{ht\_\-rsize}}
-\index{ht_rsize@{ht\_\-rsize}!dbprim_hash@{dbprim\_\-hash}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define ht\_\-rsize(table)}\label{group__dbprim__hash_a26}
-
-
-
-
- This macro retrieves the resize callback function pointer.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em table}]A pointer to a {\bf hash\_\-table\_\-t} {\rm (p.\,\pageref{group__dbprim__hash_a0})}.
-
-\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Returns: }]\par
-A {\bf hash\_\-resize\_\-t} {\rm (p.\,\pageref{group__dbprim__hash_a5})}. \end{Desc}
-\index{dbprim_hash@{dbprim\_\-hash}!ht_size@{ht\_\-size}}
-\index{ht_size@{ht\_\-size}!dbprim_hash@{dbprim\_\-hash}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define ht\_\-size(table)}\label{group__dbprim__hash_a28}
-
-
-
-
- This macro returns the physical size of the bucket array allocated by the library for this hash table.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em table}]A pointer to a {\bf hash\_\-table\_\-t} {\rm (p.\,\pageref{group__dbprim__hash_a0})}.
-
-\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Returns: }]\par
-A {\tt size\_\-t}. \end{Desc}
-\index{dbprim_hash@{dbprim\_\-hash}!ht_verify@{ht\_\-verify}}
-\index{ht_verify@{ht\_\-verify}!dbprim_hash@{dbprim\_\-hash}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define ht\_\-verify(table)}\label{group__dbprim__hash_a19}
-
-
-
-
- This macro verifies that a given pointer actually does point to a hash table.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em table}]A pointer to a {\bf hash\_\-table\_\-t} {\rm (p.\,\pageref{group__dbprim__hash_a0})}.
-
-\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Returns: }]\par
-Boolean true if {\tt table} is a valid hash table or false otherwise. \end{Desc}
-\index{dbprim_hash@{dbprim\_\-hash}!st_rsize@{st\_\-rsize}}
-\index{st_rsize@{st\_\-rsize}!dbprim_hash@{dbprim\_\-hash}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define st\_\-rsize(table)}\label{group__dbprim__hash_a37}
-
-
-
-
- This macro retrieves the resize callback function pointer.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em table}]A pointer to a {\bf smat\_\-table\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a0})}.
-
-\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Returns: }]\par
-A {\bf smat\_\-resize\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a3})}. \end{Desc}
-
-
-\subsection{Typedef Documentation}
-\index{dbprim_hash@{dbprim\_\-hash}!hash_comp_t@{hash\_\-comp\_\-t}}
-\index{hash_comp_t@{hash\_\-comp\_\-t}!dbprim_hash@{dbprim\_\-hash}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}typedef unsigned long($\ast$ hash\_\-comp\_\-t)({\bf hash\_\-table\_\-t} $\ast$, {\bf db\_\-key\_\-t} $\ast$, {\bf db\_\-key\_\-t} $\ast$)}\label{group__dbprim__hash_a4}
-
-
-
-
- This function pointer references a callback used to compare entries in a hash table. It should return 0 for identical entries and non-zero otherwise. No assumptions should be made about the order in which the two keys are passed to this function. \index{dbprim_hash@{dbprim\_\-hash}!hash_entry_t@{hash\_\-entry\_\-t}}
-\index{hash_entry_t@{hash\_\-entry\_\-t}!dbprim_hash@{dbprim\_\-hash}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}typedef struct \_\-hash\_\-entry\_\-s hash\_\-entry\_\-t}\label{group__dbprim__hash_a1}
-
-
-
-
- This structure represents a single entry of a hash table. \index{dbprim_hash@{dbprim\_\-hash}!hash_func_t@{hash\_\-func\_\-t}}
-\index{hash_func_t@{hash\_\-func\_\-t}!dbprim_hash@{dbprim\_\-hash}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}typedef unsigned long($\ast$ hash\_\-func\_\-t)({\bf hash\_\-table\_\-t} $\ast$, {\bf db\_\-key\_\-t} $\ast$)}\label{group__dbprim__hash_a3}
-
-
-
-
- This function is associated with a hash table, and is responsible for generating a hash value. The full 32-bit range of an {\tt unsigned long} should be used--do $\ast$not$\ast$ reduce the hash value by the modulus of the hash table. \index{dbprim_hash@{dbprim\_\-hash}!hash_iter_t@{hash\_\-iter\_\-t}}
-\index{hash_iter_t@{hash\_\-iter\_\-t}!dbprim_hash@{dbprim\_\-hash}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}typedef unsigned long($\ast$ hash\_\-iter\_\-t)({\bf hash\_\-table\_\-t} $\ast$, {\bf hash\_\-entry\_\-t} $\ast$, void $\ast$)}\label{group__dbprim__hash_a2}
-
-
-
-
- This function pointer references a callback used by {\bf ht\_\-iter}() {\rm (p.\,\pageref{group__dbprim__hash_a11})} and {\bf ht\_\-flush}() {\rm (p.\,\pageref{group__dbprim__hash_a12})}. It should return 0 for success. A non-zero return value will terminate the operation and will become the return value of the {\bf ht\_\-iter}() {\rm (p.\,\pageref{group__dbprim__hash_a11})} or {\bf ht\_\-flush}() {\rm (p.\,\pageref{group__dbprim__hash_a12})} call. \index{dbprim_hash@{dbprim\_\-hash}!hash_resize_t@{hash\_\-resize\_\-t}}
-\index{hash_resize_t@{hash\_\-resize\_\-t}!dbprim_hash@{dbprim\_\-hash}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}typedef unsigned long($\ast$ hash\_\-resize\_\-t)({\bf hash\_\-table\_\-t} $\ast$, unsigned long)}\label{group__dbprim__hash_a5}
-
-
-
-
- This function pointer references a callback that will be called with both the old and new hash table sizes whenever a hash table is resized. It should return non-zero only when the resize should be inhibited. \index{dbprim_hash@{dbprim\_\-hash}!hash_table_t@{hash\_\-table\_\-t}}
-\index{hash_table_t@{hash\_\-table\_\-t}!dbprim_hash@{dbprim\_\-hash}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}typedef struct \_\-hash\_\-table\_\-s hash\_\-table\_\-t}\label{group__dbprim__hash_a0}
-
-
-
-
- This structure is the basis of all hash tables maintained by this library. 
-
-\subsection{Function Documentation}
-\index{dbprim_hash@{dbprim\_\-hash}!he_init@{he\_\-init}}
-\index{he_init@{he\_\-init}!dbprim_hash@{dbprim\_\-hash}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}unsigned long he\_\-init ({\bf hash\_\-entry\_\-t} $\ast$ {\em entry}, void $\ast$ {\em value})}\label{group__dbprim__hash_a15}
-
-
-
-
- This function dynamically initializes a hash table entry.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em entry}]A pointer to a {\bf hash\_\-entry\_\-t} {\rm (p.\,\pageref{group__dbprim__hash_a1})} to be initialized. \item[
-{\em value}]A pointer to {\tt void} which will be the value of the hash table entry.\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Return values: }]\par
-\begin{description}
-\item[
-{\em DB\_\-ERR\_\-BADARGS}]A {\tt NULL} pointer was passed for {\tt entry}. \end{description}
-\end{Desc}
-\index{dbprim_hash@{dbprim\_\-hash}!ht_add@{ht\_\-add}}
-\index{ht_add@{ht\_\-add}!dbprim_hash@{dbprim\_\-hash}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}unsigned long ht\_\-add ({\bf hash\_\-table\_\-t} $\ast$ {\em table}, {\bf hash\_\-entry\_\-t} $\ast$ {\em entry}, {\bf db\_\-key\_\-t} $\ast$ {\em key})}\label{group__dbprim__hash_a7}
-
-
-
-
- This function adds an entry to a hash table.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em table}]A pointer to a {\bf hash\_\-table\_\-t} {\rm (p.\,\pageref{group__dbprim__hash_a0})}. \item[
-{\em entry}]A pointer to a {\bf hash\_\-entry\_\-t} {\rm (p.\,\pageref{group__dbprim__hash_a1})} to be added to the table. \item[
-{\em key}]A pointer to a {\bf db\_\-key\_\-t} {\rm (p.\,\pageref{group__dbprim__key_a0})} containing the key for the entry.\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Return values: }]\par
-\begin{description}
-\item[
-{\em DB\_\-ERR\_\-BADARGS}]An invalid argument was given. \item[
-{\em DB\_\-ERR\_\-BUSY}]The entry is already in a table. \item[
-{\em DB\_\-ERR\_\-FROZEN}]The table is currently frozen. \item[
-{\em DB\_\-ERR\_\-NOTABLE}]The bucket table has not been allocated and automatic growth is not enabled. \item[
-{\em DB\_\-ERR\_\-DUPLICATE}]The entry is a duplicate of an existing entry. \item[
-{\em DB\_\-ERR\_\-UNRECOVERABLE}]An unrecoverable error occurred while resizing the table. \end{description}
-\end{Desc}
-\index{dbprim_hash@{dbprim\_\-hash}!ht_find@{ht\_\-find}}
-\index{ht_find@{ht\_\-find}!dbprim_hash@{dbprim\_\-hash}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}unsigned long ht\_\-find ({\bf hash\_\-table\_\-t} $\ast$ {\em table}, {\bf hash\_\-entry\_\-t} $\ast$$\ast$ {\em entry\_\-p}, {\bf db\_\-key\_\-t} $\ast$ {\em key})}\label{group__dbprim__hash_a10}
-
-
-
-
- This function looks up an entry matching the given {\tt key}.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em table}]A pointer to a {\bf hash\_\-table\_\-t} {\rm (p.\,\pageref{group__dbprim__hash_a0})}. \item[
-{\em entry\_\-p}]A pointer to a pointer to a {\bf hash\_\-entry\_\-t} {\rm (p.\,\pageref{group__dbprim__hash_a1})}. This is a result parameter. If {\tt NULL} is passed, the lookup will be performed and an appropriate error code returned.  \item[
-{\em key}]A pointer to a {\bf db\_\-key\_\-t} {\rm (p.\,\pageref{group__dbprim__key_a0})} describing the item to find.\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Return values: }]\par
-\begin{description}
-\item[
-{\em DB\_\-ERR\_\-BADARGS}]An argument was invalid. \item[
-{\em DB\_\-ERR\_\-NOENTRY}]No matching entry was found. \end{description}
-\end{Desc}
-\index{dbprim_hash@{dbprim\_\-hash}!ht_flush@{ht\_\-flush}}
-\index{ht_flush@{ht\_\-flush}!dbprim_hash@{dbprim\_\-hash}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}unsigned long ht\_\-flush ({\bf hash\_\-table\_\-t} $\ast$ {\em table}, {\bf hash\_\-iter\_\-t} {\em flush\_\-func}, void $\ast$ {\em extra})}\label{group__dbprim__hash_a12}
-
-
-
-
- This function flushes a hash table--that is, it removes each entry from the table. If a {\tt flush\_\-func} is specified, it will be called on the entry after it has been removed from the table, and may safely call {\tt free()}.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em table}]A pointer to a {\bf hash\_\-table\_\-t} {\rm (p.\,\pageref{group__dbprim__hash_a0})}. \item[
-{\em flush\_\-func}]A pointer to a callback function used to perform user-specified actions on an entry after removing it from the table. May be {\tt NULL}. See the documentation for {\bf hash\_\-iter\_\-t} {\rm (p.\,\pageref{group__dbprim__hash_a2})} for more information. \item[
-{\em extra}]A {\tt void} pointer that will be passed to {\tt flush\_\-func}.\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Return values: }]\par
-\begin{description}
-\item[
-{\em DB\_\-ERR\_\-BADARGS}]An argument was invalid. \item[
-{\em DB\_\-ERR\_\-FROZEN}]The hash table is frozen. \end{description}
-\end{Desc}
-\index{dbprim_hash@{dbprim\_\-hash}!ht_free@{ht\_\-free}}
-\index{ht_free@{ht\_\-free}!dbprim_hash@{dbprim\_\-hash}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}unsigned long ht\_\-free ({\bf hash\_\-table\_\-t} $\ast$ {\em table})}\label{group__dbprim__hash_a14}
-
-
-
-
- This function releases the memory used by the bucket table in an empty hash table.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em table}]A pointer to a {\bf hash\_\-table\_\-t} {\rm (p.\,\pageref{group__dbprim__hash_a0})}.\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Return values: }]\par
-\begin{description}
-\item[
-{\em DB\_\-ERR\_\-BADARGS}]An invalid argument was given. \item[
-{\em DB\_\-ERR\_\-FROZEN}]The table is frozen. \item[
-{\em DB\_\-ERR\_\-NOTEMPTY}]The table is not empty. \end{description}
-\end{Desc}
-\index{dbprim_hash@{dbprim\_\-hash}!ht_init@{ht\_\-init}}
-\index{ht_init@{ht\_\-init}!dbprim_hash@{dbprim\_\-hash}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}unsigned long ht\_\-init ({\bf hash\_\-table\_\-t} $\ast$ {\em table}, unsigned long {\em flags}, {\bf hash\_\-func\_\-t} {\em func}, {\bf hash\_\-comp\_\-t} {\em comp}, {\bf hash\_\-resize\_\-t} {\em resize}, void $\ast$ {\em extra}, unsigned long {\em init\_\-mod})}\label{group__dbprim__hash_a6}
-
-
-
-
- This function dynamically initializes a hash table.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em table}]A pointer to a {\bf hash\_\-table\_\-t} {\rm (p.\,\pageref{group__dbprim__hash_a0})} to be initialized. \item[
-{\em flags}]A bit-wise OR of {\bf HASH\_\-FLAG\_\-AUTOGROW} {\rm (p.\,\pageref{group__dbprim__hash_a16})} and {\bf HASH\_\-FLAG\_\-AUTOSHRINK} {\rm (p.\,\pageref{group__dbprim__hash_a17})}. If neither behavior is desired, use 0. \item[
-{\em func}]A {\bf hash\_\-func\_\-t} {\rm (p.\,\pageref{group__dbprim__hash_a3})} function pointer for a hash function. \item[
-{\em comp}]A {\bf hash\_\-comp\_\-t} {\rm (p.\,\pageref{group__dbprim__hash_a4})} function pointer for a comparison function. \item[
-{\em resize}]A {\bf hash\_\-resize\_\-t} {\rm (p.\,\pageref{group__dbprim__hash_a5})} function pointer for determining whether resizing is permitted and/or for notification of the resize. \item[
-{\em extra}]Extra pointer data that should be associated with the hash table. \item[
-{\em init\_\-mod}]An initial modulus for the table. This will presumably be extracted by {\bf ht\_\-modulus}() {\rm (p.\,\pageref{group__dbprim__hash_a22})} in a previous invocation of the application. A 0 value is valid.\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Return values: }]\par
-\begin{description}
-\item[
-{\em DB\_\-ERR\_\-BADARGS}]An invalid argument was given. \item[
-{\em ENOMEM}]Unable to allocate memory. \end{description}
-\end{Desc}
-\index{dbprim_hash@{dbprim\_\-hash}!ht_iter@{ht\_\-iter}}
-\index{ht_iter@{ht\_\-iter}!dbprim_hash@{dbprim\_\-hash}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}unsigned long ht\_\-iter ({\bf hash\_\-table\_\-t} $\ast$ {\em table}, {\bf hash\_\-iter\_\-t} {\em iter\_\-func}, void $\ast$ {\em extra})}\label{group__dbprim__hash_a11}
-
-
-
-
- This function iterates over every entry in a hash table (in an unspecified order), executing the given {\tt iter\_\-func} on each entry.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em table}]A pointer to a {\bf hash\_\-table\_\-t} {\rm (p.\,\pageref{group__dbprim__hash_a0})}. \item[
-{\em iter\_\-func}]A pointer to a callback function used to perform user-specified actions on an entry in a hash table. {\tt NULL} is an invalid value. See the documentation for {\bf hash\_\-iter\_\-t} {\rm (p.\,\pageref{group__dbprim__hash_a2})} for more information. \item[
-{\em extra}]A {\tt void} pointer that will be passed to {\tt iter\_\-func}.\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Return values: }]\par
-\begin{description}
-\item[
-{\em DB\_\-ERR\_\-BADARGS}]An argument was invalid. \item[
-{\em DB\_\-ERR\_\-FROZEN}]The hash table is frozen. \end{description}
-\end{Desc}
-\index{dbprim_hash@{dbprim\_\-hash}!ht_move@{ht\_\-move}}
-\index{ht_move@{ht\_\-move}!dbprim_hash@{dbprim\_\-hash}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}unsigned long ht\_\-move ({\bf hash\_\-table\_\-t} $\ast$ {\em table}, {\bf hash\_\-entry\_\-t} $\ast$ {\em entry}, {\bf db\_\-key\_\-t} $\ast$ {\em key})}\label{group__dbprim__hash_a8}
-
-
-
-
- This function moves an existing entry in the hash table to correspond to the new key.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em table}]A pointer to a {\bf hash\_\-table\_\-t} {\rm (p.\,\pageref{group__dbprim__hash_a0})}. \item[
-{\em entry}]A pointer to a {\bf hash\_\-entry\_\-t} {\rm (p.\,\pageref{group__dbprim__hash_a1})} to be moved. It must already be in the hash table. \item[
-{\em key}]A pointer to a {\bf db\_\-key\_\-t} {\rm (p.\,\pageref{group__dbprim__key_a0})} describing the new key for the entry.\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Return values: }]\par
-\begin{description}
-\item[
-{\em DB\_\-ERR\_\-BADARGS}]An invalid argument was given. \item[
-{\em DB\_\-ERR\_\-UNUSED}]Entry is not in a hash table. \item[
-{\em DB\_\-ERR\_\-WRONGTABLE}]Entry is not in this hash table. \item[
-{\em DB\_\-ERR\_\-FROZEN}]Hash table is frozen. \item[
-{\em DB\_\-ERR\_\-DUPLICATE}]New key is a duplicate of an existing key. \item[
-{\em DB\_\-ERR\_\-READDFAILED}]Unable to re-add entry to table. \end{description}
-\end{Desc}
-\index{dbprim_hash@{dbprim\_\-hash}!ht_remove@{ht\_\-remove}}
-\index{ht_remove@{ht\_\-remove}!dbprim_hash@{dbprim\_\-hash}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}unsigned long ht\_\-remove ({\bf hash\_\-table\_\-t} $\ast$ {\em table}, {\bf hash\_\-entry\_\-t} $\ast$ {\em entry})}\label{group__dbprim__hash_a9}
-
-
-
-
- This function removes the given element from the specified hash table.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em table}]A pointer to a {\bf hash\_\-table\_\-t} {\rm (p.\,\pageref{group__dbprim__hash_a0})}. \item[
-{\em entry}]A pointer to a {\bf hash\_\-entry\_\-t} {\rm (p.\,\pageref{group__dbprim__hash_a1})} to be removed from the table.\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Return values: }]\par
-\begin{description}
-\item[
-{\em DB\_\-ERR\_\-BADARGS}]An invalid argument was given. \item[
-{\em DB\_\-ERR\_\-UNUSED}]Entry is not in a hash table. \item[
-{\em DB\_\-ERR\_\-WRONGTABLE}]Entry is not in this hash table. \item[
-{\em DB\_\-ERR\_\-FROZEN}]Hash table is frozen. \item[
-{\em DB\_\-ERR\_\-UNRECOVERABLE}]An unrecoverable error occurred while resizing the table. \end{description}
-\end{Desc}
-\index{dbprim_hash@{dbprim\_\-hash}!ht_resize@{ht\_\-resize}}
-\index{ht_resize@{ht\_\-resize}!dbprim_hash@{dbprim\_\-hash}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}unsigned long ht\_\-resize ({\bf hash\_\-table\_\-t} $\ast$ {\em table}, unsigned long {\em new\_\-size})}\label{group__dbprim__hash_a13}
-
-
-
-
- This function resizes a hash table to the given {\tt new\_\-size}. If {\tt new\_\-size} is 0, then an appropriate new size based on the current number of items in the hash table will be selected.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em table}]A pointer to a {\bf hash\_\-table\_\-t} {\rm (p.\,\pageref{group__dbprim__hash_a0})}. \item[
-{\em new\_\-size}]A new size value for the table.\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Return values: }]\par
-\begin{description}
-\item[
-{\em DB\_\-ERR\_\-BADARGS}]An argument was invalid. \item[
-{\em DB\_\-ERR\_\-FROZEN}]The table is currently frozen. \item[
-{\em DB\_\-ERR\_\-UNRECOVERABLE}]A catastrophic error was encountered. The table is now unusable. \item[
-{\em ENOMEM}]No memory could be allocated for the new bucket table. \end{description}
-\end{Desc}
diff --git a/libs/dbprim/doc/latex/group__dbprim__key.tex b/libs/dbprim/doc/latex/group__dbprim__key.tex
deleted file mode 100644 (file)
index 053a10a..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-\section{Database keys}
-\label{group__dbprim__key}\index{Database keys@{Database keys}}
-\subsection*{Defines}
-\begin{CompactItemize}
-\item 
-\#define {\bf DB\_\-KEY\_\-INIT}(key, size)
-\begin{CompactList}\small\item\em Database key static initializer.\item\end{CompactList}\item 
-\#define {\bf dk\_\-key}(key)
-\begin{CompactList}\small\item\em Database key accessor macro.\item\end{CompactList}\item 
-\#define {\bf dk\_\-len}(key)
-\begin{CompactList}\small\item\em Database key length accessor macro.\item\end{CompactList}\end{CompactItemize}
-\subsection*{Typedefs}
-\begin{CompactItemize}
-\item 
-typedef struct \_\-db\_\-key\_\-s {\bf db\_\-key\_\-t}
-\begin{CompactList}\small\item\em Database key.\item\end{CompactList}\end{CompactItemize}
-
-
-\subsection{Detailed Description}
-This module contains interfaces common to all database modules--mainly the macros concerned with manipulating database keys and the definition of the key structure.
-
-The key may be any arbitrary pointer, including a pointer to a string. Everything that handles a key either copies the contents of the {\bf db\_\-key\_\-t} {\rm (p.\,\pageref{group__dbprim__key_a0})} structure or passes it to a user-defined function. If required, as in the case of a string, a length may also be represented in the key structure. 
-
-\subsection{Define Documentation}
-\index{dbprim_key@{dbprim\_\-key}!DB_KEY_INIT@{DB\_\-KEY\_\-INIT}}
-\index{DB_KEY_INIT@{DB\_\-KEY\_\-INIT}!dbprim_key@{dbprim\_\-key}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define DB\_\-KEY\_\-INIT(key, size)}\label{group__dbprim__key_a1}
-
-
-
-
- This macro allows a {\bf db\_\-key\_\-t} {\rm (p.\,\pageref{group__dbprim__key_a0})} to be initialized statically.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em key}]A pointer to the key. \item[
-{\em size}]Size of the key. \end{description}
-\end{Desc}
-\index{dbprim_key@{dbprim\_\-key}!dk_key@{dk\_\-key}}
-\index{dk_key@{dk\_\-key}!dbprim_key@{dbprim\_\-key}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define dk\_\-key(key)}\label{group__dbprim__key_a2}
-
-
-
-
- This macro allows access to the key field of a {\bf db\_\-key\_\-t} {\rm (p.\,\pageref{group__dbprim__key_a0})}. It may be used as an lvalue in order to assign a key to a {\bf db\_\-key\_\-t} {\rm (p.\,\pageref{group__dbprim__key_a0})}.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em key}]A pointer to a {\bf db\_\-key\_\-t} {\rm (p.\,\pageref{group__dbprim__key_a0})}. \end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Returns: }]\par
-A pointer to a key ({\tt void $\ast$}). \end{Desc}
-\index{dbprim_key@{dbprim\_\-key}!dk_len@{dk\_\-len}}
-\index{dk_len@{dk\_\-len}!dbprim_key@{dbprim\_\-key}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define dk\_\-len(key)}\label{group__dbprim__key_a3}
-
-
-
-
- This macro allows access to the key length field of a {\bf db\_\-key\_\-t} {\rm (p.\,\pageref{group__dbprim__key_a0})}. It may be used as an lvalue in order to assign a length to a {\bf db\_\-key\_\-t} {\rm (p.\,\pageref{group__dbprim__key_a0})}.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em key}]A pointer to a {\bf db\_\-key\_\-t} {\rm (p.\,\pageref{group__dbprim__key_a0})}. \end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Returns: }]\par
-An {\tt int} describing the length of the key. \end{Desc}
-
-
-\subsection{Typedef Documentation}
-\index{dbprim_key@{dbprim\_\-key}!db_key_t@{db\_\-key\_\-t}}
-\index{db_key_t@{db\_\-key\_\-t}!dbprim_key@{dbprim\_\-key}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}typedef struct \_\-db\_\-key\_\-s db\_\-key\_\-t}\label{group__dbprim__key_a0}
-
-
-
-
- This structure is a generic key containing a void $\ast$ pointer and a length parameter. It should be accessed with $\ast$ {\bf dk\_\-key}() {\rm (p.\,\pageref{group__dbprim__key_a2})} and {\bf dk\_\-len}() {\rm (p.\,\pageref{group__dbprim__key_a3})}. 
\ No newline at end of file
diff --git a/libs/dbprim/doc/latex/group__dbprim__link.tex b/libs/dbprim/doc/latex/group__dbprim__link.tex
deleted file mode 100644 (file)
index b07990d..0000000
+++ /dev/null
@@ -1,549 +0,0 @@
-\section{Linked lists}
-\label{group__dbprim__link}\index{Linked lists@{Linked lists}}
-Operations for linked lists. 
-\subsection*{Defines}
-\begin{CompactItemize}
-\item 
-\#define {\bf LINK\_\-HEAD\_\-INIT}(extra)
-\begin{CompactList}\small\item\em Linked list head static initializer.\item\end{CompactList}\item 
-\#define {\bf ll\_\-verify}(list)
-\begin{CompactList}\small\item\em Linked list head verification macro.\item\end{CompactList}\item 
-\#define {\bf ll\_\-count}(list)
-\begin{CompactList}\small\item\em Linked list count.\item\end{CompactList}\item 
-\#define {\bf ll\_\-first}(list)
-\begin{CompactList}\small\item\em First element in linked list.\item\end{CompactList}\item 
-\#define {\bf ll\_\-last}(list)
-\begin{CompactList}\small\item\em Last element in a linked list.\item\end{CompactList}\item 
-\#define {\bf ll\_\-extra}(list)
-\begin{CompactList}\small\item\em Extra pointer data in a linked list.\item\end{CompactList}\item 
-\#define {\bf LINK\_\-ELEM\_\-INIT}(obj)
-\begin{CompactList}\small\item\em Linked list element static initializer.\item\end{CompactList}\item 
-\#define {\bf le\_\-verify}(element)
-\begin{CompactList}\small\item\em Linked list element verification macro.\item\end{CompactList}\item 
-\#define {\bf le\_\-next}(elem)
-\begin{CompactList}\small\item\em Linked list element next pointer.\item\end{CompactList}\item 
-\#define {\bf le\_\-prev}(elem)
-\begin{CompactList}\small\item\em Linked list element previous pointer.\item\end{CompactList}\item 
-\#define {\bf le\_\-object}(elem)
-\begin{CompactList}\small\item\em Linked list element object pointer.\item\end{CompactList}\item 
-\#define {\bf le\_\-head}(elem)
-\begin{CompactList}\small\item\em Linked list element head pointer.\item\end{CompactList}\item 
-\#define {\bf le\_\-flags}(elem)
-\begin{CompactList}\small\item\em Linked list element flags.\item\end{CompactList}\end{CompactItemize}
-\subsection*{Typedefs}
-\begin{CompactItemize}
-\item 
-typedef struct \_\-link\_\-head\_\-s {\bf link\_\-head\_\-t}
-\begin{CompactList}\small\item\em Linked list head.\item\end{CompactList}\item 
-typedef struct \_\-link\_\-elem\_\-s {\bf link\_\-elem\_\-t}
-\begin{CompactList}\small\item\em Linked list element.\item\end{CompactList}\item 
-typedef unsigned long ($\ast$ {\bf link\_\-iter\_\-t} )({\bf link\_\-head\_\-t} $\ast$, {\bf link\_\-elem\_\-t} $\ast$, void $\ast$)
-\begin{CompactList}\small\item\em Linked list iteration callback.\item\end{CompactList}\item 
-typedef unsigned long ($\ast$ {\bf link\_\-comp\_\-t} )({\bf db\_\-key\_\-t} $\ast$, void $\ast$)
-\begin{CompactList}\small\item\em Linked list comparison callback.\item\end{CompactList}\item 
-typedef enum {\bf \_\-link\_\-loc\_\-e} {\bf link\_\-loc\_\-t}
-\begin{CompactList}\small\item\em Linked list location.\item\end{CompactList}\end{CompactItemize}
-\subsection*{Enumerations}
-\begin{CompactItemize}
-\item 
-enum {\bf \_\-link\_\-loc\_\-e} \{ {\bf LINK\_\-LOC\_\-HEAD}, 
-{\bf LINK\_\-LOC\_\-TAIL}, 
-{\bf LINK\_\-LOC\_\-BEFORE}, 
-{\bf LINK\_\-LOC\_\-AFTER}
- \}
-\begin{CompactList}\small\item\em Linked list location.\item\end{CompactList}\end{CompactItemize}
-\subsection*{Functions}
-\begin{CompactItemize}
-\item 
-unsigned long {\bf ll\_\-init} ({\bf link\_\-head\_\-t} $\ast$list, void $\ast$extra)
-\begin{CompactList}\small\item\em Dynamically initialize a linked list head.\item\end{CompactList}\item 
-unsigned long {\bf ll\_\-add} ({\bf link\_\-head\_\-t} $\ast$list, {\bf link\_\-elem\_\-t} $\ast$new, {\bf link\_\-loc\_\-t} loc, {\bf link\_\-elem\_\-t} $\ast$elem)
-\begin{CompactList}\small\item\em Add an element to a linked list.\item\end{CompactList}\item 
-unsigned long {\bf ll\_\-move} ({\bf link\_\-head\_\-t} $\ast$list, {\bf link\_\-elem\_\-t} $\ast$new, {\bf link\_\-loc\_\-t} loc, {\bf link\_\-elem\_\-t} $\ast$elem)
-\begin{CompactList}\small\item\em Move an element within a linked list.\item\end{CompactList}\item 
-unsigned long {\bf ll\_\-remove} ({\bf link\_\-head\_\-t} $\ast$list, {\bf link\_\-elem\_\-t} $\ast$elem)
-\begin{CompactList}\small\item\em Remove an element from a linked list.\item\end{CompactList}\item 
-unsigned long {\bf ll\_\-find} ({\bf link\_\-head\_\-t} $\ast$list, {\bf link\_\-elem\_\-t} $\ast$$\ast$elem\_\-p, {\bf link\_\-comp\_\-t} comp\_\-func, {\bf link\_\-elem\_\-t} $\ast$start, {\bf db\_\-key\_\-t} $\ast$key)
-\begin{CompactList}\small\item\em Find an element in a linked list.\item\end{CompactList}\item 
-unsigned long {\bf ll\_\-iter} ({\bf link\_\-head\_\-t} $\ast$list, {\bf link\_\-iter\_\-t} iter\_\-func, void $\ast$extra)
-\begin{CompactList}\small\item\em Iterate over each entry in a linked list.\item\end{CompactList}\item 
-unsigned long {\bf ll\_\-flush} ({\bf link\_\-head\_\-t} $\ast$list, {\bf link\_\-iter\_\-t} flush\_\-func, void $\ast$extra)
-\begin{CompactList}\small\item\em Flush a linked list.\item\end{CompactList}\item 
-unsigned long {\bf le\_\-init} ({\bf link\_\-elem\_\-t} $\ast$elem, void $\ast$object)
-\begin{CompactList}\small\item\em Dynamically initialize a linked list element.\item\end{CompactList}\end{CompactItemize}
-
-
-\subsection{Detailed Description}
-Linked lists are a very basic data structure used in building databases. This library provides a simple yet powerful implementation of generic linked lists, based on two caller-allocated structures. The {\bf link\_\-head\_\-t} {\rm (p.\,\pageref{group__dbprim__link_a0})} structure describes the head of a linked list and contains information regarding the number of elements in the linked list as well as pointers referencing the first and last elements in the list. The {\bf link\_\-elem\_\-t} {\rm (p.\,\pageref{group__dbprim__link_a1})} structure describes a specific element in the linked list and contains pointers referencing the next and previous elements in the list, as well as a pointer to the object, a pointer to the head of the linked list, and a set of user-specified flags.
-
-Elements may be added at any arbitrary location in the linked list with {\bf ll\_\-add}() {\rm (p.\,\pageref{group__dbprim__link_a6})}; moved to any other arbitrary location in the linked list with {\bf ll\_\-move}() {\rm (p.\,\pageref{group__dbprim__link_a7})}, or removed from the list with {\bf ll\_\-remove}() {\rm (p.\,\pageref{group__dbprim__link_a8})}. In addition, the user may search the list using a user-defined comparison function with {\bf ll\_\-find}() {\rm (p.\,\pageref{group__dbprim__link_a9})}; iterate over every element in the list with {\bf ll\_\-iter}() {\rm (p.\,\pageref{group__dbprim__link_a10})}; or remove all items from the list with {\bf ll\_\-flush}() {\rm (p.\,\pageref{group__dbprim__link_a11})}, optionally executing a user-specified clean-up function. 
-
-\subsection{Define Documentation}
-\index{dbprim_link@{dbprim\_\-link}!LINK_ELEM_INIT@{LINK\_\-ELEM\_\-INIT}}
-\index{LINK_ELEM_INIT@{LINK\_\-ELEM\_\-INIT}!dbprim_link@{dbprim\_\-link}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define LINK\_\-ELEM\_\-INIT(obj)}\label{group__dbprim__link_a19}
-
-
-
-
- This macro statically initializes a {\bf link\_\-elem\_\-t} {\rm (p.\,\pageref{group__dbprim__link_a1})}.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em obj}]A pointer to {\tt void} representing the object associated with the element. \end{description}
-\end{Desc}
-\index{dbprim_link@{dbprim\_\-link}!LINK_HEAD_INIT@{LINK\_\-HEAD\_\-INIT}}
-\index{LINK_HEAD_INIT@{LINK\_\-HEAD\_\-INIT}!dbprim_link@{dbprim\_\-link}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define LINK\_\-HEAD\_\-INIT(extra)}\label{group__dbprim__link_a13}
-
-
-
-
- This macro statically initializes a {\bf link\_\-head\_\-t} {\rm (p.\,\pageref{group__dbprim__link_a0})}.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em extra}]Extra pointer data that should be associated with the list head. \end{description}
-\end{Desc}
-\index{dbprim_link@{dbprim\_\-link}!le_flags@{le\_\-flags}}
-\index{le_flags@{le\_\-flags}!dbprim_link@{dbprim\_\-link}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define le\_\-flags(elem)}\label{group__dbprim__link_a25}
-
-
-
-
- This macro retrieves a set of user-defined flags associated with the element. It may be used as an lvalue to set those flags.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em elem}]A pointer to a {\bf link\_\-elem\_\-t} {\rm (p.\,\pageref{group__dbprim__link_a1})}.
-
-\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Returns: }]\par
-An {\tt unsigned long} containing the flags associated with the element. \end{Desc}
-\index{dbprim_link@{dbprim\_\-link}!le_head@{le\_\-head}}
-\index{le_head@{le\_\-head}!dbprim_link@{dbprim\_\-link}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define le\_\-head(elem)}\label{group__dbprim__link_a24}
-
-
-
-
- This macro retrieves a pointer to the head of the linked list that the element is in.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em elem}]A pointer to a {\bf link\_\-elem\_\-t} {\rm (p.\,\pageref{group__dbprim__link_a1})}.
-
-\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Returns: }]\par
-A pointer to a {\bf link\_\-head\_\-t} {\rm (p.\,\pageref{group__dbprim__link_a0})} representing the head of the linked list the element is in. \end{Desc}
-\index{dbprim_link@{dbprim\_\-link}!le_next@{le\_\-next}}
-\index{le_next@{le\_\-next}!dbprim_link@{dbprim\_\-link}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define le\_\-next(elem)}\label{group__dbprim__link_a21}
-
-
-
-
- This macro retrieves a pointer to the next element in the linked list.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em elem}]A pointer to a {\bf link\_\-elem\_\-t} {\rm (p.\,\pageref{group__dbprim__link_a1})}.
-
-\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Returns: }]\par
-A pointer to a {\bf link\_\-elem\_\-t} {\rm (p.\,\pageref{group__dbprim__link_a1})} representing the next element in the linked list. \end{Desc}
-\index{dbprim_link@{dbprim\_\-link}!le_object@{le\_\-object}}
-\index{le_object@{le\_\-object}!dbprim_link@{dbprim\_\-link}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define le\_\-object(elem)}\label{group__dbprim__link_a23}
-
-
-
-
- This macro retrieves a pointer to the object represented by the element. It may be used as an lvalue to change the object pointed to. Care should be taken when using this feature.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em elem}]A pointer to a {\bf link\_\-elem\_\-t} {\rm (p.\,\pageref{group__dbprim__link_a1})}.
-
-\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Returns: }]\par
-A pointer to {\tt void} representing the object associated with the linked list element. \end{Desc}
-\index{dbprim_link@{dbprim\_\-link}!le_prev@{le\_\-prev}}
-\index{le_prev@{le\_\-prev}!dbprim_link@{dbprim\_\-link}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define le\_\-prev(elem)}\label{group__dbprim__link_a22}
-
-
-
-
- This macro retrieves a pointer to the previous element in the linked list.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em elem}]A pointer to a {\bf link\_\-elem\_\-t} {\rm (p.\,\pageref{group__dbprim__link_a1})}.
-
-\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Returns: }]\par
-A pointer to a {\bf link\_\-elem\_\-t} {\rm (p.\,\pageref{group__dbprim__link_a1})} representing the previous element in the linked list. \end{Desc}
-\index{dbprim_link@{dbprim\_\-link}!le_verify@{le\_\-verify}}
-\index{le_verify@{le\_\-verify}!dbprim_link@{dbprim\_\-link}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define le\_\-verify(element)}\label{group__dbprim__link_a20}
-
-
-
-
- This macro verifies that a given pointer actually does point to a linked list element.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em element}]A pointer to a {\bf link\_\-elem\_\-t} {\rm (p.\,\pageref{group__dbprim__link_a1})}.
-
-\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Returns: }]\par
-Boolean true if {\tt element} is a valid linked list element or false otherwise. \end{Desc}
-\index{dbprim_link@{dbprim\_\-link}!ll_count@{ll\_\-count}}
-\index{ll_count@{ll\_\-count}!dbprim_link@{dbprim\_\-link}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define ll\_\-count(list)}\label{group__dbprim__link_a15}
-
-
-
-
- This macro retrieves the number of elements in a linked list.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em list}]A pointer to a {\bf link\_\-head\_\-t} {\rm (p.\,\pageref{group__dbprim__link_a0})}.
-
-\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Returns: }]\par
-An {\tt unsigned long} containing a count of the number of elements in the linked list. \end{Desc}
-\index{dbprim_link@{dbprim\_\-link}!ll_extra@{ll\_\-extra}}
-\index{ll_extra@{ll\_\-extra}!dbprim_link@{dbprim\_\-link}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define ll\_\-extra(list)}\label{group__dbprim__link_a18}
-
-
-
-
- This macro retrieves the extra pointer data associated with a particular linked list.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em list}]A pointer to a {\bf link\_\-head\_\-t} {\rm (p.\,\pageref{group__dbprim__link_a0})}.
-
-\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Returns: }]\par
-A pointer to {\tt void}. \end{Desc}
-\index{dbprim_link@{dbprim\_\-link}!ll_first@{ll\_\-first}}
-\index{ll_first@{ll\_\-first}!dbprim_link@{dbprim\_\-link}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define ll\_\-first(list)}\label{group__dbprim__link_a16}
-
-
-
-
- This macro retrieves the first element in a linked list.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em list}]A pointer to a {\bf link\_\-head\_\-t} {\rm (p.\,\pageref{group__dbprim__link_a0})}.
-
-\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Returns: }]\par
-A pointer to a {\bf link\_\-elem\_\-t} {\rm (p.\,\pageref{group__dbprim__link_a1})}. \end{Desc}
-\index{dbprim_link@{dbprim\_\-link}!ll_last@{ll\_\-last}}
-\index{ll_last@{ll\_\-last}!dbprim_link@{dbprim\_\-link}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define ll\_\-last(list)}\label{group__dbprim__link_a17}
-
-
-
-
- This macro retrieves the last element in a linked list.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em list}]A pointer to a {\bf link\_\-head\_\-t} {\rm (p.\,\pageref{group__dbprim__link_a0})}.
-
-\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Returns: }]\par
-A pointer to a {\bf link\_\-elem\_\-t} {\rm (p.\,\pageref{group__dbprim__link_a1})}. \end{Desc}
-\index{dbprim_link@{dbprim\_\-link}!ll_verify@{ll\_\-verify}}
-\index{ll_verify@{ll\_\-verify}!dbprim_link@{dbprim\_\-link}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define ll\_\-verify(list)}\label{group__dbprim__link_a14}
-
-
-
-
- This macro verifies that a given pointer actually does point to a linked list head.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em list}]A pointer to a {\bf link\_\-head\_\-t} {\rm (p.\,\pageref{group__dbprim__link_a0})}.
-
-\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Returns: }]\par
-Boolean true if {\tt list} is a valid linked list head or false otherwise. \end{Desc}
-
-
-\subsection{Typedef Documentation}
-\index{dbprim_link@{dbprim\_\-link}!link_comp_t@{link\_\-comp\_\-t}}
-\index{link_comp_t@{link\_\-comp\_\-t}!dbprim_link@{dbprim\_\-link}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}typedef unsigned long($\ast$ link\_\-comp\_\-t)({\bf db\_\-key\_\-t} $\ast$, void $\ast$)}\label{group__dbprim__link_a3}
-
-
-
-
- This function pointer references a callback used by {\bf ll\_\-find}() {\rm (p.\,\pageref{group__dbprim__link_a9})}. It should return 0 if the entry passed as the second argument matches the key passed as the first argument. \index{dbprim_link@{dbprim\_\-link}!link_elem_t@{link\_\-elem\_\-t}}
-\index{link_elem_t@{link\_\-elem\_\-t}!dbprim_link@{dbprim\_\-link}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}typedef struct \_\-link\_\-elem\_\-s link\_\-elem\_\-t}\label{group__dbprim__link_a1}
-
-
-
-
- This structure represents a single element of a linked list. \index{dbprim_link@{dbprim\_\-link}!link_head_t@{link\_\-head\_\-t}}
-\index{link_head_t@{link\_\-head\_\-t}!dbprim_link@{dbprim\_\-link}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}typedef struct \_\-link\_\-head\_\-s link\_\-head\_\-t}\label{group__dbprim__link_a0}
-
-
-
-
- This structure is the head of all linked lists maintained by this library. \index{dbprim_link@{dbprim\_\-link}!link_iter_t@{link\_\-iter\_\-t}}
-\index{link_iter_t@{link\_\-iter\_\-t}!dbprim_link@{dbprim\_\-link}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}typedef unsigned long($\ast$ link\_\-iter\_\-t)({\bf link\_\-head\_\-t} $\ast$, {\bf link\_\-elem\_\-t} $\ast$, void $\ast$)}\label{group__dbprim__link_a2}
-
-
-
-
- This function pointer references a callback used by {\bf ll\_\-iter}() {\rm (p.\,\pageref{group__dbprim__link_a10})} and {\bf ll\_\-flush}() {\rm (p.\,\pageref{group__dbprim__link_a11})}. It should return 0 for success. A non-zero return value will terminate the operation and will become the return value of the {\bf ll\_\-iter}() {\rm (p.\,\pageref{group__dbprim__link_a10})} or {\bf ll\_\-flush}() {\rm (p.\,\pageref{group__dbprim__link_a11})} call. \index{dbprim_link@{dbprim\_\-link}!link_loc_t@{link\_\-loc\_\-t}}
-\index{link_loc_t@{link\_\-loc\_\-t}!dbprim_link@{dbprim\_\-link}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}typedef enum {\bf \_\-link\_\-loc\_\-e} link\_\-loc\_\-t}\label{group__dbprim__link_a4}
-
-
-
-
- See the documentation for the enumeration {\bf \_\-link\_\-loc\_\-e} {\rm (p.\,\pageref{group__dbprim__link_a26})}. 
-
-\subsection{Enumeration Type Documentation}
-\index{dbprim_link@{dbprim\_\-link}!_link_loc_e@{\_\-link\_\-loc\_\-e}}
-\index{_link_loc_e@{\_\-link\_\-loc\_\-e}!dbprim_link@{dbprim\_\-link}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}enum \_\-link\_\-loc\_\-e}\label{group__dbprim__link_a26}
-
-
-
-
- This enumeration is used to specify where an element in a linked list should be placed. It should be referenced by the typedef {\bf link\_\-loc\_\-t} {\rm (p.\,\pageref{group__dbprim__link_a4})}. \begin{Desc}
-\item[{\bf Enumeration values:}]\par
-\begin{description}
-\index{LINK_LOC_HEAD@{LINK\_\-LOC\_\-HEAD}!dbprim_link@{dbprim\_\-link}}\index{dbprim_link@{dbprim\_\-link}!LINK_LOC_HEAD@{LINK\_\-LOC\_\-HEAD}}\item[
-{\em LINK\_\-LOC\_\-HEAD}\label{group__dbprim__link_a26a98}
-]Element should be inserted at head of list. \index{LINK_LOC_TAIL@{LINK\_\-LOC\_\-TAIL}!dbprim_link@{dbprim\_\-link}}\index{dbprim_link@{dbprim\_\-link}!LINK_LOC_TAIL@{LINK\_\-LOC\_\-TAIL}}\item[
-{\em LINK\_\-LOC\_\-TAIL}\label{group__dbprim__link_a26a99}
-]Element should be inserted at tail of list. \index{LINK_LOC_BEFORE@{LINK\_\-LOC\_\-BEFORE}!dbprim_link@{dbprim\_\-link}}\index{dbprim_link@{dbprim\_\-link}!LINK_LOC_BEFORE@{LINK\_\-LOC\_\-BEFORE}}\item[
-{\em LINK\_\-LOC\_\-BEFORE}\label{group__dbprim__link_a26a100}
-]Element should be inserted before specified element. \index{LINK_LOC_AFTER@{LINK\_\-LOC\_\-AFTER}!dbprim_link@{dbprim\_\-link}}\index{dbprim_link@{dbprim\_\-link}!LINK_LOC_AFTER@{LINK\_\-LOC\_\-AFTER}}\item[
-{\em LINK\_\-LOC\_\-AFTER}\label{group__dbprim__link_a26a101}
-]Element should be inserted after specified element. \end{description}
-\end{Desc}
-
-
-
-\subsection{Function Documentation}
-\index{dbprim_link@{dbprim\_\-link}!le_init@{le\_\-init}}
-\index{le_init@{le\_\-init}!dbprim_link@{dbprim\_\-link}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}unsigned long le\_\-init ({\bf link\_\-elem\_\-t} $\ast$ {\em elem}, void $\ast$ {\em object})}\label{group__dbprim__link_a12}
-
-
-
-
- This function dynamically initializes a linked list element.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em elem}]A pointer to a {\bf link\_\-elem\_\-t} {\rm (p.\,\pageref{group__dbprim__link_a1})} to be initialized. \item[
-{\em object}]A pointer to {\tt void} used to represent the object associated with the element. May not be {\tt NULL}.\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Return values: }]\par
-\begin{description}
-\item[
-{\em DB\_\-ERR\_\-BADARGS}]A {\tt NULL} pointer was passed for {\tt elem} or {\tt object}. \end{description}
-\end{Desc}
-\index{dbprim_link@{dbprim\_\-link}!ll_add@{ll\_\-add}}
-\index{ll_add@{ll\_\-add}!dbprim_link@{dbprim\_\-link}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}unsigned long ll\_\-add ({\bf link\_\-head\_\-t} $\ast$ {\em list}, {\bf link\_\-elem\_\-t} $\ast$ {\em new}, {\bf link\_\-loc\_\-t} {\em loc}, {\bf link\_\-elem\_\-t} $\ast$ {\em elem})}\label{group__dbprim__link_a6}
-
-
-
-
- This function adds a given element to a specified linked list in the specified location.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em list}]A pointer to a {\bf link\_\-head\_\-t} {\rm (p.\,\pageref{group__dbprim__link_a0})}. \item[
-{\em new}]A pointer to the {\bf link\_\-elem\_\-t} {\rm (p.\,\pageref{group__dbprim__link_a1})} to be added to the linked list. \item[
-{\em loc}]A {\bf link\_\-loc\_\-t} {\rm (p.\,\pageref{group__dbprim__link_a4})} indicating where the entry should be added. \item[
-{\em elem}]A pointer to a {\bf link\_\-elem\_\-t} {\rm (p.\,\pageref{group__dbprim__link_a1})} describing another element in the list if {\tt loc} is {\bf LINK\_\-LOC\_\-BEFORE} {\rm (p.\,\pageref{group__dbprim__link_a26a100})} or {\bf LINK\_\-LOC\_\-AFTER} {\rm (p.\,\pageref{group__dbprim__link_a26a101})}.\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Return values: }]\par
-\begin{description}
-\item[
-{\em DB\_\-ERR\_\-BADARGS}]An argument was invalid. \item[
-{\em DB\_\-ERR\_\-BUSY}]The element is already in a list. \item[
-{\em DB\_\-ERR\_\-WRONGTABLE}]{\tt elem} is in a different list. \item[
-{\em DB\_\-ERR\_\-UNUSED}]{\tt elem} is not in any list. \end{description}
-\end{Desc}
-\index{dbprim_link@{dbprim\_\-link}!ll_find@{ll\_\-find}}
-\index{ll_find@{ll\_\-find}!dbprim_link@{dbprim\_\-link}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}unsigned long ll\_\-find ({\bf link\_\-head\_\-t} $\ast$ {\em list}, {\bf link\_\-elem\_\-t} $\ast$$\ast$ {\em elem\_\-p}, {\bf link\_\-comp\_\-t} {\em comp\_\-func}, {\bf link\_\-elem\_\-t} $\ast$ {\em start}, {\bf db\_\-key\_\-t} $\ast$ {\em key})}\label{group__dbprim__link_a9}
-
-
-
-
- This function iterates through a linked list looking for an element that matches the given {\tt key}.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em list}]A pointer to a {\bf link\_\-head\_\-t} {\rm (p.\,\pageref{group__dbprim__link_a0})}. \item[
-{\em elem\_\-p}]A pointer to a pointer to a {\bf link\_\-elem\_\-t} {\rm (p.\,\pageref{group__dbprim__link_a1})}. This is a result parameter. {\tt NULL} is an invalid value. \item[
-{\em comp\_\-func}]A pointer to a comparison function used to compare the key to a particular element. See the documentation for {\bf link\_\-comp\_\-t} {\rm (p.\,\pageref{group__dbprim__link_a3})} for more information. \item[
-{\em start}]A pointer to a {\bf link\_\-elem\_\-t} {\rm (p.\,\pageref{group__dbprim__link_a1})} describing where in the linked list to start. If {\tt NULL} is passed, the beginning of the list will be assumed. \item[
-{\em key}]A key to search for.\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Return values: }]\par
-\begin{description}
-\item[
-{\em DB\_\-ERR\_\-BADARGS}]An argument was invalid. \item[
-{\em DB\_\-ERR\_\-WRONGTABLE}]{\tt start} is not in this linked list. \item[
-{\em DB\_\-ERR\_\-NOENTRY}]No matching entry was found. \end{description}
-\end{Desc}
-\index{dbprim_link@{dbprim\_\-link}!ll_flush@{ll\_\-flush}}
-\index{ll_flush@{ll\_\-flush}!dbprim_link@{dbprim\_\-link}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}unsigned long ll\_\-flush ({\bf link\_\-head\_\-t} $\ast$ {\em list}, {\bf link\_\-iter\_\-t} {\em flush\_\-func}, void $\ast$ {\em extra})}\label{group__dbprim__link_a11}
-
-
-
-
- This function flushes a linked list--that is, it removes each element from the list. If a {\tt flush\_\-func} is specified, it will be called on the entry after it has been removed from the list, and may safely call {\tt free()}.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em list}]A pointer to a {\bf link\_\-head\_\-t} {\rm (p.\,\pageref{group__dbprim__link_a0})}. \item[
-{\em flush\_\-func}]A pointer to a callback function used to perform user-specified actions on an element after removing it from the list. May be {\tt NULL}. See the documentation for {\bf link\_\-iter\_\-t} {\rm (p.\,\pageref{group__dbprim__link_a2})} for more information. \item[
-{\em extra}]A {\tt void} pointer that will be passed to {\tt flush\_\-func}.\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Return values: }]\par
-\begin{description}
-\item[
-{\em DB\_\-ERR\_\-BADARGS}]An argument was invalid. \end{description}
-\end{Desc}
-\index{dbprim_link@{dbprim\_\-link}!ll_init@{ll\_\-init}}
-\index{ll_init@{ll\_\-init}!dbprim_link@{dbprim\_\-link}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}unsigned long ll\_\-init ({\bf link\_\-head\_\-t} $\ast$ {\em list}, void $\ast$ {\em extra})}\label{group__dbprim__link_a5}
-
-
-
-
- This function dynamically initializes a linked list head.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em list}]A pointer to a {\bf link\_\-head\_\-t} {\rm (p.\,\pageref{group__dbprim__link_a0})} to be initialized. \item[
-{\em extra}]A pointer to {\tt void} containing extra pointer data associated with the linked list.\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Return values: }]\par
-\begin{description}
-\item[
-{\em DB\_\-ERR\_\-BADARGS}]A {\tt NULL} pointer was passed for {\tt list}. \end{description}
-\end{Desc}
-\index{dbprim_link@{dbprim\_\-link}!ll_iter@{ll\_\-iter}}
-\index{ll_iter@{ll\_\-iter}!dbprim_link@{dbprim\_\-link}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}unsigned long ll\_\-iter ({\bf link\_\-head\_\-t} $\ast$ {\em list}, {\bf link\_\-iter\_\-t} {\em iter\_\-func}, void $\ast$ {\em extra})}\label{group__dbprim__link_a10}
-
-
-
-
- This function iterates over a linked list, executing the given {\tt iter\_\-func} for each entry.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em list}]A pointer to a {\bf link\_\-head\_\-t} {\rm (p.\,\pageref{group__dbprim__link_a0})}. \item[
-{\em iter\_\-func}]A pointer to a callback function used to perform user-specified actions on an element in a linked list. {\tt NULL} is an invalid value. See the documentation for {\bf link\_\-iter\_\-t} {\rm (p.\,\pageref{group__dbprim__link_a2})} for more information. \item[
-{\em extra}]A {\tt void} pointer that will be passed to {\tt iter\_\-func}.\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Return values: }]\par
-\begin{description}
-\item[
-{\em DB\_\-ERR\_\-BADARGS}]An argument was invalid. \end{description}
-\end{Desc}
-\index{dbprim_link@{dbprim\_\-link}!ll_move@{ll\_\-move}}
-\index{ll_move@{ll\_\-move}!dbprim_link@{dbprim\_\-link}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}unsigned long ll\_\-move ({\bf link\_\-head\_\-t} $\ast$ {\em list}, {\bf link\_\-elem\_\-t} $\ast$ {\em elem}, {\bf link\_\-loc\_\-t} {\em loc}, {\bf link\_\-elem\_\-t} $\ast$ {\em elem2})}\label{group__dbprim__link_a7}
-
-
-
-
- This function moves a specified element within the linked list.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em list}]A pointer to a {\bf link\_\-head\_\-t} {\rm (p.\,\pageref{group__dbprim__link_a0})}. \item[
-{\em elem}]A pointer to the {\bf link\_\-elem\_\-t} {\rm (p.\,\pageref{group__dbprim__link_a1})} describing the element to be moved. \item[
-{\em loc}]A {\bf link\_\-loc\_\-t} {\rm (p.\,\pageref{group__dbprim__link_a4})} indicating where the entry should be moved to. \item[
-{\em elem2}]A pointer to a {\bf link\_\-elem\_\-t} {\rm (p.\,\pageref{group__dbprim__link_a1})} describing another element in the list if {\tt loc} is {\bf LINK\_\-LOC\_\-BEFORE} {\rm (p.\,\pageref{group__dbprim__link_a26a100})} or {\bf LINK\_\-LOC\_\-AFTER} {\rm (p.\,\pageref{group__dbprim__link_a26a101})}.\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Return values: }]\par
-\begin{description}
-\item[
-{\em DB\_\-ERR\_\-BADARGS}]An argument was invalid. \item[
-{\em DB\_\-ERR\_\-BUSY}]{\tt elem} and {\tt elem2} are the same element. \item[
-{\em DB\_\-ERR\_\-WRONGTABLE}]{\tt elem} or {\tt elem2} are in a different list. \item[
-{\em DB\_\-ERR\_\-UNUSED}]{\tt elem} or {\tt elem2} are not in any list. \end{description}
-\end{Desc}
-\index{dbprim_link@{dbprim\_\-link}!ll_remove@{ll\_\-remove}}
-\index{ll_remove@{ll\_\-remove}!dbprim_link@{dbprim\_\-link}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}unsigned long ll\_\-remove ({\bf link\_\-head\_\-t} $\ast$ {\em list}, {\bf link\_\-elem\_\-t} $\ast$ {\em elem})}\label{group__dbprim__link_a8}
-
-
-
-
- This function removes a specified element from a linked list.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em list}]A pointer to a {\bf link\_\-head\_\-t} {\rm (p.\,\pageref{group__dbprim__link_a0})}. \item[
-{\em elem}]A pointer to the {\bf link\_\-elem\_\-t} {\rm (p.\,\pageref{group__dbprim__link_a1})} describing the element to be removed.\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Return values: }]\par
-\begin{description}
-\item[
-{\em DB\_\-ERR\_\-BADARGS}]An argument was invalid. \item[
-{\em DB\_\-ERR\_\-UNUSED}]{\tt elem} is not in a linked list. \item[
-{\em DB\_\-ERR\_\-WRONGTABLE}]{\tt elem} is not in this linked list. \end{description}
-\end{Desc}
diff --git a/libs/dbprim/doc/latex/group__dbprim__smat.tex b/libs/dbprim/doc/latex/group__dbprim__smat.tex
deleted file mode 100644 (file)
index ef07472..0000000
+++ /dev/null
@@ -1,1010 +0,0 @@
-\section{Sparse matrices}
-\label{group__dbprim__smat}\index{Sparse matrices@{Sparse matrices}}
-Operations for sparse matrices. 
-\subsection*{Defines}
-\begin{CompactItemize}
-\item 
-\#define {\bf SMAT\_\-TABLE\_\-INIT}(flags, resize, extra)
-\begin{CompactList}\small\item\em Sparse matrix table static initializer.\item\end{CompactList}\item 
-\#define {\bf st\_\-verify}(table)
-\begin{CompactList}\small\item\em Sparse matrix table verification macro.\item\end{CompactList}\item 
-\#define {\bf st\_\-flags}(table)
-\begin{CompactList}\small\item\em Sparse matrix table flags.\item\end{CompactList}\item 
-\#define {\bf st\_\-frozen}(table)
-\begin{CompactList}\small\item\em Determine if a sparse matrix is frozen.\item\end{CompactList}\item 
-\#define {\bf st\_\-modulus}(table)
-\begin{CompactList}\small\item\em Sparse matrix table modulus.\item\end{CompactList}\item 
-\#define {\bf st\_\-count}(table)
-\begin{CompactList}\small\item\em Sparse matrix table count.\item\end{CompactList}\item 
-\#define {\bf st\_\-extra}(table)
-\begin{CompactList}\small\item\em Extra pointer data in a sparse matrix table.\item\end{CompactList}\item 
-\#define {\bf st\_\-size}(table)
-\begin{CompactList}\small\item\em Sparse matrix table memory size.\item\end{CompactList}\item 
-\#define {\bf SMAT\_\-HEAD\_\-INIT}(elem, object)
-\begin{CompactList}\small\item\em Sparse matrix list head static initializer.\item\end{CompactList}\item 
-\#define {\bf sh\_\-verify}(head)
-\begin{CompactList}\small\item\em Sparse matrix list head verification macro.\item\end{CompactList}\item 
-\#define {\bf sh\_\-elem}(head)
-\begin{CompactList}\small\item\em Sparse matrix list head element macro.\item\end{CompactList}\item 
-\#define {\bf sh\_\-table}(head)
-\begin{CompactList}\small\item\em Sparse matrix list head table pointer.\item\end{CompactList}\item 
-\#define {\bf sh\_\-frozen}(head)
-\begin{CompactList}\small\item\em Determine if a sparse matrix is frozen.\item\end{CompactList}\item 
-\#define {\bf sh\_\-count}(head)
-\begin{CompactList}\small\item\em Sparse matrix list count.\item\end{CompactList}\item 
-\#define {\bf sh\_\-first}(head)
-\begin{CompactList}\small\item\em First element in sparse matrix list.\item\end{CompactList}\item 
-\#define {\bf sh\_\-last}(head)
-\begin{CompactList}\small\item\em Last element in sparse matrix list.\item\end{CompactList}\item 
-\#define {\bf sh\_\-object}(head)
-\begin{CompactList}\small\item\em Object represented by a sparse matrix list head.\item\end{CompactList}\item 
-\#define {\bf sh\_\-size}(head)
-\begin{CompactList}\small\item\em Sparse matrix list memory size.\item\end{CompactList}\item 
-\#define {\bf se\_\-verify}(entry)
-\begin{CompactList}\small\item\em Sparse matrix entry verification macro.\item\end{CompactList}\item 
-\#define {\bf se\_\-table}(entry)
-\begin{CompactList}\small\item\em Sparse matrix entry table.\item\end{CompactList}\item 
-\#define {\bf \_\-se\_\-link}(entry)
-\begin{CompactList}\small\item\em Sparse matrix entry linked list element.\item\end{CompactList}\item 
-\#define {\bf se\_\-flags}(entry)
-\begin{CompactList}\small\item\em Sparse matrix entry flags.\item\end{CompactList}\item 
-\#define {\bf se\_\-hash}(entry)
-\begin{CompactList}\small\item\em Sparse matrix table entry hash value.\item\end{CompactList}\item 
-\#define {\bf se\_\-next}(entry, n)
-\begin{CompactList}\small\item\em Next element in sparse matrix list.\item\end{CompactList}\item 
-\#define {\bf se\_\-prev}(entry, n)
-\begin{CompactList}\small\item\em Previous element in sparse matrix list.\item\end{CompactList}\item 
-\#define {\bf se\_\-lflags}(entry, n)
-\begin{CompactList}\small\item\em Flags associated with an entry in a sparse matrix list.\item\end{CompactList}\item 
-\#define {\bf se\_\-object}(entry, n)
-\begin{CompactList}\small\item\em Object associated with an entry in a sparse matrix list.\item\end{CompactList}\end{CompactItemize}
-\subsection*{Typedefs}
-\begin{CompactItemize}
-\item 
-typedef struct \_\-smat\_\-table\_\-s {\bf smat\_\-table\_\-t}
-\begin{CompactList}\small\item\em Sparse matrix table.\item\end{CompactList}\item 
-typedef struct \_\-smat\_\-head\_\-s {\bf smat\_\-head\_\-t}
-\begin{CompactList}\small\item\em Sparse matrix list head.\item\end{CompactList}\item 
-typedef struct \_\-smat\_\-entry\_\-s {\bf smat\_\-entry\_\-t}
-\begin{CompactList}\small\item\em Sparse matrix entry.\item\end{CompactList}\item 
-typedef unsigned long ($\ast$ {\bf smat\_\-resize\_\-t} )({\bf smat\_\-table\_\-t} $\ast$, unsigned long)
-\begin{CompactList}\small\item\em Sparse matrix table resize callback.\item\end{CompactList}\item 
-typedef unsigned long ($\ast$ {\bf smat\_\-iter\_\-t} )({\bf smat\_\-table\_\-t} $\ast$, {\bf smat\_\-entry\_\-t} $\ast$, void $\ast$)
-\begin{CompactList}\small\item\em Sparse matrix iteration callback.\item\end{CompactList}\item 
-typedef unsigned long ($\ast$ {\bf smat\_\-comp\_\-t} )({\bf db\_\-key\_\-t} $\ast$, {\bf smat\_\-entry\_\-t} $\ast$)
-\begin{CompactList}\small\item\em Sparse matrix comparison callback.\item\end{CompactList}\item 
-typedef enum {\bf \_\-smat\_\-loc\_\-e} {\bf smat\_\-loc\_\-t}
-\begin{CompactList}\small\item\em Sparse matrix location.\item\end{CompactList}\end{CompactItemize}
-\subsection*{Enumerations}
-\begin{CompactItemize}
-\item 
-enum {\bf \_\-smat\_\-loc\_\-e} \{ {\bf SMAT\_\-LOC\_\-FIRST}, 
-{\bf SMAT\_\-LOC\_\-SECOND}
- \}
-\begin{CompactList}\small\item\em Sparse matrix location.\item\end{CompactList}\end{CompactItemize}
-\subsection*{Functions}
-\begin{CompactItemize}
-\item 
-unsigned long {\bf smat\_\-cleanup} (void)
-\begin{CompactList}\small\item\em Clean up the smat free list.\item\end{CompactList}\item 
-unsigned long {\bf smat\_\-freemem} (void)
-\begin{CompactList}\small\item\em Report how much memory is used by the free list.\item\end{CompactList}\item 
-unsigned long {\bf st\_\-init} ({\bf smat\_\-table\_\-t} $\ast$table, unsigned long flags, {\bf smat\_\-resize\_\-t} resize, void $\ast$extra, unsigned long init\_\-mod)
-\item 
-unsigned long {\bf st\_\-add} ({\bf smat\_\-table\_\-t} $\ast$table, {\bf smat\_\-entry\_\-t} $\ast$$\ast$entry\_\-p, {\bf smat\_\-head\_\-t} $\ast$head1, {\bf link\_\-loc\_\-t} loc1, {\bf smat\_\-entry\_\-t} $\ast$ent1, {\bf smat\_\-head\_\-t} $\ast$head2, {\bf link\_\-loc\_\-t} loc2, {\bf smat\_\-entry\_\-t} $\ast$ent2)
-\begin{CompactList}\small\item\em Add an entry to a sparse matrix.\item\end{CompactList}\item 
-unsigned long {\bf st\_\-remove} ({\bf smat\_\-table\_\-t} $\ast$table, {\bf smat\_\-entry\_\-t} $\ast$entry)
-\begin{CompactList}\small\item\em Remove an entry from a sparse matrix.\item\end{CompactList}\item 
-unsigned long {\bf st\_\-find} ({\bf smat\_\-table\_\-t} $\ast$table, {\bf smat\_\-entry\_\-t} $\ast$$\ast$entry\_\-p, {\bf smat\_\-head\_\-t} $\ast$head1, {\bf smat\_\-head\_\-t} $\ast$head2)
-\begin{CompactList}\small\item\em Find an entry in a sparse matrix.\item\end{CompactList}\item 
-unsigned long {\bf st\_\-iter} ({\bf smat\_\-table\_\-t} $\ast$table, {\bf smat\_\-iter\_\-t} iter\_\-func, void $\ast$extra)
-\begin{CompactList}\small\item\em Iterate over each entry in a sparse matrix.\item\end{CompactList}\item 
-unsigned long {\bf st\_\-flush} ({\bf smat\_\-table\_\-t} $\ast$table, {\bf smat\_\-iter\_\-t} flush\_\-func, void $\ast$extra)
-\begin{CompactList}\small\item\em Flush a sparse matrix.\item\end{CompactList}\item 
-unsigned long {\bf st\_\-resize} ({\bf smat\_\-table\_\-t} $\ast$table, unsigned long new\_\-size)
-\begin{CompactList}\small\item\em Resize a sparse matrix table.\item\end{CompactList}\item 
-unsigned long {\bf st\_\-free} ({\bf smat\_\-table\_\-t} $\ast$table)
-\begin{CompactList}\small\item\em Free memory used by an empty sparse matrix table.\item\end{CompactList}\item 
-unsigned long {\bf sh\_\-init} ({\bf smat\_\-head\_\-t} $\ast$head, {\bf smat\_\-loc\_\-t} elem, void $\ast$object)
-\begin{CompactList}\small\item\em Dynamically initialize a sparse matrix row or column head.\item\end{CompactList}\item 
-unsigned long {\bf sh\_\-move} ({\bf smat\_\-head\_\-t} $\ast$head, {\bf smat\_\-entry\_\-t} $\ast$elem, {\bf link\_\-loc\_\-t} loc, {\bf smat\_\-entry\_\-t} $\ast$elem2)
-\begin{CompactList}\small\item\em Move an entry within a row or column list.\item\end{CompactList}\item 
-unsigned long {\bf sh\_\-find} ({\bf smat\_\-head\_\-t} $\ast$head, {\bf smat\_\-entry\_\-t} $\ast$$\ast$elem\_\-p, {\bf smat\_\-comp\_\-t} comp\_\-func, {\bf smat\_\-entry\_\-t} $\ast$start, {\bf db\_\-key\_\-t} $\ast$key)
-\begin{CompactList}\small\item\em Find an entry in a row or column of a sparse matrix.\item\end{CompactList}\item 
-unsigned long {\bf sh\_\-iter} ({\bf smat\_\-head\_\-t} $\ast$head, {\bf smat\_\-iter\_\-t} iter\_\-func, void $\ast$extra)
-\begin{CompactList}\small\item\em Iterate over each entry in a row or column of a sparse matrix.\item\end{CompactList}\end{CompactItemize}
-
-
-\subsection{Detailed Description}
-Sparse matrices are advanced data structures used to represent associations. For instance, a manager may have several employees, but several of those employees may report to more than one manager. (Yes, this is a contrived example, so sue me.) The simplest way to represent such assocations is with a matrix, or a two-dimensional array. However, such an implementation cannot easily be extended dynamically--imagine if a manager retires and two more are hired, for instance. It would also use an enormous amount of memory, as most employees would only report to one or two managers.
-
-A sparse matrix solves this problem by only allocating memory for the cells in the full matrix which are actually used. That is, no memory is allocated to represent Alice reporting to Bob unless Alice actually does report to Bob. This is a simple concept, but fairly difficult to implement efficiently--how do you tell if Alice reports to Bob? The solution utilized by this library is to combine the strengths of linked lists and hash tables. Each cell is in two linked lists, rooted at the rows and columns of the matrix, but a hash table is used when attempting to look up a given cell. If the cell is allocated, then there will be an entry in the hash table, and finding the given cell is as fast as a hash table look-up.
-
-Because sparse matrices are so complicated, there are three structures and a variety of operations used. Two of the structures, {\bf smat\_\-table\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a0})} and {\bf smat\_\-head\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a1})}, are caller-allocated. However, the third structure, {\bf smat\_\-entry\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a2})}, must be allocated by the library. To avoid too much overhead from malloc(), a free list is used. The free list may be managed with the {\bf smat\_\-cleanup}() {\rm (p.\,\pageref{group__dbprim__smat_a7})} and {\bf smat\_\-freemem}() {\rm (p.\,\pageref{group__dbprim__smat_a8})} calls.
-
-The {\bf smat\_\-table\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a0})} contains the hash table. Only one of these need be allocated per type of association--for instance, in the above example, only one {\bf smat\_\-table\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a0})} needs to be allocated to represent the manager-employee relationship.
-
-The {\bf smat\_\-head\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a1})} contains the linked list. There are actually two kinds of these structures--one is {\bf SMAT\_\-LOC\_\-FIRST} {\rm (p.\,\pageref{group__dbprim__smat_a48a102})}, which could be regarded as a ``row,'' and the other is {\bf SMAT\_\-LOC\_\-SECOND} {\rm (p.\,\pageref{group__dbprim__smat_a48a103})}, which could be regarded as a ``column.'' Which one is used for which type of data is irrelevant, as long as consistency is maintained. For the above example, a {\bf smat\_\-head\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a1})} for a manager may be {\bf SMAT\_\-LOC\_\-FIRST} {\rm (p.\,\pageref{group__dbprim__smat_a48a102})}, and one for an employee must then be {\bf SMAT\_\-LOC\_\-SECOND} {\rm (p.\,\pageref{group__dbprim__smat_a48a103})}. (These values are set when initializing the {\bf smat\_\-head\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a1})} structure.)
-
-An association may be created with the {\bf st\_\-add}() {\rm (p.\,\pageref{group__dbprim__smat_a10})} function, which allows an arbitrary ordering in the associated linked lists by the same mechanism as for the linked list component of the library. An association may be removed with {\bf st\_\-remove}() {\rm (p.\,\pageref{group__dbprim__smat_a11})}, or looked up with {\bf st\_\-find}() {\rm (p.\,\pageref{group__dbprim__smat_a12})}. If iteration over all associations is desired, use the {\bf st\_\-iter}() {\rm (p.\,\pageref{group__dbprim__smat_a13})} function. Removing all associations from a table may be performed with {\bf st\_\-flush}() {\rm (p.\,\pageref{group__dbprim__smat_a14})}, which optionally calls a user-defined clean-up function. The associated hash table may be resized with {\bf st\_\-resize}() {\rm (p.\,\pageref{group__dbprim__smat_a15})}, and the bucket table may be released with {\bf st\_\-free}() {\rm (p.\,\pageref{group__dbprim__smat_a16})}.
-
-An association may also be reordered within the linked lists using the {\bf sh\_\-move}() {\rm (p.\,\pageref{group__dbprim__smat_a18})} function. If a particular entry is desired, use the {\bf sh\_\-find}() {\rm (p.\,\pageref{group__dbprim__smat_a19})} function with a user-defined comparison function to locate it. Iteration may be performed with the {\bf sh\_\-iter}() {\rm (p.\,\pageref{group__dbprim__smat_a20})} function, and all entries in a given linked list may be removed with the sh\_\-flush() function, which again may optionally call a user-defined clean-up function. 
-
-\subsection{Define Documentation}
-\index{dbprim_smat@{dbprim\_\-smat}!SMAT_HEAD_INIT@{SMAT\_\-HEAD\_\-INIT}}
-\index{SMAT_HEAD_INIT@{SMAT\_\-HEAD\_\-INIT}!dbprim_smat@{dbprim\_\-smat}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define SMAT\_\-HEAD\_\-INIT(elem, object)}\label{group__dbprim__smat_a29}
-
-
-
-
- This macro statically initializes a {\bf smat\_\-head\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a1})}.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em elem}]One of {\bf SMAT\_\-LOC\_\-FIRST} {\rm (p.\,\pageref{group__dbprim__smat_a48a102})} or {\bf SMAT\_\-LOC\_\-SECOND} {\rm (p.\,\pageref{group__dbprim__smat_a48a103})} specifing whether the object is a member of the set of rows or columns. \item[
-{\em object}]A pointer to {\tt void} representing the object associated with the list head. \end{description}
-\end{Desc}
-\index{dbprim_smat@{dbprim\_\-smat}!SMAT_TABLE_INIT@{SMAT\_\-TABLE\_\-INIT}}
-\index{SMAT_TABLE_INIT@{SMAT\_\-TABLE\_\-INIT}!dbprim_smat@{dbprim\_\-smat}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define SMAT\_\-TABLE\_\-INIT(flags, resize, extra)}\label{group__dbprim__smat_a21}
-
-
-
-
- This macro statically initializes a {\bf smat\_\-table\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a0})}.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em flags}]A bit-wise OR of {\bf HASH\_\-FLAG\_\-AUTOGROW} {\rm (p.\,\pageref{group__dbprim__hash_a16})} and {\bf HASH\_\-FLAG\_\-AUTOSHRINK} {\rm (p.\,\pageref{group__dbprim__hash_a17})}. If neither behavior is desired, use 0. \item[
-{\em resize}]A {\bf smat\_\-resize\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a3})} function pointer for determining whether resizing is permitted and/or for notification of the resize. \item[
-{\em extra}]Extra pointer data that should be associated with the sparse matrix. \end{description}
-\end{Desc}
-\index{dbprim_smat@{dbprim\_\-smat}!_se_link@{\_\-se\_\-link}}
-\index{_se_link@{\_\-se\_\-link}!dbprim_smat@{dbprim\_\-smat}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define \_\-se\_\-link(entry)}\label{group__dbprim__smat_a41}
-
-
-
-
-For internal use only.\index{dbprim_smat@{dbprim\_\-smat}!se_flags@{se\_\-flags}}
-\index{se_flags@{se\_\-flags}!dbprim_smat@{dbprim\_\-smat}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define se\_\-flags(entry)}\label{group__dbprim__smat_a42}
-
-
-
-
- This macro retrieves a set of user-defined flags associated with the entry. It may be used as an lvalue to set those flags.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em entry}]A pointer to a {\bf smat\_\-entry\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a2})}.
-
-\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Returns: }]\par
-An {\tt unsigned long} containing the flags associated with the entry. \end{Desc}
-\index{dbprim_smat@{dbprim\_\-smat}!se_hash@{se\_\-hash}}
-\index{se_hash@{se\_\-hash}!dbprim_smat@{dbprim\_\-smat}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define se\_\-hash(entry)}\label{group__dbprim__smat_a43}
-
-
-
-
- This macro retrieves the hash value of the given sparse matrix entry. If the sparse matrix hash been resized, this value may not be the same as a previous value.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em entry}]A pointer to a {\bf smat\_\-entry\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a2})}.
-
-\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Returns: }]\par
-An {\tt unsigned long} containing the hash code for the entry. \end{Desc}
-\index{dbprim_smat@{dbprim\_\-smat}!se_lflags@{se\_\-lflags}}
-\index{se_lflags@{se\_\-lflags}!dbprim_smat@{dbprim\_\-smat}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define se\_\-lflags(entry, n)}\label{group__dbprim__smat_a46}
-
-
-
-
- This macro retrieves a set of user-defined flags associated with the entry in a sparse matrix list. It may be used as an lvalue to set those flags.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em entry}]A pointer to {\bf smat\_\-entry\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a2})}. \item[
-{\em n}]One of {\bf SMAT\_\-LOC\_\-FIRST} {\rm (p.\,\pageref{group__dbprim__smat_a48a102})} or {\bf SMAT\_\-LOC\_\-SECOND} {\rm (p.\,\pageref{group__dbprim__smat_a48a103})} to specify which list thread is desired.
-
-\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Returns: }]\par
-An {\tt unsigned long} containing the flags associated with the entry. \end{Desc}
-\index{dbprim_smat@{dbprim\_\-smat}!se_next@{se\_\-next}}
-\index{se_next@{se\_\-next}!dbprim_smat@{dbprim\_\-smat}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define se\_\-next(entry, n)}\label{group__dbprim__smat_a44}
-
-
-
-
- This macro retrieves a pointer to the {\bf link\_\-elem\_\-t} {\rm (p.\,\pageref{group__dbprim__link_a1})} for the next element in the sparse matrix list.
-
-\begin{Desc}
-\item[{\bf Warning: }]\par
-This macro may evaluate the {\tt entry} and {\tt n} arguments twice.\end{Desc}
-\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em entry}]A pointer to {\bf smat\_\-entry\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a2})}. \item[
-{\em n}]One of {\bf SMAT\_\-LOC\_\-FIRST} {\rm (p.\,\pageref{group__dbprim__smat_a48a102})} or {\bf SMAT\_\-LOC\_\-SECOND} {\rm (p.\,\pageref{group__dbprim__smat_a48a103})} to specify which list thread is desired.
-
-\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Returns: }]\par
-A pointer to {\bf smat\_\-entry\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a2})}. \end{Desc}
-\index{dbprim_smat@{dbprim\_\-smat}!se_object@{se\_\-object}}
-\index{se_object@{se\_\-object}!dbprim_smat@{dbprim\_\-smat}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define se\_\-object(entry, n)}\label{group__dbprim__smat_a47}
-
-
-
-
- This macro retrieves a pointer to one of the object represented by the entry. It may be used as an lvalue to change the object pointed to. Care should be taken when using this feature.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em entry}]A pointer to {\bf smat\_\-entry\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a2})}. \item[
-{\em n}]One of {\bf SMAT\_\-LOC\_\-FIRST} {\rm (p.\,\pageref{group__dbprim__smat_a48a102})} or {\bf SMAT\_\-LOC\_\-SECOND} {\rm (p.\,\pageref{group__dbprim__smat_a48a103})} to specify which list thread is desired.
-
-\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Returns: }]\par
-A pointer to {\tt void} representing the object. \end{Desc}
-\index{dbprim_smat@{dbprim\_\-smat}!se_prev@{se\_\-prev}}
-\index{se_prev@{se\_\-prev}!dbprim_smat@{dbprim\_\-smat}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define se\_\-prev(entry, n)}\label{group__dbprim__smat_a45}
-
-
-
-
- This macro retrieves a pointer to the {\bf link\_\-elem\_\-t} {\rm (p.\,\pageref{group__dbprim__link_a1})} for the previous element in the sparse matrix list.
-
-\begin{Desc}
-\item[{\bf Warning: }]\par
-This macro may evaluate the {\tt entry} and {\tt n} arguments twice.\end{Desc}
-\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em entry}]A pointer to {\bf smat\_\-entry\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a2})}. \item[
-{\em n}]One of {\bf SMAT\_\-LOC\_\-FIRST} {\rm (p.\,\pageref{group__dbprim__smat_a48a102})} or {\bf SMAT\_\-LOC\_\-SECOND} {\rm (p.\,\pageref{group__dbprim__smat_a48a103})} to specify which list thread is desired.
-
-\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Returns: }]\par
-A pointer to {\bf smat\_\-entry\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a2})}. \end{Desc}
-\index{dbprim_smat@{dbprim\_\-smat}!se_table@{se\_\-table}}
-\index{se_table@{se\_\-table}!dbprim_smat@{dbprim\_\-smat}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define se\_\-table(entry)}\label{group__dbprim__smat_a40}
-
-
-
-
- This macro retrieves a pointer to the table that the sparse matrix entry is in.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em entry}]A pointer to a {\bf smat\_\-entry\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a2})}.
-
-\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Returns: }]\par
-A pointer to a {\bf smat\_\-table\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a0})}. \end{Desc}
-\index{dbprim_smat@{dbprim\_\-smat}!se_verify@{se\_\-verify}}
-\index{se_verify@{se\_\-verify}!dbprim_smat@{dbprim\_\-smat}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define se\_\-verify(entry)}\label{group__dbprim__smat_a39}
-
-
-
-
- This macro verifies that a given pointer actually does point to a sparse matrix entry.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em entry}]A pointer to a {\bf smat\_\-entry\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a2})}.
-
-\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Returns: }]\par
-Boolean true if {\tt entry} is a valid sparse matrix entry or false otherwise. \end{Desc}
-\index{dbprim_smat@{dbprim\_\-smat}!sh_count@{sh\_\-count}}
-\index{sh_count@{sh\_\-count}!dbprim_smat@{dbprim\_\-smat}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define sh\_\-count(head)}\label{group__dbprim__smat_a34}
-
-
-
-
- This macro retrieves the number of elements in the sparse matrix list rooted at {\tt head}.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em head}]A pointer to {\bf smat\_\-head\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a1})}.
-
-\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Returns: }]\par
-An {\tt unsigned long} containing a count of the number of elements in the sparse matrix list. \end{Desc}
-\index{dbprim_smat@{dbprim\_\-smat}!sh_elem@{sh\_\-elem}}
-\index{sh_elem@{sh\_\-elem}!dbprim_smat@{dbprim\_\-smat}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define sh\_\-elem(head)}\label{group__dbprim__smat_a31}
-
-
-
-
- This macro retrieves the position indicator for the sparse matrix head. It will return one of {\bf SMAT\_\-LOC\_\-FIRST} {\rm (p.\,\pageref{group__dbprim__smat_a48a102})} or {\bf SMAT\_\-LOC\_\-SECOND} {\rm (p.\,\pageref{group__dbprim__smat_a48a103})}.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em head}]A pointer to {\bf smat\_\-head\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a1})}.
-
-\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Returns: }]\par
-An {\bf smat\_\-loc\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a6})}. \end{Desc}
-\index{dbprim_smat@{dbprim\_\-smat}!sh_first@{sh\_\-first}}
-\index{sh_first@{sh\_\-first}!dbprim_smat@{dbprim\_\-smat}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define sh\_\-first(head)}\label{group__dbprim__smat_a35}
-
-
-
-
- This macro retrieves a pointer to the {\bf smat\_\-entry\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a2})} for the first element in the sparse matrix list.
-
-\begin{Desc}
-\item[{\bf Warning: }]\par
-This macro may evaluate the {\tt head} argument twice.\end{Desc}
-\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em head}]A pointer to {\bf smat\_\-head\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a1})}.
-
-\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Returns: }]\par
-A pointer to {\bf smat\_\-entry\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a2})}. \end{Desc}
-\index{dbprim_smat@{dbprim\_\-smat}!sh_frozen@{sh\_\-frozen}}
-\index{sh_frozen@{sh\_\-frozen}!dbprim_smat@{dbprim\_\-smat}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define sh\_\-frozen(head)}\label{group__dbprim__smat_a33}
-
-
-
-
- This macro returns a non-zero value if the matrix is currently frozen. The sparse matrix may be frozen if there is an iteration in progress.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em head}]A pointer to a {\bf smat\_\-head\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a1})}.
-
-\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Returns: }]\par
-A zero value if the matrix is not frozen or a non-zero value if the matrix is frozen. \end{Desc}
-\index{dbprim_smat@{dbprim\_\-smat}!sh_last@{sh\_\-last}}
-\index{sh_last@{sh\_\-last}!dbprim_smat@{dbprim\_\-smat}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define sh\_\-last(head)}\label{group__dbprim__smat_a36}
-
-
-
-
- This macro retrieves a pointer to the {\bf smat\_\-entry\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a2})} for the last element in the sparse matrix list.
-
-\begin{Desc}
-\item[{\bf Warning: }]\par
-This macro may evaluate the {\tt head} argument twice.\end{Desc}
-\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em head}]A pointer to {\bf smat\_\-head\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a1})}.
-
-\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Returns: }]\par
-A pointer to {\bf smat\_\-entry\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a2})}. \end{Desc}
-\index{dbprim_smat@{dbprim\_\-smat}!sh_object@{sh\_\-object}}
-\index{sh_object@{sh\_\-object}!dbprim_smat@{dbprim\_\-smat}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define sh\_\-object(head)}\label{group__dbprim__smat_a37}
-
-
-
-
- This macro retrieves a pointer to the object referenced by the sparse matrix list head.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em head}]A pointer to {\bf smat\_\-head\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a1})}.
-
-\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Returns: }]\par
-A pointer to {\tt void}. \end{Desc}
-\index{dbprim_smat@{dbprim\_\-smat}!sh_size@{sh\_\-size}}
-\index{sh_size@{sh\_\-size}!dbprim_smat@{dbprim\_\-smat}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define sh\_\-size(head)}\label{group__dbprim__smat_a38}
-
-
-
-
- This macro returns the physical size of the memory allocated by the library for this sparse matrix list.
-
-\begin{Desc}
-\item[{\bf Note: }]\par
-The {\bf st\_\-size}() {\rm (p.\,\pageref{group__dbprim__smat_a28})} macro already counts the memory for each list in the table. Summing the results of {\bf sh\_\-size}() {\rm (p.\,\pageref{group__dbprim__smat_a38})} and {\bf st\_\-size}() {\rm (p.\,\pageref{group__dbprim__smat_a28})} will over-count the amount of memory actually in use.\end{Desc}
-\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em head}]A pointer to {\bf smat\_\-head\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a1})}.
-
-\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Returns: }]\par
-A {\tt size\_\-t}. \end{Desc}
-\index{dbprim_smat@{dbprim\_\-smat}!sh_table@{sh\_\-table}}
-\index{sh_table@{sh\_\-table}!dbprim_smat@{dbprim\_\-smat}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define sh\_\-table(head)}\label{group__dbprim__smat_a32}
-
-
-
-
- If there are any elements in this sparse matrix list head, this macro will retrieve a pointer to the table in which they reside.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em head}]A pointer to {\bf smat\_\-head\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a1})}.
-
-\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Returns: }]\par
-A pointer to {\bf smat\_\-table\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a0})}. \end{Desc}
-\index{dbprim_smat@{dbprim\_\-smat}!sh_verify@{sh\_\-verify}}
-\index{sh_verify@{sh\_\-verify}!dbprim_smat@{dbprim\_\-smat}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define sh\_\-verify(head)}\label{group__dbprim__smat_a30}
-
-
-
-
- This macro verifies that a given pointer actually does point to a sparse matrix head.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em head}]A pointer to a {\bf smat\_\-head\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a1})}.
-
-\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Returns: }]\par
-Boolean true if {\tt head} is a valid sparse matrix head or false otherwise. \end{Desc}
-\index{dbprim_smat@{dbprim\_\-smat}!st_count@{st\_\-count}}
-\index{st_count@{st\_\-count}!dbprim_smat@{dbprim\_\-smat}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define st\_\-count(table)}\label{group__dbprim__smat_a26}
-
-
-
-
- This macro retrieves the total number of items actually in the sparse matrix table.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em table}]A pointer to a {\bf smat\_\-table\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a0})}.
-
-\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Returns: }]\par
-An {\tt unsigned long} containing a count of the number of items in the sparse matrix table. \end{Desc}
-\index{dbprim_smat@{dbprim\_\-smat}!st_extra@{st\_\-extra}}
-\index{st_extra@{st\_\-extra}!dbprim_smat@{dbprim\_\-smat}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define st\_\-extra(table)}\label{group__dbprim__smat_a27}
-
-
-
-
- This macro retrieves the extra pointer data associated with a particular sparse matrix table.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em table}]A pointer to a {\bf smat\_\-table\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a0})}.
-
-\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Returns: }]\par
-A pointer to {\tt void}. \end{Desc}
-\index{dbprim_smat@{dbprim\_\-smat}!st_flags@{st\_\-flags}}
-\index{st_flags@{st\_\-flags}!dbprim_smat@{dbprim\_\-smat}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define st\_\-flags(table)}\label{group__dbprim__smat_a23}
-
-
-
-
- This macro retrieves the flags associated with the sparse matrix table. Only {\bf HASH\_\-FLAG\_\-AUTOGROW} {\rm (p.\,\pageref{group__dbprim__hash_a16})} and {\bf HASH\_\-FLAG\_\-AUTOSHRINK} {\rm (p.\,\pageref{group__dbprim__hash_a17})} have any meaning to the application; all other bits are reserved for use in the library. This macro may be used as an lvalue, but care must be taken to avoid modifying the library-specific bits.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em table}]A pointer to a {\bf smat\_\-table\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a0})}.
-
-\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Returns: }]\par
-An {\tt unsigned long} containing the flags for the sparse matrix table. \end{Desc}
-\index{dbprim_smat@{dbprim\_\-smat}!st_frozen@{st\_\-frozen}}
-\index{st_frozen@{st\_\-frozen}!dbprim_smat@{dbprim\_\-smat}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define st\_\-frozen(table)}\label{group__dbprim__smat_a24}
-
-
-
-
- This macro returns a non-zero value if the matrix is currently frozen. The sparse matrix may be frozen if there is an iteration in progress.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em table}]A pointer to a {\bf smat\_\-table\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a0})}.
-
-\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Returns: }]\par
-A zero value if the matrix is not frozen or a non-zero value if the matrix is frozen. \end{Desc}
-\index{dbprim_smat@{dbprim\_\-smat}!st_modulus@{st\_\-modulus}}
-\index{st_modulus@{st\_\-modulus}!dbprim_smat@{dbprim\_\-smat}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define st\_\-modulus(table)}\label{group__dbprim__smat_a25}
-
-
-
-
- This macro retrieves the number of buckets allocated for the sparse matrix table. An application may wish to save this value between invocations to avoid the overhead of growing the table while filling it with data.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em table}]A pointer to a {\bf smat\_\-table\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a0})}.
-
-\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Returns: }]\par
-An {\tt unsigned long} containing the number of buckets allocated for the sparse matrix table. \end{Desc}
-\index{dbprim_smat@{dbprim\_\-smat}!st_size@{st\_\-size}}
-\index{st_size@{st\_\-size}!dbprim_smat@{dbprim\_\-smat}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define st\_\-size(table)}\label{group__dbprim__smat_a28}
-
-
-
-
- This macro returns the physical size of the memory allocated by the library for this sparse matrix table.
-
-\begin{Desc}
-\item[{\bf Note: }]\par
-The {\bf st\_\-size}() {\rm (p.\,\pageref{group__dbprim__smat_a28})} macro already counts the memory for each list in the table. Summing the results of {\bf sh\_\-size}() {\rm (p.\,\pageref{group__dbprim__smat_a38})} and {\bf st\_\-size}() {\rm (p.\,\pageref{group__dbprim__smat_a28})} will over-count the amount of memory actually in use.\end{Desc}
-\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em table}]A pointer to a {\bf smat\_\-table\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a0})}.
-
-\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Returns: }]\par
-A {\tt size\_\-t}. \end{Desc}
-\index{dbprim_smat@{dbprim\_\-smat}!st_verify@{st\_\-verify}}
-\index{st_verify@{st\_\-verify}!dbprim_smat@{dbprim\_\-smat}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}\#define st\_\-verify(table)}\label{group__dbprim__smat_a22}
-
-
-
-
- This macro verifies that a given pointer actually does point to a sparse matrix table.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em table}]A pointer to a {\bf smat\_\-table\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a0})}.
-
-\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Returns: }]\par
-Boolean true if {\tt table} is a valid sparse matrix table or false otherwise. \end{Desc}
-
-
-\subsection{Typedef Documentation}
-\index{dbprim_smat@{dbprim\_\-smat}!smat_comp_t@{smat\_\-comp\_\-t}}
-\index{smat_comp_t@{smat\_\-comp\_\-t}!dbprim_smat@{dbprim\_\-smat}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}typedef unsigned long($\ast$ smat\_\-comp\_\-t)({\bf db\_\-key\_\-t} $\ast$, {\bf smat\_\-entry\_\-t} $\ast$)}\label{group__dbprim__smat_a5}
-
-
-
-
- This function pointer references a callback used by {\bf sh\_\-find}() {\rm (p.\,\pageref{group__dbprim__smat_a19})}. It should return 0 if the sparse matrix entry represented by the second argument matches the key passed as the first argument. \index{dbprim_smat@{dbprim\_\-smat}!smat_entry_t@{smat\_\-entry\_\-t}}
-\index{smat_entry_t@{smat\_\-entry\_\-t}!dbprim_smat@{dbprim\_\-smat}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}typedef struct \_\-smat\_\-entry\_\-s smat\_\-entry\_\-t}\label{group__dbprim__smat_a2}
-
-
-
-
- This structure is allocated by the library and represents a single element in a sparse matrix. \index{dbprim_smat@{dbprim\_\-smat}!smat_head_t@{smat\_\-head\_\-t}}
-\index{smat_head_t@{smat\_\-head\_\-t}!dbprim_smat@{dbprim\_\-smat}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}typedef struct \_\-smat\_\-head\_\-s smat\_\-head\_\-t}\label{group__dbprim__smat_a1}
-
-
-
-
- This structure is the head of a linked list of sparse matrix entries. \index{dbprim_smat@{dbprim\_\-smat}!smat_iter_t@{smat\_\-iter\_\-t}}
-\index{smat_iter_t@{smat\_\-iter\_\-t}!dbprim_smat@{dbprim\_\-smat}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}typedef unsigned long($\ast$ smat\_\-iter\_\-t)({\bf smat\_\-table\_\-t} $\ast$, {\bf smat\_\-entry\_\-t} $\ast$, void $\ast$)}\label{group__dbprim__smat_a4}
-
-
-
-
- This function pointer references a callback used by {\bf st\_\-iter}() {\rm (p.\,\pageref{group__dbprim__smat_a13})}, {\bf st\_\-flush}() {\rm (p.\,\pageref{group__dbprim__smat_a14})}, {\bf sh\_\-iter}() {\rm (p.\,\pageref{group__dbprim__smat_a20})}, and sh\_\-flush(). It should return 0 for success. A non-zero return value will terminate the operation and will become the return value of the call. \index{dbprim_smat@{dbprim\_\-smat}!smat_loc_t@{smat\_\-loc\_\-t}}
-\index{smat_loc_t@{smat\_\-loc\_\-t}!dbprim_smat@{dbprim\_\-smat}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}typedef enum {\bf \_\-smat\_\-loc\_\-e} smat\_\-loc\_\-t}\label{group__dbprim__smat_a6}
-
-
-
-
- See the documentation for the enumeration {\bf \_\-smat\_\-loc\_\-e} {\rm (p.\,\pageref{group__dbprim__smat_a48})}. \index{dbprim_smat@{dbprim\_\-smat}!smat_resize_t@{smat\_\-resize\_\-t}}
-\index{smat_resize_t@{smat\_\-resize\_\-t}!dbprim_smat@{dbprim\_\-smat}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}typedef unsigned long($\ast$ smat\_\-resize\_\-t)({\bf smat\_\-table\_\-t} $\ast$, unsigned long)}\label{group__dbprim__smat_a3}
-
-
-
-
- This function pointer references a callback that will be called with both the old and new sparse matrix table sizes whenever a sparse matrix's hash table table is resized. It should return non-zero only when the resize should be inhibited. \index{dbprim_smat@{dbprim\_\-smat}!smat_table_t@{smat\_\-table\_\-t}}
-\index{smat_table_t@{smat\_\-table\_\-t}!dbprim_smat@{dbprim\_\-smat}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}typedef struct \_\-smat\_\-table\_\-s smat\_\-table\_\-t}\label{group__dbprim__smat_a0}
-
-
-
-
- This structure is the basis of all sparse matrices maintained by this library. 
-
-\subsection{Enumeration Type Documentation}
-\index{dbprim_smat@{dbprim\_\-smat}!_smat_loc_e@{\_\-smat\_\-loc\_\-e}}
-\index{_smat_loc_e@{\_\-smat\_\-loc\_\-e}!dbprim_smat@{dbprim\_\-smat}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}enum \_\-smat\_\-loc\_\-e}\label{group__dbprim__smat_a48}
-
-
-
-
- This enumeration is used to specify whether an element is a row or column element. It should be referenced by the typedef {\bf smat\_\-loc\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a6})}. \begin{Desc}
-\item[{\bf Enumeration values:}]\par
-\begin{description}
-\index{SMAT_LOC_FIRST@{SMAT\_\-LOC\_\-FIRST}!dbprim_smat@{dbprim\_\-smat}}\index{dbprim_smat@{dbprim\_\-smat}!SMAT_LOC_FIRST@{SMAT\_\-LOC\_\-FIRST}}\item[
-{\em SMAT\_\-LOC\_\-FIRST}\label{group__dbprim__smat_a48a102}
-]First entry (``row''). \index{SMAT_LOC_SECOND@{SMAT\_\-LOC\_\-SECOND}!dbprim_smat@{dbprim\_\-smat}}\index{dbprim_smat@{dbprim\_\-smat}!SMAT_LOC_SECOND@{SMAT\_\-LOC\_\-SECOND}}\item[
-{\em SMAT\_\-LOC\_\-SECOND}\label{group__dbprim__smat_a48a103}
-]Second entry (``column''). \end{description}
-\end{Desc}
-
-
-
-\subsection{Function Documentation}
-\index{dbprim_smat@{dbprim\_\-smat}!sh_find@{sh\_\-find}}
-\index{sh_find@{sh\_\-find}!dbprim_smat@{dbprim\_\-smat}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}unsigned long sh\_\-find ({\bf smat\_\-head\_\-t} $\ast$ {\em head}, {\bf smat\_\-entry\_\-t} $\ast$$\ast$ {\em elem\_\-p}, {\bf smat\_\-comp\_\-t} {\em comp\_\-func}, {\bf smat\_\-entry\_\-t} $\ast$ {\em start}, {\bf db\_\-key\_\-t} $\ast$ {\em key})}\label{group__dbprim__smat_a19}
-
-
-
-
- This function iterates through the given row or column of a sparse matrix looking for an element that matches the given {\tt key}.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em head}]A pointer to a {\bf smat\_\-head\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a1})}. \item[
-{\em elem\_\-p}]A pointer to a pointer to a {\bf smat\_\-entry\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a2})}. This is a result pramater. {\tt NULL} is an invalid value. \item[
-{\em comp\_\-func}]A pointer to a comparison function used to compare the key to a particular entry. See the documentation for {\bf smat\_\-comp\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a5})} for more information. \item[
-{\em start}]A pointer to a {\bf smat\_\-entry\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a2})} describing where in the row or column to start. If {\tt NULL} is passed, the beginning of the row or column will be assumed. \item[
-{\em key}]A key to search for.\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Return values: }]\par
-\begin{description}
-\item[
-{\em DB\_\-ERR\_\-BADARGS}]An argument was invalid. \item[
-{\em DB\_\-ERR\_\-WRONGTABLE}]{\tt start} is not in this row or column. \item[
-{\em DB\_\-ERR\_\-NOENTRY}]No matching entry was found. \end{description}
-\end{Desc}
-\index{dbprim_smat@{dbprim\_\-smat}!sh_init@{sh\_\-init}}
-\index{sh_init@{sh\_\-init}!dbprim_smat@{dbprim\_\-smat}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}unsigned long sh\_\-init ({\bf smat\_\-head\_\-t} $\ast$ {\em head}, {\bf smat\_\-loc\_\-t} {\em elem}, void $\ast$ {\em object})}\label{group__dbprim__smat_a17}
-
-
-
-
- This function dynamically initializes a sparse matrix row or column linked list head. The {\tt elem} argument specifies whether the object is to be associated with a {\bf SMAT\_\-LOC\_\-FIRST} {\rm (p.\,\pageref{group__dbprim__smat_a48a102})} list or a {\bf SMAT\_\-LOC\_\-SECOND} {\rm (p.\,\pageref{group__dbprim__smat_a48a103})} list.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em head}]A pointer to a {\bf smat\_\-head\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a1})} to be initialized. \item[
-{\em elem}]Either {\bf SMAT\_\-LOC\_\-FIRST} {\rm (p.\,\pageref{group__dbprim__smat_a48a102})} or {\bf SMAT\_\-LOC\_\-SECOND} {\rm (p.\,\pageref{group__dbprim__smat_a48a103})}. \item[
-{\em object}]A pointer to the object containing the sparse matrix row or column head.\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Return values: }]\par
-\begin{description}
-\item[
-{\em DB\_\-ERR\_\-BADARGS}]An invalid argument was given. \end{description}
-\end{Desc}
-\index{dbprim_smat@{dbprim\_\-smat}!sh_iter@{sh\_\-iter}}
-\index{sh_iter@{sh\_\-iter}!dbprim_smat@{dbprim\_\-smat}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}unsigned long sh\_\-iter ({\bf smat\_\-head\_\-t} $\ast$ {\em head}, {\bf smat\_\-iter\_\-t} {\em iter\_\-func}, void $\ast$ {\em extra})}\label{group__dbprim__smat_a20}
-
-
-
-
- This function iterates over a row or column of a sparse matrix, executing the given {\tt iter\_\-func} for each entry.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em head}]A pointer to a {\bf smat\_\-head\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a1})}. \item[
-{\em iter\_\-func}]A pointer to a callback function used to perform user-specified actions on an entry in a row or column of a sparse matrix. {\tt NULL} is an invalid value. See the documentation for {\bf smat\_\-iter\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a4})} for more information. \item[
-{\em extra}]A {\tt void} pointer that will be passed to {\tt iter\_\-func}.\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Return values: }]\par
-\begin{description}
-\item[
-{\em DB\_\-ERR\_\-BADARGS}]An argument was invalid. \end{description}
-\end{Desc}
-\index{dbprim_smat@{dbprim\_\-smat}!sh_move@{sh\_\-move}}
-\index{sh_move@{sh\_\-move}!dbprim_smat@{dbprim\_\-smat}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}unsigned long sh\_\-move ({\bf smat\_\-head\_\-t} $\ast$ {\em head}, {\bf smat\_\-entry\_\-t} $\ast$ {\em elem}, {\bf link\_\-loc\_\-t} {\em loc}, {\bf smat\_\-entry\_\-t} $\ast$ {\em elem2})}\label{group__dbprim__smat_a18}
-
-
-
-
- This function allows the specified entry to be shifted within the linked list describing the row or column. It is very similar to the {\bf ll\_\-move}() {\rm (p.\,\pageref{group__dbprim__link_a7})} function.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em head}]A pointer to a {\bf smat\_\-head\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a1})}. \item[
-{\em elem}]A pointer to the {\bf smat\_\-entry\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a2})} describing the entry to be moved. \item[
-{\em loc}]A {\bf link\_\-loc\_\-t} {\rm (p.\,\pageref{group__dbprim__link_a4})} indicating where the entry should be moved to. \item[
-{\em elem2}]A pointer to a {\bf smat\_\-entry\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a2})} describing another entry in the list if {\tt loc} is {\bf LINK\_\-LOC\_\-BEFORE} {\rm (p.\,\pageref{group__dbprim__link_a26a100})} or {\bf LINK\_\-LOC\_\-AFTER} {\rm (p.\,\pageref{group__dbprim__link_a26a101})}.\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Return values: }]\par
-\begin{description}
-\item[
-{\em DB\_\-ERR\_\-BADARGS}]An argument was invalid. \item[
-{\em DB\_\-ERR\_\-BUSY}]{\tt elem} and {\tt elem2} are the same entry. \item[
-{\em DB\_\-ERR\_\-WRONGTABLE}]{\tt elem} or {\tt elem2} are in a different row or column. \item[
-{\em DB\_\-ERR\_\-UNUSED}]{\tt elem} or {\tt elem2} are not in any row or column. \end{description}
-\end{Desc}
-\index{dbprim_smat@{dbprim\_\-smat}!smat_cleanup@{smat\_\-cleanup}}
-\index{smat_cleanup@{smat\_\-cleanup}!dbprim_smat@{dbprim\_\-smat}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}unsigned long smat\_\-cleanup (void)}\label{group__dbprim__smat_a7}
-
-
-
-
- This function frees all smat\_\-entry\_\-t objects on the internal free list. It is always successful and returns 0. \index{dbprim_smat@{dbprim\_\-smat}!smat_freemem@{smat\_\-freemem}}
-\index{smat_freemem@{smat\_\-freemem}!dbprim_smat@{dbprim\_\-smat}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}unsigned long smat\_\-freemem (void)}\label{group__dbprim__smat_a8}
-
-
-
-
- This function returns the amount of memory being used by the internal free list of smat\_\-entry\_\-t objects.
-
-\begin{Desc}
-\item[{\bf Returns: }]\par
-A number indicating the size, in bytes, of the memory allocated for smat\_\-entry\_\-t objects on the free list. \end{Desc}
-\index{dbprim_smat@{dbprim\_\-smat}!st_add@{st\_\-add}}
-\index{st_add@{st\_\-add}!dbprim_smat@{dbprim\_\-smat}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}unsigned long st\_\-add ({\bf smat\_\-table\_\-t} $\ast$ {\em table}, {\bf smat\_\-entry\_\-t} $\ast$$\ast$ {\em entry\_\-p}, {\bf smat\_\-head\_\-t} $\ast$ {\em head1}, {\bf link\_\-loc\_\-t} {\em loc1}, {\bf smat\_\-entry\_\-t} $\ast$ {\em ent1}, {\bf smat\_\-head\_\-t} $\ast$ {\em head2}, {\bf link\_\-loc\_\-t} {\em loc2}, {\bf smat\_\-entry\_\-t} $\ast$ {\em ent2})}\label{group__dbprim__smat_a10}
-
-
-
-
- This function adds an entry to a sparse matrix. The entry is referenced in three different places, thus the complex set of arguments. This function will allocate a {\bf smat\_\-entry\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a2})} and return it through the {\tt entry\_\-p} result parameter.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em table}]A pointer to a {\bf smat\_\-table\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a0})}. \item[
-{\em entry\_\-p}]A pointer to a pointer to a {\bf smat\_\-entry\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a2})}. This is a result parameter. If {\tt NULL} is passed, the addition will be performed and an appropriate error code returned. \item[
-{\em head1}]A pointer to a {\bf smat\_\-head\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a1})} representing a {\bf SMAT\_\-LOC\_\-FIRST} {\rm (p.\,\pageref{group__dbprim__smat_a48a102})} sparse matrix list. \item[
-{\em loc1}]A {\bf link\_\-loc\_\-t} {\rm (p.\,\pageref{group__dbprim__link_a4})} indicating where the entry should be added for {\tt head1}. \item[
-{\em ent1}]A pointer to a {\bf smat\_\-entry\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a2})} describing another element in the list represented by {\tt head1} if {\tt loc1} is {\bf LINK\_\-LOC\_\-BEFORE} {\rm (p.\,\pageref{group__dbprim__link_a26a100})} or {\bf LINK\_\-LOC\_\-AFTER} {\rm (p.\,\pageref{group__dbprim__link_a26a101})}. \item[
-{\em head2}]A pointer to a {\bf smat\_\-head\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a1})} representing a {\bf SMAT\_\-LOC\_\-SECOND} {\rm (p.\,\pageref{group__dbprim__smat_a48a103})} sparse matrix list. \item[
-{\em loc2}]A {\bf link\_\-loc\_\-t} {\rm (p.\,\pageref{group__dbprim__link_a4})} indicating where the entry should be added for {\tt head2}. \item[
-{\em ent2}]A pointer to a {\bf smat\_\-entry\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a2})} describing another element in the list represented by {\tt head2} if {\tt loc2} is {\bf LINK\_\-LOC\_\-BEFORE} {\rm (p.\,\pageref{group__dbprim__link_a26a100})} or {\bf LINK\_\-LOC\_\-AFTER} {\rm (p.\,\pageref{group__dbprim__link_a26a101})}.\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Return values: }]\par
-\begin{description}
-\item[
-{\em DB\_\-ERR\_\-BADARGS}]An argument was invalid. \item[
-{\em DB\_\-ERR\_\-BUSY}]One of the arguments is already in the table. \item[
-{\em DB\_\-ERR\_\-FROZEN}]The table is currently frozen. \item[
-{\em DB\_\-ERR\_\-NOTABLE}]The bucket table has not been allocated and automatic growth is not enabled. \item[
-{\em DB\_\-ERR\_\-WRONGTABLE}]One of the arguments was not in the proper table or list. \item[
-{\em DB\_\-ERR\_\-UNUSED}]One of the {\tt ent} arguments is not presently in a list. \item[
-{\em DB\_\-ERR\_\-UNRECOVERABLE}]An unrecoverable error occurred while resizing the table. \item[
-{\em ENOMEM}]No memory could be allocated for the {\bf smat\_\-entry\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a2})} structure. \end{description}
-\end{Desc}
-\index{dbprim_smat@{dbprim\_\-smat}!st_find@{st\_\-find}}
-\index{st_find@{st\_\-find}!dbprim_smat@{dbprim\_\-smat}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}unsigned long st\_\-find ({\bf smat\_\-table\_\-t} $\ast$ {\em table}, {\bf smat\_\-entry\_\-t} $\ast$$\ast$ {\em entry\_\-p}, {\bf smat\_\-head\_\-t} $\ast$ {\em head1}, {\bf smat\_\-head\_\-t} $\ast$ {\em head2})}\label{group__dbprim__smat_a12}
-
-
-
-
- This function looks up the entry matching the given {\tt head1} and {\tt head2}.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em table}]A pointer to a {\bf smat\_\-table\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a0})}. \item[
-{\em entry\_\-p}]A pointer to a pointer to a {\bf smat\_\-entry\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a2})}. This is a result parameter. If {\tt NULL} is passed, the lookup will be performed and an appropriate error code returned. \item[
-{\em head1}]A pointer to a {\bf smat\_\-head\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a1})} initialized to {\bf SMAT\_\-LOC\_\-FIRST} {\rm (p.\,\pageref{group__dbprim__smat_a48a102})}. \item[
-{\em head2}]A pointer to a {\bf smat\_\-head\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a1})} initialized to {\bf SMAT\_\-LOC\_\-SECOND} {\rm (p.\,\pageref{group__dbprim__smat_a48a103})}.\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Return values: }]\par
-\begin{description}
-\item[
-{\em DB\_\-ERR\_\-BADARGS}]An argument was invalid. \item[
-{\em DB\_\-ERR\_\-WRONGTABLE}]One or both of {\tt head1} or {\tt head2} are not referenced in this table. \item[
-{\em DB\_\-ERR\_\-NOENTRY}]No matching entry was found. \end{description}
-\end{Desc}
-\index{dbprim_smat@{dbprim\_\-smat}!st_flush@{st\_\-flush}}
-\index{st_flush@{st\_\-flush}!dbprim_smat@{dbprim\_\-smat}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}unsigned long st\_\-flush ({\bf smat\_\-table\_\-t} $\ast$ {\em table}, {\bf smat\_\-iter\_\-t} {\em flush\_\-func}, void $\ast$ {\em extra})}\label{group__dbprim__smat_a14}
-
-
-
-
- This function flushes a sparse matrix--that is, it removes each entry from the matrix. If a {\tt flush\_\-func} is specified, it will be called on the entry after it has been removed from the table, and may safely call {\tt free()}.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em table}]A pointer to a {\bf smat\_\-table\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a0})}. \item[
-{\em flush\_\-func}]A pointer to a callback function used to perform user-specified actions on an entry after removing it from the table. May be {\tt NULL}. See the documentation for {\bf smat\_\-iter\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a4})} for more information. \item[
-{\em extra}]A {\tt void} pointer that will be passed to {\tt iter\_\-func}.\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Return values: }]\par
-\begin{description}
-\item[
-{\em DB\_\-ERR\_\-BADARGS}]An argument was invalid. \item[
-{\em DB\_\-ERR\_\-FROZEN}]The sparse matrix is frozen. \end{description}
-\end{Desc}
-\index{dbprim_smat@{dbprim\_\-smat}!st_free@{st\_\-free}}
-\index{st_free@{st\_\-free}!dbprim_smat@{dbprim\_\-smat}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}unsigned long st\_\-free ({\bf smat\_\-table\_\-t} $\ast$ {\em table})}\label{group__dbprim__smat_a16}
-
-
-
-
- This function releases the memory used by the bucket table of the empty hash table associated with a sparse matrix.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em table}]A pointer to a {\bf smat\_\-table\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a0})}.\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Return values: }]\par
-\begin{description}
-\item[
-{\em DB\_\-ERR\_\-BADARGS}]An invalid argument was given. \item[
-{\em DB\_\-ERR\_\-FROZEN}]The table is frozen. \item[
-{\em DB\_\-ERR\_\-NOTEMPTY}]The table is not empty. \end{description}
-\end{Desc}
-\index{dbprim_smat@{dbprim\_\-smat}!st_init@{st\_\-init}}
-\index{st_init@{st\_\-init}!dbprim_smat@{dbprim\_\-smat}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}unsigned long st\_\-init ({\bf smat\_\-table\_\-t} $\ast$ {\em table}, unsigned long {\em flags}, {\bf smat\_\-resize\_\-t} {\em resize}, void $\ast$ {\em extra}, unsigned long {\em init\_\-mod})}\label{group__dbprim__smat_a9}
-
-
-This function dynamically initializes a sparse matrix table.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em table}]A pointer to a {\bf smat\_\-table\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a0})} to be initialized. \item[
-{\em flags}]A bit-wise OR of {\bf HASH\_\-FLAG\_\-AUTOGROW} {\rm (p.\,\pageref{group__dbprim__hash_a16})} and {\bf HASH\_\-FLAG\_\-AUTOSHRINK} {\rm (p.\,\pageref{group__dbprim__hash_a17})}. If neither behavior is desired, use 0. \item[
-{\em resize}]A {\bf hash\_\-resize\_\-t} {\rm (p.\,\pageref{group__dbprim__hash_a5})} function pointer for determining whether resizing is permitted and/or for notification of the resize. \item[
-{\em extra}]Extra pointer data that should be associated with the sparse matrix table. \item[
-{\em init\_\-mod}]An initial modulus for the table. This will presumably be extracted by {\bf st\_\-modulus}() {\rm (p.\,\pageref{group__dbprim__smat_a25})} in a previous invocation of the application. A 0 value is valid.\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Return values: }]\par
-\begin{description}
-\item[
-{\em DB\_\-ERR\_\-BADARGS}]An invalid argument was given. \item[
-{\em ENOMEM}]Unable to allocate memory. \end{description}
-\end{Desc}
-\index{dbprim_smat@{dbprim\_\-smat}!st_iter@{st\_\-iter}}
-\index{st_iter@{st\_\-iter}!dbprim_smat@{dbprim\_\-smat}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}unsigned long st\_\-iter ({\bf smat\_\-table\_\-t} $\ast$ {\em table}, {\bf smat\_\-iter\_\-t} {\em iter\_\-func}, void $\ast$ {\em extra})}\label{group__dbprim__smat_a13}
-
-
-
-
- This function iterates over every entry in a sparse matrix (in an unspecified order), executing the given {\tt iter\_\-func} on each entry.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em table}]A pointer to a {\bf smat\_\-table\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a0})}. \item[
-{\em iter\_\-func}]A pointer to a callback function used to perform user-specified actions on an entry in a sparse matrix. {\tt NULL} is an invalid value. See the documentation for {\bf smat\_\-iter\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a4})} for more information. \item[
-{\em extra}]A {\tt void} pointer that will be passed to {\tt iter\_\-func}.\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Return values: }]\par
-\begin{description}
-\item[
-{\em DB\_\-ERR\_\-BADARGS}]An argument was invalid. \item[
-{\em DB\_\-ERR\_\-FROZEN}]The sparse matrix is frozen. \end{description}
-\end{Desc}
-\index{dbprim_smat@{dbprim\_\-smat}!st_remove@{st\_\-remove}}
-\index{st_remove@{st\_\-remove}!dbprim_smat@{dbprim\_\-smat}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}unsigned long st\_\-remove ({\bf smat\_\-table\_\-t} $\ast$ {\em table}, {\bf smat\_\-entry\_\-t} $\ast$ {\em entry})}\label{group__dbprim__smat_a11}
-
-
-
-
- This function removes the given entry from the specified sparse matrix.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em table}]A pointer to a {\bf smat\_\-table\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a0})}. \item[
-{\em entry}]A pointer to a {\bf smat\_\-entry\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a2})} to be removed from the table.\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Return values: }]\par
-\begin{description}
-\item[
-{\em DB\_\-ERR\_\-BADARGS}]An invalid argument was given. \item[
-{\em DB\_\-ERR\_\-WRONGTABLE}]Entry is not in this sparse matrix. \item[
-{\em DB\_\-ERR\_\-UNRECOVERABLE}]An unrecoverable error occurred while removing the entry from the table. \end{description}
-\end{Desc}
-\index{dbprim_smat@{dbprim\_\-smat}!st_resize@{st\_\-resize}}
-\index{st_resize@{st\_\-resize}!dbprim_smat@{dbprim\_\-smat}}
-\subsubsection{\setlength{\rightskip}{0pt plus 5cm}unsigned long st\_\-resize ({\bf smat\_\-table\_\-t} $\ast$ {\em table}, unsigned long {\em new\_\-size})}\label{group__dbprim__smat_a15}
-
-
-
-
- This function resizes the hash table associated with a sparse matrix based on the {\tt new\_\-size} parameter. See the documentation for {\bf ht\_\-resize}() {\rm (p.\,\pageref{group__dbprim__hash_a13})} for more information.\begin{Desc}
-\item[{\bf Parameters: }]\par
-\begin{description}
-\item[
-{\em table}]A pointer to a {\bf smat\_\-table\_\-t} {\rm (p.\,\pageref{group__dbprim__smat_a0})}. \item[
-{\em new\_\-size}]A new size value for the table.\end{description}
-\end{Desc}
-\begin{Desc}
-\item[{\bf Return values: }]\par
-\begin{description}
-\item[
-{\em DB\_\-ERR\_\-BADARGS}]An argument was invalid. \item[
-{\em DB\_\-ERR\_\-FROZEN}]The table is currently frozen. \item[
-{\em DB\_\-ERR\_\-UNRECOVERABLE}]A catastrophic error was encountered. The table is now unusable. \item[
-{\em ENOMEM}]No memory could be allocated for the new bucket table. \end{description}
-\end{Desc}
diff --git a/libs/dbprim/doc/latex/index.tex b/libs/dbprim/doc/latex/index.tex
deleted file mode 100644 (file)
index bd8cae7..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
- This library contains a set of database primitives. The primitives defined by this library include a powerful linked list abstraction, a hash table with optional automatic resizing, and a powerful and efficient sparse matrix implementation. All of the necessary declarations for using this library are found in the header file dbprim.h. For more information about the components of this library, see the module list.
-
diff --git a/libs/dbprim/doc/latex/modules.tex b/libs/dbprim/doc/latex/modules.tex
deleted file mode 100644 (file)
index bed35c7..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-\section{dbprim Modules}
-Here is a list of all modules:\begin{CompactList}
-\item \contentsline{section}{Database keys}{\pageref{group__dbprim__key}}{}
-\item \contentsline{section}{Linked lists}{\pageref{group__dbprim__link}}{}
-\item \contentsline{section}{Hash tables}{\pageref{group__dbprim__hash}}{}
-\item \contentsline{section}{Sparse matrices}{\pageref{group__dbprim__smat}}{}
-\end{CompactList}
diff --git a/libs/dbprim/doc/latex/refman.tex b/libs/dbprim/doc/latex/refman.tex
deleted file mode 100644 (file)
index ce3e918..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-\documentclass[letterpaper]{book}
-\usepackage{makeidx}
-\usepackage{fancyhdr}
-\usepackage{graphicx}
-\usepackage{float}
-\usepackage{alltt}
-\usepackage{doxygen}
-\makeindex
-\setcounter{tocdepth}{1}
-\setlength{\footrulewidth}{0.4pt}
-\begin{document}
-\begin{titlepage}
-\vspace*{7cm}
-\begin{center}
-{\Large dbprim Reference Manual}\\
-\vspace*{1cm}
-{\large Generated by Doxygen 1.2.8.1}\\
-\vspace*{0.5cm}
-{\small Thu Mar 6 21:23:10 2003}\\
-\end{center}
-\end{titlepage}
-\clearemptydoublepage
-\pagenumbering{roman}
-\tableofcontents
-\clearemptydoublepage
-\pagenumbering{arabic}
-\chapter{Database Primitives Library}
-\label{index}\input{index}
-\chapter{dbprim Module Index}
-\input{modules}
-\chapter{dbprim Module Documentation}
-\input{group__dbprim__key}
-\include{group__dbprim__link}
-\include{group__dbprim__hash}
-\include{group__dbprim__smat}
-\printindex
-\end{document}
diff --git a/libs/dbprim/doc/man/man3/dbprim_hash.3 b/libs/dbprim/doc/man/man3/dbprim_hash.3
deleted file mode 100644 (file)
index 62492b6..0000000
+++ /dev/null
@@ -1,783 +0,0 @@
-.TH "Hash tables" 3 "6 Mar 2003" "dbprim" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-Hash tables \- Operations for hash tables. 
-More...
-.SS "Defines"
-
-.in +1c
-.ti -1c
-.RI "#define \fBHASH_FLAG_AUTOGROW\fP"
-.br
-.RI "\fIFlag permitting a hash table to automatically grow.\fP"
-.ti -1c
-.RI "#define \fBHASH_FLAG_AUTOSHRINK\fP"
-.br
-.RI "\fIFlag permitting a hash table to automatically shrink.\fP"
-.ti -1c
-.RI "#define \fBHASH_TABLE_INIT\fP(flags, func, comp, resize, extra)"
-.br
-.RI "\fIHash table static initializer.\fP"
-.ti -1c
-.RI "#define \fBht_verify\fP(table)"
-.br
-.RI "\fIHash table verification macro.\fP"
-.ti -1c
-.RI "#define \fBht_flags\fP(table)"
-.br
-.RI "\fIHash table flags.\fP"
-.ti -1c
-.RI "#define \fBht_frozen\fP(table)"
-.br
-.RI "\fIDetermine if a hash table is frozen.\fP"
-.ti -1c
-.RI "#define \fBht_modulus\fP(table)"
-.br
-.RI "\fIHash table modulus.\fP"
-.ti -1c
-.RI "#define \fBht_count\fP(table)"
-.br
-.RI "\fIHash table count.\fP"
-.ti -1c
-.RI "#define \fBht_func\fP(table)"
-.br
-.RI "\fIHash table hash function.\fP"
-.ti -1c
-.RI "#define \fBht_comp\fP(table)"
-.br
-.RI "\fIHash table comparison function.\fP"
-.ti -1c
-.RI "#define \fBht_rsize\fP(table)"
-.br
-.RI "\fIHash table resize callback function.\fP"
-.ti -1c
-.RI "#define \fBht_extra\fP(table)"
-.br
-.RI "\fIExtra pointer data in a hash table.\fP"
-.ti -1c
-.RI "#define \fBht_size\fP(table)"
-.br
-.RI "\fIHash table memory size.\fP"
-.ti -1c
-.RI "#define \fBHASH_ENTRY_INIT\fP(value)"
-.br
-.RI "\fIHash table entry static initializer.\fP"
-.ti -1c
-.RI "#define \fBhe_verify\fP(entry)"
-.br
-.RI "\fIHash table entry verification macro.\fP"
-.ti -1c
-.RI "#define \fBhe_link\fP(entry)"
-.br
-.RI "\fIHash table entry linked list element.\fP"
-.ti -1c
-.RI "#define \fBhe_flags\fP(entry)"
-.br
-.RI "\fIHash table entry flags.\fP"
-.ti -1c
-.RI "#define \fBhe_table\fP(entry)"
-.br
-.RI "\fIHash table entry table pointer.\fP"
-.ti -1c
-.RI "#define \fBhe_hash\fP(entry)"
-.br
-.RI "\fIHash table entry hash value.\fP"
-.ti -1c
-.RI "#define \fBhe_key\fP(entry)"
-.br
-.RI "\fIHash table entry key pointer.\fP"
-.ti -1c
-.RI "#define \fBhe_value\fP(entry)"
-.br
-.RI "\fIHash table entry value pointer.\fP"
-.ti -1c
-.RI "#define \fBst_rsize\fP(table)"
-.br
-.RI "\fISparse matrix table resize callback function.\fP"
-.in -1c
-.SS "Typedefs"
-
-.in +1c
-.ti -1c
-.RI "typedef struct _hash_table_s \fBhash_table_t\fP"
-.br
-.RI "\fIHash table.\fP"
-.ti -1c
-.RI "typedef struct _hash_entry_s \fBhash_entry_t\fP"
-.br
-.RI "\fIHash table entry.\fP"
-.ti -1c
-.RI "typedef unsigned long (* \fBhash_iter_t\fP )(\fBhash_table_t\fP *, \fBhash_entry_t\fP *, void *)"
-.br
-.RI "\fIHash table iteration callback.\fP"
-.ti -1c
-.RI "typedef unsigned long (* \fBhash_func_t\fP )(\fBhash_table_t\fP *, \fBdb_key_t\fP *)"
-.br
-.RI "\fIHash function callback.\fP"
-.ti -1c
-.RI "typedef unsigned long (* \fBhash_comp_t\fP )(\fBhash_table_t\fP *, \fBdb_key_t\fP *, \fBdb_key_t\fP *)"
-.br
-.RI "\fIHash table comparison callback.\fP"
-.ti -1c
-.RI "typedef unsigned long (* \fBhash_resize_t\fP )(\fBhash_table_t\fP *, unsigned long)"
-.br
-.RI "\fIHash table resize callback.\fP"
-.in -1c
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "unsigned long \fBht_init\fP (\fBhash_table_t\fP *table, unsigned long flags, \fBhash_func_t\fP func, \fBhash_comp_t\fP comp, \fBhash_resize_t\fP resize, void *extra, unsigned long init_mod)"
-.br
-.RI "\fIDynamically initialize a hash table.\fP"
-.ti -1c
-.RI "unsigned long \fBht_add\fP (\fBhash_table_t\fP *table, \fBhash_entry_t\fP *entry, \fBdb_key_t\fP *key)"
-.br
-.RI "\fIAdd an entry to a hash table.\fP"
-.ti -1c
-.RI "unsigned long \fBht_move\fP (\fBhash_table_t\fP *table, \fBhash_entry_t\fP *entry, \fBdb_key_t\fP *key)"
-.br
-.RI "\fIMove an entry in the hash table.\fP"
-.ti -1c
-.RI "unsigned long \fBht_remove\fP (\fBhash_table_t\fP *table, \fBhash_entry_t\fP *entry)"
-.br
-.RI "\fIRemove an element from a hash table.\fP"
-.ti -1c
-.RI "unsigned long \fBht_find\fP (\fBhash_table_t\fP *table, \fBhash_entry_t\fP **entry_p, \fBdb_key_t\fP *key)"
-.br
-.RI "\fIFind an entry in a hash table.\fP"
-.ti -1c
-.RI "unsigned long \fBht_iter\fP (\fBhash_table_t\fP *table, \fBhash_iter_t\fP iter_func, void *extra)"
-.br
-.RI "\fIIterate over each entry in a hash table.\fP"
-.ti -1c
-.RI "unsigned long \fBht_flush\fP (\fBhash_table_t\fP *table, \fBhash_iter_t\fP flush_func, void *extra)"
-.br
-.RI "\fIFlush a hash table.\fP"
-.ti -1c
-.RI "unsigned long \fBht_resize\fP (\fBhash_table_t\fP *table, unsigned long new_size)"
-.br
-.RI "\fIResize a hash table.\fP"
-.ti -1c
-.RI "unsigned long \fBht_free\fP (\fBhash_table_t\fP *table)"
-.br
-.RI "\fIFree memory used by an empty hash table.\fP"
-.ti -1c
-.RI "unsigned long \fBhe_init\fP (\fBhash_entry_t\fP *entry, void *value)"
-.br
-.RI "\fIDynamically initialize a hash table entry.\fP"
-.in -1c
-.SH "DETAILED DESCRIPTION"
-.PP 
-Hash tables are a basic data structure used in building databases. Hash tables provide a means of storing data such that an arbitrary entry may be looked up efficiently. This library implements a hash table that may optionally grow and shrink to provide maximum efficiency. The implementation is with two kinds of caller-allocated structures--a \fBhash_table_t\fP structure that describes the table and a \fBhash_entry_t\fP structure for each entry in the table. The library allocates a bucket array which must be released with the \fBht_free\fP() function when the hash table has been emptied. Additionally, the hash table may be manually resized with the \fBht_resize\fP() function.
-.PP
-Entries may be added to and removed from the table using the \fBht_add\fP() and \fBht_remove\fP() functions. Additionally, the key on a given entry may be changed using the \fBht_move\fP() function. Of course, any given entry may be looked up using the \fBht_find\fP() function, and \fBht_iter\fP() will execute a user-defined function for each entry in the hash table (in an unspecified order). The \fBht_flush\fP() function will remove all entries from the hash table, optionally executing a user-specified clean-up function. 
-.SH "DEFINE DOCUMENTATION"
-.PP 
-.SS "#define HASH_ENTRY_INIT(value)"
-.PP
-.PP
- This macro statically initializes a \fBhash_entry_t\fP.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fIvalue\fP\fP
-A pointer to \fCvoid\fP representing the object associated with the entry. 
-.SS "#define HASH_FLAG_AUTOGROW"
-.PP
-.PP
- If passed in to \fBHASH_TABLE_INIT\fP() or \fBht_init\fP(), allows the hash table to grow automatically. 
-.SS "#define HASH_FLAG_AUTOSHRINK"
-.PP
-.PP
- If passed in to \fBHASH_TABLE_INIT\fP() or \fBht_init\fP(), allows the hash table to shrink automatically. 
-.SS "#define HASH_TABLE_INIT(flags, func, comp, resize, extra)"
-.PP
-.PP
- This macro statically initializes a \fBhash_table_t\fP.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fIflags\fP\fP
-A bit-wise OR of \fBHASH_FLAG_AUTOGROW\fP and \fBHASH_FLAG_AUTOSHRINK\fP. If neither behavior is desired, use 0. 
-.TP
-\fB\fIfunc\fP\fP
-A \fBhash_func_t\fP function pointer for a hash function. 
-.TP
-\fB\fIcomp\fP\fP
-A \fBhash_comp_t\fP function pointer for a comparison function. 
-.TP
-\fB\fIresize\fP\fP
-A \fBhash_resize_t\fP function pointer for determining whether resizing is permitted and/or for notification of the resize. 
-.TP
-\fB\fIextra\fP\fP
-Extra pointer data that should be associated with the hash table. 
-.SS "#define he_flags(entry)"
-.PP
-.PP
- This macro retrieves a set of user-defined flags associated with the entry. It may be used as an lvalue to set those flags.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fIentry\fP\fP
-A pointer to a \fBhash_entry_t\fP.
-.PP
-\fBReturns: \fP
-.in +1c
-An \fCunsigned long\fP containing the flags associated with the entry. 
-.SS "#define he_hash(entry)"
-.PP
-.PP
- This macro retrieves the hash value of the given hash entry. If the hash table has been resized, this value may not be the same as a previous value.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fIentry\fP\fP
-A pointer to a \fBhash_entry_t\fP.
-.PP
-\fBReturns: \fP
-.in +1c
-An \fCunsigned long\fP containing the hash code for the entry. 
-.SS "#define he_key(entry)"
-.PP
-.PP
- This macro retrieves the key associated with the hash table entry.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fIentry\fP\fP
-A pointer to a \fBhash_entry_t\fP.
-.PP
-\fBReturns: \fP
-.in +1c
-A pointer to a \fBdb_key_t\fP. 
-.SS "#define he_link(entry)"
-.PP
-.PP
- This macro provides access to the linked list element buried in the hash table entry. It should *not* be used on entries currently in a hash table. The purpose of this macro is to allow an object containing a hash table entry to be placed upon a free list.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fIentry\fP\fP
-A pointer to a \fBhash_entry_t\fP.
-.PP
-\fBReturns: \fP
-.in +1c
-A pointer to a \fBlink_elem_t\fP. 
-.SS "#define he_table(entry)"
-.PP
-.PP
- This macro retrieves a pointer to the hash table the entry is in.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fIentry\fP\fP
-A pointer to a \fBhash_entry_t\fP.
-.PP
-\fBReturns: \fP
-.in +1c
-A pointer to a \fBhash_table_t\fP. 
-.SS "#define he_value(entry)"
-.PP
-.PP
- This macro retrieves the value associated with the hash table entry. It may be treated as an lvalue to change that value. Care should be taken when using this option.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fIentry\fP\fP
-A pointer to a \fBhash_entry_t\fP.
-.PP
-\fBReturns: \fP
-.in +1c
-A pointer to \fCvoid\fP representing the value associated with this entry. 
-.SS "#define he_verify(entry)"
-.PP
-.PP
- This macro verifies that a given pointer actually does point to a hash table entry.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fIentry\fP\fP
-A pointer to a \fBhash_entry_t\fP.
-.PP
-\fBReturns: \fP
-.in +1c
-Boolean true if \fCentry\fP is a valid hash table entry or false otherwise. 
-.SS "#define ht_comp(table)"
-.PP
-.PP
- This macro retrieves the comparison function pointer.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fItable\fP\fP
-A pointer to a \fBhash_table_t\fP.
-.PP
-\fBReturns: \fP
-.in +1c
-A \fBhash_comp_t\fP. 
-.SS "#define ht_count(table)"
-.PP
-.PP
- This macro retrieves the total number of items actually in the hash table.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fItable\fP\fP
-A pointer to a \fBhash_table_t\fP.
-.PP
-\fBReturns: \fP
-.in +1c
-An \fCunsigned long\fP containing a count of the number of items in the hash table. 
-.SS "#define ht_extra(table)"
-.PP
-.PP
- This macro retrieves the extra pointer data associated with a particular hash table.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fItable\fP\fP
-A pointer to a \fBhash_table_t\fP.
-.PP
-\fBReturns: \fP
-.in +1c
-A pointer to \fCvoid\fP. 
-.SS "#define ht_flags(table)"
-.PP
-.PP
- This macro retrieves the flags associated with the hash table. Only \fBHASH_FLAG_AUTOGROW\fP and \fBHASH_FLAG_AUTOSHRINK\fP have any meaning to the application; all other bits are reserved for use in the library. This macro may be used as an lvalue, but care must be taken to avoid modifying the library-specific bits.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fItable\fP\fP
-A pointer to a \fBhash_table_t\fP.
-.PP
-\fBReturns: \fP
-.in +1c
-An \fCunsigned long\fP containing the flags for the hash table. 
-.SS "#define ht_frozen(table)"
-.PP
-.PP
- This macro returns a non-zero value if the table is currently frozen. The hash table may be frozen if there is an iteration in progress.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fItable\fP\fP
-A pointer to a \fBhash_table_t\fP.
-.PP
-\fBReturns: \fP
-.in +1c
-A zero value if the table is not frozen or a non-zero value if the table is frozen. 
-.SS "#define ht_func(table)"
-.PP
-.PP
- This macro retrieves the hash function pointer.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fItable\fP\fP
-A pointer to a \fBhash_table_t\fP.
-.PP
-\fBReturns: \fP
-.in +1c
-A \fBhash_func_t\fP. 
-.SS "#define ht_modulus(table)"
-.PP
-.PP
- This macro retrieves the number of buckets allocated for the hash table. An application may wish to save this value between invocations to avoid the overhead of growing the table while filling it with data.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fItable\fP\fP
-A pointer to a \fBhash_table_t\fP.
-.PP
-\fBReturns: \fP
-.in +1c
-An \fCunsigned long\fP containing the number of buckets allocated for the hash table. 
-.SS "#define ht_rsize(table)"
-.PP
-.PP
- This macro retrieves the resize callback function pointer.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fItable\fP\fP
-A pointer to a \fBhash_table_t\fP.
-.PP
-\fBReturns: \fP
-.in +1c
-A \fBhash_resize_t\fP. 
-.SS "#define ht_size(table)"
-.PP
-.PP
- This macro returns the physical size of the bucket array allocated by the library for this hash table.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fItable\fP\fP
-A pointer to a \fBhash_table_t\fP.
-.PP
-\fBReturns: \fP
-.in +1c
-A \fCsize_t\fP. 
-.SS "#define ht_verify(table)"
-.PP
-.PP
- This macro verifies that a given pointer actually does point to a hash table.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fItable\fP\fP
-A pointer to a \fBhash_table_t\fP.
-.PP
-\fBReturns: \fP
-.in +1c
-Boolean true if \fCtable\fP is a valid hash table or false otherwise. 
-.SS "#define st_rsize(table)"
-.PP
-.PP
- This macro retrieves the resize callback function pointer.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fItable\fP\fP
-A pointer to a \fBsmat_table_t\fP.
-.PP
-\fBReturns: \fP
-.in +1c
-A \fBsmat_resize_t\fP. 
-.SH "TYPEDEF DOCUMENTATION"
-.PP 
-.SS "typedef unsigned long(* hash_comp_t)(\fBhash_table_t\fP *, \fBdb_key_t\fP *, \fBdb_key_t\fP *)"
-.PP
-.PP
- This function pointer references a callback used to compare entries in a hash table. It should return 0 for identical entries and non-zero otherwise. No assumptions should be made about the order in which the two keys are passed to this function. 
-.SS "typedef struct _hash_entry_s hash_entry_t"
-.PP
-.PP
- This structure represents a single entry of a hash table. 
-.SS "typedef unsigned long(* hash_func_t)(\fBhash_table_t\fP *, \fBdb_key_t\fP *)"
-.PP
-.PP
- This function is associated with a hash table, and is responsible for generating a hash value. The full 32-bit range of an \fCunsigned long\fP should be used--do *not* reduce the hash value by the modulus of the hash table. 
-.SS "typedef unsigned long(* hash_iter_t)(\fBhash_table_t\fP *, \fBhash_entry_t\fP *, void *)"
-.PP
-.PP
- This function pointer references a callback used by \fBht_iter\fP() and \fBht_flush\fP(). It should return 0 for success. A non-zero return value will terminate the operation and will become the return value of the \fBht_iter\fP() or \fBht_flush\fP() call. 
-.SS "typedef unsigned long(* hash_resize_t)(\fBhash_table_t\fP *, unsigned long)"
-.PP
-.PP
- This function pointer references a callback that will be called with both the old and new hash table sizes whenever a hash table is resized. It should return non-zero only when the resize should be inhibited. 
-.SS "typedef struct _hash_table_s hash_table_t"
-.PP
-.PP
- This structure is the basis of all hash tables maintained by this library. 
-.SH "FUNCTION DOCUMENTATION"
-.PP 
-.SS "unsigned long he_init (\fBhash_entry_t\fP * entry, void * value)"
-.PP
-.PP
- This function dynamically initializes a hash table entry.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fIentry\fP\fP
-A pointer to a \fBhash_entry_t\fP to be initialized. 
-.TP
-\fB\fIvalue\fP\fP
-A pointer to \fCvoid\fP which will be the value of the hash table entry.
-.PP
-\fBReturn values: \fP
-.in +1c
-.TP
-\fB\fIDB_ERR_BADARGS\fP\fP
-A \fCNULL\fP pointer was passed for \fCentry\fP. 
-.SS "unsigned long ht_add (\fBhash_table_t\fP * table, \fBhash_entry_t\fP * entry, \fBdb_key_t\fP * key)"
-.PP
-.PP
- This function adds an entry to a hash table.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fItable\fP\fP
-A pointer to a \fBhash_table_t\fP. 
-.TP
-\fB\fIentry\fP\fP
-A pointer to a \fBhash_entry_t\fP to be added to the table. 
-.TP
-\fB\fIkey\fP\fP
-A pointer to a \fBdb_key_t\fP containing the key for the entry.
-.PP
-\fBReturn values: \fP
-.in +1c
-.TP
-\fB\fIDB_ERR_BADARGS\fP\fP
-An invalid argument was given. 
-.TP
-\fB\fIDB_ERR_BUSY\fP\fP
-The entry is already in a table. 
-.TP
-\fB\fIDB_ERR_FROZEN\fP\fP
-The table is currently frozen. 
-.TP
-\fB\fIDB_ERR_NOTABLE\fP\fP
-The bucket table has not been allocated and automatic growth is not enabled. 
-.TP
-\fB\fIDB_ERR_DUPLICATE\fP\fP
-The entry is a duplicate of an existing entry. 
-.TP
-\fB\fIDB_ERR_UNRECOVERABLE\fP\fP
-An unrecoverable error occurred while resizing the table. 
-.SS "unsigned long ht_find (\fBhash_table_t\fP * table, \fBhash_entry_t\fP ** entry_p, \fBdb_key_t\fP * key)"
-.PP
-.PP
- This function looks up an entry matching the given \fCkey\fP.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fItable\fP\fP
-A pointer to a \fBhash_table_t\fP. 
-.TP
-\fB\fIentry_p\fP\fP
-A pointer to a pointer to a \fBhash_entry_t\fP. This is a result parameter. If \fCNULL\fP is passed, the lookup will be performed and an appropriate error code returned.  
-.TP
-\fB\fIkey\fP\fP
-A pointer to a \fBdb_key_t\fP describing the item to find.
-.PP
-\fBReturn values: \fP
-.in +1c
-.TP
-\fB\fIDB_ERR_BADARGS\fP\fP
-An argument was invalid. 
-.TP
-\fB\fIDB_ERR_NOENTRY\fP\fP
-No matching entry was found. 
-.SS "unsigned long ht_flush (\fBhash_table_t\fP * table, \fBhash_iter_t\fP flush_func, void * extra)"
-.PP
-.PP
- This function flushes a hash table--that is, it removes each entry from the table. If a \fCflush_func\fP is specified, it will be called on the entry after it has been removed from the table, and may safely call \fCfree()\fP.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fItable\fP\fP
-A pointer to a \fBhash_table_t\fP. 
-.TP
-\fB\fIflush_func\fP\fP
-A pointer to a callback function used to perform user-specified actions on an entry after removing it from the table. May be \fCNULL\fP. See the documentation for \fBhash_iter_t\fP for more information. 
-.TP
-\fB\fIextra\fP\fP
-A \fCvoid\fP pointer that will be passed to \fCflush_func\fP.
-.PP
-\fBReturn values: \fP
-.in +1c
-.TP
-\fB\fIDB_ERR_BADARGS\fP\fP
-An argument was invalid. 
-.TP
-\fB\fIDB_ERR_FROZEN\fP\fP
-The hash table is frozen. 
-.SS "unsigned long ht_free (\fBhash_table_t\fP * table)"
-.PP
-.PP
- This function releases the memory used by the bucket table in an empty hash table.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fItable\fP\fP
-A pointer to a \fBhash_table_t\fP.
-.PP
-\fBReturn values: \fP
-.in +1c
-.TP
-\fB\fIDB_ERR_BADARGS\fP\fP
-An invalid argument was given. 
-.TP
-\fB\fIDB_ERR_FROZEN\fP\fP
-The table is frozen. 
-.TP
-\fB\fIDB_ERR_NOTEMPTY\fP\fP
-The table is not empty. 
-.SS "unsigned long ht_init (\fBhash_table_t\fP * table, unsigned long flags, \fBhash_func_t\fP func, \fBhash_comp_t\fP comp, \fBhash_resize_t\fP resize, void * extra, unsigned long init_mod)"
-.PP
-.PP
- This function dynamically initializes a hash table.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fItable\fP\fP
-A pointer to a \fBhash_table_t\fP to be initialized. 
-.TP
-\fB\fIflags\fP\fP
-A bit-wise OR of \fBHASH_FLAG_AUTOGROW\fP and \fBHASH_FLAG_AUTOSHRINK\fP. If neither behavior is desired, use 0. 
-.TP
-\fB\fIfunc\fP\fP
-A \fBhash_func_t\fP function pointer for a hash function. 
-.TP
-\fB\fIcomp\fP\fP
-A \fBhash_comp_t\fP function pointer for a comparison function. 
-.TP
-\fB\fIresize\fP\fP
-A \fBhash_resize_t\fP function pointer for determining whether resizing is permitted and/or for notification of the resize. 
-.TP
-\fB\fIextra\fP\fP
-Extra pointer data that should be associated with the hash table. 
-.TP
-\fB\fIinit_mod\fP\fP
-An initial modulus for the table. This will presumably be extracted by \fBht_modulus\fP() in a previous invocation of the application. A 0 value is valid.
-.PP
-\fBReturn values: \fP
-.in +1c
-.TP
-\fB\fIDB_ERR_BADARGS\fP\fP
-An invalid argument was given. 
-.TP
-\fB\fIENOMEM\fP\fP
-Unable to allocate memory. 
-.SS "unsigned long ht_iter (\fBhash_table_t\fP * table, \fBhash_iter_t\fP iter_func, void * extra)"
-.PP
-.PP
- This function iterates over every entry in a hash table (in an unspecified order), executing the given \fCiter_func\fP on each entry.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fItable\fP\fP
-A pointer to a \fBhash_table_t\fP. 
-.TP
-\fB\fIiter_func\fP\fP
-A pointer to a callback function used to perform user-specified actions on an entry in a hash table. \fCNULL\fP is an invalid value. See the documentation for \fBhash_iter_t\fP for more information. 
-.TP
-\fB\fIextra\fP\fP
-A \fCvoid\fP pointer that will be passed to \fCiter_func\fP.
-.PP
-\fBReturn values: \fP
-.in +1c
-.TP
-\fB\fIDB_ERR_BADARGS\fP\fP
-An argument was invalid. 
-.TP
-\fB\fIDB_ERR_FROZEN\fP\fP
-The hash table is frozen. 
-.SS "unsigned long ht_move (\fBhash_table_t\fP * table, \fBhash_entry_t\fP * entry, \fBdb_key_t\fP * key)"
-.PP
-.PP
- This function moves an existing entry in the hash table to correspond to the new key.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fItable\fP\fP
-A pointer to a \fBhash_table_t\fP. 
-.TP
-\fB\fIentry\fP\fP
-A pointer to a \fBhash_entry_t\fP to be moved. It must already be in the hash table. 
-.TP
-\fB\fIkey\fP\fP
-A pointer to a \fBdb_key_t\fP describing the new key for the entry.
-.PP
-\fBReturn values: \fP
-.in +1c
-.TP
-\fB\fIDB_ERR_BADARGS\fP\fP
-An invalid argument was given. 
-.TP
-\fB\fIDB_ERR_UNUSED\fP\fP
-Entry is not in a hash table. 
-.TP
-\fB\fIDB_ERR_WRONGTABLE\fP\fP
-Entry is not in this hash table. 
-.TP
-\fB\fIDB_ERR_FROZEN\fP\fP
-Hash table is frozen. 
-.TP
-\fB\fIDB_ERR_DUPLICATE\fP\fP
-New key is a duplicate of an existing key. 
-.TP
-\fB\fIDB_ERR_READDFAILED\fP\fP
-Unable to re-add entry to table. 
-.SS "unsigned long ht_remove (\fBhash_table_t\fP * table, \fBhash_entry_t\fP * entry)"
-.PP
-.PP
- This function removes the given element from the specified hash table.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fItable\fP\fP
-A pointer to a \fBhash_table_t\fP. 
-.TP
-\fB\fIentry\fP\fP
-A pointer to a \fBhash_entry_t\fP to be removed from the table.
-.PP
-\fBReturn values: \fP
-.in +1c
-.TP
-\fB\fIDB_ERR_BADARGS\fP\fP
-An invalid argument was given. 
-.TP
-\fB\fIDB_ERR_UNUSED\fP\fP
-Entry is not in a hash table. 
-.TP
-\fB\fIDB_ERR_WRONGTABLE\fP\fP
-Entry is not in this hash table. 
-.TP
-\fB\fIDB_ERR_FROZEN\fP\fP
-Hash table is frozen. 
-.TP
-\fB\fIDB_ERR_UNRECOVERABLE\fP\fP
-An unrecoverable error occurred while resizing the table. 
-.SS "unsigned long ht_resize (\fBhash_table_t\fP * table, unsigned long new_size)"
-.PP
-.PP
- This function resizes a hash table to the given \fCnew_size\fP. If \fCnew_size\fP is 0, then an appropriate new size based on the current number of items in the hash table will be selected.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fItable\fP\fP
-A pointer to a \fBhash_table_t\fP. 
-.TP
-\fB\fInew_size\fP\fP
-A new size value for the table.
-.PP
-\fBReturn values: \fP
-.in +1c
-.TP
-\fB\fIDB_ERR_BADARGS\fP\fP
-An argument was invalid. 
-.TP
-\fB\fIDB_ERR_FROZEN\fP\fP
-The table is currently frozen. 
-.TP
-\fB\fIDB_ERR_UNRECOVERABLE\fP\fP
-A catastrophic error was encountered. The table is now unusable. 
-.TP
-\fB\fIENOMEM\fP\fP
-No memory could be allocated for the new bucket table. 
\ No newline at end of file
diff --git a/libs/dbprim/doc/man/man3/dbprim_key.3 b/libs/dbprim/doc/man/man3/dbprim_key.3
deleted file mode 100644 (file)
index 0d6f14a..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-.TH "Database keys" 3 "6 Mar 2003" "dbprim" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-Database keys \- 
-.SS "Defines"
-
-.in +1c
-.ti -1c
-.RI "#define \fBDB_KEY_INIT\fP(key, size)"
-.br
-.RI "\fIDatabase key static initializer.\fP"
-.ti -1c
-.RI "#define \fBdk_key\fP(key)"
-.br
-.RI "\fIDatabase key accessor macro.\fP"
-.ti -1c
-.RI "#define \fBdk_len\fP(key)"
-.br
-.RI "\fIDatabase key length accessor macro.\fP"
-.in -1c
-.SS "Typedefs"
-
-.in +1c
-.ti -1c
-.RI "typedef struct _db_key_s \fBdb_key_t\fP"
-.br
-.RI "\fIDatabase key.\fP"
-.in -1c
-.SH "DETAILED DESCRIPTION"
-.PP 
-This module contains interfaces common to all database modules--mainly the macros concerned with manipulating database keys and the definition of the key structure.
-.PP
-The key may be any arbitrary pointer, including a pointer to a string. Everything that handles a key either copies the contents of the \fBdb_key_t\fP structure or passes it to a user-defined function. If required, as in the case of a string, a length may also be represented in the key structure. 
-.SH "DEFINE DOCUMENTATION"
-.PP 
-.SS "#define DB_KEY_INIT(key, size)"
-.PP
-.PP
- This macro allows a \fBdb_key_t\fP to be initialized statically.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fIkey\fP\fP
-A pointer to the key. 
-.TP
-\fB\fIsize\fP\fP
-Size of the key. 
-.SS "#define dk_key(key)"
-.PP
-.PP
- This macro allows access to the key field of a \fBdb_key_t\fP. It may be used as an lvalue in order to assign a key to a \fBdb_key_t\fP.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fIkey\fP\fP
-A pointer to a \fBdb_key_t\fP. 
-.PP
-\fBReturns: \fP
-.in +1c
-A pointer to a key (\fCvoid *\fP). 
-.SS "#define dk_len(key)"
-.PP
-.PP
- This macro allows access to the key length field of a \fBdb_key_t\fP. It may be used as an lvalue in order to assign a length to a \fBdb_key_t\fP.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fIkey\fP\fP
-A pointer to a \fBdb_key_t\fP. 
-.PP
-\fBReturns: \fP
-.in +1c
-An \fCint\fP describing the length of the key. 
-.SH "TYPEDEF DOCUMENTATION"
-.PP 
-.SS "typedef struct _db_key_s db_key_t"
-.PP
-.PP
- This structure is a generic key containing a void * pointer and a length parameter. It should be accessed with * \fBdk_key\fP() and \fBdk_len\fP(). 
\ No newline at end of file
diff --git a/libs/dbprim/doc/man/man3/dbprim_link.3 b/libs/dbprim/doc/man/man3/dbprim_link.3
deleted file mode 100644 (file)
index 732b031..0000000
+++ /dev/null
@@ -1,565 +0,0 @@
-.TH "Linked lists" 3 "6 Mar 2003" "dbprim" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-Linked lists \- Operations for linked lists. 
-More...
-.SS "Defines"
-
-.in +1c
-.ti -1c
-.RI "#define \fBLINK_HEAD_INIT\fP(extra)"
-.br
-.RI "\fILinked list head static initializer.\fP"
-.ti -1c
-.RI "#define \fBll_verify\fP(list)"
-.br
-.RI "\fILinked list head verification macro.\fP"
-.ti -1c
-.RI "#define \fBll_count\fP(list)"
-.br
-.RI "\fILinked list count.\fP"
-.ti -1c
-.RI "#define \fBll_first\fP(list)"
-.br
-.RI "\fIFirst element in linked list.\fP"
-.ti -1c
-.RI "#define \fBll_last\fP(list)"
-.br
-.RI "\fILast element in a linked list.\fP"
-.ti -1c
-.RI "#define \fBll_extra\fP(list)"
-.br
-.RI "\fIExtra pointer data in a linked list.\fP"
-.ti -1c
-.RI "#define \fBLINK_ELEM_INIT\fP(obj)"
-.br
-.RI "\fILinked list element static initializer.\fP"
-.ti -1c
-.RI "#define \fBle_verify\fP(element)"
-.br
-.RI "\fILinked list element verification macro.\fP"
-.ti -1c
-.RI "#define \fBle_next\fP(elem)"
-.br
-.RI "\fILinked list element next pointer.\fP"
-.ti -1c
-.RI "#define \fBle_prev\fP(elem)"
-.br
-.RI "\fILinked list element previous pointer.\fP"
-.ti -1c
-.RI "#define \fBle_object\fP(elem)"
-.br
-.RI "\fILinked list element object pointer.\fP"
-.ti -1c
-.RI "#define \fBle_head\fP(elem)"
-.br
-.RI "\fILinked list element head pointer.\fP"
-.ti -1c
-.RI "#define \fBle_flags\fP(elem)"
-.br
-.RI "\fILinked list element flags.\fP"
-.in -1c
-.SS "Typedefs"
-
-.in +1c
-.ti -1c
-.RI "typedef struct _link_head_s \fBlink_head_t\fP"
-.br
-.RI "\fILinked list head.\fP"
-.ti -1c
-.RI "typedef struct _link_elem_s \fBlink_elem_t\fP"
-.br
-.RI "\fILinked list element.\fP"
-.ti -1c
-.RI "typedef unsigned long (* \fBlink_iter_t\fP )(\fBlink_head_t\fP *, \fBlink_elem_t\fP *, void *)"
-.br
-.RI "\fILinked list iteration callback.\fP"
-.ti -1c
-.RI "typedef unsigned long (* \fBlink_comp_t\fP )(\fBdb_key_t\fP *, void *)"
-.br
-.RI "\fILinked list comparison callback.\fP"
-.ti -1c
-.RI "typedef enum \fB_link_loc_e\fP \fBlink_loc_t\fP"
-.br
-.RI "\fILinked list location.\fP"
-.in -1c
-.SS "Enumerations"
-
-.in +1c
-.ti -1c
-.RI "enum \fB_link_loc_e\fP { \fBLINK_LOC_HEAD\fP, \fBLINK_LOC_TAIL\fP, \fBLINK_LOC_BEFORE\fP, \fBLINK_LOC_AFTER\fP }"
-.br
-.RI "\fILinked list location.\fP"
-.in -1c
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "unsigned long \fBll_init\fP (\fBlink_head_t\fP *list, void *extra)"
-.br
-.RI "\fIDynamically initialize a linked list head.\fP"
-.ti -1c
-.RI "unsigned long \fBll_add\fP (\fBlink_head_t\fP *list, \fBlink_elem_t\fP *new, \fBlink_loc_t\fP loc, \fBlink_elem_t\fP *elem)"
-.br
-.RI "\fIAdd an element to a linked list.\fP"
-.ti -1c
-.RI "unsigned long \fBll_move\fP (\fBlink_head_t\fP *list, \fBlink_elem_t\fP *new, \fBlink_loc_t\fP loc, \fBlink_elem_t\fP *elem)"
-.br
-.RI "\fIMove an element within a linked list.\fP"
-.ti -1c
-.RI "unsigned long \fBll_remove\fP (\fBlink_head_t\fP *list, \fBlink_elem_t\fP *elem)"
-.br
-.RI "\fIRemove an element from a linked list.\fP"
-.ti -1c
-.RI "unsigned long \fBll_find\fP (\fBlink_head_t\fP *list, \fBlink_elem_t\fP **elem_p, \fBlink_comp_t\fP comp_func, \fBlink_elem_t\fP *start, \fBdb_key_t\fP *key)"
-.br
-.RI "\fIFind an element in a linked list.\fP"
-.ti -1c
-.RI "unsigned long \fBll_iter\fP (\fBlink_head_t\fP *list, \fBlink_iter_t\fP iter_func, void *extra)"
-.br
-.RI "\fIIterate over each entry in a linked list.\fP"
-.ti -1c
-.RI "unsigned long \fBll_flush\fP (\fBlink_head_t\fP *list, \fBlink_iter_t\fP flush_func, void *extra)"
-.br
-.RI "\fIFlush a linked list.\fP"
-.ti -1c
-.RI "unsigned long \fBle_init\fP (\fBlink_elem_t\fP *elem, void *object)"
-.br
-.RI "\fIDynamically initialize a linked list element.\fP"
-.in -1c
-.SH "DETAILED DESCRIPTION"
-.PP 
-Linked lists are a very basic data structure used in building databases. This library provides a simple yet powerful implementation of generic linked lists, based on two caller-allocated structures. The \fBlink_head_t\fP structure describes the head of a linked list and contains information regarding the number of elements in the linked list as well as pointers referencing the first and last elements in the list. The \fBlink_elem_t\fP structure describes a specific element in the linked list and contains pointers referencing the next and previous elements in the list, as well as a pointer to the object, a pointer to the head of the linked list, and a set of user-specified flags.
-.PP
-Elements may be added at any arbitrary location in the linked list with \fBll_add\fP(); moved to any other arbitrary location in the linked list with \fBll_move\fP(), or removed from the list with \fBll_remove\fP(). In addition, the user may search the list using a user-defined comparison function with \fBll_find\fP(); iterate over every element in the list with \fBll_iter\fP(); or remove all items from the list with \fBll_flush\fP(), optionally executing a user-specified clean-up function. 
-.SH "DEFINE DOCUMENTATION"
-.PP 
-.SS "#define LINK_ELEM_INIT(obj)"
-.PP
-.PP
- This macro statically initializes a \fBlink_elem_t\fP.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fIobj\fP\fP
-A pointer to \fCvoid\fP representing the object associated with the element. 
-.SS "#define LINK_HEAD_INIT(extra)"
-.PP
-.PP
- This macro statically initializes a \fBlink_head_t\fP.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fIextra\fP\fP
-Extra pointer data that should be associated with the list head. 
-.SS "#define le_flags(elem)"
-.PP
-.PP
- This macro retrieves a set of user-defined flags associated with the element. It may be used as an lvalue to set those flags.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fIelem\fP\fP
-A pointer to a \fBlink_elem_t\fP.
-.PP
-\fBReturns: \fP
-.in +1c
-An \fCunsigned long\fP containing the flags associated with the element. 
-.SS "#define le_head(elem)"
-.PP
-.PP
- This macro retrieves a pointer to the head of the linked list that the element is in.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fIelem\fP\fP
-A pointer to a \fBlink_elem_t\fP.
-.PP
-\fBReturns: \fP
-.in +1c
-A pointer to a \fBlink_head_t\fP representing the head of the linked list the element is in. 
-.SS "#define le_next(elem)"
-.PP
-.PP
- This macro retrieves a pointer to the next element in the linked list.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fIelem\fP\fP
-A pointer to a \fBlink_elem_t\fP.
-.PP
-\fBReturns: \fP
-.in +1c
-A pointer to a \fBlink_elem_t\fP representing the next element in the linked list. 
-.SS "#define le_object(elem)"
-.PP
-.PP
- This macro retrieves a pointer to the object represented by the element. It may be used as an lvalue to change the object pointed to. Care should be taken when using this feature.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fIelem\fP\fP
-A pointer to a \fBlink_elem_t\fP.
-.PP
-\fBReturns: \fP
-.in +1c
-A pointer to \fCvoid\fP representing the object associated with the linked list element. 
-.SS "#define le_prev(elem)"
-.PP
-.PP
- This macro retrieves a pointer to the previous element in the linked list.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fIelem\fP\fP
-A pointer to a \fBlink_elem_t\fP.
-.PP
-\fBReturns: \fP
-.in +1c
-A pointer to a \fBlink_elem_t\fP representing the previous element in the linked list. 
-.SS "#define le_verify(element)"
-.PP
-.PP
- This macro verifies that a given pointer actually does point to a linked list element.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fIelement\fP\fP
-A pointer to a \fBlink_elem_t\fP.
-.PP
-\fBReturns: \fP
-.in +1c
-Boolean true if \fCelement\fP is a valid linked list element or false otherwise. 
-.SS "#define ll_count(list)"
-.PP
-.PP
- This macro retrieves the number of elements in a linked list.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fIlist\fP\fP
-A pointer to a \fBlink_head_t\fP.
-.PP
-\fBReturns: \fP
-.in +1c
-An \fCunsigned long\fP containing a count of the number of elements in the linked list. 
-.SS "#define ll_extra(list)"
-.PP
-.PP
- This macro retrieves the extra pointer data associated with a particular linked list.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fIlist\fP\fP
-A pointer to a \fBlink_head_t\fP.
-.PP
-\fBReturns: \fP
-.in +1c
-A pointer to \fCvoid\fP. 
-.SS "#define ll_first(list)"
-.PP
-.PP
- This macro retrieves the first element in a linked list.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fIlist\fP\fP
-A pointer to a \fBlink_head_t\fP.
-.PP
-\fBReturns: \fP
-.in +1c
-A pointer to a \fBlink_elem_t\fP. 
-.SS "#define ll_last(list)"
-.PP
-.PP
- This macro retrieves the last element in a linked list.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fIlist\fP\fP
-A pointer to a \fBlink_head_t\fP.
-.PP
-\fBReturns: \fP
-.in +1c
-A pointer to a \fBlink_elem_t\fP. 
-.SS "#define ll_verify(list)"
-.PP
-.PP
- This macro verifies that a given pointer actually does point to a linked list head.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fIlist\fP\fP
-A pointer to a \fBlink_head_t\fP.
-.PP
-\fBReturns: \fP
-.in +1c
-Boolean true if \fClist\fP is a valid linked list head or false otherwise. 
-.SH "TYPEDEF DOCUMENTATION"
-.PP 
-.SS "typedef unsigned long(* link_comp_t)(\fBdb_key_t\fP *, void *)"
-.PP
-.PP
- This function pointer references a callback used by \fBll_find\fP(). It should return 0 if the entry passed as the second argument matches the key passed as the first argument. 
-.SS "typedef struct _link_elem_s link_elem_t"
-.PP
-.PP
- This structure represents a single element of a linked list. 
-.SS "typedef struct _link_head_s link_head_t"
-.PP
-.PP
- This structure is the head of all linked lists maintained by this library. 
-.SS "typedef unsigned long(* link_iter_t)(\fBlink_head_t\fP *, \fBlink_elem_t\fP *, void *)"
-.PP
-.PP
- This function pointer references a callback used by \fBll_iter\fP() and \fBll_flush\fP(). It should return 0 for success. A non-zero return value will terminate the operation and will become the return value of the \fBll_iter\fP() or \fBll_flush\fP() call. 
-.SS "typedef enum \fB_link_loc_e\fP link_loc_t"
-.PP
-.PP
- See the documentation for the enumeration \fB_link_loc_e\fP. 
-.SH "ENUMERATION TYPE DOCUMENTATION"
-.PP 
-.SS "enum _link_loc_e"
-.PP
-.PP
- This enumeration is used to specify where an element in a linked list should be placed. It should be referenced by the typedef \fBlink_loc_t\fP. 
-.PP
-\fBEnumeration values:\fP
-.in +1c
-.TP
-\fB\fILINK_LOC_HEAD\fP \fP
-Element should be inserted at head of list. 
-.TP
-\fB\fILINK_LOC_TAIL\fP \fP
-Element should be inserted at tail of list. 
-.TP
-\fB\fILINK_LOC_BEFORE\fP \fP
-Element should be inserted before specified element. 
-.TP
-\fB\fILINK_LOC_AFTER\fP \fP
-Element should be inserted after specified element. 
-.SH "FUNCTION DOCUMENTATION"
-.PP 
-.SS "unsigned long le_init (\fBlink_elem_t\fP * elem, void * object)"
-.PP
-.PP
- This function dynamically initializes a linked list element.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fIelem\fP\fP
-A pointer to a \fBlink_elem_t\fP to be initialized. 
-.TP
-\fB\fIobject\fP\fP
-A pointer to \fCvoid\fP used to represent the object associated with the element. May not be \fCNULL\fP.
-.PP
-\fBReturn values: \fP
-.in +1c
-.TP
-\fB\fIDB_ERR_BADARGS\fP\fP
-A \fCNULL\fP pointer was passed for \fCelem\fP or \fCobject\fP. 
-.SS "unsigned long ll_add (\fBlink_head_t\fP * list, \fBlink_elem_t\fP * new, \fBlink_loc_t\fP loc, \fBlink_elem_t\fP * elem)"
-.PP
-.PP
- This function adds a given element to a specified linked list in the specified location.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fIlist\fP\fP
-A pointer to a \fBlink_head_t\fP. 
-.TP
-\fB\fInew\fP\fP
-A pointer to the \fBlink_elem_t\fP to be added to the linked list. 
-.TP
-\fB\fIloc\fP\fP
-A \fBlink_loc_t\fP indicating where the entry should be added. 
-.TP
-\fB\fIelem\fP\fP
-A pointer to a \fBlink_elem_t\fP describing another element in the list if \fCloc\fP is \fBLINK_LOC_BEFORE\fP or \fBLINK_LOC_AFTER\fP.
-.PP
-\fBReturn values: \fP
-.in +1c
-.TP
-\fB\fIDB_ERR_BADARGS\fP\fP
-An argument was invalid. 
-.TP
-\fB\fIDB_ERR_BUSY\fP\fP
-The element is already in a list. 
-.TP
-\fB\fIDB_ERR_WRONGTABLE\fP\fP
-\fCelem\fP is in a different list. 
-.TP
-\fB\fIDB_ERR_UNUSED\fP\fP
-\fCelem\fP is not in any list. 
-.SS "unsigned long ll_find (\fBlink_head_t\fP * list, \fBlink_elem_t\fP ** elem_p, \fBlink_comp_t\fP comp_func, \fBlink_elem_t\fP * start, \fBdb_key_t\fP * key)"
-.PP
-.PP
- This function iterates through a linked list looking for an element that matches the given \fCkey\fP.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fIlist\fP\fP
-A pointer to a \fBlink_head_t\fP. 
-.TP
-\fB\fIelem_p\fP\fP
-A pointer to a pointer to a \fBlink_elem_t\fP. This is a result parameter. \fCNULL\fP is an invalid value. 
-.TP
-\fB\fIcomp_func\fP\fP
-A pointer to a comparison function used to compare the key to a particular element. See the documentation for \fBlink_comp_t\fP for more information. 
-.TP
-\fB\fIstart\fP\fP
-A pointer to a \fBlink_elem_t\fP describing where in the linked list to start. If \fCNULL\fP is passed, the beginning of the list will be assumed. 
-.TP
-\fB\fIkey\fP\fP
-A key to search for.
-.PP
-\fBReturn values: \fP
-.in +1c
-.TP
-\fB\fIDB_ERR_BADARGS\fP\fP
-An argument was invalid. 
-.TP
-\fB\fIDB_ERR_WRONGTABLE\fP\fP
-\fCstart\fP is not in this linked list. 
-.TP
-\fB\fIDB_ERR_NOENTRY\fP\fP
-No matching entry was found. 
-.SS "unsigned long ll_flush (\fBlink_head_t\fP * list, \fBlink_iter_t\fP flush_func, void * extra)"
-.PP
-.PP
- This function flushes a linked list--that is, it removes each element from the list. If a \fCflush_func\fP is specified, it will be called on the entry after it has been removed from the list, and may safely call \fCfree()\fP.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fIlist\fP\fP
-A pointer to a \fBlink_head_t\fP. 
-.TP
-\fB\fIflush_func\fP\fP
-A pointer to a callback function used to perform user-specified actions on an element after removing it from the list. May be \fCNULL\fP. See the documentation for \fBlink_iter_t\fP for more information. 
-.TP
-\fB\fIextra\fP\fP
-A \fCvoid\fP pointer that will be passed to \fCflush_func\fP.
-.PP
-\fBReturn values: \fP
-.in +1c
-.TP
-\fB\fIDB_ERR_BADARGS\fP\fP
-An argument was invalid. 
-.SS "unsigned long ll_init (\fBlink_head_t\fP * list, void * extra)"
-.PP
-.PP
- This function dynamically initializes a linked list head.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fIlist\fP\fP
-A pointer to a \fBlink_head_t\fP to be initialized. 
-.TP
-\fB\fIextra\fP\fP
-A pointer to \fCvoid\fP containing extra pointer data associated with the linked list.
-.PP
-\fBReturn values: \fP
-.in +1c
-.TP
-\fB\fIDB_ERR_BADARGS\fP\fP
-A \fCNULL\fP pointer was passed for \fClist\fP. 
-.SS "unsigned long ll_iter (\fBlink_head_t\fP * list, \fBlink_iter_t\fP iter_func, void * extra)"
-.PP
-.PP
- This function iterates over a linked list, executing the given \fCiter_func\fP for each entry.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fIlist\fP\fP
-A pointer to a \fBlink_head_t\fP. 
-.TP
-\fB\fIiter_func\fP\fP
-A pointer to a callback function used to perform user-specified actions on an element in a linked list. \fCNULL\fP is an invalid value. See the documentation for \fBlink_iter_t\fP for more information. 
-.TP
-\fB\fIextra\fP\fP
-A \fCvoid\fP pointer that will be passed to \fCiter_func\fP.
-.PP
-\fBReturn values: \fP
-.in +1c
-.TP
-\fB\fIDB_ERR_BADARGS\fP\fP
-An argument was invalid. 
-.SS "unsigned long ll_move (\fBlink_head_t\fP * list, \fBlink_elem_t\fP * elem, \fBlink_loc_t\fP loc, \fBlink_elem_t\fP * elem2)"
-.PP
-.PP
- This function moves a specified element within the linked list.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fIlist\fP\fP
-A pointer to a \fBlink_head_t\fP. 
-.TP
-\fB\fIelem\fP\fP
-A pointer to the \fBlink_elem_t\fP describing the element to be moved. 
-.TP
-\fB\fIloc\fP\fP
-A \fBlink_loc_t\fP indicating where the entry should be moved to. 
-.TP
-\fB\fIelem2\fP\fP
-A pointer to a \fBlink_elem_t\fP describing another element in the list if \fCloc\fP is \fBLINK_LOC_BEFORE\fP or \fBLINK_LOC_AFTER\fP.
-.PP
-\fBReturn values: \fP
-.in +1c
-.TP
-\fB\fIDB_ERR_BADARGS\fP\fP
-An argument was invalid. 
-.TP
-\fB\fIDB_ERR_BUSY\fP\fP
-\fCelem\fP and \fCelem2\fP are the same element. 
-.TP
-\fB\fIDB_ERR_WRONGTABLE\fP\fP
-\fCelem\fP or \fCelem2\fP are in a different list. 
-.TP
-\fB\fIDB_ERR_UNUSED\fP\fP
-\fCelem\fP or \fCelem2\fP are not in any list. 
-.SS "unsigned long ll_remove (\fBlink_head_t\fP * list, \fBlink_elem_t\fP * elem)"
-.PP
-.PP
- This function removes a specified element from a linked list.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fIlist\fP\fP
-A pointer to a \fBlink_head_t\fP. 
-.TP
-\fB\fIelem\fP\fP
-A pointer to the \fBlink_elem_t\fP describing the element to be removed.
-.PP
-\fBReturn values: \fP
-.in +1c
-.TP
-\fB\fIDB_ERR_BADARGS\fP\fP
-An argument was invalid. 
-.TP
-\fB\fIDB_ERR_UNUSED\fP\fP
-\fCelem\fP is not in a linked list. 
-.TP
-\fB\fIDB_ERR_WRONGTABLE\fP\fP
-\fCelem\fP is not in this linked list. 
\ No newline at end of file
diff --git a/libs/dbprim/doc/man/man3/dbprim_smat.3 b/libs/dbprim/doc/man/man3/dbprim_smat.3
deleted file mode 100644 (file)
index 77d99d9..0000000
+++ /dev/null
@@ -1,1054 +0,0 @@
-.TH "Sparse matrices" 3 "6 Mar 2003" "dbprim" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-Sparse matrices \- Operations for sparse matrices. 
-More...
-.SS "Defines"
-
-.in +1c
-.ti -1c
-.RI "#define \fBSMAT_TABLE_INIT\fP(flags, resize, extra)"
-.br
-.RI "\fISparse matrix table static initializer.\fP"
-.ti -1c
-.RI "#define \fBst_verify\fP(table)"
-.br
-.RI "\fISparse matrix table verification macro.\fP"
-.ti -1c
-.RI "#define \fBst_flags\fP(table)"
-.br
-.RI "\fISparse matrix table flags.\fP"
-.ti -1c
-.RI "#define \fBst_frozen\fP(table)"
-.br
-.RI "\fIDetermine if a sparse matrix is frozen.\fP"
-.ti -1c
-.RI "#define \fBst_modulus\fP(table)"
-.br
-.RI "\fISparse matrix table modulus.\fP"
-.ti -1c
-.RI "#define \fBst_count\fP(table)"
-.br
-.RI "\fISparse matrix table count.\fP"
-.ti -1c
-.RI "#define \fBst_extra\fP(table)"
-.br
-.RI "\fIExtra pointer data in a sparse matrix table.\fP"
-.ti -1c
-.RI "#define \fBst_size\fP(table)"
-.br
-.RI "\fISparse matrix table memory size.\fP"
-.ti -1c
-.RI "#define \fBSMAT_HEAD_INIT\fP(elem, object)"
-.br
-.RI "\fISparse matrix list head static initializer.\fP"
-.ti -1c
-.RI "#define \fBsh_verify\fP(head)"
-.br
-.RI "\fISparse matrix list head verification macro.\fP"
-.ti -1c
-.RI "#define \fBsh_elem\fP(head)"
-.br
-.RI "\fISparse matrix list head element macro.\fP"
-.ti -1c
-.RI "#define \fBsh_table\fP(head)"
-.br
-.RI "\fISparse matrix list head table pointer.\fP"
-.ti -1c
-.RI "#define \fBsh_frozen\fP(head)"
-.br
-.RI "\fIDetermine if a sparse matrix is frozen.\fP"
-.ti -1c
-.RI "#define \fBsh_count\fP(head)"
-.br
-.RI "\fISparse matrix list count.\fP"
-.ti -1c
-.RI "#define \fBsh_first\fP(head)"
-.br
-.RI "\fIFirst element in sparse matrix list.\fP"
-.ti -1c
-.RI "#define \fBsh_last\fP(head)"
-.br
-.RI "\fILast element in sparse matrix list.\fP"
-.ti -1c
-.RI "#define \fBsh_object\fP(head)"
-.br
-.RI "\fIObject represented by a sparse matrix list head.\fP"
-.ti -1c
-.RI "#define \fBsh_size\fP(head)"
-.br
-.RI "\fISparse matrix list memory size.\fP"
-.ti -1c
-.RI "#define \fBse_verify\fP(entry)"
-.br
-.RI "\fISparse matrix entry verification macro.\fP"
-.ti -1c
-.RI "#define \fBse_table\fP(entry)"
-.br
-.RI "\fISparse matrix entry table.\fP"
-.ti -1c
-.RI "#define \fB_se_link\fP(entry)"
-.br
-.RI "\fISparse matrix entry linked list element.\fP"
-.ti -1c
-.RI "#define \fBse_flags\fP(entry)"
-.br
-.RI "\fISparse matrix entry flags.\fP"
-.ti -1c
-.RI "#define \fBse_hash\fP(entry)"
-.br
-.RI "\fISparse matrix table entry hash value.\fP"
-.ti -1c
-.RI "#define \fBse_next\fP(entry, n)"
-.br
-.RI "\fINext element in sparse matrix list.\fP"
-.ti -1c
-.RI "#define \fBse_prev\fP(entry, n)"
-.br
-.RI "\fIPrevious element in sparse matrix list.\fP"
-.ti -1c
-.RI "#define \fBse_lflags\fP(entry, n)"
-.br
-.RI "\fIFlags associated with an entry in a sparse matrix list.\fP"
-.ti -1c
-.RI "#define \fBse_object\fP(entry, n)"
-.br
-.RI "\fIObject associated with an entry in a sparse matrix list.\fP"
-.in -1c
-.SS "Typedefs"
-
-.in +1c
-.ti -1c
-.RI "typedef struct _smat_table_s \fBsmat_table_t\fP"
-.br
-.RI "\fISparse matrix table.\fP"
-.ti -1c
-.RI "typedef struct _smat_head_s \fBsmat_head_t\fP"
-.br
-.RI "\fISparse matrix list head.\fP"
-.ti -1c
-.RI "typedef struct _smat_entry_s \fBsmat_entry_t\fP"
-.br
-.RI "\fISparse matrix entry.\fP"
-.ti -1c
-.RI "typedef unsigned long (* \fBsmat_resize_t\fP )(\fBsmat_table_t\fP *, unsigned long)"
-.br
-.RI "\fISparse matrix table resize callback.\fP"
-.ti -1c
-.RI "typedef unsigned long (* \fBsmat_iter_t\fP )(\fBsmat_table_t\fP *, \fBsmat_entry_t\fP *, void *)"
-.br
-.RI "\fISparse matrix iteration callback.\fP"
-.ti -1c
-.RI "typedef unsigned long (* \fBsmat_comp_t\fP )(\fBdb_key_t\fP *, \fBsmat_entry_t\fP *)"
-.br
-.RI "\fISparse matrix comparison callback.\fP"
-.ti -1c
-.RI "typedef enum \fB_smat_loc_e\fP \fBsmat_loc_t\fP"
-.br
-.RI "\fISparse matrix location.\fP"
-.in -1c
-.SS "Enumerations"
-
-.in +1c
-.ti -1c
-.RI "enum \fB_smat_loc_e\fP { \fBSMAT_LOC_FIRST\fP, \fBSMAT_LOC_SECOND\fP }"
-.br
-.RI "\fISparse matrix location.\fP"
-.in -1c
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "unsigned long \fBsmat_cleanup\fP (void)"
-.br
-.RI "\fIClean up the smat free list.\fP"
-.ti -1c
-.RI "unsigned long \fBsmat_freemem\fP (void)"
-.br
-.RI "\fIReport how much memory is used by the free list.\fP"
-.ti -1c
-.RI "unsigned long \fBst_init\fP (\fBsmat_table_t\fP *table, unsigned long flags, \fBsmat_resize_t\fP resize, void *extra, unsigned long init_mod)"
-.br
-.ti -1c
-.RI "unsigned long \fBst_add\fP (\fBsmat_table_t\fP *table, \fBsmat_entry_t\fP **entry_p, \fBsmat_head_t\fP *head1, \fBlink_loc_t\fP loc1, \fBsmat_entry_t\fP *ent1, \fBsmat_head_t\fP *head2, \fBlink_loc_t\fP loc2, \fBsmat_entry_t\fP *ent2)"
-.br
-.RI "\fIAdd an entry to a sparse matrix.\fP"
-.ti -1c
-.RI "unsigned long \fBst_remove\fP (\fBsmat_table_t\fP *table, \fBsmat_entry_t\fP *entry)"
-.br
-.RI "\fIRemove an entry from a sparse matrix.\fP"
-.ti -1c
-.RI "unsigned long \fBst_find\fP (\fBsmat_table_t\fP *table, \fBsmat_entry_t\fP **entry_p, \fBsmat_head_t\fP *head1, \fBsmat_head_t\fP *head2)"
-.br
-.RI "\fIFind an entry in a sparse matrix.\fP"
-.ti -1c
-.RI "unsigned long \fBst_iter\fP (\fBsmat_table_t\fP *table, \fBsmat_iter_t\fP iter_func, void *extra)"
-.br
-.RI "\fIIterate over each entry in a sparse matrix.\fP"
-.ti -1c
-.RI "unsigned long \fBst_flush\fP (\fBsmat_table_t\fP *table, \fBsmat_iter_t\fP flush_func, void *extra)"
-.br
-.RI "\fIFlush a sparse matrix.\fP"
-.ti -1c
-.RI "unsigned long \fBst_resize\fP (\fBsmat_table_t\fP *table, unsigned long new_size)"
-.br
-.RI "\fIResize a sparse matrix table.\fP"
-.ti -1c
-.RI "unsigned long \fBst_free\fP (\fBsmat_table_t\fP *table)"
-.br
-.RI "\fIFree memory used by an empty sparse matrix table.\fP"
-.ti -1c
-.RI "unsigned long \fBsh_init\fP (\fBsmat_head_t\fP *head, \fBsmat_loc_t\fP elem, void *object)"
-.br
-.RI "\fIDynamically initialize a sparse matrix row or column head.\fP"
-.ti -1c
-.RI "unsigned long \fBsh_move\fP (\fBsmat_head_t\fP *head, \fBsmat_entry_t\fP *elem, \fBlink_loc_t\fP loc, \fBsmat_entry_t\fP *elem2)"
-.br
-.RI "\fIMove an entry within a row or column list.\fP"
-.ti -1c
-.RI "unsigned long \fBsh_find\fP (\fBsmat_head_t\fP *head, \fBsmat_entry_t\fP **elem_p, \fBsmat_comp_t\fP comp_func, \fBsmat_entry_t\fP *start, \fBdb_key_t\fP *key)"
-.br
-.RI "\fIFind an entry in a row or column of a sparse matrix.\fP"
-.ti -1c
-.RI "unsigned long \fBsh_iter\fP (\fBsmat_head_t\fP *head, \fBsmat_iter_t\fP iter_func, void *extra)"
-.br
-.RI "\fIIterate over each entry in a row or column of a sparse matrix.\fP"
-.in -1c
-.SH "DETAILED DESCRIPTION"
-.PP 
-Sparse matrices are advanced data structures used to represent associations. For instance, a manager may have several employees, but several of those employees may report to more than one manager. (Yes, this is a contrived example, so sue me.) The simplest way to represent such assocations is with a matrix, or a two-dimensional array. However, such an implementation cannot easily be extended dynamically--imagine if a manager retires and two more are hired, for instance. It would also use an enormous amount of memory, as most employees would only report to one or two managers.
-.PP
-A sparse matrix solves this problem by only allocating memory for the cells in the full matrix which are actually used. That is, no memory is allocated to represent Alice reporting to Bob unless Alice actually does report to Bob. This is a simple concept, but fairly difficult to implement efficiently--how do you tell if Alice reports to Bob? The solution utilized by this library is to combine the strengths of linked lists and hash tables. Each cell is in two linked lists, rooted at the rows and columns of the matrix, but a hash table is used when attempting to look up a given cell. If the cell is allocated, then there will be an entry in the hash table, and finding the given cell is as fast as a hash table look-up.
-.PP
-Because sparse matrices are so complicated, there are three structures and a variety of operations used. Two of the structures, \fBsmat_table_t\fP and \fBsmat_head_t\fP, are caller-allocated. However, the third structure, \fBsmat_entry_t\fP, must be allocated by the library. To avoid too much overhead from malloc(), a free list is used. The free list may be managed with the \fBsmat_cleanup\fP() and \fBsmat_freemem\fP() calls.
-.PP
-The \fBsmat_table_t\fP contains the hash table. Only one of these need be allocated per type of association--for instance, in the above example, only one \fBsmat_table_t\fP needs to be allocated to represent the manager-employee relationship.
-.PP
-The \fBsmat_head_t\fP contains the linked list. There are actually two kinds of these structures--one is \fBSMAT_LOC_FIRST\fP, which could be regarded as a ``row,'' and the other is \fBSMAT_LOC_SECOND\fP, which could be regarded as a ``column.'' Which one is used for which type of data is irrelevant, as long as consistency is maintained. For the above example, a \fBsmat_head_t\fP for a manager may be \fBSMAT_LOC_FIRST\fP, and one for an employee must then be \fBSMAT_LOC_SECOND\fP. (These values are set when initializing the \fBsmat_head_t\fP structure.)
-.PP
-An association may be created with the \fBst_add\fP() function, which allows an arbitrary ordering in the associated linked lists by the same mechanism as for the linked list component of the library. An association may be removed with \fBst_remove\fP(), or looked up with \fBst_find\fP(). If iteration over all associations is desired, use the \fBst_iter\fP() function. Removing all associations from a table may be performed with \fBst_flush\fP(), which optionally calls a user-defined clean-up function. The associated hash table may be resized with \fBst_resize\fP(), and the bucket table may be released with \fBst_free\fP().
-.PP
-An association may also be reordered within the linked lists using the \fBsh_move\fP() function. If a particular entry is desired, use the \fBsh_find\fP() function with a user-defined comparison function to locate it. Iteration may be performed with the \fBsh_iter\fP() function, and all entries in a given linked list may be removed with the sh_flush() function, which again may optionally call a user-defined clean-up function. 
-.SH "DEFINE DOCUMENTATION"
-.PP 
-.SS "#define SMAT_HEAD_INIT(elem, object)"
-.PP
-.PP
- This macro statically initializes a \fBsmat_head_t\fP.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fIelem\fP\fP
-One of \fBSMAT_LOC_FIRST\fP or \fBSMAT_LOC_SECOND\fP specifing whether the object is a member of the set of rows or columns. 
-.TP
-\fB\fIobject\fP\fP
-A pointer to \fCvoid\fP representing the object associated with the list head. 
-.SS "#define SMAT_TABLE_INIT(flags, resize, extra)"
-.PP
-.PP
- This macro statically initializes a \fBsmat_table_t\fP.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fIflags\fP\fP
-A bit-wise OR of \fBHASH_FLAG_AUTOGROW\fP and \fBHASH_FLAG_AUTOSHRINK\fP. If neither behavior is desired, use 0. 
-.TP
-\fB\fIresize\fP\fP
-A \fBsmat_resize_t\fP function pointer for determining whether resizing is permitted and/or for notification of the resize. 
-.TP
-\fB\fIextra\fP\fP
-Extra pointer data that should be associated with the sparse matrix. 
-.SS "#define _se_link(entry)"
-.PP
-.PP
-For internal use only.
-.SS "#define se_flags(entry)"
-.PP
-.PP
- This macro retrieves a set of user-defined flags associated with the entry. It may be used as an lvalue to set those flags.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fIentry\fP\fP
-A pointer to a \fBsmat_entry_t\fP.
-.PP
-\fBReturns: \fP
-.in +1c
-An \fCunsigned long\fP containing the flags associated with the entry. 
-.SS "#define se_hash(entry)"
-.PP
-.PP
- This macro retrieves the hash value of the given sparse matrix entry. If the sparse matrix hash been resized, this value may not be the same as a previous value.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fIentry\fP\fP
-A pointer to a \fBsmat_entry_t\fP.
-.PP
-\fBReturns: \fP
-.in +1c
-An \fCunsigned long\fP containing the hash code for the entry. 
-.SS "#define se_lflags(entry, n)"
-.PP
-.PP
- This macro retrieves a set of user-defined flags associated with the entry in a sparse matrix list. It may be used as an lvalue to set those flags.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fIentry\fP\fP
-A pointer to \fBsmat_entry_t\fP. 
-.TP
-\fB\fIn\fP\fP
-One of \fBSMAT_LOC_FIRST\fP or \fBSMAT_LOC_SECOND\fP to specify which list thread is desired.
-.PP
-\fBReturns: \fP
-.in +1c
-An \fCunsigned long\fP containing the flags associated with the entry. 
-.SS "#define se_next(entry, n)"
-.PP
-.PP
- This macro retrieves a pointer to the \fBlink_elem_t\fP for the next element in the sparse matrix list.
-.PP
-\fBWarning: \fP
-.in +1c
-This macro may evaluate the \fCentry\fP and \fCn\fP arguments twice.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fIentry\fP\fP
-A pointer to \fBsmat_entry_t\fP. 
-.TP
-\fB\fIn\fP\fP
-One of \fBSMAT_LOC_FIRST\fP or \fBSMAT_LOC_SECOND\fP to specify which list thread is desired.
-.PP
-\fBReturns: \fP
-.in +1c
-A pointer to \fBsmat_entry_t\fP. 
-.SS "#define se_object(entry, n)"
-.PP
-.PP
- This macro retrieves a pointer to one of the object represented by the entry. It may be used as an lvalue to change the object pointed to. Care should be taken when using this feature.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fIentry\fP\fP
-A pointer to \fBsmat_entry_t\fP. 
-.TP
-\fB\fIn\fP\fP
-One of \fBSMAT_LOC_FIRST\fP or \fBSMAT_LOC_SECOND\fP to specify which list thread is desired.
-.PP
-\fBReturns: \fP
-.in +1c
-A pointer to \fCvoid\fP representing the object. 
-.SS "#define se_prev(entry, n)"
-.PP
-.PP
- This macro retrieves a pointer to the \fBlink_elem_t\fP for the previous element in the sparse matrix list.
-.PP
-\fBWarning: \fP
-.in +1c
-This macro may evaluate the \fCentry\fP and \fCn\fP arguments twice.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fIentry\fP\fP
-A pointer to \fBsmat_entry_t\fP. 
-.TP
-\fB\fIn\fP\fP
-One of \fBSMAT_LOC_FIRST\fP or \fBSMAT_LOC_SECOND\fP to specify which list thread is desired.
-.PP
-\fBReturns: \fP
-.in +1c
-A pointer to \fBsmat_entry_t\fP. 
-.SS "#define se_table(entry)"
-.PP
-.PP
- This macro retrieves a pointer to the table that the sparse matrix entry is in.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fIentry\fP\fP
-A pointer to a \fBsmat_entry_t\fP.
-.PP
-\fBReturns: \fP
-.in +1c
-A pointer to a \fBsmat_table_t\fP. 
-.SS "#define se_verify(entry)"
-.PP
-.PP
- This macro verifies that a given pointer actually does point to a sparse matrix entry.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fIentry\fP\fP
-A pointer to a \fBsmat_entry_t\fP.
-.PP
-\fBReturns: \fP
-.in +1c
-Boolean true if \fCentry\fP is a valid sparse matrix entry or false otherwise. 
-.SS "#define sh_count(head)"
-.PP
-.PP
- This macro retrieves the number of elements in the sparse matrix list rooted at \fChead\fP.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fIhead\fP\fP
-A pointer to \fBsmat_head_t\fP.
-.PP
-\fBReturns: \fP
-.in +1c
-An \fCunsigned long\fP containing a count of the number of elements in the sparse matrix list. 
-.SS "#define sh_elem(head)"
-.PP
-.PP
- This macro retrieves the position indicator for the sparse matrix head. It will return one of \fBSMAT_LOC_FIRST\fP or \fBSMAT_LOC_SECOND\fP.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fIhead\fP\fP
-A pointer to \fBsmat_head_t\fP.
-.PP
-\fBReturns: \fP
-.in +1c
-An \fBsmat_loc_t\fP. 
-.SS "#define sh_first(head)"
-.PP
-.PP
- This macro retrieves a pointer to the \fBsmat_entry_t\fP for the first element in the sparse matrix list.
-.PP
-\fBWarning: \fP
-.in +1c
-This macro may evaluate the \fChead\fP argument twice.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fIhead\fP\fP
-A pointer to \fBsmat_head_t\fP.
-.PP
-\fBReturns: \fP
-.in +1c
-A pointer to \fBsmat_entry_t\fP. 
-.SS "#define sh_frozen(head)"
-.PP
-.PP
- This macro returns a non-zero value if the matrix is currently frozen. The sparse matrix may be frozen if there is an iteration in progress.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fIhead\fP\fP
-A pointer to a \fBsmat_head_t\fP.
-.PP
-\fBReturns: \fP
-.in +1c
-A zero value if the matrix is not frozen or a non-zero value if the matrix is frozen. 
-.SS "#define sh_last(head)"
-.PP
-.PP
- This macro retrieves a pointer to the \fBsmat_entry_t\fP for the last element in the sparse matrix list.
-.PP
-\fBWarning: \fP
-.in +1c
-This macro may evaluate the \fChead\fP argument twice.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fIhead\fP\fP
-A pointer to \fBsmat_head_t\fP.
-.PP
-\fBReturns: \fP
-.in +1c
-A pointer to \fBsmat_entry_t\fP. 
-.SS "#define sh_object(head)"
-.PP
-.PP
- This macro retrieves a pointer to the object referenced by the sparse matrix list head.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fIhead\fP\fP
-A pointer to \fBsmat_head_t\fP.
-.PP
-\fBReturns: \fP
-.in +1c
-A pointer to \fCvoid\fP. 
-.SS "#define sh_size(head)"
-.PP
-.PP
- This macro returns the physical size of the memory allocated by the library for this sparse matrix list.
-.PP
-\fBNote: \fP
-.in +1c
-The \fBst_size\fP() macro already counts the memory for each list in the table. Summing the results of \fBsh_size\fP() and \fBst_size\fP() will over-count the amount of memory actually in use.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fIhead\fP\fP
-A pointer to \fBsmat_head_t\fP.
-.PP
-\fBReturns: \fP
-.in +1c
-A \fCsize_t\fP. 
-.SS "#define sh_table(head)"
-.PP
-.PP
- If there are any elements in this sparse matrix list head, this macro will retrieve a pointer to the table in which they reside.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fIhead\fP\fP
-A pointer to \fBsmat_head_t\fP.
-.PP
-\fBReturns: \fP
-.in +1c
-A pointer to \fBsmat_table_t\fP. 
-.SS "#define sh_verify(head)"
-.PP
-.PP
- This macro verifies that a given pointer actually does point to a sparse matrix head.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fIhead\fP\fP
-A pointer to a \fBsmat_head_t\fP.
-.PP
-\fBReturns: \fP
-.in +1c
-Boolean true if \fChead\fP is a valid sparse matrix head or false otherwise. 
-.SS "#define st_count(table)"
-.PP
-.PP
- This macro retrieves the total number of items actually in the sparse matrix table.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fItable\fP\fP
-A pointer to a \fBsmat_table_t\fP.
-.PP
-\fBReturns: \fP
-.in +1c
-An \fCunsigned long\fP containing a count of the number of items in the sparse matrix table. 
-.SS "#define st_extra(table)"
-.PP
-.PP
- This macro retrieves the extra pointer data associated with a particular sparse matrix table.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fItable\fP\fP
-A pointer to a \fBsmat_table_t\fP.
-.PP
-\fBReturns: \fP
-.in +1c
-A pointer to \fCvoid\fP. 
-.SS "#define st_flags(table)"
-.PP
-.PP
- This macro retrieves the flags associated with the sparse matrix table. Only \fBHASH_FLAG_AUTOGROW\fP and \fBHASH_FLAG_AUTOSHRINK\fP have any meaning to the application; all other bits are reserved for use in the library. This macro may be used as an lvalue, but care must be taken to avoid modifying the library-specific bits.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fItable\fP\fP
-A pointer to a \fBsmat_table_t\fP.
-.PP
-\fBReturns: \fP
-.in +1c
-An \fCunsigned long\fP containing the flags for the sparse matrix table. 
-.SS "#define st_frozen(table)"
-.PP
-.PP
- This macro returns a non-zero value if the matrix is currently frozen. The sparse matrix may be frozen if there is an iteration in progress.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fItable\fP\fP
-A pointer to a \fBsmat_table_t\fP.
-.PP
-\fBReturns: \fP
-.in +1c
-A zero value if the matrix is not frozen or a non-zero value if the matrix is frozen. 
-.SS "#define st_modulus(table)"
-.PP
-.PP
- This macro retrieves the number of buckets allocated for the sparse matrix table. An application may wish to save this value between invocations to avoid the overhead of growing the table while filling it with data.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fItable\fP\fP
-A pointer to a \fBsmat_table_t\fP.
-.PP
-\fBReturns: \fP
-.in +1c
-An \fCunsigned long\fP containing the number of buckets allocated for the sparse matrix table. 
-.SS "#define st_size(table)"
-.PP
-.PP
- This macro returns the physical size of the memory allocated by the library for this sparse matrix table.
-.PP
-\fBNote: \fP
-.in +1c
-The \fBst_size\fP() macro already counts the memory for each list in the table. Summing the results of \fBsh_size\fP() and \fBst_size\fP() will over-count the amount of memory actually in use.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fItable\fP\fP
-A pointer to a \fBsmat_table_t\fP.
-.PP
-\fBReturns: \fP
-.in +1c
-A \fCsize_t\fP. 
-.SS "#define st_verify(table)"
-.PP
-.PP
- This macro verifies that a given pointer actually does point to a sparse matrix table.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fItable\fP\fP
-A pointer to a \fBsmat_table_t\fP.
-.PP
-\fBReturns: \fP
-.in +1c
-Boolean true if \fCtable\fP is a valid sparse matrix table or false otherwise. 
-.SH "TYPEDEF DOCUMENTATION"
-.PP 
-.SS "typedef unsigned long(* smat_comp_t)(\fBdb_key_t\fP *, \fBsmat_entry_t\fP *)"
-.PP
-.PP
- This function pointer references a callback used by \fBsh_find\fP(). It should return 0 if the sparse matrix entry represented by the second argument matches the key passed as the first argument. 
-.SS "typedef struct _smat_entry_s smat_entry_t"
-.PP
-.PP
- This structure is allocated by the library and represents a single element in a sparse matrix. 
-.SS "typedef struct _smat_head_s smat_head_t"
-.PP
-.PP
- This structure is the head of a linked list of sparse matrix entries. 
-.SS "typedef unsigned long(* smat_iter_t)(\fBsmat_table_t\fP *, \fBsmat_entry_t\fP *, void *)"
-.PP
-.PP
- This function pointer references a callback used by \fBst_iter\fP(), \fBst_flush\fP(), \fBsh_iter\fP(), and sh_flush(). It should return 0 for success. A non-zero return value will terminate the operation and will become the return value of the call. 
-.SS "typedef enum \fB_smat_loc_e\fP smat_loc_t"
-.PP
-.PP
- See the documentation for the enumeration \fB_smat_loc_e\fP. 
-.SS "typedef unsigned long(* smat_resize_t)(\fBsmat_table_t\fP *, unsigned long)"
-.PP
-.PP
- This function pointer references a callback that will be called with both the old and new sparse matrix table sizes whenever a sparse matrix's hash table table is resized. It should return non-zero only when the resize should be inhibited. 
-.SS "typedef struct _smat_table_s smat_table_t"
-.PP
-.PP
- This structure is the basis of all sparse matrices maintained by this library. 
-.SH "ENUMERATION TYPE DOCUMENTATION"
-.PP 
-.SS "enum _smat_loc_e"
-.PP
-.PP
- This enumeration is used to specify whether an element is a row or column element. It should be referenced by the typedef \fBsmat_loc_t\fP. 
-.PP
-\fBEnumeration values:\fP
-.in +1c
-.TP
-\fB\fISMAT_LOC_FIRST\fP \fP
-First entry (``row''). 
-.TP
-\fB\fISMAT_LOC_SECOND\fP \fP
-Second entry (``column''). 
-.SH "FUNCTION DOCUMENTATION"
-.PP 
-.SS "unsigned long sh_find (\fBsmat_head_t\fP * head, \fBsmat_entry_t\fP ** elem_p, \fBsmat_comp_t\fP comp_func, \fBsmat_entry_t\fP * start, \fBdb_key_t\fP * key)"
-.PP
-.PP
- This function iterates through the given row or column of a sparse matrix looking for an element that matches the given \fCkey\fP.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fIhead\fP\fP
-A pointer to a \fBsmat_head_t\fP. 
-.TP
-\fB\fIelem_p\fP\fP
-A pointer to a pointer to a \fBsmat_entry_t\fP. This is a result pramater. \fCNULL\fP is an invalid value. 
-.TP
-\fB\fIcomp_func\fP\fP
-A pointer to a comparison function used to compare the key to a particular entry. See the documentation for \fBsmat_comp_t\fP for more information. 
-.TP
-\fB\fIstart\fP\fP
-A pointer to a \fBsmat_entry_t\fP describing where in the row or column to start. If \fCNULL\fP is passed, the beginning of the row or column will be assumed. 
-.TP
-\fB\fIkey\fP\fP
-A key to search for.
-.PP
-\fBReturn values: \fP
-.in +1c
-.TP
-\fB\fIDB_ERR_BADARGS\fP\fP
-An argument was invalid. 
-.TP
-\fB\fIDB_ERR_WRONGTABLE\fP\fP
-\fCstart\fP is not in this row or column. 
-.TP
-\fB\fIDB_ERR_NOENTRY\fP\fP
-No matching entry was found. 
-.SS "unsigned long sh_init (\fBsmat_head_t\fP * head, \fBsmat_loc_t\fP elem, void * object)"
-.PP
-.PP
- This function dynamically initializes a sparse matrix row or column linked list head. The \fCelem\fP argument specifies whether the object is to be associated with a \fBSMAT_LOC_FIRST\fP list or a \fBSMAT_LOC_SECOND\fP list.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fIhead\fP\fP
-A pointer to a \fBsmat_head_t\fP to be initialized. 
-.TP
-\fB\fIelem\fP\fP
-Either \fBSMAT_LOC_FIRST\fP or \fBSMAT_LOC_SECOND\fP. 
-.TP
-\fB\fIobject\fP\fP
-A pointer to the object containing the sparse matrix row or column head.
-.PP
-\fBReturn values: \fP
-.in +1c
-.TP
-\fB\fIDB_ERR_BADARGS\fP\fP
-An invalid argument was given. 
-.SS "unsigned long sh_iter (\fBsmat_head_t\fP * head, \fBsmat_iter_t\fP iter_func, void * extra)"
-.PP
-.PP
- This function iterates over a row or column of a sparse matrix, executing the given \fCiter_func\fP for each entry.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fIhead\fP\fP
-A pointer to a \fBsmat_head_t\fP. 
-.TP
-\fB\fIiter_func\fP\fP
-A pointer to a callback function used to perform user-specified actions on an entry in a row or column of a sparse matrix. \fCNULL\fP is an invalid value. See the documentation for \fBsmat_iter_t\fP for more information. 
-.TP
-\fB\fIextra\fP\fP
-A \fCvoid\fP pointer that will be passed to \fCiter_func\fP.
-.PP
-\fBReturn values: \fP
-.in +1c
-.TP
-\fB\fIDB_ERR_BADARGS\fP\fP
-An argument was invalid. 
-.SS "unsigned long sh_move (\fBsmat_head_t\fP * head, \fBsmat_entry_t\fP * elem, \fBlink_loc_t\fP loc, \fBsmat_entry_t\fP * elem2)"
-.PP
-.PP
- This function allows the specified entry to be shifted within the linked list describing the row or column. It is very similar to the \fBll_move\fP() function.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fIhead\fP\fP
-A pointer to a \fBsmat_head_t\fP. 
-.TP
-\fB\fIelem\fP\fP
-A pointer to the \fBsmat_entry_t\fP describing the entry to be moved. 
-.TP
-\fB\fIloc\fP\fP
-A \fBlink_loc_t\fP indicating where the entry should be moved to. 
-.TP
-\fB\fIelem2\fP\fP
-A pointer to a \fBsmat_entry_t\fP describing another entry in the list if \fCloc\fP is \fBLINK_LOC_BEFORE\fP or \fBLINK_LOC_AFTER\fP.
-.PP
-\fBReturn values: \fP
-.in +1c
-.TP
-\fB\fIDB_ERR_BADARGS\fP\fP
-An argument was invalid. 
-.TP
-\fB\fIDB_ERR_BUSY\fP\fP
-\fCelem\fP and \fCelem2\fP are the same entry. 
-.TP
-\fB\fIDB_ERR_WRONGTABLE\fP\fP
-\fCelem\fP or \fCelem2\fP are in a different row or column. 
-.TP
-\fB\fIDB_ERR_UNUSED\fP\fP
-\fCelem\fP or \fCelem2\fP are not in any row or column. 
-.SS "unsigned long smat_cleanup (void)"
-.PP
-.PP
- This function frees all smat_entry_t objects on the internal free list. It is always successful and returns 0. 
-.SS "unsigned long smat_freemem (void)"
-.PP
-.PP
- This function returns the amount of memory being used by the internal free list of smat_entry_t objects.
-.PP
-\fBReturns: \fP
-.in +1c
-A number indicating the size, in bytes, of the memory allocated for smat_entry_t objects on the free list. 
-.SS "unsigned long st_add (\fBsmat_table_t\fP * table, \fBsmat_entry_t\fP ** entry_p, \fBsmat_head_t\fP * head1, \fBlink_loc_t\fP loc1, \fBsmat_entry_t\fP * ent1, \fBsmat_head_t\fP * head2, \fBlink_loc_t\fP loc2, \fBsmat_entry_t\fP * ent2)"
-.PP
-.PP
- This function adds an entry to a sparse matrix. The entry is referenced in three different places, thus the complex set of arguments. This function will allocate a \fBsmat_entry_t\fP and return it through the \fCentry_p\fP result parameter.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fItable\fP\fP
-A pointer to a \fBsmat_table_t\fP. 
-.TP
-\fB\fIentry_p\fP\fP
-A pointer to a pointer to a \fBsmat_entry_t\fP. This is a result parameter. If \fCNULL\fP is passed, the addition will be performed and an appropriate error code returned. 
-.TP
-\fB\fIhead1\fP\fP
-A pointer to a \fBsmat_head_t\fP representing a \fBSMAT_LOC_FIRST\fP sparse matrix list. 
-.TP
-\fB\fIloc1\fP\fP
-A \fBlink_loc_t\fP indicating where the entry should be added for \fChead1\fP. 
-.TP
-\fB\fIent1\fP\fP
-A pointer to a \fBsmat_entry_t\fP describing another element in the list represented by \fChead1\fP if \fCloc1\fP is \fBLINK_LOC_BEFORE\fP or \fBLINK_LOC_AFTER\fP. 
-.TP
-\fB\fIhead2\fP\fP
-A pointer to a \fBsmat_head_t\fP representing a \fBSMAT_LOC_SECOND\fP sparse matrix list. 
-.TP
-\fB\fIloc2\fP\fP
-A \fBlink_loc_t\fP indicating where the entry should be added for \fChead2\fP. 
-.TP
-\fB\fIent2\fP\fP
-A pointer to a \fBsmat_entry_t\fP describing another element in the list represented by \fChead2\fP if \fCloc2\fP is \fBLINK_LOC_BEFORE\fP or \fBLINK_LOC_AFTER\fP.
-.PP
-\fBReturn values: \fP
-.in +1c
-.TP
-\fB\fIDB_ERR_BADARGS\fP\fP
-An argument was invalid. 
-.TP
-\fB\fIDB_ERR_BUSY\fP\fP
-One of the arguments is already in the table. 
-.TP
-\fB\fIDB_ERR_FROZEN\fP\fP
-The table is currently frozen. 
-.TP
-\fB\fIDB_ERR_NOTABLE\fP\fP
-The bucket table has not been allocated and automatic growth is not enabled. 
-.TP
-\fB\fIDB_ERR_WRONGTABLE\fP\fP
-One of the arguments was not in the proper table or list. 
-.TP
-\fB\fIDB_ERR_UNUSED\fP\fP
-One of the \fCent\fP arguments is not presently in a list. 
-.TP
-\fB\fIDB_ERR_UNRECOVERABLE\fP\fP
-An unrecoverable error occurred while resizing the table. 
-.TP
-\fB\fIENOMEM\fP\fP
-No memory could be allocated for the \fBsmat_entry_t\fP structure. 
-.SS "unsigned long st_find (\fBsmat_table_t\fP * table, \fBsmat_entry_t\fP ** entry_p, \fBsmat_head_t\fP * head1, \fBsmat_head_t\fP * head2)"
-.PP
-.PP
- This function looks up the entry matching the given \fChead1\fP and \fChead2\fP.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fItable\fP\fP
-A pointer to a \fBsmat_table_t\fP. 
-.TP
-\fB\fIentry_p\fP\fP
-A pointer to a pointer to a \fBsmat_entry_t\fP. This is a result parameter. If \fCNULL\fP is passed, the lookup will be performed and an appropriate error code returned. 
-.TP
-\fB\fIhead1\fP\fP
-A pointer to a \fBsmat_head_t\fP initialized to \fBSMAT_LOC_FIRST\fP. 
-.TP
-\fB\fIhead2\fP\fP
-A pointer to a \fBsmat_head_t\fP initialized to \fBSMAT_LOC_SECOND\fP.
-.PP
-\fBReturn values: \fP
-.in +1c
-.TP
-\fB\fIDB_ERR_BADARGS\fP\fP
-An argument was invalid. 
-.TP
-\fB\fIDB_ERR_WRONGTABLE\fP\fP
-One or both of \fChead1\fP or \fChead2\fP are not referenced in this table. 
-.TP
-\fB\fIDB_ERR_NOENTRY\fP\fP
-No matching entry was found. 
-.SS "unsigned long st_flush (\fBsmat_table_t\fP * table, \fBsmat_iter_t\fP flush_func, void * extra)"
-.PP
-.PP
- This function flushes a sparse matrix--that is, it removes each entry from the matrix. If a \fCflush_func\fP is specified, it will be called on the entry after it has been removed from the table, and may safely call \fCfree()\fP.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fItable\fP\fP
-A pointer to a \fBsmat_table_t\fP. 
-.TP
-\fB\fIflush_func\fP\fP
-A pointer to a callback function used to perform user-specified actions on an entry after removing it from the table. May be \fCNULL\fP. See the documentation for \fBsmat_iter_t\fP for more information. 
-.TP
-\fB\fIextra\fP\fP
-A \fCvoid\fP pointer that will be passed to \fCiter_func\fP.
-.PP
-\fBReturn values: \fP
-.in +1c
-.TP
-\fB\fIDB_ERR_BADARGS\fP\fP
-An argument was invalid. 
-.TP
-\fB\fIDB_ERR_FROZEN\fP\fP
-The sparse matrix is frozen. 
-.SS "unsigned long st_free (\fBsmat_table_t\fP * table)"
-.PP
-.PP
- This function releases the memory used by the bucket table of the empty hash table associated with a sparse matrix.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fItable\fP\fP
-A pointer to a \fBsmat_table_t\fP.
-.PP
-\fBReturn values: \fP
-.in +1c
-.TP
-\fB\fIDB_ERR_BADARGS\fP\fP
-An invalid argument was given. 
-.TP
-\fB\fIDB_ERR_FROZEN\fP\fP
-The table is frozen. 
-.TP
-\fB\fIDB_ERR_NOTEMPTY\fP\fP
-The table is not empty. 
-.SS "unsigned long st_init (\fBsmat_table_t\fP * table, unsigned long flags, \fBsmat_resize_t\fP resize, void * extra, unsigned long init_mod)"
-.PP
-This function dynamically initializes a sparse matrix table.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fItable\fP\fP
-A pointer to a \fBsmat_table_t\fP to be initialized. 
-.TP
-\fB\fIflags\fP\fP
-A bit-wise OR of \fBHASH_FLAG_AUTOGROW\fP and \fBHASH_FLAG_AUTOSHRINK\fP. If neither behavior is desired, use 0. 
-.TP
-\fB\fIresize\fP\fP
-A \fBhash_resize_t\fP function pointer for determining whether resizing is permitted and/or for notification of the resize. 
-.TP
-\fB\fIextra\fP\fP
-Extra pointer data that should be associated with the sparse matrix table. 
-.TP
-\fB\fIinit_mod\fP\fP
-An initial modulus for the table. This will presumably be extracted by \fBst_modulus\fP() in a previous invocation of the application. A 0 value is valid.
-.PP
-\fBReturn values: \fP
-.in +1c
-.TP
-\fB\fIDB_ERR_BADARGS\fP\fP
-An invalid argument was given. 
-.TP
-\fB\fIENOMEM\fP\fP
-Unable to allocate memory. 
-.SS "unsigned long st_iter (\fBsmat_table_t\fP * table, \fBsmat_iter_t\fP iter_func, void * extra)"
-.PP
-.PP
- This function iterates over every entry in a sparse matrix (in an unspecified order), executing the given \fCiter_func\fP on each entry.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fItable\fP\fP
-A pointer to a \fBsmat_table_t\fP. 
-.TP
-\fB\fIiter_func\fP\fP
-A pointer to a callback function used to perform user-specified actions on an entry in a sparse matrix. \fCNULL\fP is an invalid value. See the documentation for \fBsmat_iter_t\fP for more information. 
-.TP
-\fB\fIextra\fP\fP
-A \fCvoid\fP pointer that will be passed to \fCiter_func\fP.
-.PP
-\fBReturn values: \fP
-.in +1c
-.TP
-\fB\fIDB_ERR_BADARGS\fP\fP
-An argument was invalid. 
-.TP
-\fB\fIDB_ERR_FROZEN\fP\fP
-The sparse matrix is frozen. 
-.SS "unsigned long st_remove (\fBsmat_table_t\fP * table, \fBsmat_entry_t\fP * entry)"
-.PP
-.PP
- This function removes the given entry from the specified sparse matrix.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fItable\fP\fP
-A pointer to a \fBsmat_table_t\fP. 
-.TP
-\fB\fIentry\fP\fP
-A pointer to a \fBsmat_entry_t\fP to be removed from the table.
-.PP
-\fBReturn values: \fP
-.in +1c
-.TP
-\fB\fIDB_ERR_BADARGS\fP\fP
-An invalid argument was given. 
-.TP
-\fB\fIDB_ERR_WRONGTABLE\fP\fP
-Entry is not in this sparse matrix. 
-.TP
-\fB\fIDB_ERR_UNRECOVERABLE\fP\fP
-An unrecoverable error occurred while removing the entry from the table. 
-.SS "unsigned long st_resize (\fBsmat_table_t\fP * table, unsigned long new_size)"
-.PP
-.PP
- This function resizes the hash table associated with a sparse matrix based on the \fCnew_size\fP parameter. See the documentation for \fBht_resize\fP() for more information.
-.PP
-\fBParameters: \fP
-.in +1c
-.TP
-\fB\fItable\fP\fP
-A pointer to a \fBsmat_table_t\fP. 
-.TP
-\fB\fInew_size\fP\fP
-A new size value for the table.
-.PP
-\fBReturn values: \fP
-.in +1c
-.TP
-\fB\fIDB_ERR_BADARGS\fP\fP
-An argument was invalid. 
-.TP
-\fB\fIDB_ERR_FROZEN\fP\fP
-The table is currently frozen. 
-.TP
-\fB\fIDB_ERR_UNRECOVERABLE\fP\fP
-A catastrophic error was encountered. The table is now unusable. 
-.TP
-\fB\fIENOMEM\fP\fP
-No memory could be allocated for the new bucket table. 
\ No newline at end of file
diff --git a/libs/dbprim/he_init.c b/libs/dbprim/he_init.c
deleted file mode 100644 (file)
index 6ebdce0..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
-** Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-**
-** This library is free software; you can redistribute it and/or
-** modify it under the terms of the GNU Library General Public
-** License as published by the Free Software Foundation; either
-** version 2 of the License, or (at your option) any later version.
-**
-** This library 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
-** Library General Public License for more details.
-**
-** You should have received a copy of the GNU Library General Public
-** License along with this library; if not, write to the Free
-** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-** MA 02111-1307, USA
-**
-** @(#)$Id$
-*/
-#include "dbprim.h"
-#include "dbprim_int.h"
-
-RCSTAG("@(#)$Id$");
-
-/** \ingroup dbprim_hash
- * \brief Dynamically initialize a hash table entry.
- *
- * This function dynamically initializes a hash table entry.
- *
- * \param entry        A pointer to a #hash_entry_t to be initialized.
- * \param value        A pointer to \c void which will be the value of the
- *             hash table entry.
- *
- * \retval DB_ERR_BADARGS      A \c NULL pointer was passed for \p
- *                             entry.
- */
-unsigned long
-he_init(hash_entry_t *entry, void *value)
-{
-  unsigned long retval;
-
-  initialize_dbpr_error_table(); /* initialize error table */
-
-  if (!entry) /* verify arguments */
-    return DB_ERR_BADARGS;
-
-  /* initialize the link entry */
-  if ((retval = le_init(&entry->he_elem, entry)))
-    return retval;
-
-  entry->he_table = 0; /* initialize the rest of the hash entry */
-  entry->he_hash = 0;
-  entry->he_key.dk_key = 0;
-  entry->he_key.dk_len = 0;
-  entry->he_value = value;
-
-  entry->he_magic = HASH_ENTRY_MAGIC; /* set the magic number */
-
-  return 0;
-}
diff --git a/libs/dbprim/ht_add.c b/libs/dbprim/ht_add.c
deleted file mode 100644 (file)
index dc09e13..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
-** Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-**
-** This library is free software; you can redistribute it and/or
-** modify it under the terms of the GNU Library General Public
-** License as published by the Free Software Foundation; either
-** version 2 of the License, or (at your option) any later version.
-**
-** This library 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
-** Library General Public License for more details.
-**
-** You should have received a copy of the GNU Library General Public
-** License along with this library; if not, write to the Free
-** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-** MA 02111-1307, USA
-**
-** @(#)$Id$
-*/
-#include "dbprim.h"
-#include "dbprim_int.h"
-
-RCSTAG("@(#)$Id$");
-
-/** \ingroup dbprim_hash
- * \brief Add an entry to a hash table.
- *
- * This function adds an entry to a hash table.
- *
- * \param table        A pointer to a #hash_table_t.
- * \param entry        A pointer to a #hash_entry_t to be added to the
- *             table.
- * \param key  A pointer to a #db_key_t containing the key for the
- *             entry.
- *
- * \retval DB_ERR_BADARGS      An invalid argument was given.
- * \retval DB_ERR_BUSY         The entry is already in a table.
- * \retval DB_ERR_FROZEN       The table is currently frozen.
- * \retval DB_ERR_NOTABLE      The bucket table has not been
- *                             allocated and automatic growth is not
- *                             enabled.
- * \retval DB_ERR_DUPLICATE    The entry is a duplicate of an
- *                             existing entry.
- * \retval DB_ERR_UNRECOVERABLE        An unrecoverable error occurred while
- *                             resizing the table.
- */
-unsigned long
-ht_add(hash_table_t *table, hash_entry_t *entry, db_key_t *key)
-{
-  unsigned long retval;
-
-  initialize_dbpr_error_table(); /* initialize error table */
-
-  if (!ht_verify(table) || !he_verify(entry) || !key) /* verify arguments */
-    return DB_ERR_BADARGS;
-
-  if (entry->he_table) /* it's already in a table... */
-    return DB_ERR_BUSY;
-
-  if (table->ht_flags & HASH_FLAG_FREEZE) /* don't add to frozen tables */
-    return DB_ERR_FROZEN;
-
-  if (!table->ht_table && !(table->ht_flags & HASH_FLAG_AUTOGROW))
-    return DB_ERR_NOTABLE;
-
-  /* It looks like we could optimize here, but don't be deceived--the table
-   * may grow between here and when we fill in the entry's hash value, and
-   * that would change the hash value.
-   */
-  if (!ht_find(table, 0, key)) /* don't permit duplicates */
-    return DB_ERR_DUPLICATE;
-
-  /* increment element count and grow the table if necessary and allowed */
-  if (++table->ht_count > table->ht_rollover &&
-      (table->ht_flags & HASH_FLAG_AUTOGROW) &&
-      (retval = ht_resize(table, 0)))
-    return retval;
-
-  /* Force the link element to point to the entry */
-  le_object(&entry->he_elem) = entry;
-
-  /* copy key value into the hash entry */
-  entry->he_key = *key; /* thank goodness for structure copy! */
-
-  /* get the hash value for the entry */
-  entry->he_hash =
-    (*table->ht_func)(table, &entry->he_key) % table->ht_modulus;
-
-  /* Now add the entry to the table... */
-  if ((retval = ll_add(&table->ht_table[entry->he_hash], &entry->he_elem,
-                      LINK_LOC_HEAD, 0))) {
-    table->ht_count--; /* decrement the count--don't worry about shrinking */
-    return retval;
-  }
-
-  entry->he_table = table; /* point entry at table */
-
-  return 0;
-}
diff --git a/libs/dbprim/ht_find.c b/libs/dbprim/ht_find.c
deleted file mode 100644 (file)
index 7d01c7d..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
-** Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-**
-** This library is free software; you can redistribute it and/or
-** modify it under the terms of the GNU Library General Public
-** License as published by the Free Software Foundation; either
-** version 2 of the License, or (at your option) any later version.
-**
-** This library 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
-** Library General Public License for more details.
-**
-** You should have received a copy of the GNU Library General Public
-** License along with this library; if not, write to the Free
-** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-** MA 02111-1307, USA
-**
-** @(#)$Id$
-*/
-#include "dbprim.h"
-#include "dbprim_int.h"
-
-RCSTAG("@(#)$Id$");
-
-/** \ingroup dbprim_hash
- * \brief Find an entry in a hash table.
- *
- * This function looks up an entry matching the given \p key.
- *
- * \param table        A pointer to a #hash_table_t.
- * \param entry_p
- *             A pointer to a pointer to a #hash_entry_t.  This is a
- *             result parameter.  If \c NULL is passed, the lookup
- *             will be performed and an appropriate error code
- *             returned. 
- * \param key  A pointer to a #db_key_t describing the item to find.
- *
- * \retval DB_ERR_BADARGS      An argument was invalid.
- * \retval DB_ERR_NOENTRY      No matching entry was found.
- */
-unsigned long
-ht_find(hash_table_t *table, hash_entry_t **entry_p, db_key_t *key)
-{
-  unsigned long hash;
-  link_elem_t *elem;
-
-  initialize_dbpr_error_table(); /* initialize error table */
-
-  if (!ht_verify(table) || !key) /* verify arguments */
-    return DB_ERR_BADARGS;
-
-  if (!table->ht_count) /* no entries in table... */
-    return DB_ERR_NOENTRY;
-
-  hash = (*table->ht_func)(table, key) % table->ht_modulus; /* get hash */
-
-  /* walk through each element in that section */
-  for (elem = ll_first(&table->ht_table[hash]); elem; elem = le_next(elem))
-    /* compare keys... */
-    if (!(*table->ht_comp)(table, key,
-                          he_key((hash_entry_t *)le_object(elem)))) {
-      /* found one, return it */
-      if (entry_p)
-       *entry_p = le_object(elem);
-      return 0;
-    }
-
-  return DB_ERR_NOENTRY; /* couldn't find a matching entry */
-}
diff --git a/libs/dbprim/ht_flush.c b/libs/dbprim/ht_flush.c
deleted file mode 100644 (file)
index f735cc5..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
-** Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-**
-** This library is free software; you can redistribute it and/or
-** modify it under the terms of the GNU Library General Public
-** License as published by the Free Software Foundation; either
-** version 2 of the License, or (at your option) any later version.
-**
-** This library 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
-** Library General Public License for more details.
-**
-** You should have received a copy of the GNU Library General Public
-** License along with this library; if not, write to the Free
-** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-** MA 02111-1307, USA
-**
-** @(#)$Id$
-*/
-#include <stdlib.h>
-
-#include "dbprim.h"
-#include "dbprim_int.h"
-
-RCSTAG("@(#)$Id$");
-
-/** \ingroup dbprim_hash
- * \brief Flush a hash table.
- *
- * This function flushes a hash table--that is, it removes each entry
- * from the table.  If a \p flush_func is specified, it will be called
- * on the entry after it has been removed from the table, and may
- * safely call <CODE>free()</CODE>.
- *
- * \param table        A pointer to a #hash_table_t.
- * \param flush_func
- *             A pointer to a callback function used to perform
- *             user-specified actions on an entry after removing it
- *             from the table.  May be \c NULL.  See the
- *             documentation for #hash_iter_t for more information.
- * \param extra        A \c void pointer that will be passed to \p
- *             flush_func.
- *
- * \retval DB_ERR_BADARGS      An argument was invalid.
- * \retval DB_ERR_FROZEN       The hash table is frozen.
- */
-unsigned long
-ht_flush(hash_table_t *table, hash_iter_t flush_func, void *extra)
-{
-  unsigned long retval = 0;
-  int i;
-  link_elem_t *elem;
-
-  initialize_dbpr_error_table(); /* initialize error table */
-
-  if (!ht_verify(table)) /* verify arguments */
-    return DB_ERR_BADARGS;
-
-  if (table->ht_flags & HASH_FLAG_FREEZE) /* don't mess with frozen tables */
-    return DB_ERR_FROZEN;
-
-  /* walk through all the elements */
-  for (i = 0; i < table->ht_modulus; i++)
-    for (elem = ll_first(&table->ht_table[i]); elem;
-        elem = ll_first(&table->ht_table[i])) {
-      ht_remove(table, le_object(elem)); /* remove the entry... */
-
-      table->ht_flags |= HASH_FLAG_FREEZE; /* freeze the table */
-
-      if (flush_func) /* call flush function */
-       retval = (*flush_func)(table, le_object(elem), extra);
-
-      table->ht_flags &= ~HASH_FLAG_FREEZE; /* unfreeze table... */
-
-      if (retval) /* if flush function failed, error out */
-       return retval;
-    }
-
-  table->ht_count = 0; /* clear the entry count */
-
-  if (table->ht_flags & HASH_FLAG_AUTOSHRINK) /* shrink the table... */
-    return ht_free(table); /* by calling ht_free() */
-
-  return 0;
-}
diff --git a/libs/dbprim/ht_free.c b/libs/dbprim/ht_free.c
deleted file mode 100644 (file)
index 0c91ef1..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
-** Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-**
-** This library is free software; you can redistribute it and/or
-** modify it under the terms of the GNU Library General Public
-** License as published by the Free Software Foundation; either
-** version 2 of the License, or (at your option) any later version.
-**
-** This library 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
-** Library General Public License for more details.
-**
-** You should have received a copy of the GNU Library General Public
-** License along with this library; if not, write to the Free
-** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-** MA 02111-1307, USA
-**
-** @(#)$Id$
-*/
-#include <stdlib.h>
-
-#include "dbprim.h"
-#include "dbprim_int.h"
-
-RCSTAG("@(#)$Id$");
-
-/** \ingroup dbprim_hash
- * \brief Free memory used by an empty hash table.
- *
- * This function releases the memory used by the bucket table in an
- * empty hash table.
- *
- * \param table        A pointer to a #hash_table_t.
- *
- * \retval DB_ERR_BADARGS      An invalid argument was given.
- * \retval DB_ERR_FROZEN       The table is frozen.
- * \retval DB_ERR_NOTEMPTY     The table is not empty.
- */
-unsigned long
-ht_free(hash_table_t *table)
-{
-  initialize_dbpr_error_table(); /* initialize error table */
-
-  if (!ht_verify(table)) /* verify argument */
-    return DB_ERR_BADARGS;
-
-  if (table->ht_flags & HASH_FLAG_FREEZE) /* don't free from frozen tables */
-    return DB_ERR_FROZEN;
-
-  if (table->ht_count) /* make sure the table's empty */
-    return DB_ERR_NOTEMPTY;
-
-  if (!table->ht_modulus && !table->ht_table) /* short-circuit */
-    return 0;
-
-  free(table->ht_table); /* free allocated memory */
-
-  table->ht_modulus = 0; /* zero the table and modulus */
-  table->ht_table = 0;
-
-  return 0;
-}
diff --git a/libs/dbprim/ht_init.c b/libs/dbprim/ht_init.c
deleted file mode 100644 (file)
index 977c49d..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
-** Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-**
-** This library is free software; you can redistribute it and/or
-** modify it under the terms of the GNU Library General Public
-** License as published by the Free Software Foundation; either
-** version 2 of the License, or (at your option) any later version.
-**
-** This library 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
-** Library General Public License for more details.
-**
-** You should have received a copy of the GNU Library General Public
-** License along with this library; if not, write to the Free
-** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-** MA 02111-1307, USA
-**
-** @(#)$Id$
-*/
-#include <errno.h>
-#include <stdlib.h>
-
-#include "dbprim.h"
-#include "dbprim_int.h"
-
-RCSTAG("@(#)$Id$");
-
-/** \ingroup dbprim_hash
- * \brief Dynamically initialize a hash table.
- *
- * This function dynamically initializes a hash table.
- *
- * \param table        A pointer to a #hash_table_t to be initialized.
- * \param flags        A bit-wise OR of #HASH_FLAG_AUTOGROW and
- *             #HASH_FLAG_AUTOSHRINK.  If neither behavior is
- *             desired, use 0.
- * \param func A #hash_func_t function pointer for a hash function.
- * \param comp A #hash_comp_t function pointer for a comparison
- *             function.
- * \param resize
- *             A #hash_resize_t function pointer for determining
- *             whether resizing is permitted and/or for notification
- *             of the resize.
- * \param extra        Extra pointer data that should be associated with the
- *             hash table.
- * \param init_mod
- *             An initial modulus for the table.  This will
- *             presumably be extracted by ht_modulus() in a previous
- *             invocation of the application.  A 0 value is valid.
- *
- * \retval DB_ERR_BADARGS      An invalid argument was given.
- * \retval ENOMEM              Unable to allocate memory.
- */
-unsigned long
-ht_init(hash_table_t *table, unsigned long flags, hash_func_t func,
-       hash_comp_t comp, hash_resize_t resize, void *extra,
-       unsigned long init_mod)
-{
-  int i;
-  unsigned long retval;
-
-  initialize_dbpr_error_table(); /* set up error tables */
-
-  if (!table || !func || !comp) /* verify arguments */
-    return DB_ERR_BADARGS;
-
-  /* initialize the table */
-  table->ht_flags = flags & (HASH_FLAG_AUTOGROW | HASH_FLAG_AUTOSHRINK);
-  table->ht_modulus = _hash_prime(init_mod);
-  table->ht_count = 0;
-  table->ht_rollover = _hash_rollover(table->ht_modulus);
-  table->ht_rollunder = _hash_rollunder(table->ht_modulus);
-  table->ht_table = 0;
-  table->ht_func = func;
-  table->ht_comp = comp;
-  table->ht_resize = resize;
-  table->ht_extra = extra;
-
-  if (table->ht_modulus) { /* have an initial size? */
-    if (!(table->ht_table =
-         (link_head_t *)malloc(table->ht_modulus * sizeof(link_head_t))))
-      return errno; /* failed to allocate memory? */
-
-    for (i = 0; i < table->ht_modulus; i++) /* initialize the listhead array */
-      if ((retval = ll_init(&table->ht_table[i], table))) {
-       free(table->ht_table);
-       return retval;
-      }
-  }
-
-  table->ht_magic = HASH_TABLE_MAGIC; /* set the magic number */
-
-  return 0;
-}
diff --git a/libs/dbprim/ht_iter.c b/libs/dbprim/ht_iter.c
deleted file mode 100644 (file)
index 1f6b21c..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
-** Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-**
-** This library is free software; you can redistribute it and/or
-** modify it under the terms of the GNU Library General Public
-** License as published by the Free Software Foundation; either
-** version 2 of the License, or (at your option) any later version.
-**
-** This library 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
-** Library General Public License for more details.
-**
-** You should have received a copy of the GNU Library General Public
-** License along with this library; if not, write to the Free
-** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-** MA 02111-1307, USA
-**
-** @(#)$Id$
-*/
-#include "dbprim.h"
-#include "dbprim_int.h"
-
-RCSTAG("@(#)$Id$");
-
-/** \ingroup dbprim_hash
- * \brief Iterate over each entry in a hash table.
- *
- * This function iterates over every entry in a hash table (in an
- * unspecified order), executing the given \p iter_func on each entry.
- *
- * \param table        A pointer to a #hash_table_t.
- * \param iter_func
- *             A pointer to a callback function used to perform
- *             user-specified actions on an entry in a hash table. \c
- *             NULL is an invalid value.  See the documentation for
- *             #hash_iter_t for more information.
- * \param extra        A \c void pointer that will be passed to \p
- *             iter_func.
- *
- * \retval DB_ERR_BADARGS      An argument was invalid.
- * \retval DB_ERR_FROZEN       The hash table is frozen.
- */
-unsigned long
-ht_iter(hash_table_t *table, hash_iter_t iter_func, void *extra)
-{
-  unsigned long retval;
-  int i;
-  link_elem_t *elem;
-
-  initialize_dbpr_error_table(); /* initialize error table */
-
-  if (!ht_verify(table) || !iter_func) /* verify arguments */
-    return DB_ERR_BADARGS;
-
-  if (table->ht_flags & HASH_FLAG_FREEZE) /* don't mess with frozen tables */
-    return DB_ERR_FROZEN;
-
-  table->ht_flags |= HASH_FLAG_FREEZE; /* freeze the table */
-
-  /* walk through all the elements and call the iteration function */
-  for (i = 0; i < table->ht_modulus; i++)
-    for (elem = ll_first(&table->ht_table[i]); elem; elem = le_next(elem))
-      if ((retval = (*iter_func)(table, le_object(elem), extra))) {
-       table->ht_flags &= ~HASH_FLAG_FREEZE; /* unfreeze the table */
-       return retval;
-      }
-
-  table->ht_flags &= ~HASH_FLAG_FREEZE; /* unfreeze the table */
-
-  return 0;
-}
diff --git a/libs/dbprim/ht_move.c b/libs/dbprim/ht_move.c
deleted file mode 100644 (file)
index e4d9037..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
-** Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-**
-** This library is free software; you can redistribute it and/or
-** modify it under the terms of the GNU Library General Public
-** License as published by the Free Software Foundation; either
-** version 2 of the License, or (at your option) any later version.
-**
-** This library 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
-** Library General Public License for more details.
-**
-** You should have received a copy of the GNU Library General Public
-** License along with this library; if not, write to the Free
-** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-** MA 02111-1307, USA
-**
-** @(#)$Id$
-*/
-#include "dbprim.h"
-#include "dbprim_int.h"
-
-RCSTAG("@(#)$Id$");
-
-/** \ingroup dbprim_hash
- * \brief Move an entry in the hash table.
- *
- * This function moves an existing entry in the hash table to
- * correspond to the new key.
- *
- * \param table        A pointer to a #hash_table_t.
- * \param entry        A pointer to a #hash_entry_t to be moved.  It must
- *             already be in the hash table.
- * \param key  A pointer to a #db_key_t describing the new key for
- *             the entry.
- *
- * \retval DB_ERR_BADARGS      An invalid argument was given.
- * \retval DB_ERR_UNUSED       Entry is not in a hash table.
- * \retval DB_ERR_WRONGTABLE   Entry is not in this hash table.
- * \retval DB_ERR_FROZEN       Hash table is frozen.
- * \retval DB_ERR_DUPLICATE    New key is a duplicate of an existing
- *                             key.
- * \retval DB_ERR_READDFAILED  Unable to re-add entry to table.
- */
-unsigned long
-ht_move(hash_table_t *table, hash_entry_t *entry, db_key_t *key)
-{
-  unsigned long retval;
-
-  initialize_dbpr_error_table(); /* initialize error table */
-
-  if (!ht_verify(table) || !he_verify(entry) || !key) /* verify arguments */
-    return DB_ERR_BADARGS;
-
-  if (!entry->he_table) /* it's not in a table */
-    return DB_ERR_UNUSED;
-  if (entry->he_table != table) /* it's in the wrong table */
-    return DB_ERR_WRONGTABLE;
-
-  if (table->ht_flags & HASH_FLAG_FREEZE) /* don't mess with frozen tables */
-    return DB_ERR_FROZEN;
-
-  if (!ht_find(table, 0, key)) /* don't permit duplicates */
-    return DB_ERR_DUPLICATE;
-
-  /* remove the entry from the table */
-  if ((retval = ll_remove(&table->ht_table[entry->he_hash], &entry->he_elem)))
-    return retval;
-
-  /* rekey the entry */
-  entry->he_key = *key; /* thank goodness for structure copy! */
-
-  /* get the new hash value for the entry */
-  entry->he_hash =
-    (*table->ht_func)(table, &entry->he_key) % table->ht_modulus;
-
-  /* Now re-add it to the table */
-  if ((retval = ll_add(&table->ht_table[entry->he_hash], &entry->he_elem,
-                      LINK_LOC_HEAD, 0))) {
-    table->ht_count--; /* decrement the count--don't worry about shrinking */
-    entry->he_table = 0; /* zero the table pointer */
-    return DB_ERR_READDFAILED;
-  }
-
-  return 0;
-}
diff --git a/libs/dbprim/ht_remove.c b/libs/dbprim/ht_remove.c
deleted file mode 100644 (file)
index ca50e57..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
-** Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-**
-** This library is free software; you can redistribute it and/or
-** modify it under the terms of the GNU Library General Public
-** License as published by the Free Software Foundation; either
-** version 2 of the License, or (at your option) any later version.
-**
-** This library 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
-** Library General Public License for more details.
-**
-** You should have received a copy of the GNU Library General Public
-** License along with this library; if not, write to the Free
-** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-** MA 02111-1307, USA
-**
-** @(#)$Id$
-*/
-#include "dbprim.h"
-#include "dbprim_int.h"
-
-RCSTAG("@(#)$Id$");
-
-/** \ingroup dbprim_hash
- * \brief Remove an element from a hash table.
- *
- * This function removes the given element from the specified hash
- * table.
- *
- * \param table        A pointer to a #hash_table_t.
- * \param entry        A pointer to a #hash_entry_t to be removed from the
- *             table.
- *
- * \retval DB_ERR_BADARGS      An invalid argument was given.
- * \retval DB_ERR_UNUSED       Entry is not in a hash table.
- * \retval DB_ERR_WRONGTABLE   Entry is not in this hash table.
- * \retval DB_ERR_FROZEN       Hash table is frozen.
- * \retval DB_ERR_UNRECOVERABLE        An unrecoverable error occurred while
- *                             resizing the table.
- */
-unsigned long
-ht_remove(hash_table_t *table, hash_entry_t *entry)
-{
-  unsigned long retval = 0;
-
-  initialize_dbpr_error_table(); /* initialize error table */
-
-  if (!ht_verify(table) || !he_verify(entry)) /* verify arguments */
-    return DB_ERR_BADARGS;
-
-  if (!entry->he_table) /* it's not in a table */
-    return DB_ERR_UNUSED;
-  if (entry->he_table != table) /* it's in the wrong table */
-    return DB_ERR_WRONGTABLE;
-
-  if (table->ht_flags & HASH_FLAG_FREEZE) /* don't remove from frozen tables */
-    return DB_ERR_FROZEN;
-
-  /* remove the entry from the table */
-  if ((retval = ll_remove(&table->ht_table[entry->he_hash], &entry->he_elem)))
-    return retval;
-
-  entry->he_table = 0; /* reset the table */
-
-  /* decrement element count and shrink the table if necessary and allowed */
-  if (--table->ht_count < table->ht_rollunder &&
-      (table->ht_flags & HASH_FLAG_AUTOSHRINK))
-    retval = ht_resize(table, 0);
-
-  return retval;
-}
diff --git a/libs/dbprim/ht_resize.c b/libs/dbprim/ht_resize.c
deleted file mode 100644 (file)
index 1b3c45c..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
-** Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-**
-** This library is free software; you can redistribute it and/or
-** modify it under the terms of the GNU Library General Public
-** License as published by the Free Software Foundation; either
-** version 2 of the License, or (at your option) any later version.
-**
-** This library 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
-** Library General Public License for more details.
-**
-** You should have received a copy of the GNU Library General Public
-** License along with this library; if not, write to the Free
-** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-** MA 02111-1307, USA
-**
-** @(#)$Id$
-*/
-#include <stdlib.h>
-#include <errno.h>
-
-#include "dbprim.h"
-#include "dbprim_int.h"
-
-RCSTAG("@(#)$Id$");
-
-/** \ingroup dbprim_hash
- * \brief Resize a hash table.
- *
- * This function resizes a hash table to the given \p new_size.  If \p
- * new_size is 0, then an appropriate new size based on the current
- * number of items in the hash table will be selected.
- *
- * \param table        A pointer to a #hash_table_t.
- * \param new_size
- *             A new size value for the table.
- *
- * \retval DB_ERR_BADARGS      An argument was invalid.
- * \retval DB_ERR_FROZEN       The table is currently frozen.
- * \retval DB_ERR_UNRECOVERABLE        A catastrophic error was encountered.
- *                             The table is now unusable.
- * \retval ENOMEM              No memory could be allocated for the
- *                             new bucket table.
- */
-unsigned long
-ht_resize(hash_table_t *table, unsigned long new_size)
-{
-  unsigned long retval;
-  link_head_t *htab;
-  link_elem_t *elem;
-  hash_entry_t *ent;
-  int i;
-
-  initialize_dbpr_error_table(); /* initialize error table */
-
-  if (!ht_verify(table)) /* verify that it's really a table */
-    return DB_ERR_BADARGS;
-
-  if (table->ht_flags & HASH_FLAG_FREEZE) /* don't resize frozen tables */
-    return DB_ERR_FROZEN;
-
-  if (!new_size) /* select the new table size, defaulting to fuzzed current */
-    new_size = _hash_fuzz(table->ht_count ? table->ht_count : 1);
-  new_size = _hash_prime(new_size); /* prime it! */
-
-  /* Call the resize calback */
-  if (table->ht_resize && (retval = (*table->ht_resize)(table, new_size)))
-    return retval;
-
-  /* allocate new table array */
-  if (!(htab = (link_head_t *)malloc(new_size * sizeof(link_head_t))))
-    return errno;
-
-  /* initialize the new array */
-  for (i = 0; i < new_size; i++)
-    if ((retval = ll_init(&htab[i], table))) { /* initialize listhead array */
-      free(htab);
-      return retval;
-    }
-
-  /* rehash the table */
-  for (i = 0; i < table->ht_modulus; i++) /* step through each element */
-    for (elem = ll_first(&table->ht_table[i]); elem;
-        elem = ll_first(&table->ht_table[i])) {
-      ent = le_object(elem);
-
-      /* calculate new hash value */
-      ent->he_hash = (*table->ht_func)(table, &ent->he_key) % new_size;
-
-      if ((retval = ll_remove(&table->ht_table[i], elem)) ||
-         (retval = ll_add(&htab[ent->he_hash], elem, LINK_LOC_HEAD, 0))) {
-       /* This is catastrophic!  We've lost some elements.  Shouldn't
-        * ever happen, but you know bugs...
-        */
-       free(htab); /* free allocated memory */
-       free(table->ht_table);
-
-       table->ht_modulus = 0; /* reset table to reflect empty state */
-       table->ht_count = 0;
-       table->ht_rollover = 0;
-       table->ht_rollunder = 0;
-       table->ht_table = 0;
-
-       return DB_ERR_UNRECOVERABLE;
-      }
-    }
-
-  if (table->ht_table) /* OK, free old table value */
-    free(table->ht_table);
-
-  table->ht_modulus = new_size; /* set new table size and roll values */
-  table->ht_rollover = _hash_rollover(new_size);
-  table->ht_rollunder = _hash_rollunder(new_size);
-  table->ht_table = htab; /* store new table */
-
-  return 0;
-}
diff --git a/libs/dbprim/install-sh b/libs/dbprim/install-sh
deleted file mode 100755 (executable)
index e9de238..0000000
+++ /dev/null
@@ -1,251 +0,0 @@
-#!/bin/sh
-#
-# install - install a program, script, or datafile
-# This comes from X11R5 (mit/util/scripts/install.sh).
-#
-# Copyright 1991 by the Massachusetts Institute of Technology
-#
-# Permission to use, copy, modify, distribute, and sell this software and its
-# documentation for any purpose is hereby granted without fee, provided that
-# the above copyright notice appear in all copies and that both that
-# copyright notice and this permission notice appear in supporting
-# documentation, and that the name of M.I.T. not be used in advertising or
-# publicity pertaining to distribution of the software without specific,
-# written prior permission.  M.I.T. makes no representations about the
-# suitability of this software for any purpose.  It is provided "as is"
-# without express or implied warranty.
-#
-# Calling this script install-sh is preferred over install.sh, to prevent
-# `make' implicit rules from creating a file called install from it
-# when there is no Makefile.
-#
-# This script is compatible with the BSD install script, but was written
-# from scratch.  It can only install one file at a time, a restriction
-# shared with many OS's install programs.
-
-
-# set DOITPROG to echo to test this script
-
-# Don't use :- since 4.3BSD and earlier shells don't like it.
-doit="${DOITPROG-}"
-
-
-# put in absolute paths if you don't have them in your path; or use env. vars.
-
-mvprog="${MVPROG-mv}"
-cpprog="${CPPROG-cp}"
-chmodprog="${CHMODPROG-chmod}"
-chownprog="${CHOWNPROG-chown}"
-chgrpprog="${CHGRPPROG-chgrp}"
-stripprog="${STRIPPROG-strip}"
-rmprog="${RMPROG-rm}"
-mkdirprog="${MKDIRPROG-mkdir}"
-
-transformbasename=""
-transform_arg=""
-instcmd="$mvprog"
-chmodcmd="$chmodprog 0755"
-chowncmd=""
-chgrpcmd=""
-stripcmd=""
-rmcmd="$rmprog -f"
-mvcmd="$mvprog"
-src=""
-dst=""
-dir_arg=""
-
-while [ x"$1" != x ]; do
-    case $1 in
-       -c) instcmd="$cpprog"
-           shift
-           continue;;
-
-       -d) dir_arg=true
-           shift
-           continue;;
-
-       -m) chmodcmd="$chmodprog $2"
-           shift
-           shift
-           continue;;
-
-       -o) chowncmd="$chownprog $2"
-           shift
-           shift
-           continue;;
-
-       -g) chgrpcmd="$chgrpprog $2"
-           shift
-           shift
-           continue;;
-
-       -s) stripcmd="$stripprog"
-           shift
-           continue;;
-
-       -t=*) transformarg=`echo $1 | sed 's/-t=//'`
-           shift
-           continue;;
-
-       -b=*) transformbasename=`echo $1 | sed 's/-b=//'`
-           shift
-           continue;;
-
-       *)  if [ x"$src" = x ]
-           then
-               src=$1
-           else
-               # this colon is to work around a 386BSD /bin/sh bug
-               :
-               dst=$1
-           fi
-           shift
-           continue;;
-    esac
-done
-
-if [ x"$src" = x ]
-then
-       echo "install:  no input file specified"
-       exit 1
-else
-       true
-fi
-
-if [ x"$dir_arg" != x ]; then
-       dst=$src
-       src=""
-       
-       if [ -d $dst ]; then
-               instcmd=:
-               chmodcmd=""
-       else
-               instcmd=mkdir
-       fi
-else
-
-# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
-# might cause directories to be created, which would be especially bad 
-# if $src (and thus $dsttmp) contains '*'.
-
-       if [ -f $src -o -d $src ]
-       then
-               true
-       else
-               echo "install:  $src does not exist"
-               exit 1
-       fi
-       
-       if [ x"$dst" = x ]
-       then
-               echo "install:  no destination specified"
-               exit 1
-       else
-               true
-       fi
-
-# If destination is a directory, append the input filename; if your system
-# does not like double slashes in filenames, you may need to add some logic
-
-       if [ -d $dst ]
-       then
-               dst="$dst"/`basename $src`
-       else
-               true
-       fi
-fi
-
-## this sed command emulates the dirname command
-dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
-
-# Make sure that the destination directory exists.
-#  this part is taken from Noah Friedman's mkinstalldirs script
-
-# Skip lots of stat calls in the usual case.
-if [ ! -d "$dstdir" ]; then
-defaultIFS='   
-'
-IFS="${IFS-${defaultIFS}}"
-
-oIFS="${IFS}"
-# Some sh's can't handle IFS=/ for some reason.
-IFS='%'
-set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
-IFS="${oIFS}"
-
-pathcomp=''
-
-while [ $# -ne 0 ] ; do
-       pathcomp="${pathcomp}${1}"
-       shift
-
-       if [ ! -d "${pathcomp}" ] ;
-        then
-               $mkdirprog "${pathcomp}"
-       else
-               true
-       fi
-
-       pathcomp="${pathcomp}/"
-done
-fi
-
-if [ x"$dir_arg" != x ]
-then
-       $doit $instcmd $dst &&
-
-       if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
-       if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
-       if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
-       if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
-else
-
-# If we're going to rename the final executable, determine the name now.
-
-       if [ x"$transformarg" = x ] 
-       then
-               dstfile=`basename $dst`
-       else
-               dstfile=`basename $dst $transformbasename | 
-                       sed $transformarg`$transformbasename
-       fi
-
-# don't allow the sed command to completely eliminate the filename
-
-       if [ x"$dstfile" = x ] 
-       then
-               dstfile=`basename $dst`
-       else
-               true
-       fi
-
-# Make a temp file name in the proper directory.
-
-       dsttmp=$dstdir/#inst.$$#
-
-# Move or copy the file name to the temp name
-
-       $doit $instcmd $src $dsttmp &&
-
-       trap "rm -f ${dsttmp}" 0 &&
-
-# and set any options; do chmod last to preserve setuid bits
-
-# If any of these fail, we abort the whole thing.  If we want to
-# ignore errors from any of these, just make sure not to ignore
-# errors from the above "$doit $instcmd $src $dsttmp" command.
-
-       if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
-       if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
-       if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
-       if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
-
-# Now rename the file to the real destination.
-
-       $doit $rmcmd -f $dstdir/$dstfile &&
-       $doit $mvcmd $dsttmp $dstdir/$dstfile 
-
-fi &&
-
-
-exit 0
diff --git a/libs/dbprim/le_init.c b/libs/dbprim/le_init.c
deleted file mode 100644 (file)
index 40aa96e..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
-** Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-**
-** This library is free software; you can redistribute it and/or
-** modify it under the terms of the GNU Library General Public
-** License as published by the Free Software Foundation; either
-** version 2 of the License, or (at your option) any later version.
-**
-** This library 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
-** Library General Public License for more details.
-**
-** You should have received a copy of the GNU Library General Public
-** License along with this library; if not, write to the Free
-** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-** MA 02111-1307, USA
-**
-** @(#)$Id$
-*/
-#include "dbprim.h"
-#include "dbprim_int.h"
-
-RCSTAG("@(#)$Id$");
-
-/** \ingroup dbprim_link
- * \brief Dynamically initialize a linked list element.
- *
- * This function dynamically initializes a linked list element.
- *
- * \param elem A pointer to a #link_elem_t to be initialized.
- * \param object
- *             A pointer to \c void used to represent the object
- *             associated with the element.  May not be \c NULL.
- *
- * \retval DB_ERR_BADARGS      A \c NULL pointer was passed for \p
- *                             elem or \p object.
- */
-unsigned long
-le_init(link_elem_t *elem, void *object)
-{
-  initialize_dbpr_error_table(); /* initialize error table */
-
-  if (!elem || !object) /* verify arguments */
-    return DB_ERR_BADARGS;
-
-  elem->le_next = 0; /* initialize the element */
-  elem->le_prev = 0;
-  elem->le_object = object;
-  elem->le_head = 0;
-  elem->le_flags = 0;
-
-  elem->le_magic = LINK_ELEM_MAGIC; /* set the magic number */
-
-  return 0;
-}
diff --git a/libs/dbprim/ll_add.c b/libs/dbprim/ll_add.c
deleted file mode 100644 (file)
index 8df8770..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
-** Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-**
-** This library is free software; you can redistribute it and/or
-** modify it under the terms of the GNU Library General Public
-** License as published by the Free Software Foundation; either
-** version 2 of the License, or (at your option) any later version.
-**
-** This library 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
-** Library General Public License for more details.
-**
-** You should have received a copy of the GNU Library General Public
-** License along with this library; if not, write to the Free
-** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-** MA 02111-1307, USA
-**
-** @(#)$Id$
-*/
-#include "dbprim.h"
-#include "dbprim_int.h"
-
-RCSTAG("@(#)$Id$");
-
-/** \ingroup dbprim_link
- * \brief Add an element to a linked list.
- *
- * This function adds a given element to a specified linked list in
- * the specified location.
- *
- * \param list A pointer to a #link_head_t.
- * \param new  A pointer to the #link_elem_t to be added to the
- *             linked list.
- * \param loc  A #link_loc_t indicating where the entry should be
- *             added.
- * \param elem A pointer to a #link_elem_t describing another element
- *             in the list if \p loc is #LINK_LOC_BEFORE or
- *             #LINK_LOC_AFTER.
- *
- * \retval DB_ERR_BADARGS      An argument was invalid.
- * \retval DB_ERR_BUSY         The element is already in a list.
- * \retval DB_ERR_WRONGTABLE   \p elem is in a different list.
- * \retval DB_ERR_UNUSED       \p elem is not in any list.
- */
-unsigned long
-ll_add(link_head_t *list, link_elem_t *new, link_loc_t loc,
-       link_elem_t *elem)
-{
-  initialize_dbpr_error_table(); /* initialize error table */
-
-  /* Verify arguments--if elem is set, must be a valid element; if
-   * location is before or after, elem must be set
-   */
-  if (!ll_verify(list) || !le_verify(new) || (elem && !le_verify(elem)) ||
-      ((loc == LINK_LOC_BEFORE || loc == LINK_LOC_AFTER) && !elem))
-    return DB_ERR_BADARGS;
-
-  /* new element must not be in list already */
-  if (new->le_head)
-    return DB_ERR_BUSY;
-  if (elem && list != elem->le_head) /* element must be in the list */
-    return elem->le_head ? DB_ERR_WRONGTABLE : DB_ERR_UNUSED;
-
-  list->lh_count++; /* increment the count of elements in the list */
-
-  new->le_head = list; /* point to head of list */
-
-  switch (loc) { /* put it in the right place in the list */
-  case LINK_LOC_HEAD:
-    if (!(elem = list->lh_first)) { /* insert before first element in list */
-      list->lh_first = new; /* list was empty, add element to list */
-      list->lh_last = new;
-      return 0; /* and return, since the list was empty before. */
-    }
-    /*FALLTHROUGH*/
-  case LINK_LOC_BEFORE:
-    new->le_next = elem; /* prepare new element for its location */
-    new->le_prev = elem->le_prev;
-
-    elem->le_prev = new; /* insert element into list */
-    if (new->le_prev)
-      new->le_prev->le_next = new; /* update previous element */
-    else /* update head of list */
-      list->lh_first = new;
-    break;
-
-  case LINK_LOC_TAIL:
-    if (!(elem = list->lh_last)) { /* insert after last element in list */
-      list->lh_first = new; /* list was empty, add element to list */
-      list->lh_last = new;
-      return 0; /* and return, since the list was empty before. */
-    }
-    /*FALLTHROUGH*/
-  case LINK_LOC_AFTER:
-    new->le_next = elem->le_next; /* prepare new element for its location */
-    new->le_prev = elem;
-
-    elem->le_next = new; /* insert element into list */
-    if (new->le_next)
-      new->le_next->le_prev = new; /* update next element */
-    else /* update tail of list */
-      list->lh_last = new;
-    break;
-  }
-
-  return 0;
-}
diff --git a/libs/dbprim/ll_find.c b/libs/dbprim/ll_find.c
deleted file mode 100644 (file)
index 5895737..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
-** Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-**
-** This library is free software; you can redistribute it and/or
-** modify it under the terms of the GNU Library General Public
-** License as published by the Free Software Foundation; either
-** version 2 of the License, or (at your option) any later version.
-**
-** This library 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
-** Library General Public License for more details.
-**
-** You should have received a copy of the GNU Library General Public
-** License along with this library; if not, write to the Free
-** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-** MA 02111-1307, USA
-**
-** @(#)$Id$
-*/
-#include "dbprim.h"
-#include "dbprim_int.h"
-
-RCSTAG("@(#)$Id$");
-
-/** \ingroup dbprim_link
- * \brief Find an element in a linked list.
- *
- * This function iterates through a linked list looking for an element
- * that matches the given \p key.
- *
- * \param list A pointer to a #link_head_t.
- * \param elem_p
- *             A pointer to a pointer to a #link_elem_t.  This is a
- *             result parameter.  \c NULL is an invalid value.
- * \param comp_func
- *             A pointer to a comparison function used to compare the
- *             key to a particular element.  See the documentation
- *             for #link_comp_t for more information.
- * \param start        A pointer to a #link_elem_t describing where in the
- *             linked list to start.  If \c NULL is passed, the
- *             beginning of the list will be assumed.
- * \param key  A key to search for.
- *
- * \retval DB_ERR_BADARGS      An argument was invalid.
- * \retval DB_ERR_WRONGTABLE   \p start is not in this linked list.
- * \retval DB_ERR_NOENTRY      No matching entry was found.
- */
-unsigned long
-ll_find(link_head_t *list, link_elem_t **elem_p, link_comp_t comp_func,
-       link_elem_t *start, db_key_t *key)
-{
-  link_elem_t *elem;
-
-  initialize_dbpr_error_table(); /* initialize error table */
-
-  /* Verify arguments */
-  if (!ll_verify(list) || !elem_p || !comp_func || !key ||
-      (start && !le_verify(start)))
-    return DB_ERR_BADARGS;
-
-  /* Verify that the start element is in this list */
-  if (start && list != start->le_head)
-    return DB_ERR_WRONGTABLE;
-
-  /* search the list... */
-  for (elem = start ? start : list->lh_first; elem; elem = elem->le_next)
-    if (!(*comp_func)(key, elem->le_object)) { /* Compare... */
-      *elem_p = elem; /* comparison function must return "0" on match */
-      return 0;
-    }
-
-  return DB_ERR_NOENTRY; /* Couldn't find the element */
-}
diff --git a/libs/dbprim/ll_flush.c b/libs/dbprim/ll_flush.c
deleted file mode 100644 (file)
index 24dde35..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
-** Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-**
-** This library is free software; you can redistribute it and/or
-** modify it under the terms of the GNU Library General Public
-** License as published by the Free Software Foundation; either
-** version 2 of the License, or (at your option) any later version.
-**
-** This library 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
-** Library General Public License for more details.
-**
-** You should have received a copy of the GNU Library General Public
-** License along with this library; if not, write to the Free
-** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-** MA 02111-1307, USA
-**
-** @(#)$Id$
-*/
-#include "dbprim.h"
-#include "dbprim_int.h"
-
-RCSTAG("@(#)$Id$");
-
-/** \ingroup dbprim_link
- * \brief Flush a linked list.
- *
- * This function flushes a linked list--that is, it removes each
- * element from the list.  If a \p flush_func is specified, it will be
- * called on the entry after it has been removed from the list, and
- * may safely call <CODE>free()</CODE>.
- *
- * \param list A pointer to a #link_head_t.
- * \param flush_func
- *             A pointer to a callback function used to perform
- *             user-specified actions on an element after removing it
- *             from the list.  May be \c NULL.  See the documentation
- *             for #link_iter_t for more information.
- * \param extra        A \c void pointer that will be passed to \p
- *             flush_func.
- *
- * \retval DB_ERR_BADARGS      An argument was invalid.
- */
-unsigned long
-ll_flush(link_head_t *list, link_iter_t flush_func, void *extra)
-{
-  link_elem_t *elem;
-  unsigned long retval;
-
-  initialize_dbpr_error_table(); /* initialize error table */
-
-  if (!ll_verify(list)) /* Verify arguments */
-    return DB_ERR_BADARGS;
-
-  while ((elem = list->lh_first)) { /* Walk through the list... */
-    ll_remove(list, elem); /* remove the element */
-    /* call flush function, erroring out if it fails */
-    if (flush_func && (retval = (*flush_func)(list, elem, extra)))
-      return retval;
-  }
-
-  list->lh_count = 0; /* clear the list head */
-  list->lh_first = 0;
-  list->lh_last = 0;
-
-  return 0;
-}
diff --git a/libs/dbprim/ll_init.c b/libs/dbprim/ll_init.c
deleted file mode 100644 (file)
index 38b6132..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
-** Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-**
-** This library is free software; you can redistribute it and/or
-** modify it under the terms of the GNU Library General Public
-** License as published by the Free Software Foundation; either
-** version 2 of the License, or (at your option) any later version.
-**
-** This library 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
-** Library General Public License for more details.
-**
-** You should have received a copy of the GNU Library General Public
-** License along with this library; if not, write to the Free
-** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-** MA 02111-1307, USA
-**
-** @(#)$Id$
-*/
-#include "dbprim.h"
-#include "dbprim_int.h"
-
-RCSTAG("@(#)$Id$");
-
-/** \ingroup dbprim_link
- * \brief Dynamically initialize a linked list head.
- *
- * This function dynamically initializes a linked list head.
- *
- * \param list A pointer to a #link_head_t to be initialized.
- * \param extra        A pointer to \c void containing extra pointer data
- *             associated with the linked list.
- *
- * \retval DB_ERR_BADARGS      A \c NULL pointer was passed for \p
- *                             list.
- */
-unsigned long
-ll_init(link_head_t *list, void *extra)
-{
-  initialize_dbpr_error_table(); /* set up error tables */
-
-  if (!list) /* must have a list head */
-    return DB_ERR_BADARGS;
-
-  list->lh_count = 0; /* initialize the list head */
-  list->lh_first = 0;
-  list->lh_last = 0;
-  list->lh_extra = extra;
-
-  list->lh_magic = LINK_HEAD_MAGIC; /* set the magic number */
-
-  return 0;
-}
diff --git a/libs/dbprim/ll_iter.c b/libs/dbprim/ll_iter.c
deleted file mode 100644 (file)
index b43a38d..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
-** Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-**
-** This library is free software; you can redistribute it and/or
-** modify it under the terms of the GNU Library General Public
-** License as published by the Free Software Foundation; either
-** version 2 of the License, or (at your option) any later version.
-**
-** This library 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
-** Library General Public License for more details.
-**
-** You should have received a copy of the GNU Library General Public
-** License along with this library; if not, write to the Free
-** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-** MA 02111-1307, USA
-**
-** @(#)$Id$
-*/
-#include "dbprim.h"
-#include "dbprim_int.h"
-
-RCSTAG("@(#)$Id$");
-
-/** \ingroup dbprim_link
- * \brief Iterate over each entry in a linked list.
- *
- * This function iterates over a linked list, executing the given \p
- * iter_func for each entry.
- *
- * \param list A pointer to a #link_head_t.
- * \param iter_func
- *             A pointer to a callback function used to perform
- *             user-specified actions on an element in a linked
- *             list.  \c NULL is an invalid value.  See the
- *             documentation for #link_iter_t for more information.
- * \param extra        A \c void pointer that will be passed to \p
- *             iter_func.
- *
- * \retval DB_ERR_BADARGS      An argument was invalid.
- */
-unsigned long
-ll_iter(link_head_t *list, link_iter_t iter_func, void *extra)
-{
-  unsigned long retval;
-  link_elem_t *elem;
-
-  initialize_dbpr_error_table(); /* initialize error table */
-
-  if (!ll_verify(list) || !iter_func) /* verify arguments */
-    return DB_ERR_BADARGS;
-
-  /* Walk through list and return first non-zero return value */
-  for (elem = list->lh_first; elem; elem = elem->le_next)
-    if ((retval = (*iter_func)(list, elem, extra)))
-      return retval;
-
-  return 0;
-}
diff --git a/libs/dbprim/ll_move.c b/libs/dbprim/ll_move.c
deleted file mode 100644 (file)
index 7a2c760..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
-** Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-**
-** This library is free software; you can redistribute it and/or
-** modify it under the terms of the GNU Library General Public
-** License as published by the Free Software Foundation; either
-** version 2 of the License, or (at your option) any later version.
-**
-** This library 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
-** Library General Public License for more details.
-**
-** You should have received a copy of the GNU Library General Public
-** License along with this library; if not, write to the Free
-** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-** MA 02111-1307, USA
-**
-** @(#)$Id$
-*/
-#include "dbprim.h"
-#include "dbprim_int.h"
-
-RCSTAG("@(#)$Id$");
-
-/** \ingroup dbprim_link
- * \brief Move an element within a linked list.
- *
- * This function moves a specified element within the linked list.
- *
- * \param list A pointer to a #link_head_t.
- * \param elem A pointer to the #link_elem_t describing the element
- *             to be moved.
- * \param loc  A #link_loc_t indicating where the entry should be
- *             moved to.
- * \param elem2        A pointer to a #link_elem_t describing another element
- *             in the list if \p loc is #LINK_LOC_BEFORE or
- *             #LINK_LOC_AFTER.
- *
- * \retval DB_ERR_BADARGS      An argument was invalid.
- * \retval DB_ERR_BUSY         \p elem and \p elem2 are the same
- *                             element.
- * \retval DB_ERR_WRONGTABLE   \p elem or \p elem2 are in a different
- *                             list.
- * \retval DB_ERR_UNUSED       \p elem or \p elem2 are not in any
- *                             list.
- */
-unsigned long
-ll_move(link_head_t *list, link_elem_t *new, link_loc_t loc,
-       link_elem_t *elem)
-{
-  initialize_dbpr_error_table(); /* initialize error table */
-
-  /* Verify arguments--if elem is set, must be a valid element; if
-   * location is before or after, elem must be set
-   */
-  if (!ll_verify(list) || !le_verify(new) || (elem && !le_verify(elem)) ||
-      ((loc == LINK_LOC_BEFORE || loc == LINK_LOC_AFTER) && !elem))
-    return DB_ERR_BADARGS;
-
-  /* elements can't be the same element */
-  if (elem && new == elem)
-    return DB_ERR_BUSY;
-
-  /* elements must be in the same list */
-  if (list != new->le_head)
-    return new->le_head ? DB_ERR_WRONGTABLE : DB_ERR_UNUSED;
-  if (elem && list != elem->le_head)
-    return elem->le_head ? DB_ERR_WRONGTABLE : DB_ERR_UNUSED;
-
-  if (new->le_next) /* Clip element out of it previous location */
-    new->le_next->le_prev = new->le_prev;
-  if (new->le_prev)
-    new->le_prev->le_next = new->le_next;
-  else
-    list->lh_first = new->le_next;
-
-  if (list->lh_last == new) /* Make sure we know where the last element is */
-    list->lh_last = new->le_prev;
-
-  switch (loc) { /* put it in the right place in the list */
-  case LINK_LOC_HEAD:
-    if (!(elem = list->lh_first)) { /* insert before first element in list */
-      list->lh_first = new; /* list was empty, add element to list */
-      list->lh_last = new;
-      return 0; /* and return, since the list was empty before. */
-    }
-    /*FALLTHROUGH*/
-  case LINK_LOC_BEFORE:
-    new->le_next = elem; /* prepare new element for its location */
-    new->le_prev = elem->le_prev;
-
-    elem->le_prev = new; /* insert element into list */
-    if (new->le_prev)
-      new->le_prev->le_next = new; /* update previous element */
-    else /* update head of list */
-      list->lh_first = new;
-    break;
-
-  case LINK_LOC_TAIL:
-    if (!(elem = list->lh_last)) { /* insert after last element in list */
-      list->lh_first = new; /* list was empty, add element to list */
-      list->lh_last = new;
-      return 0; /* and return, since the list was empty before. */
-    }
-    /*FALLTHROUGH*/
-  case LINK_LOC_AFTER:
-    new->le_next = elem->le_next; /* prepare new element for its location */
-    new->le_prev = elem;
-
-    elem->le_next = new; /* insert element into list */
-    if (new->le_next)
-      new->le_next->le_prev = new; /* update next element */
-    else /* update tail of list */
-      list->lh_last = new;
-    break;
-  }
-
-  return 0;
-}
diff --git a/libs/dbprim/ll_remove.c b/libs/dbprim/ll_remove.c
deleted file mode 100644 (file)
index d012868..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
-** Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-**
-** This library is free software; you can redistribute it and/or
-** modify it under the terms of the GNU Library General Public
-** License as published by the Free Software Foundation; either
-** version 2 of the License, or (at your option) any later version.
-**
-** This library 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
-** Library General Public License for more details.
-**
-** You should have received a copy of the GNU Library General Public
-** License along with this library; if not, write to the Free
-** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-** MA 02111-1307, USA
-**
-** @(#)$Id$
-*/
-#include "dbprim.h"
-#include "dbprim_int.h"
-
-RCSTAG("@(#)$Id$");
-
-/** \ingroup dbprim_link
- * \brief Remove an element from a linked list.
- *
- * This function removes a specified element from a linked list.
- *
- * \param list A pointer to a #link_head_t.
- * \param elem A pointer to the #link_elem_t describing the element
- *             to be removed.
- *
- * \retval DB_ERR_BADARGS      An argument was invalid.
- * \retval DB_ERR_UNUSED       \p elem is not in a linked list.
- * \retval DB_ERR_WRONGTABLE   \p elem is not in this linked list.
- */
-unsigned long
-ll_remove(link_head_t *list, link_elem_t *elem)
-{
-  initialize_dbpr_error_table(); /* initialize error table */
-
-  if (!ll_verify(list) || !le_verify(elem)) /* First, verify the arguments */
-    return DB_ERR_BADARGS;
-
-  if (!elem->le_head) /* is the element even being used? */
-    return DB_ERR_UNUSED;
-  if (list != elem->le_head) /* Verify that the element is in this list */
-    return DB_ERR_WRONGTABLE;
-
-  list->lh_count--; /* OK, reduce the list count */
-
-  if (elem->le_next) /* Clip the list back together */
-    elem->le_next->le_prev = elem->le_prev;
-  if (elem->le_prev)
-    elem->le_prev->le_next = elem->le_next;
-  else
-    list->lh_first = elem->le_next;
-
-  if (list->lh_last == elem) /* Make sure we know where the last element is */
-    list->lh_last = elem->le_prev;
-
-  elem->le_next = 0; /* Clear the element out */
-  elem->le_prev = 0;
-  elem->le_head = 0;
-
-  return 0;
-}
diff --git a/libs/dbprim/ltmain.sh b/libs/dbprim/ltmain.sh
deleted file mode 100644 (file)
index 2393e14..0000000
+++ /dev/null
@@ -1,4946 +0,0 @@
-# ltmain.sh - Provide generalized library-building support services.
-# NOTE: Changing this file will not affect anything until you rerun configure.
-#
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
-# Free Software Foundation, Inc.
-# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
-#
-# This program 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 of the License, or
-# (at your option) any later version.
-#
-# This program 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Check that we have a working $echo.
-if test "X$1" = X--no-reexec; then
-  # Discard the --no-reexec flag, and continue.
-  shift
-elif test "X$1" = X--fallback-echo; then
-  # Avoid inline document here, it may be left over
-  :
-elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
-  # Yippee, $echo works!
-  :
-else
-  # Restart under the correct shell, and then maybe $echo will work.
-  exec $SHELL "$0" --no-reexec ${1+"$@"}
-fi
-
-if test "X$1" = X--fallback-echo; then
-  # used as fallback echo
-  shift
-  cat <<EOF
-$*
-EOF
-  exit 0
-fi
-
-# The name of this program.
-progname=`$echo "$0" | sed 's%^.*/%%'`
-modename="$progname"
-
-# Constants.
-PROGRAM=ltmain.sh
-PACKAGE=libtool
-VERSION=1.4
-TIMESTAMP=" (1.920 2001/04/24 23:26:18)"
-
-default_mode=
-help="Try \`$progname --help' for more information."
-magic="%%%MAGIC variable%%%"
-mkdir="mkdir"
-mv="mv -f"
-rm="rm -f"
-
-# Sed substitution that helps us do robust quoting.  It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed='sed -e 1s/^X//'
-sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
-SP2NL='tr \040 \012'
-NL2SP='tr \015\012 \040\040'
-
-# 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).
-# We save the old values to restore during execute mode.
-if test "${LC_ALL+set}" = set; then
-  save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
-fi
-if test "${LANG+set}" = set; then
-  save_LANG="$LANG"; LANG=C; export LANG
-fi
-
-if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
-  echo "$modename: not configured to build any kind of library" 1>&2
-  echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
-  exit 1
-fi
-
-# Global variables.
-mode=$default_mode
-nonopt=
-prev=
-prevopt=
-run=
-show="$echo"
-show_help=
-execute_dlfiles=
-lo2o="s/\\.lo\$/.${objext}/"
-o2lo="s/\\.${objext}\$/.lo/"
-
-# Parse our command line options once, thoroughly.
-while test $# -gt 0
-do
-  arg="$1"
-  shift
-
-  case $arg in
-  -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
-  *) optarg= ;;
-  esac
-
-  # If the previous option needs an argument, assign it.
-  if test -n "$prev"; then
-    case $prev in
-    execute_dlfiles)
-      execute_dlfiles="$execute_dlfiles $arg"
-      ;;
-    *)
-      eval "$prev=\$arg"
-      ;;
-    esac
-
-    prev=
-    prevopt=
-    continue
-  fi
-
-  # Have we seen a non-optional argument yet?
-  case $arg in
-  --help)
-    show_help=yes
-    ;;
-
-  --version)
-    echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
-    exit 0
-    ;;
-
-  --config)
-    sed -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $0
-    exit 0
-    ;;
-
-  --debug)
-    echo "$progname: enabling shell trace mode"
-    set -x
-    ;;
-
-  --dry-run | -n)
-    run=:
-    ;;
-
-  --features)
-    echo "host: $host"
-    if test "$build_libtool_libs" = yes; then
-      echo "enable shared libraries"
-    else
-      echo "disable shared libraries"
-    fi
-    if test "$build_old_libs" = yes; then
-      echo "enable static libraries"
-    else
-      echo "disable static libraries"
-    fi
-    exit 0
-    ;;
-
-  --finish) mode="finish" ;;
-
-  --mode) prevopt="--mode" prev=mode ;;
-  --mode=*) mode="$optarg" ;;
-
-  --quiet | --silent)
-    show=:
-    ;;
-
-  -dlopen)
-    prevopt="-dlopen"
-    prev=execute_dlfiles
-    ;;
-
-  -*)
-    $echo "$modename: unrecognized option \`$arg'" 1>&2
-    $echo "$help" 1>&2
-    exit 1
-    ;;
-
-  *)
-    nonopt="$arg"
-    break
-    ;;
-  esac
-done
-
-if test -n "$prevopt"; then
-  $echo "$modename: option \`$prevopt' requires an argument" 1>&2
-  $echo "$help" 1>&2
-  exit 1
-fi
-
-if test -z "$show_help"; then
-
-  # Infer the operation mode.
-  if test -z "$mode"; then
-    case $nonopt in
-    *cc | *++ | gcc* | *-gcc*)
-      mode=link
-      for arg
-      do
-       case $arg in
-       -c)
-          mode=compile
-          break
-          ;;
-       esac
-      done
-      ;;
-    *db | *dbx | *strace | *truss)
-      mode=execute
-      ;;
-    *install*|cp|mv)
-      mode=install
-      ;;
-    *rm)
-      mode=uninstall
-      ;;
-    *)
-      # If we have no mode, but dlfiles were specified, then do execute mode.
-      test -n "$execute_dlfiles" && mode=execute
-
-      # Just use the default operation mode.
-      if test -z "$mode"; then
-       if test -n "$nonopt"; then
-         $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
-       else
-         $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
-       fi
-      fi
-      ;;
-    esac
-  fi
-
-  # Only execute mode is allowed to have -dlopen flags.
-  if test -n "$execute_dlfiles" && test "$mode" != execute; then
-    $echo "$modename: unrecognized option \`-dlopen'" 1>&2
-    $echo "$help" 1>&2
-    exit 1
-  fi
-
-  # Change the help message to a mode-specific one.
-  generic_help="$help"
-  help="Try \`$modename --help --mode=$mode' for more information."
-
-  # These modes are in order of execution frequency so that they run quickly.
-  case $mode in
-  # libtool compile mode
-  compile)
-    modename="$modename: compile"
-    # Get the compilation command and the source file.
-    base_compile=
-    prev=
-    lastarg=
-    srcfile="$nonopt"
-    suppress_output=
-
-    user_target=no
-    for arg
-    do
-      case $prev in
-      "") ;;
-      xcompiler)
-       # Aesthetically quote the previous argument.
-       prev=
-       lastarg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
-
-       case $arg in
-       # Double-quote args containing other shell metacharacters.
-       # Many Bourne shells cannot handle close brackets correctly
-       # in scan sets, so we specify it separately.
-       *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \   ]*|*]*|"")
-         arg="\"$arg\""
-         ;;
-       esac
-
-       # Add the previous argument to base_compile.
-       if test -z "$base_compile"; then
-         base_compile="$lastarg"
-       else
-         base_compile="$base_compile $lastarg"
-       fi
-       continue
-       ;;
-      esac
-
-      # Accept any command-line options.
-      case $arg in
-      -o)
-       if test "$user_target" != "no"; then
-         $echo "$modename: you cannot specify \`-o' more than once" 1>&2
-         exit 1
-       fi
-       user_target=next
-       ;;
-
-      -static)
-       build_old_libs=yes
-       continue
-       ;;
-
-      -prefer-pic)
-       pic_mode=yes
-       continue
-       ;;
-
-      -prefer-non-pic)
-       pic_mode=no
-       continue
-       ;;
-
-      -Xcompiler)
-       prev=xcompiler
-       continue
-       ;;
-
-      -Wc,*)
-       args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
-       lastarg=
-       IFS="${IFS=     }"; save_ifs="$IFS"; IFS=','
-       for arg in $args; do
-         IFS="$save_ifs"
-
-         # Double-quote args containing other shell metacharacters.
-         # Many Bourne shells cannot handle close brackets correctly
-         # in scan sets, so we specify it separately.
-         case $arg in
-           *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \       ]*|*]*|"")
-           arg="\"$arg\""
-           ;;
-         esac
-         lastarg="$lastarg $arg"
-       done
-       IFS="$save_ifs"
-       lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
-
-       # Add the arguments to base_compile.
-       if test -z "$base_compile"; then
-         base_compile="$lastarg"
-       else
-         base_compile="$base_compile $lastarg"
-       fi
-       continue
-       ;;
-      esac
-
-      case $user_target in
-      next)
-       # The next one is the -o target name
-       user_target=yes
-       continue
-       ;;
-      yes)
-       # We got the output file
-       user_target=set
-       libobj="$arg"
-       continue
-       ;;
-      esac
-
-      # Accept the current argument as the source file.
-      lastarg="$srcfile"
-      srcfile="$arg"
-
-      # Aesthetically quote the previous argument.
-
-      # Backslashify any backslashes, double quotes, and dollar signs.
-      # These are the only characters that are still specially
-      # interpreted inside of double-quoted scrings.
-      lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
-
-      # Double-quote args containing other shell metacharacters.
-      # Many Bourne shells cannot handle close brackets correctly
-      # in scan sets, so we specify it separately.
-      case $lastarg in
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \    ]*|*]*|"")
-       lastarg="\"$lastarg\""
-       ;;
-      esac
-
-      # Add the previous argument to base_compile.
-      if test -z "$base_compile"; then
-       base_compile="$lastarg"
-      else
-       base_compile="$base_compile $lastarg"
-      fi
-    done
-
-    case $user_target in
-    set)
-      ;;
-    no)
-      # Get the name of the library object.
-      libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
-      ;;
-    *)
-      $echo "$modename: you must specify a target with \`-o'" 1>&2
-      exit 1
-      ;;
-    esac
-
-    # Recognize several different file suffixes.
-    # If the user specifies -o file.o, it is replaced with file.lo
-    xform='[cCFSfmso]'
-    case $libobj in
-    *.ada) xform=ada ;;
-    *.adb) xform=adb ;;
-    *.ads) xform=ads ;;
-    *.asm) xform=asm ;;
-    *.c++) xform=c++ ;;
-    *.cc) xform=cc ;;
-    *.cpp) xform=cpp ;;
-    *.cxx) xform=cxx ;;
-    *.f90) xform=f90 ;;
-    *.for) xform=for ;;
-    esac
-
-    libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
-
-    case $libobj in
-    *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
-    *)
-      $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
-      exit 1
-      ;;
-    esac
-
-    if test -z "$base_compile"; then
-      $echo "$modename: you must specify a compilation command" 1>&2
-      $echo "$help" 1>&2
-      exit 1
-    fi
-
-    # Delete any leftover library objects.
-    if test "$build_old_libs" = yes; then
-      removelist="$obj $libobj"
-    else
-      removelist="$libobj"
-    fi
-
-    $run $rm $removelist
-    trap "$run $rm $removelist; exit 1" 1 2 15
-
-    # On Cygwin there's no "real" PIC flag so we must build both object types
-    case $host_os in
-    cygwin* | mingw* | pw32* | os2*)
-      pic_mode=default
-      ;;
-    esac
-    if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
-      # non-PIC code in shared libraries is not supported
-      pic_mode=default
-    fi
-
-    # Calculate the filename of the output object if compiler does
-    # not support -o with -c
-    if test "$compiler_c_o" = no; then
-      output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
-      lockfile="$output_obj.lock"
-      removelist="$removelist $output_obj $lockfile"
-      trap "$run $rm $removelist; exit 1" 1 2 15
-    else
-      need_locks=no
-      lockfile=
-    fi
-
-    # Lock this critical section if it is needed
-    # We use this script file to make the link, it avoids creating a new file
-    if test "$need_locks" = yes; then
-      until $run ln "$0" "$lockfile" 2>/dev/null; do
-       $show "Waiting for $lockfile to be removed"
-       sleep 2
-      done
-    elif test "$need_locks" = warn; then
-      if test -f "$lockfile"; then
-       echo "\
-*** ERROR, $lockfile exists and contains:
-`cat $lockfile 2>/dev/null`
-
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together.  If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
-
-       $run $rm $removelist
-       exit 1
-      fi
-      echo $srcfile > "$lockfile"
-    fi
-
-    if test -n "$fix_srcfile_path"; then
-      eval srcfile=\"$fix_srcfile_path\"
-    fi
-
-    # Only build a PIC object if we are building libtool libraries.
-    if test "$build_libtool_libs" = yes; then
-      # Without this assignment, base_compile gets emptied.
-      fbsd_hideous_sh_bug=$base_compile
-
-      if test "$pic_mode" != no; then
-       # All platforms use -DPIC, to notify preprocessed assembler code.
-       command="$base_compile $srcfile $pic_flag -DPIC"
-      else
-       # Don't build PIC code
-       command="$base_compile $srcfile"
-      fi
-      if test "$build_old_libs" = yes; then
-       lo_libobj="$libobj"
-       dir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
-       if test "X$dir" = "X$libobj"; then
-         dir="$objdir"
-       else
-         dir="$dir/$objdir"
-       fi
-       libobj="$dir/"`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
-
-       if test -d "$dir"; then
-         $show "$rm $libobj"
-         $run $rm $libobj
-       else
-         $show "$mkdir $dir"
-         $run $mkdir $dir
-         status=$?
-         if test $status -ne 0 && test ! -d $dir; then
-           exit $status
-         fi
-       fi
-      fi
-      if test "$compiler_o_lo" = yes; then
-       output_obj="$libobj"
-       command="$command -o $output_obj"
-      elif test "$compiler_c_o" = yes; then
-       output_obj="$obj"
-       command="$command -o $output_obj"
-      fi
-
-      $run $rm "$output_obj"
-      $show "$command"
-      if $run eval "$command"; then :
-      else
-       test -n "$output_obj" && $run $rm $removelist
-       exit 1
-      fi
-
-      if test "$need_locks" = warn &&
-        test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
-       echo "\
-*** ERROR, $lockfile contains:
-`cat $lockfile 2>/dev/null`
-
-but it should contain:
-$srcfile
-
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together.  If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
-
-       $run $rm $removelist
-       exit 1
-      fi
-
-      # Just move the object if needed, then go on to compile the next one
-      if test x"$output_obj" != x"$libobj"; then
-       $show "$mv $output_obj $libobj"
-       if $run $mv $output_obj $libobj; then :
-       else
-         error=$?
-         $run $rm $removelist
-         exit $error
-       fi
-      fi
-
-      # If we have no pic_flag, then copy the object into place and finish.
-      if (test -z "$pic_flag" || test "$pic_mode" != default) &&
-        test "$build_old_libs" = yes; then
-       # Rename the .lo from within objdir to obj
-       if test -f $obj; then
-         $show $rm $obj
-         $run $rm $obj
-       fi
-
-       $show "$mv $libobj $obj"
-       if $run $mv $libobj $obj; then :
-       else
-         error=$?
-         $run $rm $removelist
-         exit $error
-       fi
-
-       xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
-       if test "X$xdir" = "X$obj"; then
-         xdir="."
-       else
-         xdir="$xdir"
-       fi
-       baseobj=`$echo "X$obj" | $Xsed -e "s%.*/%%"`
-       libobj=`$echo "X$baseobj" | $Xsed -e "$o2lo"`
-       # Now arrange that obj and lo_libobj become the same file
-       $show "(cd $xdir && $LN_S $baseobj $libobj)"
-       if $run eval '(cd $xdir && $LN_S $baseobj $libobj)'; then
-         exit 0
-       else
-         error=$?
-         $run $rm $removelist
-         exit $error
-       fi
-      fi
-
-      # Allow error messages only from the first compilation.
-      suppress_output=' >/dev/null 2>&1'
-    fi
-
-    # Only build a position-dependent object if we build old libraries.
-    if test "$build_old_libs" = yes; then
-      if test "$pic_mode" != yes; then
-       # Don't build PIC code
-       command="$base_compile $srcfile"
-      else
-       # All platforms use -DPIC, to notify preprocessed assembler code.
-       command="$base_compile $srcfile $pic_flag -DPIC"
-      fi
-      if test "$compiler_c_o" = yes; then
-       command="$command -o $obj"
-       output_obj="$obj"
-      fi
-
-      # Suppress compiler output if we already did a PIC compilation.
-      command="$command$suppress_output"
-      $run $rm "$output_obj"
-      $show "$command"
-      if $run eval "$command"; then :
-      else
-       $run $rm $removelist
-       exit 1
-      fi
-
-      if test "$need_locks" = warn &&
-        test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
-       echo "\
-*** ERROR, $lockfile contains:
-`cat $lockfile 2>/dev/null`
-
-but it should contain:
-$srcfile
-
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together.  If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
-
-       $run $rm $removelist
-       exit 1
-      fi
-
-      # Just move the object if needed
-      if test x"$output_obj" != x"$obj"; then
-       $show "$mv $output_obj $obj"
-       if $run $mv $output_obj $obj; then :
-       else
-         error=$?
-         $run $rm $removelist
-         exit $error
-       fi
-      fi
-
-      # Create an invalid libtool object if no PIC, so that we do not
-      # accidentally link it into a program.
-      if test "$build_libtool_libs" != yes; then
-       $show "echo timestamp > $libobj"
-       $run eval "echo timestamp > \$libobj" || exit $?
-      else
-       # Move the .lo from within objdir
-       $show "$mv $libobj $lo_libobj"
-       if $run $mv $libobj $lo_libobj; then :
-       else
-         error=$?
-         $run $rm $removelist
-         exit $error
-       fi
-      fi
-    fi
-
-    # Unlock the critical section if it was locked
-    if test "$need_locks" != no; then
-      $run $rm "$lockfile"
-    fi
-
-    exit 0
-    ;;
-
-  # libtool link mode
-  link | relink)
-    modename="$modename: link"
-    case $host in
-    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
-      # It is impossible to link a dll without this setting, and
-      # we shouldn't force the makefile maintainer to figure out
-      # which system we are compiling for in order to pass an extra
-      # flag for every libtool invokation.
-      # allow_undefined=no
-
-      # FIXME: Unfortunately, there are problems with the above when trying
-      # to make a dll which has undefined symbols, in which case not
-      # even a static library is built.  For now, we need to specify
-      # -no-undefined on the libtool link line when we can be certain
-      # that all symbols are satisfied, otherwise we get a static library.
-      allow_undefined=yes
-      ;;
-    *)
-      allow_undefined=yes
-      ;;
-    esac
-    libtool_args="$nonopt"
-    compile_command="$nonopt"
-    finalize_command="$nonopt"
-
-    compile_rpath=
-    finalize_rpath=
-    compile_shlibpath=
-    finalize_shlibpath=
-    convenience=
-    old_convenience=
-    deplibs=
-    old_deplibs=
-    compiler_flags=
-    linker_flags=
-    dllsearchpath=
-    lib_search_path=`pwd`
-
-    avoid_version=no
-    dlfiles=
-    dlprefiles=
-    dlself=no
-    export_dynamic=no
-    export_symbols=
-    export_symbols_regex=
-    generated=
-    libobjs=
-    ltlibs=
-    module=no
-    no_install=no
-    objs=
-    prefer_static_libs=no
-    preload=no
-    prev=
-    prevarg=
-    release=
-    rpath=
-    xrpath=
-    perm_rpath=
-    temp_rpath=
-    thread_safe=no
-    vinfo=
-
-    # We need to know -static, to get the right output filenames.
-    for arg
-    do
-      case $arg in
-      -all-static | -static)
-       if test "X$arg" = "X-all-static"; then
-         if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
-           $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
-         fi
-         if test -n "$link_static_flag"; then
-           dlopen_self=$dlopen_self_static
-         fi
-       else
-         if test -z "$pic_flag" && test -n "$link_static_flag"; then
-           dlopen_self=$dlopen_self_static
-         fi
-       fi
-       build_libtool_libs=no
-       build_old_libs=yes
-       prefer_static_libs=yes
-       break
-       ;;
-      esac
-    done
-
-    # See if our shared archives depend on static archives.
-    test -n "$old_archive_from_new_cmds" && build_old_libs=yes
-
-    # Go through the arguments, transforming them on the way.
-    while test $# -gt 0; do
-      arg="$1"
-      shift
-      case $arg in
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \    ]*|*]*|"")
-       qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
-       ;;
-      *) qarg=$arg ;;
-      esac
-      libtool_args="$libtool_args $qarg"
-
-      # If the previous option needs an argument, assign it.
-      if test -n "$prev"; then
-       case $prev in
-       output)
-         compile_command="$compile_command @OUTPUT@"
-         finalize_command="$finalize_command @OUTPUT@"
-         ;;
-       esac
-
-       case $prev in
-       dlfiles|dlprefiles)
-         if test "$preload" = no; then
-           # Add the symbol object into the linking commands.
-           compile_command="$compile_command @SYMFILE@"
-           finalize_command="$finalize_command @SYMFILE@"
-           preload=yes
-         fi
-         case $arg in
-         *.la | *.lo) ;;  # We handle these cases below.
-         force)
-           if test "$dlself" = no; then
-             dlself=needless
-             export_dynamic=yes
-           fi
-           prev=
-           continue
-           ;;
-         self)
-           if test "$prev" = dlprefiles; then
-             dlself=yes
-           elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
-             dlself=yes
-           else
-             dlself=needless
-             export_dynamic=yes
-           fi
-           prev=
-           continue
-           ;;
-         *)
-           if test "$prev" = dlfiles; then
-             dlfiles="$dlfiles $arg"
-           else
-             dlprefiles="$dlprefiles $arg"
-           fi
-           prev=
-           continue
-           ;;
-         esac
-         ;;
-       expsyms)
-         export_symbols="$arg"
-         if test ! -f "$arg"; then
-           $echo "$modename: symbol file \`$arg' does not exist"
-           exit 1
-         fi
-         prev=
-         continue
-         ;;
-       expsyms_regex)
-         export_symbols_regex="$arg"
-         prev=
-         continue
-         ;;
-       release)
-         release="-$arg"
-         prev=
-         continue
-         ;;
-       rpath | xrpath)
-         # We need an absolute path.
-         case $arg in
-         [\\/]* | [A-Za-z]:[\\/]*) ;;
-         *)
-           $echo "$modename: only absolute run-paths are allowed" 1>&2
-           exit 1
-           ;;
-         esac
-         if test "$prev" = rpath; then
-           case "$rpath " in
-           *" $arg "*) ;;
-           *) rpath="$rpath $arg" ;;
-           esac
-         else
-           case "$xrpath " in
-           *" $arg "*) ;;
-           *) xrpath="$xrpath $arg" ;;
-           esac
-         fi
-         prev=
-         continue
-         ;;
-       xcompiler)
-         compiler_flags="$compiler_flags $qarg"
-         prev=
-         compile_command="$compile_command $qarg"
-         finalize_command="$finalize_command $qarg"
-         continue
-         ;;
-       xlinker)
-         linker_flags="$linker_flags $qarg"
-         compiler_flags="$compiler_flags $wl$qarg"
-         prev=
-         compile_command="$compile_command $wl$qarg"
-         finalize_command="$finalize_command $wl$qarg"
-         continue
-         ;;
-       *)
-         eval "$prev=\"\$arg\""
-         prev=
-         continue
-         ;;
-       esac
-      fi # test -n $prev
-
-      prevarg="$arg"
-
-      case $arg in
-      -all-static)
-       if test -n "$link_static_flag"; then
-         compile_command="$compile_command $link_static_flag"
-         finalize_command="$finalize_command $link_static_flag"
-       fi
-       continue
-       ;;
-
-      -allow-undefined)
-       # FIXME: remove this flag sometime in the future.
-       $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
-       continue
-       ;;
-
-      -avoid-version)
-       avoid_version=yes
-       continue
-       ;;
-
-      -dlopen)
-       prev=dlfiles
-       continue
-       ;;
-
-      -dlpreopen)
-       prev=dlprefiles
-       continue
-       ;;
-
-      -export-dynamic)
-       export_dynamic=yes
-       continue
-       ;;
-
-      -export-symbols | -export-symbols-regex)
-       if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
-         $echo "$modename: more than one -exported-symbols argument is not allowed"
-         exit 1
-       fi
-       if test "X$arg" = "X-export-symbols"; then
-         prev=expsyms
-       else
-         prev=expsyms_regex
-       fi
-       continue
-       ;;
-
-      # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
-      # so, if we see these flags be careful not to treat them like -L
-      -L[A-Z][A-Z]*:*)
-       case $with_gcc/$host in
-       no/*-*-irix*)
-         compile_command="$compile_command $arg"
-         finalize_command="$finalize_command $arg"
-         ;;
-       esac
-       continue
-       ;;
-
-      -L*)
-       dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
-       # We need an absolute path.
-       case $dir in
-       [\\/]* | [A-Za-z]:[\\/]*) ;;
-       *)
-         absdir=`cd "$dir" && pwd`
-         if test -z "$absdir"; then
-           $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
-           exit 1
-         fi
-         dir="$absdir"
-         ;;
-       esac
-       case "$deplibs " in
-       *" -L$dir "*) ;;
-       *)
-         deplibs="$deplibs -L$dir"
-         lib_search_path="$lib_search_path $dir"
-         ;;
-       esac
-       case $host in
-       *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
-         case :$dllsearchpath: in
-         *":$dir:"*) ;;
-         *) dllsearchpath="$dllsearchpath:$dir";;
-         esac
-         ;;
-       esac
-       continue
-       ;;
-
-      -l*)
-       if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
-         case $host in
-         *-*-cygwin* | *-*-pw32* | *-*-beos*)
-           # These systems don't actually have a C or math library (as such)
-           continue
-           ;;
-         *-*-mingw* | *-*-os2*)
-           # These systems don't actually have a C library (as such)
-           test "X$arg" = "X-lc" && continue
-           ;;
-         esac
-       fi
-       deplibs="$deplibs $arg"
-       continue
-       ;;
-
-      -module)
-       module=yes
-       continue
-       ;;
-
-      -no-fast-install)
-       fast_install=no
-       continue
-       ;;
-
-      -no-install)
-       case $host in
-       *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
-         # The PATH hackery in wrapper scripts is required on Windows
-         # in order for the loader to find any dlls it needs.
-         $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
-         $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
-         fast_install=no
-         ;;
-       *) no_install=yes ;;
-       esac
-       continue
-       ;;
-
-      -no-undefined)
-       allow_undefined=no
-       continue
-       ;;
-
-      -o) prev=output ;;
-
-      -release)
-       prev=release
-       continue
-       ;;
-
-      -rpath)
-       prev=rpath
-       continue
-       ;;
-
-      -R)
-       prev=xrpath
-       continue
-       ;;
-
-      -R*)
-       dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
-       # We need an absolute path.
-       case $dir in
-       [\\/]* | [A-Za-z]:[\\/]*) ;;
-       *)
-         $echo "$modename: only absolute run-paths are allowed" 1>&2
-         exit 1
-         ;;
-       esac
-       case "$xrpath " in
-       *" $dir "*) ;;
-       *) xrpath="$xrpath $dir" ;;
-       esac
-       continue
-       ;;
-
-      -static)
-       # The effects of -static are defined in a previous loop.
-       # We used to do the same as -all-static on platforms that
-       # didn't have a PIC flag, but the assumption that the effects
-       # would be equivalent was wrong.  It would break on at least
-       # Digital Unix and AIX.
-       continue
-       ;;
-
-      -thread-safe)
-       thread_safe=yes
-       continue
-       ;;
-
-      -version-info)
-       prev=vinfo
-       continue
-       ;;
-
-      -Wc,*)
-       args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
-       arg=
-       IFS="${IFS=     }"; save_ifs="$IFS"; IFS=','
-       for flag in $args; do
-         IFS="$save_ifs"
-         case $flag in
-           *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \       ]*|*]*|"")
-           flag="\"$flag\""
-           ;;
-         esac
-         arg="$arg $wl$flag"
-         compiler_flags="$compiler_flags $flag"
-       done
-       IFS="$save_ifs"
-       arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
-       ;;
-
-      -Wl,*)
-       args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
-       arg=
-       IFS="${IFS=     }"; save_ifs="$IFS"; IFS=','
-       for flag in $args; do
-         IFS="$save_ifs"
-         case $flag in
-           *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \       ]*|*]*|"")
-           flag="\"$flag\""
-           ;;
-         esac
-         arg="$arg $wl$flag"
-         compiler_flags="$compiler_flags $wl$flag"
-         linker_flags="$linker_flags $flag"
-       done
-       IFS="$save_ifs"
-       arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
-       ;;
-
-      -Xcompiler)
-       prev=xcompiler
-       continue
-       ;;
-
-      -Xlinker)
-       prev=xlinker
-       continue
-       ;;
-
-      # Some other compiler flag.
-      -* | +*)
-       # Unknown arguments in both finalize_command and compile_command need
-       # to be aesthetically quoted because they are evaled later.
-       arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
-       case $arg in
-       *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \   ]*|*]*|"")
-         arg="\"$arg\""
-         ;;
-       esac
-       ;;
-
-      *.lo | *.$objext)
-       # A library or standard object.
-       if test "$prev" = dlfiles; then
-         # This file was specified with -dlopen.
-         if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
-           dlfiles="$dlfiles $arg"
-           prev=
-           continue
-         else
-           # If libtool objects are unsupported, then we need to preload.
-           prev=dlprefiles
-         fi
-       fi
-
-       if test "$prev" = dlprefiles; then
-         # Preload the old-style object.
-         dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e "$lo2o"`
-         prev=
-       else
-         case $arg in
-         *.lo) libobjs="$libobjs $arg" ;;
-         *) objs="$objs $arg" ;;
-         esac
-       fi
-       ;;
-
-      *.$libext)
-       # An archive.
-       deplibs="$deplibs $arg"
-       old_deplibs="$old_deplibs $arg"
-       continue
-       ;;
-
-      *.la)
-       # A libtool-controlled library.
-
-       if test "$prev" = dlfiles; then
-         # This library was specified with -dlopen.
-         dlfiles="$dlfiles $arg"
-         prev=
-       elif test "$prev" = dlprefiles; then
-         # The library was specified with -dlpreopen.
-         dlprefiles="$dlprefiles $arg"
-         prev=
-       else
-         deplibs="$deplibs $arg"
-       fi
-       continue
-       ;;
-
-      # Some other compiler argument.
-      *)
-       # Unknown arguments in both finalize_command and compile_command need
-       # to be aesthetically quoted because they are evaled later.
-       arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
-       case $arg in
-       *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \   ]*|*]*|"")
-         arg="\"$arg\""
-         ;;
-       esac
-       ;;
-      esac # arg
-
-      # Now actually substitute the argument into the commands.
-      if test -n "$arg"; then
-       compile_command="$compile_command $arg"
-       finalize_command="$finalize_command $arg"
-      fi
-    done # argument parsing loop
-
-    if test -n "$prev"; then
-      $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
-      $echo "$help" 1>&2
-      exit 1
-    fi
-
-    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
-      eval arg=\"$export_dynamic_flag_spec\"
-      compile_command="$compile_command $arg"
-      finalize_command="$finalize_command $arg"
-    fi
-
-    # calculate the name of the file, without its directory
-    outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
-    libobjs_save="$libobjs"
-
-    if test -n "$shlibpath_var"; then
-      # get the directories listed in $shlibpath_var
-      eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
-    else
-      shlib_search_path=
-    fi
-    eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
-    eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
-
-    output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
-    if test "X$output_objdir" = "X$output"; then
-      output_objdir="$objdir"
-    else
-      output_objdir="$output_objdir/$objdir"
-    fi
-    # Create the object directory.
-    if test ! -d $output_objdir; then
-      $show "$mkdir $output_objdir"
-      $run $mkdir $output_objdir
-      status=$?
-      if test $status -ne 0 && test ! -d $output_objdir; then
-       exit $status
-      fi
-    fi
-
-    # Determine the type of output
-    case $output in
-    "")
-      $echo "$modename: you must specify an output file" 1>&2
-      $echo "$help" 1>&2
-      exit 1
-      ;;
-    *.$libext) linkmode=oldlib ;;
-    *.lo | *.$objext) linkmode=obj ;;
-    *.la) linkmode=lib ;;
-    *) linkmode=prog ;; # Anything else should be a program.
-    esac
-
-    specialdeplibs=
-    libs=
-    # Find all interdependent deplibs by searching for libraries
-    # that are linked more than once (e.g. -la -lb -la)
-    for deplib in $deplibs; do
-      case "$libs " in
-      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
-      esac
-      libs="$libs $deplib"
-    done
-    deplibs=
-    newdependency_libs=
-    newlib_search_path=
-    need_relink=no # whether we're linking any uninstalled libtool libraries
-    notinst_deplibs= # not-installed libtool libraries
-    notinst_path= # paths that contain not-installed libtool libraries
-    case $linkmode in
-    lib)
-       passes="conv link"
-       for file in $dlfiles $dlprefiles; do
-         case $file in
-         *.la) ;;
-         *)
-           $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
-           exit 1
-           ;;
-         esac
-       done
-       ;;
-    prog)
-       compile_deplibs=
-       finalize_deplibs=
-       alldeplibs=no
-       newdlfiles=
-       newdlprefiles=
-       passes="conv scan dlopen dlpreopen link"
-       ;;
-    *)  passes="conv"
-       ;;
-    esac
-    for pass in $passes; do
-      if test "$linkmode" = prog; then
-       # Determine which files to process
-       case $pass in
-       dlopen)
-         libs="$dlfiles"
-         save_deplibs="$deplibs" # Collect dlpreopened libraries
-         deplibs=
-         ;;
-       dlpreopen) libs="$dlprefiles" ;;
-       link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
-       esac
-      fi
-      for deplib in $libs; do
-       lib=
-       found=no
-       case $deplib in
-       -l*)
-         if test "$linkmode" = oldlib && test "$linkmode" = obj; then
-           $echo "$modename: warning: \`-l' is ignored for archives/objects: $deplib" 1>&2
-           continue
-         fi
-         if test "$pass" = conv; then
-           deplibs="$deplib $deplibs"
-           continue
-         fi
-         name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
-         for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
-           # Search the libtool library
-           lib="$searchdir/lib${name}.la"
-           if test -f "$lib"; then
-             found=yes
-             break
-           fi
-         done
-         if test "$found" != yes; then
-           # deplib doesn't seem to be a libtool library
-           if test "$linkmode,$pass" = "prog,link"; then
-             compile_deplibs="$deplib $compile_deplibs"
-             finalize_deplibs="$deplib $finalize_deplibs"
-           else
-             deplibs="$deplib $deplibs"
-             test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
-           fi
-           continue
-         fi
-         ;; # -l
-       -L*)
-         case $linkmode in
-         lib)
-           deplibs="$deplib $deplibs"
-           test "$pass" = conv && continue
-           newdependency_libs="$deplib $newdependency_libs"
-           newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
-           ;;
-         prog)
-           if test "$pass" = conv; then
-             deplibs="$deplib $deplibs"
-             continue
-           fi
-           if test "$pass" = scan; then
-             deplibs="$deplib $deplibs"
-             newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
-           else
-             compile_deplibs="$deplib $compile_deplibs"
-             finalize_deplibs="$deplib $finalize_deplibs"
-           fi
-           ;;
-         *)
-           $echo "$modename: warning: \`-L' is ignored for archives/objects: $deplib" 1>&2
-           ;;
-         esac # linkmode
-         continue
-         ;; # -L
-       -R*)
-         if test "$pass" = link; then
-           dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
-           # Make sure the xrpath contains only unique directories.
-           case "$xrpath " in
-           *" $dir "*) ;;
-           *) xrpath="$xrpath $dir" ;;
-           esac
-         fi
-         deplibs="$deplib $deplibs"
-         continue
-         ;;
-       *.la) lib="$deplib" ;;
-       *.$libext)
-         if test "$pass" = conv; then
-           deplibs="$deplib $deplibs"
-           continue
-         fi
-         case $linkmode in
-         lib)
-           if test "$deplibs_check_method" != pass_all; then
-             echo
-             echo "*** Warning: This library needs some functionality provided by $deplib."
-             echo "*** I have the capability to make that library automatically link in when"
-             echo "*** you link to this library.  But I can only do this if you have a"
-             echo "*** shared version of the library, which you do not appear to have."
-           else
-             echo
-             echo "*** Warning: Linking the shared library $output against the"
-             echo "*** static library $deplib is not portable!"
-             deplibs="$deplib $deplibs"
-           fi
-           continue
-           ;;
-         prog)
-           if test "$pass" != link; then
-             deplibs="$deplib $deplibs"
-           else
-             compile_deplibs="$deplib $compile_deplibs"
-             finalize_deplibs="$deplib $finalize_deplibs"
-           fi
-           continue
-           ;;
-         esac # linkmode
-         ;; # *.$libext
-       *.lo | *.$objext)
-         if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
-           # If there is no dlopen support or we're linking statically,
-           # we need to preload.
-           newdlprefiles="$newdlprefiles $deplib"
-           compile_deplibs="$deplib $compile_deplibs"
-           finalize_deplibs="$deplib $finalize_deplibs"
-         else
-           newdlfiles="$newdlfiles $deplib"
-         fi
-         continue
-         ;;
-       %DEPLIBS%)
-         alldeplibs=yes
-         continue
-         ;;
-       esac # case $deplib
-       if test $found = yes || test -f "$lib"; then :
-       else
-         $echo "$modename: cannot find the library \`$lib'" 1>&2
-         exit 1
-       fi
-
-       # Check to see that this really is a libtool archive.
-       if (sed -e '2q' $lib | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
-       else
-         $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
-         exit 1
-       fi
-
-       ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
-       test "X$ladir" = "X$lib" && ladir="."
-
-       dlname=
-       dlopen=
-       dlpreopen=
-       libdir=
-       library_names=
-       old_library=
-       # If the library was installed with an old release of libtool,
-       # it will not redefine variable installed.
-       installed=yes
-
-       # Read the .la file
-       case $lib in
-       */* | *\\*) . $lib ;;
-       *) . ./$lib ;;
-       esac
-
-       if test "$linkmode,$pass" = "lib,link" ||
-          test "$linkmode,$pass" = "prog,scan" ||
-          { test "$linkmode" = oldlib && test "$linkmode" = obj; }; then
-          # Add dl[pre]opened files of deplib
-         test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
-         test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
-       fi
-
-       if test "$pass" = conv; then
-         # Only check for convenience libraries
-         deplibs="$lib $deplibs"
-         if test -z "$libdir"; then
-           if test -z "$old_library"; then
-             $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
-             exit 1
-           fi
-           # It is a libtool convenience library, so add in its objects.
-           convenience="$convenience $ladir/$objdir/$old_library"
-           old_convenience="$old_convenience $ladir/$objdir/$old_library"
-           tmp_libs=
-           for deplib in $dependency_libs; do
-             deplibs="$deplib $deplibs"
-             case "$tmp_libs " in
-             *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
-             esac
-             tmp_libs="$tmp_libs $deplib"
-           done
-         elif test "$linkmode" != prog && test "$linkmode" != lib; then
-           $echo "$modename: \`$lib' is not a convenience library" 1>&2
-           exit 1
-         fi
-         continue
-       fi # $pass = conv
-
-       # Get the name of the library we link against.
-       linklib=
-       for l in $old_library $library_names; do
-         linklib="$l"
-       done
-       if test -z "$linklib"; then
-         $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
-         exit 1
-       fi
-
-       # This library was specified with -dlopen.
-       if test "$pass" = dlopen; then
-         if test -z "$libdir"; then
-           $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
-           exit 1
-         fi
-         if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
-           # If there is no dlname, no dlopen support or we're linking
-           # statically, we need to preload.
-           dlprefiles="$dlprefiles $lib"
-         else
-           newdlfiles="$newdlfiles $lib"
-         fi
-         continue
-       fi # $pass = dlopen
-
-       # We need an absolute path.
-       case $ladir in
-       [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
-       *)
-         abs_ladir=`cd "$ladir" && pwd`
-         if test -z "$abs_ladir"; then
-           $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
-           $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
-           abs_ladir="$ladir"
-         fi
-         ;;
-       esac
-       laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
-
-       # Find the relevant object directory and library name.
-       if test "X$installed" = Xyes; then
-         if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
-           $echo "$modename: warning: library \`$lib' was moved." 1>&2
-           dir="$ladir"
-           absdir="$abs_ladir"
-           libdir="$abs_ladir"
-         else
-           dir="$libdir"
-           absdir="$libdir"
-         fi
-       else
-         dir="$ladir/$objdir"
-         absdir="$abs_ladir/$objdir"
-         # Remove this search path later
-         notinst_path="$notinst_path $abs_ladir"
-       fi # $installed = yes
-       name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
-
-       # This library was specified with -dlpreopen.
-       if test "$pass" = dlpreopen; then
-         if test -z "$libdir"; then
-           $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
-           exit 1
-         fi
-         # Prefer using a static library (so that no silly _DYNAMIC symbols
-         # are required to link).
-         if test -n "$old_library"; then
-           newdlprefiles="$newdlprefiles $dir/$old_library"
-         # Otherwise, use the dlname, so that lt_dlopen finds it.
-         elif test -n "$dlname"; then
-           newdlprefiles="$newdlprefiles $dir/$dlname"
-         else
-           newdlprefiles="$newdlprefiles $dir/$linklib"
-         fi
-       fi # $pass = dlpreopen
-
-       if test -z "$libdir"; then
-         # Link the convenience library
-         if test "$linkmode" = lib; then
-           deplibs="$dir/$old_library $deplibs"
-         elif test "$linkmode,$pass" = "prog,link"; then
-           compile_deplibs="$dir/$old_library $compile_deplibs"
-           finalize_deplibs="$dir/$old_library $finalize_deplibs"
-         else
-           deplibs="$lib $deplibs"
-         fi
-         continue
-       fi
-
-       if test "$linkmode" = prog && test "$pass" != link; then
-         newlib_search_path="$newlib_search_path $ladir"
-         deplibs="$lib $deplibs"
-
-         linkalldeplibs=no
-         if test "$link_all_deplibs" != no || test -z "$library_names" ||
-            test "$build_libtool_libs" = no; then
-           linkalldeplibs=yes
-         fi
-
-         tmp_libs=
-         for deplib in $dependency_libs; do
-           case $deplib in
-           -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
-           esac
-           # Need to link against all dependency_libs?
-           if test $linkalldeplibs = yes; then
-             deplibs="$deplib $deplibs"
-           else
-             # Need to hardcode shared library paths
-             # or/and link against static libraries
-             newdependency_libs="$deplib $newdependency_libs"
-           fi
-           case "$tmp_libs " in
-           *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
-           esac
-           tmp_libs="$tmp_libs $deplib"
-         done # for deplib
-         continue
-       fi # $linkmode = prog...
-
-       link_static=no # Whether the deplib will be linked statically
-       if test -n "$library_names" &&
-          { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
-         # Link against this shared library
-
-         if test "$linkmode,$pass" = "prog,link" ||
-          { test "$linkmode" = lib && test "$hardcode_into_libs" = yes; }; then
-           # Hardcode the library path.
-           # Skip directories that are in the system default run-time
-           # search path.
-           case " $sys_lib_dlsearch_path " in
-           *" $absdir "*) ;;
-           *)
-             case "$compile_rpath " in
-             *" $absdir "*) ;;
-             *) compile_rpath="$compile_rpath $absdir"
-             esac
-             ;;
-           esac
-           case " $sys_lib_dlsearch_path " in
-           *" $libdir "*) ;;
-           *)
-             case "$finalize_rpath " in
-             *" $libdir "*) ;;
-             *) finalize_rpath="$finalize_rpath $libdir"
-             esac
-             ;;
-           esac
-           if test "$linkmode" = prog; then
-             # We need to hardcode the library path
-             if test -n "$shlibpath_var"; then
-               # Make sure the rpath contains only unique directories.
-               case "$temp_rpath " in
-               *" $dir "*) ;;
-               *" $absdir "*) ;;
-               *) temp_rpath="$temp_rpath $dir" ;;
-               esac
-             fi
-           fi
-         fi # $linkmode,$pass = prog,link...
-
-         if test "$alldeplibs" = yes &&
-            { test "$deplibs_check_method" = pass_all ||
-              { test "$build_libtool_libs" = yes &&
-                test -n "$library_names"; }; }; then
-           # We only need to search for static libraries
-           continue
-         fi
-
-         if test "$installed" = no; then
-           notinst_deplibs="$notinst_deplibs $lib"
-           need_relink=yes
-         fi
-
-         if test -n "$old_archive_from_expsyms_cmds"; then
-           # figure out the soname
-           set dummy $library_names
-           realname="$2"
-           shift; shift
-           libname=`eval \\$echo \"$libname_spec\"`
-           # use dlname if we got it. it's perfectly good, no?
-           if test -n "$dlname"; then
-             soname="$dlname"
-           elif test -n "$soname_spec"; then
-             # bleh windows
-             case $host in
-             *cygwin*)
-               major=`expr $current - $age`
-               versuffix="-$major"
-               ;;
-             esac
-             eval soname=\"$soname_spec\"
-           else
-             soname="$realname"
-           fi
-
-           # Make a new name for the extract_expsyms_cmds to use
-           soroot="$soname"
-           soname=`echo $soroot | sed -e 's/^.*\///'`
-           newlib="libimp-`echo $soname | sed 's/^lib//;s/\.dll$//'`.a"
-
-           # If the library has no export list, then create one now
-           if test -f "$output_objdir/$soname-def"; then :
-           else
-             $show "extracting exported symbol list from \`$soname'"
-             IFS="${IFS=       }"; save_ifs="$IFS"; IFS='~'
-             eval cmds=\"$extract_expsyms_cmds\"
-             for cmd in $cmds; do
-               IFS="$save_ifs"
-               $show "$cmd"
-               $run eval "$cmd" || exit $?
-             done
-             IFS="$save_ifs"
-           fi
-
-           # Create $newlib
-           if test -f "$output_objdir/$newlib"; then :; else
-             $show "generating import library for \`$soname'"
-             IFS="${IFS=       }"; save_ifs="$IFS"; IFS='~'
-             eval cmds=\"$old_archive_from_expsyms_cmds\"
-             for cmd in $cmds; do
-               IFS="$save_ifs"
-               $show "$cmd"
-               $run eval "$cmd" || exit $?
-             done
-             IFS="$save_ifs"
-           fi
-           # make sure the library variables are pointing to the new library
-           dir=$output_objdir
-           linklib=$newlib
-         fi # test -n $old_archive_from_expsyms_cmds
-
-         if test "$linkmode" = prog || test "$mode" != relink; then
-           add_shlibpath=
-           add_dir=
-           add=
-           lib_linked=yes
-           case $hardcode_action in
-           immediate | unsupported)
-             if test "$hardcode_direct" = no; then
-               add="$dir/$linklib"
-             elif test "$hardcode_minus_L" = no; then
-               case $host in
-               *-*-sunos*) add_shlibpath="$dir" ;;
-               esac
-               add_dir="-L$dir"
-               add="-l$name"
-             elif test "$hardcode_shlibpath_var" = no; then
-               add_shlibpath="$dir"
-               add="-l$name"
-             else
-               lib_linked=no
-             fi
-             ;;
-           relink)
-             if test "$hardcode_direct" = yes; then
-               add="$dir/$linklib"
-             elif test "$hardcode_minus_L" = yes; then
-               add_dir="-L$dir"
-               add="-l$name"
-             elif test "$hardcode_shlibpath_var" = yes; then
-               add_shlibpath="$dir"
-               add="-l$name"
-             else
-               lib_linked=no
-             fi
-             ;;
-           *) lib_linked=no ;;
-           esac
-
-           if test "$lib_linked" != yes; then
-             $echo "$modename: configuration error: unsupported hardcode properties"
-             exit 1
-           fi
-
-           if test -n "$add_shlibpath"; then
-             case :$compile_shlibpath: in
-             *":$add_shlibpath:"*) ;;
-             *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
-             esac
-           fi
-           if test "$linkmode" = prog; then
-             test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
-             test -n "$add" && compile_deplibs="$add $compile_deplibs"
-           else
-             test -n "$add_dir" && deplibs="$add_dir $deplibs"
-             test -n "$add" && deplibs="$add $deplibs"
-             if test "$hardcode_direct" != yes && \
-                test "$hardcode_minus_L" != yes && \
-                test "$hardcode_shlibpath_var" = yes; then
-               case :$finalize_shlibpath: in
-               *":$libdir:"*) ;;
-               *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
-               esac
-             fi
-           fi
-         fi
-
-         if test "$linkmode" = prog || test "$mode" = relink; then
-           add_shlibpath=
-           add_dir=
-           add=
-           # Finalize command for both is simple: just hardcode it.
-           if test "$hardcode_direct" = yes; then
-             add="$libdir/$linklib"
-           elif test "$hardcode_minus_L" = yes; then
-             add_dir="-L$libdir"
-             add="-l$name"
-           elif test "$hardcode_shlibpath_var" = yes; then
-             case :$finalize_shlibpath: in
-             *":$libdir:"*) ;;
-             *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
-             esac
-             add="-l$name"
-           else
-             # We cannot seem to hardcode it, guess we'll fake it.
-             add_dir="-L$libdir"
-             add="-l$name"
-           fi
-
-           if test "$linkmode" = prog; then
-             test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
-             test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
-           else
-             test -n "$add_dir" && deplibs="$add_dir $deplibs"
-             test -n "$add" && deplibs="$add $deplibs"
-           fi
-         fi
-       elif test "$linkmode" = prog; then
-         if test "$alldeplibs" = yes &&
-            { test "$deplibs_check_method" = pass_all ||
-              { test "$build_libtool_libs" = yes &&
-                test -n "$library_names"; }; }; then
-           # We only need to search for static libraries
-           continue
-         fi
-
-         # Try to link the static library
-         # Here we assume that one of hardcode_direct or hardcode_minus_L
-         # is not unsupported.  This is valid on all known static and
-         # shared platforms.
-         if test "$hardcode_direct" != unsupported; then
-           test -n "$old_library" && linklib="$old_library"
-           compile_deplibs="$dir/$linklib $compile_deplibs"
-           finalize_deplibs="$dir/$linklib $finalize_deplibs"
-         else
-           compile_deplibs="-l$name -L$dir $compile_deplibs"
-           finalize_deplibs="-l$name -L$dir $finalize_deplibs"
-         fi
-       elif test "$build_libtool_libs" = yes; then
-         # Not a shared library
-         if test "$deplibs_check_method" != pass_all; then
-           # We're trying link a shared library against a static one
-           # but the system doesn't support it.
-
-           # Just print a warning and add the library to dependency_libs so
-           # that the program can be linked against the static library.
-           echo
-           echo "*** Warning: This library needs some functionality provided by $lib."
-           echo "*** I have the capability to make that library automatically link in when"
-           echo "*** you link to this library.  But I can only do this if you have a"
-           echo "*** shared version of the library, which you do not appear to have."
-           if test "$module" = yes; then
-             echo "*** Therefore, libtool will create a static module, that should work "
-             echo "*** as long as the dlopening application is linked with the -dlopen flag."
-             if test -z "$global_symbol_pipe"; then
-               echo
-               echo "*** However, this would only work if libtool was able to extract symbol"
-               echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
-               echo "*** not find such a program.  So, this module is probably useless."
-               echo "*** \`nm' from GNU binutils and a full rebuild may help."
-             fi
-             if test "$build_old_libs" = no; then
-               build_libtool_libs=module
-               build_old_libs=yes
-             else
-               build_libtool_libs=no
-             fi
-           fi
-         else
-           convenience="$convenience $dir/$old_library"
-           old_convenience="$old_convenience $dir/$old_library"
-           deplibs="$dir/$old_library $deplibs"
-           link_static=yes
-         fi
-       fi # link shared/static library?
-
-       if test "$linkmode" = lib; then
-         if test -n "$dependency_libs" &&
-            { test "$hardcode_into_libs" != yes || test $build_old_libs = yes ||
-              test $link_static = yes; }; then
-           # Extract -R from dependency_libs
-           temp_deplibs=
-           for libdir in $dependency_libs; do
-             case $libdir in
-             -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
-                  case " $xrpath " in
-                  *" $temp_xrpath "*) ;;
-                  *) xrpath="$xrpath $temp_xrpath";;
-                  esac;;
-             *) temp_deplibs="$temp_deplibs $libdir";;
-             esac
-           done
-           dependency_libs="$temp_deplibs"
-         fi
-
-         newlib_search_path="$newlib_search_path $absdir"
-         # Link against this library
-         test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
-         # ... and its dependency_libs
-         tmp_libs=
-         for deplib in $dependency_libs; do
-           newdependency_libs="$deplib $newdependency_libs"
-           case "$tmp_libs " in
-           *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
-           esac
-           tmp_libs="$tmp_libs $deplib"
-         done
-
-         if test "$link_all_deplibs" != no; then
-           # Add the search paths of all dependency libraries
-           for deplib in $dependency_libs; do
-             case $deplib in
-             -L*) path="$deplib" ;;
-             *.la)
-               dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
-               test "X$dir" = "X$deplib" && dir="."
-               # We need an absolute path.
-               case $dir in
-               [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
-               *)
-                 absdir=`cd "$dir" && pwd`
-                 if test -z "$absdir"; then
-                   $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
-                   absdir="$dir"
-                 fi
-                 ;;
-               esac
-               if grep "^installed=no" $deplib > /dev/null; then
-                 path="-L$absdir/$objdir"
-               else
-                 eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
-                 if test -z "$libdir"; then
-                   $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
-                   exit 1
-                 fi
-                 if test "$absdir" != "$libdir"; then
-                   $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
-                 fi
-                 path="-L$absdir"
-               fi
-               ;;
-             *) continue ;;
-             esac
-             case " $deplibs " in
-             *" $path "*) ;;
-             *) deplibs="$deplibs $path" ;;
-             esac
-           done
-         fi # link_all_deplibs != no
-       fi # linkmode = lib
-      done # for deplib in $libs
-      if test "$pass" = dlpreopen; then
-       # Link the dlpreopened libraries before other libraries
-       for deplib in $save_deplibs; do
-         deplibs="$deplib $deplibs"
-       done
-      fi
-      if test "$pass" != dlopen; then
-       test "$pass" != scan && dependency_libs="$newdependency_libs"
-       if test "$pass" != conv; then
-         # Make sure lib_search_path contains only unique directories.
-         lib_search_path=
-         for dir in $newlib_search_path; do
-           case "$lib_search_path " in
-           *" $dir "*) ;;
-           *) lib_search_path="$lib_search_path $dir" ;;
-           esac
-         done
-         newlib_search_path=
-       fi
-
-       if test "$linkmode,$pass" != "prog,link"; then
-         vars="deplibs"
-       else
-         vars="compile_deplibs finalize_deplibs"
-       fi
-       for var in $vars dependency_libs; do
-         # Add libraries to $var in reverse order
-         eval tmp_libs=\"\$$var\"
-         new_libs=
-         for deplib in $tmp_libs; do
-           case $deplib in
-           -L*) new_libs="$deplib $new_libs" ;;
-           *)
-             case " $specialdeplibs " in
-             *" $deplib "*) new_libs="$deplib $new_libs" ;;
-             *)
-               case " $new_libs " in
-               *" $deplib "*) ;;
-               *) new_libs="$deplib $new_libs" ;;
-               esac
-               ;;
-             esac
-             ;;
-           esac
-         done
-         tmp_libs=
-         for deplib in $new_libs; do
-           case $deplib in
-           -L*)
-             case " $tmp_libs " in
-             *" $deplib "*) ;;
-             *) tmp_libs="$tmp_libs $deplib" ;;
-             esac
-             ;;
-           *) tmp_libs="$tmp_libs $deplib" ;;
-           esac
-         done
-         eval $var=\"$tmp_libs\"
-       done # for var
-      fi
-      if test "$pass" = "conv" &&
-       { test "$linkmode" = "lib" || test "$linkmode" = "prog"; }; then
-       libs="$deplibs" # reset libs
-       deplibs=
-      fi
-    done # for pass
-    if test "$linkmode" = prog; then
-      dlfiles="$newdlfiles"
-      dlprefiles="$newdlprefiles"
-    fi
-
-    case $linkmode in
-    oldlib)
-      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
-       $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
-      fi
-
-      if test -n "$rpath"; then
-       $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
-      fi
-
-      if test -n "$xrpath"; then
-       $echo "$modename: warning: \`-R' is ignored for archives" 1>&2
-      fi
-
-      if test -n "$vinfo"; then
-       $echo "$modename: warning: \`-version-info' is ignored for archives" 1>&2
-      fi
-
-      if test -n "$release"; then
-       $echo "$modename: warning: \`-release' is ignored for archives" 1>&2
-      fi
-
-      if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
-       $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
-      fi
-
-      # Now set the variables for building old libraries.
-      build_libtool_libs=no
-      oldlibs="$output"
-      objs="$objs$old_deplibs"
-      ;;
-
-    lib)
-      # Make sure we only generate libraries of the form `libNAME.la'.
-      case $outputname in
-      lib*)
-       name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
-       eval libname=\"$libname_spec\"
-       ;;
-      *)
-       if test "$module" = no; then
-         $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
-         $echo "$help" 1>&2
-         exit 1
-       fi
-       if test "$need_lib_prefix" != no; then
-         # Add the "lib" prefix for modules if required
-         name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
-         eval libname=\"$libname_spec\"
-       else
-         libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
-       fi
-       ;;
-      esac
-
-      if test -n "$objs"; then
-       if test "$deplibs_check_method" != pass_all; then
-         $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
-         exit 1
-       else
-         echo
-         echo "*** Warning: Linking the shared library $output against the non-libtool"
-         echo "*** objects $objs is not portable!"
-         libobjs="$libobjs $objs"
-       fi
-      fi
-
-      if test "$dlself" != no; then
-       $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
-      fi
-
-      set dummy $rpath
-      if test $# -gt 2; then
-       $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
-      fi
-      install_libdir="$2"
-
-      oldlibs=
-      if test -z "$rpath"; then
-       if test "$build_libtool_libs" = yes; then
-         # Building a libtool convenience library.
-         libext=al
-         oldlibs="$output_objdir/$libname.$libext $oldlibs"
-         build_libtool_libs=convenience
-         build_old_libs=yes
-       fi
-
-       if test -n "$vinfo"; then
-         $echo "$modename: warning: \`-version-info' is ignored for convenience libraries" 1>&2
-       fi
-
-       if test -n "$release"; then
-         $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
-       fi
-      else
-
-       # Parse the version information argument.
-       IFS="${IFS=     }"; save_ifs="$IFS"; IFS=':'
-       set dummy $vinfo 0 0 0
-       IFS="$save_ifs"
-
-       if test -n "$8"; then
-         $echo "$modename: too many parameters to \`-version-info'" 1>&2
-         $echo "$help" 1>&2
-         exit 1
-       fi
-
-       current="$2"
-       revision="$3"
-       age="$4"
-
-       # Check that each of the things are valid numbers.
-       case $current in
-       0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
-       *)
-         $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
-         $echo "$modename: \`$vinfo' is not valid version information" 1>&2
-         exit 1
-         ;;
-       esac
-
-       case $revision in
-       0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
-       *)
-         $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
-         $echo "$modename: \`$vinfo' is not valid version information" 1>&2
-         exit 1
-         ;;
-       esac
-
-       case $age in
-       0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
-       *)
-         $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
-         $echo "$modename: \`$vinfo' is not valid version information" 1>&2
-         exit 1
-         ;;
-       esac
-
-       if test $age -gt $current; then
-         $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
-         $echo "$modename: \`$vinfo' is not valid version information" 1>&2
-         exit 1
-       fi
-
-       # Calculate the version variables.
-       major=
-       versuffix=
-       verstring=
-       case $version_type in
-       none) ;;
-
-       darwin)
-         # Like Linux, but with the current version available in
-         # verstring for coding it into the library header
-         major=.`expr $current - $age`
-         versuffix="$major.$age.$revision"
-         # Darwin ld doesn't like 0 for these options...
-         minor_current=`expr $current + 1`
-         verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
-         ;;
-
-       freebsd-aout)
-         major=".$current"
-         versuffix=".$current.$revision";
-         ;;
-
-       freebsd-elf)
-         major=".$current"
-         versuffix=".$current";
-         ;;
-
-       irix)
-         major=`expr $current - $age + 1`
-         verstring="sgi$major.$revision"
-
-         # Add in all the interfaces that we are compatible with.
-         loop=$revision
-         while test $loop != 0; do
-           iface=`expr $revision - $loop`
-           loop=`expr $loop - 1`
-           verstring="sgi$major.$iface:$verstring"
-         done
-
-         # Before this point, $major must not contain `.'.
-         major=.$major
-         versuffix="$major.$revision"
-         ;;
-
-       linux)
-         major=.`expr $current - $age`
-         versuffix="$major.$age.$revision"
-         ;;
-
-       osf)
-         major=`expr $current - $age`
-         versuffix=".$current.$age.$revision"
-         verstring="$current.$age.$revision"
-
-         # Add in all the interfaces that we are compatible with.
-         loop=$age
-         while test $loop != 0; do
-           iface=`expr $current - $loop`
-           loop=`expr $loop - 1`
-           verstring="$verstring:${iface}.0"
-         done
-
-         # Make executables depend on our current version.
-         verstring="$verstring:${current}.0"
-         ;;
-
-       sunos)
-         major=".$current"
-         versuffix=".$current.$revision"
-         ;;
-
-       windows)
-         # Use '-' rather than '.', since we only want one
-         # extension on DOS 8.3 filesystems.
-         major=`expr $current - $age`
-         versuffix="-$major"
-         ;;
-
-       *)
-         $echo "$modename: unknown library version type \`$version_type'" 1>&2
-         echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
-         exit 1
-         ;;
-       esac
-
-       # Clear the version info if we defaulted, and they specified a release.
-       if test -z "$vinfo" && test -n "$release"; then
-         major=
-         verstring="0.0"
-         if test "$need_version" = no; then
-           versuffix=
-         else
-           versuffix=".0.0"
-         fi
-       fi
-
-       # Remove version info from name if versioning should be avoided
-       if test "$avoid_version" = yes && test "$need_version" = no; then
-         major=
-         versuffix=
-         verstring=""
-       fi
-
-       # Check to see if the archive will have undefined symbols.
-       if test "$allow_undefined" = yes; then
-         if test "$allow_undefined_flag" = unsupported; then
-           $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
-           build_libtool_libs=no
-           build_old_libs=yes
-         fi
-       else
-         # Don't allow undefined symbols.
-         allow_undefined_flag="$no_undefined_flag"
-       fi
-      fi
-
-      if test "$mode" != relink; then
-       # Remove our outputs.
-       $show "${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*"
-       $run ${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*
-      fi
-
-      # Now set the variables for building old libraries.
-      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
-       oldlibs="$oldlibs $output_objdir/$libname.$libext"
-
-       # Transform .lo files to .o files.
-       oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
-      fi
-
-      # Eliminate all temporary directories.
-      for path in $notinst_path; do
-       lib_search_path=`echo "$lib_search_path " | sed -e 's% $path % %g'`
-       deplibs=`echo "$deplibs " | sed -e 's% -L$path % %g'`
-       dependency_libs=`echo "$dependency_libs " | sed -e 's% -L$path % %g'`
-      done
-
-      if test -n "$xrpath"; then
-       # If the user specified any rpath flags, then add them.
-       temp_xrpath=
-       for libdir in $xrpath; do
-         temp_xrpath="$temp_xrpath -R$libdir"
-         case "$finalize_rpath " in
-         *" $libdir "*) ;;
-         *) finalize_rpath="$finalize_rpath $libdir" ;;
-         esac
-       done
-       if test $hardcode_into_libs != yes || test $build_old_libs = yes; then
-         dependency_libs="$temp_xrpath $dependency_libs"
-       fi
-      fi
-
-      # Make sure dlfiles contains only unique files that won't be dlpreopened
-      old_dlfiles="$dlfiles"
-      dlfiles=
-      for lib in $old_dlfiles; do
-       case " $dlprefiles $dlfiles " in
-       *" $lib "*) ;;
-       *) dlfiles="$dlfiles $lib" ;;
-       esac
-      done
-
-      # Make sure dlprefiles contains only unique files
-      old_dlprefiles="$dlprefiles"
-      dlprefiles=
-      for lib in $old_dlprefiles; do
-       case "$dlprefiles " in
-       *" $lib "*) ;;
-       *) dlprefiles="$dlprefiles $lib" ;;
-       esac
-      done
-
-      if test "$build_libtool_libs" = yes; then
-       if test -n "$rpath"; then
-         case $host in
-         *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
-           # these systems don't actually have a c library (as such)!
-           ;;
-         *-*-rhapsody* | *-*-darwin1.[012])
-           # Rhapsody C library is in the System framework
-           deplibs="$deplibs -framework System"
-           ;;
-         *-*-netbsd*)
-           # Don't link with libc until the a.out ld.so is fixed.
-           ;;
-         *)
-           # Add libc to deplibs on all other systems if necessary.
-           if test "$build_libtool_need_lc" = "yes"; then
-             deplibs="$deplibs -lc"
-           fi
-           ;;
-         esac
-       fi
-
-       # Transform deplibs into only deplibs that can be linked in shared.
-       name_save=$name
-       libname_save=$libname
-       release_save=$release
-       versuffix_save=$versuffix
-       major_save=$major
-       # I'm not sure if I'm treating the release correctly.  I think
-       # release should show up in the -l (ie -lgmp5) so we don't want to
-       # add it in twice.  Is that correct?
-       release=""
-       versuffix=""
-       major=""
-       newdeplibs=
-       droppeddeps=no
-       case $deplibs_check_method in
-       pass_all)
-         # Don't check for shared/static.  Everything works.
-         # This might be a little naive.  We might want to check
-         # whether the library exists or not.  But this is on
-         # osf3 & osf4 and I'm not really sure... Just
-         # implementing what was already the behaviour.
-         newdeplibs=$deplibs
-         ;;
-       test_compile)
-         # This code stresses the "libraries are programs" paradigm to its
-         # limits. Maybe even breaks it.  We compile a program, linking it
-         # against the deplibs as a proxy for the library.  Then we can check
-         # whether they linked in statically or dynamically with ldd.
-         $rm conftest.c
-         cat > conftest.c <<EOF
-         int main() { return 0; }
-EOF
-         $rm conftest
-         $CC -o conftest conftest.c $deplibs
-         if test $? -eq 0 ; then
-           ldd_output=`ldd conftest`
-           for i in $deplibs; do
-             name="`expr $i : '-l\(.*\)'`"
-             # If $name is empty we are operating on a -L argument.
-             if test -n "$name" && test "$name" != "0"; then
-               libname=`eval \\$echo \"$libname_spec\"`
-               deplib_matches=`eval \\$echo \"$library_names_spec\"`
-               set dummy $deplib_matches
-               deplib_match=$2
-               if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
-                 newdeplibs="$newdeplibs $i"
-               else
-                 droppeddeps=yes
-                 echo
-                 echo "*** Warning: This library needs some functionality provided by $i."
-                 echo "*** I have the capability to make that library automatically link in when"
-                 echo "*** you link to this library.  But I can only do this if you have a"
-                 echo "*** shared version of the library, which you do not appear to have."
-               fi
-             else
-               newdeplibs="$newdeplibs $i"
-             fi
-           done
-         else
-           # Error occured in the first compile.  Let's try to salvage the situation:
-           # Compile a seperate program for each library.
-           for i in $deplibs; do
-             name="`expr $i : '-l\(.*\)'`"
-            # If $name is empty we are operating on a -L argument.
-             if test -n "$name" && test "$name" != "0"; then
-               $rm conftest
-               $CC -o conftest conftest.c $i
-               # Did it work?
-               if test $? -eq 0 ; then
-                 ldd_output=`ldd conftest`
-                 libname=`eval \\$echo \"$libname_spec\"`
-                 deplib_matches=`eval \\$echo \"$library_names_spec\"`
-                 set dummy $deplib_matches
-                 deplib_match=$2
-                 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
-                   newdeplibs="$newdeplibs $i"
-                 else
-                   droppeddeps=yes
-                   echo
-                   echo "*** Warning: This library needs some functionality provided by $i."
-                   echo "*** I have the capability to make that library automatically link in when"
-                   echo "*** you link to this library.  But I can only do this if you have a"
-                   echo "*** shared version of the library, which you do not appear to have."
-                 fi
-               else
-                 droppeddeps=yes
-                 echo
-                 echo "*** Warning!  Library $i is needed by this library but I was not able to"
-                 echo "***  make it link in!  You will probably need to install it or some"
-                 echo "*** library that it depends on before this library will be fully"
-                 echo "*** functional.  Installing it before continuing would be even better."
-               fi
-             else
-               newdeplibs="$newdeplibs $i"
-             fi
-           done
-         fi
-         ;;
-       file_magic*)
-         set dummy $deplibs_check_method
-         file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
-         for a_deplib in $deplibs; do
-           name="`expr $a_deplib : '-l\(.*\)'`"
-           # If $name is empty we are operating on a -L argument.
-           if test -n "$name" && test "$name" != "0"; then
-             libname=`eval \\$echo \"$libname_spec\"`
-             for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
-                   potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
-                   for potent_lib in $potential_libs; do
-                     # Follow soft links.
-                     if ls -lLd "$potent_lib" 2>/dev/null \
-                        | grep " -> " >/dev/null; then
-                       continue
-                     fi
-                     # The statement above tries to avoid entering an
-                     # endless loop below, in case of cyclic links.
-                     # We might still enter an endless loop, since a link
-                     # loop can be closed while we follow links,
-                     # but so what?
-                     potlib="$potent_lib"
-                     while test -h "$potlib" 2>/dev/null; do
-                       potliblink=`ls -ld $potlib | sed 's/.* -> //'`
-                       case $potliblink in
-                       [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
-                       *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
-                       esac
-                     done
-                     if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
-                        | sed 10q \
-                        | egrep "$file_magic_regex" > /dev/null; then
-                       newdeplibs="$newdeplibs $a_deplib"
-                       a_deplib=""
-                       break 2
-                     fi
-                   done
-             done
-             if test -n "$a_deplib" ; then
-               droppeddeps=yes
-               echo
-               echo "*** Warning: This library needs some functionality provided by $a_deplib."
-               echo "*** I have the capability to make that library automatically link in when"
-               echo "*** you link to this library.  But I can only do this if you have a"
-               echo "*** shared version of the library, which you do not appear to have."
-             fi
-           else
-             # Add a -L argument.
-             newdeplibs="$newdeplibs $a_deplib"
-           fi
-         done # Gone through all deplibs.
-         ;;
-       match_pattern*)
-         set dummy $deplibs_check_method
-         match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
-         for a_deplib in $deplibs; do
-           name="`expr $a_deplib : '-l\(.*\)'`"
-           # If $name is empty we are operating on a -L argument.
-           if test -n "$name" && test "$name" != "0"; then
-             libname=`eval \\$echo \"$libname_spec\"`
-             for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
-               potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
-               for potent_lib in $potential_libs; do
-                 if eval echo \"$potent_lib\" 2>/dev/null \
-                     | sed 10q \
-                     | egrep "$match_pattern_regex" > /dev/null; then
-                   newdeplibs="$newdeplibs $a_deplib"
-                   a_deplib=""
-                   break 2
-                 fi
-               done
-             done
-             if test -n "$a_deplib" ; then
-               droppeddeps=yes
-               echo
-               echo "*** Warning: This library needs some functionality provided by $a_deplib."
-               echo "*** I have the capability to make that library automatically link in when"
-               echo "*** you link to this library.  But I can only do this if you have a"
-               echo "*** shared version of the library, which you do not appear to have."
-             fi
-           else
-             # Add a -L argument.
-             newdeplibs="$newdeplibs $a_deplib"
-           fi
-         done # Gone through all deplibs.
-         ;;
-       none | unknown | *)
-         newdeplibs=""
-         if $echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
-              -e 's/ -[LR][^ ]*//g' -e 's/[    ]//g' |
-            grep . >/dev/null; then
-           echo
-           if test "X$deplibs_check_method" = "Xnone"; then
-             echo "*** Warning: inter-library dependencies are not supported in this platform."
-           else
-             echo "*** Warning: inter-library dependencies are not known to be supported."
-           fi
-           echo "*** All declared inter-library dependencies are being dropped."
-           droppeddeps=yes
-         fi
-         ;;
-       esac
-       versuffix=$versuffix_save
-       major=$major_save
-       release=$release_save
-       libname=$libname_save
-       name=$name_save
-
-       case $host in
-       *-*-rhapsody* | *-*-darwin1.[012])
-         # On Rhapsody replace the C library is the System framework
-         newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
-         ;;
-       esac
-
-       if test "$droppeddeps" = yes; then
-         if test "$module" = yes; then
-           echo
-           echo "*** Warning: libtool could not satisfy all declared inter-library"
-           echo "*** dependencies of module $libname.  Therefore, libtool will create"
-           echo "*** a static module, that should work as long as the dlopening"
-           echo "*** application is linked with the -dlopen flag."
-           if test -z "$global_symbol_pipe"; then
-             echo
-             echo "*** However, this would only work if libtool was able to extract symbol"
-             echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
-             echo "*** not find such a program.  So, this module is probably useless."
-             echo "*** \`nm' from GNU binutils and a full rebuild may help."
-           fi
-           if test "$build_old_libs" = no; then
-             oldlibs="$output_objdir/$libname.$libext"
-             build_libtool_libs=module
-             build_old_libs=yes
-           else
-             build_libtool_libs=no
-           fi
-         else
-           echo "*** The inter-library dependencies that have been dropped here will be"
-           echo "*** automatically added whenever a program is linked with this library"
-           echo "*** or is declared to -dlopen it."
-
-           if test $allow_undefined = no; then
-             echo
-             echo "*** Since this library must not contain undefined symbols,"
-             echo "*** because either the platform does not support them or"
-             echo "*** it was explicitly requested with -no-undefined,"
-             echo "*** libtool will only create a static version of it."
-             if test "$build_old_libs" = no; then
-               oldlibs="$output_objdir/$libname.$libext"
-               build_libtool_libs=module
-               build_old_libs=yes
-             else
-               build_libtool_libs=no
-             fi
-           fi
-         fi
-       fi
-       # Done checking deplibs!
-       deplibs=$newdeplibs
-      fi
-
-      # All the library-specific variables (install_libdir is set above).
-      library_names=
-      old_library=
-      dlname=
-
-      # Test again, we may have decided not to build it any more
-      if test "$build_libtool_libs" = yes; then
-       if test "$hardcode_into_libs" = yes; then
-         # Hardcode the library paths
-         hardcode_libdirs=
-         dep_rpath=
-         rpath="$finalize_rpath"
-         test "$mode" != relink && rpath="$compile_rpath$rpath"
-         for libdir in $rpath; do
-           if test -n "$hardcode_libdir_flag_spec"; then
-             if test -n "$hardcode_libdir_separator"; then
-               if test -z "$hardcode_libdirs"; then
-                 hardcode_libdirs="$libdir"
-               else
-                 # Just accumulate the unique libdirs.
-                 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
-                 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
-                   ;;
-                 *)
-                   hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
-                   ;;
-                 esac
-               fi
-             else
-               eval flag=\"$hardcode_libdir_flag_spec\"
-               dep_rpath="$dep_rpath $flag"
-             fi
-           elif test -n "$runpath_var"; then
-             case "$perm_rpath " in
-             *" $libdir "*) ;;
-             *) perm_rpath="$perm_rpath $libdir" ;;
-             esac
-           fi
-         done
-         # Substitute the hardcoded libdirs into the rpath.
-         if test -n "$hardcode_libdir_separator" &&
-            test -n "$hardcode_libdirs"; then
-           libdir="$hardcode_libdirs"
-           eval dep_rpath=\"$hardcode_libdir_flag_spec\"
-         fi
-         if test -n "$runpath_var" && test -n "$perm_rpath"; then
-           # We should set the runpath_var.
-           rpath=
-           for dir in $perm_rpath; do
-             rpath="$rpath$dir:"
-           done
-           eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
-         fi
-         test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
-       fi
-
-       shlibpath="$finalize_shlibpath"
-       test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
-       if test -n "$shlibpath"; then
-         eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
-       fi
-
-       # Get the real and link names of the library.
-       eval library_names=\"$library_names_spec\"
-       set dummy $library_names
-       realname="$2"
-       shift; shift
-
-       if test -n "$soname_spec"; then
-         eval soname=\"$soname_spec\"
-       else
-         soname="$realname"
-       fi
-       test -z "$dlname" && dlname=$soname
-
-       lib="$output_objdir/$realname"
-       for link
-       do
-         linknames="$linknames $link"
-       done
-
-       # Ensure that we have .o objects for linkers which dislike .lo
-       # (e.g. aix) in case we are running --disable-static
-       for obj in $libobjs; do
-         xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
-         if test "X$xdir" = "X$obj"; then
-           xdir="."
-         else
-           xdir="$xdir"
-         fi
-         baseobj=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
-         oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
-         if test ! -f $xdir/$oldobj; then
-           $show "(cd $xdir && ${LN_S} $baseobj $oldobj)"
-           $run eval '(cd $xdir && ${LN_S} $baseobj $oldobj)' || exit $?
-         fi
-       done
-
-       # Use standard objects if they are pic
-       test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
-
-       # Prepare the list of exported symbols
-       if test -z "$export_symbols"; then
-         if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
-           $show "generating symbol list for \`$libname.la'"
-           export_symbols="$output_objdir/$libname.exp"
-           $run $rm $export_symbols
-           eval cmds=\"$export_symbols_cmds\"
-           IFS="${IFS=         }"; save_ifs="$IFS"; IFS='~'
-           for cmd in $cmds; do
-             IFS="$save_ifs"
-             $show "$cmd"
-             $run eval "$cmd" || exit $?
-           done
-           IFS="$save_ifs"
-           if test -n "$export_symbols_regex"; then
-             $show "egrep -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
-             $run eval 'egrep -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
-             $show "$mv \"${export_symbols}T\" \"$export_symbols\""
-             $run eval '$mv "${export_symbols}T" "$export_symbols"'
-           fi
-         fi
-       fi
-
-       if test -n "$export_symbols" && test -n "$include_expsyms"; then
-         $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
-       fi
-
-       if test -n "$convenience"; then
-         if test -n "$whole_archive_flag_spec"; then
-           eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
-         else
-           gentop="$output_objdir/${outputname}x"
-           $show "${rm}r $gentop"
-           $run ${rm}r "$gentop"
-           $show "mkdir $gentop"
-           $run mkdir "$gentop"
-           status=$?
-           if test $status -ne 0 && test ! -d "$gentop"; then
-             exit $status
-           fi
-           generated="$generated $gentop"
-
-           for xlib in $convenience; do
-             # Extract the objects.
-             case $xlib in
-             [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
-             *) xabs=`pwd`"/$xlib" ;;
-             esac
-             xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
-             xdir="$gentop/$xlib"
-
-             $show "${rm}r $xdir"
-             $run ${rm}r "$xdir"
-             $show "mkdir $xdir"
-             $run mkdir "$xdir"
-             status=$?
-             if test $status -ne 0 && test ! -d "$xdir"; then
-               exit $status
-             fi
-             $show "(cd $xdir && $AR x $xabs)"
-             $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
-
-             libobjs="$libobjs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
-           done
-         fi
-       fi
-
-       if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
-         eval flag=\"$thread_safe_flag_spec\"
-         linker_flags="$linker_flags $flag"
-       fi
-
-       # Make a backup of the uninstalled library when relinking
-       if test "$mode" = relink; then
-         $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $?
-       fi
-
-       # Do each of the archive commands.
-       if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
-         eval cmds=\"$archive_expsym_cmds\"
-       else
-         eval cmds=\"$archive_cmds\"
-       fi
-       IFS="${IFS=     }"; save_ifs="$IFS"; IFS='~'
-       for cmd in $cmds; do
-         IFS="$save_ifs"
-         $show "$cmd"
-         $run eval "$cmd" || exit $?
-       done
-       IFS="$save_ifs"
-
-       # Restore the uninstalled library and exit
-       if test "$mode" = relink; then
-         $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
-         exit 0
-       fi
-
-       # Create links to the real library.
-       for linkname in $linknames; do
-         if test "$realname" != "$linkname"; then
-           $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
-           $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
-         fi
-       done
-
-       # If -module or -export-dynamic was specified, set the dlname.
-       if test "$module" = yes || test "$export_dynamic" = yes; then
-         # On all known operating systems, these are identical.
-         dlname="$soname"
-       fi
-      fi
-      ;;
-
-    obj)
-      if test -n "$deplibs"; then
-       $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
-      fi
-
-      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
-       $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
-      fi
-
-      if test -n "$rpath"; then
-       $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
-      fi
-
-      if test -n "$xrpath"; then
-       $echo "$modename: warning: \`-R' is ignored for objects" 1>&2
-      fi
-
-      if test -n "$vinfo"; then
-       $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
-      fi
-
-      if test -n "$release"; then
-       $echo "$modename: warning: \`-release' is ignored for objects" 1>&2
-      fi
-
-      case $output in
-      *.lo)
-       if test -n "$objs$old_deplibs"; then
-         $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
-         exit 1
-       fi
-       libobj="$output"
-       obj=`$echo "X$output" | $Xsed -e "$lo2o"`
-       ;;
-      *)
-       libobj=
-       obj="$output"
-       ;;
-      esac
-
-      # Delete the old objects.
-      $run $rm $obj $libobj
-
-      # Objects from convenience libraries.  This assumes
-      # single-version convenience libraries.  Whenever we create
-      # different ones for PIC/non-PIC, this we'll have to duplicate
-      # the extraction.
-      reload_conv_objs=
-      gentop=
-      # reload_cmds runs $LD directly, so let us get rid of
-      # -Wl from whole_archive_flag_spec
-      wl=
-
-      if test -n "$convenience"; then
-       if test -n "$whole_archive_flag_spec"; then
-         eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
-       else
-         gentop="$output_objdir/${obj}x"
-         $show "${rm}r $gentop"
-         $run ${rm}r "$gentop"
-         $show "mkdir $gentop"
-         $run mkdir "$gentop"
-         status=$?
-         if test $status -ne 0 && test ! -d "$gentop"; then
-           exit $status
-         fi
-         generated="$generated $gentop"
-
-         for xlib in $convenience; do
-           # Extract the objects.
-           case $xlib in
-           [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
-           *) xabs=`pwd`"/$xlib" ;;
-           esac
-           xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
-           xdir="$gentop/$xlib"
-
-           $show "${rm}r $xdir"
-           $run ${rm}r "$xdir"
-           $show "mkdir $xdir"
-           $run mkdir "$xdir"
-           status=$?
-           if test $status -ne 0 && test ! -d "$xdir"; then
-             exit $status
-           fi
-           $show "(cd $xdir && $AR x $xabs)"
-           $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
-
-           reload_conv_objs="$reload_objs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
-         done
-       fi
-      fi
-
-      # Create the old-style object.
-      reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
-
-      output="$obj"
-      eval cmds=\"$reload_cmds\"
-      IFS="${IFS=      }"; save_ifs="$IFS"; IFS='~'
-      for cmd in $cmds; do
-       IFS="$save_ifs"
-       $show "$cmd"
-       $run eval "$cmd" || exit $?
-      done
-      IFS="$save_ifs"
-
-      # Exit if we aren't doing a library object file.
-      if test -z "$libobj"; then
-       if test -n "$gentop"; then
-         $show "${rm}r $gentop"
-         $run ${rm}r $gentop
-       fi
-
-       exit 0
-      fi
-
-      if test "$build_libtool_libs" != yes; then
-       if test -n "$gentop"; then
-         $show "${rm}r $gentop"
-         $run ${rm}r $gentop
-       fi
-
-       # Create an invalid libtool object if no PIC, so that we don't
-       # accidentally link it into a program.
-       $show "echo timestamp > $libobj"
-       $run eval "echo timestamp > $libobj" || exit $?
-       exit 0
-      fi
-
-      if test -n "$pic_flag" || test "$pic_mode" != default; then
-       # Only do commands if we really have different PIC objects.
-       reload_objs="$libobjs $reload_conv_objs"
-       output="$libobj"
-       eval cmds=\"$reload_cmds\"
-       IFS="${IFS=     }"; save_ifs="$IFS"; IFS='~'
-       for cmd in $cmds; do
-         IFS="$save_ifs"
-         $show "$cmd"
-         $run eval "$cmd" || exit $?
-       done
-       IFS="$save_ifs"
-      else
-       # Just create a symlink.
-       $show $rm $libobj
-       $run $rm $libobj
-       xdir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
-       if test "X$xdir" = "X$libobj"; then
-         xdir="."
-       else
-         xdir="$xdir"
-       fi
-       baseobj=`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
-       oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
-       $show "(cd $xdir && $LN_S $oldobj $baseobj)"
-       $run eval '(cd $xdir && $LN_S $oldobj $baseobj)' || exit $?
-      fi
-
-      if test -n "$gentop"; then
-       $show "${rm}r $gentop"
-       $run ${rm}r $gentop
-      fi
-
-      exit 0
-      ;;
-
-    prog)
-      case $host in
-       *cygwin*) output=`echo $output | sed -e 's,.exe$,,;s,$,.exe,'` ;;
-      esac
-      if test -n "$vinfo"; then
-       $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
-      fi
-
-      if test -n "$release"; then
-       $echo "$modename: warning: \`-release' is ignored for programs" 1>&2
-      fi
-
-      if test "$preload" = yes; then
-       if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown &&
-          test "$dlopen_self_static" = unknown; then
-         $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
-       fi
-      fi
-
-      case $host in
-      *-*-rhapsody* | *-*-darwin1.[012])
-       # On Rhapsody replace the C library is the System framework
-       compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
-       finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
-       ;;
-      esac
-
-      compile_command="$compile_command $compile_deplibs"
-      finalize_command="$finalize_command $finalize_deplibs"
-
-      if test -n "$rpath$xrpath"; then
-       # If the user specified any rpath flags, then add them.
-       for libdir in $rpath $xrpath; do
-         # This is the magic to use -rpath.
-         case "$finalize_rpath " in
-         *" $libdir "*) ;;
-         *) finalize_rpath="$finalize_rpath $libdir" ;;
-         esac
-       done
-      fi
-
-      # Now hardcode the library paths
-      rpath=
-      hardcode_libdirs=
-      for libdir in $compile_rpath $finalize_rpath; do
-       if test -n "$hardcode_libdir_flag_spec"; then
-         if test -n "$hardcode_libdir_separator"; then
-           if test -z "$hardcode_libdirs"; then
-             hardcode_libdirs="$libdir"
-           else
-             # Just accumulate the unique libdirs.
-             case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
-             *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
-               ;;
-             *)
-               hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
-               ;;
-             esac
-           fi
-         else
-           eval flag=\"$hardcode_libdir_flag_spec\"
-           rpath="$rpath $flag"
-         fi
-       elif test -n "$runpath_var"; then
-         case "$perm_rpath " in
-         *" $libdir "*) ;;
-         *) perm_rpath="$perm_rpath $libdir" ;;
-         esac
-       fi
-       case $host in
-       *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
-         case :$dllsearchpath: in
-         *":$libdir:"*) ;;
-         *) dllsearchpath="$dllsearchpath:$libdir";;
-         esac
-         ;;
-       esac
-      done
-      # Substitute the hardcoded libdirs into the rpath.
-      if test -n "$hardcode_libdir_separator" &&
-        test -n "$hardcode_libdirs"; then
-       libdir="$hardcode_libdirs"
-       eval rpath=\" $hardcode_libdir_flag_spec\"
-      fi
-      compile_rpath="$rpath"
-
-      rpath=
-      hardcode_libdirs=
-      for libdir in $finalize_rpath; do
-       if test -n "$hardcode_libdir_flag_spec"; then
-         if test -n "$hardcode_libdir_separator"; then
-           if test -z "$hardcode_libdirs"; then
-             hardcode_libdirs="$libdir"
-           else
-             # Just accumulate the unique libdirs.
-             case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
-             *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
-               ;;
-             *)
-               hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
-               ;;
-             esac
-           fi
-         else
-           eval flag=\"$hardcode_libdir_flag_spec\"
-           rpath="$rpath $flag"
-         fi
-       elif test -n "$runpath_var"; then
-         case "$finalize_perm_rpath " in
-         *" $libdir "*) ;;
-         *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
-         esac
-       fi
-      done
-      # Substitute the hardcoded libdirs into the rpath.
-      if test -n "$hardcode_libdir_separator" &&
-        test -n "$hardcode_libdirs"; then
-       libdir="$hardcode_libdirs"
-       eval rpath=\" $hardcode_libdir_flag_spec\"
-      fi
-      finalize_rpath="$rpath"
-
-      if test -n "$libobjs" && test "$build_old_libs" = yes; then
-       # Transform all the library objects into standard objects.
-       compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
-       finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
-      fi
-
-      dlsyms=
-      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
-       if test -n "$NM" && test -n "$global_symbol_pipe"; then
-         dlsyms="${outputname}S.c"
-       else
-         $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
-       fi
-      fi
-
-      if test -n "$dlsyms"; then
-       case $dlsyms in
-       "") ;;
-       *.c)
-         # Discover the nlist of each of the dlfiles.
-         nlist="$output_objdir/${outputname}.nm"
-
-         $show "$rm $nlist ${nlist}S ${nlist}T"
-         $run $rm "$nlist" "${nlist}S" "${nlist}T"
-
-         # Parse the name list into a source file.
-         $show "creating $output_objdir/$dlsyms"
-
-         test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
-/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
-/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
-
-#ifdef __cplusplus
-extern \"C\" {
-#endif
-
-/* Prevent the only kind of declaration conflicts we can make. */
-#define lt_preloaded_symbols some_other_symbol
-
-/* External symbol declarations for the compiler. */\
-"
-
-         if test "$dlself" = yes; then
-           $show "generating symbol list for \`$output'"
-
-           test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
-
-           # Add our own program objects to the symbol list.
-           progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
-           for arg in $progfiles; do
-             $show "extracting global C symbols from \`$arg'"
-             $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
-           done
-
-           if test -n "$exclude_expsyms"; then
-             $run eval 'egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
-             $run eval '$mv "$nlist"T "$nlist"'
-           fi
-
-           if test -n "$export_symbols_regex"; then
-             $run eval 'egrep -e "$export_symbols_regex" "$nlist" > "$nlist"T'
-             $run eval '$mv "$nlist"T "$nlist"'
-           fi
-
-           # Prepare the list of exported symbols
-           if test -z "$export_symbols"; then
-             export_symbols="$output_objdir/$output.exp"
-             $run $rm $export_symbols
-             $run eval "sed -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
-           else
-             $run eval "sed -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"'
-             $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T'
-             $run eval 'mv "$nlist"T "$nlist"'
-           fi
-         fi
-
-         for arg in $dlprefiles; do
-           $show "extracting global C symbols from \`$arg'"
-           name=`echo "$arg" | sed -e 's%^.*/%%'`
-           $run eval 'echo ": $name " >> "$nlist"'
-           $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
-         done
-
-         if test -z "$run"; then
-           # Make sure we have at least an empty file.
-           test -f "$nlist" || : > "$nlist"
-
-           if test -n "$exclude_expsyms"; then
-             egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
-             $mv "$nlist"T "$nlist"
-           fi
-
-           # Try sorting and uniquifying the output.
-           if grep -v "^: " < "$nlist" | sort +2 | uniq > "$nlist"S; then
-             :
-           else
-             grep -v "^: " < "$nlist" > "$nlist"S
-           fi
-
-           if test -f "$nlist"S; then
-             eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
-           else
-             echo '/* NONE */' >> "$output_objdir/$dlsyms"
-           fi
-
-           $echo >> "$output_objdir/$dlsyms" "\
-
-#undef lt_preloaded_symbols
-
-#if defined (__STDC__) && __STDC__
-# define lt_ptr_t void *
-#else
-# define lt_ptr_t char *
-# define const
-#endif
-
-/* The mapping between symbol names and symbols. */
-const struct {
-  const char *name;
-  lt_ptr_t address;
-}
-lt_preloaded_symbols[] =
-{\
-"
-
-           sed -n -e 's/^: \([^ ]*\) $/  {\"\1\", (lt_ptr_t) 0},/p' \
-               -e 's/^. \([^ ]*\) \([^ ]*\)$/  {"\2", (lt_ptr_t) \&\2},/p' \
-                 < "$nlist" >> "$output_objdir/$dlsyms"
-
-           $echo >> "$output_objdir/$dlsyms" "\
-  {0, (lt_ptr_t) 0}
-};
-
-/* This works around a problem in FreeBSD linker */
-#ifdef FREEBSD_WORKAROUND
-static const void *lt_preloaded_setup() {
-  return lt_preloaded_symbols;
-}
-#endif
-
-#ifdef __cplusplus
-}
-#endif\
-"
-         fi
-
-         pic_flag_for_symtable=
-         case $host in
-         # compiling the symbol table file with pic_flag works around
-         # a FreeBSD bug that causes programs to crash when -lm is
-         # linked before any other PIC object.  But we must not use
-         # pic_flag when linking with -static.  The problem exists in
-         # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
-         *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
-           case "$compile_command " in
-           *" -static "*) ;;
-           *) pic_flag_for_symtable=" $pic_flag -DPIC -DFREEBSD_WORKAROUND";;
-           esac;;
-         *-*-hpux*)
-           case "$compile_command " in
-           *" -static "*) ;;
-           *) pic_flag_for_symtable=" $pic_flag -DPIC";;
-           esac
-         esac
-
-         # Now compile the dynamic symbol file.
-         $show "(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
-         $run eval '(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
-
-         # Clean up the generated files.
-         $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
-         $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
-
-         # Transform the symbol file into the correct name.
-         compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
-         finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
-         ;;
-       *)
-         $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
-         exit 1
-         ;;
-       esac
-      else
-       # We keep going just in case the user didn't refer to
-       # lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
-       # really was required.
-
-       # Nullify the symbol file.
-       compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
-       finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
-      fi
-
-      if test $need_relink = no || test "$build_libtool_libs" != yes; then
-       # Replace the output file specification.
-       compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
-       link_command="$compile_command$compile_rpath"
-
-       # We have no uninstalled library dependencies, so finalize right now.
-       $show "$link_command"
-       $run eval "$link_command"
-       status=$?
-
-       # Delete the generated files.
-       if test -n "$dlsyms"; then
-         $show "$rm $output_objdir/${outputname}S.${objext}"
-         $run $rm "$output_objdir/${outputname}S.${objext}"
-       fi
-
-       exit $status
-      fi
-
-      if test -n "$shlibpath_var"; then
-       # We should set the shlibpath_var
-       rpath=
-       for dir in $temp_rpath; do
-         case $dir in
-         [\\/]* | [A-Za-z]:[\\/]*)
-           # Absolute path.
-           rpath="$rpath$dir:"
-           ;;
-         *)
-           # Relative path: add a thisdir entry.
-           rpath="$rpath\$thisdir/$dir:"
-           ;;
-         esac
-       done
-       temp_rpath="$rpath"
-      fi
-
-      if test -n "$compile_shlibpath$finalize_shlibpath"; then
-       compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
-      fi
-      if test -n "$finalize_shlibpath"; then
-       finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
-      fi
-
-      compile_var=
-      finalize_var=
-      if test -n "$runpath_var"; then
-       if test -n "$perm_rpath"; then
-         # We should set the runpath_var.
-         rpath=
-         for dir in $perm_rpath; do
-           rpath="$rpath$dir:"
-         done
-         compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
-       fi
-       if test -n "$finalize_perm_rpath"; then
-         # We should set the runpath_var.
-         rpath=
-         for dir in $finalize_perm_rpath; do
-           rpath="$rpath$dir:"
-         done
-         finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
-       fi
-      fi
-
-      if test "$no_install" = yes; then
-       # We don't need to create a wrapper script.
-       link_command="$compile_var$compile_command$compile_rpath"
-       # Replace the output file specification.
-       link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
-       # Delete the old output file.
-       $run $rm $output
-       # Link the executable and exit
-       $show "$link_command"
-       $run eval "$link_command" || exit $?
-       exit 0
-      fi
-
-      if test "$hardcode_action" = relink; then
-       # Fast installation is not supported
-       link_command="$compile_var$compile_command$compile_rpath"
-       relink_command="$finalize_var$finalize_command$finalize_rpath"
-
-       $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
-       $echo "$modename: \`$output' will be relinked during installation" 1>&2
-      else
-       if test "$fast_install" != no; then
-         link_command="$finalize_var$compile_command$finalize_rpath"
-         if test "$fast_install" = yes; then
-           relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
-         else
-           # fast_install is set to needless
-           relink_command=
-         fi
-       else
-         link_command="$compile_var$compile_command$compile_rpath"
-         relink_command="$finalize_var$finalize_command$finalize_rpath"
-       fi
-      fi
-
-      # Replace the output file specification.
-      link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
-
-      # Delete the old output files.
-      $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
-
-      $show "$link_command"
-      $run eval "$link_command" || exit $?
-
-      # Now create the wrapper script.
-      $show "creating $output"
-
-      # Quote the relink command for shipping.
-      if test -n "$relink_command"; then
-       # Preserve any variables that may affect compiler behavior
-       for var in $variables_saved_for_relink; do
-         if eval test -z \"\${$var+set}\"; then
-           relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
-         elif eval var_value=\$$var; test -z "$var_value"; then
-           relink_command="$var=; export $var; $relink_command"
-         else
-           var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
-           relink_command="$var=\"$var_value\"; export $var; $relink_command"
-         fi
-       done
-       relink_command="cd `pwd`; $relink_command"
-       relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
-      fi
-
-      # Quote $echo for shipping.
-      if test "X$echo" = "X$SHELL $0 --fallback-echo"; then
-       case $0 in
-       [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";;
-       *) qecho="$SHELL `pwd`/$0 --fallback-echo";;
-       esac
-       qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
-      else
-       qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
-      fi
-
-      # Only actually do things if our run command is non-null.
-      if test -z "$run"; then
-       # win32 will think the script is a binary if it has
-       # a .exe suffix, so we strip it off here.
-       case $output in
-         *.exe) output=`echo $output|sed 's,.exe$,,'` ;;
-       esac
-       # test for cygwin because mv fails w/o .exe extensions
-       case $host in
-         *cygwin*) exeext=.exe ;;
-         *) exeext= ;;
-       esac
-       $rm $output
-       trap "$rm $output; exit 1" 1 2 15
-
-       $echo > $output "\
-#! $SHELL
-
-# $output - temporary wrapper script for $objdir/$outputname
-# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
-#
-# The $output program cannot be directly executed until all the libtool
-# libraries that it depends on are installed.
-#
-# This wrapper script should never be moved out of the build directory.
-# If it is, it will not operate correctly.
-
-# Sed substitution that helps us do robust quoting.  It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed='sed -e 1s/^X//'
-sed_quote_subst='$sed_quote_subst'
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi
-
-relink_command=\"$relink_command\"
-
-# This environment variable determines our operation mode.
-if test \"\$libtool_install_magic\" = \"$magic\"; then
-  # install mode needs the following variable:
-  notinst_deplibs='$notinst_deplibs'
-else
-  # When we are sourced in execute mode, \$file and \$echo are already set.
-  if test \"\$libtool_execute_magic\" != \"$magic\"; then
-    echo=\"$qecho\"
-    file=\"\$0\"
-    # Make sure echo works.
-    if test \"X\$1\" = X--no-reexec; then
-      # Discard the --no-reexec flag, and continue.
-      shift
-    elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
-      # Yippee, \$echo works!
-      :
-    else
-      # Restart under the correct shell, and then maybe \$echo will work.
-      exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
-    fi
-  fi\
-"
-       $echo >> $output "\
-
-  # Find the directory that this script lives in.
-  thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
-  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
-
-  # Follow symbolic links until we get to the real thisdir.
-  file=\`ls -ld \"\$file\" | sed -n 's/.*-> //p'\`
-  while test -n \"\$file\"; do
-    destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
-
-    # If there was a directory component, then change thisdir.
-    if test \"x\$destdir\" != \"x\$file\"; then
-      case \"\$destdir\" in
-      [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
-      *) thisdir=\"\$thisdir/\$destdir\" ;;
-      esac
-    fi
-
-    file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
-    file=\`ls -ld \"\$thisdir/\$file\" | sed -n 's/.*-> //p'\`
-  done
-
-  # Try to get the absolute directory name.
-  absdir=\`cd \"\$thisdir\" && pwd\`
-  test -n \"\$absdir\" && thisdir=\"\$absdir\"
-"
-
-       if test "$fast_install" = yes; then
-         echo >> $output "\
-  program=lt-'$outputname'$exeext
-  progdir=\"\$thisdir/$objdir\"
-
-  if test ! -f \"\$progdir/\$program\" || \\
-     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | sed 1q\`; \\
-       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
-
-    file=\"\$\$-\$program\"
-
-    if test ! -d \"\$progdir\"; then
-      $mkdir \"\$progdir\"
-    else
-      $rm \"\$progdir/\$file\"
-    fi"
-
-         echo >> $output "\
-
-    # relink executable if necessary
-    if test -n \"\$relink_command\"; then
-      if (eval \$relink_command); then :
-      else
-       $rm \"\$progdir/\$file\"
-       exit 1
-      fi
-    fi
-
-    $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
-    { $rm \"\$progdir/\$program\";
-      $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
-    $rm \"\$progdir/\$file\"
-  fi"
-       else
-         echo >> $output "\
-  program='$outputname'
-  progdir=\"\$thisdir/$objdir\"
-"
-       fi
-
-       echo >> $output "\
-
-  if test -f \"\$progdir/\$program\"; then"
-
-       # Export our shlibpath_var if we have one.
-       if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
-         $echo >> $output "\
-    # Add our own library path to $shlibpath_var
-    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
-
-    # Some systems cannot cope with colon-terminated $shlibpath_var
-    # The second colon is a workaround for a bug in BeOS R4 sed
-    $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
-
-    export $shlibpath_var
-"
-       fi
-
-       # fixup the dll searchpath if we need to.
-       if test -n "$dllsearchpath"; then
-         $echo >> $output "\
-    # Add the dll search path components to the executable PATH
-    PATH=$dllsearchpath:\$PATH
-"
-       fi
-
-       $echo >> $output "\
-    if test \"\$libtool_execute_magic\" != \"$magic\"; then
-      # Run the actual program with our arguments.
-"
-       case $host in
-       # win32 systems need to use the prog path for dll
-       # lookup to work
-       *-*-cygwin* | *-*-pw32*)
-         $echo >> $output "\
-      exec \$progdir/\$program \${1+\"\$@\"}
-"
-         ;;
-
-       # Backslashes separate directories on plain windows
-       *-*-mingw | *-*-os2*)
-         $echo >> $output "\
-      exec \$progdir\\\\\$program \${1+\"\$@\"}
-"
-         ;;
-
-       *)
-         $echo >> $output "\
-      # Export the path to the program.
-      PATH=\"\$progdir:\$PATH\"
-      export PATH
-
-      exec \$program \${1+\"\$@\"}
-"
-         ;;
-       esac
-       $echo >> $output "\
-      \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
-      exit 1
-    fi
-  else
-    # The program doesn't exist.
-    \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
-    \$echo \"This script is just a wrapper for \$program.\" 1>&2
-    echo \"See the $PACKAGE documentation for more information.\" 1>&2
-    exit 1
-  fi
-fi\
-"
-       chmod +x $output
-      fi
-      exit 0
-      ;;
-    esac
-
-    # See if we need to build an old-fashioned archive.
-    for oldlib in $oldlibs; do
-
-      if test "$build_libtool_libs" = convenience; then
-       oldobjs="$libobjs_save"
-       addlibs="$convenience"
-       build_libtool_libs=no
-      else
-       if test "$build_libtool_libs" = module; then
-         oldobjs="$libobjs_save"
-         build_libtool_libs=no
-       else
-         oldobjs="$objs$old_deplibs "`$echo "X$libobjs_save" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`
-       fi
-       addlibs="$old_convenience"
-      fi
-
-      if test -n "$addlibs"; then
-       gentop="$output_objdir/${outputname}x"
-       $show "${rm}r $gentop"
-       $run ${rm}r "$gentop"
-       $show "mkdir $gentop"
-       $run mkdir "$gentop"
-       status=$?
-       if test $status -ne 0 && test ! -d "$gentop"; then
-         exit $status
-       fi
-       generated="$generated $gentop"
-
-       # Add in members from convenience archives.
-       for xlib in $addlibs; do
-         # Extract the objects.
-         case $xlib in
-         [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
-         *) xabs=`pwd`"/$xlib" ;;
-         esac
-         xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
-         xdir="$gentop/$xlib"
-
-         $show "${rm}r $xdir"
-         $run ${rm}r "$xdir"
-         $show "mkdir $xdir"
-         $run mkdir "$xdir"
-         status=$?
-         if test $status -ne 0 && test ! -d "$xdir"; then
-           exit $status
-         fi
-         $show "(cd $xdir && $AR x $xabs)"
-         $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
-
-         oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP`
-       done
-      fi
-
-      # Do each command in the archive commands.
-      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
-       eval cmds=\"$old_archive_from_new_cmds\"
-      else
-       # Ensure that we have .o objects in place in case we decided
-       # not to build a shared library, and have fallen back to building
-       # static libs even though --disable-static was passed!
-       for oldobj in $oldobjs; do
-         if test ! -f $oldobj; then
-           xdir=`$echo "X$oldobj" | $Xsed -e 's%/[^/]*$%%'`
-           if test "X$xdir" = "X$oldobj"; then
-             xdir="."
-           else
-             xdir="$xdir"
-           fi
-           baseobj=`$echo "X$oldobj" | $Xsed -e 's%^.*/%%'`
-           obj=`$echo "X$baseobj" | $Xsed -e "$o2lo"`
-           $show "(cd $xdir && ${LN_S} $obj $baseobj)"
-           $run eval '(cd $xdir && ${LN_S} $obj $baseobj)' || exit $?
-         fi
-       done
-
-       eval cmds=\"$old_archive_cmds\"
-      fi
-      IFS="${IFS=      }"; save_ifs="$IFS"; IFS='~'
-      for cmd in $cmds; do
-       IFS="$save_ifs"
-       $show "$cmd"
-       $run eval "$cmd" || exit $?
-      done
-      IFS="$save_ifs"
-    done
-
-    if test -n "$generated"; then
-      $show "${rm}r$generated"
-      $run ${rm}r$generated
-    fi
-
-    # Now create the libtool archive.
-    case $output in
-    *.la)
-      old_library=
-      test "$build_old_libs" = yes && old_library="$libname.$libext"
-      $show "creating $output"
-
-      # Preserve any variables that may affect compiler behavior
-      for var in $variables_saved_for_relink; do
-       if eval test -z \"\${$var+set}\"; then
-         relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
-       elif eval var_value=\$$var; test -z "$var_value"; then
-         relink_command="$var=; export $var; $relink_command"
-       else
-         var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
-         relink_command="$var=\"$var_value\"; export $var; $relink_command"
-       fi
-      done
-      # Quote the link command for shipping.
-      relink_command="cd `pwd`; $SHELL $0 --mode=relink $libtool_args"
-      relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
-
-      # Only create the output if not a dry run.
-      if test -z "$run"; then
-       for installed in no yes; do
-         if test "$installed" = yes; then
-           if test -z "$install_libdir"; then
-             break
-           fi
-           output="$output_objdir/$outputname"i
-           # Replace all uninstalled libtool libraries with the installed ones
-           newdependency_libs=
-           for deplib in $dependency_libs; do
-             case $deplib in
-             *.la)
-               name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
-               eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
-               if test -z "$libdir"; then
-                 $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
-                 exit 1
-               fi
-               newdependency_libs="$newdependency_libs $libdir/$name"
-               ;;
-             *) newdependency_libs="$newdependency_libs $deplib" ;;
-             esac
-           done
-           dependency_libs="$newdependency_libs"
-           newdlfiles=
-           for lib in $dlfiles; do
-             name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
-             eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
-             if test -z "$libdir"; then
-               $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
-               exit 1
-             fi
-             newdlfiles="$newdlfiles $libdir/$name"
-           done
-           dlfiles="$newdlfiles"
-           newdlprefiles=
-           for lib in $dlprefiles; do
-             name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
-             eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
-             if test -z "$libdir"; then
-               $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
-               exit 1
-             fi
-             newdlprefiles="$newdlprefiles $libdir/$name"
-           done
-           dlprefiles="$newdlprefiles"
-         fi
-         $rm $output
-         # place dlname in correct position for cygwin
-         tdlname=$dlname
-         case $host,$output,$installed,$module,$dlname in
-           *cygwin*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
-         esac
-         $echo > $output "\
-# $outputname - a libtool library file
-# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
-#
-# Please DO NOT delete this file!
-# It is necessary for linking the library.
-
-# The name that we can dlopen(3).
-dlname='$tdlname'
-
-# Names of this library.
-library_names='$library_names'
-
-# The name of the static archive.
-old_library='$old_library'
-
-# Libraries that this one depends upon.
-dependency_libs='$dependency_libs'
-
-# Version information for $libname.
-current=$current
-age=$age
-revision=$revision
-
-# Is this an already installed library?
-installed=$installed
-
-# Files to dlopen/dlpreopen
-dlopen='$dlfiles'
-dlpreopen='$dlprefiles'
-
-# Directory that this library needs to be installed in:
-libdir='$install_libdir'"
-         if test "$installed" = no && test $need_relink = yes; then
-           $echo >> $output "\
-relink_command=\"$relink_command\""
-         fi
-       done
-      fi
-
-      # Do a symbolic link so that the libtool archive can be found in
-      # LD_LIBRARY_PATH before the program is installed.
-      $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
-      $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
-      ;;
-    esac
-    exit 0
-    ;;
-
-  # libtool install mode
-  install)
-    modename="$modename: install"
-
-    # There may be an optional sh(1) argument at the beginning of
-    # install_prog (especially on Windows NT).
-    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
-       # Allow the use of GNU shtool's install command.
-       $echo "X$nonopt" | $Xsed | grep shtool > /dev/null; then
-      # Aesthetically quote it.
-      arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
-      case $arg in
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \    ]*|*]*)
-       arg="\"$arg\""
-       ;;
-      esac
-      install_prog="$arg "
-      arg="$1"
-      shift
-    else
-      install_prog=
-      arg="$nonopt"
-    fi
-
-    # The real first argument should be the name of the installation program.
-    # Aesthetically quote it.
-    arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
-    case $arg in
-    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \      ]*|*]*)
-      arg="\"$arg\""
-      ;;
-    esac
-    install_prog="$install_prog$arg"
-
-    # We need to accept at least all the BSD install flags.
-    dest=
-    files=
-    opts=
-    prev=
-    install_type=
-    isdir=no
-    stripme=
-    for arg
-    do
-      if test -n "$dest"; then
-       files="$files $dest"
-       dest="$arg"
-       continue
-      fi
-
-      case $arg in
-      -d) isdir=yes ;;
-      -f) prev="-f" ;;
-      -g) prev="-g" ;;
-      -m) prev="-m" ;;
-      -o) prev="-o" ;;
-      -s)
-       stripme=" -s"
-       continue
-       ;;
-      -*) ;;
-
-      *)
-       # If the previous option needed an argument, then skip it.
-       if test -n "$prev"; then
-         prev=
-       else
-         dest="$arg"
-         continue
-       fi
-       ;;
-      esac
-
-      # Aesthetically quote the argument.
-      arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
-      case $arg in
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \    ]*|*]*)
-       arg="\"$arg\""
-       ;;
-      esac
-      install_prog="$install_prog $arg"
-    done
-
-    if test -z "$install_prog"; then
-      $echo "$modename: you must specify an install program" 1>&2
-      $echo "$help" 1>&2
-      exit 1
-    fi
-
-    if test -n "$prev"; then
-      $echo "$modename: the \`$prev' option requires an argument" 1>&2
-      $echo "$help" 1>&2
-      exit 1
-    fi
-
-    if test -z "$files"; then
-      if test -z "$dest"; then
-       $echo "$modename: no file or destination specified" 1>&2
-      else
-       $echo "$modename: you must specify a destination" 1>&2
-      fi
-      $echo "$help" 1>&2
-      exit 1
-    fi
-
-    # Strip any trailing slash from the destination.
-    dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
-
-    # Check to see that the destination is a directory.
-    test -d "$dest" && isdir=yes
-    if test "$isdir" = yes; then
-      destdir="$dest"
-      destname=
-    else
-      destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
-      test "X$destdir" = "X$dest" && destdir=.
-      destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
-
-      # Not a directory, so check to see that there is only one file specified.
-      set dummy $files
-      if test $# -gt 2; then
-       $echo "$modename: \`$dest' is not a directory" 1>&2
-       $echo "$help" 1>&2
-       exit 1
-      fi
-    fi
-    case $destdir in
-    [\\/]* | [A-Za-z]:[\\/]*) ;;
-    *)
-      for file in $files; do
-       case $file in
-       *.lo) ;;
-       *)
-         $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
-         $echo "$help" 1>&2
-         exit 1
-         ;;
-       esac
-      done
-      ;;
-    esac
-
-    # This variable tells wrapper scripts just to set variables rather
-    # than running their programs.
-    libtool_install_magic="$magic"
-
-    staticlibs=
-    future_libdirs=
-    current_libdirs=
-    for file in $files; do
-
-      # Do each installation.
-      case $file in
-      *.$libext)
-       # Do the static libraries later.
-       staticlibs="$staticlibs $file"
-       ;;
-
-      *.la)
-       # Check to see that this really is a libtool archive.
-       if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
-       else
-         $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
-         $echo "$help" 1>&2
-         exit 1
-       fi
-
-       library_names=
-       old_library=
-       relink_command=
-       # If there is no directory component, then add one.
-       case $file in
-       */* | *\\*) . $file ;;
-       *) . ./$file ;;
-       esac
-
-       # Add the libdir to current_libdirs if it is the destination.
-       if test "X$destdir" = "X$libdir"; then
-         case "$current_libdirs " in
-         *" $libdir "*) ;;
-         *) current_libdirs="$current_libdirs $libdir" ;;
-         esac
-       else
-         # Note the libdir as a future libdir.
-         case "$future_libdirs " in
-         *" $libdir "*) ;;
-         *) future_libdirs="$future_libdirs $libdir" ;;
-         esac
-       fi
-
-       dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
-       test "X$dir" = "X$file/" && dir=
-       dir="$dir$objdir"
-
-       if test -n "$relink_command"; then
-         $echo "$modename: warning: relinking \`$file'" 1>&2
-         $show "$relink_command"
-         if $run eval "$relink_command"; then :
-         else
-           $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
-           continue
-         fi
-       fi
-
-       # See the names of the shared library.
-       set dummy $library_names
-       if test -n "$2"; then
-         realname="$2"
-         shift
-         shift
-
-         srcname="$realname"
-         test -n "$relink_command" && srcname="$realname"T
-
-         # Install the shared library and build the symlinks.
-         $show "$install_prog $dir/$srcname $destdir/$realname"
-         $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
-         if test -n "$stripme" && test -n "$striplib"; then
-           $show "$striplib $destdir/$realname"
-           $run eval "$striplib $destdir/$realname" || exit $?
-         fi
-
-         if test $# -gt 0; then
-           # Delete the old symlinks, and create new ones.
-           for linkname
-           do
-             if test "$linkname" != "$realname"; then
-               $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
-               $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
-             fi
-           done
-         fi
-
-         # Do each command in the postinstall commands.
-         lib="$destdir/$realname"
-         eval cmds=\"$postinstall_cmds\"
-         IFS="${IFS=   }"; save_ifs="$IFS"; IFS='~'
-         for cmd in $cmds; do
-           IFS="$save_ifs"
-           $show "$cmd"
-           $run eval "$cmd" || exit $?
-         done
-         IFS="$save_ifs"
-       fi
-
-       # Install the pseudo-library for information purposes.
-       name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
-       instname="$dir/$name"i
-       $show "$install_prog $instname $destdir/$name"
-       $run eval "$install_prog $instname $destdir/$name" || exit $?
-
-       # Maybe install the static library, too.
-       test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
-       ;;
-
-      *.lo)
-       # Install (i.e. copy) a libtool object.
-
-       # Figure out destination file name, if it wasn't already specified.
-       if test -n "$destname"; then
-         destfile="$destdir/$destname"
-       else
-         destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
-         destfile="$destdir/$destfile"
-       fi
-
-       # Deduce the name of the destination old-style object file.
-       case $destfile in
-       *.lo)
-         staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
-         ;;
-       *.$objext)
-         staticdest="$destfile"
-         destfile=
-         ;;
-       *)
-         $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
-         $echo "$help" 1>&2
-         exit 1
-         ;;
-       esac
-
-       # Install the libtool object if requested.
-       if test -n "$destfile"; then
-         $show "$install_prog $file $destfile"
-         $run eval "$install_prog $file $destfile" || exit $?
-       fi
-
-       # Install the old object if enabled.
-       if test "$build_old_libs" = yes; then
-         # Deduce the name of the old-style object file.
-         staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
-
-         $show "$install_prog $staticobj $staticdest"
-         $run eval "$install_prog \$staticobj \$staticdest" || exit $?
-       fi
-       exit 0
-       ;;
-
-      *)
-       # Figure out destination file name, if it wasn't already specified.
-       if test -n "$destname"; then
-         destfile="$destdir/$destname"
-       else
-         destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
-         destfile="$destdir/$destfile"
-       fi
-
-       # Do a test to see if this is really a libtool program.
-       if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-         notinst_deplibs=
-         relink_command=
-
-         # If there is no directory component, then add one.
-         case $file in
-         */* | *\\*) . $file ;;
-         *) . ./$file ;;
-         esac
-
-         # Check the variables that should have been set.
-         if test -z "$notinst_deplibs"; then
-           $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2
-           exit 1
-         fi
-
-         finalize=yes
-         for lib in $notinst_deplibs; do
-           # Check to see that each library is installed.
-           libdir=
-           if test -f "$lib"; then
-             # If there is no directory component, then add one.
-             case $lib in
-             */* | *\\*) . $lib ;;
-             *) . ./$lib ;;
-             esac
-           fi
-           libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
-           if test -n "$libdir" && test ! -f "$libfile"; then
-             $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
-             finalize=no
-           fi
-         done
-
-         relink_command=
-         # If there is no directory component, then add one.
-         case $file in
-         */* | *\\*) . $file ;;
-         *) . ./$file ;;
-         esac
-
-         outputname=
-         if test "$fast_install" = no && test -n "$relink_command"; then
-           if test "$finalize" = yes && test -z "$run"; then
-             tmpdir="/tmp"
-             test -n "$TMPDIR" && tmpdir="$TMPDIR"
-             tmpdir="$tmpdir/libtool-$$"
-             if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then :
-             else
-               $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
-               continue
-             fi
-             file=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
-             outputname="$tmpdir/$file"
-             # Replace the output file specification.
-             relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
-
-             $show "$relink_command"
-             if $run eval "$relink_command"; then :
-             else
-               $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
-               ${rm}r "$tmpdir"
-               continue
-             fi
-             file="$outputname"
-           else
-             $echo "$modename: warning: cannot relink \`$file'" 1>&2
-           fi
-         else
-           # Install the binary that we compiled earlier.
-           file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
-         fi
-       fi
-
-       # remove .exe since cygwin /usr/bin/install will append another
-       # one anyways
-       case $install_prog,$host in
-       /usr/bin/install*,*cygwin*)
-         case $file:$destfile in
-         *.exe:*.exe)
-           # this is ok
-           ;;
-         *.exe:*)
-           destfile=$destfile.exe
-           ;;
-         *:*.exe)
-           destfile=`echo $destfile | sed -e 's,.exe$,,'`
-           ;;
-         esac
-         ;;
-       esac
-       $show "$install_prog$stripme $file $destfile"
-       $run eval "$install_prog\$stripme \$file \$destfile" || exit $?
-       test -n "$outputname" && ${rm}r "$tmpdir"
-       ;;
-      esac
-    done
-
-    for file in $staticlibs; do
-      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
-
-      # Set up the ranlib parameters.
-      oldlib="$destdir/$name"
-
-      $show "$install_prog $file $oldlib"
-      $run eval "$install_prog \$file \$oldlib" || exit $?
-
-      if test -n "$stripme" && test -n "$striplib"; then
-       $show "$old_striplib $oldlib"
-       $run eval "$old_striplib $oldlib" || exit $?
-      fi
-
-      # Do each command in the postinstall commands.
-      eval cmds=\"$old_postinstall_cmds\"
-      IFS="${IFS=      }"; save_ifs="$IFS"; IFS='~'
-      for cmd in $cmds; do
-       IFS="$save_ifs"
-       $show "$cmd"
-       $run eval "$cmd" || exit $?
-      done
-      IFS="$save_ifs"
-    done
-
-    if test -n "$future_libdirs"; then
-      $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
-    fi
-
-    if test -n "$current_libdirs"; then
-      # Maybe just do a dry run.
-      test -n "$run" && current_libdirs=" -n$current_libdirs"
-      exec $SHELL $0 --finish$current_libdirs
-      exit 1
-    fi
-
-    exit 0
-    ;;
-
-  # libtool finish mode
-  finish)
-    modename="$modename: finish"
-    libdirs="$nonopt"
-    admincmds=
-
-    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
-      for dir
-      do
-       libdirs="$libdirs $dir"
-      done
-
-      for libdir in $libdirs; do
-       if test -n "$finish_cmds"; then
-         # Do each command in the finish commands.
-         eval cmds=\"$finish_cmds\"
-         IFS="${IFS=   }"; save_ifs="$IFS"; IFS='~'
-         for cmd in $cmds; do
-           IFS="$save_ifs"
-           $show "$cmd"
-           $run eval "$cmd" || admincmds="$admincmds
-       $cmd"
-         done
-         IFS="$save_ifs"
-       fi
-       if test -n "$finish_eval"; then
-         # Do the single finish_eval.
-         eval cmds=\"$finish_eval\"
-         $run eval "$cmds" || admincmds="$admincmds
-       $cmds"
-       fi
-      done
-    fi
-
-    # Exit here if they wanted silent mode.
-    test "$show" = ":" && exit 0
-
-    echo "----------------------------------------------------------------------"
-    echo "Libraries have been installed in:"
-    for libdir in $libdirs; do
-      echo "   $libdir"
-    done
-    echo
-    echo "If you ever happen to want to link against installed libraries"
-    echo "in a given directory, LIBDIR, you must either use libtool, and"
-    echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
-    echo "flag during linking and do at least one of the following:"
-    if test -n "$shlibpath_var"; then
-      echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
-      echo "     during execution"
-    fi
-    if test -n "$runpath_var"; then
-      echo "   - add LIBDIR to the \`$runpath_var' environment variable"
-      echo "     during linking"
-    fi
-    if test -n "$hardcode_libdir_flag_spec"; then
-      libdir=LIBDIR
-      eval flag=\"$hardcode_libdir_flag_spec\"
-
-      echo "   - use the \`$flag' linker flag"
-    fi
-    if test -n "$admincmds"; then
-      echo "   - have your system administrator run these commands:$admincmds"
-    fi
-    if test -f /etc/ld.so.conf; then
-      echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
-    fi
-    echo
-    echo "See any operating system documentation about shared libraries for"
-    echo "more information, such as the ld(1) and ld.so(8) manual pages."
-    echo "----------------------------------------------------------------------"
-    exit 0
-    ;;
-
-  # libtool execute mode
-  execute)
-    modename="$modename: execute"
-
-    # The first argument is the command name.
-    cmd="$nonopt"
-    if test -z "$cmd"; then
-      $echo "$modename: you must specify a COMMAND" 1>&2
-      $echo "$help"
-      exit 1
-    fi
-
-    # Handle -dlopen flags immediately.
-    for file in $execute_dlfiles; do
-      if test ! -f "$file"; then
-       $echo "$modename: \`$file' is not a file" 1>&2
-       $echo "$help" 1>&2
-       exit 1
-      fi
-
-      dir=
-      case $file in
-      *.la)
-       # Check to see that this really is a libtool archive.
-       if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
-       else
-         $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
-         $echo "$help" 1>&2
-         exit 1
-       fi
-
-       # Read the libtool library.
-       dlname=
-       library_names=
-
-       # If there is no directory component, then add one.
-       case $file in
-       */* | *\\*) . $file ;;
-       *) . ./$file ;;
-       esac
-
-       # Skip this library if it cannot be dlopened.
-       if test -z "$dlname"; then
-         # Warn if it was a shared library.
-         test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
-         continue
-       fi
-
-       dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
-       test "X$dir" = "X$file" && dir=.
-
-       if test -f "$dir/$objdir/$dlname"; then
-         dir="$dir/$objdir"
-       else
-         $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
-         exit 1
-       fi
-       ;;
-
-      *.lo)
-       # Just add the directory containing the .lo file.
-       dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
-       test "X$dir" = "X$file" && dir=.
-       ;;
-
-      *)
-       $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
-       continue
-       ;;
-      esac
-
-      # Get the absolute pathname.
-      absdir=`cd "$dir" && pwd`
-      test -n "$absdir" && dir="$absdir"
-
-      # Now add the directory to shlibpath_var.
-      if eval "test -z \"\$$shlibpath_var\""; then
-       eval "$shlibpath_var=\"\$dir\""
-      else
-       eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
-      fi
-    done
-
-    # This variable tells wrapper scripts just to set shlibpath_var
-    # rather than running their programs.
-    libtool_execute_magic="$magic"
-
-    # Check if any of the arguments is a wrapper script.
-    args=
-    for file
-    do
-      case $file in
-      -*) ;;
-      *)
-       # Do a test to see if this is really a libtool program.
-       if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-         # If there is no directory component, then add one.
-         case $file in
-         */* | *\\*) . $file ;;
-         *) . ./$file ;;
-         esac
-
-         # Transform arg to wrapped name.
-         file="$progdir/$program"
-       fi
-       ;;
-      esac
-      # Quote arguments (to preserve shell metacharacters).
-      file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
-      args="$args \"$file\""
-    done
-
-    if test -z "$run"; then
-      if test -n "$shlibpath_var"; then
-       # Export the shlibpath_var.
-       eval "export $shlibpath_var"
-      fi
-
-      # Restore saved enviroment variables
-      if test "${save_LC_ALL+set}" = set; then
-       LC_ALL="$save_LC_ALL"; export LC_ALL
-      fi
-      if test "${save_LANG+set}" = set; then
-       LANG="$save_LANG"; export LANG
-      fi
-
-      # Now actually exec the command.
-      eval "exec \$cmd$args"
-
-      $echo "$modename: cannot exec \$cmd$args"
-      exit 1
-    else
-      # Display what would be done.
-      if test -n "$shlibpath_var"; then
-       eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
-       $echo "export $shlibpath_var"
-      fi
-      $echo "$cmd$args"
-      exit 0
-    fi
-    ;;
-
-  # libtool clean and uninstall mode
-  clean | uninstall)
-    modename="$modename: $mode"
-    rm="$nonopt"
-    files=
-    rmforce=
-    exit_status=0
-
-    # This variable tells wrapper scripts just to set variables rather
-    # than running their programs.
-    libtool_install_magic="$magic"
-
-    for arg
-    do
-      case $arg in
-      -f) rm="$rm $arg"; rmforce=yes ;;
-      -*) rm="$rm $arg" ;;
-      *) files="$files $arg" ;;
-      esac
-    done
-
-    if test -z "$rm"; then
-      $echo "$modename: you must specify an RM program" 1>&2
-      $echo "$help" 1>&2
-      exit 1
-    fi
-
-    rmdirs=
-
-    for file in $files; do
-      dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
-      if test "X$dir" = "X$file"; then
-       dir=.
-       objdir="$objdir"
-      else
-       objdir="$dir/$objdir"
-      fi
-      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
-      test $mode = uninstall && objdir="$dir"
-
-      # Remember objdir for removal later, being careful to avoid duplicates
-      if test $mode = clean; then
-       case " $rmdirs " in
-         *" $objdir "*) ;;
-         *) rmdirs="$rmdirs $objdir" ;;
-       esac
-      fi
-
-      # Don't error if the file doesn't exist and rm -f was used.
-      if (test -L "$file") >/dev/null 2>&1 \
-        || (test -h "$file") >/dev/null 2>&1 \
-       || test -f "$file"; then
-        :
-      elif test -d "$file"; then
-        exit_status=1
-       continue
-      elif test "$rmforce" = yes; then
-        continue
-      fi
-
-      rmfiles="$file"
-
-      case $name in
-      *.la)
-       # Possibly a libtool archive, so verify it.
-       if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-         . $dir/$name
-
-         # Delete the libtool libraries and symlinks.
-         for n in $library_names; do
-           rmfiles="$rmfiles $objdir/$n"
-         done
-         test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
-         test $mode = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
-
-         if test $mode = uninstall; then
-           if test -n "$library_names"; then
-             # Do each command in the postuninstall commands.
-             eval cmds=\"$postuninstall_cmds\"
-             IFS="${IFS=       }"; save_ifs="$IFS"; IFS='~'
-             for cmd in $cmds; do
-               IFS="$save_ifs"
-               $show "$cmd"
-               $run eval "$cmd"
-               if test $? != 0 && test "$rmforce" != yes; then
-                 exit_status=1
-               fi
-             done
-             IFS="$save_ifs"
-           fi
-
-           if test -n "$old_library"; then
-             # Do each command in the old_postuninstall commands.
-             eval cmds=\"$old_postuninstall_cmds\"
-             IFS="${IFS=       }"; save_ifs="$IFS"; IFS='~'
-             for cmd in $cmds; do
-               IFS="$save_ifs"
-               $show "$cmd"
-               $run eval "$cmd"
-               if test $? != 0 && test "$rmforce" != yes; then
-                 exit_status=1
-               fi
-             done
-             IFS="$save_ifs"
-           fi
-           # FIXME: should reinstall the best remaining shared library.
-         fi
-       fi
-       ;;
-
-      *.lo)
-       if test "$build_old_libs" = yes; then
-         oldobj=`$echo "X$name" | $Xsed -e "$lo2o"`
-         rmfiles="$rmfiles $dir/$oldobj"
-       fi
-       ;;
-
-      *)
-       # Do a test to see if this is a libtool program.
-       if test $mode = clean &&
-          (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-         relink_command=
-         . $dir/$file
-
-         rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
-         if test "$fast_install" = yes && test -n "$relink_command"; then
-           rmfiles="$rmfiles $objdir/lt-$name"
-         fi
-       fi
-       ;;
-      esac
-      $show "$rm $rmfiles"
-      $run $rm $rmfiles || exit_status=1
-    done
-
-    # Try to remove the ${objdir}s in the directories where we deleted files
-    for dir in $rmdirs; do
-      if test -d "$dir"; then
-       $show "rmdir $dir"
-       $run rmdir $dir >/dev/null 2>&1
-      fi
-    done
-
-    exit $exit_status
-    ;;
-
-  "")
-    $echo "$modename: you must specify a MODE" 1>&2
-    $echo "$generic_help" 1>&2
-    exit 1
-    ;;
-  esac
-
-  $echo "$modename: invalid operation mode \`$mode'" 1>&2
-  $echo "$generic_help" 1>&2
-  exit 1
-fi # test -z "$show_help"
-
-# We need to display help for each of the modes.
-case $mode in
-"") $echo \
-"Usage: $modename [OPTION]... [MODE-ARG]...
-
-Provide generalized library-building support services.
-
-    --config          show all configuration variables
-    --debug           enable verbose shell tracing
--n, --dry-run         display commands without modifying any files
-    --features        display basic configuration information and exit
-    --finish          same as \`--mode=finish'
-    --help            display this help message and exit
-    --mode=MODE       use operation mode MODE [default=inferred from MODE-ARGS]
-    --quiet           same as \`--silent'
-    --silent          don't print informational messages
-    --version         print version information
-
-MODE must be one of the following:
-
-      clean           remove files from the build directory
-      compile         compile a source file into a libtool object
-      execute         automatically set library path, then run a program
-      finish          complete the installation of libtool libraries
-      install         install libraries or executables
-      link            create a library or an executable
-      uninstall       remove libraries from an installed directory
-
-MODE-ARGS vary depending on the MODE.  Try \`$modename --help --mode=MODE' for
-a more detailed description of MODE."
-  exit 0
-  ;;
-
-clean)
-  $echo \
-"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
-
-Remove files from the build directory.
-
-RM is the name of the program to use to delete files associated with each FILE
-(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
-to RM.
-
-If FILE is a libtool library, object or program, all the files associated
-with it are deleted. Otherwise, only FILE itself is deleted using RM."
-  ;;
-
-compile)
-  $echo \
-"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
-
-Compile a source file into a libtool library object.
-
-This mode accepts the following additional options:
-
-  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
-  -prefer-pic       try to building PIC objects only
-  -prefer-non-pic   try to building non-PIC objects only
-  -static           always build a \`.o' file suitable for static linking
-
-COMPILE-COMMAND is a command to be used in creating a \`standard' object file
-from the given SOURCEFILE.
-
-The output file name is determined by removing the directory component from
-SOURCEFILE, then substituting the C source code suffix \`.c' with the
-library object suffix, \`.lo'."
-  ;;
-
-execute)
-  $echo \
-"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
-
-Automatically set library path, then run a program.
-
-This mode accepts the following additional options:
-
-  -dlopen FILE      add the directory containing FILE to the library path
-
-This mode sets the library path environment variable according to \`-dlopen'
-flags.
-
-If any of the ARGS are libtool executable wrappers, then they are translated
-into their corresponding uninstalled binary, and any of their required library
-directories are added to the library path.
-
-Then, COMMAND is executed, with ARGS as arguments."
-  ;;
-
-finish)
-  $echo \
-"Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
-
-Complete the installation of libtool libraries.
-
-Each LIBDIR is a directory that contains libtool libraries.
-
-The commands that this mode executes may require superuser privileges.  Use
-the \`--dry-run' option if you just want to see what would be executed."
-  ;;
-
-install)
-  $echo \
-"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
-
-Install executables or libraries.
-
-INSTALL-COMMAND is the installation command.  The first component should be
-either the \`install' or \`cp' program.
-
-The rest of the components are interpreted as arguments to that command (only
-BSD-compatible install options are recognized)."
-  ;;
-
-link)
-  $echo \
-"Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
-
-Link object files or libraries together to form another library, or to
-create an executable program.
-
-LINK-COMMAND is a command using the C compiler that you would use to create
-a program from several object files.
-
-The following components of LINK-COMMAND are treated specially:
-
-  -all-static       do not do any dynamic linking at all
-  -avoid-version    do not add a version suffix if possible
-  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
-  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
-  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
-  -export-symbols SYMFILE
-                   try to export only the symbols listed in SYMFILE
-  -export-symbols-regex REGEX
-                   try to export only the symbols matching REGEX
-  -LLIBDIR          search LIBDIR for required installed libraries
-  -lNAME            OUTPUT-FILE requires the installed library libNAME
-  -module           build a library that can dlopened
-  -no-fast-install  disable the fast-install mode
-  -no-install       link a not-installable executable
-  -no-undefined     declare that a library does not refer to external symbols
-  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
-  -release RELEASE  specify package release information
-  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
-  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
-  -static           do not do any dynamic linking of libtool libraries
-  -version-info CURRENT[:REVISION[:AGE]]
-                   specify library version info [each variable defaults to 0]
-
-All other options (arguments beginning with \`-') are ignored.
-
-Every other argument is treated as a filename.  Files ending in \`.la' are
-treated as uninstalled libtool libraries, other files are standard or library
-object files.
-
-If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
-only library objects (\`.lo' files) may be specified, and \`-rpath' is
-required, except when creating a convenience library.
-
-If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
-using \`ar' and \`ranlib', or on Windows using \`lib'.
-
-If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
-is created, otherwise an executable program is created."
-  ;;
-
-uninstall)
-  $echo \
-"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
-
-Remove libraries from an installation directory.
-
-RM is the name of the program to use to delete files associated with each FILE
-(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
-to RM.
-
-If FILE is a libtool library, all the files associated with it are deleted.
-Otherwise, only FILE itself is deleted using RM."
-  ;;
-
-*)
-  $echo "$modename: invalid operation mode \`$mode'" 1>&2
-  $echo "$help" 1>&2
-  exit 1
-  ;;
-esac
-
-echo
-$echo "Try \`$modename --help' for more information about other modes."
-
-exit 0
-
-# Local Variables:
-# mode:shell-script
-# sh-indentation:2
-# End:
diff --git a/libs/dbprim/missing b/libs/dbprim/missing
deleted file mode 100755 (executable)
index d46f79f..0000000
+++ /dev/null
@@ -1,198 +0,0 @@
-#! /bin/sh
-# Common stub for a few missing GNU programs while installing.
-# Copyright (C) 1996, 1997, 2001 Free Software Foundation, Inc.
-# Franc,ois Pinard <pinard@iro.umontreal.ca>, 1996.
-
-# This program 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 program 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., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-if test $# -eq 0; then
-  echo 1>&2 "Try \`$0 --help' for more information"
-  exit 1
-fi
-
-# In the cases where this matters, `missing' is being run in the
-# srcdir already.
-if test -f configure.in; then
-  configure_ac=configure.ac
-else
-  configure_ac=configure.in
-fi
-
-case "$1" in
-
-  -h|--h|--he|--hel|--help)
-    echo "\
-$0 [OPTION]... PROGRAM [ARGUMENT]...
-
-Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
-error status if there is no known handling for PROGRAM.
-
-Options:
-  -h, --help      display this help and exit
-  -v, --version   output version information and exit
-
-Supported PROGRAM values:
-  aclocal      touch file \`aclocal.m4'
-  autoconf     touch file \`configure'
-  autoheader   touch file \`config.h.in'
-  automake     touch all \`Makefile.in' files
-  bison        create \`y.tab.[ch]', if possible, from existing .[ch]
-  flex         create \`lex.yy.c', if possible, from existing .c
-  lex          create \`lex.yy.c', if possible, from existing .c
-  makeinfo     touch the output file
-  yacc         create \`y.tab.[ch]', if possible, from existing .[ch]"
-    ;;
-
-  -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
-    echo "missing - GNU libit 0.0"
-    ;;
-
-  -*)
-    echo 1>&2 "$0: Unknown \`$1' option"
-    echo 1>&2 "Try \`$0 --help' for more information"
-    exit 1
-    ;;
-
-  aclocal)
-    echo 1>&2 "\
-WARNING: \`$1' is missing on your system.  You should only need it if
-         you modified \`acinclude.m4' or \`$configure_ac'.  You might want
-         to install the \`Automake' and \`Perl' packages.  Grab them from
-         any GNU archive site."
-    touch aclocal.m4
-    ;;
-
-  autoconf)
-    echo 1>&2 "\
-WARNING: \`$1' is missing on your system.  You should only need it if
-         you modified \`$configure_ac'.  You might want to install the
-         \`Autoconf' and \`GNU m4' packages.  Grab them from any GNU
-         archive site."
-    touch configure
-    ;;
-
-  autoheader)
-    echo 1>&2 "\
-WARNING: \`$1' is missing on your system.  You should only need it if
-         you modified \`acconfig.h' or \`$configure_ac'.  You might want
-         to install the \`Autoconf' and \`GNU m4' packages.  Grab them
-         from any GNU archive site."
-    files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' $configure_ac`
-    test -z "$files" && files="config.h"
-    touch_files=
-    for f in $files; do
-      case "$f" in
-      *:*) touch_files="$touch_files "`echo "$f" |
-                                      sed -e 's/^[^:]*://' -e 's/:.*//'`;;
-      *) touch_files="$touch_files $f.in";;
-      esac
-    done
-    touch $touch_files
-    ;;
-
-  automake)
-    echo 1>&2 "\
-WARNING: \`$1' is missing on your system.  You should only need it if
-         you modified \`Makefile.am', \`acinclude.m4' or \`$configure_ac'.
-         You might want to install the \`Automake' and \`Perl' packages.
-         Grab them from any GNU archive site."
-    find . -type f -name Makefile.am -print |
-          sed 's/\.am$/.in/' |
-          while read f; do touch "$f"; done
-    ;;
-
-  bison|yacc)
-    echo 1>&2 "\
-WARNING: \`$1' is missing on your system.  You should only need it if
-         you modified a \`.y' file.  You may need the \`Bison' package
-         in order for those modifications to take effect.  You can get
-         \`Bison' from any GNU archive site."
-    rm -f y.tab.c y.tab.h
-    if [ $# -ne 1 ]; then
-        eval LASTARG="\${$#}"
-       case "$LASTARG" in
-       *.y)
-           SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
-           if [ -f "$SRCFILE" ]; then
-                cp "$SRCFILE" y.tab.c
-           fi
-           SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
-           if [ -f "$SRCFILE" ]; then
-                cp "$SRCFILE" y.tab.h
-           fi
-         ;;
-       esac
-    fi
-    if [ ! -f y.tab.h ]; then
-       echo >y.tab.h
-    fi
-    if [ ! -f y.tab.c ]; then
-       echo 'main() { return 0; }' >y.tab.c
-    fi
-    ;;
-
-  lex|flex)
-    echo 1>&2 "\
-WARNING: \`$1' is missing on your system.  You should only need it if
-         you modified a \`.l' file.  You may need the \`Flex' package
-         in order for those modifications to take effect.  You can get
-         \`Flex' from any GNU archive site."
-    rm -f lex.yy.c
-    if [ $# -ne 1 ]; then
-        eval LASTARG="\${$#}"
-       case "$LASTARG" in
-       *.l)
-           SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
-           if [ -f "$SRCFILE" ]; then
-                cp "$SRCFILE" lex.yy.c
-           fi
-         ;;
-       esac
-    fi
-    if [ ! -f lex.yy.c ]; then
-       echo 'main() { return 0; }' >lex.yy.c
-    fi
-    ;;
-
-  makeinfo)
-    echo 1>&2 "\
-WARNING: \`$1' is missing on your system.  You should only need it if
-         you modified a \`.texi' or \`.texinfo' file, or any other file
-         indirectly affecting the aspect of the manual.  The spurious
-         call might also be the consequence of using a buggy \`make' (AIX,
-         DU, IRIX).  You might want to install the \`Texinfo' package or
-         the \`GNU make' package.  Grab either from any GNU archive site."
-    file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
-    if test -z "$file"; then
-      file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
-      file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
-    fi
-    touch $file
-    ;;
-
-  *)
-    echo 1>&2 "\
-WARNING: \`$1' is needed, and you do not seem to have it handy on your
-         system.  You might have modified some files without having the
-         proper tools for further handling them.  Check the \`README' file,
-         it often tells you about the needed prerequirements for installing
-         this package.  You may also peek at any GNU archive site, in case
-         some other package would contain this missing \`$1' program."
-    exit 1
-    ;;
-esac
-
-exit 0
diff --git a/libs/dbprim/mkinstalldirs b/libs/dbprim/mkinstalldirs
deleted file mode 100755 (executable)
index a458e46..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-#! /bin/sh
-# mkinstalldirs --- make directory hierarchy
-# Author: Noah Friedman <friedman@prep.ai.mit.edu>
-# Created: 1993-05-16
-# Public domain
-
-# $Id: mkinstalldirs,v 1.1 2003-03-07 02:36:11 klmitch Exp $
-
-errstatus=0
-
-for file
-do
-   set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
-   shift
-
-   pathcomp=
-   for d
-   do
-     pathcomp="$pathcomp$d"
-     case "$pathcomp" in
-       -* ) pathcomp=./$pathcomp ;;
-     esac
-
-     if test ! -d "$pathcomp"; then
-        echo "mkdir $pathcomp"
-
-        mkdir "$pathcomp" || lasterr=$?
-
-        if test ! -d "$pathcomp"; then
-         errstatus=$lasterr
-        fi
-     fi
-
-     pathcomp="$pathcomp/"
-   done
-done
-
-exit $errstatus
-
-# mkinstalldirs ends here
diff --git a/libs/dbprim/sh_find.c b/libs/dbprim/sh_find.c
deleted file mode 100644 (file)
index c3b74ae..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
-** Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-**
-** This library is free software; you can redistribute it and/or
-** modify it under the terms of the GNU Library General Public
-** License as published by the Free Software Foundation; either
-** version 2 of the License, or (at your option) any later version.
-**
-** This library 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
-** Library General Public License for more details.
-**
-** You should have received a copy of the GNU Library General Public
-** License along with this library; if not, write to the Free
-** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-** MA 02111-1307, USA
-**
-** @(#)$Id$
-*/
-#include "dbprim.h"
-#include "dbprim_int.h"
-
-RCSTAG("@(#)$Id$");
-
-struct _sh_find_s {
-  smat_comp_t  sf_comp;        /* comparison function */
-  db_key_t     *sf_key;                /* original key */
-};
-
-static unsigned long
-_sh_find_comp(db_key_t *key, void *data)
-{
-  struct _sh_find_s *sf;
-
-  sf = dk_key(key);
-
-  /* Call the user's comparison function--with some translation */
-  return (*sf->sf_comp)(sf->sf_key, data);
-}
-
-/** \ingroup dbprim_smat
- * \brief Find an entry in a row or column of a sparse matrix.
- *
- * This function iterates through the given row or column of a
- * sparse matrix looking for an element that matches the given \p key.
- *
- * \param head A pointer to a #smat_head_t.
- * \param elem_p
- *             A pointer to a pointer to a #smat_entry_t.  This is a
- *             result pramater.  \c NULL is an invalid value.
- * \param comp_func
- *             A pointer to a comparison function used to compare the
- *             key to a particular entry.  See the documentation for
- *             #smat_comp_t for more information.
- * \param start        A pointer to a #smat_entry_t describing where in the
- *             row or column to start.  If \c NULL is passed, the
- *             beginning of the row or column will be assumed.
- * \param key  A key to search for.
- *
- * \retval DB_ERR_BADARGS      An argument was invalid.
- * \retval DB_ERR_WRONGTABLE   \p start is not in this row or column.
- * \retval DB_ERR_NOENTRY      No matching entry was found.
- */
-unsigned long
-sh_find(smat_head_t *head, smat_entry_t **elem_p, smat_comp_t comp_func,
-       smat_entry_t *start, db_key_t *key)
-{
-  unsigned long retval;
-  link_elem_t *elem;
-  struct _sh_find_s sf;
-  db_key_t fkey;
-
-  initialize_dbpr_error_table(); /* initialize error table */
-
-  /* verify arguments */
-  if (!sh_verify(head) || !elem_p || !comp_func || !key ||
-      (start && !se_verify(start)))
-    return DB_ERR_BADARGS;
-
-  /* Set up for the call to ll_find()... */
-  sf.sf_comp = comp_func;
-  sf.sf_key = key;
-  dk_key(&fkey) = &sf;
-
-  /* call into the linked list library to find the element */
-  if ((retval = ll_find(&head->sh_head, &elem, _sh_find_comp,
-                       start ? &start->se_link[head->sh_elem] : 0, &fkey)))
-    return retval;
-
-  *elem_p = le_object(elem); /* set the entry pointer correctly */
-
-  return 0;
-}
diff --git a/libs/dbprim/sh_flush.c b/libs/dbprim/sh_flush.c
deleted file mode 100644 (file)
index bf07c9c..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
-** Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-**
-** This library is free software; you can redistribute it and/or
-** modify it under the terms of the GNU Library General Public
-** License as published by the Free Software Foundation; either
-** version 2 of the License, or (at your option) any later version.
-**
-** This library 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
-** Library General Public License for more details.
-**
-** You should have received a copy of the GNU Library General Public
-** License along with this library; if not, write to the Free
-** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-** MA 02111-1307, USA
-**
-** @(#)$Id$
-*/
-#include "dbprim.h"
-#include "dbprim_int.h"
-
-RCSTAG("@(#)$Id$");
-
-struct _sh_flush_s {
-  smat_table_t *sf_table;      /* pointer to the smat table */
-  smat_loc_t   sf_elem;        /* which list we're traversing */
-  smat_iter_t  sf_flush;       /* flush function */
-  void        *sf_extra;       /* extra data */
-};
-
-static unsigned long
-_sh_flush_iter(link_head_t *head, link_elem_t *elem, void *extra)
-{
-  unsigned long retval = 0;
-  struct _sh_flush_s *sf;
-
-  sf = extra;
-
-  /* Remove the object from all lists first */
-  if (_st_remove(sf->sf_table, le_object(elem), ST_REM_HASH |
-                (sf->sf_elem == SMAT_LOC_FIRST ? ST_REM_SECOND :
-                 ST_REM_FIRST)))
-    return DB_ERR_UNRECOVERABLE;
-
-  /* call the user flush function if so desired */
-  if (sf->sf_flush)
-    retval = (*sf->sf_flush)(sf->sf_table, le_object(elem), sf->sf_extra);
-
-  _smat_free(le_object(elem)); /* destroy the entry */
-
-  return retval;
-}
-
-/** ingroup dbprim_smat
- * \brief Flush a row or column of a sparse matrix.
- *
- * This function flushes a sparse matrix row or column--that is, it
- * removes each element from that row or column.  If a \p flush_func
- * is specified, it will be called on the entry after it has been
- * removed from the row or column, and may safely call
- * <CODE>free()</CODE>.
- *
- * \param list A pointer to a #smat_head_t.
- * \param flush_func
- *             A pointer to a callback function used to perform
- *             user-specifed actions on an entry after removing it
- *             from the row or column.  May be \c NULL.  See the
- *             documentation for #smat_iter_t for more information.
- * \param extra        A \c void pointer that will be passed to \p
- *             flush_func.
- *
- * \retval DB_ERR_BADARGS      An argument was invalid.
- */
-unsigned long
-sh_flush(smat_head_t *head, smat_iter_t flush_func, void *extra)
-{
-  struct _sh_flush_s sf;
-
-  initialize_dbpr_error_table(); /* initialize error table */
-
-  if (!sh_verify(head)) /* verify arguments */
-    return DB_ERR_BADARGS;
-
-  /* initialize extra data... */
-  sf.sf_table = head->sh_table;
-  sf.sf_elem = head->sh_elem;
-  sf.sf_flush = flush_func;
-  sf.sf_extra = extra;
-
-  /* call into linked list library to flush the list */
-  return ll_flush(&head->sh_head, _sh_flush_iter, &sf);
-}
diff --git a/libs/dbprim/sh_init.c b/libs/dbprim/sh_init.c
deleted file mode 100644 (file)
index ec57ac8..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
-** Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-**
-** This library is free software; you can redistribute it and/or
-** modify it under the terms of the GNU Library General Public
-** License as published by the Free Software Foundation; either
-** version 2 of the License, or (at your option) any later version.
-**
-** This library 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
-** Library General Public License for more details.
-**
-** You should have received a copy of the GNU Library General Public
-** License along with this library; if not, write to the Free
-** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-** MA 02111-1307, USA
-**
-** @(#)$Id$
-*/
-#include "dbprim.h"
-#include "dbprim_int.h"
-
-RCSTAG("@(#)$Id$");
-
-/** \ingroup dbprim_smat
- * \brief Dynamically initialize a sparse matrix row or column head.
- *
- * This function dynamically initializes a sparse matrix row or column
- * linked list head.  The \p elem argument specifies whether the
- * object is to be associated with a #SMAT_LOC_FIRST list or a
- * #SMAT_LOC_SECOND list.
- *
- * \param head A pointer to a #smat_head_t to be initialized.
- * \param elem Either #SMAT_LOC_FIRST or #SMAT_LOC_SECOND.
- * \param object
- *             A pointer to the object containing the sparse matrix
- *             row or column head.
- *
- * \retval DB_ERR_BADARGS      An invalid argument was given.
- */
-unsigned long
-sh_init(smat_head_t *head, smat_loc_t elem, void *object)
-{
-  unsigned long retval;
-
-  initialize_dbpr_error_table(); /* initialize error table */
-
-  /* verify arguments... */
-  if (!head || (elem != SMAT_LOC_FIRST && elem != SMAT_LOC_SECOND))
-    return DB_ERR_BADARGS;
-
-  /* initialize list head */
-  if ((retval = ll_init(&head->sh_head, object)))
-    return retval;
-
-  head->sh_elem = elem; /* initialize list head */
-  head->sh_table = 0;
-
-  head->sh_magic = SMAT_HEAD_MAGIC; /* set magic number */
-
-  return 0;
-}
diff --git a/libs/dbprim/sh_iter.c b/libs/dbprim/sh_iter.c
deleted file mode 100644 (file)
index b08e305..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
-** Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-**
-** This library is free software; you can redistribute it and/or
-** modify it under the terms of the GNU Library General Public
-** License as published by the Free Software Foundation; either
-** version 2 of the License, or (at your option) any later version.
-**
-** This library 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
-** Library General Public License for more details.
-**
-** You should have received a copy of the GNU Library General Public
-** License along with this library; if not, write to the Free
-** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-** MA 02111-1307, USA
-**
-** @(#)$Id$
-*/
-#include "dbprim.h"
-#include "dbprim_int.h"
-
-RCSTAG("@(#)$Id$");
-
-struct _sh_iter_s {
-  smat_table_t *si_table;      /* pointer to the smat table */
-  smat_iter_t  si_iter;        /* iter function */
-  void        *si_extra;       /* extra data */
-};
-
-static unsigned long
-_sh_iter_iter(link_head_t *head, link_elem_t *elem, void *extra)
-{
-  struct _sh_iter_s *si;
-
-  si = extra;
-
-  /* call the user iteration function--with appropriate translation */
-  return (*si->si_iter)(si->si_table, le_object(elem), si->si_extra);
-}
-
-/** \ingroup dbprim_smat
- * \brief Iterate over each entry in a row or column of a sparse
- * matrix.
- *
- * This function iterates over a row or column of a sparse matrix,
- * executing the given \p iter_func for each entry.
- *
- * \param head A pointer to a #smat_head_t.
- * \param iter_func
- *             A pointer to a callback function used to perform
- *             user-specified actions on an entry in a row or column
- *             of a sparse matrix.  \c NULL is an invalid value.  See
- *             the documentation for #smat_iter_t for more
- *             information.
- * \param extra        A \c void pointer that will be passed to \p
- *             iter_func.
- *
- * \retval DB_ERR_BADARGS      An argument was invalid.
- */
-unsigned long
-sh_iter(smat_head_t *head, smat_iter_t iter_func, void *extra)
-{
-  struct _sh_iter_s si;
-
-  initialize_dbpr_error_table(); /* initialize error table */
-
-  if (!sh_verify(head) || !iter_func) /* verify arguments */
-    return DB_ERR_BADARGS;
-
-  /* initialize extra data... */
-  si.si_table = head->sh_table;
-  si.si_iter = iter_func;
-  si.si_extra = extra;
-
-  /* call into linked list library to iterate over the list */
-  return ll_iter(&head->sh_head, _sh_iter_iter, &si);
-}
diff --git a/libs/dbprim/sh_move.c b/libs/dbprim/sh_move.c
deleted file mode 100644 (file)
index 4ec3d7a..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
-** Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-**
-** This library is free software; you can redistribute it and/or
-** modify it under the terms of the GNU Library General Public
-** License as published by the Free Software Foundation; either
-** version 2 of the License, or (at your option) any later version.
-**
-** This library 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
-** Library General Public License for more details.
-**
-** You should have received a copy of the GNU Library General Public
-** License along with this library; if not, write to the Free
-** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-** MA 02111-1307, USA
-**
-** @(#)$Id$
-*/
-#include "dbprim.h"
-#include "dbprim_int.h"
-
-RCSTAG("@(#)$Id$");
-
-/** \ingroup dbprim_smat
- * \brief Move an entry within a row or column list.
- *
- * This function allows the specified entry to be shifted within the
- * linked list describing the row or column.  It is very similar to
- * the ll_move() function.
- *
- * \param head A pointer to a #smat_head_t.
- * \param elem A pointer to the #smat_entry_t describing the entry to
- *             be moved.
- * \param loc  A #link_loc_t indicating where the entry should be
- *             moved to.
- * \param elem2        A pointer to a #smat_entry_t describing another entry
- *             in the list if \p loc is #LINK_LOC_BEFORE or
- *             #LINK_LOC_AFTER.
- *
- * \retval DB_ERR_BADARGS      An argument was invalid.
- * \retval DB_ERR_BUSY         \p elem and \p elem2 are the same
- *                             entry.
- * \retval DB_ERR_WRONGTABLE   \p elem or \p elem2 are in a different
- *                             row or column.
- * \retval DB_ERR_UNUSED       \p elem or \p elem2 are not in any row
- *                             or column.
- */
-unsigned long
-sh_move(smat_head_t *head, smat_entry_t *elem, link_loc_t loc,
-       smat_entry_t *elem2)
-{
-  initialize_dbpr_error_table(); /* initialize error table */
-
-  /* Verify arguments--if elem is set, must be a valid element; if
-   * location is before or after, elem must be set
-   */
-  if (!sh_verify(head) || !se_verify(elem) || (elem2 && !se_verify(elem2)))
-    return DB_ERR_BADARGS;
-
-  /* OK, call out to the linked list operation--it'll figure
-   * everything else out
-   */
-  return ll_move(&head->sh_head, &elem->se_link[head->sh_elem], loc,
-                elem2 ? &elem2->se_link[head->sh_elem] : 0);
-}
diff --git a/libs/dbprim/smat_freelist.c b/libs/dbprim/smat_freelist.c
deleted file mode 100644 (file)
index 39801fa..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
-** Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-**
-** This library is free software; you can redistribute it and/or
-** modify it under the terms of the GNU Library General Public
-** License as published by the Free Software Foundation; either
-** version 2 of the License, or (at your option) any later version.
-**
-** This library 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
-** Library General Public License for more details.
-**
-** You should have received a copy of the GNU Library General Public
-** License along with this library; if not, write to the Free
-** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-** MA 02111-1307, USA
-**
-** @(#)$Id$
-*/
-#include <stdlib.h>
-
-#include "dbprim.h"
-#include "dbprim_int.h"
-
-RCSTAG("@(#)$Id$");
-
-static link_head_t _smat_freelist = LINK_HEAD_INIT(0);
-
-smat_entry_t *
-_smat_alloc(void)
-{
-  link_elem_t *le;
-  smat_entry_t *se;
-
-  if (!ll_count(&_smat_freelist) || !(le = ll_first(&_smat_freelist)) ||
-      ll_remove(&_smat_freelist, le)) {
-    /* Must allocate a new element */
-    if (!(se = (smat_entry_t *)malloc(sizeof(smat_entry_t))))
-      return 0; /* couldn't allocate an entry... */
-  } else
-    se = le_object(le); /* get smat entry object */
-
-  /* initialize a smat entry */
-  if (he_init(&se->se_hash, se) || le_init(&se->se_link[SMAT_LOC_FIRST], se) ||
-      le_init(&se->se_link[SMAT_LOC_SECOND], se)) {
-    free(se); /* initialization failed... */
-    return 0;
-  }
-
-  se->se_table = 0; /* initialize the rest of the structure */
-  se->se_object[SMAT_LOC_FIRST] = 0;
-  se->se_object[SMAT_LOC_SECOND] = 0;
-
-  se->se_magic = SMAT_ENTRY_MAGIC; /* set up the magic number */
-
-  return se; /* return the object */
-}
-
-void
-_smat_free(smat_entry_t *entry)
-{
-  entry->se_magic = 0; /* clear magic number to prevent use */
-
-  /* Add the entry to the free list */
-  if (ll_add(&_smat_freelist, _se_link(entry), LINK_LOC_HEAD, 0))
-    free(entry); /* addition failed, so free the entry */
-}
-
-/** \ingroup dbprim_smat
- * \brief Clean up the smat free list.
- *
- * This function frees all smat_entry_t objects on the internal free
- * list.  It is always successful and returns 0.
- */
-unsigned long
-smat_cleanup(void)
-{
-  link_elem_t *entry;
-
-  initialize_dbpr_error_table(); /* set up error tables */
-
-  /* walk the free list */
-  while ((entry = ll_first(&_smat_freelist))) {
-    ll_remove(&_smat_freelist, entry); /* remove entry */
-    free(le_object(entry)); /* free the element */
-  }
-
-  return 0;
-}
-
-/** \ingroup dbprim_smat
- * \brief Report how much memory is used by the free list.
- *
- * This function returns the amount of memory being used by the
- * internal free list of smat_entry_t objects.
- *
- * \return     A number indicating the size, in bytes, of the memory
- *             allocated for smat_entry_t objects on the free list.
- */
-unsigned long
-smat_freemem(void)
-{
-  initialize_dbpr_error_table(); /* set up error tables */
-
-  /* tell caller how much memory we're using */
-  return ll_count(&_smat_freelist) * sizeof(smat_entry_t);
-}
diff --git a/libs/dbprim/st_add.c b/libs/dbprim/st_add.c
deleted file mode 100644 (file)
index 51ccd8c..0000000
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
-** Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-**
-** This library is free software; you can redistribute it and/or
-** modify it under the terms of the GNU Library General Public
-** License as published by the Free Software Foundation; either
-** version 2 of the License, or (at your option) any later version.
-**
-** This library 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
-** Library General Public License for more details.
-**
-** You should have received a copy of the GNU Library General Public
-** License along with this library; if not, write to the Free
-** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-** MA 02111-1307, USA
-**
-** @(#)$Id$
-*/
-#include <errno.h>
-
-#include "dbprim.h"
-#include "dbprim_int.h"
-
-RCSTAG("@(#)$Id$");
-
-/** \ingroup dbprim_smat
- * \brief Add an entry to a sparse matrix.
- *
- * This function adds an entry to a sparse matrix.  The entry is
- * referenced in three different places, thus the complex set of
- * arguments.  This function will allocate a #smat_entry_t and return
- * it through the \c entry_p result parameter.
- *
- * \param table        A pointer to a #smat_table_t.
- * \param entry_p
- *             A pointer to a pointer to a #smat_entry_t.  This is a
- *             result parameter.  If \c NULL is passed, the addition
- *             will be performed and an appropriate error code
- *             returned.
- * \param head1        A pointer to a #smat_head_t representing a
- *             #SMAT_LOC_FIRST sparse matrix list.
- * \param loc1 A #link_loc_t indicating where the entry should be
- *             added for \c head1.
- * \param ent1 A pointer to a #smat_entry_t describing another
- *             element in the list represented by \c head1 if \p loc1
- *             is #LINK_LOC_BEFORE or #LINK_LOC_AFTER.
- * \param head2        A pointer to a #smat_head_t representing a
- *             #SMAT_LOC_SECOND sparse matrix list.
- * \param loc2 A #link_loc_t indicating where the entry should be
- *             added for \c head2.
- * \param ent2 A pointer to a #smat_entry_t describing another
- *             element in the list represented by \c head2 if \p loc2
- *             is #LINK_LOC_BEFORE or #LINK_LOC_AFTER.
- *
- * \retval DB_ERR_BADARGS      An argument was invalid.
- * \retval DB_ERR_BUSY         One of the arguments is already in the
- *                             table.
- * \retval DB_ERR_FROZEN       The table is currently frozen.
- * \retval DB_ERR_NOTABLE      The bucket table has not been
- *                             allocated and automatic growth is not
- *                             enabled.
- * \retval DB_ERR_WRONGTABLE   One of the arguments was not in the
- *                             proper table or list.
- * \retval DB_ERR_UNUSED       One of the \c ent arguments is not
- *                             presently in a list.
- * \retval DB_ERR_UNRECOVERABLE        An unrecoverable error occurred while
- *                             resizing the table.
- * \retval ENOMEM              No memory could be allocated for the
- *                             #smat_entry_t structure.
- */
-unsigned long
-st_add(smat_table_t *table, smat_entry_t **entry_p,
-       smat_head_t *head1, link_loc_t loc1, smat_entry_t *ent1,
-       smat_head_t *head2, link_loc_t loc2, smat_entry_t *ent2)
-{
-  smat_entry_t *se;
-  unsigned long retval = 0;
-  unsigned int freeflags = 0;
-  db_key_t key;
-
-  initialize_dbpr_error_table(); /* initialize error table */
-
-  /* Verify arguments--like ll_add(), but has to account for two seperate
-   * linked lists
-   */
-  if (!st_verify(table) || !sh_verify(head1) || !sh_verify(head2) ||
-      head1->sh_elem != SMAT_LOC_FIRST || head2->sh_elem != SMAT_LOC_SECOND ||
-      (ent1 && !se_verify(ent1)) || (ent2 && !se_verify(ent2)) ||
-      ((loc1 == LINK_LOC_BEFORE || loc1 == LINK_LOC_AFTER) && !ent1) ||
-      ((loc2 == LINK_LOC_BEFORE || loc2 == LINK_LOC_AFTER) && !ent2))
-    return DB_ERR_BADARGS;
-
-  /* verify that everything's in the right tables... */
-  if ((head1->sh_table && head1->sh_table != table) ||
-      (head2->sh_table && head2->sh_table != table) ||
-      (ent1 && ent1->se_table != table) ||
-      (ent2 && ent2->se_table != table))
-    return DB_ERR_WRONGTABLE;
-
-  if (!(se = _smat_alloc())) /* get an entry object */
-    return ENOMEM;
-
-  freeflags |= ST_REM_FREE; /* entry has been allocated */
-
-  se->se_object[SMAT_LOC_FIRST] = sh_object(head1); /* set up the hash key */
-  se->se_object[SMAT_LOC_SECOND] = sh_object(head2);
-  dk_key(&key) = &se->se_object;
-  dk_len(&key) = 0;
-
-  /* add the element to the hash table first */
-  if ((retval = ht_add(&table->st_table, &se->se_hash, &key)))
-    goto error;
-
-  freeflags |= ST_REM_HASH; /* entry must be removed from hash table */
-
-  /* add the element to the first linked list */
-  if ((retval = ll_add(&head1->sh_head, &se->se_link[SMAT_LOC_FIRST], loc1,
-                      ent1 ? &ent1->se_link[SMAT_LOC_FIRST] : 0)))
-    goto error;
-
-  freeflags |= ST_REM_FIRST; /* entry must be removed from linked list 1 */
-
-  /* add the element to the second linked list */
-  if ((retval = ll_add(&head2->sh_head, &se->se_link[SMAT_LOC_SECOND], loc2,
-                      ent2 ? &ent2->se_link[SMAT_LOC_SECOND] : 0)))
-    goto error;
-
-  head1->sh_table = head2->sh_table = table; /* remember our table */
-  se->se_table = table;
-
-  if (!entry_p) /* user wants to know which entry it is */
-    *entry_p = se;
-
-  return 0; /* all done! */
-
- error:
-  /* unlink entry from linked list 1 */
-  if ((freeflags & ST_REM_FIRST) &&
-      ll_remove(&head1->sh_head, &se->se_link[SMAT_LOC_FIRST]))
-    return DB_ERR_UNRECOVERABLE;
-
-  /* remove element from hash table */
-  if ((freeflags & ST_REM_HASH) && ht_remove(&table->st_table, &se->se_hash))
-    return DB_ERR_UNRECOVERABLE;
-
-  /* return element to free pool */
-  if (freeflags & ST_REM_FREE)
-    _smat_free(se);
-
-  return retval; /* return error */
-}
diff --git a/libs/dbprim/st_find.c b/libs/dbprim/st_find.c
deleted file mode 100644 (file)
index 1cd9333..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
-** Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-**
-** This library is free software; you can redistribute it and/or
-** modify it under the terms of the GNU Library General Public
-** License as published by the Free Software Foundation; either
-** version 2 of the License, or (at your option) any later version.
-**
-** This library 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
-** Library General Public License for more details.
-**
-** You should have received a copy of the GNU Library General Public
-** License along with this library; if not, write to the Free
-** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-** MA 02111-1307, USA
-**
-** @(#)$Id$
-*/
-#include "dbprim.h"
-#include "dbprim_int.h"
-
-RCSTAG("@(#)$Id$");
-
-/** \ingroup dbprim_smat
- * \brief Find an entry in a sparse matrix.
- *
- * This function looks up the entry matching the given \p head1 and \p
- * head2.
- *
- * \param table        A pointer to a #smat_table_t.
- * \param entry_p
- *             A pointer to a pointer to a #smat_entry_t.  This is a
- *             result parameter.  If \c NULL is passed, the lookup
- *             will be performed and an appropriate error code
- *             returned.
- * \param head1        A pointer to a #smat_head_t initialized to
- *             #SMAT_LOC_FIRST.
- * \param head2        A pointer to a #smat_head_t initialized to
- *             #SMAT_LOC_SECOND.
- *
- * \retval DB_ERR_BADARGS      An argument was invalid.
- * \retval DB_ERR_WRONGTABLE   One or both of \p head1 or \p head2
- *                             are not referenced in this table.
- * \retval DB_ERR_NOENTRY      No matching entry was found.
- */
-unsigned long
-st_find(smat_table_t *table, smat_entry_t **entry_p, smat_head_t *head1,
-       smat_head_t *head2)
-{
-  hash_entry_t *ent;
-  unsigned long retval;
-  void *object[2];
-  db_key_t key;
-
-  initialize_dbpr_error_table(); /* initialize error table */
-
-  /* Verify arguments */
-  if (!st_verify(table) || !sh_verify(head1) || !sh_verify(head2) ||
-      head1->sh_elem != SMAT_LOC_FIRST || head2->sh_elem != SMAT_LOC_SECOND)
-    return DB_ERR_BADARGS;
-
-  /* If there are no entries in one of the lists, then return "no entry" */
-  if (!head1->sh_table || !head2->sh_table || head1->sh_head.lh_count == 0 ||
-      head2->sh_head.lh_count == 0)
-    return DB_ERR_NOENTRY;
-
-  /* verify that everything's in the right tables */
-  if (head1->sh_table != table || head2->sh_table != table)
-    return DB_ERR_WRONGTABLE;
-
-  /* Build the search key */
-  object[SMAT_LOC_FIRST] = sh_object(head1);
-  object[SMAT_LOC_SECOND] = sh_object(head2);
-  dk_key(&key) = object;
-  dk_len(&key) = 0;
-
-  /* look up the entry */
-  if ((retval = ht_find(&table->st_table, &ent, &key)))
-    return retval;
-
-  /* If the user wants the object, return it to him */
-  if (entry_p)
-    *entry_p = he_value(ent);
-
-  return 0; /* search successful */
-}
diff --git a/libs/dbprim/st_flush.c b/libs/dbprim/st_flush.c
deleted file mode 100644 (file)
index 65e3549..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
-** Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-**
-** This library is free software; you can redistribute it and/or
-** modify it under the terms of the GNU Library General Public
-** License as published by the Free Software Foundation; either
-** version 2 of the License, or (at your option) any later version.
-**
-** This library 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
-** Library General Public License for more details.
-**
-** You should have received a copy of the GNU Library General Public
-** License along with this library; if not, write to the Free
-** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-** MA 02111-1307, USA
-**
-** @(#)$Id$
-*/
-#include "dbprim.h"
-#include "dbprim_int.h"
-
-RCSTAG("@(#)$Id$");
-
-struct _st_flush_s {
-  smat_table_t *sf_table;      /* pointer to the smat table */
-  smat_iter_t  sf_flush;       /* flush function */
-  void        *sf_extra;       /* extra data */
-};
-
-static unsigned long
-_st_flush_iter(hash_table_t *table, hash_entry_t *ent, void *extra)
-{
-  unsigned long retval = 0;
-  struct _st_flush_s *sf;
-
-  sf = extra;
-
-  /* Remove the object from all lists first */
-  _st_remove(sf->sf_table, he_value(ent), ST_REM_FIRST | ST_REM_SECOND);
-
-  /* call the user flush function if so desired */
-  if (sf->sf_flush)
-    retval = (*sf->sf_flush)(sf->sf_table, he_value(ent), sf->sf_extra);
-
-  _smat_free(he_value(ent)); /* destroy the entry */
-
-  return retval;
-}
-
-/** \ingroup dbprim_smat
- * \brief Flush a sparse matrix.
- *
- * This function flushes a sparse matrix--that is, it removes each
- * entry from the matrix.  If a \p flush_func is specified, it will be
- * called on the entry after it has been removed from the table, and
- * may safely call <CODE>free()</CODE>.
- *
- * \param table        A pointer to a #smat_table_t.
- * \param flush_func
- *             A pointer to a callback function used to perform
- *             user-specified actions on an entry after removing it
- *             from the table.  May be \c NULL.  See the
- *             documentation for #smat_iter_t for more information.
- * \param extra        A \c void pointer that will be passed to \p
- *             iter_func.
- *
- * \retval DB_ERR_BADARGS      An argument was invalid.
- * \retval DB_ERR_FROZEN       The sparse matrix is frozen.
- */
-unsigned long
-st_flush(smat_table_t *table, smat_iter_t flush_func, void *extra)
-{
-  struct _st_flush_s sf;
-
-  initialize_dbpr_error_table(); /* initialize error table */
-
-  if (!st_verify(table)) /* verify arguments */
-    return DB_ERR_BADARGS;
-
-  /* initialize extra data... */
-  sf.sf_table = table;
-  sf.sf_flush = flush_func;
-  sf.sf_extra = extra;
-
-  /* call into linked list library to flush the list */
-  return ht_flush(&table->st_table, _st_flush_iter, &sf);
-}
diff --git a/libs/dbprim/st_free.c b/libs/dbprim/st_free.c
deleted file mode 100644 (file)
index ea504ea..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
-** Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-**
-** This library is free software; you can redistribute it and/or
-** modify it under the terms of the GNU Library General Public
-** License as published by the Free Software Foundation; either
-** version 2 of the License, or (at your option) any later version.
-**
-** This library 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
-** Library General Public License for more details.
-**
-** You should have received a copy of the GNU Library General Public
-** License along with this library; if not, write to the Free
-** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-** MA 02111-1307, USA
-**
-** @(#)$Id$
-*/
-#include "dbprim.h"
-#include "dbprim_int.h"
-
-RCSTAG("@(#)$Id$");
-
-/** \ingroup dbprim_smat
- * \brief Free memory used by an empty sparse matrix table.
- *
- * This function releases the memory used by the bucket table of the
- * empty hash table associated with a sparse matrix.
- *
- * \param table        A pointer to a #smat_table_t.
- *
- * \retval DB_ERR_BADARGS      An invalid argument was given.
- * \retval DB_ERR_FROZEN       The table is frozen.
- * \retval DB_ERR_NOTEMPTY     The table is not empty.
- */
-unsigned long
-st_free(smat_table_t *table)
-{
-  initialize_dbpr_error_table(); /* initialize error table */
-
-  if (!st_verify(table)) /* verify argument */
-    return DB_ERR_BADARGS;
-
-  return ht_free(&table->st_table); /* call out to hash */
-}
diff --git a/libs/dbprim/st_init.c b/libs/dbprim/st_init.c
deleted file mode 100644 (file)
index f8730fe..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
-** Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-**
-** This library is free software; you can redistribute it and/or
-** modify it under the terms of the GNU Library General Public
-** License as published by the Free Software Foundation; either
-** version 2 of the License, or (at your option) any later version.
-**
-** This library 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
-** Library General Public License for more details.
-**
-** You should have received a copy of the GNU Library General Public
-** License along with this library; if not, write to the Free
-** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-** MA 02111-1307, USA
-**
-** @(#)$Id$
-*/
-#include "dbprim.h"
-#include "dbprim_int.h"
-
-RCSTAG("@(#)$Id$");
-
-/** \ingroup dbprim_smat
- *
- * This function dynamically initializes a sparse matrix table.
- *
- * \param table        A pointer to a #smat_table_t to be initialized.
- * \param flags        A bit-wise OR of #HASH_FLAG_AUTOGROW and
- *             #HASH_FLAG_AUTOSHRINK.  If neither behavior is
- *             desired, use 0.
- * \param resize
- *             A #hash_resize_t function pointer for determining
- *             whether resizing is permitted and/or for notification
- *             of the resize.
- * \param extra        Extra pointer data that should be associated with the
- *             sparse matrix table.
- * \param init_mod
- *             An initial modulus for the table.  This will
- *             presumably be extracted by st_modulus() in a previous
- *             invocation of the application.  A 0 value is valid.
- *
- * \retval DB_ERR_BADARGS      An invalid argument was given.
- * \retval ENOMEM              Unable to allocate memory.
- */
-unsigned long
-st_init(smat_table_t *table, unsigned long flags, smat_resize_t resize,
-       void *extra, unsigned long init_mod)
-{
-  unsigned long retval;
-
-  initialize_dbpr_error_table(); /* set up error tables */
-
-  if (!table) /* verify arguments */
-    return DB_ERR_BADARGS;
-
-  table->st_resize = resize;
-
-  /* initialize the hash table */
-  if ((retval = ht_init(&table->st_table, flags, _smat_hash, _smat_comp,
-                       _smat_resize, extra, init_mod)))
-    return retval;
-
-  table->st_magic = SMAT_TABLE_MAGIC; /* initialize the rest of the table */
-
-  return 0;
-}
diff --git a/libs/dbprim/st_iter.c b/libs/dbprim/st_iter.c
deleted file mode 100644 (file)
index 05732c6..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
-** Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-**
-** This library is free software; you can redistribute it and/or
-** modify it under the terms of the GNU Library General Public
-** License as published by the Free Software Foundation; either
-** version 2 of the License, or (at your option) any later version.
-**
-** This library 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
-** Library General Public License for more details.
-**
-** You should have received a copy of the GNU Library General Public
-** License along with this library; if not, write to the Free
-** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-** MA 02111-1307, USA
-**
-** @(#)$Id$
-*/
-#include "dbprim.h"
-#include "dbprim_int.h"
-
-RCSTAG("@(#)$Id$");
-
-struct _st_iter_s {
-  smat_table_t *si_table;      /* pointer to the smat table */
-  smat_iter_t  si_iter;        /* iter function */
-  void        *si_extra;       /* extra data */
-};
-
-static unsigned long
-_st_iter_iter(hash_table_t *table, hash_entry_t *ent, void *extra)
-{
-  struct _st_iter_s *si;
-
-  si = extra;
-
-  /* call the user iteration function--with appropriate translation */
-  return (*si->si_iter)(si->si_table, he_value(ent), si->si_extra);
-}
-
-/** \ingroup dbprim_smat
- * \brief Iterate over each entry in a sparse matrix.
- *
- * This function iterates over every entry in a sparse matrix (in an
- * unspecified order), executing the given \p iter_func on each entry.
- *
- * \param table        A pointer to a #smat_table_t.
- * \param iter_func
- *             A pointer to a callback function used to perform
- *             user-specified actions on an entry in a sparse
- *             matrix.  \c NULL is an invalid value.  See the
- *             documentation for #smat_iter_t for more information.
- * \param extra        A \c void pointer that will be passed to \p
- *             iter_func.
- *
- * \retval DB_ERR_BADARGS      An argument was invalid.
- * \retval DB_ERR_FROZEN       The sparse matrix is frozen.
- */
-unsigned long
-st_iter(smat_table_t *table, smat_iter_t iter_func, void *extra)
-{
-  struct _st_iter_s si;
-
-  initialize_dbpr_error_table(); /* initialize error table */
-
-  if (!st_verify(table) || !iter_func) /* verify arguments */
-    return DB_ERR_BADARGS;
-
-  /* initialize extra data... */
-  si.si_table = table;
-  si.si_iter = iter_func;
-  si.si_extra = extra;
-
-  /* call into linked list library to iterate over the list */
-  return ht_iter(&table->st_table, _st_iter_iter, &si);
-}
diff --git a/libs/dbprim/st_remove.c b/libs/dbprim/st_remove.c
deleted file mode 100644 (file)
index ce41c64..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
-** Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-**
-** This library is free software; you can redistribute it and/or
-** modify it under the terms of the GNU Library General Public
-** License as published by the Free Software Foundation; either
-** version 2 of the License, or (at your option) any later version.
-**
-** This library 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
-** Library General Public License for more details.
-**
-** You should have received a copy of the GNU Library General Public
-** License along with this library; if not, write to the Free
-** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-** MA 02111-1307, USA
-**
-** @(#)$Id$
-*/
-#include "dbprim.h"
-#include "dbprim_int.h"
-
-RCSTAG("@(#)$Id$");
-
-unsigned long
-_st_remove(smat_table_t *table, smat_entry_t *entry, unsigned int remflag)
-{
-  unsigned long retval;
-
-  if (remflag & ST_REM_HASH) { /* remove from hash table */
-    if ((retval = ht_remove(&table->st_table, &entry->se_hash)))
-      return retval;
-  }
-
-  if (remflag & ST_REM_FIRST) { /* remove from first linked list */
-    if ((retval = ll_remove(entry->se_link[SMAT_LOC_FIRST].le_head,
-                           &entry->se_link[SMAT_LOC_FIRST])))
-      return retval;
-  }
-
-  if (remflag & ST_REM_SECOND) { /* remove from second linked list */
-    if ((retval = ll_remove(entry->se_link[SMAT_LOC_SECOND].le_head,
-                           &entry->se_link[SMAT_LOC_SECOND])))
-      return retval;
-  }
-
-  if (remflag & ST_REM_FREE) /* free entry */
-    _smat_free(entry);
-
-  return 0;
-}
-
-/** \ingroup dbprim_smat
- * \brief Remove an entry from a sparse matrix.
- *
- * This function removes the given entry from the specified sparse
- * matrix.
- *
- * \param table        A pointer to a #smat_table_t.
- * \param entry        A pointer to a #smat_entry_t to be removed from the
- *             table.
- *
- * \retval DB_ERR_BADARGS      An invalid argument was given.
- * \retval DB_ERR_WRONGTABLE   Entry is not in this sparse matrix.
- * \retval DB_ERR_UNRECOVERABLE        An unrecoverable error occurred while
- *                             removing the entry from the table.
- */
-unsigned long
-st_remove(smat_table_t *table, smat_entry_t *entry)
-{
-  initialize_dbpr_error_table(); /* initialize error table */
-
-  /* verify arguments */
-  if (!st_verify(table) || !se_verify(entry))
-    return DB_ERR_BADARGS;
-
-  /* verify entry is in this table */
-  if (entry->se_table != table)
-    return DB_ERR_WRONGTABLE;
-
-  /* remove the entry from the linked lists and from the hash table */
-  if (_st_remove(table, entry, (ST_REM_HASH | ST_REM_FIRST | ST_REM_SECOND |
-                               ST_REM_FREE)))
-    return DB_ERR_UNRECOVERABLE;
-
-  return 0;
-}
diff --git a/libs/dbprim/st_resize.c b/libs/dbprim/st_resize.c
deleted file mode 100644 (file)
index f28a686..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
-** Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-**
-** This library is free software; you can redistribute it and/or
-** modify it under the terms of the GNU Library General Public
-** License as published by the Free Software Foundation; either
-** version 2 of the License, or (at your option) any later version.
-**
-** This library 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
-** Library General Public License for more details.
-**
-** You should have received a copy of the GNU Library General Public
-** License along with this library; if not, write to the Free
-** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-** MA 02111-1307, USA
-**
-** @(#)$Id$
-*/
-#include "dbprim.h"
-#include "dbprim_int.h"
-
-RCSTAG("@(#)$Id$");
-
-/** \ingroup dbprim_smat
- * \brief Resize a sparse matrix table.
- *
- * This function resizes the hash table associated with a sparse
- * matrix based on the \p new_size parameter.  See the documentation
- * for ht_resize() for more information.
- *
- * \param table        A pointer to a #smat_table_t.
- * \param new_size
- *             A new size value for the table.
- *
- * \retval DB_ERR_BADARGS      An argument was invalid.
- * \retval DB_ERR_FROZEN       The table is currently frozen.
- * \retval DB_ERR_UNRECOVERABLE        A catastrophic error was encountered.
- *                             The table is now unusable.
- * \retval ENOMEM              No memory could be allocated for the
- *                             new bucket table.
- */
-unsigned long
-st_resize(smat_table_t *table, unsigned long new_size)
-{
-  initialize_dbpr_error_table(); /* initialize error table */
-
-  if (!st_verify(table)) /* verify that it's really a table */
-    return DB_ERR_BADARGS;
-
-  return ht_resize(&table->st_table, new_size); /* call out to hash */
-}
diff --git a/libs/dbprim/tests/Makefile.am b/libs/dbprim/tests/Makefile.am
deleted file mode 100644 (file)
index cc50232..0000000
+++ /dev/null
@@ -1,116 +0,0 @@
-## Prefered emacs editing mode: -*- Makefile -*-
-##
-## Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-##
-## This library is free software; you can redistribute it and/or
-## modify it under the terms of the GNU Library General Public
-## License as published by the Free Software Foundation; either
-## version 2 of the License, or (at your option) any later version.
-##
-## This library 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
-## Library General Public License for more details.
-##
-## You should have received a copy of the GNU Library General Public
-## License along with this library; if not, write to the Free
-## Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-## MA 02111-1307, USA
-##
-## @(#)$Id$
-##
-## Process this file with automake to generate Makefile.in
-
-AUTOMAKE_OPTIONS = foreign
-
-INCLUDES = -I.. -I$(srcdir)/..
-
-EXTRA_PROGRAMS = test-harness \
-                \
-                t_ll_init t_ll_add t_ll_move t_ll_remove t_ll_find \
-                t_ll_iter t_ll_flush t_le_init \
-                \
-                t_ht_init t_ht_addfind t_ht_move t_ht_remove t_ht_iter \
-                t_ht_flush t_ht_resize t_ht_free t_he_init \
-                \
-                t_st_init
-
-test_harness_SOURCES = test-harness.c
-TEST_OPTIONS =
-
-t_ll_init_SOURCES = t_ll_init.c
-t_ll_init_LDADD = ../libdbprim.la
-t_ll_init_LDFLAGS = -static
-
-t_ll_add_SOURCES = t_ll_add.c
-t_ll_add_LDADD = ../libdbprim.la
-t_ll_add_LDFLAGS = -static
-
-t_ll_move_SOURCES = t_ll_move.c
-t_ll_move_LDADD = ../libdbprim.la
-t_ll_move_LDFLAGS = -static
-
-t_ll_remove_SOURCES = t_ll_remove.c
-t_ll_remove_LDADD = ../libdbprim.la
-t_ll_remove_LDFLAGS = -static
-
-t_ll_find_SOURCES = t_ll_find.c
-t_ll_find_LDADD = ../libdbprim.la
-t_ll_find_LDFLAGS = -static
-
-t_ll_iter_SOURCES = t_ll_iter.c
-t_ll_iter_LDADD = ../libdbprim.la
-t_ll_iter_LDFLAGS = -static
-
-t_ll_flush_SOURCES = t_ll_flush.c
-t_ll_flush_LDADD = ../libdbprim.la
-t_ll_flush_LDFLAGS = -static
-
-t_le_init_SOURCES = t_le_init.c
-t_le_init_LDADD = ../libdbprim.la
-t_le_init_LDFLAGS = -static
-
-t_ht_init_SOURCES = t_ht_init.c
-t_ht_init_LDADD = ../libdbprim.la
-t_ht_init_LDFLAGS = -static
-
-t_ht_addfind_SOURCES = t_ht_addfind.c
-t_ht_addfind_LDADD = ../libdbprim.la
-t_ht_addfind_LDFLAGS = -static
-
-t_ht_move_SOURCES = t_ht_move.c
-t_ht_move_LDADD = ../libdbprim.la
-t_ht_move_LDFLAGS = -static
-
-t_ht_remove_SOURCES = t_ht_remove.c
-t_ht_remove_LDADD = ../libdbprim.la
-t_ht_remove_LDFLAGS = -static
-
-t_ht_iter_SOURCES = t_ht_iter.c
-t_ht_iter_LDADD = ../libdbprim.la
-t_ht_iter_LDFLAGS = -static
-
-t_ht_flush_SOURCES = t_ht_flush.c
-t_ht_flush_LDADD = ../libdbprim.la
-t_ht_flush_LDFLAGS = -static
-
-t_ht_resize_SOURCES = t_ht_resize.c
-t_ht_resize_LDADD = ../libdbprim.la
-t_ht_resize_LDFLAGS = -static
-
-t_ht_free_SOURCES = t_ht_free.c
-t_ht_free_LDADD = ../libdbprim.la
-t_ht_free_LDFLAGS = -static
-
-t_he_init_SOURCES = t_he_init.c
-t_he_init_LDADD = ../libdbprim.la
-t_he_init_LDFLAGS = -static
-
-t_st_init_SOURCES = t_st_init.c
-t_st_init_LDADD = ../libdbprim.la
-t_st_init_LDFLAGS = -static
-
-EXTRA_DIST = test-harness.dat
-
-check: $(EXTRA_PROGRAMS)
-       ./test-harness -I. -I$(srcdir) $(TEST_OPTIONS)
diff --git a/libs/dbprim/tests/Makefile.in b/libs/dbprim/tests/Makefile.in
deleted file mode 100644 (file)
index 1c6d196..0000000
+++ /dev/null
@@ -1,502 +0,0 @@
-# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
-
-# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-
-SHELL = @SHELL@
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-
-bindir = @bindir@
-sbindir = @sbindir@
-libexecdir = @libexecdir@
-datadir = @datadir@
-sysconfdir = @sysconfdir@
-sharedstatedir = @sharedstatedir@
-localstatedir = @localstatedir@
-libdir = @libdir@
-infodir = @infodir@
-mandir = @mandir@
-includedir = @includedir@
-oldincludedir = /usr/include
-
-DESTDIR =
-
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-
-top_builddir = ..
-
-ACLOCAL = @ACLOCAL@
-AUTOCONF = @AUTOCONF@
-AUTOMAKE = @AUTOMAKE@
-AUTOHEADER = @AUTOHEADER@
-
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-transform = @program_transform_name@
-
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-host_alias = @host_alias@
-host_triplet = @host@
-AS = @AS@
-AWK = @AWK@
-CC = @CC@
-COM_ERR = @COM_ERR@
-DLLTOOL = @DLLTOOL@
-ECHO = @ECHO@
-EXEEXT = @EXEEXT@
-LIBTOOL = @LIBTOOL@
-LN_S = @LN_S@
-MAKEINFO = @MAKEINFO@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-RANLIB = @RANLIB@
-STRIP = @STRIP@
-VERSION = @VERSION@
-
-AUTOMAKE_OPTIONS = foreign
-
-INCLUDES = -I.. -I$(srcdir)/..
-
-EXTRA_PROGRAMS = test-harness \
-                \
-                t_ll_init t_ll_add t_ll_move t_ll_remove t_ll_find \
-                t_ll_iter t_ll_flush t_le_init \
-                \
-                t_ht_init t_ht_addfind t_ht_move t_ht_remove t_ht_iter \
-                t_ht_flush t_ht_resize t_ht_free t_he_init \
-                \
-                t_st_init
-
-
-test_harness_SOURCES = test-harness.c
-TEST_OPTIONS = 
-
-t_ll_init_SOURCES = t_ll_init.c
-t_ll_init_LDADD = ../libdbprim.la
-t_ll_init_LDFLAGS = -static
-
-t_ll_add_SOURCES = t_ll_add.c
-t_ll_add_LDADD = ../libdbprim.la
-t_ll_add_LDFLAGS = -static
-
-t_ll_move_SOURCES = t_ll_move.c
-t_ll_move_LDADD = ../libdbprim.la
-t_ll_move_LDFLAGS = -static
-
-t_ll_remove_SOURCES = t_ll_remove.c
-t_ll_remove_LDADD = ../libdbprim.la
-t_ll_remove_LDFLAGS = -static
-
-t_ll_find_SOURCES = t_ll_find.c
-t_ll_find_LDADD = ../libdbprim.la
-t_ll_find_LDFLAGS = -static
-
-t_ll_iter_SOURCES = t_ll_iter.c
-t_ll_iter_LDADD = ../libdbprim.la
-t_ll_iter_LDFLAGS = -static
-
-t_ll_flush_SOURCES = t_ll_flush.c
-t_ll_flush_LDADD = ../libdbprim.la
-t_ll_flush_LDFLAGS = -static
-
-t_le_init_SOURCES = t_le_init.c
-t_le_init_LDADD = ../libdbprim.la
-t_le_init_LDFLAGS = -static
-
-t_ht_init_SOURCES = t_ht_init.c
-t_ht_init_LDADD = ../libdbprim.la
-t_ht_init_LDFLAGS = -static
-
-t_ht_addfind_SOURCES = t_ht_addfind.c
-t_ht_addfind_LDADD = ../libdbprim.la
-t_ht_addfind_LDFLAGS = -static
-
-t_ht_move_SOURCES = t_ht_move.c
-t_ht_move_LDADD = ../libdbprim.la
-t_ht_move_LDFLAGS = -static
-
-t_ht_remove_SOURCES = t_ht_remove.c
-t_ht_remove_LDADD = ../libdbprim.la
-t_ht_remove_LDFLAGS = -static
-
-t_ht_iter_SOURCES = t_ht_iter.c
-t_ht_iter_LDADD = ../libdbprim.la
-t_ht_iter_LDFLAGS = -static
-
-t_ht_flush_SOURCES = t_ht_flush.c
-t_ht_flush_LDADD = ../libdbprim.la
-t_ht_flush_LDFLAGS = -static
-
-t_ht_resize_SOURCES = t_ht_resize.c
-t_ht_resize_LDADD = ../libdbprim.la
-t_ht_resize_LDFLAGS = -static
-
-t_ht_free_SOURCES = t_ht_free.c
-t_ht_free_LDADD = ../libdbprim.la
-t_ht_free_LDFLAGS = -static
-
-t_he_init_SOURCES = t_he_init.c
-t_he_init_LDADD = ../libdbprim.la
-t_he_init_LDFLAGS = -static
-
-t_st_init_SOURCES = t_st_init.c
-t_st_init_LDADD = ../libdbprim.la
-t_st_init_LDFLAGS = -static
-
-EXTRA_DIST = test-harness.dat
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_CLEAN_FILES = 
-
-DEFS = @DEFS@ -I. -I$(srcdir) 
-CPPFLAGS = @CPPFLAGS@
-LDFLAGS = @LDFLAGS@
-LIBS = @LIBS@
-test_harness_OBJECTS =  test-harness.$(OBJEXT)
-test_harness_LDADD = $(LDADD)
-test_harness_DEPENDENCIES = 
-test_harness_LDFLAGS = 
-t_ll_init_OBJECTS =  t_ll_init.$(OBJEXT)
-t_ll_init_DEPENDENCIES =  ../libdbprim.la
-t_ll_add_OBJECTS =  t_ll_add.$(OBJEXT)
-t_ll_add_DEPENDENCIES =  ../libdbprim.la
-t_ll_move_OBJECTS =  t_ll_move.$(OBJEXT)
-t_ll_move_DEPENDENCIES =  ../libdbprim.la
-t_ll_remove_OBJECTS =  t_ll_remove.$(OBJEXT)
-t_ll_remove_DEPENDENCIES =  ../libdbprim.la
-t_ll_find_OBJECTS =  t_ll_find.$(OBJEXT)
-t_ll_find_DEPENDENCIES =  ../libdbprim.la
-t_ll_iter_OBJECTS =  t_ll_iter.$(OBJEXT)
-t_ll_iter_DEPENDENCIES =  ../libdbprim.la
-t_ll_flush_OBJECTS =  t_ll_flush.$(OBJEXT)
-t_ll_flush_DEPENDENCIES =  ../libdbprim.la
-t_le_init_OBJECTS =  t_le_init.$(OBJEXT)
-t_le_init_DEPENDENCIES =  ../libdbprim.la
-t_ht_init_OBJECTS =  t_ht_init.$(OBJEXT)
-t_ht_init_DEPENDENCIES =  ../libdbprim.la
-t_ht_addfind_OBJECTS =  t_ht_addfind.$(OBJEXT)
-t_ht_addfind_DEPENDENCIES =  ../libdbprim.la
-t_ht_move_OBJECTS =  t_ht_move.$(OBJEXT)
-t_ht_move_DEPENDENCIES =  ../libdbprim.la
-t_ht_remove_OBJECTS =  t_ht_remove.$(OBJEXT)
-t_ht_remove_DEPENDENCIES =  ../libdbprim.la
-t_ht_iter_OBJECTS =  t_ht_iter.$(OBJEXT)
-t_ht_iter_DEPENDENCIES =  ../libdbprim.la
-t_ht_flush_OBJECTS =  t_ht_flush.$(OBJEXT)
-t_ht_flush_DEPENDENCIES =  ../libdbprim.la
-t_ht_resize_OBJECTS =  t_ht_resize.$(OBJEXT)
-t_ht_resize_DEPENDENCIES =  ../libdbprim.la
-t_ht_free_OBJECTS =  t_ht_free.$(OBJEXT)
-t_ht_free_DEPENDENCIES =  ../libdbprim.la
-t_he_init_OBJECTS =  t_he_init.$(OBJEXT)
-t_he_init_DEPENDENCIES =  ../libdbprim.la
-t_st_init_OBJECTS =  t_st_init.$(OBJEXT)
-t_st_init_DEPENDENCIES =  ../libdbprim.la
-CFLAGS = @CFLAGS@
-COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
-DIST_COMMON =  Makefile.am Makefile.in
-
-
-DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
-
-TAR = gtar
-GZIP_ENV = --best
-SOURCES = $(test_harness_SOURCES) $(t_ll_init_SOURCES) $(t_ll_add_SOURCES) $(t_ll_move_SOURCES) $(t_ll_remove_SOURCES) $(t_ll_find_SOURCES) $(t_ll_iter_SOURCES) $(t_ll_flush_SOURCES) $(t_le_init_SOURCES) $(t_ht_init_SOURCES) $(t_ht_addfind_SOURCES) $(t_ht_move_SOURCES) $(t_ht_remove_SOURCES) $(t_ht_iter_SOURCES) $(t_ht_flush_SOURCES) $(t_ht_resize_SOURCES) $(t_ht_free_SOURCES) $(t_he_init_SOURCES) $(t_st_init_SOURCES)
-OBJECTS = $(test_harness_OBJECTS) $(t_ll_init_OBJECTS) $(t_ll_add_OBJECTS) $(t_ll_move_OBJECTS) $(t_ll_remove_OBJECTS) $(t_ll_find_OBJECTS) $(t_ll_iter_OBJECTS) $(t_ll_flush_OBJECTS) $(t_le_init_OBJECTS) $(t_ht_init_OBJECTS) $(t_ht_addfind_OBJECTS) $(t_ht_move_OBJECTS) $(t_ht_remove_OBJECTS) $(t_ht_iter_OBJECTS) $(t_ht_flush_OBJECTS) $(t_ht_resize_OBJECTS) $(t_ht_free_OBJECTS) $(t_he_init_OBJECTS) $(t_st_init_OBJECTS)
-
-all: all-redirect
-.SUFFIXES:
-.SUFFIXES: .S .c .lo .o .obj .s
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
-       cd $(top_srcdir) && $(AUTOMAKE) --foreign --include-deps tests/Makefile
-
-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
-       cd $(top_builddir) \
-         && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-
-.c.o:
-       $(COMPILE) -c $<
-
-# FIXME: We should only use cygpath when building on Windows,
-# and only if it is available.
-.c.obj:
-       $(COMPILE) -c `cygpath -w $<`
-
-.s.o:
-       $(COMPILE) -c $<
-
-.S.o:
-       $(COMPILE) -c $<
-
-mostlyclean-compile:
-       -rm -f *.o core *.core
-       -rm -f *.$(OBJEXT)
-
-clean-compile:
-
-distclean-compile:
-       -rm -f *.tab.c
-
-maintainer-clean-compile:
-
-.c.lo:
-       $(LIBTOOL) --mode=compile $(COMPILE) -c $<
-
-.s.lo:
-       $(LIBTOOL) --mode=compile $(COMPILE) -c $<
-
-.S.lo:
-       $(LIBTOOL) --mode=compile $(COMPILE) -c $<
-
-mostlyclean-libtool:
-       -rm -f *.lo
-
-clean-libtool:
-       -rm -rf .libs _libs
-
-distclean-libtool:
-
-maintainer-clean-libtool:
-
-test-harness$(EXEEXT): $(test_harness_OBJECTS) $(test_harness_DEPENDENCIES)
-       @rm -f test-harness$(EXEEXT)
-       $(LINK) $(test_harness_LDFLAGS) $(test_harness_OBJECTS) $(test_harness_LDADD) $(LIBS)
-
-t_ll_init$(EXEEXT): $(t_ll_init_OBJECTS) $(t_ll_init_DEPENDENCIES)
-       @rm -f t_ll_init$(EXEEXT)
-       $(LINK) $(t_ll_init_LDFLAGS) $(t_ll_init_OBJECTS) $(t_ll_init_LDADD) $(LIBS)
-
-t_ll_add$(EXEEXT): $(t_ll_add_OBJECTS) $(t_ll_add_DEPENDENCIES)
-       @rm -f t_ll_add$(EXEEXT)
-       $(LINK) $(t_ll_add_LDFLAGS) $(t_ll_add_OBJECTS) $(t_ll_add_LDADD) $(LIBS)
-
-t_ll_move$(EXEEXT): $(t_ll_move_OBJECTS) $(t_ll_move_DEPENDENCIES)
-       @rm -f t_ll_move$(EXEEXT)
-       $(LINK) $(t_ll_move_LDFLAGS) $(t_ll_move_OBJECTS) $(t_ll_move_LDADD) $(LIBS)
-
-t_ll_remove$(EXEEXT): $(t_ll_remove_OBJECTS) $(t_ll_remove_DEPENDENCIES)
-       @rm -f t_ll_remove$(EXEEXT)
-       $(LINK) $(t_ll_remove_LDFLAGS) $(t_ll_remove_OBJECTS) $(t_ll_remove_LDADD) $(LIBS)
-
-t_ll_find$(EXEEXT): $(t_ll_find_OBJECTS) $(t_ll_find_DEPENDENCIES)
-       @rm -f t_ll_find$(EXEEXT)
-       $(LINK) $(t_ll_find_LDFLAGS) $(t_ll_find_OBJECTS) $(t_ll_find_LDADD) $(LIBS)
-
-t_ll_iter$(EXEEXT): $(t_ll_iter_OBJECTS) $(t_ll_iter_DEPENDENCIES)
-       @rm -f t_ll_iter$(EXEEXT)
-       $(LINK) $(t_ll_iter_LDFLAGS) $(t_ll_iter_OBJECTS) $(t_ll_iter_LDADD) $(LIBS)
-
-t_ll_flush$(EXEEXT): $(t_ll_flush_OBJECTS) $(t_ll_flush_DEPENDENCIES)
-       @rm -f t_ll_flush$(EXEEXT)
-       $(LINK) $(t_ll_flush_LDFLAGS) $(t_ll_flush_OBJECTS) $(t_ll_flush_LDADD) $(LIBS)
-
-t_le_init$(EXEEXT): $(t_le_init_OBJECTS) $(t_le_init_DEPENDENCIES)
-       @rm -f t_le_init$(EXEEXT)
-       $(LINK) $(t_le_init_LDFLAGS) $(t_le_init_OBJECTS) $(t_le_init_LDADD) $(LIBS)
-
-t_ht_init$(EXEEXT): $(t_ht_init_OBJECTS) $(t_ht_init_DEPENDENCIES)
-       @rm -f t_ht_init$(EXEEXT)
-       $(LINK) $(t_ht_init_LDFLAGS) $(t_ht_init_OBJECTS) $(t_ht_init_LDADD) $(LIBS)
-
-t_ht_addfind$(EXEEXT): $(t_ht_addfind_OBJECTS) $(t_ht_addfind_DEPENDENCIES)
-       @rm -f t_ht_addfind$(EXEEXT)
-       $(LINK) $(t_ht_addfind_LDFLAGS) $(t_ht_addfind_OBJECTS) $(t_ht_addfind_LDADD) $(LIBS)
-
-t_ht_move$(EXEEXT): $(t_ht_move_OBJECTS) $(t_ht_move_DEPENDENCIES)
-       @rm -f t_ht_move$(EXEEXT)
-       $(LINK) $(t_ht_move_LDFLAGS) $(t_ht_move_OBJECTS) $(t_ht_move_LDADD) $(LIBS)
-
-t_ht_remove$(EXEEXT): $(t_ht_remove_OBJECTS) $(t_ht_remove_DEPENDENCIES)
-       @rm -f t_ht_remove$(EXEEXT)
-       $(LINK) $(t_ht_remove_LDFLAGS) $(t_ht_remove_OBJECTS) $(t_ht_remove_LDADD) $(LIBS)
-
-t_ht_iter$(EXEEXT): $(t_ht_iter_OBJECTS) $(t_ht_iter_DEPENDENCIES)
-       @rm -f t_ht_iter$(EXEEXT)
-       $(LINK) $(t_ht_iter_LDFLAGS) $(t_ht_iter_OBJECTS) $(t_ht_iter_LDADD) $(LIBS)
-
-t_ht_flush$(EXEEXT): $(t_ht_flush_OBJECTS) $(t_ht_flush_DEPENDENCIES)
-       @rm -f t_ht_flush$(EXEEXT)
-       $(LINK) $(t_ht_flush_LDFLAGS) $(t_ht_flush_OBJECTS) $(t_ht_flush_LDADD) $(LIBS)
-
-t_ht_resize$(EXEEXT): $(t_ht_resize_OBJECTS) $(t_ht_resize_DEPENDENCIES)
-       @rm -f t_ht_resize$(EXEEXT)
-       $(LINK) $(t_ht_resize_LDFLAGS) $(t_ht_resize_OBJECTS) $(t_ht_resize_LDADD) $(LIBS)
-
-t_ht_free$(EXEEXT): $(t_ht_free_OBJECTS) $(t_ht_free_DEPENDENCIES)
-       @rm -f t_ht_free$(EXEEXT)
-       $(LINK) $(t_ht_free_LDFLAGS) $(t_ht_free_OBJECTS) $(t_ht_free_LDADD) $(LIBS)
-
-t_he_init$(EXEEXT): $(t_he_init_OBJECTS) $(t_he_init_DEPENDENCIES)
-       @rm -f t_he_init$(EXEEXT)
-       $(LINK) $(t_he_init_LDFLAGS) $(t_he_init_OBJECTS) $(t_he_init_LDADD) $(LIBS)
-
-t_st_init$(EXEEXT): $(t_st_init_OBJECTS) $(t_st_init_DEPENDENCIES)
-       @rm -f t_st_init$(EXEEXT)
-       $(LINK) $(t_st_init_LDFLAGS) $(t_st_init_OBJECTS) $(t_st_init_LDADD) $(LIBS)
-
-tags: TAGS
-
-ID: $(HEADERS) $(SOURCES) $(LISP)
-       list='$(SOURCES) $(HEADERS)'; \
-       unique=`for i in $$list; do echo $$i; done | \
-         awk '    { files[$$0] = 1; } \
-              END { for (i in files) print i; }'`; \
-       here=`pwd` && cd $(srcdir) \
-         && mkid -f$$here/ID $$unique $(LISP)
-
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) $(LISP)
-       tags=; \
-       here=`pwd`; \
-       list='$(SOURCES) $(HEADERS)'; \
-       unique=`for i in $$list; do echo $$i; done | \
-         awk '    { files[$$0] = 1; } \
-              END { for (i in files) print i; }'`; \
-       test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
-         || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
-
-mostlyclean-tags:
-
-clean-tags:
-
-distclean-tags:
-       -rm -f TAGS ID
-
-maintainer-clean-tags:
-
-distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
-
-subdir = tests
-
-distdir: $(DISTFILES)
-       @for file in $(DISTFILES); do \
-         d=$(srcdir); \
-         if test -d $$d/$$file; then \
-           cp -pr $$d/$$file $(distdir)/$$file; \
-         else \
-           test -f $(distdir)/$$file \
-           || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
-           || cp -p $$d/$$file $(distdir)/$$file || :; \
-         fi; \
-       done
-t_he_init.o: t_he_init.c ../dbprim.h
-t_ht_addfind.o: t_ht_addfind.c ../dbprim.h ../dbprim_int.h
-t_ht_flush.o: t_ht_flush.c ../dbprim.h ../dbprim_int.h
-t_ht_free.o: t_ht_free.c ../dbprim.h ../dbprim_int.h
-t_ht_init.o: t_ht_init.c ../dbprim.h
-t_ht_iter.o: t_ht_iter.c ../dbprim.h ../dbprim_int.h
-t_ht_move.o: t_ht_move.c ../dbprim.h ../dbprim_int.h
-t_ht_remove.o: t_ht_remove.c ../dbprim.h ../dbprim_int.h
-t_ht_resize.o: t_ht_resize.c ../dbprim.h ../dbprim_int.h
-t_le_init.o: t_le_init.c ../dbprim.h
-t_ll_add.o: t_ll_add.c ../dbprim.h
-t_ll_find.o: t_ll_find.c ../dbprim.h
-t_ll_flush.o: t_ll_flush.c ../dbprim.h
-t_ll_init.o: t_ll_init.c ../dbprim.h
-t_ll_iter.o: t_ll_iter.c ../dbprim.h
-t_ll_move.o: t_ll_move.c ../dbprim.h
-t_ll_remove.o: t_ll_remove.c ../dbprim.h
-t_st_init.o: t_st_init.c ../dbprim.h
-test-harness.o: test-harness.c
-
-info-am:
-info: info-am
-dvi-am:
-dvi: dvi-am
-check-am: all-am
-check: check-am
-installcheck-am:
-installcheck: installcheck-am
-install-exec-am:
-install-exec: install-exec-am
-
-install-data-am:
-install-data: install-data-am
-
-install-am: all-am
-       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-install: install-am
-uninstall-am:
-uninstall: uninstall-am
-all-am: Makefile
-all-redirect: all-am
-install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
-installdirs:
-
-
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-       -rm -f Makefile $(CONFIG_CLEAN_FILES)
-       -rm -f config.cache config.log stamp-h stamp-h[0-9]*
-
-maintainer-clean-generic:
-mostlyclean-am:  mostlyclean-compile mostlyclean-libtool \
-               mostlyclean-tags mostlyclean-generic
-
-mostlyclean: mostlyclean-am
-
-clean-am:  clean-compile clean-libtool clean-tags clean-generic \
-               mostlyclean-am
-
-clean: clean-am
-
-distclean-am:  distclean-compile distclean-libtool distclean-tags \
-               distclean-generic clean-am
-       -rm -f libtool
-
-distclean: distclean-am
-
-maintainer-clean-am:  maintainer-clean-compile maintainer-clean-libtool \
-               maintainer-clean-tags maintainer-clean-generic \
-               distclean-am
-       @echo "This command is intended for maintainers to use;"
-       @echo "it deletes files that may require special tools to rebuild."
-
-maintainer-clean: maintainer-clean-am
-
-.PHONY: mostlyclean-compile distclean-compile clean-compile \
-maintainer-clean-compile mostlyclean-libtool distclean-libtool \
-clean-libtool maintainer-clean-libtool tags mostlyclean-tags \
-distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
-dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
-install-exec install-data-am install-data install-am install \
-uninstall-am uninstall all-redirect all-am all installdirs \
-mostlyclean-generic distclean-generic clean-generic \
-maintainer-clean-generic clean mostlyclean distclean maintainer-clean
-
-
-check: $(EXTRA_PROGRAMS)
-       ./test-harness -I. -I$(srcdir) $(TEST_OPTIONS)
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/libs/dbprim/tests/t_he_init.c b/libs/dbprim/tests/t_he_init.c
deleted file mode 100644 (file)
index c4e6c67..0000000
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
-** Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-**
-** This library is free software; you can redistribute it and/or
-** modify it under the terms of the GNU Library General Public
-** License as published by the Free Software Foundation; either
-** version 2 of the License, or (at your option) any later version.
-**
-** This library 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
-** Library General Public License for more details.
-**
-** You should have received a copy of the GNU Library General Public
-** License along with this library; if not, write to the Free
-** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-** MA 02111-1307, USA
-**
-** @(#)$Id$
-*/
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "dbprim.h"
-
-#define OBJECT (void *)0x91827364
-#define DEADINT        0xdeadbeef
-#define DEADPTR        (void *)0xdeadbeef
-
-static void
-check_init(hash_entry_t *entry, char *how)
-{
-  if (entry->he_magic != HASH_ENTRY_MAGIC) /* Verify magic was set */
-    printf("FAIL/%s_magic:Initialization failed to set magic number\n", how);
-  else
-    printf("PASS/%s_magic:Initialization set magic number properly\n", how);
-
-  if (!le_verify(&entry->he_elem)) /* verify element was initialized */
-    printf("FAIL/%s_elem:Initialization failed to initialize linked list "
-          "element\n", how);
-  else
-    printf("PASS/%s_elem:Initialization initialized linked list element\n",
-          how);
-
-  if (entry->he_table != 0) /* verify table was cleared */
-    printf("FAIL/%s_table:Initialization failed to clear table\n", how);
-  else
-    printf("PASS/%s_table:Initialization set table to 0\n", how);
-
-  if (entry->he_hash != 0) /* verify hash value was cleared */
-    printf("FAIL/%s_hash:Initialization failed to clear hash value\n", how);
-  else
-    printf("PASS/%s_hash:Initialization set hash value to 0\n", how);
-
-  if (dk_key(&entry->he_key) != 0) /* verify key value was cleared */
-    printf("FAIL/%s_key:Initialization failed to clear database key\n", how);
-  else
-    printf("PASS/%s_key:Initialization set database key to 0\n", how);
-
-  if (dk_len(&entry->he_key) != 0) /* verify key length was cleared */
-    printf("FAIL/%s_keylen:Initialization failed to clear database key "
-          "length\n", how);
-  else
-    printf("PASS/%s_keylen:Initialization set database key length to 0\n",
-          how);
-
-  if (entry->he_value != OBJECT) /* verify value was set properly */
-    printf("FAIL/%s_value:Initialization failed to set value\n", how);
-  else
-    printf("PASS/%s_value:Initialization set value properly\n", how);
-}
-
-/* Check return value of operation and report PASS/FAIL */
-static void
-check_result(unsigned long result, unsigned long expected, char *test,
-            char *info, int die)
-{
-  if (result != expected) {
-    printf("FAIL/%s:%s incorrectly returned %lu (expected %lu)\n", test, info,
-          result, expected);
-    if (die)
-      exit(0);
-  } else
-    printf("PASS/%s:%s correctly returned %lu\n", test, info, result);
-}
-
-int
-main(int argc, char **argv)
-{
-  hash_entry_t entry = HASH_ENTRY_INIT(OBJECT);
-
-  /* Check that the static initializer produces a passable structure */
-  check_init(&entry, "he_static");
-
-  /* now, check what he_init does with bad arguments */
-  check_result(he_init(0, 0), DB_ERR_BADARGS, "he_init_noargs",
-              "he_init() with no valid arguments", 0);
-
-  /* Scramble the structure */
-  entry.he_magic = DEADINT;
-  entry.he_elem.le_magic = DEADINT;
-  entry.he_table = DEADPTR;
-  entry.he_hash = DEADINT;
-  entry.he_key.dk_key = DEADPTR;
-  entry.he_key.dk_len = DEADINT;
-  entry.he_value = DEADPTR;
-
-  /* Now try to initialize our structure and see what happens */
-  check_result(he_init(&entry, OBJECT), 0, "he_dynamic",
-              "he_init() to dynamically initialize hash entry", 0);
-
-  /* Finally, verify initialization */
-  check_init(&entry, "he_dynamic");
-
-  return 0;
-}
diff --git a/libs/dbprim/tests/t_ht_addfind.c b/libs/dbprim/tests/t_ht_addfind.c
deleted file mode 100644 (file)
index 23735ed..0000000
+++ /dev/null
@@ -1,177 +0,0 @@
-/*
-** Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-**
-** This library is free software; you can redistribute it and/or
-** modify it under the terms of the GNU Library General Public
-** License as published by the Free Software Foundation; either
-** version 2 of the License, or (at your option) any later version.
-**
-** This library 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
-** Library General Public License for more details.
-**
-** You should have received a copy of the GNU Library General Public
-** License along with this library; if not, write to the Free
-** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-** MA 02111-1307, USA
-**
-** @(#)$Id$
-*/
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "dbprim.h"
-#include "dbprim_int.h"
-
-#define TABLE0 (void *)0x76543210
-#define TABLE1 (void *)0x87654321
-
-#define OBJECT0 (void *)0x01234567
-#define OBJECT1 (void *)0x12345678
-#define OBJECT2 (void *)0x23456789
-#define OBJECT3 (void *)0x3456789a
-#define OBJECT4 (void *)0x456789ab
-#define OBJECT5 (void *)0x56789abc
-
-#define DEADINT        0xdeadbeef
-#define DEADPTR        (void *)0xdeadbeef
-
-/* Check return value of add operation and report PASS/FAIL */
-static void
-check_result(unsigned long result, unsigned long expected, char *test,
-            char *info, int die)
-{
-  if (result != expected) {
-    printf("FAIL/%s:%s incorrectly returned %lu (expected %lu)\n", test, info,
-          result, expected);
-    if (die)
-      exit(0);
-  } else
-    printf("PASS/%s:%s correctly returned %lu\n", test, info, result);
-}
-
-static unsigned long
-check_func(hash_table_t *table, db_key_t *key)
-{
-  return dk_len(key);
-}
-
-static unsigned long
-check_comp(hash_table_t *table, db_key_t *key1, db_key_t *key2)
-{
-  return (!(dk_len(key1) == dk_len(key2) && dk_key(key1) == dk_key(key2)));
-}
-
-int
-main(int argc, char **argv)
-{
-  hash_table_t table[] = { /* some tables to operate on */
-    HASH_TABLE_INIT(0, check_func, check_comp, 0, TABLE0),
-    HASH_TABLE_INIT(0, check_func, check_comp, 0, TABLE1),
-    { DEADINT, DEADINT, DEADINT, DEADINT, DEADINT, DEADINT, DEADPTR,
-      (hash_func_t)DEADPTR, (hash_comp_t)DEADPTR, (hash_resize_t)DEADPTR,
-      DEADPTR } /* table[2] */
-  };
-  hash_entry_t entry[] = { /* some entries to operate on */
-    HASH_ENTRY_INIT(OBJECT0),
-    HASH_ENTRY_INIT(OBJECT1),
-    HASH_ENTRY_INIT(OBJECT2),
-    HASH_ENTRY_INIT(OBJECT3),
-    HASH_ENTRY_INIT(OBJECT4),
-    HASH_ENTRY_INIT(OBJECT5),
-    { DEADINT, { DEADINT, DEADPTR, DEADPTR, DEADPTR, DEADPTR, DEADINT },
-      DEADPTR, DEADINT, { DEADPTR, DEADINT }, DEADPTR } /* entry[6] */
-  };
-  hash_entry_t *entry_p;
-  db_key_t key[] = { /* some keys... */
-    DB_KEY_INIT("obj0", 0),
-    DB_KEY_INIT("obj1", 1),
-    DB_KEY_INIT("obj2", 2),
-    DB_KEY_INIT("obj3", 3),
-    DB_KEY_INIT("obj4", 4),
-    DB_KEY_INIT("obj5", 5),
-    DB_KEY_INIT("obj6", 6)
-  };
-
-  /* initialize the tables with a size */
-  if (ht_init(&table[0], 0, check_func, check_comp, 0, TABLE0, 7) ||
-      ht_init(&table[1], 0, check_func, check_comp, 0, TABLE1, 7))
-    return -1; /* failed to initialize test */
-
-  /* Check ht_find()'s handling of bad arguments */
-  check_result(ht_find(0, 0, 0), DB_ERR_BADARGS, "ht_find_noargs",
-              "ht_find() with no valid arguments", 0);
-  check_result(ht_find(&table[2], 0, &key[6]), DB_ERR_BADARGS,
-              "ht_find_badtable", "ht_find() with bad table", 0);
-  check_result(ht_find(&table[0], 0, 0), DB_ERR_BADARGS,
-              "ht_find_badkey", "ht_find() with bad key", 0);
-
-  /* Check if empty tables return DB_ERR_NOENTRY */
-  check_result(ht_find(&table[0], 0, &key[6]), DB_ERR_NOENTRY,
-              "ht_find_emptytable", "ht_find() with empty table", 1);
-
-  /* Check ht_add()'s handling of bad arguments */
-  check_result(ht_add(0, 0, 0), DB_ERR_BADARGS, "ht_add_noargs",
-              "ht_add() with no valid arguments", 0);
-  check_result(ht_add(&table[2], &entry[0], &key[0]), DB_ERR_BADARGS,
-              "ht_add_badtable", "ht_add() with bad table", 1);
-  check_result(ht_add(&table[0], &entry[6], &key[6]), DB_ERR_BADARGS,
-              "ht_add_badentry", "ht_add() with bad entry", 1);
-  check_result(ht_add(&table[0], &entry[0], 0), DB_ERR_BADARGS, "ht_add_nokey",
-              "ht_add() with no key", 1);
-
-  /* Freeze the table temporarily */
-  ht_flags(&table[0]) |= HASH_FLAG_FREEZE;
-  /* Check adds to frozen tables */
-  check_result(ht_add(&table[0], &entry[0], &key[0]), DB_ERR_FROZEN,
-              "ht_add_frozen", "ht_add() on frozen table", 1);
-  /* Unfreeze the table */
-  ht_flags(&table[0]) &= ~HASH_FLAG_FREEZE;
-
-  /* Add an element to a hash table */
-  check_result(ht_add(&table[1], &entry[5], &key[5]), 0, "ht_add_t1e5",
-              "Add entry 5 to table 1", 1);
-
-  /* Now try to add the same element to another hash table */
-  check_result(ht_add(&table[0], &entry[5], &key[5]), DB_ERR_BUSY,
-              "ht_add_busy", "Add busy entry 5 to table 0", 1);
-
-  /* Try ht_find() to see if it can find elements */
-  check_result(ht_find(&table[1], &entry_p, &key[5]), 0, "ht_find_t1e5",
-              "Look up entry 5 in table 1", 1);
-  if (entry_p != &entry[5]) {
-    printf("FAIL/ht_find_t1e5_entry:Attempt to look up entry 5 retrieved "
-          "%p (correct answer is %p)\n", (void *)entry_p, (void *)&entry[5]);
-    return 0;
-  } else
-    printf("PASS/ht_find_t1e5_entry:Retrieved correct entry %p\n",
-          (void *)entry_p);
-
-  /* Try looking up an element that isn't there in a populated table */
-  check_result(ht_find(&table[1], 0, &key[6]), DB_ERR_NOENTRY,
-              "ht_find_t1e6", "Look up non-existant entry 5 in table 1", 1);
-
-  /* Now we know that ht_find() works properly--finish testing ht_add() */
-  check_result(ht_add(&table[1], &entry[0], &key[5]), DB_ERR_DUPLICATE,
-              "ht_add_duplicate", "Attempt to add duplicate entry to table",
-              1);
-
-  /* Now try adding several entries to the table */
-  check_result(ht_add(&table[0], &entry[0], &key[0]), 0, "ht_add_t0e0",
-              "Add entry 0 to table 0", 1);
-  check_result(ht_add(&table[0], &entry[1], &key[1]), 0, "ht_add_t0e1",
-              "Add entry 1 to table 0", 1);
-  check_result(ht_add(&table[0], &entry[2], &key[2]), 0, "ht_add_t0e2",
-              "Add entry 2 to table 0", 1);
-  check_result(ht_add(&table[0], &entry[3], &key[3]), 0, "ht_add_t0e3",
-              "Add entry 3 to table 0", 1);
-  check_result(ht_add(&table[0], &entry[4], &key[4]), 0, "ht_add_t0e4",
-              "Add entry 4 to table 0", 1);
-
-  /* Check to see if an element can be found */
-  check_result(ht_find(&table[0], 0, &key[2]), 0, "ht_find_t0e2",
-              "Find entry 2 in table 0", 1);
-
-  return 0;
-}
diff --git a/libs/dbprim/tests/t_ht_flush.c b/libs/dbprim/tests/t_ht_flush.c
deleted file mode 100644 (file)
index e373553..0000000
+++ /dev/null
@@ -1,204 +0,0 @@
-/*
-** Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-**
-** This library is free software; you can redistribute it and/or
-** modify it under the terms of the GNU Library General Public
-** License as published by the Free Software Foundation; either
-** version 2 of the License, or (at your option) any later version.
-**
-** This library 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
-** Library General Public License for more details.
-**
-** You should have received a copy of the GNU Library General Public
-** License along with this library; if not, write to the Free
-** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-** MA 02111-1307, USA
-**
-** @(#)$Id$
-*/
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "dbprim.h"
-#include "dbprim_int.h"
-
-#define TABLE0 (void *)0x76543210
-#define TABLE1 (void *)0x87654321
-
-#define OBJECT0 (void *)0x01234567
-#define OBJECT1 (void *)0x12345678
-#define OBJECT2 (void *)0x23456789
-#define OBJECT3 (void *)0x3456789a
-#define OBJECT4 (void *)0x456789ab
-#define OBJECT5 (void *)0x56789abc
-#define OBJECT6 (void *)0x6789abcd
-#define OBJECT7 (void *)0x789abcde
-
-#define DEADINT        0xdeadbeef
-#define DEADPTR        (void *)0xdeadbeef
-
-struct flushcheck {
-  hash_table_t *ent_table;
-  hash_entry_t *ent_array;
-  unsigned int ent_mask;
-};
-
-#define BIT(n) (1 << (n))
-#define BITMASK        0x0000000f
-
-/* Check return value of add operation and report PASS/FAIL */
-static void
-check_result(unsigned long result, unsigned long expected, char *test,
-            char *info, int die)
-{
-  if (result != expected) {
-    printf("FAIL/%s:%s incorrectly returned %lu (expected %lu)\n", test, info,
-          result, expected);
-    if (die)
-      exit(0);
-  } else
-    printf("PASS/%s:%s correctly returned %lu\n", test, info, result);
-}
-
-static unsigned long
-check_func(hash_table_t *table, db_key_t *key)
-{
-  return dk_len(key);
-}
-
-static unsigned long
-check_comp(hash_table_t *table, db_key_t *key1, db_key_t *key2)
-{
-  return (!(dk_len(key1) == dk_len(key2) && dk_key(key1) == dk_key(key2)));
-}
-
-static unsigned long
-check_flush(hash_table_t *table, hash_entry_t *ent, void *extra)
-{
-  struct flushcheck *itcheck;
-
-  itcheck = extra;
-
-  /* OK, verify that the hash table is the same as the one we expect */
-  if (table != itcheck->ent_table)
-    printf("FAIL/ht_flush_functab_e%d:Hash tables do not match\n",
-          dk_len(he_key(ent)));
-  else
-    printf("PASS/ht_flush_functab_e%d:Hash tables match\n",
-          dk_len(he_key(ent)));
-
-  /* Now verify that everything matches up... */
-  if (ent != &itcheck->ent_array[dk_len(he_key(ent))])
-    printf("FAIL/ht_flush_funcent_e%d:Entries do not match\n",
-          dk_len(he_key(ent)));
-  else
-    printf("PASS/ht_flush_funcent_e%d:Entries match\n", dk_len(he_key(ent)));
-
-  /* Finally, set the visited bitmask */
-  itcheck->ent_mask |= BIT(dk_len(he_key(ent)));
-
-  return (itcheck->ent_mask & ~BIT(dk_len(he_key(ent)))) ? 0 : EINVAL;
-}
-
-static void
-check_count(hash_table_t *tab, unsigned long count, char *test, char *comment)
-{
-  if (ht_count(tab) != count)
-    printf("FAIL/%s:%s (count %ld, supposed to be %ld)\n", test, comment,
-          ht_count(tab), count);
-  else
-    printf("PASS/%s:%s (count %ld)\n", test, comment, count);
-}
-
-int
-main(int argc, char **argv)
-{
-  int i;
-  hash_table_t table[] = { /* some tables to operate on */
-    HASH_TABLE_INIT(0, check_func, check_comp, 0, TABLE0),
-    HASH_TABLE_INIT(0, check_func, check_comp, 0, TABLE1),
-    { DEADINT, DEADINT, DEADINT, DEADINT, DEADINT, DEADINT, DEADPTR,
-      (hash_func_t)DEADPTR, (hash_comp_t)DEADPTR, (hash_resize_t)DEADPTR,
-      DEADPTR } /* table[2] */
-  };
-  hash_entry_t entry[] = { /* some entries to operate on */
-    HASH_ENTRY_INIT(OBJECT0),
-    HASH_ENTRY_INIT(OBJECT1),
-    HASH_ENTRY_INIT(OBJECT2),
-    HASH_ENTRY_INIT(OBJECT3),
-    HASH_ENTRY_INIT(OBJECT4),
-    HASH_ENTRY_INIT(OBJECT5),
-    HASH_ENTRY_INIT(OBJECT6),
-    HASH_ENTRY_INIT(OBJECT7),
-  };
-  db_key_t key[] = { /* some keys... */
-    DB_KEY_INIT("obj0", 0),
-    DB_KEY_INIT("obj1", 1),
-    DB_KEY_INIT("obj2", 2),
-    DB_KEY_INIT("obj3", 3),
-    DB_KEY_INIT("obj4", 4),
-    DB_KEY_INIT("obj5", 5),
-    DB_KEY_INIT("obj6", 6),
-    DB_KEY_INIT("obj7", 7)
-  };
-  struct flushcheck itcheck = { 0, 0, 0 };
-
-  /* initialize the tables with a size */
-  if (ht_init(&table[0], 0, check_func, check_comp, 0, TABLE0, 4) ||
-      ht_init(&table[1], 0, check_func, check_comp, 0, TABLE1, 4))
-    return -1; /* failed to initialize test */
-
-  /* Add some entries to various hash tables */
-  for (i = 0; i < 4; i++)
-    if (ht_add(&table[0], &entry[i], &key[i]) ||
-       ht_add(&table[1], &entry[i + 4], &key[i + 4]))
-      return -1; /* failed to initialize test */
-
-  /* Check handling of bad arguments */
-  check_result(ht_flush(0, 0, 0), DB_ERR_BADARGS, "ht_flush_noargs",
-              "ht_flush() with no valid arguments", 0);
-  check_result(ht_flush(&table[2], check_flush, &itcheck), DB_ERR_BADARGS,
-              "ht_flush_badtable", "ht_flush() with bad table", 0);
-
-  /* Freeze the table temporarily */
-  ht_flags(&table[0]) |= HASH_FLAG_FREEZE;
-  /* check if frozen tables are excluded */
-  check_result(ht_flush(&table[0], check_flush, &itcheck), DB_ERR_FROZEN,
-              "ht_flush_frozen", "ht_flush() on frozen table", 0);
-  /* Unfreeze the table */
-  ht_flags(&table[0]) &= ~HASH_FLAG_FREEZE;
-
-  /* Check to see if ht_flush() operates properly with no flush function */
-  check_result(ht_flush(&table[1], 0, 0), 0, "ht_flush_nofunc",
-              "ht_flush() with no flush function", 0);
-  check_count(&table[1], 0, "ht_flush_nofunc_count",
-             "Check count after flush with no flush function");
-
-  /* Check to see if ht_flush() returns what the iter function returns */
-  itcheck.ent_table = &table[0];
-  itcheck.ent_array = entry;
-  itcheck.ent_mask = 0;
-  check_result(ht_flush(&table[0], check_flush, &itcheck), EINVAL,
-              "ht_flush_funcreturn",
-              "ht_flush() returning flush function return value", 0);
-  check_count(&table[0], 3, "ht_flush_funcreturn_count",
-             "Check count after flush with flush function returning error");
-
-  /* Now iterate through the list */
-  check_result(ht_flush(&table[0], check_flush, &itcheck), 0,
-              "ht_flush_function", "ht_flush() flush", 0);
-  check_count(&table[0], 0, "ht_flush_function_count",
-             "Check count after flush with flush function");
-
-  /* Did it iterate through them all? */
-  if (itcheck.ent_mask == BITMASK)
-    printf("PASS/ht_flush_func_mask:ht_flush() visited all items\n");
-  else
-    printf("FAIL/ht_flush_func_mask:ht_flush() visited only items in bitmask "
-          "0x%02x\n", itcheck.ent_mask);
-
-  return 0;
-}
diff --git a/libs/dbprim/tests/t_ht_free.c b/libs/dbprim/tests/t_ht_free.c
deleted file mode 100644 (file)
index 65775d4..0000000
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
-** Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-**
-** This library is free software; you can redistribute it and/or
-** modify it under the terms of the GNU Library General Public
-** License as published by the Free Software Foundation; either
-** version 2 of the License, or (at your option) any later version.
-**
-** This library 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
-** Library General Public License for more details.
-**
-** You should have received a copy of the GNU Library General Public
-** License along with this library; if not, write to the Free
-** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-** MA 02111-1307, USA
-**
-** @(#)$Id$
-*/
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "dbprim.h"
-#include "dbprim_int.h"
-
-#define TABLE0 (void *)0x76543210
-#define TABLE1 (void *)0x87654321
-
-#define OBJECT0 (void *)0x01234567
-#define OBJECT1 (void *)0x12345678
-#define OBJECT2 (void *)0x23456789
-#define OBJECT3 (void *)0x3456789a
-#define OBJECT4 (void *)0x456789ab
-
-#define DEADINT        0xdeadbeef
-#define DEADPTR        (void *)0xdeadbeef
-
-/* Check return value of add operation and report PASS/FAIL */
-static void
-check_result(unsigned long result, unsigned long expected, char *test,
-            char *info, int die)
-{
-  if (result != expected) {
-    printf("FAIL/%s:%s incorrectly returned %lu (expected %lu)\n", test, info,
-          result, expected);
-    if (die)
-      exit(0);
-  } else
-    printf("PASS/%s:%s correctly returned %lu\n", test, info, result);
-}
-
-static unsigned long
-check_func(hash_table_t *table, db_key_t *key)
-{
-  return dk_len(key);
-}
-
-static unsigned long
-check_comp(hash_table_t *table, db_key_t *key1, db_key_t *key2)
-{
-  return (!(dk_len(key1) == dk_len(key2) && dk_key(key1) == dk_key(key2)));
-}
-
-int
-main(int argc, char **argv)
-{
-  int i;
-  hash_table_t table[] = { /* some tables to operate on */
-    HASH_TABLE_INIT(0, check_func, check_comp, 0, TABLE0),
-    HASH_TABLE_INIT(0, check_func, check_comp, 0, TABLE1),
-    { DEADINT, DEADINT, DEADINT, DEADINT, DEADINT, DEADINT, DEADPTR,
-      (hash_func_t)DEADPTR, (hash_comp_t)DEADPTR, (hash_resize_t)DEADPTR,
-      DEADPTR } /* table[2] */
-  };
-  hash_entry_t entry[] = { /* some entries to operate on */
-    HASH_ENTRY_INIT(OBJECT0),
-    HASH_ENTRY_INIT(OBJECT1),
-    HASH_ENTRY_INIT(OBJECT2),
-    HASH_ENTRY_INIT(OBJECT3),
-    HASH_ENTRY_INIT(OBJECT4),
-  };
-  db_key_t key[] = { /* some keys... */
-    DB_KEY_INIT("obj0", 0),
-    DB_KEY_INIT("obj1", 1),
-    DB_KEY_INIT("obj2", 2),
-    DB_KEY_INIT("obj3", 3),
-    DB_KEY_INIT("obj4", 4),
-  };
-
-  /* initialize the tables with a size */
-  if (ht_init(&table[0], 0, check_func, check_comp, 0, TABLE0, 7) ||
-      ht_init(&table[1], 0, check_func, check_comp, 0, TABLE1, 7) ||
-      !table[0].ht_table || !table[1].ht_table)
-    return -1; /* failed to initialize test */
-
-  /* Add some entries to various hash tables */
-  for (i = 0; i < 5; i++)
-    if (ht_add(&table[0], &entry[i], &key[i]))
-      return -1; /* failed to initialize test */
-
-  /* Check handling of bad arguments */
-  check_result(ht_free(0), DB_ERR_BADARGS, "ht_free_noargs",
-              "ht_free() with no valid arguments", 0);
-  check_result(ht_free(&table[2]), DB_ERR_BADARGS, "ht_free_badtable",
-              "ht_free() with bad table", 0);
-
-  /* Freeze the table temporarily */
-  ht_flags(&table[1]) |= HASH_FLAG_FREEZE;
-  /* check if frozen tables are excluded */
-  check_result(ht_free(&table[1]), DB_ERR_FROZEN, "ht_free_frozen",
-              "ht_free() on frozen table", 1);
-  /* Unfreeze the table */
-  ht_flags(&table[1]) &= ~HASH_FLAG_FREEZE;
-
-  /* Check if non-empty tables are excluded */
-  check_result(ht_free(&table[0]), DB_ERR_NOTEMPTY, "ht_free_nonempty",
-              "ht_free() on non-empty table", 0);
-
-  /* OK, now try to free the table */
-  check_result(ht_free(&table[1]), 0, "ht_free_t0", "ht_free() on empty table",
-              1);
-
-  /* Verify that table pointer is now 0 */
-  if (table[1].ht_table != 0)
-    printf("FAIL/ht_free_t0_table:Table not cleared properly\n");
-  else
-    printf("PASS/ht_free_t0_table:Table properly cleared\n");
-
-  return 0;
-}
diff --git a/libs/dbprim/tests/t_ht_init.c b/libs/dbprim/tests/t_ht_init.c
deleted file mode 100644 (file)
index 0c05600..0000000
+++ /dev/null
@@ -1,199 +0,0 @@
-/*
-** Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-**
-** This library is free software; you can redistribute it and/or
-** modify it under the terms of the GNU Library General Public
-** License as published by the Free Software Foundation; either
-** version 2 of the License, or (at your option) any later version.
-**
-** This library 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
-** Library General Public License for more details.
-**
-** You should have received a copy of the GNU Library General Public
-** License along with this library; if not, write to the Free
-** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-** MA 02111-1307, USA
-**
-** @(#)$Id$
-*/
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "dbprim.h"
-
-#define DEADINT        0xdeadbeef
-#define DEADPTR        (void *)0xdeadbeef
-
-static void
-check_init(hash_table_t *table, unsigned long flags, unsigned long mod,
-          unsigned long over, unsigned long under, hash_func_t func,
-          hash_comp_t comp, void *extra, char *how)
-{
-  if (table->ht_magic != HASH_TABLE_MAGIC) /* Verify magic was set */
-    printf("FAIL/%s_magic:Initialization failed to set magic number\n", how);
-  else
-    printf("PASS/%s_magic:Initialization set magic number properly\n", how);
-
-  if (table->ht_flags != flags) /* verify flags were set */
-    printf("FAIL/%s_flags:Initialization failed to set flags\n", how);
-  else
-    printf("PASS/%s_flags:Initialization set flags properly\n", how);
-
-  if (table->ht_modulus != mod) /* verify modulus was set */
-    printf("FAIL/%s_modulus:Initialization failed to set modulus to %ld "
-          "(%ld instead)\n", how, mod, table->ht_modulus);
-  else
-    printf("PASS/%s_modulus:Initialization set modulus to %ld\n", how, mod);
-
-  if (table->ht_count != 0) /* verify count was set */
-    printf("FAIL/%s_count:Initialization failed to clear count\n", how);
-  else
-    printf("PASS/%s_count:Initialization set count to 0\n", how);
-
-  if (table->ht_rollover != over) /* verify rollover was set */
-    printf("FAIL/%s_rollover:Initialization failed to set rollover to %ld "
-          "(%ld instead)\n", how, over, table->ht_rollover);
-  else
-    printf("PASS/%s_rollover:Initialization set rollover to %ld\n", how, over);
-
-  if (table->ht_rollunder != under) /* verify rollunder was set */
-    printf("FAIL/%s_rollunder:Initialization failed to set rollunder to %ld "
-          "(%ld instead)\n", how, under, table->ht_rollunder);
-  else
-    printf("PASS/%s_rollunder:Initialization set rollunder to %ld\n", how,
-          under);
-
-  if (table->ht_func != func) /* verify func was set */
-    printf("FAIL/%s_func:Initialization failed to set func\n", how);
-  else
-    printf("PASS/%s_func:Initialization set func properly\n", how);
-
-  if (table->ht_comp != comp) /* verify comp was set */
-    printf("FAIL/%s_comp:Initialization failed to set comp\n", how);
-  else
-    printf("PASS/%s_comp:Initialization set comp properly\n", how);
-
-  if (table->ht_resize != 0) /* verify resize was set */
-    printf("FAIL/%s_rsize:Initialization failed to set resize\n", how);
-  else
-    printf("PASS/%s_rsize:Initialization set resize properly\n", how);
-
-  if (table->ht_extra != extra) /* verify extra was set */
-    printf("FAIL/%s_extra:Initialization failed to set extra\n", how);
-  else
-    printf("PASS/%s_extra:Initialization set extra properly\n", how);
-
-  if (mod == 0) {
-    if (table->ht_table != 0) /* verify that table was not allocated */
-      printf("FAIL/%s_table:Initialization failed to clear table\n", how);
-    else
-      printf("PASS/%s_table:Initialization set table to 0\n", how);
-  } else {
-    int i;
-
-    if (table->ht_table == 0) /* verify that table was not allocated */
-      printf("FAIL/%s_table:Initialization failed to set table\n", how);
-    else
-      printf("PASS/%s_table:Initialization set table properly\n", how);
-
-    for (i = 0; i < mod; i++) /* verify buckets initialized */
-      if (table->ht_table == 0 || i >= table->ht_modulus ||
-         !ll_verify(&table->ht_table[i]))
-       printf("FAIL/%s_bucket%d:Initialization failed to initialize "
-              "bucket %d\n", how, i, i);
-      else
-       printf("PASS/%s_bucket%d:Initialization initialized bucket "
-              "%d properly\n", how, i, i);
-  }
-}
-
-/* Check return value of operation and report PASS/FAIL */
-static void
-check_result(unsigned long result, unsigned long expected, char *test,
-            char *info, int die)
-{
-  if (result != expected) {
-    printf("FAIL/%s:%s incorrectly returned %lu (expected %lu)\n", test, info,
-          result, expected);
-    if (die)
-      exit(0);
-  } else
-    printf("PASS/%s:%s correctly returned %lu\n", test, info, result);
-}
-
-/* Scramble the table */
-static void
-scramble(hash_table_t *table)
-{
-  table->ht_magic = DEADINT;
-  table->ht_flags = DEADINT;
-  table->ht_modulus = DEADINT;
-  table->ht_count = DEADINT;
-  table->ht_rollover = DEADINT;
-  table->ht_rollunder = DEADINT;
-  table->ht_table = DEADPTR;
-  table->ht_func = (hash_func_t)DEADPTR;
-  table->ht_comp = (hash_comp_t)DEADPTR;
-  table->ht_extra = DEADPTR;
-}
-
-static unsigned long
-check_func(hash_table_t *table, db_key_t *key)
-{
-  return 0;
-}
-
-static unsigned long
-check_comp(hash_table_t *table, db_key_t *key1, db_key_t *key2)
-{
-  return 0;
-}
-
-int
-main(int argc, char **argv)
-{
-  unsigned long mod;
-  hash_table_t table = HASH_TABLE_INIT(0x80010000 | HASH_FLAG_AUTOGROW,
-                                      check_func, check_comp, 0, 0);
-
-  /* Check that the static initializer produces a passable structure */
-  check_init(&table, HASH_FLAG_AUTOGROW, 0, 0, 0, check_func, check_comp,
-            0, "ht_static");
-
-  /* now, check what ht_init does with bad arguments */
-  check_result(ht_init(0, 0, 0, 0, 0, 0, 0), DB_ERR_BADARGS, "ht_init_noargs",
-              "ht_init() with no valid arguments", 0);
-  check_result(ht_init(0, 0, check_func, check_comp, 0, 0, 0), DB_ERR_BADARGS,
-              "ht_init_notable", "ht_init() with no table", 0);
-  check_result(ht_init(&table, 0, 0, check_comp, 0, 0, 0), DB_ERR_BADARGS,
-              "ht_init_nofunc", "ht_init() with no hash function", 0);
-  check_result(ht_init(&table, 0, check_func, 0, 0, 0, 0), DB_ERR_BADARGS,
-              "ht_init_nocomp", "ht_init() with no comparison function", 0);
-
-  /* Scramble the structure */
-  scramble(&table);
-
-  /* Now try to initialize our structure with a 0 mod and see what happens */
-  check_result(ht_init(&table, 0x80010000 | HASH_FLAG_AUTOGROW, check_func,
-                      check_comp, 0, 0, 0), 0, "ht_dynamic_nomod",
-              "ht_init() with zero modulus", 0);
-  check_init(&table, HASH_FLAG_AUTOGROW, 0, 0, 0, check_func, check_comp,
-            0, "ht_dynamic_nomod");
-
-  /* Scramble the structure again */
-  scramble(&table);
-
-  /* Now try to initialize our structure with a non-0 mod and see what
-   * happens
-   */
-  check_result(ht_init(&table, 0x80010000 | HASH_FLAG_AUTOGROW, check_func,
-                      check_comp, 0, 0, 6), 0, "ht_dynamic_mod6",
-              "ht_init() with non-zero modulus", 0);
-  mod = 7; /* next prime after 6 */
-  check_init(&table, HASH_FLAG_AUTOGROW, mod, (mod * 4) / 3, (mod * 3) / 4,
-            check_func, check_comp, 0, "ht_dynamic_mod6");
-
-  return 0;
-}
diff --git a/libs/dbprim/tests/t_ht_iter.c b/libs/dbprim/tests/t_ht_iter.c
deleted file mode 100644 (file)
index ce8e490..0000000
+++ /dev/null
@@ -1,186 +0,0 @@
-/*
-** Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-**
-** This library is free software; you can redistribute it and/or
-** modify it under the terms of the GNU Library General Public
-** License as published by the Free Software Foundation; either
-** version 2 of the License, or (at your option) any later version.
-**
-** This library 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
-** Library General Public License for more details.
-**
-** You should have received a copy of the GNU Library General Public
-** License along with this library; if not, write to the Free
-** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-** MA 02111-1307, USA
-**
-** @(#)$Id$
-*/
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "dbprim.h"
-#include "dbprim_int.h"
-
-#define TABLE0 (void *)0x76543210
-
-#define OBJECT0 (void *)0x01234567
-#define OBJECT1 (void *)0x12345678
-#define OBJECT2 (void *)0x23456789
-#define OBJECT3 (void *)0x3456789a
-#define OBJECT4 (void *)0x456789ab
-#define OBJECT5 (void *)0x56789abc
-#define OBJECT6 (void *)0x6789abcd
-#define OBJECT7 (void *)0x789abcde
-
-#define DEADINT        0xdeadbeef
-#define DEADPTR        (void *)0xdeadbeef
-
-struct itercheck {
-  hash_table_t *ent_table;
-  hash_entry_t *ent_array;
-  unsigned int ent_mask;
-};
-
-#define BIT(n) (1 << (n))
-#define BITMASK        0x000000ff
-
-/* Check return value of add operation and report PASS/FAIL */
-static void
-check_result(unsigned long result, unsigned long expected, char *test,
-            char *info, int die)
-{
-  if (result != expected) {
-    printf("FAIL/%s:%s incorrectly returned %lu (expected %lu)\n", test, info,
-          result, expected);
-    if (die)
-      exit(0);
-  } else
-    printf("PASS/%s:%s correctly returned %lu\n", test, info, result);
-}
-
-static unsigned long
-check_func(hash_table_t *table, db_key_t *key)
-{
-  return dk_len(key);
-}
-
-static unsigned long
-check_comp(hash_table_t *table, db_key_t *key1, db_key_t *key2)
-{
-  return (!(dk_len(key1) == dk_len(key2) && dk_key(key1) == dk_key(key2)));
-}
-
-static unsigned long
-check_iter(hash_table_t *table, hash_entry_t *ent, void *extra)
-{
-  struct itercheck *itcheck;
-
-  itcheck = extra;
-
-  /* If we were told to return an error, return one */
-  if (!itcheck->ent_array)
-    return EINVAL;
-
-  /* OK, verify that the hash table is the same as the one we expect */
-  if (table != itcheck->ent_table)
-    printf("FAIL/ht_iter_functab_e%d:Hash tables do not match\n",
-          dk_len(he_key(ent)));
-  else
-    printf("PASS/ht_iter_functab_e%d:Hash tables match\n",
-          dk_len(he_key(ent)));
-
-  /* Now verify that everything matches up... */
-  if (ent != &itcheck->ent_array[dk_len(he_key(ent))])
-    printf("FAIL/ht_iter_funcent_e%d:Entries do not match\n",
-          dk_len(he_key(ent)));
-  else
-    printf("PASS/ht_iter_funcent_e%d:Entries match\n", dk_len(he_key(ent)));
-
-  /* Finally, set the visited bitmask */
-  itcheck->ent_mask |= BIT(dk_len(he_key(ent)));
-
-  return 0;
-}
-
-int
-main(int argc, char **argv)
-{
-  int i;
-  hash_table_t table[] = { /* some tables to operate on */
-    HASH_TABLE_INIT(0, check_func, check_comp, 0, TABLE0),
-    { DEADINT, DEADINT, DEADINT, DEADINT, DEADINT, DEADINT, DEADPTR,
-      (hash_func_t)DEADPTR, (hash_comp_t)DEADPTR, (hash_resize_t)DEADPTR,
-      DEADPTR } /* table[1] */
-  };
-  hash_entry_t entry[] = { /* some entries to operate on */
-    HASH_ENTRY_INIT(OBJECT0),
-    HASH_ENTRY_INIT(OBJECT1),
-    HASH_ENTRY_INIT(OBJECT2),
-    HASH_ENTRY_INIT(OBJECT3),
-    HASH_ENTRY_INIT(OBJECT4),
-    HASH_ENTRY_INIT(OBJECT5),
-    HASH_ENTRY_INIT(OBJECT6),
-    HASH_ENTRY_INIT(OBJECT7),
-  };
-  db_key_t key[] = { /* some keys... */
-    DB_KEY_INIT("obj0", 0),
-    DB_KEY_INIT("obj1", 1),
-    DB_KEY_INIT("obj2", 2),
-    DB_KEY_INIT("obj3", 3),
-    DB_KEY_INIT("obj4", 4),
-    DB_KEY_INIT("obj5", 5),
-    DB_KEY_INIT("obj6", 6),
-    DB_KEY_INIT("obj7", 7)
-  };
-  struct itercheck itcheck = { 0, 0, 0 };
-
-  /* initialize the tables with a size */
-  if (ht_init(&table[0], 0, check_func, check_comp, 0, TABLE0, 8))
-    return -1; /* failed to initialize test */
-
-  /* Add some entries to various hash tables */
-  for (i = 0; i < 8; i++)
-    if (ht_add(&table[0], &entry[i], &key[i]))
-      return -1; /* failed to initialize test */
-
-  /* Check handling of bad arguments */
-  check_result(ht_iter(0, 0, 0), DB_ERR_BADARGS, "ht_iter_noargs",
-              "ht_iter() with no valid arguments", 0);
-  check_result(ht_iter(&table[1], check_iter, &itcheck), DB_ERR_BADARGS,
-              "ht_iter_badtable", "ht_iter() with bad table", 0);
-  check_result(ht_iter(&table[0], 0, &itcheck), DB_ERR_BADARGS,
-              "ht_iter_baditer", "ht_iter() with bad iteration function", 0);
-
-  /* Freeze the table temporarily */
-  ht_flags(&table[0]) |= HASH_FLAG_FREEZE;
-  /* check if frozen tables are excluded */
-  check_result(ht_iter(&table[0], check_iter, &itcheck), DB_ERR_FROZEN,
-              "ht_iter_frozen", "ht_iter() on frozen table", 0);
-  /* Unfreeze the table */
-  ht_flags(&table[0]) &= ~HASH_FLAG_FREEZE;
-
-  /* Check to see if ht_iter() returns what the iter function returns */
-  check_result(ht_iter(&table[0], check_iter, &itcheck), EINVAL,
-              "ht_iter_funcreturn",
-              "ht_iter() returning iteration function return value", 0);
-
-  /* Now iterate through the list */
-  itcheck.ent_table = &table[0];
-  itcheck.ent_array = entry;
-  itcheck.ent_mask = 0;
-  check_result(ht_iter(&table[0], check_iter, &itcheck), 0, "ht_iter_function",
-              "ht_iter() iteration", 0);
-
-  /* Did it iterate through them all? */
-  if (itcheck.ent_mask == BITMASK)
-    printf("PASS/ht_iter_func_mask:ht_iter() visited all items\n");
-  else
-    printf("FAIL/ht_iter_func_mask:ht_iter() visited only items in bitmask "
-          "0x%02x\n", itcheck.ent_mask);
-
-  return 0;
-}
diff --git a/libs/dbprim/tests/t_ht_move.c b/libs/dbprim/tests/t_ht_move.c
deleted file mode 100644 (file)
index 7e7c6ce..0000000
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
-** Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-**
-** This library is free software; you can redistribute it and/or
-** modify it under the terms of the GNU Library General Public
-** License as published by the Free Software Foundation; either
-** version 2 of the License, or (at your option) any later version.
-**
-** This library 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
-** Library General Public License for more details.
-**
-** You should have received a copy of the GNU Library General Public
-** License along with this library; if not, write to the Free
-** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-** MA 02111-1307, USA
-**
-** @(#)$Id$
-*/
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "dbprim.h"
-#include "dbprim_int.h"
-
-#define TABLE0 (void *)0x76543210
-#define TABLE1 (void *)0x87654321
-
-#define OBJECT0 (void *)0x01234567
-#define OBJECT1 (void *)0x12345678
-#define OBJECT2 (void *)0x23456789
-#define OBJECT3 (void *)0x3456789a
-#define OBJECT4 (void *)0x456789ab
-#define OBJECT5 (void *)0x56789abc
-#define OBJECT6 (void *)0x6789abcd
-
-#define DEADINT        0xdeadbeef
-#define DEADPTR        (void *)0xdeadbeef
-
-/* Check return value of add operation and report PASS/FAIL */
-static void
-check_result(unsigned long result, unsigned long expected, char *test,
-            char *info, int die)
-{
-  if (result != expected) {
-    printf("FAIL/%s:%s incorrectly returned %lu (expected %lu)\n", test, info,
-          result, expected);
-    if (die)
-      exit(0);
-  } else
-    printf("PASS/%s:%s correctly returned %lu\n", test, info, result);
-}
-
-static unsigned long
-check_func(hash_table_t *table, db_key_t *key)
-{
-  return dk_len(key);
-}
-
-static unsigned long
-check_comp(hash_table_t *table, db_key_t *key1, db_key_t *key2)
-{
-  return (!(dk_len(key1) == dk_len(key2) && dk_key(key1) == dk_key(key2)));
-}
-
-int
-main(int argc, char **argv)
-{
-  int i;
-  hash_table_t table[] = { /* some tables to operate on */
-    HASH_TABLE_INIT(0, check_func, check_comp, 0, TABLE0),
-    HASH_TABLE_INIT(0, check_func, check_comp, 0, TABLE1),
-    { DEADINT, DEADINT, DEADINT, DEADINT, DEADINT, DEADINT, DEADPTR,
-      (hash_func_t)DEADPTR, (hash_comp_t)DEADPTR, (hash_resize_t)DEADPTR,
-      DEADPTR } /* table[2] */
-  };
-  hash_entry_t entry[] = { /* some entries to operate on */
-    HASH_ENTRY_INIT(OBJECT0),
-    HASH_ENTRY_INIT(OBJECT1),
-    HASH_ENTRY_INIT(OBJECT2),
-    HASH_ENTRY_INIT(OBJECT3),
-    HASH_ENTRY_INIT(OBJECT4),
-    HASH_ENTRY_INIT(OBJECT5),
-    HASH_ENTRY_INIT(OBJECT6),
-    { DEADINT, { DEADINT, DEADPTR, DEADPTR, DEADPTR, DEADPTR, DEADINT },
-      DEADPTR, DEADINT, { DEADPTR, DEADINT }, DEADPTR } /* entry[7] */
-  };
-  hash_entry_t *entry_p;
-  db_key_t key[] = { /* some keys... */
-    DB_KEY_INIT("obj0", 0),
-    DB_KEY_INIT("obj1", 1),
-    DB_KEY_INIT("obj2", 2),
-    DB_KEY_INIT("obj3", 3),
-    DB_KEY_INIT("obj4", 4),
-    DB_KEY_INIT("obj5", 5),
-    DB_KEY_INIT("obj6", 6)
-  };
-
-  /* initialize the tables with a size */
-  if (ht_init(&table[0], 0, check_func, check_comp, 0, TABLE0, 7) ||
-      ht_init(&table[1], 0, check_func, check_comp, 0, TABLE1, 7))
-    return -1; /* failed to initialize test */
-
-  /* Add some entries to various hash tables */
-  for (i = 0; i < 5; i++)
-    if (ht_add(&table[0], &entry[i], &key[i]))
-      return -1; /* failed to initialize test */
-  if (ht_add(&table[1], &entry[5], &key[5]))
-    return -1; /* failed to initialize test */
-
-  /* Check handling of bad arguments */
-  check_result(ht_move(0, 0, 0), DB_ERR_BADARGS, "ht_move_noargs",
-              "ht_move() with no valid arguments", 0);
-  check_result(ht_move(&table[2], &entry[0], &key[6]), DB_ERR_BADARGS,
-              "ht_move_badtable", "ht_move() with bad table", 1);
-  check_result(ht_move(&table[0], &entry[7], &key[6]), DB_ERR_BADARGS,
-              "ht_move_badentry", "ht_move() with bad entry", 1);
-  check_result(ht_move(&table[0], &entry[0], 0), DB_ERR_BADARGS,
-              "ht_move_badkey", "ht_move() with bad key", 1);
-
-  /* Check if unused entry is excluded */
-  check_result(ht_move(&table[0], &entry[6], &key[6]), DB_ERR_UNUSED,
-              "ht_move_unused", "ht_move() with unused entry", 1);
-  /* How about wrong table? */
-  check_result(ht_move(&table[0], &entry[5], &key[6]), DB_ERR_WRONGTABLE,
-              "ht_move_wrongtable", "ht_move() with entry in wrong table", 1);
-
-  /* Freeze the table temporarily */
-  ht_flags(&table[0]) |= HASH_FLAG_FREEZE;
-  /* check if frozen tables are excluded */
-  check_result(ht_move(&table[0], &entry[0], &key[6]), DB_ERR_FROZEN,
-              "ht_move_frozen", "ht_move() on frozen table", 1);
-  /* Unfreeze the table */
-  ht_flags(&table[0]) &= ~HASH_FLAG_FREEZE;
-
-  /* Are duplicate keys excluded? */
-  check_result(ht_move(&table[0], &entry[0], &key[4]), DB_ERR_DUPLICATE,
-              "ht_move_duplicate", "ht_move() with duplicate key", 1);
-
-  /* OK, try moving the entry */
-  check_result(ht_move(&table[0], &entry[0], &key[6]), 0, "ht_move_t0e0k6",
-              "Rekey entry 0 in hash table 1 to key 6", 1);
-
-  /* Look up the old entry... */
-  check_result(ht_find(&table[0], 0, &key[0]), DB_ERR_NOENTRY,
-              "ht_move_find_t0e0k0", "Attempt to find entry under old key",
-              0);
-
-  /* Now look up the new entry */
-  check_result(ht_find(&table[0], &entry_p, &key[6]), 0, "ht_move_find_t0e0k6",
-              "Locate entry under new key", 1);
-  if (entry_p != &entry[0])
-    printf("FAIL/ht_move_find_t0e0k6_entry:Attempt to look up entry 0 "
-          "retrieved %p (correct answer is %p)\n", (void *)entry_p,
-          (void *)&entry[0]);
-  else
-    printf("PASS/ht_move_find_t0e0k6_entry:Retrieved correct entry %p\n",
-          (void *)entry_p);
-
-  return 0;
-}
diff --git a/libs/dbprim/tests/t_ht_remove.c b/libs/dbprim/tests/t_ht_remove.c
deleted file mode 100644 (file)
index 4d03b3b..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
-** Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-**
-** This library is free software; you can redistribute it and/or
-** modify it under the terms of the GNU Library General Public
-** License as published by the Free Software Foundation; either
-** version 2 of the License, or (at your option) any later version.
-**
-** This library 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
-** Library General Public License for more details.
-**
-** You should have received a copy of the GNU Library General Public
-** License along with this library; if not, write to the Free
-** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-** MA 02111-1307, USA
-**
-** @(#)$Id$
-*/
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "dbprim.h"
-#include "dbprim_int.h"
-
-#define TABLE0 (void *)0x76543210
-#define TABLE1 (void *)0x87654321
-
-#define OBJECT0 (void *)0x01234567
-#define OBJECT1 (void *)0x12345678
-#define OBJECT2 (void *)0x23456789
-#define OBJECT3 (void *)0x3456789a
-#define OBJECT4 (void *)0x456789ab
-#define OBJECT5 (void *)0x56789abc
-#define OBJECT6 (void *)0x6789abcd
-
-#define DEADINT        0xdeadbeef
-#define DEADPTR        (void *)0xdeadbeef
-
-/* Check return value of add operation and report PASS/FAIL */
-static void
-check_result(unsigned long result, unsigned long expected, char *test,
-            char *info, int die)
-{
-  if (result != expected) {
-    printf("FAIL/%s:%s incorrectly returned %lu (expected %lu)\n", test, info,
-          result, expected);
-    if (die)
-      exit(0);
-  } else
-    printf("PASS/%s:%s correctly returned %lu\n", test, info, result);
-}
-
-static unsigned long
-check_func(hash_table_t *table, db_key_t *key)
-{
-  return dk_len(key);
-}
-
-static unsigned long
-check_comp(hash_table_t *table, db_key_t *key1, db_key_t *key2)
-{
-  return (!(dk_len(key1) == dk_len(key2) && dk_key(key1) == dk_key(key2)));
-}
-
-int
-main(int argc, char **argv)
-{
-  int i;
-  hash_table_t table[] = { /* some tables to operate on */
-    HASH_TABLE_INIT(0, check_func, check_comp, 0, TABLE0),
-    HASH_TABLE_INIT(0, check_func, check_comp, 0, TABLE1),
-    { DEADINT, DEADINT, DEADINT, DEADINT, DEADINT, DEADINT, DEADPTR,
-      (hash_func_t)DEADPTR, (hash_comp_t)DEADPTR, (hash_resize_t)DEADPTR,
-      DEADPTR } /* table[2] */
-  };
-  hash_entry_t entry[] = { /* some entries to operate on */
-    HASH_ENTRY_INIT(OBJECT0),
-    HASH_ENTRY_INIT(OBJECT1),
-    HASH_ENTRY_INIT(OBJECT2),
-    HASH_ENTRY_INIT(OBJECT3),
-    HASH_ENTRY_INIT(OBJECT4),
-    HASH_ENTRY_INIT(OBJECT5),
-    HASH_ENTRY_INIT(OBJECT6),
-    { DEADINT, { DEADINT, DEADPTR, DEADPTR, DEADPTR, DEADPTR, DEADINT },
-      DEADPTR, DEADINT, { DEADPTR, DEADINT }, DEADPTR } /* entry[7] */
-  };
-  db_key_t key[] = { /* some keys... */
-    DB_KEY_INIT("obj0", 0),
-    DB_KEY_INIT("obj1", 1),
-    DB_KEY_INIT("obj2", 2),
-    DB_KEY_INIT("obj3", 3),
-    DB_KEY_INIT("obj4", 4),
-    DB_KEY_INIT("obj5", 5),
-    DB_KEY_INIT("obj6", 6)
-  };
-
-  /* initialize the tables with a size */
-  if (ht_init(&table[0], 0, check_func, check_comp, 0, TABLE0, 7) ||
-      ht_init(&table[1], 0, check_func, check_comp, 0, TABLE1, 7))
-    return -1; /* failed to initialize test */
-
-  /* Add some entries to various hash tables */
-  for (i = 0; i < 5; i++)
-    if (ht_add(&table[0], &entry[i], &key[i]))
-      return -1; /* failed to initialize test */
-  if (ht_add(&table[1], &entry[5], &key[5]))
-    return -1; /* failed to initialize test */
-
-  /* Check handling of bad arguments */
-  check_result(ht_remove(0, 0), DB_ERR_BADARGS, "ht_remove_noargs",
-              "ht_remove() with no valid arguments", 0);
-  check_result(ht_remove(&table[2], &entry[0]), DB_ERR_BADARGS,
-              "ht_remove_badtable", "ht_remove() with bad table", 1);
-  check_result(ht_remove(&table[0], &entry[7]), DB_ERR_BADARGS,
-              "ht_remove_badentry", "ht_remove() with bad entry", 1);
-
-  /* Check if unused entry is excluded */
-  check_result(ht_remove(&table[0], &entry[6]), DB_ERR_UNUSED,
-              "ht_remove_unused", "ht_remove() with unused entry", 1);
-  /* How about wrong table? */
-  check_result(ht_remove(&table[0], &entry[5]), DB_ERR_WRONGTABLE,
-              "ht_remove_wrongtable", "ht_remove() with entry in wrong table",
-              1);
-
-  /* Freeze the table temporarily */
-  ht_flags(&table[0]) |= HASH_FLAG_FREEZE;
-  /* check if frozen tables are excluded */
-  check_result(ht_remove(&table[0], &entry[0]), DB_ERR_FROZEN,
-              "ht_remove_frozen", "ht_remove() on frozen table", 1);
-  /* Unfreeze the table */
-  ht_flags(&table[0]) &= ~HASH_FLAG_FREEZE;
-
-  /* OK, try removing an entry */
-  check_result(ht_remove(&table[0], &entry[0]), 0, "ht_remove_t0e0",
-              "Remove entry 0 in table 0", 1);
-  /* check to see if we can find it */
-  check_result(ht_find(&table[0], 0, &key[0]), DB_ERR_NOENTRY,
-              "ht_remove_find_t0e0", "Attempt to look up removed entry", 0);
-
-  /* Check to see if the removed entry's table pointer is 0 */
-  if (he_table(&entry[0]) != 0)
-    printf("FAIL/ht_remove_t0e0_table:Table pointer not reset\n");
-  else
-    printf("PASS/ht_remove_t0e0_table:Table pointer properly reset\n");
-
-  /* Finally, check to see if the count is correct */
-  if (ht_count(&table[0]) != 4)
-    printf("FAIL/ht_remove_t0e0_count:Table count not adjusted; is %ld, "
-          "should be 4\n", ht_count(&table[0]));
-  else
-    printf("PASS/ht_remove_t0e0_count:Table count correctly adjusted\n");
-
-  return 0;
-}
diff --git a/libs/dbprim/tests/t_ht_resize.c b/libs/dbprim/tests/t_ht_resize.c
deleted file mode 100644 (file)
index d23bd34..0000000
+++ /dev/null
@@ -1,277 +0,0 @@
-/*
-** Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-**
-** This library is free software; you can redistribute it and/or
-** modify it under the terms of the GNU Library General Public
-** License as published by the Free Software Foundation; either
-** version 2 of the License, or (at your option) any later version.
-**
-** This library 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
-** Library General Public License for more details.
-**
-** You should have received a copy of the GNU Library General Public
-** License along with this library; if not, write to the Free
-** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-** MA 02111-1307, USA
-**
-** @(#)$Id$
-*/
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "dbprim.h"
-#include "dbprim_int.h"
-
-#define TABLE0 (void *)0x76543210
-
-#define OBJECT0 (void *)0x01234567
-#define OBJECT1 (void *)0x12345678
-#define OBJECT2 (void *)0x23456789
-#define OBJECT3 (void *)0x3456789a
-#define OBJECT4 (void *)0x456789ab
-#define OBJECT5 (void *)0x56789abc
-#define OBJECT6 (void *)0x6789abcd
-#define OBJECT7 (void *)0x789abcde
-
-#define DEADINT        0xdeadbeef
-#define DEADPTR        (void *)0xdeadbeef
-
-struct itercheck {
-  hash_table_t *ent_table;
-  hash_entry_t *ent_array;
-  unsigned int ent_mask;
-};
-
-#define BIT(n) (1 << (n))
-#define BITMASK        0x000000ff
-
-/* Check return value of add operation and report PASS/FAIL */
-static void
-check_result(unsigned long result, unsigned long expected, char *test,
-            char *info, int die)
-{
-  if (result != expected) {
-    printf("FAIL/%s:%s incorrectly returned %lu (expected %lu)\n", test, info,
-          result, expected);
-    if (die)
-      exit(0);
-  } else
-    printf("PASS/%s:%s correctly returned %lu\n", test, info, result);
-}
-
-static unsigned long
-check_func(hash_table_t *table, db_key_t *key)
-{
-  return dk_len(key);
-}
-
-static unsigned long
-check_comp(hash_table_t *table, db_key_t *key1, db_key_t *key2)
-{
-  return (!(dk_len(key1) == dk_len(key2) && dk_key(key1) == dk_key(key2)));
-}
-
-static void
-check_modulus(hash_table_t *tab, unsigned long mod, char *test, char *comment)
-{
-  if (ht_modulus(tab) != mod) {
-    printf("FAIL/%s_mod:%s (modulus %ld, supposed to be %ld)\n", test, comment,
-          ht_modulus(tab), mod);
-    exit(0);
-  } else
-    printf("PASS/%s_mod:%s (modulus %ld)\n", test, comment, mod);
-}
-
-static unsigned long
-check_iter(hash_table_t *table, hash_entry_t *ent, void *extra)
-{
-  struct itercheck *itcheck;
-
-  itcheck = extra;
-
-  /* OK, verify that the hash table is the same as the one we expect */
-  if (table != itcheck->ent_table) {
-    printf("FAIL/ht_resize_functab_e%d:Hash tables do not match\n",
-          dk_len(he_key(ent)));
-    exit(0);
-  } else
-    printf("PASS/ht_resize_functab_e%d:Hash tables match\n",
-          dk_len(he_key(ent)));
-
-  /* Now verify that everything matches up... */
-  if (ent != &itcheck->ent_array[dk_len(he_key(ent))]) {
-    printf("FAIL/ht_resize_funcent_e%d:Entries do not match\n",
-          dk_len(he_key(ent)));
-    exit(0);
-  } else
-    printf("PASS/ht_resize_funcent_e%d:Entries match\n", dk_len(he_key(ent)));
-
-  /* Finally, set the visited bitmask */
-  itcheck->ent_mask |= BIT(dk_len(he_key(ent)));
-
-  return 0;
-}
-
-static unsigned long
-do_rsize_check(hash_table_t *table, unsigned long new_mod, char *test,
-              unsigned long err)
-{
-  check_modulus(table, 11, test,
-               "Check that table calls callback before resize");
-  if (new_mod != 3) {
-    printf("FAIL/%s_newmod:Check that resize callback is called with new "
-          "size failed: new size %ld, should be 3\n", test, new_mod);
-    exit(0);
-  } else
-    printf("PASS/%s_newmod:Check that resize callback is called with new "
-          "size (%ld)\n", test, new_mod);
-
-  return err;
-}
-
-static unsigned long
-check_rsize_err(hash_table_t *table, unsigned long new_mod)
-{
-  return do_rsize_check(table, new_mod, "ht_resize_callerr", EINVAL);
-}
-
-static unsigned long
-check_rsize(hash_table_t *table, unsigned long new_mod)
-{
-  return do_rsize_check(table, new_mod, "ht_resize_callback", 0);
-}
-
-int
-main(int argc, char **argv)
-{
-  int i;
-  hash_table_t table[] = { /* some tables to operate on */
-    HASH_TABLE_INIT(0, check_func, check_comp, 0, TABLE0),
-    { DEADINT, DEADINT, DEADINT, DEADINT, DEADINT, DEADINT, DEADPTR,
-      (hash_func_t)DEADPTR, (hash_comp_t)DEADPTR, (hash_resize_t)DEADPTR,
-      DEADPTR } /* table[1] */
-  };
-  hash_entry_t entry[] = { /* some entries to operate on */
-    HASH_ENTRY_INIT(OBJECT0),
-    HASH_ENTRY_INIT(OBJECT1),
-    HASH_ENTRY_INIT(OBJECT2),
-    HASH_ENTRY_INIT(OBJECT3),
-    HASH_ENTRY_INIT(OBJECT4),
-    HASH_ENTRY_INIT(OBJECT5),
-    HASH_ENTRY_INIT(OBJECT6),
-    HASH_ENTRY_INIT(OBJECT7),
-    { DEADINT, { DEADINT, DEADPTR, DEADPTR, DEADPTR, DEADPTR, DEADINT },
-      DEADPTR, DEADINT, { DEADPTR, DEADINT }, DEADPTR } /* entry[7] */
-  };
-  db_key_t key[] = { /* some keys... */
-    DB_KEY_INIT("obj0", 0),
-    DB_KEY_INIT("obj1", 1),
-    DB_KEY_INIT("obj2", 2),
-    DB_KEY_INIT("obj3", 3),
-    DB_KEY_INIT("obj4", 4),
-    DB_KEY_INIT("obj5", 5),
-    DB_KEY_INIT("obj6", 6),
-    DB_KEY_INIT("obj7", 7)
-  };
-  struct itercheck itcheck = { 0, 0, 0 };
-
-  /* initialize the tables with a size */
-  if (ht_init(&table[0], 0, check_func, check_comp, 0, TABLE0, 3))
-    return -1; /* failed to initialize test */
-
-  /* Add some entries to various hash tables */
-  for (i = 0; i < 8; i++)
-    if (ht_add(&table[0], &entry[i], &key[i]))
-      return -1; /* failed to initialize test */
-
-  /* Check handling of bad arguments */
-  check_result(ht_resize(0, 0), DB_ERR_BADARGS, "ht_resize_noargs",
-              "ht_resize() with no valid arguments", 0);
-  check_result(ht_resize(&table[1], 0), DB_ERR_BADARGS, "ht_resize_badtable",
-              "ht_resize() with bad table", 0);
-
-  /* Freeze the table temporarily */
-  ht_flags(&table[0]) |= HASH_FLAG_FREEZE;
-  /* check if frozen tables are excluded */
-  check_result(ht_resize(&table[0], 0), DB_ERR_FROZEN, "ht_resize_frozen",
-              "ht_resize() on frozen table", 1);
-  /* Unfreeze the table */
-  ht_flags(&table[0]) &= ~HASH_FLAG_FREEZE;
-
-  /* OK, now try resizing to current size */
-  check_result(ht_resize(&table[0], 0), 0, "ht_resize_current",
-              "ht_resize() to current table count", 1);
-  check_modulus(&table[0], 11, "ht_resize_current",
-               "Table modulus after ht_resize()");
-
-  /* Next, try shrinking */
-  check_result(ht_resize(&table[0], 4), 0, "ht_resize_shrink",
-              "ht_resize() to shrink table", 1);
-  check_modulus(&table[0], 5, "ht_resize_shrink",
-               "Table modulus after ht_resize() to shrink");
-
-  /* Now try growing */
-  check_result(ht_resize(&table[0], 18), 0, "ht_resize_grow",
-              "ht_resize() to grow table", 1);
-  check_modulus(&table[0], 19, "ht_resize_grow",
-               "Table modulus after ht_grow() to grow");
-
-  /* Iterate through the table and make sure everything's there */
-  itcheck.ent_table = &table[0];
-  itcheck.ent_array = entry;
-  itcheck.ent_mask = 0;
-  check_result(ht_iter(&table[0], check_iter, &itcheck), 0,
-              "ht_resize_elemchk", "Check that hash table is valid", 1);
-
-  /* Did it iterate through them all? */
-  if (itcheck.ent_mask == BITMASK)
-    printf("PASS/ht_resize_funcmask:ht_resize() retained all items\n");
-  else {
-    printf("FAIL/ht_resize_funcmask:ht_resize() retained only items in "
-          "bitmask 0x%02x\n", itcheck.ent_mask);
-    return 0;
-  }
-
-  /* Set the table to autoshrink */
-  ht_flags(&table[0]) |= HASH_FLAG_AUTOSHRINK;
-  check_result(ht_remove(&table[0], &entry[7]), 0, "ht_remove_autoshrink",
-              "Check to see that ht_remove() on autoshrink shrinks table", 1);
-
-  /* Make certain table has been properly resized */
-  check_modulus(&table[0], 11, "ht_remove_autoshrink",
-               "Check that ht_remove() shrank table");
-
-  /* Set the resize callback */
-  ht_rsize(&table[0]) = check_rsize_err;
-
-  /* Check to make sure we got the expected error return value */
-  check_result(ht_resize(&table[0], 3), EINVAL, "ht_resize_callerr",
-              "Check that resize callback's error code is returned", 1);
-
-  /* Set the resize callback to something that'll work */
-  ht_rsize(&table[0]) = check_rsize;
-
-  /* Shrink the table very small for the next step */
-  check_result(ht_resize(&table[0], 3), 0, "ht_resize_prep",
-              "Prepare for auto-grow test", 1);
-  /* Make certain table has been properly resized */
-  check_modulus(&table[0], 3, "ht_resize_prep",
-               "Check that ht_resize() shrank table");
-
-  /* Now clear the resize callback */
-  ht_rsize(&table[0]) = 0;
-
-  /* Now try to autogrow */
-  ht_flags(&table[0]) |= HASH_FLAG_AUTOGROW;
-  check_result(ht_add(&table[0], &entry[7], &key[7]), 0, "ht_add_autogrow",
-              "Check to see that ht_add() on autogrow grows table", 1);
-
-  /* Make certain table has been properly resized */
-  check_modulus(&table[0], 11, "ht_add_autogrow",
-               "Check that ht_add() grew table");
-
-  return 0;
-}
diff --git a/libs/dbprim/tests/t_le_init.c b/libs/dbprim/tests/t_le_init.c
deleted file mode 100644 (file)
index 1d824cb..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
-** Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-**
-** This library is free software; you can redistribute it and/or
-** modify it under the terms of the GNU Library General Public
-** License as published by the Free Software Foundation; either
-** version 2 of the License, or (at your option) any later version.
-**
-** This library 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
-** Library General Public License for more details.
-**
-** You should have received a copy of the GNU Library General Public
-** License along with this library; if not, write to the Free
-** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-** MA 02111-1307, USA
-**
-** @(#)$Id$
-*/
-#include <stdio.h>
-
-#include "dbprim.h"
-
-#define OBJECT (void *)0x91827364
-#define DEADINT        0xdeadbeef
-#define DEADPTR        (void *)0xdeadbeef
-
-static void
-check_init(link_elem_t *elem, char *how)
-{
-  if (elem->le_magic != LINK_ELEM_MAGIC) /* Verify magic was set */
-    printf("FAIL/%s_magic:Initialization failed to set magic number\n", how);
-  else
-    printf("PASS/%s_magic:Initialization set magic number properly\n", how);
-
-  if (elem->le_next != 0) /* verify next was set properly */
-    printf("FAIL/%s_next:Initialization failed to clear next\n", how);
-  else
-    printf("PASS/%s_next:Initialization set next to 0\n", how);
-
-  if (elem->le_prev != 0) /* verify prev was set properly */
-    printf("FAIL/%s_prev:Initialization failed to clear prev\n", how);
-  else
-    printf("PASS/%s_prev:Initialization set prev to 0\n", how);
-
-  if (elem->le_object != OBJECT) /* verify object was set properly */
-    printf("FAIL/%s_object:Initialization failed to set object\n", how);
-  else
-    printf("PASS/%s_object:Initialization set object properly\n", how);
-
-  if (elem->le_head != 0) /* verify head was set properly */
-    printf("FAIL/%s_head:Initialization failed to clear head\n", how);
-  else
-    printf("PASS/%s_head:Initialization set head to 0\n", how);
-
-  if (elem->le_flags != 0) /* verify flags were set properly */
-    printf("FAIL/%s_flags:Initialization failed to clear flags\n", how);
-  else
-    printf("PASS/%s_flags:Initialization set flags to 0\n", how);
-}
-
-int
-main(int argc, char **argv)
-{
-  unsigned long errcode;
-  link_elem_t elem = LINK_ELEM_INIT(OBJECT);
-
-  /* Check that the static initializer produces a passable structure */
-  check_init(&elem, "le_static");
-
-  /* now, check what le_init does with bad arguments */
-  if ((errcode = le_init(0, 0)) == DB_ERR_BADARGS)
-    printf("PASS/le_init_nothing:le_init(0, 0) returns "
-          "DB_ERR_BADARGS\n");
-  else
-    printf("FAIL/le_init_nothing:le_init(0, 0) returned "
-          "%lu instead of DB_ERR_BADARGS\n", errcode);
-  if ((errcode = le_init(0, OBJECT)) == DB_ERR_BADARGS)
-    printf("PASS/le_init_objectonly:le_init(0, OBJECT) returns "
-          "DB_ERR_BADARGS\n");
-  else
-    printf("FAIL/le_init_objectonly:le_init(0, OBJECT) returned "
-          "%lu instead of DB_ERR_BADARGS\n", errcode);
-  if ((errcode = le_init(&elem, 0)) == DB_ERR_BADARGS)
-    printf("PASS/le_init_elemonly:le_init(&elem, 0) returns "
-          "DB_ERR_BADARGS\n");
-  else
-    printf("FAIL/le_init_elemonly:le_init(&elem, 0) returned "
-          "%lu instead of DB_ERR_BADARGS\n", errcode);
-
-  /* Scramble the structure */
-  elem.le_magic = DEADINT;
-  elem.le_next = DEADPTR;
-  elem.le_prev = DEADPTR;
-  elem.le_object = DEADPTR;
-  elem.le_head = DEADPTR;
-  elem.le_flags = DEADINT;
-
-  /* Now try to initialize our structure and see what happens */
-  if ((errcode = le_init(&elem, OBJECT))) {
-    printf("FAIL/le_dynamic:le_init(&elem) returned failure (%lu)\n",
-          errcode);
-    return 0;
-  } else
-    printf("PASS/le_dynamic:le_init(&elem) returned success\n");
-
-  /* Finally, verify initialization */
-  check_init(&elem, "le_dynamic");
-
-  return 0;
-}
diff --git a/libs/dbprim/tests/t_ll_add.c b/libs/dbprim/tests/t_ll_add.c
deleted file mode 100644 (file)
index 4a287d7..0000000
+++ /dev/null
@@ -1,221 +0,0 @@
-/*
-** Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-**
-** This library is free software; you can redistribute it and/or
-** modify it under the terms of the GNU Library General Public
-** License as published by the Free Software Foundation; either
-** version 2 of the License, or (at your option) any later version.
-**
-** This library 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
-** Library General Public License for more details.
-**
-** You should have received a copy of the GNU Library General Public
-** License along with this library; if not, write to the Free
-** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-** MA 02111-1307, USA
-**
-** @(#)$Id$
-*/
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "dbprim.h"
-
-#define OBJECT0 (void *)0x01234567
-#define OBJECT1 (void *)0x12345678
-#define OBJECT2 (void *)0x23456789
-#define OBJECT3 (void *)0x3456789a
-#define OBJECT4 (void *)0x456789ab
-#define OBJECT5 (void *)0x56789abc
-
-#define DEADINT        0xdeadbeef
-#define DEADPTR        (void *)0xdeadbeef
-
-/* Check return value of add operation and report PASS/FAIL */
-static void
-check_result(unsigned long result, unsigned long expected, char *test,
-            char *info, int die)
-{
-  if (result != expected) {
-    printf("FAIL/%s:%s incorrectly returned %lu (expected %lu)\n", test, info,
-          result, expected);
-    if (die)
-      exit(0);
-  } else
-    printf("PASS/%s:%s correctly returned %lu\n", test, info, result);
-}
-
-/* Check that a list head matches expectations */
-static void
-check_list(link_head_t *list, unsigned int count, link_elem_t *head,
-          link_elem_t *tail, char *test, char *info)
-{
-  if (list->lh_count != count) { /* Check count first */
-    printf("FAIL/%s_count:%s: Count mismatch\n", test, info);
-    exit(0);
-  } else
-    printf("PASS/%s_count:%s: Counts match\n", test, info);
-
-  if (list->lh_first != head) { /* then check the head pointer */
-    printf("FAIL/%s_first:%s: Head pointer mismatch\n", test, info);
-    exit(0);
-  } else
-    printf("PASS/%s_first:%s: Head pointers match\n", test, info);
-
-  if (list->lh_last != tail) { /* finally check the tail pointer */
-    printf("FAIL/%s_last:%s: Tail pointer mismatch\n", test, info);
-    exit(0);
-  } else
-    printf("PASS/%s_last:%s: Tail pointers match\n", test, info);
-}
-
-/* Check that a list element matches expectations */
-static void
-check_elem(link_elem_t *elem, link_elem_t *prev, link_elem_t *next,
-          link_head_t *head, char *test, char *info)
-{
-  if (elem->le_next != next) { /* check next pointer first */
-    printf("FAIL/%s_next:%s: Next pointer mismatch\n", test, info);
-    exit(0);
-  } else
-    printf("PASS/%s_next:%s: Next pointers match\n", test, info);
-
-  if (elem->le_prev != prev) { /* then check prev pointer */
-    printf("FAIL/%s_prev:%s: Prev pointer mismatch\n", test, info);
-    exit(0);
-  } else
-    printf("PASS/%s_prev:%s: Prev pointers match\n", test, info);
-
-  if (elem->le_head != head) { /* finally check list head pointer */
-    printf("FAIL/%s_head:%s: Head pointer mismatch\n", test, info);
-    exit(0);
-  } else
-    printf("PASS/%s_head:%s: Head pointers match\n", test, info);
-}
-
-int
-main(int argc, char **argv)
-{
-  link_head_t list[] = { /* some lists to operate on */
-    LINK_HEAD_INIT(0),
-    LINK_HEAD_INIT(0),
-    { DEADINT, DEADINT, DEADPTR, DEADPTR, 0 } /* list[2] is a bad list */
-  };
-  link_elem_t elem[] = { /* some elements to operate on */
-    LINK_ELEM_INIT(OBJECT0),
-    LINK_ELEM_INIT(OBJECT1),
-    LINK_ELEM_INIT(OBJECT2),
-    LINK_ELEM_INIT(OBJECT3),
-    LINK_ELEM_INIT(OBJECT4),
-    LINK_ELEM_INIT(OBJECT5),
-    { DEADINT, DEADPTR, DEADPTR, DEADPTR, DEADPTR, DEADINT } /* elem[6] */
-  };
-
-  /* Check the cases that yield "BADARGS" */
-  check_result(ll_add(0, 0, LINK_LOC_HEAD, 0), DB_ERR_BADARGS,
-              "ll_add_noargs", "ll_add() with no arguments", 0);
-  check_result(ll_add(&list[2], &elem[0], LINK_LOC_HEAD, 0), DB_ERR_BADARGS,
-              "ll_add_badlist", "ll_add() with bad list", 0);
-  check_result(ll_add(&list[0], &elem[6], LINK_LOC_HEAD, 0), DB_ERR_BADARGS,
-              "ll_add_badnew", "ll_add() with bad new element", 0);
-  check_result(ll_add(&list[0], &elem[0], LINK_LOC_HEAD, &elem[6]),
-              DB_ERR_BADARGS, "ll_add_badelem", "ll_add() with bad element",
-              0);
-  check_result(ll_add(&list[0], &elem[0], LINK_LOC_BEFORE, 0),
-              DB_ERR_BADARGS, "ll_add_before_noelem",
-              "ll_add() before with no element", 0);
-  check_result(ll_add(&list[0], &elem[0], LINK_LOC_AFTER, 0), DB_ERR_BADARGS,
-              "ll_add_after_noelem", "ll_add() after with no element", 0);
-
-  /* OK, now add an element to one list */
-  check_result(ll_add(&list[0], &elem[0], LINK_LOC_HEAD, 0), 0,
-              "ll_add_l0e0", "ll_add() head list[0] elem[0]", 1);
-
-  /* Verify that it added correctly */
-  check_list(&list[0], 1, &elem[0], &elem[0], "list_l0e0",
-            "List 0 head after first insert");
-  check_elem(&elem[0], 0, 0, &list[0], "elem_l0e0",
-            "Element 0 after first insert");
-
-  /* Now try to add it to a second list */
-  check_result(ll_add(&list[1], &elem[0], LINK_LOC_HEAD, 0), DB_ERR_BUSY,
-              "ll_add_l1e0", "ll_add() head list[1] elem[0]", 1);
-
-  /* OK, now try adding another element to a second list, using TAIL */
-  check_result(ll_add(&list[1], &elem[1], LINK_LOC_TAIL, 0), 0,
-              "ll_add_l1e1", "ll_add() tail list[1] elem[1]", 1);
-
-  /* Verify that it added correctly */
-  check_list(&list[1], 1, &elem[1], &elem[1], "list_l1e1",
-            "List 1 head after second insert");
-  check_elem(&elem[1], 0, 0, &list[1], "elem_l1e1",
-            "Element 1 after second insert");
-
-  /* Now try adding an element to list[0] after an element in list[1] */
-  check_result(ll_add(&list[0], &elem[2], LINK_LOC_AFTER, &elem[1]),
-              DB_ERR_WRONGTABLE, "ll_add_l0e2a1",
-              "ll_add() list[0] elem[2] after elem[1] (list[1])", 1);
-
-  /* Now try adding after an element that hasn't been inserted anywhere */
-  check_result(ll_add(&list[0], &elem[2], LINK_LOC_AFTER, &elem[3]),
-              DB_ERR_UNUSED, "ll_add_l0e2a3",
-              "ll_add() list[0] elem[2] after elem[3] (no list)", 1);
-
-  /* Let's now try adding to the head of a list */
-  check_result(ll_add(&list[0], &elem[2], LINK_LOC_TAIL, 0), 0, "ll_add_l0e2t",
-              "ll_add() tail list[0] elem[2]", 1);
-
-  /* Verify that it added correctly */
-  check_list(&list[0], 2, &elem[0], &elem[2], "list_l0e0e2",
-            "List 0 head after third insert");
-  check_elem(&elem[0], 0, &elem[2], &list[0], "elem_l0e0e2_0",
-            "Element 0 after third insert");
-  check_elem(&elem[2], &elem[0], 0, &list[0], "elem_l0e0e2_2",
-            "Element 2 after third insert");
-
-  /* Now try for the head */
-  check_result(ll_add(&list[1], &elem[3], LINK_LOC_HEAD, 0), 0, "ll_add_l1e3h",
-              "ll_add() head list[1] elem[3]", 1);
-
-  /* Verify that it added correctly */
-  check_list(&list[1], 2, &elem[3], &elem[1], "list_l1e3e1",
-            "List 1 head after fourth insert");
-  check_elem(&elem[1], &elem[3], 0, &list[1], "elem_l1e3e1_1",
-            "Element 1 after fourth insert");
-  check_elem(&elem[3], 0, &elem[1], &list[1], "elem_l1e3e1_3",
-            "Element 3 after fourth insert");
-
-  /* Let's try adding an element in the middle by inserting before last */
-  check_result(ll_add(&list[0], &elem[4], LINK_LOC_BEFORE, ll_last(&list[0])),
-              0, "ll_add_l0e4b2", "ll_add() list[0] elem[4] before elem[2]",
-              1);
-
-  /* Verify that it added correctly */
-  check_list(&list[0], 3, &elem[0], &elem[2], "list_l0e0e4e2",
-            "List 0 head after fifth insert");
-  check_elem(&elem[0], 0, &elem[4], &list[0], "elem_l0e0e4e2_0",
-            "Element 0 after fifth insert");
-  check_elem(&elem[2], &elem[4], 0, &list[0], "elem_l0e0e4e2_2",
-            "Element 2 after fifth insert");
-  check_elem(&elem[4], &elem[0], &elem[2], &list[0], "elem_l0e0e4e2_4",
-            "Element 4 after fifth insert");
-
-  /* OK, now try inserting after first */
-  check_result(ll_add(&list[1], &elem[5], LINK_LOC_AFTER, ll_first(&list[1])),
-              0, "ll_add_l1e5a3", "ll_add() list[1] elem[5] after elem[3]",
-              1);
-
-  /* Verify that it added correctly */
-  check_list(&list[1], 3, &elem[3], &elem[1], "list_l1e3e5e1",
-            "List 1 head after sixth insert");
-  check_elem(&elem[1], &elem[5], 0, &list[1], "elem_l1e3e5e1_1",
-            "Element 1 after sixth insert");
-  check_elem(&elem[3], 0, &elem[5], &list[1], "elem_l1e3e5e1_3",
-            "Element 3 after sixth insert");
-  check_elem(&elem[5], &elem[3], &elem[1], &list[1], "elem_l1e3e5e1_5",
-            "Element 5 after sixth insert");
-
-  return 0;
-}
diff --git a/libs/dbprim/tests/t_ll_find.c b/libs/dbprim/tests/t_ll_find.c
deleted file mode 100644 (file)
index 55cb643..0000000
+++ /dev/null
@@ -1,190 +0,0 @@
-/*
-** Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-**
-** This library is free software; you can redistribute it and/or
-** modify it under the terms of the GNU Library General Public
-** License as published by the Free Software Foundation; either
-** version 2 of the License, or (at your option) any later version.
-**
-** This library 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
-** Library General Public License for more details.
-**
-** You should have received a copy of the GNU Library General Public
-** License along with this library; if not, write to the Free
-** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-** MA 02111-1307, USA
-**
-** @(#)$Id$
-*/
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "dbprim.h"
-
-#define OBJECT0 (void *)0x01234567
-#define OBJECT1 (void *)0x12345678
-#define OBJECT2 (void *)0x23456789
-#define OBJECT3 (void *)0x3456789a
-#define OBJECT4 (void *)0x456789ab
-#define OBJECT5 (void *)0x56789abc
-#define OBJECT6 (void *)0x6789abcd
-
-#define DEADINT        0xdeadbeef
-#define DEADPTR        (void *)0xdeadbeef
-
-/* Check return value of add operation and report PASS/FAIL */
-static void
-check_result(unsigned long result, unsigned long expected, char *test,
-            char *info, int die)
-{
-  if (result != expected) {
-    printf("FAIL/%s:%s incorrectly returned %lu (expected %lu)\n", test, info,
-          result, expected);
-    if (die)
-      exit(0);
-  } else
-    printf("PASS/%s:%s correctly returned %lu\n", test, info, result);
-}
-
-/* Check that a list head matches expectations */
-static void
-check_list(link_head_t *list, unsigned int count, link_elem_t *head,
-          link_elem_t *tail, char *test, char *info)
-{
-  if (list->lh_count != count) { /* Check count first */
-    printf("FAIL/%s_count:%s: Count mismatch\n", test, info);
-    exit(0);
-  } else
-    printf("PASS/%s_count:%s: Counts match\n", test, info);
-
-  if (list->lh_first != head) { /* then check the head pointer */
-    printf("FAIL/%s_first:%s: Head pointer mismatch\n", test, info);
-    exit(0);
-  } else
-    printf("PASS/%s_first:%s: Head pointers match\n", test, info);
-
-  if (list->lh_last != tail) { /* finally check the tail pointer */
-    printf("FAIL/%s_last:%s: Tail pointer mismatch\n", test, info);
-    exit(0);
-  } else
-    printf("PASS/%s_last:%s: Tail pointers match\n", test, info);
-}
-
-/* Verify that find found element we were expecting */
-static void
-check_element(link_elem_t *actual, link_elem_t *expected, char *test,
-             char *info)
-{
-  if (actual != expected)
-    printf("FAIL/%s_result:%s: Elements don't match\n", test, info);
-  else
-    printf("PASS/%s_result:%s: Elements match\n", test, info);
-}
-
-/* Comparison function */
-static unsigned long
-compare(db_key_t *key, void *value)
-{
-  if (dk_key(key) == value)
-    return 0;
-
-  return 1;
-}
-
-int
-main(int argc, char **argv)
-{
-  int i;
-  link_head_t list[] = { /* some lists to operate on */
-    LINK_HEAD_INIT(0),
-    LINK_HEAD_INIT(0),
-    { DEADINT, DEADINT, DEADPTR, DEADPTR, 0 } /* list[2] is a bad list */
-  };
-  link_elem_t elem[] = { /* some elements to operate on */
-    LINK_ELEM_INIT(OBJECT0),
-    LINK_ELEM_INIT(OBJECT1),
-    LINK_ELEM_INIT(OBJECT2),
-    LINK_ELEM_INIT(OBJECT3),
-    LINK_ELEM_INIT(OBJECT4),
-    LINK_ELEM_INIT(OBJECT5),
-    LINK_ELEM_INIT(OBJECT6),
-    { DEADINT, DEADPTR, DEADPTR, DEADPTR, DEADPTR, DEADINT } /* elem[7] */
-  };
-  link_elem_t *res = 0;
-  db_key_t key = DB_KEY_INIT(0, 0);
-
-  /* First, build the lists */
-  for (i = 0; i < 5; i++)
-    if (ll_add(&list[0], &elem[i], LINK_LOC_TAIL, 0))
-      return -1; /* failed to initialize test */
-
-  if (ll_add(&list[1], &elem[5], LINK_LOC_TAIL, 0))
-    return -1; /* failed to initialize test */
-
-  /* Baseline checks */
-  check_list(&list[0], 5, &elem[0], &elem[4], "ll_find_baseline_l0",
-            "Verify baseline list[0]");
-  check_list(&list[1], 1, &elem[5], &elem[5], "ll_find_baseline_l1",
-            "Verify baseline list[1]");
-
-  /* Check to see if ll_find verifies its arguments correctly */
-  check_result(ll_find(0, 0, 0, 0, 0), DB_ERR_BADARGS, "ll_find_noargs",
-              "ll_find() with no arguments", 0);
-  check_result(ll_find(&list[2], &res, compare, 0, &key), DB_ERR_BADARGS,
-              "ll_find_badlist", "ll_find() with bad list", 0);
-  check_result(ll_find(&list[0], 0, compare, 0, &key), DB_ERR_BADARGS,
-              "ll_find_badresult", "ll_find() with bad result", 0);
-  check_result(ll_find(&list[0], &res, 0, 0, &key), DB_ERR_BADARGS,
-              "ll_find_badcompare", "ll_find() with bad comparison function",
-              0);
-  check_result(ll_find(&list[0], &res, compare, &elem[7], &key),
-              DB_ERR_BADARGS, "ll_find_badstart",
-              "ll_find() with bad start element", 0);
-  check_result(ll_find(&list[0], &res, compare, 0, 0), DB_ERR_BADARGS,
-              "ll_find_badkey", "ll_find() with bad key", 0);
-
-  /* OK, verify that it checks that the start element is in the wrong table */
-  check_result(ll_find(&list[0], &res, compare, &elem[5], &key),
-              DB_ERR_WRONGTABLE, "ll_find_wrongtable",
-              "ll_find() with start element in wrong table", 0);
-
-  /* Next, see if it can find an element that shouldn't be there */
-  check_result(ll_find(&list[0], &res, compare, 0, &key), DB_ERR_NOENTRY,
-              "ll_find_noentry", "ll_find() for non-existant entry", 0);
-
-  /* OK, try to find an element in a single-entry list */
-  dk_key(&key) = OBJECT5;
-  check_result(ll_find(&list[1], &res, compare, 0, &key), 0,
-              "ll_find_oneentry", "ll_find() for one-entry list", 0);
-  check_element(res, &elem[5], "ll_find_oneentry",
-               "ll_find() for one-entry list");
-
-  /* Next, try to find the head element... */
-  dk_key(&key) = OBJECT0;
-  check_result(ll_find(&list[0], &res, compare, 0, &key), 0,
-              "ll_find_head", "ll_find() for head", 0);
-  check_element(res, &elem[0], "ll_find_head", "ll_find() for head");
-
-  /* Now the tail element... */
-  dk_key(&key) = OBJECT4;
-  check_result(ll_find(&list[0], &res, compare, 0, &key), 0,
-              "ll_find_tail", "ll_find() for tail", 0);
-  check_element(res, &elem[4], "ll_find_tail", "ll_find() for tail");
-
-  /* Next try the middle... */
-  dk_key(&key) = OBJECT2;
-  check_result(ll_find(&list[0], &res, compare, 0, &key), 0,
-              "ll_find_middle", "ll_find() for middle", 0);
-  check_element(res, &elem[2], "ll_find_middle", "ll_find() for middle");
-
-  /* Now try starting at an arbitrary place in the middle of the list */
-  le_object(&elem[3]) = OBJECT1;
-  dk_key(&key) = OBJECT1;
-  check_result(ll_find(&list[0], &res, compare, &elem[2], &key), 0,
-              "ll_find_start", "ll_find() with start", 0);
-  check_element(res, &elem[3], "ll_find_start", "ll_find() with start");
-
-  return 0;
-}
diff --git a/libs/dbprim/tests/t_ll_flush.c b/libs/dbprim/tests/t_ll_flush.c
deleted file mode 100644 (file)
index 510d48f..0000000
+++ /dev/null
@@ -1,185 +0,0 @@
-/*
-** Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-**
-** This library is free software; you can redistribute it and/or
-** modify it under the terms of the GNU Library General Public
-** License as published by the Free Software Foundation; either
-** version 2 of the License, or (at your option) any later version.
-**
-** This library 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
-** Library General Public License for more details.
-**
-** You should have received a copy of the GNU Library General Public
-** License along with this library; if not, write to the Free
-** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-** MA 02111-1307, USA
-**
-** @(#)$Id$
-*/
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "dbprim.h"
-
-#define OBJECT0 (void *)0x01234567
-#define OBJECT1 (void *)0x12345678
-#define OBJECT2 (void *)0x23456789
-#define OBJECT3 (void *)0x3456789a
-#define OBJECT4 (void *)0x456789ab
-
-#define OBJECT5 (void *)0x56789abc
-#define OBJECT6 (void *)0x6789abcd
-#define OBJECT7 (void *)0x789abcde
-#define OBJECT8 (void *)0x89abcdef
-#define OBJECT9 (void *)0x9abcdef0
-
-#define OBJECTA (void *)0xabcdef01
-
-#define DEADINT        0xdeadbeef
-#define DEADPTR        (void *)0xdeadbeef
-
-struct flushcheck {
-  link_head_t *elem_list;
-  link_elem_t *elem_array;
-  int         elem_idx;
-};
-
-/* Check return value of add operation and report PASS/FAIL */
-static void
-check_result(unsigned long result, unsigned long expected, char *test,
-            char *info, int die)
-{
-  if (result != expected) {
-    printf("FAIL/%s:%s incorrectly returned %lu (expected %lu)\n", test, info,
-          result, expected);
-    if (die)
-      exit(0);
-  } else
-    printf("PASS/%s:%s correctly returned %lu\n", test, info, result);
-}
-
-/* Check that a list head matches expectations */
-static void
-check_list(link_head_t *list, unsigned int count, link_elem_t *head,
-          link_elem_t *tail, char *test, char *info)
-{
-  if (list->lh_count != count) { /* Check count first */
-    printf("FAIL/%s_count:%s: Count mismatch\n", test, info);
-    exit(0);
-  } else
-    printf("PASS/%s_count:%s: Counts match\n", test, info);
-
-  if (list->lh_first != head) { /* then check the head pointer */
-    printf("FAIL/%s_first:%s: Head pointer mismatch\n", test, info);
-    exit(0);
-  } else
-    printf("PASS/%s_first:%s: Head pointers match\n", test, info);
-
-  if (list->lh_last != tail) { /* finally check the tail pointer */
-    printf("FAIL/%s_last:%s: Tail pointer mismatch\n", test, info);
-    exit(0);
-  } else
-    printf("PASS/%s_last:%s: Tail pointers match\n", test, info);
-}
-
-static unsigned long
-check_flush(link_head_t *head, link_elem_t *elem, void *extra)
-{
-  struct flushcheck *itcheck;
-
-  itcheck = extra;
-
-  /* OK, verify that the list head is the same as the one we expect */
-  if (head != itcheck->elem_list)
-    printf("FAIL/ll_flush_funchead_e%d:List heads do not match\n",
-          itcheck->elem_idx);
-  else
-    printf("PASS/ll_flush_funchead_e%d:List heads match\n", itcheck->elem_idx);
-
-  /* Now verify that the element is what we expect. */
-  if (elem != &itcheck->elem_array[itcheck->elem_idx])
-    printf("FAIL/ll_flush_funcelem_e%d:Elements do not match\n",
-          itcheck->elem_idx);
-  else
-    printf("PASS/ll_flush_funcelem_e%d:Elements match\n", itcheck->elem_idx);
-
-  /* Increment index and return error if it was 0 */
-  return (!itcheck->elem_idx++ ? EINVAL : 0);
-}
-
-int
-main(int argc, char **argv)
-{
-  int i;
-  link_head_t list[] = { /* some lists to operate on */
-    LINK_HEAD_INIT(0),
-    LINK_HEAD_INIT(0),
-    { DEADINT, DEADINT, DEADPTR, DEADPTR, 0 } /* list[2] is a bad list */
-  };
-  link_elem_t elem[] = { /* some elements to operate on */
-    LINK_ELEM_INIT(OBJECT0),
-    LINK_ELEM_INIT(OBJECT1),
-    LINK_ELEM_INIT(OBJECT2),
-    LINK_ELEM_INIT(OBJECT3),
-    LINK_ELEM_INIT(OBJECT4),
-    LINK_ELEM_INIT(OBJECT5),
-    LINK_ELEM_INIT(OBJECT6),
-    LINK_ELEM_INIT(OBJECT7),
-    LINK_ELEM_INIT(OBJECT8),
-    LINK_ELEM_INIT(OBJECT9),
-    LINK_ELEM_INIT(OBJECTA),
-  };
-  struct flushcheck itcheck = { 0, 0, 0 };
-
-  /* First, build the lists */
-  for (i = 0; i < 5; i++)
-    if (ll_add(&list[0], &elem[i], LINK_LOC_TAIL, 0) ||
-       ll_add(&list[1], &elem[i + 5], LINK_LOC_TAIL, 0))
-      return -1; /* failed to initialize test */
-
-  /* Baseline checks */
-  check_list(&list[0], 5, &elem[0], &elem[4], "ll_flush_baseline_l0",
-            "Verify baseline list 0");
-  check_list(&list[1], 5, &elem[5], &elem[9], "ll_flush_baseline_l1",
-            "Verify baseline list 1");
-
-  /* Check to see if ll_flush() verifies its arguments correctly */
-  check_result(ll_flush(0, 0, 0), DB_ERR_BADARGS, "ll_flush_noargs",
-              "ll_flush() with no arguments", 0);
-  check_result(ll_flush(&list[2], check_flush, &itcheck), DB_ERR_BADARGS,
-              "ll_flush_badlist", "ll_flush() with bad list", 0);
-
-  /* Check to see if ll_flush() operates properly with no flush function */
-  check_result(ll_flush(&list[1], 0, 0), 0, "ll_flush_nofunc",
-              "ll_flush() with no flush function", 0);
-  check_list(&list[1], 0, 0, 0, "ll_flush_nofunc",
-            "Test ll_flush() element removal (no flush function)");
-
-  /* Now check to see if ll_flush() returns what the flush function returns */
-  itcheck.elem_list = &list[0];
-  itcheck.elem_array = elem;
-  itcheck.elem_idx = 0;
-  check_result(ll_flush(&list[0], check_flush, &itcheck), EINVAL,
-              "ll_flush_funcreturn",
-              "ll_flush() returning flush function return value", 0);
-  check_list(&list[0], 4, &elem[1], &elem[4], "ll_flush_funcreturn",
-            "Test ll_flush() element removal (function return non-zero)");
-
-  /* Now flush the list completely */
-  check_result(ll_flush(&list[0], check_flush, &itcheck), 0,
-              "ll_flush_function", "ll_flush() flush", 0);
-  check_list(&list[0], 0, 0, 0, "ll_flush_function",
-            "Test ll_flush() element removal (function return zero)");
-
-  /* Did it check them all? */
-  if (itcheck.elem_idx == 5)
-    printf("PASS/ll_flush_func_count:ll_flush() visited all items\n");
-  else
-    printf("PASS/ll_flush_func_count:ll_flush() visited only %d items\n",
-          itcheck.elem_idx);
-
-  return 0;
-}
diff --git a/libs/dbprim/tests/t_ll_init.c b/libs/dbprim/tests/t_ll_init.c
deleted file mode 100644 (file)
index 1baed10..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
-** Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-**
-** This library is free software; you can redistribute it and/or
-** modify it under the terms of the GNU Library General Public
-** License as published by the Free Software Foundation; either
-** version 2 of the License, or (at your option) any later version.
-**
-** This library 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
-** Library General Public License for more details.
-**
-** You should have received a copy of the GNU Library General Public
-** License along with this library; if not, write to the Free
-** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-** MA 02111-1307, USA
-**
-** @(#)$Id$
-*/
-#include <stdio.h>
-
-#include "dbprim.h"
-
-#define DEADINT        0xdeadbeef
-#define DEADPTR        (void *)0xdeadbeef
-
-static void
-check_init(link_head_t *head, char *how)
-{
-  if (head->lh_magic != LINK_HEAD_MAGIC) /* Verify magic was set */
-    printf("FAIL/%s_magic:Initialization failed to set magic number\n", how);
-  else
-    printf("PASS/%s_magic:Initialization set magic number properly\n", how);
-
-  if (head->lh_count != 0) /* verify count was set */
-    printf("FAIL/%s_count:Initialization failed to clear count\n", how);
-  else
-    printf("PASS/%s_count:Initialization set count to 0\n", how);
-
-  if (head->lh_first != 0) /* verify first was set */
-    printf("FAIL/%s_first:Initialization failed to clear first pointer\n",
-          how);
-  else
-    printf("PASS/%s_first:Initialization set first pointer to 0\n", how);
-
-  if (head->lh_last != 0) /* verify last was set */
-    printf("FAIL/%s_last:Initialization failed to clear last pointer\n", how);
-  else
-    printf("PASS/%s_last:Initialization set last pointer to 0\n", how);
-}
-
-int
-main(int argc, char **argv)
-{
-  unsigned long errcode;
-  link_head_t head = LINK_HEAD_INIT(0);
-
-  /* Check that the static initializer produces a passable structure */
-  check_init(&head, "ll_static");
-
-  /* now, check what ll_init does with bad arguments */
-  if ((errcode = ll_init(0, 0)) == DB_ERR_BADARGS)
-    printf("PASS/ll_init_nohead:ll_init(0, 0) returns DB_ERR_BADARGS\n");
-  else
-    printf("FAIL/ll_init_nohead:ll_init(0, 0) returned %lu instead of "
-          "DB_ERR_BADARGS\n", errcode);
-
-  /* Scramble the structure */
-  head.lh_magic = DEADINT;
-  head.lh_count = DEADINT;
-  head.lh_first = DEADPTR;
-  head.lh_last = DEADPTR;
-  head.lh_extra = DEADPTR;
-
-  /* Now try to initialize our structure and see what happens */
-  if ((errcode = ll_init(&head, 0))) {
-    printf("FAIL/ll_dynamic:ll_init(&head, 0) returned failure (%lu)\n",
-          errcode);
-    return 0;
-  } else
-    printf("PASS/ll_dynamic:ll_init(&head, 0) returned success\n");
-
-  /* Finally, verify initialization */
-  check_init(&head, "ll_dynamic");
-
-  return 0;
-}
diff --git a/libs/dbprim/tests/t_ll_iter.c b/libs/dbprim/tests/t_ll_iter.c
deleted file mode 100644 (file)
index 7c7d91d..0000000
+++ /dev/null
@@ -1,165 +0,0 @@
-/*
-** Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-**
-** This library is free software; you can redistribute it and/or
-** modify it under the terms of the GNU Library General Public
-** License as published by the Free Software Foundation; either
-** version 2 of the License, or (at your option) any later version.
-**
-** This library 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
-** Library General Public License for more details.
-**
-** You should have received a copy of the GNU Library General Public
-** License along with this library; if not, write to the Free
-** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-** MA 02111-1307, USA
-**
-** @(#)$Id$
-*/
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "dbprim.h"
-
-#define OBJECT0 (void *)0x01234567
-#define OBJECT1 (void *)0x12345678
-#define OBJECT2 (void *)0x23456789
-#define OBJECT3 (void *)0x3456789a
-#define OBJECT4 (void *)0x456789ab
-#define OBJECT5 (void *)0x56789abc
-
-#define DEADINT        0xdeadbeef
-#define DEADPTR        (void *)0xdeadbeef
-
-struct itercheck {
-  link_elem_t *elem_array;
-  int         elem_idx;
-};
-
-/* Check return value of add operation and report PASS/FAIL */
-static void
-check_result(unsigned long result, unsigned long expected, char *test,
-            char *info, int die)
-{
-  if (result != expected) {
-    printf("FAIL/%s:%s incorrectly returned %lu (expected %lu)\n", test, info,
-          result, expected);
-    if (die)
-      exit(0);
-  } else
-    printf("PASS/%s:%s correctly returned %lu\n", test, info, result);
-}
-
-/* Check that a list head matches expectations */
-static void
-check_list(link_head_t *list, unsigned int count, link_elem_t *head,
-          link_elem_t *tail, char *test, char *info)
-{
-  if (list->lh_count != count) { /* Check count first */
-    printf("FAIL/%s_count:%s: Count mismatch\n", test, info);
-    exit(0);
-  } else
-    printf("PASS/%s_count:%s: Counts match\n", test, info);
-
-  if (list->lh_first != head) { /* then check the head pointer */
-    printf("FAIL/%s_first:%s: Head pointer mismatch\n", test, info);
-    exit(0);
-  } else
-    printf("PASS/%s_first:%s: Head pointers match\n", test, info);
-
-  if (list->lh_last != tail) { /* finally check the tail pointer */
-    printf("FAIL/%s_last:%s: Tail pointer mismatch\n", test, info);
-    exit(0);
-  } else
-    printf("PASS/%s_last:%s: Tail pointers match\n", test, info);
-}
-
-static unsigned long
-check_iter(link_head_t *head, link_elem_t *elem, void *extra)
-{
-  struct itercheck *itcheck;
-
-  itcheck = extra;
-
-  /* If we were told to return an error, return one */
-  if (!itcheck->elem_array)
-    return EINVAL;
-
-  /* OK, verify that the list head is the same as the one we expect */
-  if (head != le_head(&itcheck->elem_array[0]))
-    printf("FAIL/ll_iter_funchead_e%d:List heads do not match\n",
-          itcheck->elem_idx);
-  else
-    printf("PASS/ll_iter_funchead_e%d:List heads match\n", itcheck->elem_idx);
-
-  /* Now verify that the element is what we expect. */
-  if (elem != &itcheck->elem_array[itcheck->elem_idx])
-    printf("FAIL/ll_iter_funcelem_e%d:Elements do not match\n",
-          itcheck->elem_idx);
-  else
-    printf("PASS/ll_iter_funcelem_e%d:Elements match\n", itcheck->elem_idx);
-
-  /* Finally, increment the index */
-  itcheck->elem_idx++;
-
-  return 0;
-}
-
-int
-main(int argc, char **argv)
-{
-  int i;
-  link_head_t list[] = { /* some lists to operate on */
-    LINK_HEAD_INIT(0),
-    { DEADINT, DEADINT, DEADPTR, DEADPTR, 0 } /* list[1] is a bad list */
-  };
-  link_elem_t elem[] = { /* some elements to operate on */
-    LINK_ELEM_INIT(OBJECT0),
-    LINK_ELEM_INIT(OBJECT1),
-    LINK_ELEM_INIT(OBJECT2),
-    LINK_ELEM_INIT(OBJECT3),
-    LINK_ELEM_INIT(OBJECT4),
-    LINK_ELEM_INIT(OBJECT5),
-  };
-  struct itercheck itcheck = { 0, 0 };
-
-  /* First, build the lists */
-  for (i = 0; i < 5; i++)
-    if (ll_add(&list[0], &elem[i], LINK_LOC_TAIL, 0))
-      return -1; /* failed to initialize test */
-
-  /* Baseline checks */
-  check_list(&list[0], 5, &elem[0], &elem[4], "ll_iter_baseline",
-            "Verify baseline list");
-
-  /* Check to see if ll_iter() verifies its arguments correctly */
-  check_result(ll_iter(0, 0, 0), DB_ERR_BADARGS, "ll_iter_noargs",
-              "ll_iter() with no arguments", 0);
-  check_result(ll_iter(&list[1], check_iter, &itcheck), DB_ERR_BADARGS,
-              "ll_iter_badlist", "ll_iter() with bad list", 0);
-  check_result(ll_iter(&list[0], 0, &itcheck), DB_ERR_BADARGS,
-              "ll_iter_badfunc", "ll_iter() with bad function", 0);
-
-  /* Now check to see if ll_iter() returns what the iter function returns */
-  check_result(ll_iter(&list[0], check_iter, &itcheck), EINVAL,
-              "ll_iter_funcreturn",
-              "ll_iter() returning iteration function return value", 0);
-
-  /* Now iterate through the list */
-  itcheck.elem_array = elem;
-  itcheck.elem_idx = 0;
-  check_result(ll_iter(&list[0], check_iter, &itcheck), 0, "ll_iter_function",
-              "ll_iter() iteration", 0);
-
-  /* Did it check them all? */
-  if (itcheck.elem_idx == 5)
-    printf("PASS/ll_iter_func_count:ll_iter() visited all items\n");
-  else
-    printf("FAIL/ll_iter_func_count:ll_iter() visited only %d items\n",
-          itcheck.elem_idx);
-
-  return 0;
-}
diff --git a/libs/dbprim/tests/t_ll_move.c b/libs/dbprim/tests/t_ll_move.c
deleted file mode 100644 (file)
index 75a5f18..0000000
+++ /dev/null
@@ -1,258 +0,0 @@
-/*
-** Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-**
-** This library is free software; you can redistribute it and/or
-** modify it under the terms of the GNU Library General Public
-** License as published by the Free Software Foundation; either
-** version 2 of the License, or (at your option) any later version.
-**
-** This library 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
-** Library General Public License for more details.
-**
-** You should have received a copy of the GNU Library General Public
-** License along with this library; if not, write to the Free
-** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-** MA 02111-1307, USA
-**
-** @(#)$Id$
-*/
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "dbprim.h"
-
-#define OBJECT0 (void *)0x01234567
-#define OBJECT1 (void *)0x12345678
-#define OBJECT2 (void *)0x23456789
-#define OBJECT3 (void *)0x3456789a
-#define OBJECT4 (void *)0x456789ab
-
-#define OBJECT5 (void *)0x56789abc
-#define OBJECT6 (void *)0x6789abcd
-#define OBJECT7 (void *)0x789abcde
-#define OBJECT8 (void *)0x89abcdef
-#define OBJECT9 (void *)0x9abcdef0
-
-#define OBJECTA (void *)0xabcdef01
-
-#define DEADINT        0xdeadbeef
-#define DEADPTR        (void *)0xdeadbeef
-
-/* Check return value of add operation and report PASS/FAIL */
-static void
-check_result(unsigned long result, unsigned long expected, char *test,
-            char *info, int die)
-{
-  if (result != expected) {
-    printf("FAIL/%s:%s incorrectly returned %lu (expected %lu)\n", test, info,
-          result, expected);
-    if (die)
-      exit(0);
-  } else
-    printf("PASS/%s:%s correctly returned %lu\n", test, info, result);
-}
-
-/* Check that a list head matches expectations */
-static void
-check_list(link_head_t *list, unsigned int count, link_elem_t *head,
-          link_elem_t *tail, int idx, char *test, char *info)
-{
-  if (list->lh_count != count) { /* Check count first */
-    printf("FAIL/%s_%d_count:%s: Count mismatch\n", test, idx, info);
-    exit(0);
-  } else
-    printf("PASS/%s_%d_count:%s: Counts match\n", test, idx, info);
-
-  if (list->lh_first != head) { /* then check the head pointer */
-    printf("FAIL/%s_%d_first:%s: Head pointer mismatch\n", test, idx, info);
-    exit(0);
-  } else
-    printf("PASS/%s_%d_first:%s: Head pointers match\n", test, idx, info);
-
-  if (list->lh_last != tail) { /* finally check the tail pointer */
-    printf("FAIL/%s_%d_last:%s: Tail pointer mismatch\n", test, idx, info);
-    exit(0);
-  } else
-    printf("PASS/%s_%d_last:%s: Tail pointers match\n", test, idx, info);
-}
-
-/* Check that a list element matches expectations */
-static void
-check_elem(link_elem_t *elem, link_elem_t *prev, link_elem_t *next,
-          link_head_t *head, int l_idx, int e_idx, char *test, char *info)
-{
-  if (elem->le_next != next) { /* check next pointer first */
-    printf("FAIL/%s_%d/%d_next:%s: Next pointer mismatch\n", test, l_idx,
-          e_idx, info);
-    exit(0);
-  } else
-    printf("PASS/%s_%d/%d_next:%s: Next pointers match\n", test, l_idx, e_idx,
-          info);
-
-  if (elem->le_prev != prev) { /* then check prev pointer */
-    printf("FAIL/%s_%d/%d_prev:%s: Prev pointer mismatch\n", test, l_idx,
-          e_idx, info);
-    exit(0);
-  } else
-    printf("PASS/%s_%d/%d_prev:%s: Prev pointers match\n", test, l_idx, e_idx,
-          info);
-
-  if (elem->le_head != head) { /* finally check list head pointer */
-    printf("FAIL/%s_%d/%d_head:%s: Head pointer mismatch\n", test, l_idx,
-          e_idx, info);
-    exit(0);
-  } else
-    printf("PASS/%s_%d/%d_head:%s: Head pointers match\n", test, l_idx, e_idx,
-          info);
-}
-
-/* Check the status of the list */
-static void
-check_list_order(link_head_t *lists, int list_idx, link_elem_t *elems,
-                int elem1_idx, int elem2_idx, int elem3_idx, int elem4_idx,
-                int elem5_idx, char *test, char *info)
-{
-  /* Check that the list head looks correct first */
-  check_list(&lists[list_idx], 5, &elems[elem1_idx], &elems[elem5_idx],
-            list_idx, test, info);
-  /* Now check that all elements are there and are in the proper order */
-  check_elem(&elems[elem1_idx], 0, &elems[elem2_idx], &lists[list_idx],
-            list_idx, elem1_idx, test, info);
-  check_elem(&elems[elem2_idx], &elems[elem1_idx], &elems[elem3_idx],
-            &lists[list_idx], list_idx, elem2_idx, test, info);
-  check_elem(&elems[elem3_idx], &elems[elem2_idx], &elems[elem4_idx],
-            &lists[list_idx], list_idx, elem3_idx, test, info);
-  check_elem(&elems[elem4_idx], &elems[elem3_idx], &elems[elem5_idx],
-            &lists[list_idx], list_idx, elem4_idx, test, info);
-  check_elem(&elems[elem5_idx], &elems[elem4_idx], 0, &lists[list_idx],
-            list_idx, elem5_idx, test, info);
-}
-
-int
-main(int argc, char **argv)
-{
-  int i;
-  link_head_t list[] = { /* some lists to operate on */
-    LINK_HEAD_INIT(0),
-    LINK_HEAD_INIT(0),
-    { DEADINT, DEADINT, DEADPTR, DEADPTR, 0 } /* list[2] is a bad list */
-  };
-  link_elem_t elem[] = { /* some elements to operate on */
-    LINK_ELEM_INIT(OBJECT0),
-    LINK_ELEM_INIT(OBJECT1),
-    LINK_ELEM_INIT(OBJECT2),
-    LINK_ELEM_INIT(OBJECT3),
-    LINK_ELEM_INIT(OBJECT4),
-    LINK_ELEM_INIT(OBJECT5),
-    LINK_ELEM_INIT(OBJECT6),
-    LINK_ELEM_INIT(OBJECT7),
-    LINK_ELEM_INIT(OBJECT8),
-    LINK_ELEM_INIT(OBJECT9),
-    LINK_ELEM_INIT(OBJECTA),
-    { DEADINT, DEADPTR, DEADPTR, DEADPTR, DEADPTR, DEADINT } /* elem[11] */
-  };
-
-  /* First, build the lists */
-  for (i = 0; i < 5; i++)
-    if (ll_add(&list[0], &elem[i], LINK_LOC_TAIL, 0) ||
-       ll_add(&list[1], &elem[i + 5], LINK_LOC_TAIL, 0))
-      return -1; /* failed to initialize test */
-    
-  /* Baseline--verify that the lists are in proper order */
-  check_list_order(list, 0, elem, 0, 1, 2, 3, 4, "ll_move_baseline",
-                  "Verify baseline list[0] ordering");
-  check_list_order(list, 1, elem, 5, 6, 7, 8, 9, "ll_move_baseline",
-                  "Verify baseline list[1] ordering");
-
-  /* OK, now check to see if ll_move verifies its arguments correctly */
-  check_result(ll_move(0, 0, LINK_LOC_HEAD, 0), DB_ERR_BADARGS,
-              "ll_move_noargs", "ll_move() with no arguments", 0);
-  check_result(ll_move(&list[2], &elem[0], LINK_LOC_HEAD, 0), DB_ERR_BADARGS,
-              "ll_move_badlist", "ll_move() with bad list", 1);
-  check_result(ll_move(&list[0], &elem[11], LINK_LOC_HEAD, 0),
-              DB_ERR_BADARGS, "ll_move_badnew",
-              "ll_move() with bad new element", 1);
-  check_result(ll_move(&list[0], &elem[0], LINK_LOC_TAIL, &elem[11]),
-              DB_ERR_BADARGS, "ll_move_badelem",
-              "ll_move() with bad element", 1);
-  check_result(ll_move(&list[0], &elem[0], LINK_LOC_BEFORE, 0),
-              DB_ERR_BADARGS, "ll_move_before_noelem",
-              "ll_move() before with no element", 1);
-  check_result(ll_move(&list[0], &elem[0], LINK_LOC_AFTER, 0),
-              DB_ERR_BADARGS, "ll_move_after_noelem",
-              "ll_move() after with no element", 1);
-
-  /* Make sure movement of object around itself is rejected */
-  check_result(ll_move(&list[0], &elem[0], LINK_LOC_BEFORE, &elem[0]),
-              DB_ERR_BUSY, "ll_move_neweqelem",
-              "ll_move() with new == element", 1);
-
-  /* Check to see if unused elements are detected correctly */
-  check_result(ll_move(&list[0], &elem[10], LINK_LOC_HEAD, 0),
-              DB_ERR_UNUSED, "ll_move_newunused",
-              "ll_move() with unused new element", 1);
-  check_result(ll_move(&list[0], &elem[4], LINK_LOC_HEAD, &elem[10]),
-              DB_ERR_UNUSED, "ll_move_elemunused",
-              "ll_move() with unused original element", 1);
-
-  /* Next check to see if list mismatches are handled properly */
-  check_result(ll_move(&list[0], &elem[5], LINK_LOC_HEAD, 0),
-              DB_ERR_WRONGTABLE, "ll_move_newwronglist",
-              "ll_move() with new element in wrong list", 1);
-  check_result(ll_move(&list[0], &elem[4], LINK_LOC_HEAD, &elem[5]),
-              DB_ERR_WRONGTABLE, "ll_move_elemwronglist",
-              "ll_move() with original element in wrong list", 1);
-
-  /* OK, now let's actually do something */
-
-  /* Start off with moving the tail element to the head of the list */
-  check_result(ll_move(&list[0], &elem[4], LINK_LOC_HEAD, 0), 0,
-              "ll_move_l0e4h", "Move tail element to head of list", 1);
-  check_list_order(list, 0, elem, 4, 0, 1, 2, 3, "ll_move_l0e4h",
-                  "Test movement of tail element to head of list");
-
-  /* Now try the head element back to the tail of the list */
-  check_result(ll_move(&list[0], &elem[4], LINK_LOC_TAIL, 0), 0,
-              "ll_move_l0e4t", "Move head element to tail of list", 1);
-  check_list_order(list, 0, elem, 0, 1, 2, 3, 4, "ll_move_l0e4t",
-                  "Test movement of head element to tail of list");
-
-  /* Let's now move the tail element to *after* the head of the list */
-  check_result(ll_move(&list[0], &elem[4], LINK_LOC_AFTER, &elem[0]), 0,
-              "ll_move_l0e4a0", "Move tail element to after head of list", 1);
-  check_list_order(list, 0, elem, 0, 4, 1, 2, 3, "ll_move_l0e4a0",
-                  "Test movement of tail to after head of list");
-
-  /* How about moving the head element to *before* the tail of the list? */
-  check_result(ll_move(&list[0], &elem[0], LINK_LOC_BEFORE, &elem[3]), 0,
-              "ll_move_l0e0b3", "Move head element to before tail of list",
-              1);
-  check_list_order(list, 0, elem, 4, 1, 2, 0, 3, "ll_move_l0e0b3",
-                  "Test movement of head to before tail of list");
-
-  /* OK, now do some dancing element checks */
-  check_result(ll_move(&list[0], &elem[4], LINK_LOC_AFTER, &elem[1]), 0,
-              "ll_move_l0e4a1", "Swap elements with LINK_LOC_AFTER", 1);
-  check_list_order(list, 0, elem, 1, 4, 2, 0, 3, "ll_move_l0e4a1",
-                  "Swap elements with LINK_LOC_AFTER");
-  check_result(ll_move(&list[0], &elem[3], LINK_LOC_BEFORE, &elem[0]), 0,
-              "ll_move_l0e3b0", "Swap elements with LINK_LOC_BEFORE", 1);
-  check_list_order(list, 0, elem, 1, 4, 2, 3, 0, "ll_move_l0e3b0",
-                  "Swap elements with LINK_LOC_BEFORE");
-
-  /* Finally, verify that moving heads/tails to the head/tail (respectively)
-   * works properly.
-   */
-  check_result(ll_move(&list[0], &elem[1], LINK_LOC_HEAD, 0), 0,
-              "ll_move_l0e1h", "Move head element to head", 1);
-  check_list_order(list, 0, elem, 1, 4, 2, 3, 0, "ll_move_l0e1h",
-                  "Move head element to head");
-  check_result(ll_move(&list[0], &elem[0], LINK_LOC_TAIL, 0), 0,
-              "ll_move_l0e0t", "Move tail element to tail", 1);
-  check_list_order(list, 0, elem, 1, 4, 2, 3, 0, "ll_move_l0e0t",
-                  "Move tail element to tail");
-
-  return 0;
-}
diff --git a/libs/dbprim/tests/t_ll_remove.c b/libs/dbprim/tests/t_ll_remove.c
deleted file mode 100644 (file)
index 11fd1ff..0000000
+++ /dev/null
@@ -1,197 +0,0 @@
-/*
-** Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-**
-** This library is free software; you can redistribute it and/or
-** modify it under the terms of the GNU Library General Public
-** License as published by the Free Software Foundation; either
-** version 2 of the License, or (at your option) any later version.
-**
-** This library 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
-** Library General Public License for more details.
-**
-** You should have received a copy of the GNU Library General Public
-** License along with this library; if not, write to the Free
-** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-** MA 02111-1307, USA
-**
-** @(#)$Id$
-*/
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "dbprim.h"
-
-#define OBJECT0 (void *)0x01234567
-#define OBJECT1 (void *)0x12345678
-#define OBJECT2 (void *)0x23456789
-#define OBJECT3 (void *)0x3456789a
-#define OBJECT4 (void *)0x456789ab
-#define OBJECT5 (void *)0x56789abc
-#define OBJECT6 (void *)0x6789abcd
-#define OBJECT7 (void *)0x789abcde
-
-#define OBJECT8 (void *)0x89abcdef
-
-#define OBJECT9 (void *)0x9abcdef0
-
-#define DEADINT        0xdeadbeef
-#define DEADPTR        (void *)0xdeadbeef
-
-/* Check return value of add operation and report PASS/FAIL */
-static void
-check_result(unsigned long result, unsigned long expected, char *test,
-            char *info, int die)
-{
-  if (result != expected) {
-    printf("FAIL/%s:%s incorrectly returned %lu (expected %lu)\n", test, info,
-          result, expected);
-    if (die)
-      exit(0);
-  } else
-    printf("PASS/%s:%s correctly returned %lu\n", test, info, result);
-}
-
-/* Check that a list head matches expectations */
-static void
-check_list(link_head_t *list, unsigned int count, link_elem_t *head,
-          link_elem_t *tail, int idx, char *test, char *info)
-{
-  if (list->lh_count != count) { /* Check count first */
-    printf("FAIL/%s_%d_count:%s: Count mismatch\n", test, idx, info);
-    exit(0);
-  } else
-    printf("PASS/%s_%d_count:%s: Counts match\n", test, idx, info);
-
-  if (list->lh_first != head) { /* then check the head pointer */
-    printf("FAIL/%s_%d_first:%s: Head pointer mismatch\n", test, idx, info);
-    exit(0);
-  } else
-    printf("PASS/%s_%d_first:%s: Head pointers match\n", test, idx, info);
-
-  if (list->lh_last != tail) { /* finally check the tail pointer */
-    printf("FAIL/%s_%d_last:%s: Tail pointer mismatch\n", test, idx, info);
-    exit(0);
-  } else
-    printf("PASS/%s_%d_last:%s: Tail pointers match\n", test, idx, info);
-}
-
-/* Check that a list element matches expectations */
-static void
-check_elem(link_elem_t *elem, link_elem_t *prev, link_elem_t *next,
-          link_head_t *head, int l_idx, int e_idx, char *test, char *info)
-{
-  if (elem->le_next != next) { /* check next pointer first */
-    printf("FAIL/%s_%d/%d_next:%s: Next pointer mismatch\n", test, l_idx,
-          e_idx, info);
-    exit(0);
-  } else
-    printf("PASS/%s_%d/%d_next:%s: Next pointers match\n", test, l_idx, e_idx,
-          info);
-
-  if (elem->le_prev != prev) { /* then check prev pointer */
-    printf("FAIL/%s_%d/%d_prev:%s: Prev pointer mismatch\n", test, l_idx,
-          e_idx, info);
-    exit(0);
-  } else
-    printf("PASS/%s_%d/%d_prev:%s: Prev pointers match\n", test, l_idx, e_idx,
-          info);
-
-  if (elem->le_head != head) { /* finally check list head pointer */
-    printf("FAIL/%s_%d/%d_head:%s: Head pointer mismatch\n", test, l_idx,
-          e_idx, info);
-    exit(0);
-  } else
-    printf("PASS/%s_%d/%d_head:%s: Head pointers match\n", test, l_idx, e_idx,
-          info);
-}
-
-int
-main(int argc, char **argv)
-{
-  int i;
-  link_head_t list[] = { /* some lists to operate on */
-    LINK_HEAD_INIT(0),
-    LINK_HEAD_INIT(0),
-    { DEADINT, DEADINT, DEADPTR, DEADPTR, 0 } /* list[2] is a bad list */
-  };
-  link_elem_t elem[] = { /* some elements to operate on */
-    LINK_ELEM_INIT(OBJECT0),
-    LINK_ELEM_INIT(OBJECT1),
-    LINK_ELEM_INIT(OBJECT2),
-    LINK_ELEM_INIT(OBJECT3),
-    LINK_ELEM_INIT(OBJECT4),
-    LINK_ELEM_INIT(OBJECT5),
-    LINK_ELEM_INIT(OBJECT6),
-    LINK_ELEM_INIT(OBJECT7),
-    LINK_ELEM_INIT(OBJECT8),
-    LINK_ELEM_INIT(OBJECT9),
-    { DEADINT, DEADPTR, DEADPTR, DEADPTR, DEADPTR, DEADINT } /* elem[10] */
-  };
-
-  /* First, build the lists */
-  for (i = 0; i < 8; i++)
-    if (ll_add(&list[0], &elem[i], LINK_LOC_TAIL, 0))
-      return -1; /* failed to initialize test */
-
-  if (ll_add(&list[1], &elem[8], LINK_LOC_TAIL, 0))
-    return -1; /* failed to initialize test */
-
-  /* Baseline checks */
-  check_list(&list[0], 8, &elem[0], &elem[7], 0, "ll_remove_baseline",
-            "Verify baseline list[0]");
-  check_list(&list[1], 1, &elem[8], &elem[8], 1, "ll_remove_baseline",
-            "Verify baseline list[1]");
-
-  /* Check to see if ll_remove verifies its arguments correctly */
-  check_result(ll_remove(0, 0), DB_ERR_BADARGS, "ll_remove_noargs",
-              "ll_remove() with no arguments", 0);
-  check_result(ll_remove(&list[2], &elem[0]), DB_ERR_BADARGS,
-              "ll_remove_badlist", "ll_remove() with bad list", 1);
-  check_result(ll_remove(&list[0], &elem[10]), DB_ERR_BADARGS,
-              "ll_remove_badelem", "ll_remove() with bad element", 1);
-
-  /* Unused element test */
-  check_result(ll_remove(&list[0], &elem[9]), DB_ERR_UNUSED,
-              "ll_remove_unused", "ll_remove() with unused element", 1);
-
-  /* Wrong list test */
-  check_result(ll_remove(&list[0], &elem[8]), DB_ERR_WRONGTABLE,
-              "ll_remove_wronglist", "ll_remove() with element in wrong list",
-              1);
-
-  /* Make sure removing from a one-item list does the right thing */
-  check_result(ll_remove(&list[1], &elem[8]), 0, "ll_remove_l1e8",
-              "Remove an item from one-item list", 1);
-  check_list(&list[1], 0, 0, 0, 1, "ll_remove_l1e8",
-            "Test removal of an item from one-item list");
-
-  /* Now try removing an item from the head of a longer list */
-  check_result(ll_remove(&list[0], &elem[0]), 0, "ll_remove_l0e0",
-              "Remove an item from head of list", 1);
-  check_list(&list[0], 7, &elem[1], &elem[7], 0, "ll_remove_l0e0",
-            "Test removal of an item from head of list");
-  check_elem(&elem[1], 0, &elem[2], &list[0], 0, 1, "ll_remove_l0e0",
-            "Test removal of an item from head of list");
-
-  /* Now try the tail... */
-  check_result(ll_remove(&list[0], &elem[7]), 0, "ll_remove_l0e7",
-              "Remove an item from tail of list", 1);
-  check_list(&list[0], 6, &elem[1], &elem[6], 0, "ll_remove_l0e7",
-            "Test removal of an item from tail of list");
-  check_elem(&elem[6], &elem[5], 0, &list[0], 0, 6, "ll_remove_l0e7",
-            "Test removal of an item from tail of list");
-
-  /* Finally, try the middle of the list */
-  check_result(ll_remove(&list[0], &elem[3]), 0, "ll_remove_l0e3",
-              "Remove an item from middle of list", 1);
-  check_list(&list[0], 5, &elem[1], &elem[6], 0, "ll_remove_l0e3",
-            "Test removal of an item from middle of list");
-  check_elem(&elem[2], &elem[1], &elem[4], &list[0], 0, 2, "ll_remove_l0e3",
-            "Test removal of an item from middle of list");
-  check_elem(&elem[4], &elem[2], &elem[5], &list[0], 0, 4, "ll_remove_l0e3",
-            "Test removal of an item from middle of list");
-
-  return 0;
-}
diff --git a/libs/dbprim/tests/t_st_init.c b/libs/dbprim/tests/t_st_init.c
deleted file mode 100644 (file)
index 1f7989f..0000000
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
-** Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-**
-** This library is free software; you can redistribute it and/or
-** modify it under the terms of the GNU Library General Public
-** License as published by the Free Software Foundation; either
-** version 2 of the License, or (at your option) any later version.
-**
-** This library 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
-** Library General Public License for more details.
-**
-** You should have received a copy of the GNU Library General Public
-** License along with this library; if not, write to the Free
-** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-** MA 02111-1307, USA
-**
-** @(#)$Id$
-*/
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "dbprim.h"
-
-#define TABLE0 (void *)0x76543210
-
-#define DEADINT        0xdeadbeef
-#define DEADPTR        (void *)0xdeadbeef
-
-static void
-check_init(smat_table_t *table, unsigned long flags, unsigned long mod,
-          smat_resize_t rsize, void *extra, char *how)
-{
-  if (table->st_magic != SMAT_TABLE_MAGIC) /* Verify magic was set */
-    printf("FAIL/%s_magic:Initialization failed to set magic number\n", how);
-  else
-    printf("PASS/%s_magic:Initialization set magic number properly\n", how);
-
-  if (!ht_verify(&table->st_table)) /* Verify hash table initialized */
-    printf("FAIL/%s_htinit:Initialization failed to initialize hash table\n",
-          how);
-  else
-    printf("PASS/%s_htinit:Initialization initialized hash table properly\n",
-          how);
-
-  if (ht_flags(&table->st_table) != flags) /* verify flags were set */
-    printf("FAIL/%s_hflags:Initialization failed to set flags\n", how);
-  else
-    printf("PASS/%s_hflags:Initialization set flags properly\n", how);
-
-  if (ht_modulus(&table->st_table) != mod) /* verify modulus was set */
-    printf("FAIL/%s_hmodulus:Initialization failed to set modulus to %ld "
-          "(%ld instead)\n", how, mod, ht_modulus(&table->st_table));
-  else
-    printf("PASS/%s_hmodulus:Initialization set modulus to %ld\n", how, mod);
-
-  if (ht_func(&table->st_table) != _smat_hash) /* verify func was set */
-    printf("FAIL/%s_hfunc:Initialization failed to set hash func\n", how);
-  else
-    printf("PASS/%s_hfunc:Initialization set hash func properly\n", how);
-
-  if (ht_comp(&table->st_table) != _smat_comp) /* verify comp was set */
-    printf("FAIL/%s_hcomp:Initialization failed to set hash comp\n", how);
-  else
-    printf("PASS/%s_hcomp:Initialization set hash comp properly\n", how);
-
-  if (ht_rsize(&table->st_table) != _smat_resize) /* verify resize was set */
-    printf("FAIL/%s_hrsize:Initialization failed to set hash resize\n", how);
-  else
-    printf("PASS/%s_hrsize:Initialization set hash resize properly\n", how);
-
-  if (table->st_resize != rsize) /* verify resize was set */
-    printf("FAIL/%s_rsize:Initialization failed to set resize\n", how);
-  else
-    printf("PASS/%s_rsize:Initialization set resize properly\n", how);
-
-  if (ht_extra(&table->st_table) != extra) /* verify extra was set */
-    printf("FAIL/%s_hextra:Initialization failed to set extra\n", how);
-  else
-    printf("PASS/%s_hextra:Initialization set extra properly\n", how);
-}
-
-/* Check return value of operation and report PASS/FAIL */
-static void
-check_result(unsigned long result, unsigned long expected, char *test,
-            char *info, int die)
-{
-  if (result != expected) {
-    printf("FAIL/%s:%s incorrectly returned %lu (expected %lu)\n", test, info,
-          result, expected);
-    if (die)
-      exit(0);
-  } else
-    printf("PASS/%s:%s correctly returned %lu\n", test, info, result);
-}
-
-/* Scramble the table */
-static void
-scramble(smat_table_t *table)
-{
-  table->st_magic = DEADINT;
-  table->st_resize = (smat_resize_t)DEADPTR;
-  table->st_table.ht_magic = DEADINT;
-  ht_flags(&table->st_table) = DEADINT;
-  ht_modulus(&table->st_table) = DEADINT;
-  ht_func(&table->st_table) = (hash_func_t)DEADPTR;
-  ht_comp(&table->st_table) = (hash_comp_t)DEADPTR;
-  ht_extra(&table->st_table) = DEADPTR;
-}
-
-static unsigned long
-check_rsize(smat_table_t *tab, unsigned long new_mod)
-{
-  return 0;
-}
-
-int
-main(int argc, char **argv)
-{
-  smat_table_t table = SMAT_TABLE_INIT(0x80010000 | HASH_FLAG_AUTOGROW,
-                                      check_rsize, TABLE0);
-
-  /* Check that the static initializer produces a passable structure */
-  check_init(&table, HASH_FLAG_AUTOGROW, 0, check_rsize, TABLE0, "st_static");
-
-  /* now, check what ht_init does with bad arguments */
-  check_result(st_init(0, 0, 0, 0, 0), DB_ERR_BADARGS, "st_init_noargs",
-              "st_init() with no valid arguments", 0);
-
-  /* Scramble the structure */
-  scramble(&table);
-
-  /* Now try to initialize our structure with a 0 mod and see what happens */
-  check_result(st_init(&table, 0x80010000 | HASH_FLAG_AUTOGROW, check_rsize,
-                      TABLE0, 0), 0, "st_dynamic_nomod",
-              "st_init() with zero modulus", 0);
-  check_init(&table, HASH_FLAG_AUTOGROW, 0, check_rsize, TABLE0,
-            "st_dynamic_nomod");
-
-  /* Scramble the structure again */
-  scramble(&table);
-
-  /* Now try to initialize our structure with a non-0 mod and see what
-   * happens
-   */
-  check_result(st_init(&table, 0x80010000 | HASH_FLAG_AUTOGROW, check_rsize,
-                      TABLE0, 6), 0, "st_dynamic_mod6",
-              "st_init() with non-zero modulus", 0);
-  check_init(&table, HASH_FLAG_AUTOGROW, 7, check_rsize, TABLE0,
-            "st_dynamic_mod6");
-
-  return 0;
-}
diff --git a/libs/dbprim/tests/test-harness.c b/libs/dbprim/tests/test-harness.c
deleted file mode 100644 (file)
index ea5ab3d..0000000
+++ /dev/null
@@ -1,1271 +0,0 @@
-/*
-** Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-**
-** This library is free software; you can redistribute it and/or
-** modify it under the terms of the GNU Library General Public
-** License as published by the Free Software Foundation; either
-** version 2 of the License, or (at your option) any later version.
-**
-** This library 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
-** Library General Public License for more details.
-**
-** You should have received a copy of the GNU Library General Public
-** License along with this library; if not, write to the Free
-** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-** MA 02111-1307, USA
-**
-** @(#)$Id$
-*/
-#include <ctype.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/stat.h>
-#include <sys/time.h>
-#include <sys/types.h>
-#include <sys/wait.h>
-#include <unistd.h>
-
-#define BUFSIZE 512 /* buffer size */
-#define ARGBUF  8   /* number of arguments to start with */
-
-#define CONTINUELINE  0x1000 /* line continuation "character" */
-
-#define Q_D -3 /* quote decimal */
-#define Q_X -2 /* quote hexadecimal */
-#define Q_S -1 /* quote self */
-
-#define QUOTE_SINGLE  0x0010 /* we're in single-quote mode */
-#define QUOTE_DOUBLE  0x0020 /* we're in double-quote mode */
-#define QUOTE_FILE    0x0040 /* we're in file quote mode */
-#define QUOTED       0x0080 /* it's a quoted character */
-#define SAVE_QUOTE    0x0100 /* preserve quote on ungetc'd char */
-#define EOS          0x0200 /* end of string */
-#define EOD          0x0400 /* end of directive */
-#define STOP         0x0800 /* stop processing the file */
-
-enum test_result {
-  TR_NOTRUN,    /* test has not yet been run */
-  TR_PASS,      /* test passed */
-  TR_UPASS,     /* test passed, but was not expected to pass */
-  TR_FAIL,      /* test failed */
-  TR_XFAIL,     /* test failed, but was expected to fail */
-  TR_UNRESOLVED, /* unknown whether test passed or not */
-  TR_UNTESTED,  /* test case not yet ready */
-  TR_UNSUPPORTED /* tested feature unsupported here */
-};
-
-enum test_status {
-  TP_PENDING, /* test program is not yet running */
-  TP_RUNNING, /* test program has been started */
-  TP_FAILED,  /* test program errored out */
-  TP_COMPLETE /* test program has been completed */
-};
-
-struct test {
-  struct test     *t_next;   /* next test for program */
-  char            *t_name;   /* test's name */
-  char            *t_desc;   /* description of test */
-  enum test_result  t_result; /* result of test */
-  enum test_result  t_expect; /* expected result of test */
-  struct test_prog *t_prog;   /* structure describing program for test */
-  char            *t_info;   /* any extra information from test program */
-};
-
-struct test_prog {
-  struct test_prog  *tp_next;  /* next test program */
-  struct test_prog **tp_prev_p;        /* what points to us */
-  char             *tp_name;   /* program invocation name */
-  char             *tp_prog;   /* file name of testing program */
-  char            **tp_argv;   /* arguments to feed to test program */
-  char             *tp_desc;   /* description of program */
-  struct test      *tp_tests;  /* linked list of tests run by program */
-  struct test      *tp_last;   /* last test added so far */
-  int               tp_count;  /* count of number of tests run by program */
-  struct test_dep   *tp_deps;  /* program dependencies */
-  enum test_status   tp_status;        /* status of test program--has it run yet? */
-  int               tp_fd;     /* file descriptor for test program */
-  FILE             *tp_file;   /* FILE for test program */
-  int               tp_pid;    /* process ID for test program */
-};
-
-struct test_dep {
-  struct test_dep  *td_next; /* next dependency */
-  struct test_prog *td_prog; /* program we're dependent upon */
-};
-
-static struct {
-  const char     *m_name;  /* name for value */
-  enum test_result m_value; /* value for name */
-} result_map[] = {
-#define M(name) { #name, TR_ ## name }
-  M(NOTRUN), M(PASS), M(UPASS), M(FAIL), M(XFAIL), M(UNRESOLVED), M(UNTESTED),
-  M(UNSUPPORTED),
-#undef M
-  { 0, 0 }
-};
-
-static int xform[] = {
-  '\a',  '\b',   Q_S,   Q_D,'\033',  '\f',   Q_S,   Q_S,   Q_S,
-   Q_S,   Q_S,   Q_S,   Q_S,  '\n',   Q_S,   Q_S,   Q_S,   Q_S,
-   Q_S,  '\t',   Q_S,  '\v',   Q_S,   Q_X,   Q_S,   Q_S
-};
-
-static struct {
-  char            *conf_file;       /* file name of config file */
-  char            *log_file;        /* file name of log file */
-  char            *prog_name;       /* program's name */
-  struct test_prog *prog_list;      /* list of test programs */
-  struct test_prog *prog_last;      /* last program in list */
-  int              prog_count;      /* count of test programs */
-  int              prog_running;    /* count of running programs */
-  int              prog_max;        /* maximum simultaneous programs */
-  char           **include_dirs;    /* directories to be searched for progs */
-  int              include_cnt;     /* count of include directories */
-  int              include_size;    /* total memory for include_dirs */
-  char           **argv;            /* argument vector */
-  int              argc;            /* argument count */
-  unsigned int     flags;           /* any special flags */
-  int              test_total;      /* total number of tests */
-  FILE            *log_fp;          /* log FILE object */
-  int              log_fd;          /* log file file descriptor */
-  int              high_fd;         /* highest fd so far allocated */
-  int              result_count[8]; /* count of all results */
-  fd_set           read_fds;        /* descriptors to be read */
-} glob_data = { "test-harness.dat", "test-harness.log", 0, 0, 0, 0, 0, 1, 0, 0,
-               0, 0, 0, 0, 0, 0, -1, -1,
-               { 0, 0, 0, 0, 0, 0, 0, 0 } };
-
-#define FLAG_VERBOSE  0x0001 /* verbose output enabled */
-#define FLAG_VVERBOSE 0x0002 /* very verbose output enabled */
-#define FLAG_POSIX    0x0004 /* POSIX-compliant output only */
-#define FLAG_FINISHED 0x1000 /* finished starting all tests */
-
-/* If allocation of memory fails, we must exit */
-static void *
-xmalloc(size_t size)
-{
-  void *ptr;
-
-  if (!(ptr = malloc(size))) { /* get some memory */
-    perror(glob_data.prog_name); /* error occurred, bail out */
-    exit(1);
-  }
-
-  return ptr; /* return the memory allocated */
-}
-
-/* Similar function to realloc memory */
-static void *
-xrealloc(void *ptr, size_t size)
-{
-  void *nptr;
-
-  if (!(nptr = realloc(ptr, size))) { /* reallocate the memory */
-    perror(glob_data.prog_name); /* error occurred, bail out */
-    exit(1);
-  }
-
-  return nptr; /* return new memory allocation */
-}
-
-/* Duplicate a string */
-static char *
-xstrdup(const char *str)
-{
-  char *ptr;
-
-  if (!str) /* if no string to allocate, allocate none */
-    return 0;
-
-  if (!(ptr = strdup(str))) { /* duplicate the string */
-    perror(glob_data.prog_name); /* error occurred, bail out */
-    exit(1);
-  }
-
-  return ptr; /* return the new string */
-}
-
-/* Duplicate a parameter list */
-static char **
-argvdup(char * const *params, int count)
-{
-  char **nparams;
-  int i;
-
-  if (!params) /* no parameters to duplicate? */
-    return 0;
-
-  if (count <= 0) /* must count it ourselves */
-    for (count = 0; params[count]; count++) /* count through params */
-      ; /* empty for loop */
-
-  nparams = xmalloc(sizeof(char *) * (count + 1)); /* allocate memory */
-
-  for (i = 0; i < count; i++) /* go through params */
-    nparams[i] = xstrdup(params[i]); /* and duplicate each one */
-
-  nparams[count] = 0; /* zero out end of vector */
-
-  return nparams; /* and return the vector */
-}
-
-/* Create a new program */
-static struct test_prog *
-add_prog(const char *name, const char *prog, const char *desc,
-        char * const *params, int count)
-{
-  struct test_prog *tp;
-
-  tp = xmalloc(sizeof(struct test_prog)); /* allocate memory */
-
-  tp->tp_next = 0; /* initialize the struct test_prog */
-  tp->tp_prev_p = 0;
-  tp->tp_name = xstrdup(name);
-  tp->tp_prog = xstrdup(prog);
-  tp->tp_argv = argvdup(params, count);
-  tp->tp_desc = xstrdup(desc);
-  tp->tp_tests = 0;
-  tp->tp_last = 0;
-  tp->tp_count = 0;
-  tp->tp_deps = 0;
-  tp->tp_status = TP_PENDING;
-  tp->tp_fd = -1;
-  tp->tp_file = 0;
-  tp->tp_pid = 0;
-
-  if (!glob_data.prog_list) { /* add it to the global data list */
-    glob_data.prog_list = tp;
-    tp->tp_prev_p = &glob_data.prog_list;
-  } else if (glob_data.prog_last) {
-    glob_data.prog_last->tp_next = tp;
-    tp->tp_prev_p = &glob_data.prog_last->tp_next;
-  }
-  glob_data.prog_last = tp;
-  glob_data.prog_count++;
-
-  return tp; /* return it */
-}
-
-/* Create a new test */
-static struct test *
-add_test(struct test_prog *tp, const char *name, const char *desc,
-        enum test_result expect)
-{
-  struct test *t;
-
-  t = xmalloc(sizeof(struct test)); /* allocate memory */
-
-  t->t_next = 0; /* initialize the struct test */
-  t->t_name = xstrdup(name);
-  t->t_desc = xstrdup(desc);
-  t->t_result = TR_NOTRUN;
-  t->t_expect = expect;
-  t->t_prog = tp;
-  t->t_info = 0;
-
-  if (!tp->tp_tests) /* add it to the program's data list */
-    tp->tp_tests = t;
-  else if (tp->tp_last)
-    tp->tp_last->t_next = t;
-  tp->tp_last = t;
-  tp->tp_count++; /* keep count */
-
-  glob_data.test_total++; /* total number of tests */
-  glob_data.result_count[TR_NOTRUN]++; /* keep a count */
-
-  return t; /* return it */
-}
-
-/* Add a dependency */
-static struct test_dep *
-add_dep(struct test_prog *tp, struct test_prog *dep)
-{
-  struct test_dep *td;
-
-  td = xmalloc(sizeof(struct test_dep)); /* allocate memory */
-
-  td->td_next = tp->tp_deps; /* initialize dependency structure */
-  td->td_prog = dep;
-
-  tp->tp_deps = td; /* add it to the list */
-
-  return td; /* return dependency */
-}
-
-/* Close all test program input file descriptors before forking */
-static void
-close_progs(void)
-{
-  struct test_prog *tp;
-
-  for (tp = glob_data.prog_list; tp; tp = tp->tp_next) /* walk linked list */
-    if (tp->tp_fd >= 0) /* if fd is open... */
-      close(tp->tp_fd); /* close it! */
-}
-
-/* Find a test program given its name */
-static struct test_prog *
-find_prog(const char *name)
-{
-  struct test_prog *tp;
-
-  for (tp = glob_data.prog_list; tp; tp = tp->tp_next) /* walk linked list */
-    if (!strcmp(tp->tp_name, name))
-      return tp; /* found it, return it */
-
-  return 0; /* nothing found */
-}
-
-/* Find a test given its name */
-static struct test *
-find_test(struct test_prog *tp, const char *name)
-{
-  struct test *t;
-
-  for (t = tp->tp_tests; t; t = t->t_next) /* walk linked list */
-    if (!strcmp(t->t_name, name))
-      return t; /* found it, return it */
-
-  return 0; /* nothing found */
-}
-
-/* Get a value given a name */
-static enum test_result
-find_result(const char *name)
-{
-  int i;
-
-  for (i = 0; result_map[i].m_name; i++) /* walk through array */
-    if (!strcasecmp(result_map[i].m_name, name))
-      return result_map[i].m_value; /* found it, return it */
-
-  return TR_UNRESOLVED; /* couldn't map name to value; must be resolved */
-}
-
-/* Get a name given a value */
-#define name_result(val)       (result_map[(val)].m_name)
-
-/* Set the result of a given test */
-static void
-set_result(struct test *t, enum test_result result, const char *info)
-{
-  glob_data.result_count[t->t_result]--; /* decrement one count */
-
-  switch (result) { /* check result */
-  case TR_NOTRUN: /* these should never be reported by a test program */
-  case TR_UPASS:
-  case TR_XFAIL:
-    t->t_result = TR_UNRESOLVED; /* so mark it unresolved due to test error */
-    break;
-
-  case TR_PASS: /* a test passed */
-    if (t->t_expect == TR_FAIL)
-      t->t_result = TR_UPASS; /* expected to fail!  mark unexpected pass */
-    else
-      t->t_result = TR_PASS; /* normal pass */
-    break;
-
-  case TR_FAIL: /* a test failed */
-    if (t->t_expect == TR_FAIL)
-      t->t_result = TR_XFAIL; /* expected to fail; mark it as such */
-    else
-      t->t_result = TR_FAIL; /* wasn't expected to fail! */
-    break;
-
-  default:
-    t->t_result = result; /* some other result */
-    break;
-  }
-
-  glob_data.result_count[t->t_result]++; /* increment another count */
-
-  t->t_info = xstrdup(info); /* remember extra information */
-
-  result = t->t_result;
-
-  /* save the result to the log file */
-  fprintf(glob_data.log_fp, "%s: (%s/%s) %s\n", name_result(result),
-         t->t_prog->tp_name, t->t_name, t->t_desc);
-  fprintf(glob_data.log_fp, "INFO: %s\n", t->t_info);
-
-  if (!(glob_data.flags & FLAG_VERBOSE)) /* only output if verbose */
-    return;
-
-  if (glob_data.flags & FLAG_POSIX) { /* adjust for POSIX */
-    if (result == TR_UPASS)
-      result = TR_PASS;
-    else if (result == TR_XFAIL)
-      result = TR_FAIL;
-  }
-
-  /* print the result */
-  printf("%s: (%s/%s) %s\n", name_result(result), t->t_prog->tp_name,
-        t->t_name, t->t_desc);
-  if ((glob_data.flags & (FLAG_POSIX | FLAG_VVERBOSE)) == FLAG_VVERBOSE)
-    printf("INFO: %s\n", t->t_info);
-}
-
-/* Mark all tests for a given program unresolved */
-static void
-mark_all(struct test_prog *tp, enum test_result result, const char *info)
-{
-  struct test *t;
-
-  for (t = tp->tp_tests; t; t = t->t_next) /* walk linked list */
-    if (t->t_result == TR_NOTRUN)
-      set_result(t, result, info); /* mark it unresolved */
-}
-
-/* Find the test program */
-static char *
-locate_file(const char *prog, char *buf, int mode)
-{
-  int i;
-  char *dir;
-
-  if (glob_data.include_cnt) /* search include directories */
-    for (i = 0; i < glob_data.include_cnt; i++) {
-      dir = glob_data.include_dirs[i];
-
-      sprintf(buf, "%s/%s", dir, prog); /* form program file name */
-
-      if (!access(buf, mode)) /* check access */
-       return buf; /* Ok, return program name */
-    }
-  else {
-    sprintf(buf, "./%s", prog); /* form program file name */
-
-    if (!access(buf, mode)) /* check access */
-      return buf; /* Ok, return program name */
-  }
-
-  return 0; /* failed to find the program */
-}
-
-/* Build an argument list for executing a program */
-static char **
-build_argv(char *name, char **params)
-{
-  char **nparams;
-  int i, count = 1;
-
-  if (glob_data.argv) { /* global arguments to pass */
-    for (i = 0; glob_data.argv[i]; i++) /* step through those arguments... */
-      ; /* but do nothing other than count them */
-
-    count += i; /* now add them to the count */
-  }
-
-  if (params) { /* arguments for this specific test program */
-    for (i = 0; params[i]; i++) /* step through them... */
-      ; /* but do nothing other than count them */
-
-    count += i; /* now add them to the count */
-  }
-
-  nparams = xmalloc(sizeof(char *) * (count + 1)); /* allocate memory */
-
-  nparams[0] = name; /* program name, first */
-  count = 1; /* next place to put an argument */
-
-  if (glob_data.argv) /* now global arguments... */
-    for (i = 0; glob_data.argv[i]; i++) /* step through the arguments... */
-      nparams[count++] = glob_data.argv[i]; /* set argument value */
-
-  if (params) /* next test program arguments */
-    for (i = 0; params[i]; i++) /* step through them */
-      nparams[count++] = params[i]; /* set argument value */
-
-  nparams[count] = 0; /* end with a 0 value */
-
-  return nparams; /* return parameters */
-}
-
-/* Execute a test program */
-static int
-execute_prog(struct test_prog *tp)
-{
-  int fds[2], stat, err;
-  char progbuf[BUFSIZE], *prog;
-
-  if (!(prog = locate_file(tp->tp_prog, progbuf, X_OK))) { /* find program */
-    mark_all(tp, TR_UNTESTED, "Unable to locate test program");
-    tp->tp_status = TP_FAILED;
-    return 0;
-  }
-
-  if (pipe(fds)) { /* now set up the pipe for it */
-    mark_all(tp, TR_UNRESOLVED, strerror(errno));
-    tp->tp_status = TP_FAILED;
-    return 0;
-  }
-
-  switch ((tp->tp_pid = fork())) {
-  case -1: /* couldn't fork! */
-    err = errno; /* save errno */
-    close(fds[0]); /* close file descriptors */
-    close(fds[1]);
-    mark_all(tp, TR_UNRESOLVED, strerror(err));
-    tp->tp_status = TP_FAILED;
-    return 0;
-    break;
-
-  case 0: /* we're in the child */
-    close(fds[0]); /* close read end of the pipe */
-    close(0); /* close stdin */
-    close(1); /* close stdout */
-    close(2); /* close stderr */
-    close_progs(); /* close all test programs' input descriptors */
-
-    dup2(fds[1], 1); /* make stdout point to write end of pipe */
-    close(fds[1]); /* close redundant file descriptor */
-
-    dup2(glob_data.log_fd, 2); /* make stderr go to log file */
-    close(glob_data.log_fd); /* close redundant file descriptor */
-
-    execv(prog, build_argv(prog, tp->tp_argv)); /* execute program */
-
-    printf("UNRESOLVED/ALL:Couldn't execute test: %s\n", strerror(errno));
-    exit(1); /* report error and exit child */
-    break;
-
-  default: /* we're in the parent */
-    close(fds[1]); /* close write end of the pipe */
-    if (!(tp->tp_file = fdopen(fds[0], "r"))) { /* open FILE object */
-      err = errno; /* save value of errno */
-      close(fds[0]); /* it failed; close the file descriptor */
-      kill(tp->tp_pid, SIGKILL); /* kill the child */
-      waitpid(tp->tp_pid, &stat, 0); /* wait for child */
-      tp->tp_pid = 0; /* clear PID */
-      mark_all(tp, TR_UNRESOLVED, strerror(err));
-      tp->tp_status = TP_FAILED;
-      return 0;
-    }
-    tp->tp_fd = fds[0]; /* store the fd */
-    tp->tp_status = TP_RUNNING;
-    FD_SET(fds[0], &glob_data.read_fds); /* record interest in fd */
-    if (fds[0] > glob_data.high_fd) /* remember the highest fd so far */
-      glob_data.high_fd = fds[0];
-    break;
-  }
-
-  return 1;
-}
-
-/* Find a test program to execute */
-static struct test_prog *
-next_test(struct test_prog *tp)
-{
-  struct test_dep *td;
-
-  if (!tp) /* start at beginning of prog list if no test prog passed in */
-    tp = glob_data.prog_list;
-
-  for (; tp; tp = tp->tp_next) {
-    if (tp->tp_status != TP_PENDING) /* skip non-pending tests */
-      continue;
-
-    if (!tp->tp_deps) /* no dependencies?  just return it */
-      return tp;
-
-    for (td = tp->tp_deps; td; td = td->td_next) {
-      if (!td->td_prog) /* broken dependency, ignore it */
-       continue;
-
-      switch (td->td_prog->tp_status) {
-      case TP_FAILED: /* dependent test failed... */
-       mark_all(tp, TR_UNTESTED, "Test dependency failed");
-       tp->tp_status = TP_FAILED; /* mark us failed */
-       *tp->tp_prev_p = tp->tp_next; /* clip us out of the list */
-       /*FALLTHROUGH*/
-      case TP_PENDING: /* hasn't been executed yet */
-      case TP_RUNNING: /* dependent test is currently executing... */
-       break; /* bail out and process the next test program */
-
-      case TP_COMPLETE: /* dependent test is complete, cool */
-       continue; /* Go check next dependency */
-       break;
-      }
-
-      break;
-    }
-
-    if (!td) /* checked all dependencies, everything checks out. */
-      return tp;
-  }
-
-  return 0;
-}
-
-/* Start some test programs */
-static void
-run_test(void)
-{
-  struct test_prog *tp;
-
-  if (glob_data.flags & FLAG_FINISHED) /* are we already done? */
-    return;
-
-  /* start some test programs */
-  for (tp = next_test(0); tp && !(glob_data.flags & FLAG_FINISHED);
-       tp = next_test(tp)) {
-    if (glob_data.prog_running >= glob_data.prog_max) /* too many running? */
-      return; /* just wait for a bit */
-    else { /* execute and update count of how many are running */
-      if (execute_prog(tp) && ++glob_data.prog_running >= glob_data.prog_max)
-       return; /* if we've hit the limit, don't look for another */
-    }
-  }
-
-  /* If no programs are running, we're either done or have a cycle */
-  if (!tp && glob_data.prog_running == 0) {
-    /* mark any pending tests as failed */
-    for (tp = glob_data.prog_list; tp; tp = tp->tp_next) {
-      if (tp->tp_status != TP_PENDING) /* skip non-pending entries */
-       continue;
-
-      /* Inform user about dependancy loop */
-      fprintf(stderr, "Dependencies for %s failed due to cycle\n",
-             tp->tp_name);
-
-      /* Fail everything */
-      mark_all(tp, TR_UNTESTED, "Test dependency failed--cycle");
-      tp->tp_status = TP_FAILED;
-      *tp->tp_prev_p = tp->tp_next;
-    }
-
-    glob_data.flags |= FLAG_FINISHED; /* we're done! */
-  }
-}
-
-/* Place the results of the test in a file */
-static void
-report_test_fp(FILE *fp, int posix)
-{
-  int count;
-
-  fprintf(fp, "================== Test Results Summary ==================\n");
-
-  fprintf(fp, "Total tests: %d\n", glob_data.test_total);
-
-  if (glob_data.result_count[TR_NOTRUN] > 0)
-    fprintf(fp, "Tests not run: %d\n", glob_data.result_count[TR_NOTRUN]);
-
-  count = glob_data.result_count[TR_PASS] + glob_data.result_count[TR_UPASS];
-  if (count > 0)
-    fprintf(fp, "Tests passed: %d\n", count);
-  if (!posix && glob_data.result_count[TR_PASS] != count) {
-    if (glob_data.result_count[TR_PASS] > 0)
-      fprintf(fp, "  Expected: %d\n", glob_data.result_count[TR_PASS]);
-    if (glob_data.result_count[TR_UPASS] > 0)
-      fprintf(fp, "  Unexpected: %d\n", glob_data.result_count[TR_UPASS]);
-  }
-
-  count = glob_data.result_count[TR_FAIL] + glob_data.result_count[TR_XFAIL];
-  if (count > 0)
-    fprintf(fp, "Tests failed: %d\n", count);
-  if (!posix && glob_data.result_count[TR_XFAIL] != count) {
-    if (glob_data.result_count[TR_XFAIL] > 0)
-      fprintf(fp, "  Expected: %d\n", glob_data.result_count[TR_XFAIL]);
-    if (glob_data.result_count[TR_FAIL] > 0)
-      fprintf(fp, "  Unexpected: %d\n", glob_data.result_count[TR_FAIL]);
-  }
-
-  if (glob_data.result_count[TR_UNRESOLVED] > 0)
-    fprintf(fp, "Unresolved tests: %d\n",
-           glob_data.result_count[TR_UNRESOLVED]);
-
-  if (glob_data.result_count[TR_UNTESTED] > 0)
-    fprintf(fp, "Untested test cases: %d\n",
-           glob_data.result_count[TR_UNTESTED]);
-
-  if (glob_data.result_count[TR_UNSUPPORTED] > 0)
-    fprintf(fp, "Unsupported tests: %d\n",
-           glob_data.result_count[TR_UNSUPPORTED]);
-
-  fprintf(fp, "==========================================================\n");
-}
-
-/* Report the results of the test */
-static void
-report_test(void)
-{
-  report_test_fp(glob_data.log_fp, 0);
-  report_test_fp(stdout, glob_data.flags & FLAG_POSIX);
-}
-
-/* Read data from a test program */
-static void
-read_test(struct test_prog *tp)
-{
-  int stat;
-  struct test *t = 0;
-  enum test_result result;
-  char buf[BUFSIZE], *rescode = 0, *testcode = 0, *info = 0, *tmp;
-
-  if (!fgets(buf, sizeof(buf), tp->tp_file)) { /* child exited */
-    waitpid(tp->tp_pid, &stat, 0); /* wait for child */
-    if (WIFEXITED(stat)) {
-      sprintf(buf, "Test program exited with status %d", WEXITSTATUS(stat));
-      mark_all(tp, WEXITSTATUS(stat) ? TR_UNRESOLVED : TR_UNTESTED, buf);
-      tp->tp_status = WEXITSTATUS(stat) ? TP_FAILED : TP_COMPLETE;
-    } else if (WIFSIGNALED(stat)) {
-      sprintf(buf, "Test program terminated by signal %d", WTERMSIG(stat));
-      mark_all(tp, TR_UNRESOLVED, buf);
-      tp->tp_status = TP_FAILED;
-    } else {
-      mark_all(tp, TR_UNRESOLVED, "Test program exited with unknown code");
-      tp->tp_status = TP_FAILED;
-    }
-
-    close(tp->tp_fd); /* close file descriptor */
-    fclose(tp->tp_file); /* close file object */
-
-    FD_CLR(tp->tp_fd, &glob_data.read_fds); /* clear fd bit in read set */
-
-    tp->tp_fd = -1; /* clear out the struct test_prog object's run status */
-    tp->tp_file = 0;
-    tp->tp_pid = 0;
-
-    if (--glob_data.prog_running < glob_data.prog_max)
-      run_test(); /* freed up a slot for a new test program */
-  } else {
-    if ((tmp = strchr(buf, '\n'))) /* remove newline */
-      *tmp = '\0';
-
-    rescode = buf; /* find result code */
-
-    if (!(testcode = strchr(buf, '/'))) /* locate test code */
-      return;
-
-    *(testcode++) = '\0'; /* nul-terminate and advance in one swell foop */
-
-    if ((info = strchr(testcode, ':'))) /* locate extra info */
-      *(info++) = '\0'; /* nul-terminate and advance in one swell foop */
-
-    result = find_result(rescode); /* get the result */
-
-    if (!strcmp(testcode, "ALL")) /* special test code marks every test */
-      mark_all(tp, result, info);
-    else if ((t = find_test(tp, testcode)))
-      set_result(t, result, info); /* set the result if we found test */
-    else {
-      fprintf(glob_data.log_fp, "%s: (%s/%s) Unknown test (will not be "
-             "counted)\n", name_result(result), tp->tp_name, testcode);
-      fprintf(glob_data.log_fp, "INFO: %s\n", info);
-      if (glob_data.flags & FLAG_VERBOSE)
-       printf("%s: (%s/%s) Unknown test (will not be counted)\n",
-              name_result(result), tp->tp_name, testcode);
-      if ((glob_data.flags & (FLAG_POSIX | FLAG_VVERBOSE)) == FLAG_VVERBOSE)
-       printf("INFO: %s\n", info);
-    }
-  }
-}
-
-/* Wait for data from test programs */
-static void
-run_select(void)
-{
-  int nfds;
-  fd_set read_set;
-  struct test_prog *tp;
-
-  while (glob_data.prog_running || !(glob_data.flags & FLAG_FINISHED)) {
-    read_set = glob_data.read_fds; /* all hail structure copy! */
-
-    nfds = select(glob_data.high_fd + 1, &read_set, 0, 0, 0);
-
-    for (tp = glob_data.prog_list; tp; tp = tp->tp_next) /* walk linked list */
-      if (tp->tp_fd >= 0 && FD_ISSET(tp->tp_fd, &read_set)) { /* found one */
-       read_test(tp); /* read the data... */
-       if (--nfds) /* are we done yet? */
-         break;
-      }
-  }
-}
-
-/* Retrieves a \ quoted sequence from a file and produces the correct
- * output character
- */
-static int
-unquote(FILE *fp)
-{
-  int c = 0, i, cnt = 0;
-
-  if ((i = getc(fp)) == EOF) /* retrieve the character after the \ */
-    return EOF;
-
-  if (i == '\n') /* just a line continuation */
-    return CONTINUELINE;
-  if (i >= 'a' && i <= 'z') { /* special lower-case letters... */
-    switch (xform[i - 'a']) {
-    case Q_S: /* insert the character itself */
-      return i;
-      break;
-
-    case Q_X: /* \xHH--introduces a hex char code */
-      while (cnt < 2 && (i = getc(fp)) != EOF) {
-       if (!isxdigit(i)) { /* wasn't a hex digit? put it back */
-         ungetc(i, fp);
-         return cnt ? c : EOF; /* return error if no chars */
-       } else {
-         if (isdigit(i)) /* calculate character code */
-           c = (c << 4) | (i - '0');
-         else if (isupper(i))
-           c = (c << 4) | ((i - 'A') + 10);
-         else
-           c = (c << 4) | ((i - 'a') + 10);
-       }
-       cnt++;
-      }
-      return cnt ? c : EOF; /* return error if no chars */
-      break;
-
-    case Q_D: /* \dNNN--introduces a decimal char code */
-      while (cnt < 3 && (i = getc(fp)) != EOF) {
-       if (!isdigit(i)) { /* wasn't a digit? put it back */
-         ungetc(i, fp);
-         return cnt ? c : EOF; /* return error if no chars */
-       } else {
-         c = (c * 10) + (i - '0'); /* calculate character code */
-         if (c > 255) { /* oops, char overflow, backup */
-           ungetc(i, fp);
-           return c / 10;
-         }
-       }
-       cnt++;
-      }
-      return cnt ? c : EOF; /* return error if no chars */
-      break;
-
-    default: /* insert the specified code */
-      return xform[i - 'a'];
-      break;
-    }
-  } else if (i >= '0' && i <= '7') { /* octal number */
-    c = (i - '0'); /* accumulate first code... */
-    while (cnt < 2 && (i = getc(fp)) != EOF) { /* get the rest */
-      if (i < '0' || i > '7') { /* not a valid octal number, put it back */
-       ungetc(i, fp);
-       return c;
-      } else
-       c = (c << 3) | (i - '0'); /* accumulate the next code */
-      cnt++;
-    }
-    return c;
-  }
-
-  return i; /* return the character itself */
-}
-
-/* Create a program */
-static void
-create_prog(const char *name, const char *prog, const char *desc,
-           char * const *params, int count)
-{
-  struct test_prog *tp;
-
-  if ((tp = find_prog(name))) /* don't add duplicate programs */
-    fprintf(stderr, "%s: Duplicate \"program\" directive for \"%s\" found; "
-           "ignoring\n", glob_data.prog_name, name);
-  else
-    add_prog(name, prog, desc, params, count);
-}
-
-/* Create a test case */
-static void
-create_test(const char *name, const char *prog, const char *expect_code,
-           const char *desc)
-{
-  struct test_prog *tp;
-  struct test *t;
-  enum test_result expect;
-
-  switch ((expect = find_result(expect_code))) {
-  case TR_NOTRUN: /* invalid values for expectation */
-  case TR_UPASS:
-  case TR_XFAIL:
-  case TR_UNRESOLVED:
-  case TR_UNTESTED:
-  case TR_UNSUPPORTED:
-    fprintf(stderr, "%s: Invalid expectation code \"%s\" for test \"%s\"; "
-           "ignoring\n", glob_data.prog_name, expect_code, name);
-    return;
-    break;
-
-  default:
-    break;
-  }
-
-  if (!(tp = find_prog(prog))) /* must have a program directive */
-    fprintf(stderr, "%s: No \"program\" directive for test \"%s\"; ignoring\n",
-           glob_data.prog_name, name);
-  else if ((t = find_test(tp, name))) /* no duplicate tests */
-    fprintf(stderr, "%s: Duplicate \"test\" directive for \"%s\" in program "
-           "\"%s\" found; ignoring\n", glob_data.prog_name, name, prog);
-  else /* create the test */
-    add_test(tp, name, desc, expect);
-}
-
-/* Create a dependency */
-static void
-create_dep(const char *prog, char * const *deps, int count)
-{
-  struct test_prog *tp, *dep;
-  struct test_dep *td;
-
-  if (!(tp = find_prog(prog))) /* must have a program directive */
-    fprintf(stderr, "%s: No \"program\" directive for dependency \"%s\"; "
-           "ignoring\n", glob_data.prog_name, prog);
-  else /* create the dependencies */
-    for (; count; count--, deps++) {
-      if (!(dep = find_prog(*deps))) { /* does the dependency exist? */
-       fprintf(stderr, "%s: Program \"%s\" dependent on non-existant "
-               "program \"%s\"; ignoring\n", glob_data.prog_name, prog,
-               *deps);
-       continue;
-      }
-
-      /* Walk through the dependencies to weed out duplicates */
-      for (td = tp->tp_deps; ; td = td->td_next)
-       if (!td) {
-         add_dep(tp, dep); /* add the dependency */
-         break; /* explicitly exit the loop */
-       } else if (td->td_prog == dep)
-         break; /* silently ignore identical dependencies */
-    }
-}
-
-/* Report too few arguments problems */
-static void
-check_args(int count, int min, char *directive)
-{
-  if (count >= min) /* Check argument count */
-    return;
-
-  fprintf(stderr, "%s: Too few arguments for %s directive\n",
-         glob_data.prog_name, directive);
-  exit(1);
-}
-
-/* Read the configuration file */
-static void
-read_conf(char *filename)
-{
-  enum {
-    s_space, s_comment, s_string
-  } state = s_space, save = s_space;
-  char *buf = 0, **args = 0, filebuf[BUFSIZE], *file, file2buf[BUFSIZE];
-  char *file2, *s;
-  int buflen = BUFSIZE, pos = 0, arglen = ARGBUF, argidx = 0, c, flags = 0;
-  int file2pos = 0;
-  FILE *fp;
-
-  if (!(file = locate_file(filename, filebuf, R_OK))) { /* find file */
-    fprintf(stderr, "%s: Unable to locate config file %s for reading\n",
-           glob_data.prog_name, filename);
-    exit(1);
-  }
-
-  if (!(fp = fopen(file, "r"))) { /* open config file */
-    fprintf(stderr, "%s: Unable to open config file %s for reading\n",
-           glob_data.prog_name, file);
-    exit(1);
-  }
-
-  buf = xmalloc(buflen); /* get some memory for the buffers */
-  args = xmalloc(sizeof(char *) * arglen);
-
-  while (!(flags & STOP)) {
-    c = getc(fp); /* get a character */
-    flags &= ~(QUOTED | EOS | EOD); /* reset quoted and end-of-* flags */
-
-    if (state == s_comment) {
-      if (c != '\n' && c != EOF)
-       continue; /* skip comment... */
-      else
-       state = save; /* but preserve ending character and process */
-    }
-
-    if (flags & SAVE_QUOTE)
-      flags = (flags & ~SAVE_QUOTE) | QUOTED;
-    else {
-      if (!(flags & QUOTE_SINGLE) && c == '"') { /* process double quote */
-       flags ^= QUOTE_DOUBLE;
-       continue; /* get next character */
-      } else if (!(flags & QUOTE_DOUBLE) && c == '\'') { /* single quote */
-       flags ^= QUOTE_SINGLE;
-       continue; /* get next character */
-      } else if (!(flags & QUOTE_SINGLE) && c == '<') { /* open file quote */
-       file2pos = pos;
-       flags |= QUOTE_FILE;
-       continue; /* skip the < */
-      } else if (!(flags & QUOTE_SINGLE) && c == '>') { /* close file quote */
-       if (!(flags & QUOTE_FILE)) { /* close file quote with no open? */
-         fprintf(stderr, "%s: Mismatched closing file quote ('>') while "
-                 "parsing config file %s\n", glob_data.prog_name, file);
-         exit(1);
-       }
-       flags &= ~QUOTE_FILE; /* turn off file quote flag */
-       buf[pos] = '\0'; /* terminate buffer temporarily */
-       if (!(file2 = locate_file(&buf[file2pos], file2buf, R_OK)))
-         fprintf(stderr, "%s: WARNING: Unable to find file %s\n",
-                 glob_data.prog_name, &buf[file2pos]);
-       else {
-         pos = file2pos; /* rewind in buffer... */
-         while (*file2) { /* copy filename into buffer */
-           if (pos + 1 > buflen) /* get more memory for buffer if needed */
-             buf = xrealloc(buf, buflen <<= 1);
-           buf[pos++] = *(file2++); /* copy the character */
-         }
-       }
-       continue; /* skip the > */
-      } else if (!(flags & QUOTE_SINGLE) && c == '\\') { /* character quote */
-       if ((c = unquote(fp)) == EOF) { /* unquote the character */
-         fprintf(stderr, "%s: Hanging \\ while parsing config file %s\n",
-                 glob_data.prog_name, file);
-         exit(1);
-       } else if (c == CONTINUELINE) /* continue line--not a quoted char */
-         c = ' ';
-       else
-         flags |= QUOTED; /* mark character as quoted */
-      }
-      /* Check to see if the character appears in quotes; this is not part
-       * of an if-else chain because a '\' followed by a newline inside a
-       * double-quoted string should produce a _quoted_ space, and the
-       * test above gives us an _unquoted_ space!
-       */
-      if (flags & (QUOTE_SINGLE | QUOTE_DOUBLE | QUOTE_FILE)) {
-       if (c == EOF) {
-         fprintf(stderr, "%s: Unmatched %s quote (%s) while parsing config "
-                 "file %s\n", glob_data.prog_name, flags & QUOTE_SINGLE ?
-                 "single" : (flags & QUOTE_DOUBLE ? "double" : "file"),
-                 flags & QUOTE_SINGLE ? "\"'\"" : (flags & QUOTE_DOUBLE ?
-                                                   "'\"'" : "'<'"), file);
-         exit(1);
-       } else if (!(flags & QUOTE_FILE)) /* file quotes aren't real quotes */
-         flags |= QUOTED; /* mark character as quoted */
-      }
-    }
-
-    if (!(flags & QUOTED) && c == '#') { /* found beginning of a comment */
-      save = state; /* save current state--we'll restore to here */
-      state = s_comment; /* switch to comment state */
-      continue; /* skip all characters in the comment */
-    }
-
-    /* Now let's figure out what to do with this thing... */
-    if (c == EOF) /* end of file? */
-      flags |= (state == s_string ? EOS : 0) | EOD | STOP; /* ends directive */
-    else /* ok, switch on state */
-      switch (state) {
-      case s_space: /* Looking for the *end* of a string of spaces */
-       if ((flags & QUOTED) || !isspace(c)) { /* non-space character! */
-         state = s_string; /* Switch to string state */
-         ungetc(c, fp); /* push character back onto stream */
-         if (flags & QUOTED) /* save quote flag */
-           flags |= SAVE_QUOTE;
-         if (argidx + 1 > arglen) /* get more memory for args if needed */
-           args = xrealloc(args, sizeof(char *) * (arglen <<= 1));
-         args[argidx++] = buf + pos; /* point to starting point of next arg */
-         args[argidx] = 0; /* make sure to terminate the array */
-       }
-       if (c == '\n') /* hit end of line? */
-         flags |= EOD; /* end of the directive, then */
-       else
-         continue; /* move on to next character */
-       break;
-
-      case s_comment: /* should never be in this state here */
-       break;
-
-      case s_string: /* part of a string */
-       /* unquoted space or end of file ends string */
-       if ((!(flags & QUOTED) && isspace(c))) {
-         state = s_space; /* will need to search for next non-space */
-         /* finished accumulating this string--if it's \n, done with the
-          * directive, as well.
-          */
-         flags |= EOS | (c == '\n' ? EOD : 0);
-       }
-       break;
-      }
-
-    if (pos + 1 > buflen) /* get more memory for buffer if needed */
-      buf = xrealloc(buf, buflen <<= 1);
-
-    if (flags & EOS) /* end of string? */
-      buf[pos++] = '\0'; /* end the string in the buffer */
-
-    if (flags & EOD) { /* end of directive? */
-      if (pos == 0) /* nothing's actually been accumulated */
-       continue; /* so go on */
-
-      if (!strcmp(args[0], "program")) { /* program directive */
-       check_args(argidx, 3, args[0]);
-       create_prog(args[1], args[2], argidx > 3 ? args[3] : "",
-                   argidx > 4 ? args + 4 : 0, argidx > 4 ? argidx - 4 : 0);
-      } else if (!strcmp(args[0], "test")) { /* test directive */
-       check_args(argidx, 4, args[0]);
-       create_test(args[1], args[2], args[3], argidx > 4 ? args[4] : "");
-      } else if (!strcmp(args[0], "include")) { /* include directive */
-       check_args(argidx, 2, args[0]);
-       read_conf(args[1]);
-      } else if ((s = strchr(args[0], ':')) && *(s + 1) == '\0') {
-       *s = '\0'; /* it's a dependency specification */
-       create_dep(args[0], args + 1, argidx - 1);
-      } else {
-       fprintf(stderr, "%s: Unknown directive \"%s\"\n", glob_data.prog_name,
-               args[0]);
-       exit(1);
-      }
-
-      if (flags & STOP) /* if we were told to stop, well, STOP! */
-       break;
-
-      pos = 0; /* prepare for the next round through */
-      argidx = 0;
-      flags = 0;
-      args[0] = buf;
-      state = s_space;
-      continue; /* go on */
-    }
-
-    if (!(flags & (EOS | EOD))) /* insert character into buffer */
-      buf[pos++] = c;
-  }
-
-  fclose(fp); /* clean up */
-  free(buf);
-  free(args);
-}
-
-/* Add another include directory to the list */
-static void
-add_include(char *dir)
-{
-  if (glob_data.include_cnt + 1 > glob_data.include_size) /* get more memory */
-    glob_data.include_dirs =
-      xrealloc(glob_data.include_dirs,
-              sizeof(char *) * (glob_data.include_size <<= 1));
-  glob_data.include_dirs[glob_data.include_cnt++] = dir;
-}
-
-/* Output a standard usage message and exit */
-static void
-usage(int ret)
-{
-  fprintf(stderr, "Usage: %s -hvp [-c <conf>] [-l <log>] [-i <include>]\n",
-         glob_data.prog_name);
-  fprintf(stderr, "       %*s [-I <include>] [-j <max>]\n",
-         (int)strlen(glob_data.prog_name), "");
-  fprintf(stderr, "\n  -h\t\tPrint this help message\n");
-  fprintf(stderr, "  -v\t\tVerbose output; multiple usages increase verbosity "
-         "level\n");
-  fprintf(stderr, "  -p\t\tRequest POSIX-compliant test output\n");
-  fprintf(stderr, "  -c <conf>\tUse <conf> as the configuration file\n");
-  fprintf(stderr, "  -l <log>\tUse <log> as the log file for test programs\n");
-  fprintf(stderr, "  -i <include>\tAdd <include> to list of directories "
-         "searched for test programs.\n");
-  fprintf(stderr, "  -I <include>\tSynonymous with \"-i\"\n");
-  fprintf(stderr, "  -j <max>\tSpecifies the maximum number of test programs "
-         "that may be\n");
-  fprintf(stderr, "\t\texecuted simultaneously\n");
-  fprintf(stderr, "\nArguments following a \"--\" are passed to all "
-         "test programs run by this program.\n");
-
-  exit(ret);
-}
-
-/* Here's what drives it all */
-int
-main(int argc, char **argv)
-{
-  int c;
-
-  FD_ZERO(&glob_data.read_fds); /* first, zero out the fd set */
-
-  if (!(glob_data.prog_name = strrchr(argv[0], '/'))) /* set program name */
-    glob_data.prog_name = argv[0];
-  else
-    glob_data.prog_name++;
-
-  while ((c = getopt(argc, argv, "c:l:I:i:j:vph")) != EOF)
-    switch (c) {
-    case 'c': /* set the config file */
-      glob_data.conf_file = optarg;
-      break;
-
-    case 'l': /* set the log file */
-      glob_data.log_file = optarg;
-      break;
-
-    case 'I': /* add an include dir */
-    case 'i':
-      if (!glob_data.include_dirs)
-       glob_data.include_dirs =
-         xmalloc(sizeof(char *) * (glob_data.include_size = ARGBUF));
-      add_include(optarg);
-      break;
-
-    case 'j': /* maximum number of simultaneous test programs to run */
-      if ((glob_data.prog_max = atoi(optarg)) < 1) {
-       fprintf(stderr, "%s: Must be able to run a test program!\n",
-               glob_data.prog_name);
-       usage(1);
-      }
-      break;
-
-    case 'v': /* requesting verbosity */
-      if (glob_data.flags & FLAG_VERBOSE)
-       glob_data.flags |= FLAG_VVERBOSE; /* double-verbosity! */
-      else
-       glob_data.flags |= FLAG_VERBOSE;
-      break;
-
-    case 'p': /* requesting POSIX-compliant output */
-      glob_data.flags |= FLAG_POSIX;
-      break;
-
-    case 'h': /* requesting a usage message */
-      usage(0);
-      break;
-
-    case '?': /* unknown option */
-    default:
-      usage(1);
-      break;
-    }
-
-  if (optind < argc) {
-    glob_data.argv = argv + optind; /* save trailing arguments */
-    glob_data.argc = argc - optind;
-  }
-
-  if ((glob_data.log_fd =
-       open(glob_data.log_file, O_WRONLY | O_CREAT | O_TRUNC | O_APPEND,
-           S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH)) < 0) {
-    fprintf(stderr, "%s: Cannot open log file: %s\n", glob_data.prog_name,
-           strerror(errno));
-    exit(1);
-  } else if (!(glob_data.log_fp = fdopen(glob_data.log_fd, "a"))) {
-    perror(glob_data.prog_name);
-    exit(1);
-  }
-
-  setvbuf(glob_data.log_fp, 0, _IOLBF, 0);
-
-  read_conf(glob_data.conf_file); /* read the configuration file */
-  run_test(); /* start some tests */
-  run_select(); /* now wait for the test results */
-
-  report_test(); /* issue final report */
-
-  return 0;
-}
diff --git a/libs/dbprim/tests/test-harness.dat b/libs/dbprim/tests/test-harness.dat
deleted file mode 100644 (file)
index d15d2e0..0000000
+++ /dev/null
@@ -1,1486 +0,0 @@
-# Copyright (C) 2002 by Kevin L. Mitchell <klmitch@mit.edu>
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Library General Public
-# License as published by the Free Software Foundation; either
-# version 2 of the License, or (at your option) any later version.
-#
-# This library 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
-# Library General Public License for more details.
-#
-# You should have received a copy of the GNU Library General Public
-# License along with this library; if not, write to the Free
-# Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-# MA 02111-1307, USA
-#
-# @(#)$Id: test-harness.dat,v 1.1 2003-03-07 02:36:11 klmitch Exp $
-
-program t_ll_init t_ll_init \
-       "Test linked list head initializations"
-
-test ll_static_magic           t_ll_init       PASS    \
-       "Test static initialization: magic number"
-test ll_static_count           t_ll_init       PASS    \
-       "Test static initialization: count"
-test ll_static_first           t_ll_init       PASS    \
-       "Test static initialization: pointer to first"
-test ll_static_last            t_ll_init       PASS    \
-       "Test static initialization: pointer to last"
-test ll_init_nohead            t_ll_init       PASS    \
-       "Test that ll_init() handles no arguments properly"
-test ll_dynamic                        t_ll_init       PASS    \
-       "Test that ll_init() with proper arguments returns success"
-test ll_dynamic_magic          t_ll_init       PASS    \
-       "Test dynamic initialization: magic number"
-test ll_dynamic_count          t_ll_init       PASS    \
-       "Test dynamic initialization: count"
-test ll_dynamic_first          t_ll_init       PASS    \
-       "Test dynamic initialization: pointer to first"
-test ll_dynamic_last           t_ll_init       PASS    \
-       "Test dynamic initialization: pointer to last"
-
-program t_le_init t_le_init \
-       "Test linked list element initializations"
-
-test le_static_magic           t_le_init       PASS    \
-       "Test static initialization: magic number"
-test le_static_next            t_le_init       PASS    \
-       "Test static initialization: pointer to next"
-test le_static_prev            t_le_init       PASS    \
-       "Test static initialization: pointer to previous"
-test le_static_object          t_le_init       PASS    \
-       "Test static initialization: pointer to object"
-test le_static_head            t_le_init       PASS    \
-       "Test static initialization: pointer to head"
-test le_static_flags           t_le_init       PASS    \
-       "Test static initialization: flags"
-test le_init_nothing           t_le_init       PASS    \
-       "Test that le_init() handles no arguments properly"
-test le_init_objectonly                t_le_init       PASS    \
-       "Test that le_init() handles object argument only properly"
-test le_init_elemonly          t_le_init       PASS    \
-       "Test that le_init() handles element argument only properly"
-test le_dynamic                        t_le_init       PASS    \
-       "Test that le_init() with proper arguments returns success"
-test le_dynamic_magic          t_le_init       PASS    \
-       "Test dynamic initialization: magic number"
-test le_dynamic_next           t_le_init       PASS    \
-       "Test dynamic initialization: pointer to next"
-test le_dynamic_prev           t_le_init       PASS    \
-       "Test dynamic initialization: pointer to previous"
-test le_dynamic_object         t_le_init       PASS    \
-       "Test dynamic initialization: pointer to object"
-test le_dynamic_head           t_le_init       PASS    \
-       "Test dynamic initialization: pointer to head"
-test le_dynamic_flags          t_le_init       PASS    \
-       "Test dynamic initialization: flags"
-
-program t_ll_add t_ll_add \
-       "Test linked list element insertion"
-
-test ll_add_noargs             t_ll_add        PASS    \
-       "Test ll_add() with no valid arguments"
-test ll_add_badlist            t_ll_add        PASS    \
-       "Test ll_add() with bad list"
-test ll_add_badnew             t_ll_add        PASS    \
-       "Test ll_add() with bad new element"
-test ll_add_badelem            t_ll_add        PASS    \
-       "Test ll_add() with bad original element"
-test ll_add_before_noelem      t_ll_add        PASS    \
-       "Test ll_add() with LINK_LOC_BEFORE with no original element"
-test ll_add_after_noelem       t_ll_add        PASS    \
-       "Test ll_add() with LINK_LOC_AFTER with no original element"
-
-test ll_add_l0e0               t_ll_add        PASS    \
-       "Test ll_add() successful addition (1)"
-
-test list_l0e0_count           t_ll_add        PASS    \
-       "Test list head element count correct after insert (1)"
-test list_l0e0_first           t_ll_add        PASS    \
-       "Test list head first element pointers correct after insert (1)"
-test list_l0e0_last            t_ll_add        PASS    \
-       "Test list head last element pointers correct after insert (1)"
-
-test elem_l0e0_next            t_ll_add        PASS    \
-       "Test element next pointers correct after insert (1/0)"
-test elem_l0e0_prev            t_ll_add        PASS    \
-       "Test element prev pointers correct after insert (1/0)"
-test elem_l0e0_head            t_ll_add        PASS    \
-       "Test element head pointers correct after insert (1/0)"
-
-test ll_add_l1e0               t_ll_add        PASS    \
-       "Test ll_add() correctly rejects insertions of busy items"
-
-test ll_add_l1e1               t_ll_add        PASS    \
-       "Test ll_add() successful addition (2)"
-
-test list_l1e1_count           t_ll_add        PASS    \
-       "Test list head element count correct after insert (2)"
-test list_l1e1_first           t_ll_add        PASS    \
-       "Test list head first element pointers correct after insert (2)"
-test list_l1e1_last            t_ll_add        PASS    \
-       "Test list head last element pointers correct after insert (2)"
-
-test elem_l1e1_next            t_ll_add        PASS    \
-       "Test element next pointers correct after insert (2/1)"
-test elem_l1e1_prev            t_ll_add        PASS    \
-       "Test element prev pointers correct after insert (2/1)"
-test elem_l1e1_head            t_ll_add        PASS    \
-       "Test element head pointers correct after insert (2/1)"
-
-test ll_add_l0e2a1             t_ll_add        PASS    \
-       "Test ll_add correctly rejects insertions of cross-list items"
-test ll_add_l0e2a3             t_ll_add        PASS    \
-       "Test ll_add correctly rejects insertions after no-list items"
-
-
-test ll_add_l0e2t              t_ll_add        PASS    \
-       "Test ll_add() successful addition to tail (3)"
-
-test list_l0e0e2_count         t_ll_add        PASS    \
-       "Test list head element count correct after insert (3)"
-test list_l0e0e2_first         t_ll_add        PASS    \
-       "Test list head first element pointers correct after insert (3)"
-test list_l0e0e2_last          t_ll_add        PASS    \
-       "Test list head last element pointers correct after insert (3)"
-
-test elem_l0e0e2_0_next                t_ll_add        PASS    \
-       "Test element next pointers correct after insert (3/0)"
-test elem_l0e0e2_0_prev                t_ll_add        PASS    \
-       "Test element prev pointers correct after insert (3/0)"
-test elem_l0e0e2_0_head                t_ll_add        PASS    \
-       "Test element head pointers correct after insert (3/0)"
-
-test elem_l0e0e2_2_next                t_ll_add        PASS    \
-       "Test element next pointers correct after insert (3/2)"
-test elem_l0e0e2_2_prev                t_ll_add        PASS    \
-       "Test element prev pointers correct after insert (3/2)"
-test elem_l0e0e2_2_head                t_ll_add        PASS    \
-       "Test element head pointers correct after insert (3/2)"
-
-test ll_add_l1e3h              t_ll_add        PASS    \
-       "Test ll_add() successful addition to head (4)"
-
-test list_l1e3e1_count         t_ll_add        PASS    \
-       "Test list head element count correct after insert (4)"
-test list_l1e3e1_first         t_ll_add        PASS    \
-       "Test list head first element pointers correct after insert (4)"
-test list_l1e3e1_last          t_ll_add        PASS    \
-       "Test list head last element pointers correct after insert (4)"
-
-test elem_l1e3e1_1_next                t_ll_add        PASS    \
-       "Test element next pointers correct after insert (4/1)"
-test elem_l1e3e1_1_prev                t_ll_add        PASS    \
-       "Test element prev pointers correct after insert (4/1)"
-test elem_l1e3e1_1_head                t_ll_add        PASS    \
-       "Test element head pointers correct after insert (4/1)"
-
-test elem_l1e3e1_3_next                t_ll_add        PASS    \
-       "Test element next pointers correct after insert (4/3)"
-test elem_l1e3e1_3_prev                t_ll_add        PASS    \
-       "Test element prev pointers correct after insert (4/3)"
-test elem_l1e3e1_3_head                t_ll_add        PASS    \
-       "Test element head pointers correct after insert (4/3)"
-
-test ll_add_l0e4b2             t_ll_add        PASS    \
-       "Test ll_add() successful addition before element (5)"
-
-test list_l0e0e4e2_count       t_ll_add        PASS    \
-       "Test list head element count correct after insert (5)"
-test list_l0e0e4e2_first       t_ll_add        PASS    \
-       "Test list head first element pointers correct after insert (5)"
-test list_l0e0e4e2_last                t_ll_add        PASS    \
-       "Test list head last element pointers correct after insert (5)"
-
-test elem_l0e0e4e2_0_next      t_ll_add        PASS    \
-       "Test element next pointers correct after insert (5/0)"
-test elem_l0e0e4e2_0_prev      t_ll_add        PASS    \
-       "Test element prev pointers correct after insert (5/0)"
-test elem_l0e0e4e2_0_head      t_ll_add        PASS    \
-       "Test element head pointers correct after insert (5/0)"
-
-test elem_l0e0e4e2_2_next      t_ll_add        PASS    \
-       "Test element next pointers correct after insert (5/2)"
-test elem_l0e0e4e2_2_prev      t_ll_add        PASS    \
-       "Test element prev pointers correct after insert (5/2)"
-test elem_l0e0e4e2_2_head      t_ll_add        PASS    \
-       "Test element head pointers correct after insert (5/2)"
-
-test elem_l0e0e4e2_4_next      t_ll_add        PASS    \
-       "Test element next pointers correct after insert (5/4)"
-test elem_l0e0e4e2_4_prev      t_ll_add        PASS    \
-       "Test element prev pointers correct after insert (5/4)"
-test elem_l0e0e4e2_4_head      t_ll_add        PASS    \
-       "Test element head pointers correct after insert (5/4)"
-
-test ll_add_l1e5a3             t_ll_add        PASS    \
-       "Test ll_add() successful addition before element (6)"
-
-test list_l1e3e5e1_count       t_ll_add        PASS    \
-       "Test list head element count correct after insert (6)"
-test list_l1e3e5e1_first       t_ll_add        PASS    \
-       "Test list head first element pointers correct after insert (6)"
-test list_l1e3e5e1_last                t_ll_add        PASS    \
-       "Test list head last element pointers correct after insert (6)"
-
-test elem_l1e3e5e1_1_next      t_ll_add        PASS    \
-       "Test element next pointers correct after insert (6/1)"
-test elem_l1e3e5e1_1_prev      t_ll_add        PASS    \
-       "Test element prev pointers correct after insert (6/1)"
-test elem_l1e3e5e1_1_head      t_ll_add        PASS    \
-       "Test element head pointers correct after insert (6/1)"
-
-test elem_l1e3e5e1_3_next      t_ll_add        PASS    \
-       "Test element next pointers correct after insert (6/3)"
-test elem_l1e3e5e1_3_prev      t_ll_add        PASS    \
-       "Test element prev pointers correct after insert (6/3)"
-test elem_l1e3e5e1_3_head      t_ll_add        PASS    \
-       "Test element head pointers correct after insert (6/3)"
-
-test elem_l1e3e5e1_5_next      t_ll_add        PASS    \
-       "Test element next pointers correct after insert (6/5)"
-test elem_l1e3e5e1_5_prev      t_ll_add        PASS    \
-       "Test element prev pointers correct after insert (6/5)"
-test elem_l1e3e5e1_5_head      t_ll_add        PASS    \
-       "Test element head pointers correct after insert (6/5)"
-
-program t_ll_move t_ll_move \
-       "Test linked list element reordering"
-t_ll_move: t_ll_add
-
-test ll_move_baseline_0_count  t_ll_move       PASS    \
-       "Baseline list ordering: list 0 element count"
-test ll_move_baseline_0_first  t_ll_move       PASS    \
-       "Baseline list ordering: list 0 first element"
-test ll_move_baseline_0_last   t_ll_move       PASS    \
-       "Baseline list ordering: list 0 last element"
-test ll_move_baseline_0/0_next t_ll_move       PASS    \
-       "Baseline list ordering: list 0 element 0 next pointer"
-test ll_move_baseline_0/0_prev t_ll_move       PASS    \
-       "Baseline list ordering: list 0 element 0 previous pointer"
-test ll_move_baseline_0/0_head t_ll_move       PASS    \
-       "Baseline list ordering: list 0 element 0 head pointer"
-test ll_move_baseline_0/1_next t_ll_move       PASS    \
-       "Baseline list ordering: list 0 element 1 next pointer"
-test ll_move_baseline_0/1_prev t_ll_move       PASS    \
-       "Baseline list ordering: list 0 element 1 previous pointer"
-test ll_move_baseline_0/1_head t_ll_move       PASS    \
-       "Baseline list ordering: list 0 element 1 head pointer"
-test ll_move_baseline_0/2_next t_ll_move       PASS    \
-       "Baseline list ordering: list 0 element 2 next pointer"
-test ll_move_baseline_0/2_prev t_ll_move       PASS    \
-       "Baseline list ordering: list 0 element 2 previous pointer"
-test ll_move_baseline_0/2_head t_ll_move       PASS    \
-       "Baseline list ordering: list 0 element 2 head pointer"
-test ll_move_baseline_0/3_next t_ll_move       PASS    \
-       "Baseline list ordering: list 0 element 3 next pointer"
-test ll_move_baseline_0/3_prev t_ll_move       PASS    \
-       "Baseline list ordering: list 0 element 3 previous pointer"
-test ll_move_baseline_0/3_head t_ll_move       PASS    \
-       "Baseline list ordering: list 0 element 3 head pointer"
-test ll_move_baseline_0/4_next t_ll_move       PASS    \
-       "Baseline list ordering: list 0 element 4 next pointer"
-test ll_move_baseline_0/4_prev t_ll_move       PASS    \
-       "Baseline list ordering: list 0 element 4 previous pointer"
-test ll_move_baseline_0/4_head t_ll_move       PASS    \
-       "Baseline list ordering: list 0 element 4 head pointer"
-
-test ll_move_baseline_1_count  t_ll_move       PASS    \
-       "Baseline list ordering: list 1 element count"
-test ll_move_baseline_1_first  t_ll_move       PASS    \
-       "Baseline list ordering: list 1 first element"
-test ll_move_baseline_1_last   t_ll_move       PASS    \
-       "Baseline list ordering: list 1 last element"
-test ll_move_baseline_1/5_next t_ll_move       PASS    \
-       "Baseline list ordering: list 1 element 5 next pointer"
-test ll_move_baseline_1/5_prev t_ll_move       PASS    \
-       "Baseline list ordering: list 1 element 5 previous pointer"
-test ll_move_baseline_1/5_head t_ll_move       PASS    \
-       "Baseline list ordering: list 1 element 5 head pointer"
-test ll_move_baseline_1/6_next t_ll_move       PASS    \
-       "Baseline list ordering: list 1 element 6 next pointer"
-test ll_move_baseline_1/6_prev t_ll_move       PASS    \
-       "Baseline list ordering: list 1 element 6 previous pointer"
-test ll_move_baseline_1/6_head t_ll_move       PASS    \
-       "Baseline list ordering: list 1 element 6 head pointer"
-test ll_move_baseline_1/7_next t_ll_move       PASS    \
-       "Baseline list ordering: list 1 element 7 next pointer"
-test ll_move_baseline_1/7_prev t_ll_move       PASS    \
-       "Baseline list ordering: list 1 element 7 previous pointer"
-test ll_move_baseline_1/7_head t_ll_move       PASS    \
-       "Baseline list ordering: list 1 element 7 head pointer"
-test ll_move_baseline_1/8_next t_ll_move       PASS    \
-       "Baseline list ordering: list 1 element 8 next pointer"
-test ll_move_baseline_1/8_prev t_ll_move       PASS    \
-       "Baseline list ordering: list 1 element 8 previous pointer"
-test ll_move_baseline_1/8_head t_ll_move       PASS    \
-       "Baseline list ordering: list 1 element 8 head pointer"
-test ll_move_baseline_1/9_next t_ll_move       PASS    \
-       "Baseline list ordering: list 1 element 9 next pointer"
-test ll_move_baseline_1/9_prev t_ll_move       PASS    \
-       "Baseline list ordering: list 1 element 9 previous pointer"
-test ll_move_baseline_1/9_head t_ll_move       PASS    \
-       "Baseline list ordering: list 1 element 9 head pointer"
-
-test ll_move_noargs            t_ll_move       PASS    \
-       "Test ll_move() with no valid arguments"
-test ll_move_badlist           t_ll_move       PASS    \
-       "Test ll_move() with bad list"
-test ll_move_badnew            t_ll_move       PASS    \
-       "Test ll_move() with bad new element"
-test ll_move_badelem           t_ll_move       PASS    \
-       "Test ll_move() with bad original element"
-test ll_move_before_noelem     t_ll_move       PASS    \
-       "Test ll_move() with LINK_LOC_BEFORE with no original element"
-test ll_move_after_noelem      t_ll_move       PASS    \
-       "Test ll_move() with LINK_LOC_AFTER with no original element"
-
-test ll_move_neweqelem         t_ll_move       PASS    \
-       "Test ll_move() with new == elem is rejected"
-
-test ll_move_newunused         t_ll_move       PASS    \
-       "Test ll_move() with unused new element"
-test ll_move_elemunused                t_ll_move       PASS    \
-       "Test ll_move() with unused original element"
-
-test ll_move_newwronglist      t_ll_move       PASS    \
-       "Test ll_move() with new element in wrong list"
-test ll_move_elemwronglist     t_ll_move       PASS    \
-       "Test ll_move() with original element in wrong list"
-
-test ll_move_l0e4h             t_ll_move       PASS    \
-       "Test ll_move() of tail object to head of list"
-
-test ll_move_l0e4h_0_count     t_ll_move       PASS    \
-       "Tail to head: list 0 element count"
-test ll_move_l0e4h_0_first     t_ll_move       PASS    \
-       "Tail to head: list 0 first element"
-test ll_move_l0e4h_0_last      t_ll_move       PASS    \
-       "Tail to head: list 0 last element"
-test ll_move_l0e4h_0/0_next    t_ll_move       PASS    \
-       "Tail to head: list 0 element 0 next pointer"
-test ll_move_l0e4h_0/0_prev    t_ll_move       PASS    \
-       "Tail to head: list 0 element 0 previous pointer"
-test ll_move_l0e4h_0/0_head    t_ll_move       PASS    \
-       "Tail to head: list 0 element 0 head pointer"
-test ll_move_l0e4h_0/1_next    t_ll_move       PASS    \
-       "Tail to head: list 0 element 1 next pointer"
-test ll_move_l0e4h_0/1_prev    t_ll_move       PASS    \
-       "Tail to head: list 0 element 1 previous pointer"
-test ll_move_l0e4h_0/1_head    t_ll_move       PASS    \
-       "Tail to head: list 0 element 1 head pointer"
-test ll_move_l0e4h_0/2_next    t_ll_move       PASS    \
-       "Tail to head: list 0 element 2 next pointer"
-test ll_move_l0e4h_0/2_prev    t_ll_move       PASS    \
-       "Tail to head: list 0 element 2 previous pointer"
-test ll_move_l0e4h_0/2_head    t_ll_move       PASS    \
-       "Tail to head: list 0 element 2 head pointer"
-test ll_move_l0e4h_0/3_next    t_ll_move       PASS    \
-       "Tail to head: list 0 element 3 next pointer"
-test ll_move_l0e4h_0/3_prev    t_ll_move       PASS    \
-       "Tail to head: list 0 element 3 previous pointer"
-test ll_move_l0e4h_0/3_head    t_ll_move       PASS    \
-       "Tail to head: list 0 element 3 head pointer"
-test ll_move_l0e4h_0/4_next    t_ll_move       PASS    \
-       "Tail to head: list 0 element 4 next pointer"
-test ll_move_l0e4h_0/4_prev    t_ll_move       PASS    \
-       "Tail to head: list 0 element 4 previous pointer"
-test ll_move_l0e4h_0/4_head    t_ll_move       PASS    \
-       "Tail to head: list 0 element 4 head pointer"
-
-test ll_move_l0e4t             t_ll_move       PASS    \
-       "Test ll_move() of head object to tail of list"
-
-test ll_move_l0e4t_0_count     t_ll_move       PASS    \
-       "Head to tail: list 0 element count"
-test ll_move_l0e4t_0_first     t_ll_move       PASS    \
-       "Head to tail: list 0 first element"
-test ll_move_l0e4t_0_last      t_ll_move       PASS    \
-       "Head to tail: list 0 last element"
-test ll_move_l0e4t_0/0_next    t_ll_move       PASS    \
-       "Head to tail: list 0 element 0 next pointer"
-test ll_move_l0e4t_0/0_prev    t_ll_move       PASS    \
-       "Head to tail: list 0 element 0 previous pointer"
-test ll_move_l0e4t_0/0_head    t_ll_move       PASS    \
-       "Head to tail: list 0 element 0 head pointer"
-test ll_move_l0e4t_0/1_next    t_ll_move       PASS    \
-       "Head to tail: list 0 element 1 next pointer"
-test ll_move_l0e4t_0/1_prev    t_ll_move       PASS    \
-       "Head to tail: list 0 element 1 previous pointer"
-test ll_move_l0e4t_0/1_head    t_ll_move       PASS    \
-       "Head to tail: list 0 element 1 head pointer"
-test ll_move_l0e4t_0/2_next    t_ll_move       PASS    \
-       "Head to tail: list 0 element 2 next pointer"
-test ll_move_l0e4t_0/2_prev    t_ll_move       PASS    \
-       "Head to tail: list 0 element 2 previous pointer"
-test ll_move_l0e4t_0/2_head    t_ll_move       PASS    \
-       "Head to tail: list 0 element 2 head pointer"
-test ll_move_l0e4t_0/3_next    t_ll_move       PASS    \
-       "Head to tail: list 0 element 3 next pointer"
-test ll_move_l0e4t_0/3_prev    t_ll_move       PASS    \
-       "Head to tail: list 0 element 3 previous pointer"
-test ll_move_l0e4t_0/3_head    t_ll_move       PASS    \
-       "Head to tail: list 0 element 3 head pointer"
-test ll_move_l0e4t_0/4_next    t_ll_move       PASS    \
-       "Head to tail: list 0 element 4 next pointer"
-test ll_move_l0e4t_0/4_prev    t_ll_move       PASS    \
-       "Head to tail: list 0 element 4 previous pointer"
-test ll_move_l0e4t_0/4_head    t_ll_move       PASS    \
-       "Head to tail: list 0 element 4 head pointer"
-
-test ll_move_l0e4a0            t_ll_move       PASS    \
-       "Test ll_move() of tail object to after head of list"
-
-test ll_move_l0e4a0_0_count    t_ll_move       PASS    \
-       "Tail to after head: list 0 element count"
-test ll_move_l0e4a0_0_first    t_ll_move       PASS    \
-       "Tail to after head: list 0 first element"
-test ll_move_l0e4a0_0_last     t_ll_move       PASS    \
-       "Tail to after head: list 0 last element"
-test ll_move_l0e4a0_0/0_next   t_ll_move       PASS    \
-       "Tail to after head: list 0 element 0 next pointer"
-test ll_move_l0e4a0_0/0_prev   t_ll_move       PASS    \
-       "Tail to after head: list 0 element 0 previous pointer"
-test ll_move_l0e4a0_0/0_head   t_ll_move       PASS    \
-       "Tail to after head: list 0 element 0 head pointer"
-test ll_move_l0e4a0_0/1_next   t_ll_move       PASS    \
-       "Tail to after head: list 0 element 1 next pointer"
-test ll_move_l0e4a0_0/1_prev   t_ll_move       PASS    \
-       "Tail to after head: list 0 element 1 previous pointer"
-test ll_move_l0e4a0_0/1_head   t_ll_move       PASS    \
-       "Tail to after head: list 0 element 1 head pointer"
-test ll_move_l0e4a0_0/2_next   t_ll_move       PASS    \
-       "Tail to after head: list 0 element 2 next pointer"
-test ll_move_l0e4a0_0/2_prev   t_ll_move       PASS    \
-       "Tail to after head: list 0 element 2 previous pointer"
-test ll_move_l0e4a0_0/2_head   t_ll_move       PASS    \
-       "Tail to after head: list 0 element 2 head pointer"
-test ll_move_l0e4a0_0/3_next   t_ll_move       PASS    \
-       "Tail to after head: list 0 element 3 next pointer"
-test ll_move_l0e4a0_0/3_prev   t_ll_move       PASS    \
-       "Tail to after head: list 0 element 3 previous pointer"
-test ll_move_l0e4a0_0/3_head   t_ll_move       PASS    \
-       "Tail to after head: list 0 element 3 head pointer"
-test ll_move_l0e4a0_0/4_next   t_ll_move       PASS    \
-       "Tail to after head: list 0 element 4 next pointer"
-test ll_move_l0e4a0_0/4_prev   t_ll_move       PASS    \
-       "Tail to after head: list 0 element 4 previous pointer"
-test ll_move_l0e4a0_0/4_head   t_ll_move       PASS    \
-       "Tail to after head: list 0 element 4 head pointer"
-
-test ll_move_l0e0b3            t_ll_move       PASS    \
-       "Test ll_move() of head object to before tail of list"
-
-test ll_move_l0e0b3_0_count    t_ll_move       PASS    \
-       "Head to before tail: list 0 element count"
-test ll_move_l0e0b3_0_first    t_ll_move       PASS    \
-       "Head to before tail: list 0 first element"
-test ll_move_l0e0b3_0_last     t_ll_move       PASS    \
-       "Head to before tail: list 0 last element"
-test ll_move_l0e0b3_0/0_next   t_ll_move       PASS    \
-       "Head to before tail: list 0 element 0 next pointer"
-test ll_move_l0e0b3_0/0_prev   t_ll_move       PASS    \
-       "Head to before tail: list 0 element 0 previous pointer"
-test ll_move_l0e0b3_0/0_head   t_ll_move       PASS    \
-       "Head to before tail: list 0 element 0 head pointer"
-test ll_move_l0e0b3_0/1_next   t_ll_move       PASS    \
-       "Head to before tail: list 0 element 1 next pointer"
-test ll_move_l0e0b3_0/1_prev   t_ll_move       PASS    \
-       "Head to before tail: list 0 element 1 previous pointer"
-test ll_move_l0e0b3_0/1_head   t_ll_move       PASS    \
-       "Head to before tail: list 0 element 1 head pointer"
-test ll_move_l0e0b3_0/2_next   t_ll_move       PASS    \
-       "Head to before tail: list 0 element 2 next pointer"
-test ll_move_l0e0b3_0/2_prev   t_ll_move       PASS    \
-       "Head to before tail: list 0 element 2 previous pointer"
-test ll_move_l0e0b3_0/2_head   t_ll_move       PASS    \
-       "Head to before tail: list 0 element 2 head pointer"
-test ll_move_l0e0b3_0/3_next   t_ll_move       PASS    \
-       "Head to before tail: list 0 element 3 next pointer"
-test ll_move_l0e0b3_0/3_prev   t_ll_move       PASS    \
-       "Head to before tail: list 0 element 3 previous pointer"
-test ll_move_l0e0b3_0/3_head   t_ll_move       PASS    \
-       "Head to before tail: list 0 element 3 head pointer"
-test ll_move_l0e0b3_0/4_next   t_ll_move       PASS    \
-       "Head to before tail: list 0 element 4 next pointer"
-test ll_move_l0e0b3_0/4_prev   t_ll_move       PASS    \
-       "Head to before tail: list 0 element 4 previous pointer"
-test ll_move_l0e0b3_0/4_head   t_ll_move       PASS    \
-       "Head to before tail: list 0 element 4 head pointer"
-
-test ll_move_l0e4a1            t_ll_move       PASS    \
-       "Test swapping sequential objects with LINK_LOC_AFTER"
-
-test ll_move_l0e4a1_0_count    t_ll_move       PASS    \
-       "Swap elements with LINK_LOC_AFTER: list 0 element count"
-test ll_move_l0e4a1_0_first    t_ll_move       PASS    \
-       "Swap elements with LINK_LOC_AFTER: list 0 first element"
-test ll_move_l0e4a1_0_last     t_ll_move       PASS    \
-       "Swap elements with LINK_LOC_AFTER: list 0 last element"
-test ll_move_l0e4a1_0/0_next   t_ll_move       PASS    \
-       "Swap elements with LINK_LOC_AFTER: list 0 element 0 next pointer"
-test ll_move_l0e4a1_0/0_prev   t_ll_move       PASS    \
-       "Swap elements with LINK_LOC_AFTER: list 0 element 0 previous pointer"
-test ll_move_l0e4a1_0/0_head   t_ll_move       PASS    \
-       "Swap elements with LINK_LOC_AFTER: list 0 element 0 head pointer"
-test ll_move_l0e4a1_0/1_next   t_ll_move       PASS    \
-       "Swap elements with LINK_LOC_AFTER: list 0 element 1 next pointer"
-test ll_move_l0e4a1_0/1_prev   t_ll_move       PASS    \
-       "Swap elements with LINK_LOC_AFTER: list 0 element 1 previous pointer"
-test ll_move_l0e4a1_0/1_head   t_ll_move       PASS    \
-       "Swap elements with LINK_LOC_AFTER: list 0 element 1 head pointer"
-test ll_move_l0e4a1_0/2_next   t_ll_move       PASS    \
-       "Swap elements with LINK_LOC_AFTER: list 0 element 2 next pointer"
-test ll_move_l0e4a1_0/2_prev   t_ll_move       PASS    \
-       "Swap elements with LINK_LOC_AFTER: list 0 element 2 previous pointer"
-test ll_move_l0e4a1_0/2_head   t_ll_move       PASS    \
-       "Swap elements with LINK_LOC_AFTER: list 0 element 2 head pointer"
-test ll_move_l0e4a1_0/3_next   t_ll_move       PASS    \
-       "Swap elements with LINK_LOC_AFTER: list 0 element 3 next pointer"
-test ll_move_l0e4a1_0/3_prev   t_ll_move       PASS    \
-       "Swap elements with LINK_LOC_AFTER: list 0 element 3 previous pointer"
-test ll_move_l0e4a1_0/3_head   t_ll_move       PASS    \
-       "Swap elements with LINK_LOC_AFTER: list 0 element 3 head pointer"
-test ll_move_l0e4a1_0/4_next   t_ll_move       PASS    \
-       "Swap elements with LINK_LOC_AFTER: list 0 element 4 next pointer"
-test ll_move_l0e4a1_0/4_prev   t_ll_move       PASS    \
-       "Swap elements with LINK_LOC_AFTER: list 0 element 4 previous pointer"
-test ll_move_l0e4a1_0/4_head   t_ll_move       PASS    \
-       "Swap elements with LINK_LOC_AFTER: list 0 element 4 head pointer"
-
-test ll_move_l0e3b0            t_ll_move       PASS    \
-       "Test swapping sequential objects with LINK_LOC_BEFORE"
-
-test ll_move_l0e3b0_0_count    t_ll_move       PASS    \
-       "Swap elements with LINK_LOC_BEFORE: list 0 element count"
-test ll_move_l0e3b0_0_first    t_ll_move       PASS    \
-       "Swap elements with LINK_LOC_BEFORE: list 0 first element"
-test ll_move_l0e3b0_0_last     t_ll_move       PASS    \
-       "Swap elements with LINK_LOC_BEFORE: list 0 last element"
-test ll_move_l0e3b0_0/0_next   t_ll_move       PASS    \
-       "Swap elements with LINK_LOC_BEFORE: list 0 element 0 next pointer"
-test ll_move_l0e3b0_0/0_prev   t_ll_move       PASS    \
-       "Swap elements with LINK_LOC_BEFORE: list 0 element 0 previous pointer"
-test ll_move_l0e3b0_0/0_head   t_ll_move       PASS    \
-       "Swap elements with LINK_LOC_BEFORE: list 0 element 0 head pointer"
-test ll_move_l0e3b0_0/1_next   t_ll_move       PASS    \
-       "Swap elements with LINK_LOC_BEFORE: list 0 element 1 next pointer"
-test ll_move_l0e3b0_0/1_prev   t_ll_move       PASS    \
-       "Swap elements with LINK_LOC_BEFORE: list 0 element 1 previous pointer"
-test ll_move_l0e3b0_0/1_head   t_ll_move       PASS    \
-       "Swap elements with LINK_LOC_BEFORE: list 0 element 1 head pointer"
-test ll_move_l0e3b0_0/2_next   t_ll_move       PASS    \
-       "Swap elements with LINK_LOC_BEFORE: list 0 element 2 next pointer"
-test ll_move_l0e3b0_0/2_prev   t_ll_move       PASS    \
-       "Swap elements with LINK_LOC_BEFORE: list 0 element 2 previous pointer"
-test ll_move_l0e3b0_0/2_head   t_ll_move       PASS    \
-       "Swap elements with LINK_LOC_BEFORE: list 0 element 2 head pointer"
-test ll_move_l0e3b0_0/3_next   t_ll_move       PASS    \
-       "Swap elements with LINK_LOC_BEFORE: list 0 element 3 next pointer"
-test ll_move_l0e3b0_0/3_prev   t_ll_move       PASS    \
-       "Swap elements with LINK_LOC_BEFORE: list 0 element 3 previous pointer"
-test ll_move_l0e3b0_0/3_head   t_ll_move       PASS    \
-       "Swap elements with LINK_LOC_BEFORE: list 0 element 3 head pointer"
-test ll_move_l0e3b0_0/4_next   t_ll_move       PASS    \
-       "Swap elements with LINK_LOC_BEFORE: list 0 element 4 next pointer"
-test ll_move_l0e3b0_0/4_prev   t_ll_move       PASS    \
-       "Swap elements with LINK_LOC_BEFORE: list 0 element 4 previous pointer"
-test ll_move_l0e3b0_0/4_head   t_ll_move       PASS    \
-       "Swap elements with LINK_LOC_BEFORE: list 0 element 4 head pointer"
-
-test ll_move_l0e1h             t_ll_move       PASS    \
-       "Test moving head element to head of list"
-
-test ll_move_l0e1h_0_count     t_ll_move       PASS    \
-       "Head to head: list 0 element count"
-test ll_move_l0e1h_0_first     t_ll_move       PASS    \
-       "Head to head: list 0 first element"
-test ll_move_l0e1h_0_last      t_ll_move       PASS    \
-       "Head to head: list 0 last element"
-test ll_move_l0e1h_0/0_next    t_ll_move       PASS    \
-       "Head to head: list 0 element 0 next pointer"
-test ll_move_l0e1h_0/0_prev    t_ll_move       PASS    \
-       "Head to head: list 0 element 0 previous pointer"
-test ll_move_l0e1h_0/0_head    t_ll_move       PASS    \
-       "Head to head: list 0 element 0 head pointer"
-test ll_move_l0e1h_0/1_next    t_ll_move       PASS    \
-       "Head to head: list 0 element 1 next pointer"
-test ll_move_l0e1h_0/1_prev    t_ll_move       PASS    \
-       "Head to head: list 0 element 1 previous pointer"
-test ll_move_l0e1h_0/1_head    t_ll_move       PASS    \
-       "Head to head: list 0 element 1 head pointer"
-test ll_move_l0e1h_0/2_next    t_ll_move       PASS    \
-       "Head to head: list 0 element 2 next pointer"
-test ll_move_l0e1h_0/2_prev    t_ll_move       PASS    \
-       "Head to head: list 0 element 2 previous pointer"
-test ll_move_l0e1h_0/2_head    t_ll_move       PASS    \
-       "Head to head: list 0 element 2 head pointer"
-test ll_move_l0e1h_0/3_next    t_ll_move       PASS    \
-       "Head to head: list 0 element 3 next pointer"
-test ll_move_l0e1h_0/3_prev    t_ll_move       PASS    \
-       "Head to head: list 0 element 3 previous pointer"
-test ll_move_l0e1h_0/3_head    t_ll_move       PASS    \
-       "Head to head: list 0 element 3 head pointer"
-test ll_move_l0e1h_0/4_next    t_ll_move       PASS    \
-       "Head to head: list 0 element 4 next pointer"
-test ll_move_l0e1h_0/4_prev    t_ll_move       PASS    \
-       "Head to head: list 0 element 4 previous pointer"
-test ll_move_l0e1h_0/4_head    t_ll_move       PASS    \
-       "Head to head: list 0 element 4 head pointer"
-
-test ll_move_l0e0t             t_ll_move       PASS    \
-       "Test moving tail element to tail of list"
-
-test ll_move_l0e0t_0_count     t_ll_move       PASS    \
-       "Tail to tail: list 0 element count"
-test ll_move_l0e0t_0_first     t_ll_move       PASS    \
-       "Tail to tail: list 0 first element"
-test ll_move_l0e0t_0_last      t_ll_move       PASS    \
-       "Tail to tail: list 0 last element"
-test ll_move_l0e0t_0/0_next    t_ll_move       PASS    \
-       "Tail to tail: list 0 element 0 next pointer"
-test ll_move_l0e0t_0/0_prev    t_ll_move       PASS    \
-       "Tail to tail: list 0 element 0 previous pointer"
-test ll_move_l0e0t_0/0_head    t_ll_move       PASS    \
-       "Tail to tail: list 0 element 0 head pointer"
-test ll_move_l0e0t_0/1_next    t_ll_move       PASS    \
-       "Tail to tail: list 0 element 1 next pointer"
-test ll_move_l0e0t_0/1_prev    t_ll_move       PASS    \
-       "Tail to tail: list 0 element 1 previous pointer"
-test ll_move_l0e0t_0/1_head    t_ll_move       PASS    \
-       "Tail to tail: list 0 element 1 head pointer"
-test ll_move_l0e0t_0/2_next    t_ll_move       PASS    \
-       "Tail to tail: list 0 element 2 next pointer"
-test ll_move_l0e0t_0/2_prev    t_ll_move       PASS    \
-       "Tail to tail: list 0 element 2 previous pointer"
-test ll_move_l0e0t_0/2_head    t_ll_move       PASS    \
-       "Tail to tail: list 0 element 2 head pointer"
-test ll_move_l0e0t_0/3_next    t_ll_move       PASS    \
-       "Tail to tail: list 0 element 3 next pointer"
-test ll_move_l0e0t_0/3_prev    t_ll_move       PASS    \
-       "Tail to tail: list 0 element 3 previous pointer"
-test ll_move_l0e0t_0/3_head    t_ll_move       PASS    \
-       "Tail to tail: list 0 element 3 head pointer"
-test ll_move_l0e0t_0/4_next    t_ll_move       PASS    \
-       "Tail to tail: list 0 element 4 next pointer"
-test ll_move_l0e0t_0/4_prev    t_ll_move       PASS    \
-       "Tail to tail: list 0 element 4 previous pointer"
-test ll_move_l0e0t_0/4_head    t_ll_move       PASS    \
-       "Tail to tail: list 0 element 4 head pointer"
-
-program t_ll_remove t_ll_remove \
-       "Test linked list element removal"
-t_ll_remove: t_ll_add
-
-test ll_remove_baseline_0_count        t_ll_remove     PASS    \
-       "Baseline list 0 element count"
-test ll_remove_baseline_0_first        t_ll_remove     PASS    \
-       "Baseline list 0 first element"
-test ll_remove_baseline_0_last t_ll_remove     PASS    \
-       "Baseline list 0 last element"
-
-test ll_remove_baseline_1_count        t_ll_remove     PASS    \
-       "Baseline list 1 element count"
-test ll_remove_baseline_1_first        t_ll_remove     PASS    \
-       "Baseline list 1 first element"
-test ll_remove_baseline_1_last t_ll_remove     PASS    \
-       "Baseline list 1 last element"
-
-test ll_remove_noargs          t_ll_remove     PASS    \
-       "Test ll_remove() with no valid arguments"
-test ll_remove_badlist         t_ll_remove     PASS    \
-       "Test ll_remove() with bad list"
-test ll_remove_badelem         t_ll_remove     PASS    \
-       "Test ll_remove() with bad element"
-
-test ll_remove_unused          t_ll_remove     PASS    \
-       "Test ll_remove() with unused element"
-
-test ll_remove_wronglist       t_ll_remove     PASS    \
-       "Test ll_remove() with wrong list"
-
-test ll_remove_l1e8            t_ll_remove     PASS    \
-       "Test removing an item from one-item list"
-test ll_remove_l1e8_1_count    t_ll_remove     PASS    \
-       "Test removing an item from one-item list: element count"
-test ll_remove_l1e8_1_first    t_ll_remove     PASS    \
-       "Test removing an item from one-item list: first element"
-test ll_remove_l1e8_1_last     t_ll_remove     PASS    \
-       "Test removing an item from one-item list: last element"
-
-test ll_remove_l0e0            t_ll_remove     PASS    \
-       "Test removal of head"
-test ll_remove_l0e0_0_count    t_ll_remove     PASS    \
-       "Test removal of head: element count"
-test ll_remove_l0e0_0_first    t_ll_remove     PASS    \
-       "Test removal of head: first element"
-test ll_remove_l0e0_0_last     t_ll_remove     PASS    \
-       "Test removal of head: last element"
-test ll_remove_l0e0_0/1_next   t_ll_remove     PASS    \
-       "Test removal of head: upper neighbor next pointer"
-test ll_remove_l0e0_0/1_prev   t_ll_remove     PASS    \
-       "Test removal of head: upper neighbor prev pointer"
-test ll_remove_l0e0_0/1_head   t_ll_remove     PASS    \
-       "Test removal of head: upper neighbor head pointer"
-
-test ll_remove_l0e7            t_ll_remove     PASS    \
-       "Test removal of tail"
-test ll_remove_l0e7_0_count    t_ll_remove     PASS    \
-       "Test removal of tail: element count"
-test ll_remove_l0e7_0_first    t_ll_remove     PASS    \
-       "Test removal of tail: first element"
-test ll_remove_l0e7_0_last     t_ll_remove     PASS    \
-       "Test removal of tail: last element"
-test ll_remove_l0e7_0/6_next   t_ll_remove     PASS    \
-       "Test removal of tail: lower neighbor next pointer"
-test ll_remove_l0e7_0/6_prev   t_ll_remove     PASS    \
-       "Test removal of tail: lower neighbor prev pointer"
-test ll_remove_l0e7_0/6_head   t_ll_remove     PASS    \
-       "Test removal of tail: lower neighbor head pointer"
-
-test ll_remove_l0e3            t_ll_remove     PASS    \
-       "Test removal of middle"
-test ll_remove_l0e3_0_count    t_ll_remove     PASS    \
-       "Test removal of middle: element count"
-test ll_remove_l0e3_0_first    t_ll_remove     PASS    \
-       "Test removal of middle: first element"
-test ll_remove_l0e3_0_last     t_ll_remove     PASS    \
-       "Test removal of middle: last element"
-test ll_remove_l0e3_0/2_next   t_ll_remove     PASS    \
-       "Test removal of middle: lower neighbor next pointer"
-test ll_remove_l0e3_0/2_prev   t_ll_remove     PASS    \
-       "Test removal of middle: lower neighbor prev pointer"
-test ll_remove_l0e3_0/2_head   t_ll_remove     PASS    \
-       "Test removal of middle: lower neighbor head pointer"
-test ll_remove_l0e3_0/4_next   t_ll_remove     PASS    \
-       "Test removal of middle: upper neighbor next pointer"
-test ll_remove_l0e3_0/4_prev   t_ll_remove     PASS    \
-       "Test removal of middle: upper neighbor prev pointer"
-test ll_remove_l0e3_0/4_head   t_ll_remove     PASS    \
-       "Test removal of middle: upper neighbor head pointer"
-
-program t_ll_find t_ll_find \
-       "Test linked list element lookup"
-t_ll_find: t_ll_add
-
-test ll_find_baseline_l0_count t_ll_find       PASS    \
-       "Baseline list 0 element count"
-test ll_find_baseline_l0_first t_ll_find       PASS    \
-       "Baseline list 0 first element"
-test ll_find_baseline_l0_last  t_ll_find       PASS    \
-       "Baseline list 0 last element"
-
-test ll_find_baseline_l1_count t_ll_find       PASS    \
-       "Baseline list 1 element count"
-test ll_find_baseline_l1_first t_ll_find       PASS    \
-       "Baseline list 1 first element"
-test ll_find_baseline_l1_last  t_ll_find       PASS    \
-       "Baseline list 1 last element"
-
-test ll_find_noargs            t_ll_find       PASS    \
-       "Test ll_find() with no valid arguments"
-test ll_find_badlist           t_ll_find       PASS    \
-       "Test ll_find() with bad list"
-test ll_find_badresult         t_ll_find       PASS    \
-       "Test ll_find() with bad result"
-test ll_find_badcompare                t_ll_find       PASS    \
-       "Test ll_find() with bad comparison function"
-test ll_find_badstart          t_ll_find       PASS    \
-       "Test ll_find() with bad start element"
-test ll_find_badkey            t_ll_find       PASS    \
-       "Test ll_find() with bad key pointer"
-
-test ll_find_wrongtable                t_ll_find       PASS    \
-       "Test ll_find() with start element in wrong table"
-
-test ll_find_noentry           t_ll_find       PASS    \
-       "Test ll_find() with non-existent entry"
-
-test ll_find_oneentry          t_ll_find       PASS    \
-       "Search for element in one-element list"
-test ll_find_oneentry_result   t_ll_find       PASS    \
-       "Search for element in one-element list: correct result"
-
-test ll_find_head              t_ll_find       PASS    \
-       "Search for head element"
-test ll_find_head_result       t_ll_find       PASS    \
-       "Search for head element: correct result"
-
-test ll_find_tail              t_ll_find       PASS    \
-       "Search for tail element"
-test ll_find_tail_result       t_ll_find       PASS    \
-       "Search for tail element: correct result"
-
-test ll_find_middle            t_ll_find       PASS    \
-       "Search for middle element"
-test ll_find_middle_result     t_ll_find       PASS    \
-       "Search for middle element: correct result"
-
-test ll_find_start             t_ll_find       PASS    \
-       "Search for element given start"
-test ll_find_start_result      t_ll_find       PASS    \
-       "Search for element given start: correct result"
-
-program t_ll_iter t_ll_iter \
-       "Test linked list element iteration"
-t_ll_iter: t_ll_add
-
-test ll_iter_baseline_count    t_ll_iter       PASS    \
-       "Baseline list element count"
-test ll_iter_baseline_first    t_ll_iter       PASS    \
-       "Baseline list first element"
-test ll_iter_baseline_last     t_ll_iter       PASS    \
-       "Baseline list last element"
-
-test ll_iter_noargs            t_ll_iter       PASS    \
-       "Test ll_iter() with no valid arguments"
-test ll_iter_badlist           t_ll_iter       PASS    \
-       "Test ll_iter() with bad list"
-test ll_iter_badfunc           t_ll_iter       PASS    \
-       "Test ll_iter() with bad iteration function"
-
-test ll_iter_funcreturn                t_ll_iter       PASS    \
-       "Test that ll_iter() returns with return value of callback"
-
-test ll_iter_funchead_e0       t_ll_iter       PASS    \
-       "Test that list heads match on element 0"
-test ll_iter_funcelem_e0       t_ll_iter       PASS    \
-       "Test that elements match on element 0"
-test ll_iter_funchead_e1       t_ll_iter       PASS    \
-       "Test that list heads match on element 1"
-test ll_iter_funcelem_e1       t_ll_iter       PASS    \
-       "Test that elements match on element 1"
-test ll_iter_funchead_e2       t_ll_iter       PASS    \
-       "Test that list heads match on element 2"
-test ll_iter_funcelem_e2       t_ll_iter       PASS    \
-       "Test that elements match on element 2"
-test ll_iter_funchead_e3       t_ll_iter       PASS    \
-       "Test that list heads match on element 3"
-test ll_iter_funcelem_e3       t_ll_iter       PASS    \
-       "Test that elements match on element 3"
-test ll_iter_funchead_e4       t_ll_iter       PASS    \
-       "Test that list heads match on element 4"
-test ll_iter_funcelem_e4       t_ll_iter       PASS    \
-       "Test that elements match on element 4"
-
-test ll_iter_function          t_ll_iter       PASS    \
-       "Test ll_iter() returns success"
-
-test ll_iter_func_count                t_ll_iter       PASS    \
-       "Test ll_iter() covers all elements"
-
-program t_ll_flush t_ll_flush \
-       "Test linked list flushing"
-t_ll_flush: t_ll_add t_ll_remove
-
-test ll_flush_baseline_l0_count        t_ll_flush      PASS    \
-       "Baseline list 0 element count"
-test ll_flush_baseline_l0_first        t_ll_flush      PASS    \
-       "Baseline list 0 first element"
-test ll_flush_baseline_l0_last t_ll_flush      PASS    \
-       "Baseline list 0 last element"
-
-test ll_flush_baseline_l1_count        t_ll_flush      PASS    \
-       "Baseline list 1 element count"
-test ll_flush_baseline_l1_first        t_ll_flush      PASS    \
-       "Baseline list 1 first element"
-test ll_flush_baseline_l1_last t_ll_flush      PASS    \
-       "Baseline list 1 last element"
-
-test ll_flush_noargs           t_ll_flush      PASS    \
-       "Test ll_flush() with no valid arguments"
-test ll_flush_badlist          t_ll_flush      PASS    \
-       "Test ll_flush() with bad list"
-
-test ll_flush_nofunc           t_ll_flush      PASS    \
-       "Test ll_flush() with no flush function"
-test ll_flush_nofunc_count     t_ll_flush      PASS    \
-       "Test ll_flush() clears list: element count"
-test ll_flush_nofunc_first     t_ll_flush      PASS    \
-       "Test ll_flush() clears list: first element"
-test ll_flush_nofunc_last      t_ll_flush      PASS    \
-       "Test ll_flush() clears list: last element"
-
-test ll_flush_funcreturn       t_ll_flush      PASS    \
-       "Test ll_flush() returns with flush function return value"
-test ll_flush_funcreturn_count t_ll_flush      PASS    \
-       "Test ll_flush() element removal: element count"
-test ll_flush_funcreturn_first t_ll_flush      PASS    \
-       "Test ll_flush() element removal: first element"
-test ll_flush_funcreturn_last  t_ll_flush      PASS    \
-       "Test ll_flush() element removal: last element"
-
-test ll_flush_funchead_e0      t_ll_flush      PASS    \
-       "Test that list heads match on element 0"
-test ll_flush_funcelem_e0      t_ll_flush      PASS    \
-       "Test that elements match on element 0"
-test ll_flush_funchead_e1      t_ll_flush      PASS    \
-       "Test that list heads match on element 1"
-test ll_flush_funcelem_e1      t_ll_flush      PASS    \
-       "Test that elements match on element 1"
-test ll_flush_funchead_e2      t_ll_flush      PASS    \
-       "Test that list heads match on element 2"
-test ll_flush_funcelem_e2      t_ll_flush      PASS    \
-       "Test that elements match on element 2"
-test ll_flush_funchead_e3      t_ll_flush      PASS    \
-       "Test that list heads match on element 3"
-test ll_flush_funcelem_e3      t_ll_flush      PASS    \
-       "Test that elements match on element 3"
-test ll_flush_funchead_e4      t_ll_flush      PASS    \
-       "Test that list heads match on element 4"
-test ll_flush_funcelem_e4      t_ll_flush      PASS    \
-       "Test that elements match on element 4"
-
-test ll_flush_function         t_ll_flush      PASS    \
-       "Test ll_flush returns success"
-
-test ll_flush_function_count   t_ll_flush      PASS    \
-       "Test ll_flush() element removal: element count"
-test ll_flush_function_first   t_ll_flush      PASS    \
-       "Test ll_flush() element removal: first element"
-test ll_flush_function_last    t_ll_flush      PASS    \
-       "Test ll_flush() element removal: last element"
-
-test ll_flush_func_count       t_ll_flush      PASS    \
-       "Test ll_flush() covers all elements"
-
-
-program t_ht_init t_ht_init \
-       "Test hash table initialization"
-t_ht_init: t_ll_init
-
-test ht_static_magic           t_ht_init       PASS    \
-       "Test static initialization: magic number"
-test ht_static_flags           t_ht_init       PASS    \
-       "Test static initialization: flags"
-test ht_static_modulus         t_ht_init       PASS    \
-       "Test static initialization: modulus"
-test ht_static_count           t_ht_init       PASS    \
-       "Test static initialization: count"
-test ht_static_rollover                t_ht_init       PASS    \
-       "Test static initialization: rollover"
-test ht_static_rollunder       t_ht_init       PASS    \
-       "Test static initialization: rollunder"
-test ht_static_func            t_ht_init       PASS    \
-       "Test static initialization: hash function"
-test ht_static_comp            t_ht_init       PASS    \
-       "Test static initialization: comparison function"
-test ht_static_rsize           t_ht_init       PASS    \
-       "Test static initialization: resize callback"
-test ht_static_extra           t_ht_init       PASS    \
-       "Test static initialization: extra data"
-test ht_static_table           t_ht_init       PASS    \
-       "Test static initialization: table"
-
-test ht_init_noargs            t_ht_init       PASS    \
-       "Test ht_init() with no valid arguments"
-test ht_init_notable           t_ht_init       PASS    \
-       "Test ht_init() with no table"
-test ht_init_nofunc            t_ht_init       PASS    \
-       "Test ht_init() with no hash function"
-test ht_init_nocomp            t_ht_init       PASS    \
-       "Test ht_init() with no comparison function"
-
-test ht_dynamic_nomod          t_ht_init       PASS    \
-       "Test dynamic initialization (no modulus)"
-test ht_dynamic_nomod_magic    t_ht_init       PASS    \
-       "Test dynamic initialization (no modulus): magic number"
-test ht_dynamic_nomod_flags    t_ht_init       PASS    \
-       "Test dynamic initialization (no modulus): flags"
-test ht_dynamic_nomod_modulus  t_ht_init       PASS    \
-       "Test dynamic initialization (no modulus): modulus"
-test ht_dynamic_nomod_count    t_ht_init       PASS    \
-       "Test dynamic initialization (no modulus): count"
-test ht_dynamic_nomod_rollover t_ht_init       PASS    \
-       "Test dynamic initialization (no modulus): rollover"
-test ht_dynamic_nomod_rollunder        t_ht_init       PASS    \
-       "Test dynamic initialization (no modulus): rollunder"
-test ht_dynamic_nomod_func     t_ht_init       PASS    \
-       "Test dynamic initialization (no modulus): hash function"
-test ht_dynamic_nomod_comp     t_ht_init       PASS    \
-       "Test dynamic initialization (no modulus): comparison function"
-test ht_dynamic_nomod_rsize    t_ht_init       PASS    \
-       "Test dynamic initialization (no modulus): resize callback"
-test ht_dynamic_nomod_extra    t_ht_init       PASS    \
-       "Test dynamic initialization (no modulus): extra data"
-test ht_dynamic_nomod_table    t_ht_init       PASS    \
-       "Test dynamic initialization (no modulus): table"
-
-test ht_dynamic_mod6           t_ht_init       PASS    \
-       "Test dynamic initialization (modulus 6, round 7)"
-test ht_dynamic_mod6_magic     t_ht_init       PASS    \
-       "Test dynamic initialization (modulus 6, round 7): magic number"
-test ht_dynamic_mod6_flags     t_ht_init       PASS    \
-       "Test dynamic initialization (modulus 6, round 7): flags"
-test ht_dynamic_mod6_modulus   t_ht_init       PASS    \
-       "Test dynamic initialization (modulus 6, round 7): modulus"
-test ht_dynamic_mod6_count     t_ht_init       PASS    \
-       "Test dynamic initialization (modulus 6, round 7): count"
-test ht_dynamic_mod6_rollover  t_ht_init       PASS    \
-       "Test dynamic initialization (modulus 6, round 7): rollover"
-test ht_dynamic_mod6_rollunder t_ht_init       PASS    \
-       "Test dynamic initialization (modulus 6, round 7): rollunder"
-test ht_dynamic_mod6_func      t_ht_init       PASS    \
-       "Test dynamic initialization (modulus 6, round 7): hash function"
-test ht_dynamic_mod6_comp      t_ht_init       PASS    \
-       "Test dynamic initialization (modulus 6, round 7): comparison function"
-test ht_dynamic_mod6_rsize     t_ht_init       PASS    \
-       "Test dynamic initialization (modulus 6, round 7): resize callback"
-test ht_dynamic_mod6_extra     t_ht_init       PASS    \
-       "Test dynamic initialization (modulus 6, round 7): extra data"
-test ht_dynamic_mod6_table     t_ht_init       PASS    \
-       "Test dynamic initialization (modulus 6, round 7): table"
-test ht_dynamic_mod6_bucket0   t_ht_init       PASS    \
-       "Test dynamic initialization (modulus 6, round 7): bucket 0"
-test ht_dynamic_mod6_bucket1   t_ht_init       PASS    \
-       "Test dynamic initialization (modulus 6, round 7): bucket 1"
-test ht_dynamic_mod6_bucket2   t_ht_init       PASS    \
-       "Test dynamic initialization (modulus 6, round 7): bucket 2"
-test ht_dynamic_mod6_bucket3   t_ht_init       PASS    \
-       "Test dynamic initialization (modulus 6, round 7): bucket 3"
-test ht_dynamic_mod6_bucket4   t_ht_init       PASS    \
-       "Test dynamic initialization (modulus 6, round 7): bucket 4"
-test ht_dynamic_mod6_bucket5   t_ht_init       PASS    \
-       "Test dynamic initialization (modulus 6, round 7): bucket 5"
-test ht_dynamic_mod6_bucket6   t_ht_init       PASS    \
-       "Test dynamic initialization (modulus 6, round 7): bucket 6"
-
-program t_he_init t_he_init \
-       "Test hash table entry initialization"
-t_he_init: t_le_init
-
-test he_static_magic           t_he_init       PASS    \
-       "Test static initialization: magic number"
-test he_static_elem            t_he_init       PASS    \
-       "Test static initialization: linked list element"
-test he_static_table           t_he_init       PASS    \
-       "Test static initialization: hash table pointer"
-test he_static_hash            t_he_init       PASS    \
-       "Test static initialization: hash value"
-test he_static_key             t_he_init       PASS    \
-       "Test static initialization: hash key"
-test he_static_keylen          t_he_init       PASS    \
-       "Test static initialization: hash key length"
-test he_static_value           t_he_init       PASS    \
-       "Test static initialization: value"
-
-test he_init_noargs            t_he_init       PASS    \
-       "Test he_init() with no valid arguments"
-
-test he_dynamic                        t_he_init       PASS    \
-       "Test dynamic initialization"
-test he_dynamic_magic          t_he_init       PASS    \
-       "Test dynamic initialization: magic number"
-test he_dynamic_elem           t_he_init       PASS    \
-       "Test dynamic initialization: linked list element"
-test he_dynamic_table          t_he_init       PASS    \
-       "Test dynamic initialization: hash table pointer"
-test he_dynamic_hash           t_he_init       PASS    \
-       "Test dynamic initialization: hash value"
-test he_dynamic_key            t_he_init       PASS    \
-       "Test dynamic initialization: hash key"
-test he_dynamic_keylen         t_he_init       PASS    \
-       "Test dynamic initialization: hash key length"
-test he_dynamic_value          t_he_init       PASS    \
-       "Test dynamic initialization: value"
-
-# ht_add() and ht_find() are so intricately intertwined that they need
-# to be tested simultaneously.
-program t_ht_addfind t_ht_addfind \
-       "Test hash table entry add and find"
-t_ht_addfind: t_ht_init t_ll_add
-
-test ht_find_noargs            t_ht_addfind    PASS    \
-       "Test ht_find() with no valid arguments"
-test ht_find_badtable          t_ht_addfind    PASS    \
-       "Test ht_find() with bad table"
-test ht_find_badkey            t_ht_addfind    PASS    \
-       "Test ht_find() with bad key"
-
-test ht_find_emptytable                t_ht_addfind    PASS    \
-       "Test ht_find() on an empty table"
-
-test ht_add_noargs             t_ht_addfind    PASS    \
-       "Test ht_add() with no valid arguments"
-test ht_add_badtable           t_ht_addfind    PASS    \
-       "Test ht_add() with bad table"
-test ht_add_badentry           t_ht_addfind    PASS    \
-       "Test ht_add() with bad entry"
-test ht_add_nokey              t_ht_addfind    PASS    \
-       "Test ht_add() with bad key"
-
-test ht_add_frozen             t_ht_addfind    PASS    \
-       "Test that ht_add() refuses to add entries to a frozen table"
-
-test ht_add_t1e5               t_ht_addfind    PASS    \
-       "Add element 5 to hash table 1"
-
-test ht_add_busy               t_ht_addfind    PASS    \
-       "Test that ht_add() refuses to add busy entries to a table"
-
-test ht_find_t1e5              t_ht_addfind    PASS    \
-       "Test that ht_find() can find an element"
-test ht_find_t1e5_entry                t_ht_addfind    PASS    \
-       "Test that ht_find() found the correct entry"
-test ht_find_t1e6              t_ht_addfind    PASS    \
-       "Test that ht_find() fails to find non-existent entry"
-
-test ht_add_duplicate          t_ht_addfind    PASS    \
-       "Test that ht_add() refuses to add duplicate entries to a table"
-
-test ht_add_t0e0               t_ht_addfind    PASS    \
-       "Add element 0 to hash table 0"
-test ht_add_t0e1               t_ht_addfind    PASS    \
-       "Add element 1 to hash table 0"
-test ht_add_t0e2               t_ht_addfind    PASS    \
-       "Add element 2 to hash table 0"
-test ht_add_t0e3               t_ht_addfind    PASS    \
-       "Add element 3 to hash table 0"
-test ht_add_t0e4               t_ht_addfind    PASS    \
-       "Add element 4 to hash table 0"
-
-test ht_find_t0e2              t_ht_addfind    PASS    \
-       "Find element 2 in hash table 0"
-
-program t_ht_move t_ht_move \
-       "Test hash table entry rekey"
-t_ht_move: t_ht_init t_ht_addfind t_ll_remove t_ll_add
-
-test ht_move_noargs            t_ht_move       PASS    \
-       "Test ht_move() with no valid arguments"
-test ht_move_badtable          t_ht_move       PASS    \
-       "Test ht_move() with bad hash table"
-test ht_move_badentry          t_ht_move       PASS    \
-       "Test ht_move() with bad hash entry"
-test ht_move_badkey            t_ht_move       PASS    \
-       "Test ht_move() with bad database key"
-
-test ht_move_unused            t_ht_move       PASS    \
-       "Test ht_move() excludes unused entries"
-test ht_move_wrongtable                t_ht_move       PASS    \
-       "Test ht_move() excludes entries in the wrong hash table"
-test ht_move_frozen            t_ht_move       PASS    \
-       "Test ht_move() excludes tables that are frozen"
-test ht_move_duplicate         t_ht_move       PASS    \
-       "Test ht_move() excludes duplicate keys"
-
-test ht_move_t0e0k6            t_ht_move       PASS    \
-       "Test ht_move() successfully rekeys an entry"
-
-test ht_move_find_t0e0k0       t_ht_move       PASS    \
-       "Test that no entry is available under the old key"
-test ht_move_find_t0e0k6       t_ht_move       PASS    \
-       "Test that entry can be located under the new key"
-test ht_move_find_t0e0k6_entry t_ht_move       PASS    \
-       "Test that entry under new key is the expected entry"
-
-program t_ht_remove t_ht_remove \
-       "Test hash table entry removal"
-t_ht_remove: t_ht_init t_ht_addfind t_ll_remove
-
-test ht_remove_noargs          t_ht_remove     PASS    \
-       "Test ht_remove() with no valid arguments"
-test ht_remove_badtable                t_ht_remove     PASS    \
-       "Test ht_remove() with bad hash table"
-test ht_remove_badentry                t_ht_remove     PASS    \
-       "Test ht_remove() with bad hash table entry"
-
-test ht_remove_unused          t_ht_remove     PASS    \
-       "Test that ht_remove() excludes unused entries"
-test ht_remove_wrongtable      t_ht_remove     PASS    \
-       "Test that ht_remove() excludes entries in the wrong hash table"
-test ht_remove_frozen          t_ht_remove     PASS    \
-       "Test that ht_remove() excludes tables that are frozen"
-
-test ht_remove_t0e0            t_ht_remove     PASS    \
-       "Test that ht_remove() removes entry 0 from table 0"
-test ht_remove_find_t0e0       t_ht_remove     PASS    \
-       "Test that ht_remove() actually did remove the entry from the table"
-test ht_remove_t0e0_table      t_ht_remove     PASS    \
-       "Test that ht_remove() resets the entry's hash table pointer"
-test ht_remove_t0e0_count      t_ht_remove     PASS    \
-       "Test that ht_remove() updates table count"
-
-program t_ht_free t_ht_free \
-       "Test hash table bucket free"
-t_ht_free: t_ht_init t_ht_addfind
-
-test ht_free_noargs            t_ht_free       PASS    \
-       "Test ht_free() with no valid arguments"
-test ht_free_badtable          t_ht_free       PASS    \
-       "Test ht_free() with bad hash table"
-
-test ht_free_frozen            t_ht_free       PASS    \
-       "Test that ht_free() excludes hash tables that are frozen"
-test ht_free_nonempty          t_ht_free       PASS    \
-       "Test that ht_free() excludes hash tables that are not empty"
-
-test ht_free_t0                        t_ht_free       PASS    \
-       "Free an empty table"
-test ht_free_t0_table          t_ht_free       PASS    \
-       "Verify that bucket pointer was cleared"
-
-program t_ht_iter t_ht_iter \
-       "Test hash table entry iteration"
-t_ht_iter: t_ht_init t_ht_addfind
-
-test ht_iter_noargs            t_ht_iter       PASS    \
-       "Test ht_iter() with no valid arguments"
-test ht_iter_badtable          t_ht_iter       PASS    \
-       "Test ht_iter() with bad hash table"
-test ht_iter_baditer           t_ht_iter       PASS    \
-       "Test ht_iter() with bad iteration function"
-
-test ht_iter_frozen            t_ht_iter       PASS    \
-       "Test that ht_iter() excludes hash tables that are frozen"
-
-test ht_iter_funcreturn                t_ht_iter       PASS    \
-       "Test that ht_iter() returns iteration function return value"
-
-test ht_iter_functab_e0                t_ht_iter       PASS    \
-       "Test that hash tables match while iterating over entry 0"
-test ht_iter_funcent_e0                t_ht_iter       PASS    \
-       "Test that hash table entries match while iterating over entry 0"
-test ht_iter_functab_e1                t_ht_iter       PASS    \
-       "Test that hash tables match while iterating over entry 1"
-test ht_iter_funcent_e1                t_ht_iter       PASS    \
-       "Test that hash table entries match while iterating over entry 1"
-test ht_iter_functab_e2                t_ht_iter       PASS    \
-       "Test that hash tables match while iterating over entry 2"
-test ht_iter_funcent_e2                t_ht_iter       PASS    \
-       "Test that hash table entries match while iterating over entry 2"
-test ht_iter_functab_e3                t_ht_iter       PASS    \
-       "Test that hash tables match while iterating over entry 3"
-test ht_iter_funcent_e3                t_ht_iter       PASS    \
-       "Test that hash table entries match while iterating over entry 3"
-test ht_iter_functab_e4                t_ht_iter       PASS    \
-       "Test that hash tables match while iterating over entry 4"
-test ht_iter_funcent_e4                t_ht_iter       PASS    \
-       "Test that hash table entries match while iterating over entry 4"
-test ht_iter_functab_e5                t_ht_iter       PASS    \
-       "Test that hash tables match while iterating over entry 5"
-test ht_iter_funcent_e5                t_ht_iter       PASS    \
-       "Test that hash table entries match while iterating over entry 5"
-test ht_iter_functab_e6                t_ht_iter       PASS    \
-       "Test that hash tables match while iterating over entry 6"
-test ht_iter_funcent_e6                t_ht_iter       PASS    \
-       "Test that hash table entries match while iterating over entry 6"
-test ht_iter_functab_e7                t_ht_iter       PASS    \
-       "Test that hash tables match while iterating over entry 7"
-test ht_iter_funcent_e7                t_ht_iter       PASS    \
-       "Test that hash table entries match while iterating over entry 7"
-
-test ht_iter_function          t_ht_iter       PASS    \
-       "Test that ht_iter() iterates over hash table"
-test ht_iter_func_mask         t_ht_iter       PASS    \
-       "Test that ht_iter() visited all entries in the hash table"
-
-program t_ht_flush t_ht_flush \
-       "Test hash table entry flush"
-t_ht_flush: t_ht_init t_ht_addfind t_ht_remove
-
-test ht_flush_noargs           t_ht_flush      PASS    \
-       "Test ht_flush() with no valid arguments"
-test ht_flush_badtable         t_ht_flush      PASS    \
-       "Test ht_flush() with bad hash table"
-
-test ht_flush_frozen           t_ht_flush      PASS    \
-       "Test that ht_flush() excludes hash tables that are frozen"
-
-test ht_flush_nofunc           t_ht_flush      PASS    \
-       "Test that ht_flush() with no flush function performs correctly"
-test ht_flush_nofunc_count     t_ht_flush      PASS    \
-       "Test that ht_flush() removes all items from the table"
-
-test ht_flush_functab_e0       t_ht_flush      PASS    \
-       "Test that hash tables match while flushing entry 0"
-test ht_flush_funcent_e0       t_ht_flush      PASS    \
-       "Test that hash table entries match while flushing entry 0"
-test ht_flush_functab_e1       t_ht_flush      PASS    \
-       "Test that hash tables match while flushing entry 1"
-test ht_flush_funcent_e1       t_ht_flush      PASS    \
-       "Test that hash table entries match while flushing entry 1"
-test ht_flush_functab_e2       t_ht_flush      PASS    \
-       "Test that hash tables match while flushing entry 2"
-test ht_flush_funcent_e2       t_ht_flush      PASS    \
-       "Test that hash table entries match while flushing entry 2"
-test ht_flush_functab_e3       t_ht_flush      PASS    \
-       "Test that hash tables match while flushing entry 3"
-test ht_flush_funcent_e3       t_ht_flush      PASS    \
-       "Test that hash table entries match while flushing entry 3"
-
-test ht_flush_funcreturn       t_ht_flush      PASS    \
-       "Test that ht_flush() returns flush function return value"
-test ht_flush_funcreturn_count t_ht_flush      PASS    \
-       "Test that ht_flush() removed appropriate entry"
-
-test ht_flush_function         t_ht_flush      PASS    \
-       "Test that ht_flush() flushes tables with a flush function"
-test ht_flush_function_count   t_ht_flush      PASS    \
-       "Test that ht_flush() removes all entries when called with function"
-
-test ht_flush_func_mask                t_ht_flush      PASS    \
-       "Test that ht_flush() visited all entries in the hash table"
-
-program t_ht_resize t_ht_resize \
-       "Test hash table resizing"
-t_ht_resize: t_ht_init t_ht_addfind t_ht_iter t_ht_remove t_ll_init \
-            t_ll_remove t_ll_add
-
-test ht_resize_noargs          t_ht_resize     PASS    \
-       "Test ht_resize() with no valid arguments"
-test ht_resize_badtable                t_ht_resize     PASS    \
-       "Test ht_resize() with bad hash table"
-
-test ht_resize_frozen          t_ht_resize     PASS    \
-       "Test that ht_resize() excludes hash tables that are frozen"
-
-test ht_resize_current         t_ht_resize     PASS    \
-       "Test that ht_resize() to current count works"
-test ht_resize_current_mod     t_ht_resize     PASS    \
-       "Test that ht_resize() to current count set proper modulus"
-
-test ht_resize_shrink          t_ht_resize     PASS    \
-       "Test that ht_resize() to shrink works"
-test ht_resize_shrink_mod      t_ht_resize     PASS    \
-       "Test that ht_resize() to shrink set proper modulus"
-
-test ht_resize_grow            t_ht_resize     PASS    \
-       "Test that ht_resize() to grow works"
-test ht_resize_grow_mod                t_ht_resize     PASS    \
-       "Test that ht_resize() to grow set proper modulus"
-
-test ht_resize_functab_e0      t_ht_resize     PASS    \
-       "Test that entry 0 has the proper hash table pointer"
-test ht_resize_funcent_e0      t_ht_resize     PASS    \
-       "Test that entry 0 is the correct entry"
-test ht_resize_functab_e1      t_ht_resize     PASS    \
-       "Test that entry 1 has the proper hash table pointer"
-test ht_resize_funcent_e1      t_ht_resize     PASS    \
-       "Test that entry 1 is the correct entry"
-test ht_resize_functab_e2      t_ht_resize     PASS    \
-       "Test that entry 2 has the proper hash table pointer"
-test ht_resize_funcent_e2      t_ht_resize     PASS    \
-       "Test that entry 2 is the correct entry"
-test ht_resize_functab_e3      t_ht_resize     PASS    \
-       "Test that entry 3 has the proper hash table pointer"
-test ht_resize_funcent_e3      t_ht_resize     PASS    \
-       "Test that entry 3 is the correct entry"
-test ht_resize_functab_e4      t_ht_resize     PASS    \
-       "Test that entry 4 has the proper hash table pointer"
-test ht_resize_funcent_e4      t_ht_resize     PASS    \
-       "Test that entry 4 is the correct entry"
-test ht_resize_functab_e5      t_ht_resize     PASS    \
-       "Test that entry 5 has the proper hash table pointer"
-test ht_resize_funcent_e5      t_ht_resize     PASS    \
-       "Test that entry 5 is the correct entry"
-test ht_resize_functab_e6      t_ht_resize     PASS    \
-       "Test that entry 6 has the proper hash table pointer"
-test ht_resize_funcent_e6      t_ht_resize     PASS    \
-       "Test that entry 6 is the correct entry"
-test ht_resize_functab_e7      t_ht_resize     PASS    \
-       "Test that entry 7 has the proper hash table pointer"
-test ht_resize_funcent_e7      t_ht_resize     PASS    \
-       "Test that entry 7 is the correct entry"
-test ht_resize_elemchk         t_ht_resize     PASS    \
-       "Check that all entries are in the hash table by iteration"
-test ht_resize_funcmask                t_ht_resize     PASS    \
-       "Verify that all entries were iterated over"
-
-test ht_remove_autoshrink      t_ht_resize     PASS    \
-       "Test that ht_remove() performs autoshrink properly"
-test ht_remove_autoshrink_mod  t_ht_resize     PASS    \
-       "Test that autoshrink set proper modulus"
-
-test ht_resize_callerr_mod     t_ht_resize     PASS    \
-       "Test that table has not been resized prior to error callback"
-test ht_resize_callerr_newmod  t_ht_resize     PASS    \
-       "Test that new modulus is correct in error callback"
-test ht_resize_callerr         t_ht_resize     PASS    \
-       "Test that ht_resize() returns resize callback error"
-
-test ht_resize_callback_mod    t_ht_resize     PASS    \
-       "Test that table has not been resized prior to resize callback"
-test ht_resize_callback_newmod t_ht_resize     PASS    \
-       "Test that new modulus is correct in error callback"
-
-test ht_resize_prep            t_ht_resize     PASS    \
-       "Shrink table in preparation for autogrow test"
-test ht_resize_prep_mod                t_ht_resize     PASS    \
-       "Verify that preparation set proper modulus"
-
-test ht_add_autogrow           t_ht_resize     PASS    \
-       "Test that ht_add() performs autogrow properly"
-test ht_add_autogrow_mod       t_ht_resize     PASS    \
-       "Test that autogrow set proper modulus"
-
-
-program t_st_init t_st_init \
-       "Test sparse matrix table initialization"
-t_st_init: t_ht_init
-
-test st_static_magic           t_st_init       PASS    \
-       "Test static initialization: magic number"
-test st_static_htinit          t_st_init       PASS    \
-       "Test static initialization: hash table init"
-test st_static_hflags          t_st_init       PASS    \
-       "Test static initialization: flags"
-test st_static_hmodulus                t_st_init       PASS    \
-       "Test static initialization: modulus"
-test st_static_hfunc           t_st_init       PASS    \
-       "Test static initialization: hash function"
-test st_static_hcomp           t_st_init       PASS    \
-       "Test static initialization: hash comparison function"
-test st_static_hrsize          t_st_init       PASS    \
-       "Test static initialization: hash resize callback"
-test st_static_rsize           t_st_init       PASS    \
-       "Test static initialization: resize callback"
-test st_static_hextra          t_st_init       PASS    \
-       "Test static initialization: extra data"
-
-test st_init_noargs            t_st_init       PASS    \
-       "Test st_init() with no valid arguments"
-
-test st_dynamic_nomod          t_st_init       PASS    \
-       "Test dynamic initialization (no modulus)"
-test st_dynamic_nomod_magic    t_st_init       PASS    \
-       "Test dynamic initialization (no modulus): magic number"
-test st_dynamic_nomod_htinit   t_st_init       PASS    \
-       "Test dynamic initialization (no modulus): hash table init"
-test st_dynamic_nomod_hflags   t_st_init       PASS    \
-       "Test dynamic initialization (no modulus): flags"
-test st_dynamic_nomod_hmodulus t_st_init       PASS    \
-       "Test dynamic initialization (no modulus): modulus"
-test st_dynamic_nomod_hfunc    t_st_init       PASS    \
-       "Test dynamic initialization (no modulus): hash function"
-test st_dynamic_nomod_hcomp    t_st_init       PASS    \
-       "Test dynamic initialization (no modulus): hash comparison function"
-test st_dynamic_nomod_hrsize   t_st_init       PASS    \
-       "Test dynamic initialization (no modulus): hash resize callback"
-test st_dynamic_nomod_rsize    t_st_init       PASS    \
-       "Test dynamic initialization (no modulus): resize callback"
-test st_dynamic_nomod_hextra   t_st_init       PASS    \
-       "Test dynamic initialization (no modulus): extra data"
-
-test st_dynamic_mod6           t_st_init       PASS    \
-       "Test dynamic initialization (modulus 6, round 7)"
-test st_dynamic_mod6_magic     t_st_init       PASS    \
-       "Test dynamic initialization (modulus 6, round 7): magic number"
-test st_dynamic_mod6_htinit    t_st_init       PASS    \
-       "Test dynamic initialization (modulus 6, round 7): hash table init"
-test st_dynamic_mod6_hflags    t_st_init       PASS    \
-       "Test dynamic initialization (modulus 6, round 7): flags"
-test st_dynamic_mod6_hmodulus  t_st_init       PASS    \
-       "Test dynamic initialization (modulus 6, round 7): modulus"
-test st_dynamic_mod6_hfunc     t_st_init       PASS    \
-       "Test dynamic initialization (modulus 6, round 7): hash function"
-test st_dynamic_mod6_hcomp     t_st_init       PASS    \
-       "Test dynamic initialization (modulus 6, round 7): hash comparison function"
-test st_dynamic_mod6_hrsize    t_st_init       PASS    \
-       "Test dynamic initialization (modulus 6, round 7): hash resize callback"
-test st_dynamic_mod6_rsize     t_st_init       PASS    \
-       "Test dynamic initialization (modulus 6, round 7): resize callback"
-test st_dynamic_mod6_hextra    t_st_init       PASS    \
-       "Test dynamic initialization (modulus 6, round 7): extra data"