LittleDemon WebShell


Linux hosting5.siteguarding.com 3.10.0-962.3.2.lve1.5.88.el7.x86_64 #1 SMP Fri Sep 26 14:06:42 UTC 2025 x86_64
Path : /etc/dante-1.4.3/
File Upload :
Command :
Current File : //etc/dante-1.4.3/configure

#! /bin/sh
# From configure.ac Id: configure.ac.
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69.
#
#
# Copyright (C) 1992-1996, 1998-2012 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. ##
## -------------------- ##

# Be more Bourne compatible
DUALCASE=1; export DUALCASE # for MKS sh
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_nl='
'
export as_nl
# Printing a long string crashes Solaris 7 /usr/bin/printf.
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
# 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
  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
    as_echo_n='/usr/ucb/echo -n'
  else
    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
    as_echo_n_body='eval
      arg=$1;
      case $arg in #(
      *"$as_nl"*)
	expr "X$arg" : "X\\(.*\\)$as_nl";
	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
      esac;
      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
    '
    export as_echo_n_body
    as_echo_n='sh -c $as_echo_n_body as_echo'
  fi
  export as_echo_body
  as_echo='sh -c $as_echo_body as_echo'
fi

# The user is always right.
if test "${PATH_SEPARATOR+set}" != set; then
  PATH_SEPARATOR=:
  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
      PATH_SEPARATOR=';'
  }
fi


# IFS
# We need space, tab and new line, in precisely that order.  Quoting is
# there to prevent editors from complaining about space-tab.
# (If _AS_PATH_WALK were called with IFS unset, it would disable word
# splitting by setting IFS to empty value.)
IFS=" ""	$as_nl"

# Find who we are.  Look in the path if we contain no directory separator.
as_myself=
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
IFS=$as_save_IFS

     ;;
esac
# We did not find ourselves, most probably we were run as `sh COMMAND'
# in which case we are not to be found in the path.
if test "x$as_myself" = x; then
  as_myself=$0
fi
if test ! -f "$as_myself"; then
  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
  exit 1
fi

# 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='> '
PS4='+ '

# NLS nuisances.
LC_ALL=C
export LC_ALL
LANGUAGE=C
export LANGUAGE

# CDPATH.
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH

# Use a proper internal environment variable to ensure we don't fall
  # into an infinite loop, continuously re-executing ourselves.
  if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
    _as_can_reexec=no; export _as_can_reexec;
    # 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.
# Preserve -v and -x to the replacement shell.
BASH_ENV=/dev/null
ENV=/dev/null
(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
case $- in # ((((
  *v*x* | *x*v* ) as_opts=-vx ;;
  *v* ) as_opts=-v ;;
  *x* ) as_opts=-x ;;
  * ) as_opts= ;;
esac
exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
# Admittedly, this is quite paranoid, since all the known shells bail
# out after a failed `exec'.
$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
as_fn_exit 255
  fi
  # We don't want this to propagate to other subprocesses.
          { _as_can_reexec=; unset _as_can_reexec;}
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
test -x / || 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 -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || (
    ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
    ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
    ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
    PATH=/empty FPATH=/empty; export PATH FPATH
    test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\
      || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || 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 :
  export CONFIG_SHELL
             # 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.
# Preserve -v and -x to the replacement shell.
BASH_ENV=/dev/null
ENV=/dev/null
(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
case $- in # ((((
  *v*x* | *x*v* ) as_opts=-vx ;;
  *v* ) as_opts=-v ;;
  *x* ) as_opts=-x ;;
  * ) as_opts= ;;
esac
exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
# Admittedly, this is quite paranoid, since all the known shells bail
# out after a failed `exec'.
$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
exit 255
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_executable_p FILE
# -----------------------
# Test if FILE is an executable regular file.
as_fn_executable_p ()
{
  test -f "$1" && test -x "$1"
} # as_fn_executable_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 STATUS 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=$1; test $as_status -eq 0 && as_status=1
  if test "$4"; then
    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
  fi
  $as_echo "$as_me: error: $2" >&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
else
  as_expr=false
fi

if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
  as_basename=basename
else
  as_basename=false
fi

if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
  as_dirname=dirname
else
  as_dirname=false
fi

as_me=`$as_basename -- "$0" ||
$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
	 X"$0" : 'X\(//\)$' \| \
	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
$as_echo X/"$0" |
    sed '/^.*\/\([^/][^/]*\)\/*$/{
	    s//\1/
	    q
	  }
	  /^X\/\(\/\/\)$/{
	    s//\1/
	    q
	  }
	  /^X\/\(\/\).*/{
	    s//\1/
	    q
	  }
	  s/.*/./; q'`

# 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_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 we had to re-execute with $CONFIG_SHELL, we're ensured to have
  # already done that, so ensure we don't try to do so again and fall
  # in an infinite loop.  This has already happened in practice.
  _as_can_reexec=no; export _as_can_reexec
  # 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
}

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

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 -pR'.
    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
      as_ln_s='cp -pR'
  elif ln conf$$.file conf$$ 2>/dev/null; then
    as_ln_s=ln
  else
    as_ln_s='cp -pR'
  fi
else
  as_ln_s='cp -pR'
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='mkdir -p "$as_dir"'
else
  test -d ./-p && rmdir ./-p
  as_mkdir_p=false
fi

as_test_x='test -x'
as_executable_p=as_fn_executable_p

# 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'"

SHELL=${CONFIG_SHELL-/bin/sh}


test -n "$DJDIR" || exec 7<&0 </dev/null
exec 6>&1

# Name of the host.
# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
# so uname gets run too.
ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`

#
# Initializations.
#
ac_default_prefix=/usr/local
ac_clean_files=
ac_config_libobj_dir=.
LIBOBJS=
cross_compiling=no
subdirs=
MFLAGS=
MAKEFLAGS=

# Identity of this package.
PACKAGE_NAME=
PACKAGE_TARNAME=
PACKAGE_VERSION=
PACKAGE_STRING=
PACKAGE_BUGREPORT=
PACKAGE_URL=

ac_unique_file="include/common.h"
# Factoring default headers for most tests.
ac_includes_default="\
#include <stdio.h>
#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#ifdef HAVE_SYS_STAT_H
# include <sys/stat.h>
#endif
#ifdef STDC_HEADERS
# include <stdlib.h>
# include <stddef.h>
#else
# ifdef HAVE_STDLIB_H
#  include <stdlib.h>
# endif
#endif
#ifdef HAVE_STRING_H
# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
#  include <memory.h>
# endif
# include <string.h>
#endif
#ifdef HAVE_STRINGS_H
# include <strings.h>
#endif
#ifdef HAVE_INTTYPES_H
# include <inttypes.h>
#endif
#ifdef HAVE_STDINT_H
# include <stdint.h>
#endif
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif"

ac_header_list=
ac_subst_vars='am__EXEEXT_FALSE
am__EXEEXT_TRUE
LTLIBOBJS
UNITSUBDIRS
LIBSCOMPAT
SOCKDDEPS
DLIBDEPS
TOPEXTRADIST
DISTSUBDIRS
TOPSUBDIRS
HAVEMOD_PAC_FALSE
HAVEMOD_PAC_TRUE
MAPOPT
ac_krb5_config
SOFULLPATH
NOPRELOAD
LIBRARY_PREFIX
SOCKSIFY_PRELOAD_LIBS
SERVER_INTERPOSITION_ALWAYS_FALSE
SERVER_INTERPOSITION_ALWAYS_TRUE
SERVER_INTERPOSITION_FALSE
SERVER_INTERPOSITION_TRUE
PRELOAD_POSTFIX
PRELOAD_VARIABLE
PRELOAD_SEPERATOR
SOLIB_POSTFIX
LINTSCCOMPATLIB
SCCOMPATLIB
SOCKDCOMPAT
LIBDSCSRC
LIBSCSRC
LIBOBJS
LINTLIBOPT
LINTPASS2
LINTPASS1
LINTFLAGS
RUNLINT_FALSE
RUNLINT_TRUE
LINT
ISA64DIR
LEXLIB
LEX_OUTPUT_ROOT
LEX
YFLAGS
YACC
PRERELEASE_FALSE
PRERELEASE_TRUE
CPP
OTOOL64
OTOOL
LIPO
NMEDIT
DSYMUTIL
MANIFEST_TOOL
RANLIB
ac_ct_AR
AR
DLLTOOL
OBJDUMP
LN_S
NM
ac_ct_DUMPBIN
DUMPBIN
LD
FGREP
EGREP
GREP
SED
am__fastdepCC_FALSE
am__fastdepCC_TRUE
CCDEPMODE
am__nodep
AMDEPBACKSLASH
AMDEP_FALSE
AMDEP_TRUE
am__quote
am__include
DEPDIR
OBJEXT
EXEEXT
ac_ct_CC
CPPFLAGS
LDFLAGS
CFLAGS
CC
host_os
host_vendor
host_cpu
host
build_os
build_vendor
build_cpu
build
LIBTOOL
AM_BACKSLASH
AM_DEFAULT_VERBOSITY
AM_DEFAULT_V
AM_V
am__untar
am__tar
AMTAR
am__leading_dot
SET_MAKE
AWK
mkdir_p
MKDIR_P
INSTALL_STRIP_PROGRAM
STRIP
install_sh
MAKEINFO
AUTOHEADER
AUTOMAKE
AUTOCONF
ACLOCAL
VERSION
PACKAGE
CYGPATH_W
am__isrc
INSTALL_DATA
INSTALL_SCRIPT
INSTALL_PROGRAM
RPMVERSION2
RPMVERSION1
target_alias
host_alias
build_alias
LIBS
ECHO_T
ECHO_N
ECHO_C
DEFS
mandir
localedir
libdir
psdir
pdfdir
dvidir
htmldir
infodir
docdir
oldincludedir
includedir
localstatedir
sharedstatedir
sysconfdir
datadir
datarootdir
libexecdir
sbindir
bindir
program_transform_name
prefix
exec_prefix
PACKAGE_URL
PACKAGE_BUGREPORT
PACKAGE_STRING
PACKAGE_VERSION
PACKAGE_TARNAME
PACKAGE_NAME
PATH_SEPARATOR
SHELL'
ac_subst_files=''
ac_user_opts='
enable_option_checking
enable_silent_rules
enable_shared
enable_static
with_pic
enable_fast_install
enable_dependency_tracking
with_gnu_ld
with_sysroot
enable_libtool_lock
enable_release
enable_debug
enable_livedebug
enable_warnings
enable_diagnostic
enable_profiling
enable_coverage
enable_linting
enable_largefile
with_glibc_secure
enable_client
enable_server
with_socks_conf
with_sockd_conf
with_bsdauth
with_full_env
enable_drt_fallback
enable_preload
enable_clientdl
enable_serverdl
with_libc
with_gssapi_path
with_gssapi
with_krb5_config
with_pac
with_sasl
with_sasl_path
with_ldap
with_ldap_path
with_upnp
enable_pidfile
with_pidfile
with_iomax
with_negmax
with_bufsize
with_libwrap
enable_libwrap
with_pam
enable_libcfail
'
      ac_precious_vars='build_alias
host_alias
target_alias
CC
CFLAGS
LDFLAGS
LIBS
CPPFLAGS
CPP
YACC
YFLAGS'


# Initialize some variables set by options.
ac_init_help=
ac_init_version=false
ac_unrecognized_opts=
ac_unrecognized_sep=
# The variables have the same names as the options, with
# dashes changed to underlines.
cache_file=/dev/null
exec_prefix=NONE
no_create=
no_recursion=
prefix=NONE
program_prefix=NONE
program_suffix=NONE
program_transform_name=s,x,x,
silent=
site=
srcdir=
verbose=
x_includes=NONE
x_libraries=NONE

# Installation directory options.
# These are left unexpanded so users can "make install exec_prefix=/foo"
# and all the variables that are supposed to be based on exec_prefix
# by default will actually change.
# Use braces instead of parens because sh, perl, etc. also accept them.
# (The list follows the same order as the GNU Coding Standards.)
bindir='${exec_prefix}/bin'
sbindir='${exec_prefix}/sbin'
libexecdir='${exec_prefix}/libexec'
datarootdir='${prefix}/share'
datadir='${datarootdir}'
sysconfdir='${prefix}/etc'
sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var'
includedir='${prefix}/include'
oldincludedir='/usr/include'
docdir='${datarootdir}/doc/${PACKAGE}'
infodir='${datarootdir}/info'
htmldir='${docdir}'
dvidir='${docdir}'
pdfdir='${docdir}'
psdir='${docdir}'
libdir='${exec_prefix}/lib'
localedir='${datarootdir}/locale'
mandir='${datarootdir}/man'

ac_prev=
ac_dashdash=
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=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
  *=)   ac_optarg= ;;
  *)    ac_optarg=yes ;;
  esac

  # Accept the important Cygnus configure options, so we can diagnose typos.

  case $ac_dashdash$ac_option in
  --)
    ac_dashdash=yes ;;

  -bindir | --bindir | --bindi | --bind | --bin | --bi)
    ac_prev=bindir ;;
  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
    bindir=$ac_optarg ;;

  -build | --build | --buil | --bui | --bu)
    ac_prev=build_alias ;;
  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
    build_alias=$ac_optarg ;;

  -cache-file | --cache-file | --cache-fil | --cache-fi \
  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
    ac_prev=cache_file ;;
  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
    cache_file=$ac_optarg ;;

  --config-cache | -C)
    cache_file=config.cache ;;

  -datadir | --datadir | --datadi | --datad)
    ac_prev=datadir ;;
  -datadir=* | --datadir=* | --datadi=* | --datad=*)
    datadir=$ac_optarg ;;

  -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
  | --dataroo | --dataro | --datar)
    ac_prev=datarootdir ;;
  -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
  | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
    datarootdir=$ac_optarg ;;

  -disable-* | --disable-*)
    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_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
      *"
"enable_$ac_useropt"
"*) ;;
      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
	 ac_unrecognized_sep=', ';;
    esac
    eval enable_$ac_useropt=no ;;

  -docdir | --docdir | --docdi | --doc | --do)
    ac_prev=docdir ;;
  -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
    docdir=$ac_optarg ;;

  -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
    ac_prev=dvidir ;;
  -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
    dvidir=$ac_optarg ;;

  -enable-* | --enable-*)
    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_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
      *"
"enable_$ac_useropt"
"*) ;;
      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
	 ac_unrecognized_sep=', ';;
    esac
    eval enable_$ac_useropt=\$ac_optarg ;;

  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
  | --exec | --exe | --ex)
    ac_prev=exec_prefix ;;
  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
  | --exec=* | --exe=* | --ex=*)
    exec_prefix=$ac_optarg ;;

  -gas | --gas | --ga | --g)
    # Obsolete; use --with-gas.
    with_gas=yes ;;

  -help | --help | --hel | --he | -h)
    ac_init_help=long ;;
  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
    ac_init_help=recursive ;;
  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
    ac_init_help=short ;;

  -host | --host | --hos | --ho)
    ac_prev=host_alias ;;
  -host=* | --host=* | --hos=* | --ho=*)
    host_alias=$ac_optarg ;;

  -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
    ac_prev=htmldir ;;
  -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
  | --ht=*)
    htmldir=$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 ;;

  -localedir | --localedir | --localedi | --localed | --locale)
    ac_prev=localedir ;;
  -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
    localedir=$ac_optarg ;;

  -localstatedir | --localstatedir | --localstatedi | --localstated \
  | --localstate | --localstat | --localsta | --localst | --locals)
    ac_prev=localstatedir ;;
  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
  | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
    localstatedir=$ac_optarg ;;

  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
    ac_prev=mandir ;;
  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
    mandir=$ac_optarg ;;

  -nfp | --nfp | --nf)
    # Obsolete; use --without-fp.
    with_fp=no ;;

  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
  | --no-cr | --no-c | -n)
    no_create=yes ;;

  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
    no_recursion=yes ;;

  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
  | --oldin | --oldi | --old | --ol | --o)
    ac_prev=oldincludedir ;;
  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
    oldincludedir=$ac_optarg ;;

  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
    ac_prev=prefix ;;
  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
    prefix=$ac_optarg ;;

  -program-prefix | --program-prefix | --program-prefi | --program-pref \
  | --program-pre | --program-pr | --program-p)
    ac_prev=program_prefix ;;
  -program-prefix=* | --program-prefix=* | --program-prefi=* \
  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
    program_prefix=$ac_optarg ;;

  -program-suffix | --program-suffix | --program-suffi | --program-suff \
  | --program-suf | --program-su | --program-s)
    ac_prev=program_suffix ;;
  -program-suffix=* | --program-suffix=* | --program-suffi=* \
  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
    program_suffix=$ac_optarg ;;

  -program-transform-name | --program-transform-name \
  | --program-transform-nam | --program-transform-na \
  | --program-transform-n | --program-transform- \
  | --program-transform | --program-transfor \
  | --program-transfo | --program-transf \
  | --program-trans | --program-tran \
  | --progr-tra | --program-tr | --program-t)
    ac_prev=program_transform_name ;;
  -program-transform-name=* | --program-transform-name=* \
  | --program-transform-nam=* | --program-transform-na=* \
  | --program-transform-n=* | --program-transform-=* \
  | --program-transform=* | --program-transfor=* \
  | --program-transfo=* | --program-transf=* \
  | --program-trans=* | --program-tran=* \
  | --progr-tra=* | --program-tr=* | --program-t=*)
    program_transform_name=$ac_optarg ;;

  -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
    ac_prev=pdfdir ;;
  -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
    pdfdir=$ac_optarg ;;

  -psdir | --psdir | --psdi | --psd | --ps)
    ac_prev=psdir ;;
  -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
    psdir=$ac_optarg ;;

  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
  | -silent | --silent | --silen | --sile | --sil)
    silent=yes ;;

  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
    ac_prev=sbindir ;;
  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
  | --sbi=* | --sb=*)
    sbindir=$ac_optarg ;;

  -sharedstatedir | --sharedstatedir | --sharedstatedi \
  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
  | --sharedst | --shareds | --shared | --share | --shar \
  | --sha | --sh)
    ac_prev=sharedstatedir ;;
  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
  | --sha=* | --sh=*)
    sharedstatedir=$ac_optarg ;;

  -site | --site | --sit)
    ac_prev=site ;;
  -site=* | --site=* | --sit=*)
    site=$ac_optarg ;;

  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
    ac_prev=srcdir ;;
  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
    srcdir=$ac_optarg ;;

  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
  | --syscon | --sysco | --sysc | --sys | --sy)
    ac_prev=sysconfdir ;;
  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
    sysconfdir=$ac_optarg ;;

  -target | --target | --targe | --targ | --tar | --ta | --t)
    ac_prev=target_alias ;;
  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
    target_alias=$ac_optarg ;;

  -v | -verbose | --verbose | --verbos | --verbo | --verb)
    verbose=yes ;;

  -version | --version | --versio | --versi | --vers | -V)
    ac_init_version=: ;;

  -with-* | --with-*)
    ac_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_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
      *"
"with_$ac_useropt"
"*) ;;
      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
	 ac_unrecognized_sep=', ';;
    esac
    eval with_$ac_useropt=\$ac_optarg ;;

  -without-* | --without-*)
    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_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
      *"
"with_$ac_useropt"
"*) ;;
      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
	 ac_unrecognized_sep=', ';;
    esac
    eval with_$ac_useropt=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 ;;

  -*) 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.
    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 ;;

  *)
    # FIXME: should be removed in autoconf 3.0.
    $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
      $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
    : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
    ;;

  esac
done

if test -n "$ac_prev"; then
  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
  as_fn_error $? "missing argument to $ac_option"
fi

if test -n "$ac_unrecognized_opts"; then
  case $enable_option_checking in
    no) ;;
    fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
    *)     $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
  esac
fi

# Check all directory arguments for consistency.
for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
		datadir sysconfdir sharedstatedir localstatedir includedir \
		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
		libdir localedir mandir
do
  eval ac_val=\$$ac_var
  # Remove trailing slashes.
  case $ac_val in
    */ )
      ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
      eval $ac_var=\$ac_val;;
  esac
  # Be sure to have absolute directory names.
  case $ac_val in
    [\\/$]* | ?:[\\/]* )  continue;;
    NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
  esac
  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'
# used to hold the argument of --host etc.
# FIXME: To remove some day.
build=$build_alias
host=$host_alias
target=$target_alias

# FIXME: To remove some day.
if test "x$host_alias" != x; then
  if test "x$build_alias" = x; then
    cross_compiling=maybe
  elif test "x$build_alias" != "x$host_alias"; then
    cross_compiling=yes
  fi
fi

ac_tool_prefix=
test -n "$host_alias" && ac_tool_prefix=$host_alias-

test "$silent" = yes && exec 6>/dev/null


ac_pwd=`pwd` && test -n "$ac_pwd" &&
ac_ls_di=`ls -di .` &&
ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
  as_fn_error $? "working directory cannot be determined"
test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
  as_fn_error $? "pwd does not report name of working directory"


# 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 the parent directory.
  ac_confdir=`$as_dirname -- "$as_myself" ||
$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
	 X"$as_myself" : 'X\(//\)[^/]' \| \
	 X"$as_myself" : 'X\(//\)$' \| \
	 X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
$as_echo X"$as_myself" |
    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
	    s//\1/
	    q
	  }
	  /^X\(\/\/\)[^/].*/{
	    s//\1/
	    q
	  }
	  /^X\(\/\/\)$/{
	    s//\1/
	    q
	  }
	  /^X\(\/\).*/{
	    s//\1/
	    q
	  }
	  s/.*/./; q'`
  srcdir=$ac_confdir
  if test ! -r "$srcdir/$ac_unique_file"; then
    srcdir=..
  fi
else
  ac_srcdir_defaulted=no
fi
if test ! -r "$srcdir/$ac_unique_file"; then
  test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
  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_fn_error $? "$ac_msg"
	pwd)`
# When building in place, set srcdir=.
if test "$ac_abs_confdir" = "$ac_pwd"; then
  srcdir=.
fi
# Remove unnecessary trailing slashes from srcdir.
# Double slashes in file names in object file debugging info
# mess up M-x gdb in Emacs.
case $srcdir in
*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
esac
for ac_var in $ac_precious_vars; do
  eval ac_env_${ac_var}_set=\${${ac_var}+set}
  eval ac_env_${ac_var}_value=\$${ac_var}
  eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
  eval ac_cv_env_${ac_var}_value=\$${ac_var}
done

#
# Report the --help message.
#
if test "$ac_init_help" = "long"; then
  # Omit some internal or obsolete options to make the list less imposing.
  # This message is too long to be a string in the A/UX 3.1 sh.
  cat <<_ACEOF
\`configure' configures this package to adapt to many kinds of systems.

Usage: $0 [OPTION]... [VAR=VALUE]...

To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE.  See below for descriptions of some of the useful variables.

Defaults for the options are specified in brackets.

Configuration:
  -h, --help              display this help and exit
      --help=short        display options specific to this package
      --help=recursive    display the short help of all the included packages
  -V, --version           display version information and exit
  -q, --quiet, --silent   do not print \`checking ...' messages
      --cache-file=FILE   cache test results in FILE [disabled]
  -C, --config-cache      alias for \`--cache-file=config.cache'
  -n, --no-create         do not create output files
      --srcdir=DIR        find the sources in DIR [configure dir or \`..']

Installation directories:
  --prefix=PREFIX         install architecture-independent files in PREFIX
                          [$ac_default_prefix]
  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
                          [PREFIX]

By default, \`make install' will install all the files in
\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
an installation prefix other than \`$ac_default_prefix' using \`--prefix',
for instance \`--prefix=\$HOME'.

For better control, use the options below.

Fine tuning of the installation directories:
  --bindir=DIR            user executables [EPREFIX/bin]
  --sbindir=DIR           system admin executables [EPREFIX/sbin]
  --libexecdir=DIR        program executables [EPREFIX/libexec]
  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
  --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
  --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
  --libdir=DIR            object code libraries [EPREFIX/lib]
  --includedir=DIR        C header files [PREFIX/include]
  --oldincludedir=DIR     C header files for non-gcc [/usr/include]
  --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]
  --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
  --infodir=DIR           info documentation [DATAROOTDIR/info]
  --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
  --mandir=DIR            man documentation [DATAROOTDIR/man]
  --docdir=DIR            documentation root [DATAROOTDIR/doc/PACKAGE]
  --htmldir=DIR           html documentation [DOCDIR]
  --dvidir=DIR            dvi documentation [DOCDIR]
  --pdfdir=DIR            pdf documentation [DOCDIR]
  --psdir=DIR             ps documentation [DOCDIR]
_ACEOF

  cat <<\_ACEOF

Program names:
  --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

System types:
  --build=BUILD     configure for building on BUILD [guessed]
  --host=HOST       cross-compile to build programs to run on HOST [BUILD]
_ACEOF
fi

if test -n "$ac_init_help"; then

  cat <<\_ACEOF

Optional Features:
  --disable-option-checking  ignore unrecognized --enable/--with options
  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
  --enable-silent-rules   less verbose build output (undo: "make V=1")
  --disable-silent-rules  verbose build output (undo: "make V=0")
  --enable-shared[=PKGS]  build shared libraries [default=yes]
  --enable-static[=PKGS]  build static libraries [default=yes]
  --enable-fast-install[=PKGS]
                          optimize for fast installation [default=yes]
  --enable-dependency-tracking
                          do not reject slow dependency extractors
  --disable-dependency-tracking
                          speeds up one-time build
  --disable-libtool-lock  avoid locking (might break parallel builds)
  --enable-release        build prerelease as full release
  --enable-debug          compile with debugging support
  --enable-livedebug      enable low-overhead debugging mode
  --enable-warnings       show compilation warnings
  --enable-diagnostic     enable diagnostic
  --enable-profiling      compile with profiling support in server
  --enable-coverage       compile with coverage
  --enable-linting        enable lint
  --disable-largefile     omit support for large files
  --disable-client        disable compilation of client library
  --disable-server        disable compilation of server
  --enable-drt-fallback   enable direct route fallback in client [default=disabled]
  --disable-preload       disable preloading in server and client
  --disable-clientdl      disable support for preloading in the client
  --disable-serverdl      disable support for preloading in the server
  --disable-pidfile       disable server pidfile creation
  --disable-libwrap       deprecated, use --without-libwrap
  --enable-libcfail       testing option, enable unreliable libc [default=disabled]

Optional Packages:
  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
  --with-pic[=PKGS]       try to use only PIC/non-PIC objects [default=use
                          both]
  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
  --with-sysroot=DIR Search for dependent libraries within DIR
                        (or the compiler's sysroot if not specified).
  --without-glibc-secure  disable libc_enable_secure check [default=detect]
  --with-socks-conf=FILE  change location of socks client configuration file
  --with-sockd-conf=FILE  change location of socks server configuration file
  --without-bsdauth       disable bsdauth support [default=detect]
  --without-full-env      restrictive environment variable usage [default=with]
  --with-libc=NAME        manually set name of c library if necessary
  --with-gssapi-path=PATH specify gssapi path
  --without-gssapi        disable gssapi support
  --with-krb5-config=PATH specify path to krb5-config [default=detect]
  --without-pac           disable PAC support [default=detect]
  --without-sasl          disable sasl support [default=detect]
  --with-sasl-path=PATH   specify sasl path
  --without-ldap          disable ldap support [default=detect]
  --with-ldap-path=PATH   specify ldap path
  --without-upnp          disable upnp support [default=detect]
  --with-pidfile=FILE     change location of server pidfile
  --with-iomax=NUMBER     change number of clients per io process
  --with-negmax=NUMBER    change number of clients per negotiate process
  --with-bufsize=NUMBER    change size of data buffers
  --without-libwrap       never use libwrap, even if it is available
  --without-pam           disable pam support [default=detect]

Some influential environment variables:
  CC          C compiler command
  CFLAGS      C compiler flags
  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
              nonstandard directory <lib dir>
  LIBS        libraries to pass to the linker, e.g. -l<library>
  CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
              you have headers in a nonstandard directory <include dir>
  CPP         C preprocessor
  YACC        The `Yet Another Compiler Compiler' implementation to use.
              Defaults to the first program found out of: `bison -y', `byacc',
              `yacc'.
  YFLAGS      The list of arguments that will be passed by default to $YACC.
              This script will default YFLAGS to the empty string to avoid a
              default value of `-d' given by some make applications.

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

if test "$ac_init_help" = "recursive"; then
  # If there are subdirs, report their specific --help.
  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
    test -d "$ac_dir" ||
      { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
      continue
    ac_builddir=.

case "$ac_dir" in
.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
*)
  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
  # A ".." for each directory in $ac_dir_suffix.
  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
  case $ac_top_builddir_sub in
  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
  esac ;;
esac
ac_abs_top_builddir=$ac_pwd
ac_abs_builddir=$ac_pwd$ac_dir_suffix
# for backward compatibility:
ac_top_builddir=$ac_top_build_prefix

case $srcdir in
  .)  # We are building in place.
    ac_srcdir=.
    ac_top_srcdir=$ac_top_builddir_sub
    ac_abs_top_srcdir=$ac_pwd ;;
  [\\/]* | ?:[\\/]* )  # Absolute name.
    ac_srcdir=$srcdir$ac_dir_suffix;
    ac_top_srcdir=$srcdir
    ac_abs_top_srcdir=$srcdir ;;
  *) # Relative name.
    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
    ac_top_srcdir=$ac_top_build_prefix$srcdir
    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
esac
ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix

    cd "$ac_dir" || { ac_status=$?; continue; }
    # Check for guested configure.
    if test -f "$ac_srcdir/configure.gnu"; then
      echo &&
      $SHELL "$ac_srcdir/configure.gnu" --help=recursive
    elif test -f "$ac_srcdir/configure"; then
      echo &&
      $SHELL "$ac_srcdir/configure" --help=recursive
    else
      $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
    fi || ac_status=$?
    cd "$ac_pwd" || { ac_status=$?; break; }
  done
fi

test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
  cat <<\_ACEOF
configure
generated by GNU Autoconf 2.69

Copyright (C) 2012 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

## ------------------------ ##
## Autoconf initialization. ##
## ------------------------ ##

# ac_fn_c_try_compile LINENO
# --------------------------
# Try to compile conftest.$ac_ext, and return whether this succeeded.
ac_fn_c_try_compile ()
{
  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

	ac_retval=1
fi
  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
  as_fn_set_status $ac_retval

} # ac_fn_c_try_compile

# 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 ||
	 test -x conftest$ac_exeext
       }; then :
  ac_retval=0
else
  $as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5

	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; ${as_lineno_stack:+:} unset as_lineno
  as_fn_set_status $ac_retval

} # ac_fn_c_try_link

# 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 eval \${$3+:} false; 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; ${as_lineno_stack:+:} unset as_lineno

} # ac_fn_c_check_header_compile

# 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; } > conftest.i && {
	 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

    ac_retval=1
fi
  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
  as_fn_set_status $ac_retval

} # ac_fn_c_try_cpp

# 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

       ac_retval=$ac_status
fi
  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
  as_fn_set_status $ac_retval

} # ac_fn_c_try_run

# 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 eval \${$3+:} false; 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

/* 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

#undef $2

/* 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

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; ${as_lineno_stack:+:} unset as_lineno

} # ac_fn_c_check_func

# 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 test_array [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 test_array [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 test_array [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 test_array [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 test_array [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; ${as_lineno_stack:+:} unset as_lineno
  as_fn_set_status $ac_retval

} # ac_fn_c_compute_int

# 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 eval \${$3+:} false; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
$as_echo_n "checking for $2... " >&6; }
if eval \${$3+:} false; 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; }

# 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.i 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 eval \${$3+:} false; 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; ${as_lineno_stack:+:} unset as_lineno

} # ac_fn_c_check_header_mongrel

# 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 eval \${$3+:} false; then :
  $as_echo_n "(cached) " >&6
else
  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 :

else
  eval "$3=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
eval ac_res=\$$3
	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno

} # ac_fn_c_check_type

# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES
# ---------------------------------------------
# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR
# accordingly.
ac_fn_c_check_decl ()
{
  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
  as_decl_name=`echo $2|sed 's/ *(.*//'`
  as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
$as_echo_n "checking whether $as_decl_name is declared... " >&6; }
if eval \${$3+:} false; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
$4
int
main ()
{
#ifndef $as_decl_name
#ifdef __cplusplus
  (void) $as_decl_use;
#else
  (void) $as_decl_name;
#endif
#endif

  ;
  return 0;
}
_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; ${as_lineno_stack:+:} unset as_lineno

} # ac_fn_c_check_decl

# ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES
# ----------------------------------------------------
# Tries to find if the field MEMBER exists in type AGGR, after including
# INCLUDES, setting cache variable VAR accordingly.
ac_fn_c_check_member ()
{
  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5
$as_echo_n "checking for $2.$3... " >&6; }
if eval \${$4+:} false; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
$5
int
main ()
{
static $2 ac_aggr;
if (ac_aggr.$3)
return 0;
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  eval "$4=yes"
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
$5
int
main ()
{
static $2 ac_aggr;
if (sizeof ac_aggr.$3)
return 0;
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  eval "$4=yes"
else
  eval "$4=no"
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
eval ac_res=\$$4
	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno

} # ac_fn_c_check_member
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.69.  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`

/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

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


## ----------- ##
## Core tests. ##
## ----------- ##

_ACEOF


# Keep a trace of the command line.
# Strip out --no-create and --no-recursion so they do not pile up.
# Strip out --silent because we don't want to record it for future runs.
# Also quote any args containing shell meta-characters.
# Make two passes to allow for proper duplicate-argument suppression.
ac_configure_args=
ac_configure_args0=
ac_configure_args1=
ac_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) 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
{ 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

    $as_echo "## ---------------- ##
## Cache variables. ##
## ---------------- ##"
    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
  (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

    $as_echo "## ----------------- ##
## Output variables. ##
## ----------------- ##"
    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
      $as_echo "## ------------------- ##
## File substitutions. ##
## ------------------- ##"
      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

    if test -s confdefs.h; then
      $as_echo "## ----------- ##
## confdefs.h. ##
## ----------- ##"
      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

# confdefs.h avoids OS command line length limits that DEFS can exceed.
rm -f -r conftest* confdefs.h

$as_echo "/* confdefs.h */" > confdefs.h

# Predefined preprocessor variables.

cat >>confdefs.h <<_ACEOF
#define PACKAGE_NAME "$PACKAGE_NAME"
_ACEOF

cat >>confdefs.h <<_ACEOF
#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
_ACEOF

cat >>confdefs.h <<_ACEOF
#define PACKAGE_VERSION "$PACKAGE_VERSION"
_ACEOF

cat >>confdefs.h <<_ACEOF
#define PACKAGE_STRING "$PACKAGE_STRING"
_ACEOF

cat >>confdefs.h <<_ACEOF
#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
_ACEOF

cat >>confdefs.h <<_ACEOF
#define PACKAGE_URL "$PACKAGE_URL"
_ACEOF


# 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
  # We do not want a PATH search for config.site.
  case $CONFIG_SITE in #((
    -*)  ac_site_file1=./$CONFIG_SITE;;
    */*) ac_site_file1=$CONFIG_SITE;;
    *)   ac_site_file1=./$CONFIG_SITE;;
  esac
elif test "x$prefix" != xNONE; then
  ac_site_file1=$prefix/share/config.site
  ac_site_file2=$prefix/etc/config.site
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 /dev/null != "$ac_site_file" && 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" \
      || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "failed to load site script $ac_site_file
See \`config.log' for more details" "$LINENO" 5; }
  fi
done

if test -r "$cache_file"; then
  # Some versions of bash will fail to source /dev/null (special files
  # actually), so we avoid doing that.  DJGPP emulates it as a regular file.
  if test /dev/null != "$cache_file" && 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:${as_lineno-$LINENO}: creating cache $cache_file" >&5
$as_echo "$as_me: creating cache $cache_file" >&6;}
  >$cache_file
fi

as_fn_append ac_header_list " utime.h"
# 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. ##
## -------------------- ##

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





unset TAG
lcase () {
      tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'
}
ucase () {
      tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
}

#current software version, typically three sets of numbers (x.y.z).
#can have an added tag, giving a version such as x.y.z-tag.
version=1.4.3
#TAG="foo"

#NOTE: rpm will not accept '-' chars i version numbers
unset lcTAG
if test x"$TAG" != x; then
   lctag=`echo $TAG | lcase`
fi
RPMVERSION1="$version"
#set this to enable prerelease, changes some defaults (debug enabled)
#prerelease="1"
if test x"$prerelease" != x; then
    prename="pre$prerelease"
    version="${version}${TAG:+-}$TAG-$prename"
    RPMVERSION2="$lctag${lctag:+.}0.$prename"
    TOPEXTRADIST="${TOPEXTRADIST} PRERELEASE"
else
    version="${version}${TAG:+-}$TAG"
    RPMVERSION2="$lctag${lctag:+.}1"
fi




unset initCC initCPP initCFLAGS initCPPFLAGS initLDFLAGS initLIBS
if test x"$CC" != x; then
    initCC="($CC)"
fi
if test x"$CPP" != x; then
    initCPP="($CPP)"
fi
if test x"$CFLAGS" != x; then
    initCFLAGS="($CFLAGS)"
fi
if test x"$CPPFLAGS" != x; then
    initCPPFLAGS="($CPPFLAGS)"
fi
if test x"$LDFLAGS" != x; then
    initLDFLAGS="($LDFLAGS)"
fi
if test x"$LIBS" != x; then
    initLIBS="($LIBS)"
fi

APP=dante
UCAPP=Dante
SERVNAME=sockd
echo "Configuring $UCAPP ${version}:"

case $host in
    *-*-darwin*)
	#XXX problem with -MD and -arch values
	enable_dependency_tracking=no
	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: disabling dependency tracking on this platform" >&5
$as_echo "$as_me: WARNING: disabling dependency tracking on this platform" >&2;}
	;;
esac

am__api_version='1.13'

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_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
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.


# 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
# AmigaOS /C/install, which installs bootblocks on floppy discs
# 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"
# 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:${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 ${ac_cv_path_install+:} false; then :
  $as_echo_n "(cached) " >&6
else
  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
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]/* | \
  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
  ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
  /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
      for ac_exec_ext in '' $ac_executable_extensions; do
	if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
	  if test $ac_prog = install &&
	    grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
	    # AIX install.  It has an incompatible calling convention.
	    :
	  elif test $ac_prog = install &&
	    grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
	    # program-specific install script used by HP pwplus--don't use.
	    :
	  else
	    rm -rf conftest.one conftest.two conftest.dir
	    echo one > conftest.one
	    echo two > conftest.two
	    mkdir conftest.dir
	    if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
	      test -s conftest.one && test -s conftest.two &&
	      test -s conftest.dir/conftest.one &&
	      test -s conftest.dir/conftest.two
	    then
	      ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
	      break 3
	    fi
	  fi
	fi
      done
    done
    ;;
esac

  done
IFS=$as_save_IFS

rm -rf conftest.one conftest.two conftest.dir

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.  Don't cache a
    # value for INSTALL within a source directory, because that will
    # break other packages using the cache if that directory is
    # removed, or if the value is a relative name.
    INSTALL=$ac_install_sh
  fi
fi
{ $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}.
# It thinks the first close brace ends the variable substitution.
test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'

test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'

test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
$as_echo_n "checking whether build environment is sane... " >&6; }
# Reject unsafe characters in $srcdir or the absolute working directory
# name.  Accept space and tab only in the latter.
am_lf='
'
case `pwd` in
  *[\\\"\#\$\&\'\`$am_lf]*)
    as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
esac
case $srcdir in
  *[\\\"\#\$\&\'\`$am_lf\ \	]*)
    as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;;
esac

# 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 (
   am_has_slept=no
   for am_try in 1 2; do
     echo "timestamp, slept: $am_has_slept" > conftest.file
     set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
     if test "$*" = "X"; then
	# -L didn't work.
	set X `ls -t "$srcdir/configure" conftest.file`
     fi
     if test "$*" != "X $srcdir/configure conftest.file" \
	&& test "$*" != "X conftest.file $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".
	as_fn_error $? "ls -t appears to fail.  Make sure there is not a broken
  alias in your environment" "$LINENO" 5
     fi
     if test "$2" = conftest.file || test $am_try -eq 2; then
       break
     fi
     # Just in case.
     sleep 1
     am_has_slept=yes
   done
   test "$2" = conftest.file
   )
then
   # Ok.
   :
else
   as_fn_error $? "newly created file is older than distributed files!
Check your system clock" "$LINENO" 5
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
# If we didn't sleep, we still need to ensure time stamps of config.status and
# generated files are strictly newer.
am_sleep_pid=
if grep 'slept: no' conftest.file >/dev/null 2>&1; then
  ( sleep 1 ) &
  am_sleep_pid=$!
fi

rm -f conftest.file

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"
# Double any \ or $.
# By default was `s,x,x', remove it if useless.
ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`

# expand $ac_aux_dir to an absolute path
am_aux_dir=`cd $ac_aux_dir && pwd`

if test x"${MISSING+set}" != xset; then
  case $am_aux_dir in
  *\ * | *\	*)
    MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
  *)
    MISSING="\${SHELL} $am_aux_dir/missing" ;;
  esac
fi
# Use eval to expand $SHELL
if eval "$MISSING --is-lightweight"; then
  am_missing_run="$MISSING "
else
  am_missing_run=
  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5
$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
fi

if test x"${install_sh}" != xset; then
  case $am_aux_dir in
  *\ * | *\	*)
    install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
  *)
    install_sh="\${SHELL} $am_aux_dir/install-sh"
  esac
fi

# Installed binaries are usually stripped using 'strip' when the user
# run "make install-strip".  However 'strip' might not be the right
# tool to use in cross-compilation environments, therefore Automake
# will honor the 'STRIP' environment variable to overrule this program.
if test "$cross_compiling" != no; then
  if test -n "$ac_tool_prefix"; then
  # 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
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_STRIP+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$STRIP"; then
  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
    ac_cv_prog_STRIP="${ac_tool_prefix}strip"
    $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

fi
fi
STRIP=$ac_cv_prog_STRIP
if test -n "$STRIP"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
$as_echo "$STRIP" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


fi
if test -z "$ac_cv_prog_STRIP"; then
  ac_ct_STRIP=$STRIP
  # Extract the first word of "strip", so it can be a program name with args.
set dummy strip; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$ac_ct_STRIP"; then
  ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
    ac_cv_prog_ac_ct_STRIP="strip"
    $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

fi
fi
ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
if test -n "$ac_ct_STRIP"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
$as_echo "$ac_ct_STRIP" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi

  if test "x$ac_ct_STRIP" = x; then
    STRIP=":"
  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
    STRIP=$ac_ct_STRIP
  fi
else
  STRIP="$ac_cv_prog_STRIP"
fi

fi
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
if test -z "$MKDIR_P"; then
  if ${ac_cv_path_mkdir+:} false; then :
  $as_echo_n "(cached) " >&6
else
  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_prog in mkdir gmkdir; do
	 for ac_exec_ext in '' $ac_executable_extensions; do
	   as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue
	   case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
	     'mkdir (GNU coreutils) '* | \
	     'mkdir (coreutils) '* | \
	     'mkdir (fileutils) '4.1*)
	       ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
	       break 3;;
	   esac
	 done
       done
  done
IFS=$as_save_IFS

fi

  test -d ./--version && rmdir ./--version
  if test "${ac_cv_path_mkdir+set}" = set; then
    MKDIR_P="$ac_cv_path_mkdir -p"
  else
    # As a last resort, use the slow shell script.  Don't cache a
    # value for MKDIR_P within a source directory, because that will
    # break other packages using the cache if that directory is
    # removed, or if the value is a relative name.
    MKDIR_P="$ac_install_sh -d"
  fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
$as_echo "$MKDIR_P" >&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:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_AWK+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$AWK"; then
  ac_cv_prog_AWK="$AWK" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
    ac_cv_prog_AWK="$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

fi
fi
AWK=$ac_cv_prog_AWK
if test -n "$AWK"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
$as_echo "$AWK" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


  test -n "$AWK" && break
done

{ $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 eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
  $as_echo_n "(cached) " >&6
else
  cat >conftest.make <<\_ACEOF
SHELL = /bin/sh
all:
	@echo '@@@%%%=$(MAKE)=@@@%%%'
_ACEOF
# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
case `${MAKE-make} -f conftest.make 2>/dev/null` in
  *@@@%%%=?*=@@@%%%*)
    eval ac_cv_prog_make_${ac_make}_set=yes;;
  *)
    eval ac_cv_prog_make_${ac_make}_set=no;;
esac
rm -f conftest.make
fi
if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
  SET_MAKE=
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  SET_MAKE="MAKE=${MAKE-make}"
fi

rm -rf .tst 2>/dev/null
mkdir .tst 2>/dev/null
if test -d .tst; then
  am__leading_dot=.
else
  am__leading_dot=_
fi
rmdir .tst 2>/dev/null

# Check whether --enable-silent-rules was given.
if test "${enable_silent_rules+set}" = set; then :
  enableval=$enable_silent_rules;
fi

case $enable_silent_rules in # (((
  yes) AM_DEFAULT_VERBOSITY=0;;
   no) AM_DEFAULT_VERBOSITY=1;;
    *) AM_DEFAULT_VERBOSITY=1;;
esac
am_make=${MAKE-make}
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
$as_echo_n "checking whether $am_make supports nested variables... " >&6; }
if ${am_cv_make_support_nested_variables+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if $as_echo 'TRUE=$(BAR$(V))
BAR0=false
BAR1=true
V=1
am__doit:
	@$(TRUE)
.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
  am_cv_make_support_nested_variables=yes
else
  am_cv_make_support_nested_variables=no
fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
$as_echo "$am_cv_make_support_nested_variables" >&6; }
if test $am_cv_make_support_nested_variables = yes; then
    AM_V='$(V)'
  AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
else
  AM_V=$AM_DEFAULT_VERBOSITY
  AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
fi
AM_BACKSLASH='\'

if test "`cd $srcdir && pwd`" != "`pwd`"; then
  # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
  # is not polluted with repeated "-I."
  am__isrc=' -I$(srcdir)'
  # test to see if srcdir already configured
  if test -f $srcdir/config.status; then
    as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
  fi
fi

# test whether we have cygpath
if test -z "$CYGPATH_W"; then
  if (cygpath --version) >/dev/null 2>/dev/null; then
    CYGPATH_W='cygpath -w'
  else
    CYGPATH_W=echo
  fi
fi


# Define the identity of the package.

 PACKAGE=dante
 VERSION=${version}


cat >>confdefs.h <<_ACEOF
#define PACKAGE "$PACKAGE"
_ACEOF


cat >>confdefs.h <<_ACEOF
#define VERSION "$VERSION"
_ACEOF

# Some tools Automake needs.

ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}


AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}


AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}


AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}


MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}

# For better backward compatibility.  To be removed once Automake 1.9.x
# dies out for good.  For more background, see:
# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
mkdir_p='$(MKDIR_P)'

# We need awk for the "check" target.  The system "awk" is bad on
# some platforms.
# Always define AMTAR for backward compatibility.  Yes, it's still used
# in the wild :-(  We should find a proper way to deprecate it ...
AMTAR='$${TAR-tar}'


# We'll loop over all known methods to create a tar archive until one works.
_am_tools='gnutar  pax cpio none'

am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'







ac_config_headers="$ac_config_headers include/autoconf.h"




#NOTE: save CFLAGS; wish to compile without -O2 when debugging
oCFLAGS="$CFLAGS"
oLDFLAGS="$LDFLAGS"
unset CFLAGS
unset LDFLAGS
case `pwd` in
  *\ * | *\	*)
    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;;
esac



macro_version='2.4.2'
macro_revision='1.3337'













ltmain="$ac_aux_dir/ltmain.sh"

# 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 ${ac_cv_build+:} false; 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_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

fi
{ $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 ${ac_cv_host+:} false; 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

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


# Backslashify metacharacters that are still active within
# double-quoted strings.
sed_quote_subst='s/\(["`$\\]\)/\\\1/g'

# Same as above, but do not quote variable references.
double_quote_subst='s/\(["`\\]\)/\\\1/g'

# Sed substitution to delay expansion of an escaped shell variable in a
# double_quote_subst'ed string.
delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'

# Sed substitution to delay expansion of an escaped single quote.
delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'

# Sed substitution to avoid accidental globbing in evaled expressions
no_glob_subst='s/\*/\\\*/g'

ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
$as_echo_n "checking how to print strings... " >&6; }
# Test print first, because it will be a builtin if present.
if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
   test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
  ECHO='print -r --'
elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
  ECHO='printf %s\n'
else
  # Use this function as a fallback that always works.
  func_fallback_echo ()
  {
    eval 'cat <<_LTECHO_EOF
$1
_LTECHO_EOF'
  }
  ECHO='func_fallback_echo'
fi

# func_echo_all arg...
# Invoke $ECHO with all args, space-separated.
func_echo_all ()
{
    $ECHO ""
}

case "$ECHO" in
  printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5
$as_echo "printf" >&6; } ;;
  print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5
$as_echo "print -r" >&6; } ;;
  *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5
$as_echo "cat" >&6; } ;;
esac














DEPDIR="${am__leading_dot}deps"

ac_config_commands="$ac_config_commands depfiles"


am_make=${MAKE-make}
cat > confinc << 'END'
am__doit:
	@echo this is the am__doit target
.PHONY: am__doit
END
# If we don't find an include directive, just comment out the code.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5
$as_echo_n "checking for style of include used by $am_make... " >&6; }
am__include="#"
am__quote=
_am_result=none
# First try GNU make style include.
echo "include confinc" > confmf
# Ignore all kinds of additional output from 'make'.
case `$am_make -s -f confmf 2> /dev/null` in #(
*the\ am__doit\ target*)
  am__include=include
  am__quote=
  _am_result=GNU
  ;;
esac
# Now try BSD make style include.
if test "$am__include" = "#"; then
   echo '.include "confinc"' > confmf
   case `$am_make -s -f confmf 2> /dev/null` in #(
   *the\ am__doit\ target*)
     am__include=.include
     am__quote="\""
     _am_result=BSD
     ;;
   esac
fi


{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5
$as_echo "$_am_result" >&6; }
rm -f confinc confmf

# Check whether --enable-dependency-tracking was given.
if test "${enable_dependency_tracking+set}" = set; then :
  enableval=$enable_dependency_tracking;
fi

if test "x$enable_dependency_tracking" != xno; then
  am_depcomp="$ac_aux_dir/depcomp"
  AMDEPBACKSLASH='\'
  am__nodep='_no'
fi
 if test "x$enable_dependency_tracking" != xno; then
  AMDEP_TRUE=
  AMDEP_FALSE='#'
else
  AMDEP_TRUE='#'
  AMDEP_FALSE=
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
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 ${ac_cv_prog_CC+:} false; 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 as_fn_executable_p "$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

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


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 ${ac_cv_prog_ac_ct_CC+:} false; 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 as_fn_executable_p "$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

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

  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
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:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_CC+:} false; 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 as_fn_executable_p "$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

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


  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 ${ac_cv_prog_CC+:} false; 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 as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
       ac_prog_rejected=yes
       continue
     fi
    ac_cv_prog_CC="cc"
    $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

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


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 ${ac_cv_prog_CC+:} false; 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 as_fn_executable_p "$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

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


    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 ${ac_cv_prog_ac_ct_CC+:} false; 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 as_fn_executable_p "$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

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


  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:${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


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:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
  ac_status=$?
  if test -s conftest.err; then
    sed '10a\
... rest of stderr output deleted ...
         10q' conftest.err >conftest.er1
    cat conftest.er1 >&5
  fi
  rm -f conftest.er1 conftest.err
  $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.  */

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:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
$as_echo_n "checking whether the C compiler works... " >&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:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
  (eval "$ac_link_default") 2>&5
  ac_status=$?
  $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=

else
  ac_file=''
fi
if test -z "$ac_file"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
$as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5

{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error 77 "C compiler cannot create executables
See \`config.log' for more details" "$LINENO" 5; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
fi
{ $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; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
$as_echo "$ac_file" >&6; }
ac_exeext=$ac_cv_exeext

rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
ac_clean_files=$ac_clean_files_save
{ $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:${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; }; 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:${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 conftest$ac_cv_exeext
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
$as_echo "$ac_cv_exeext" >&6; }

rm -f conftest.$ac_ext
EXEEXT=$ac_cv_exeext
ac_exeext=$EXEEXT
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <stdio.h>
int
main ()
{
FILE *f = fopen ("conftest.out", "w");
 return ferror (f) || fclose (f) != 0;

  ;
  return 0;
}
_ACEOF
ac_clean_files="$ac_clean_files conftest.out"
# 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; }
if test "$cross_compiling" != yes; then
  { { 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; }
  if { ac_try='./conftest$ac_cv_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
    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: $cross_compiling" >&5
$as_echo "$cross_compiling" >&6; }

rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
ac_clean_files=$ac_clean_files_save
{ $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 ${ac_cv_objext+:} false; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* 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:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
  (eval "$ac_compile") 2>&5
  ac_status=$?
  $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

{ { $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 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 ${ac_cv_c_compiler_gnu+:} false; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

int
main ()
{
#ifndef __GNUC__
       choke me
#endif

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  ac_compiler_gnu=yes
else
  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:${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
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 ${ac_cv_prog_cc_g+:} false; 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

int
main ()
{

  ;
  return 0;
}
_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.  */

int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

else
  ac_c_werror_flag=$ac_save_c_werror_flag
	 CFLAGS="-g"
	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

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
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 ${ac_cv_prog_cc_c89+:} false; 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.  */
#include <stdarg.h>
#include <stdio.h>
struct stat;
/* 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"
  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
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

depcc="$CC"   am_compiler_list=

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
$as_echo_n "checking dependency style of $depcc... " >&6; }
if ${am_cv_CC_dependencies_compiler_type+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
  # We make a subdir and do the tests there.  Otherwise we can end up
  # making bogus files that we don't know about and never remove.  For
  # instance it was reported that on HP-UX the gcc test will end up
  # making a dummy file named 'D' -- because '-MD' means "put the output
  # in D".
  rm -rf conftest.dir
  mkdir conftest.dir
  # Copy depcomp to subdir because otherwise we won't find it if we're
  # using a relative directory.
  cp "$am_depcomp" conftest.dir
  cd conftest.dir
  # We will build objects and dependencies in a subdirectory because
  # it helps to detect inapplicable dependency modes.  For instance
  # both Tru64's cc and ICC support -MD to output dependencies as a
  # side effect of compilation, but ICC will put the dependencies in
  # the current directory while Tru64 will put them in the object
  # directory.
  mkdir sub

  am_cv_CC_dependencies_compiler_type=none
  if test "$am_compiler_list" = ""; then
     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
  fi
  am__universal=false
  case " $depcc " in #(
     *\ -arch\ *\ -arch\ *) am__universal=true ;;
     esac

  for depmode in $am_compiler_list; do
    # Setup a source with many dependencies, because some compilers
    # like to wrap large dependency lists on column 80 (with \), and
    # we should not choose a depcomp mode which is confused by this.
    #
    # We need to recreate these files for each test, as the compiler may
    # overwrite some of them when testing with obscure command lines.
    # This happens at least with the AIX C compiler.
    : > sub/conftest.c
    for i in 1 2 3 4 5 6; do
      echo '#include "conftst'$i'.h"' >> sub/conftest.c
      # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
      # Solaris 10 /bin/sh.
      echo '/* dummy */' > sub/conftst$i.h
    done
    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf

    # We check with '-c' and '-o' for the sake of the "dashmstdout"
    # mode.  It turns out that the SunPro C++ compiler does not properly
    # handle '-M -o', and we need to detect this.  Also, some Intel
    # versions had trouble with output in subdirs.
    am__obj=sub/conftest.${OBJEXT-o}
    am__minus_obj="-o $am__obj"
    case $depmode in
    gcc)
      # This depmode causes a compiler race in universal mode.
      test "$am__universal" = false || continue
      ;;
    nosideeffect)
      # After this tag, mechanisms are not by side-effect, so they'll
      # only be used when explicitly requested.
      if test "x$enable_dependency_tracking" = xyes; then
	continue
      else
	break
      fi
      ;;
    msvc7 | msvc7msys | msvisualcpp | msvcmsys)
      # This compiler won't grok '-c -o', but also, the minuso test has
      # not run yet.  These depmodes are late enough in the game, and
      # so weak that their functioning should not be impacted.
      am__obj=conftest.${OBJEXT-o}
      am__minus_obj=
      ;;
    none) break ;;
    esac
    if depmode=$depmode \
       source=sub/conftest.c object=$am__obj \
       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
         >/dev/null 2>conftest.err &&
       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
      # icc doesn't choke on unknown options, it will just issue warnings
      # or remarks (even with -Werror).  So we grep stderr for any message
      # that says an option was ignored or not supported.
      # When given -MP, icc 7.0 and 7.1 complain thusly:
      #   icc: Command line warning: ignoring option '-M'; no argument required
      # The diagnosis changed in icc 8.0:
      #   icc: Command line remark: option '-MP' not supported
      if (grep 'ignoring option' conftest.err ||
          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
        am_cv_CC_dependencies_compiler_type=$depmode
        break
      fi
    fi
  done

  cd ..
  rm -rf conftest.dir
else
  am_cv_CC_dependencies_compiler_type=none
fi

fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type

 if
  test "x$enable_dependency_tracking" != xno \
  && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
  am__fastdepCC_TRUE=
  am__fastdepCC_FALSE='#'
else
  am__fastdepCC_TRUE='#'
  am__fastdepCC_FALSE=
fi


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
$as_echo_n "checking for a sed that does not truncate output... " >&6; }
if ${ac_cv_path_SED+:} false; then :
  $as_echo_n "(cached) " >&6
else
            ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
     for ac_i in 1 2 3 4 5 6 7; do
       ac_script="$ac_script$as_nl$ac_script"
     done
     echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
     { ac_script=; unset ac_script;}
     if test -z "$SED"; then
  ac_path_SED_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
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_prog in sed gsed; do
    for ac_exec_ext in '' $ac_executable_extensions; do
      ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
      as_fn_executable_p "$ac_path_SED" || continue
# Check for GNU ac_path_SED and select it if it is found.
  # Check for GNU $ac_path_SED
case `"$ac_path_SED" --version 2>&1` in
*GNU*)
  ac_cv_path_SED="$ac_path_SED" ac_path_SED_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 '' >> "conftest.nl"
    "$ac_path_SED" -f conftest.sed < "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_SED_max-0}; then
      # Best one so far, save it but keep looking for a better one
      ac_cv_path_SED="$ac_path_SED"
      ac_path_SED_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_SED_found && break 3
    done
  done
  done
IFS=$as_save_IFS
  if test -z "$ac_cv_path_SED"; then
    as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5
  fi
else
  ac_cv_path_SED=$SED
fi

fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
$as_echo "$ac_cv_path_SED" >&6; }
 SED="$ac_cv_path_SED"
  rm -f conftest.sed

test -z "$SED" && SED=sed
Xsed="$SED -e 1s/^X//"











{ $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 ${ac_cv_path_GREP+:} false; 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"
      as_fn_executable_p "$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
  ac_cv_path_GREP=$GREP
fi

fi
{ $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"


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
$as_echo_n "checking for egrep... " >&6; }
if ${ac_cv_path_EGREP+:} false; 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"
      as_fn_executable_p "$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

      $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
  ac_cv_path_EGREP=$EGREP
fi

   fi
fi
{ $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"


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
$as_echo_n "checking for fgrep... " >&6; }
if ${ac_cv_path_FGREP+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
   then ac_cv_path_FGREP="$GREP -F"
   else
     if test -z "$FGREP"; then
  ac_path_FGREP_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 fgrep; do
    for ac_exec_ext in '' $ac_executable_extensions; do
      ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
      as_fn_executable_p "$ac_path_FGREP" || continue
# Check for GNU ac_path_FGREP and select it if it is found.
  # Check for GNU $ac_path_FGREP
case `"$ac_path_FGREP" --version 2>&1` in
*GNU*)
  ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_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 'FGREP' >> "conftest.nl"
    "$ac_path_FGREP" FGREP < "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_FGREP_max-0}; then
      # Best one so far, save it but keep looking for a better one
      ac_cv_path_FGREP="$ac_path_FGREP"
      ac_path_FGREP_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_FGREP_found && break 3
    done
  done
  done
IFS=$as_save_IFS
  if test -z "$ac_cv_path_FGREP"; then
    as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
  fi
else
  ac_cv_path_FGREP=$FGREP
fi

   fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5
$as_echo "$ac_cv_path_FGREP" >&6; }
 FGREP="$ac_cv_path_FGREP"


test -z "$GREP" && GREP=grep



















# Check whether --with-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.
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
$as_echo_n "checking for ld used by $CC... " >&6; }
  case $host in
  *-*-mingw*)
    # gcc leaves a trailing carriage return which upsets mingw
    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
  *)
    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
  esac
  case $ac_prog in
    # Accept absolute paths.
    [\\/]* | ?:[\\/]*)
      re_direlt='/[^/][^/]*/\.\./'
      # Canonicalize the pathname of ld
      ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
      while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
	ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
      done
      test -z "$LD" && LD="$ac_prog"
      ;;
  "")
    # If it fails, then pretend we aren't using GCC.
    ac_prog=ld
    ;;
  *)
    # If it is relative, then search for the first ld in PATH.
    with_gnu_ld=unknown
    ;;
  esac
elif test "$with_gnu_ld" = yes; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
$as_echo_n "checking for GNU ld... " >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
$as_echo_n "checking for non-GNU ld... " >&6; }
fi
if ${lt_cv_path_LD+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if test -z "$LD"; then
  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
  for ac_dir in $PATH; do
    IFS="$lt_save_ifs"
    test -z "$ac_dir" && ac_dir=.
    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
      lt_cv_path_LD="$ac_dir/$ac_prog"
      # Check to see if the program is GNU ld.  I'd rather use --version,
      # but apparently some variants of GNU ld only accept -v.
      # Break only if it was the GNU/non-GNU ld that we prefer.
      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
      *GNU* | *'with BFD'*)
	test "$with_gnu_ld" != no && break
	;;
      *)
	test "$with_gnu_ld" != yes && break
	;;
      esac
    fi
  done
  IFS="$lt_save_ifs"
else
  lt_cv_path_LD="$LD" # Let the user override the test with a path.
fi
fi

LD="$lt_cv_path_LD"
if test -n "$LD"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
$as_echo "$LD" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
if ${lt_cv_prog_gnu_ld+:} false; then :
  $as_echo_n "(cached) " >&6
else
  # I'd rather use --version here, but apparently some GNU lds only accept -v.
case `$LD -v 2>&1 </dev/null` in
*GNU* | *'with BFD'*)
  lt_cv_prog_gnu_ld=yes
  ;;
*)
  lt_cv_prog_gnu_ld=no
  ;;
esac
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
$as_echo "$lt_cv_prog_gnu_ld" >&6; }
with_gnu_ld=$lt_cv_prog_gnu_ld









{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
if ${lt_cv_path_NM+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$NM"; then
  # Let the user override the test.
  lt_cv_path_NM="$NM"
else
  lt_nm_to_check="${ac_tool_prefix}nm"
  if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
    lt_nm_to_check="$lt_nm_to_check nm"
  fi
  for lt_tmp_nm in $lt_nm_to_check; do
    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
    for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
      IFS="$lt_save_ifs"
      test -z "$ac_dir" && ac_dir=.
      tmp_nm="$ac_dir/$lt_tmp_nm"
      if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
	# Check to see if the nm accepts a BSD-compat flag.
	# Adding the `sed 1q' prevents false positives on HP-UX, which says:
	#   nm: unknown option "B" ignored
	# Tru64's nm complains that /dev/null is an invalid object file
	case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
	*/dev/null* | *'Invalid file or object type'*)
	  lt_cv_path_NM="$tmp_nm -B"
	  break
	  ;;
	*)
	  case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
	  */dev/null*)
	    lt_cv_path_NM="$tmp_nm -p"
	    break
	    ;;
	  *)
	    lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
	    continue # so that we can try to find one that supports BSD flags
	    ;;
	  esac
	  ;;
	esac
      fi
    done
    IFS="$lt_save_ifs"
  done
  : ${lt_cv_path_NM=no}
fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
$as_echo "$lt_cv_path_NM" >&6; }
if test "$lt_cv_path_NM" != "no"; then
  NM="$lt_cv_path_NM"
else
  # Didn't find any BSD compatible name lister, look for dumpbin.
  if test -n "$DUMPBIN"; then :
    # Let the user override the test.
  else
    if test -n "$ac_tool_prefix"; then
  for ac_prog in dumpbin "link -dump"
  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 ${ac_cv_prog_DUMPBIN+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$DUMPBIN"; then
  ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
    ac_cv_prog_DUMPBIN="$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

fi
fi
DUMPBIN=$ac_cv_prog_DUMPBIN
if test -n "$DUMPBIN"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
$as_echo "$DUMPBIN" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


    test -n "$DUMPBIN" && break
  done
fi
if test -z "$DUMPBIN"; then
  ac_ct_DUMPBIN=$DUMPBIN
  for ac_prog in dumpbin "link -dump"
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 ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$ac_ct_DUMPBIN"; then
  ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
    ac_cv_prog_ac_ct_DUMPBIN="$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

fi
fi
ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN
if test -n "$ac_ct_DUMPBIN"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5
$as_echo "$ac_ct_DUMPBIN" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


  test -n "$ac_ct_DUMPBIN" && break
done

  if test "x$ac_ct_DUMPBIN" = x; then
    DUMPBIN=":"
  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
    DUMPBIN=$ac_ct_DUMPBIN
  fi
fi

    case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in
    *COFF*)
      DUMPBIN="$DUMPBIN -symbols"
      ;;
    *)
      DUMPBIN=:
      ;;
    esac
  fi

  if test "$DUMPBIN" != ":"; then
    NM="$DUMPBIN"
  fi
fi
test -z "$NM" && NM=nm






{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
$as_echo_n "checking the name lister ($NM) interface... " >&6; }
if ${lt_cv_nm_interface+:} false; then :
  $as_echo_n "(cached) " >&6
else
  lt_cv_nm_interface="BSD nm"
  echo "int some_variable = 0;" > conftest.$ac_ext
  (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5)
  (eval "$ac_compile" 2>conftest.err)
  cat conftest.err >&5
  (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
  (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
  cat conftest.err >&5
  (eval echo "\"\$as_me:$LINENO: output\"" >&5)
  cat conftest.out >&5
  if $GREP 'External.*some_variable' conftest.out > /dev/null; then
    lt_cv_nm_interface="MS dumpbin"
  fi
  rm -f conftest*
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5
$as_echo "$lt_cv_nm_interface" >&6; }

{ $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:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
$as_echo "no, using $LN_S" >&6; }
fi

# find the maximum length of command line arguments
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
$as_echo_n "checking the maximum length of command line arguments... " >&6; }
if ${lt_cv_sys_max_cmd_len+:} false; then :
  $as_echo_n "(cached) " >&6
else
    i=0
  teststring="ABCD"

  case $build_os in
  msdosdjgpp*)
    # On DJGPP, this test can blow up pretty badly due to problems in libc
    # (any single argument exceeding 2000 bytes causes a buffer overrun
    # during glob expansion).  Even if it were fixed, the result of this
    # check would be larger than it should be.
    lt_cv_sys_max_cmd_len=12288;    # 12K is about right
    ;;

  gnu*)
    # Under GNU Hurd, this test is not required because there is
    # no limit to the length of command line arguments.
    # Libtool will interpret -1 as no limit whatsoever
    lt_cv_sys_max_cmd_len=-1;
    ;;

  cygwin* | mingw* | cegcc*)
    # On Win9x/ME, this test blows up -- it succeeds, but takes
    # about 5 minutes as the teststring grows exponentially.
    # Worse, since 9x/ME are not pre-emptively multitasking,
    # you end up with a "frozen" computer, even though with patience
    # the test eventually succeeds (with a max line length of 256k).
    # Instead, let's just punt: use the minimum linelength reported by
    # all of the supported platforms: 8192 (on NT/2K/XP).
    lt_cv_sys_max_cmd_len=8192;
    ;;

  mint*)
    # On MiNT this can take a long time and run out of memory.
    lt_cv_sys_max_cmd_len=8192;
    ;;

  amigaos*)
    # On AmigaOS with pdksh, this test takes hours, literally.
    # So we just punt and use a minimum line length of 8192.
    lt_cv_sys_max_cmd_len=8192;
    ;;

  netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
    # This has been around since 386BSD, at least.  Likely further.
    if test -x /sbin/sysctl; then
      lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
    elif test -x /usr/sbin/sysctl; then
      lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
    else
      lt_cv_sys_max_cmd_len=65536	# usable default for all BSDs
    fi
    # And add a safety zone
    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
    ;;

  interix*)
    # We know the value 262144 and hardcode it with a safety zone (like BSD)
    lt_cv_sys_max_cmd_len=196608
    ;;

  os2*)
    # The test takes a long time on OS/2.
    lt_cv_sys_max_cmd_len=8192
    ;;

  osf*)
    # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
    # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
    # nice to cause kernel panics so lets avoid the loop below.
    # First set a reasonable default.
    lt_cv_sys_max_cmd_len=16384
    #
    if test -x /sbin/sysconfig; then
      case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
        *1*) lt_cv_sys_max_cmd_len=-1 ;;
      esac
    fi
    ;;
  sco3.2v5*)
    lt_cv_sys_max_cmd_len=102400
    ;;
  sysv5* | sco5v6* | sysv4.2uw2*)
    kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
    if test -n "$kargmax"; then
      lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[	 ]//'`
    else
      lt_cv_sys_max_cmd_len=32768
    fi
    ;;
  *)
    lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
    if test -n "$lt_cv_sys_max_cmd_len"; then
      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
    else
      # Make teststring a little bigger before we do anything with it.
      # a 1K string should be a reasonable start.
      for i in 1 2 3 4 5 6 7 8 ; do
        teststring=$teststring$teststring
      done
      SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
      # If test is not a shell built-in, we'll probably end up computing a
      # maximum length that is only half of the actual maximum length, but
      # we can't tell.
      while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \
	         = "X$teststring$teststring"; } >/dev/null 2>&1 &&
	      test $i != 17 # 1/2 MB should be enough
      do
        i=`expr $i + 1`
        teststring=$teststring$teststring
      done
      # Only check the string length outside the loop.
      lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
      teststring=
      # Add a significant safety factor because C++ compilers can tack on
      # massive amounts of additional arguments before passing them to the
      # linker.  It appears as though 1/2 is a usable value.
      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
    fi
    ;;
  esac

fi

if test -n $lt_cv_sys_max_cmd_len ; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
$as_echo "$lt_cv_sys_max_cmd_len" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
$as_echo "none" >&6; }
fi
max_cmd_len=$lt_cv_sys_max_cmd_len






: ${CP="cp -f"}
: ${MV="mv -f"}
: ${RM="rm -f"}

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5
$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; }
# Try some XSI features
xsi_shell=no
( _lt_dummy="a/b/c"
  test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
      = c,a/b,b/c, \
    && eval 'test $(( 1 + 1 )) -eq 2 \
    && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
  && xsi_shell=yes
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5
$as_echo "$xsi_shell" >&6; }


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5
$as_echo_n "checking whether the shell understands \"+=\"... " >&6; }
lt_shell_append=no
( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \
    >/dev/null 2>&1 \
  && lt_shell_append=yes
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5
$as_echo "$lt_shell_append" >&6; }


if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
  lt_unset=unset
else
  lt_unset=false
fi





# test EBCDIC or ASCII
case `echo X|tr X '\101'` in
 A) # ASCII based system
    # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
  lt_SP2NL='tr \040 \012'
  lt_NL2SP='tr \015\012 \040\040'
  ;;
 *) # EBCDIC based system
  lt_SP2NL='tr \100 \n'
  lt_NL2SP='tr \r\n \100\100'
  ;;
esac









{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5
$as_echo_n "checking how to convert $build file names to $host format... " >&6; }
if ${lt_cv_to_host_file_cmd+:} false; then :
  $as_echo_n "(cached) " >&6
else
  case $host in
  *-*-mingw* )
    case $build in
      *-*-mingw* ) # actually msys
        lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
        ;;
      *-*-cygwin* )
        lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
        ;;
      * ) # otherwise, assume *nix
        lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
        ;;
    esac
    ;;
  *-*-cygwin* )
    case $build in
      *-*-mingw* ) # actually msys
        lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
        ;;
      *-*-cygwin* )
        lt_cv_to_host_file_cmd=func_convert_file_noop
        ;;
      * ) # otherwise, assume *nix
        lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
        ;;
    esac
    ;;
  * ) # unhandled hosts (and "normal" native builds)
    lt_cv_to_host_file_cmd=func_convert_file_noop
    ;;
esac

fi

to_host_file_cmd=$lt_cv_to_host_file_cmd
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5
$as_echo "$lt_cv_to_host_file_cmd" >&6; }





{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5
$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; }
if ${lt_cv_to_tool_file_cmd+:} false; then :
  $as_echo_n "(cached) " >&6
else
  #assume ordinary cross tools, or native build.
lt_cv_to_tool_file_cmd=func_convert_file_noop
case $host in
  *-*-mingw* )
    case $build in
      *-*-mingw* ) # actually msys
        lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
        ;;
    esac
    ;;
esac

fi

to_tool_file_cmd=$lt_cv_to_tool_file_cmd
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5
$as_echo "$lt_cv_to_tool_file_cmd" >&6; }





{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
$as_echo_n "checking for $LD option to reload object files... " >&6; }
if ${lt_cv_ld_reload_flag+:} false; then :
  $as_echo_n "(cached) " >&6
else
  lt_cv_ld_reload_flag='-r'
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
$as_echo "$lt_cv_ld_reload_flag" >&6; }
reload_flag=$lt_cv_ld_reload_flag
case $reload_flag in
"" | " "*) ;;
*) reload_flag=" $reload_flag" ;;
esac
reload_cmds='$LD$reload_flag -o $output$reload_objs'
case $host_os in
  cygwin* | mingw* | pw32* | cegcc*)
    if test "$GCC" != yes; then
      reload_cmds=false
    fi
    ;;
  darwin*)
    if test "$GCC" = yes; then
      reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
    else
      reload_cmds='$LD$reload_flag -o $output$reload_objs'
    fi
    ;;
esac









if test -n "$ac_tool_prefix"; then
  # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
set dummy ${ac_tool_prefix}objdump; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_OBJDUMP+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$OBJDUMP"; then
  ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
    ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
    $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

fi
fi
OBJDUMP=$ac_cv_prog_OBJDUMP
if test -n "$OBJDUMP"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
$as_echo "$OBJDUMP" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


fi
if test -z "$ac_cv_prog_OBJDUMP"; then
  ac_ct_OBJDUMP=$OBJDUMP
  # Extract the first word of "objdump", so it can be a program name with args.
set dummy objdump; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$ac_ct_OBJDUMP"; then
  ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
    ac_cv_prog_ac_ct_OBJDUMP="objdump"
    $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

fi
fi
ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
if test -n "$ac_ct_OBJDUMP"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
$as_echo "$ac_ct_OBJDUMP" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi

  if test "x$ac_ct_OBJDUMP" = x; then
    OBJDUMP="false"
  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
    OBJDUMP=$ac_ct_OBJDUMP
  fi
else
  OBJDUMP="$ac_cv_prog_OBJDUMP"
fi

test -z "$OBJDUMP" && OBJDUMP=objdump









{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
$as_echo_n "checking how to recognize dependent libraries... " >&6; }
if ${lt_cv_deplibs_check_method+:} false; then :
  $as_echo_n "(cached) " >&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 extended regex.
# If you have `file' or equivalent on your system and you're not sure
# whether `pass_all' will *always* work, you probably want this one.

case $host_os in
aix[4-9]*)
  lt_cv_deplibs_check_method=pass_all
  ;;

beos*)
  lt_cv_deplibs_check_method=pass_all
  ;;

bsdi[45]*)
  lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
  lt_cv_file_magic_cmd='/usr/bin/file -L'
  lt_cv_file_magic_test_file=/shlib/libc.so
  ;;

cygwin*)
  # func_win32_libid is a shell function defined in ltmain.sh
  lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
  lt_cv_file_magic_cmd='func_win32_libid'
  ;;

mingw* | pw32*)
  # Base MSYS/MinGW do not provide the 'file' command needed by
  # func_win32_libid shell function, so use a weaker test based on 'objdump',
  # unless we find 'file', for example because we are cross-compiling.
  # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin.
  if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then
    lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
    lt_cv_file_magic_cmd='func_win32_libid'
  else
    # Keep this pattern in sync with the one in func_win32_libid.
    lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
    lt_cv_file_magic_cmd='$OBJDUMP -f'
  fi
  ;;

cegcc*)
  # use the weaker test based on 'objdump'. See mingw*.
  lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
  lt_cv_file_magic_cmd='$OBJDUMP -f'
  ;;

darwin* | rhapsody*)
  lt_cv_deplibs_check_method=pass_all
  ;;

freebsd* | dragonfly*)
  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
    case $host_cpu in
    i*86 )
      # Not sure whether the presence of OpenBSD here was a mistake.
      # Let's accept both of them until this is cleared up.
      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'
      lt_cv_file_magic_cmd=/usr/bin/file
      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
      ;;
    esac
  else
    lt_cv_deplibs_check_method=pass_all
  fi
  ;;

gnu*)
  lt_cv_deplibs_check_method=pass_all
  ;;

haiku*)
  lt_cv_deplibs_check_method=pass_all
  ;;

hpux10.20* | hpux11*)
  lt_cv_file_magic_cmd=/usr/bin/file
  case $host_cpu in
  ia64*)
    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
    lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
    ;;
  hppa*64*)
    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'
    lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
    ;;
  *)
    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library'
    lt_cv_file_magic_test_file=/usr/lib/libc.sl
    ;;
  esac
  ;;

interix[3-9]*)
  # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
  lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$'
  ;;

irix5* | irix6* | nonstopux*)
  case $LD in
  *-32|*"-32 ") libmagic=32-bit;;
  *-n32|*"-n32 ") libmagic=N32;;
  *-64|*"-64 ") libmagic=64-bit;;
  *) libmagic=never-match;;
  esac
  lt_cv_deplibs_check_method=pass_all
  ;;

# This must be glibc/ELF.
linux* | k*bsd*-gnu | kopensolaris*-gnu)
  lt_cv_deplibs_check_method=pass_all
  ;;

netbsd*)
  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
  else
    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$'
  fi
  ;;

newos6*)
  lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
  lt_cv_file_magic_cmd=/usr/bin/file
  lt_cv_file_magic_test_file=/usr/lib/libnls.so
  ;;

*nto* | *qnx*)
  lt_cv_deplibs_check_method=pass_all
  ;;

openbsd*)
  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'
  else
    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
  fi
  ;;

osf3* | osf4* | osf5*)
  lt_cv_deplibs_check_method=pass_all
  ;;

rdos*)
  lt_cv_deplibs_check_method=pass_all
  ;;

solaris*)
  lt_cv_deplibs_check_method=pass_all
  ;;

sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
  lt_cv_deplibs_check_method=pass_all
  ;;

sysv4 | sysv4.3*)
  case $host_vendor in
  motorola)
    lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
    ;;
  ncr)
    lt_cv_deplibs_check_method=pass_all
    ;;
  sequent)
    lt_cv_file_magic_cmd='/bin/file'
    lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
    ;;
  sni)
    lt_cv_file_magic_cmd='/bin/file'
    lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
    lt_cv_file_magic_test_file=/lib/libc.so
    ;;
  siemens)
    lt_cv_deplibs_check_method=pass_all
    ;;
  pc)
    lt_cv_deplibs_check_method=pass_all
    ;;
  esac
  ;;

tpf*)
  lt_cv_deplibs_check_method=pass_all
  ;;
esac

fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
$as_echo "$lt_cv_deplibs_check_method" >&6; }

file_magic_glob=
want_nocaseglob=no
if test "$build" = "$host"; then
  case $host_os in
  mingw* | pw32*)
    if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
      want_nocaseglob=yes
    else
      file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"`
    fi
    ;;
  esac
fi

file_magic_cmd=$lt_cv_file_magic_cmd
deplibs_check_method=$lt_cv_deplibs_check_method
test -z "$deplibs_check_method" && deplibs_check_method=unknown






















if test -n "$ac_tool_prefix"; then
  # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
set dummy ${ac_tool_prefix}dlltool; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_DLLTOOL+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$DLLTOOL"; then
  ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
    ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
    $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

fi
fi
DLLTOOL=$ac_cv_prog_DLLTOOL
if test -n "$DLLTOOL"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
$as_echo "$DLLTOOL" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


fi
if test -z "$ac_cv_prog_DLLTOOL"; then
  ac_ct_DLLTOOL=$DLLTOOL
  # Extract the first word of "dlltool", so it can be a program name with args.
set dummy dlltool; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$ac_ct_DLLTOOL"; then
  ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
    ac_cv_prog_ac_ct_DLLTOOL="dlltool"
    $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

fi
fi
ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
if test -n "$ac_ct_DLLTOOL"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
$as_echo "$ac_ct_DLLTOOL" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi

  if test "x$ac_ct_DLLTOOL" = x; then
    DLLTOOL="false"
  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
    DLLTOOL=$ac_ct_DLLTOOL
  fi
else
  DLLTOOL="$ac_cv_prog_DLLTOOL"
fi

test -z "$DLLTOOL" && DLLTOOL=dlltool










{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5
$as_echo_n "checking how to associate runtime and link libraries... " >&6; }
if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then :
  $as_echo_n "(cached) " >&6
else
  lt_cv_sharedlib_from_linklib_cmd='unknown'

case $host_os in
cygwin* | mingw* | pw32* | cegcc*)
  # two different shell functions defined in ltmain.sh
  # decide which to use based on capabilities of $DLLTOOL
  case `$DLLTOOL --help 2>&1` in
  *--identify-strict*)
    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
    ;;
  *)
    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
    ;;
  esac
  ;;
*)
  # fallback: assume linklib IS sharedlib
  lt_cv_sharedlib_from_linklib_cmd="$ECHO"
  ;;
esac

fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5
$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; }
sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO








if test -n "$ac_tool_prefix"; then
  for ac_prog in ar
  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 ${ac_cv_prog_AR+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$AR"; then
  ac_cv_prog_AR="$AR" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
    ac_cv_prog_AR="$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

fi
fi
AR=$ac_cv_prog_AR
if test -n "$AR"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
$as_echo "$AR" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


    test -n "$AR" && break
  done
fi
if test -z "$AR"; then
  ac_ct_AR=$AR
  for ac_prog in ar
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 ${ac_cv_prog_ac_ct_AR+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$ac_ct_AR"; then
  ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
    ac_cv_prog_ac_ct_AR="$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

fi
fi
ac_ct_AR=$ac_cv_prog_ac_ct_AR
if test -n "$ac_ct_AR"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
$as_echo "$ac_ct_AR" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


  test -n "$ac_ct_AR" && break
done

  if test "x$ac_ct_AR" = x; then
    AR="false"
  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
    AR=$ac_ct_AR
  fi
fi

: ${AR=ar}
: ${AR_FLAGS=cru}











{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5
$as_echo_n "checking for archiver @FILE support... " >&6; }
if ${lt_cv_ar_at_file+:} false; then :
  $as_echo_n "(cached) " >&6
else
  lt_cv_ar_at_file=no
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  echo conftest.$ac_objext > conftest.lst
      lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5'
      { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
  (eval $lt_ar_try) 2>&5
  ac_status=$?
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
  test $ac_status = 0; }
      if test "$ac_status" -eq 0; then
	# Ensure the archiver fails upon bogus file names.
	rm -f conftest.$ac_objext libconftest.a
	{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
  (eval $lt_ar_try) 2>&5
  ac_status=$?
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
  test $ac_status = 0; }
	if test "$ac_status" -ne 0; then
          lt_cv_ar_at_file=@
        fi
      fi
      rm -f conftest.* libconftest.a

fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
$as_echo "$lt_cv_ar_at_file" >&6; }

if test "x$lt_cv_ar_at_file" = xno; then
  archiver_list_spec=
else
  archiver_list_spec=$lt_cv_ar_at_file
fi







if test -n "$ac_tool_prefix"; then
  # 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
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_STRIP+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$STRIP"; then
  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
    ac_cv_prog_STRIP="${ac_tool_prefix}strip"
    $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

fi
fi
STRIP=$ac_cv_prog_STRIP
if test -n "$STRIP"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
$as_echo "$STRIP" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


fi
if test -z "$ac_cv_prog_STRIP"; then
  ac_ct_STRIP=$STRIP
  # Extract the first word of "strip", so it can be a program name with args.
set dummy strip; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$ac_ct_STRIP"; then
  ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
    ac_cv_prog_ac_ct_STRIP="strip"
    $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

fi
fi
ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
if test -n "$ac_ct_STRIP"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
$as_echo "$ac_ct_STRIP" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi

  if test "x$ac_ct_STRIP" = x; then
    STRIP=":"
  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
    STRIP=$ac_ct_STRIP
  fi
else
  STRIP="$ac_cv_prog_STRIP"
fi

test -z "$STRIP" && STRIP=:






if test -n "$ac_tool_prefix"; then
  # 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
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_RANLIB+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$RANLIB"; then
  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
    $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

fi
fi
RANLIB=$ac_cv_prog_RANLIB
if test -n "$RANLIB"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
$as_echo "$RANLIB" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


fi
if test -z "$ac_cv_prog_RANLIB"; then
  ac_ct_RANLIB=$RANLIB
  # Extract the first word of "ranlib", so it can be a program name with args.
set dummy ranlib; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$ac_ct_RANLIB"; then
  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
    ac_cv_prog_ac_ct_RANLIB="ranlib"
    $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

fi
fi
ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
if test -n "$ac_ct_RANLIB"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
$as_echo "$ac_ct_RANLIB" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi

  if test "x$ac_ct_RANLIB" = x; then
    RANLIB=":"
  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
    RANLIB=$ac_ct_RANLIB
  fi
else
  RANLIB="$ac_cv_prog_RANLIB"
fi

test -z "$RANLIB" && RANLIB=:






# Determine commands to create old-style static archives.
old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
old_postinstall_cmds='chmod 644 $oldlib'
old_postuninstall_cmds=

if test -n "$RANLIB"; then
  case $host_os in
  openbsd*)
    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
    ;;
  *)
    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
    ;;
  esac
  old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
fi

case $host_os in
  darwin*)
    lock_old_archive_extraction=yes ;;
  *)
    lock_old_archive_extraction=no ;;
esac







































# If no C compiler was specified, use CC.
LTCC=${LTCC-"$CC"}

# If no C compiler flags were specified, use CFLAGS.
LTCFLAGS=${LTCFLAGS-"$CFLAGS"}

# Allow CC to be a program name with arguments.
compiler=$CC


# Check for command to grab the raw symbol name followed by C symbol from nm.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; }
if ${lt_cv_sys_global_symbol_pipe+:} false; then :
  $as_echo_n "(cached) " >&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]*\)'

# Define system-specific variables.
case $host_os in
aix*)
  symcode='[BCDT]'
  ;;
cygwin* | mingw* | pw32* | cegcc*)
  symcode='[ABCDGISTW]'
  ;;
hpux*)
  if test "$host_cpu" = ia64; then
    symcode='[ABCDEGRST]'
  fi
  ;;
irix* | nonstopux*)
  symcode='[BCDEGRST]'
  ;;
osf*)
  symcode='[BCDEGQRST]'
  ;;
solaris*)
  symcode='[BDRT]'
  ;;
sco3.2v5*)
  symcode='[DT]'
  ;;
sysv4.2uw2*)
  symcode='[DT]'
  ;;
sysv5* | sco5v6* | unixware* | OpenUNIX*)
  symcode='[ABDT]'
  ;;
sysv4)
  symcode='[DFNSTU]'
  ;;
esac

# If we're using GNU nm, then use its standard symbol codes.
case `$NM -V 2>&1` in
*GNU* | *'with BFD'*)
  symcode='[ABCDGIRSTW]' ;;
esac

# Transform an extracted symbol line into a proper C declaration.
# Some systems (esp. on ia64) link data and code symbols differently,
# so use this general approach.
lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"

# Transform an extracted symbol line into symbol name and symbol address
lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"\2\", (void *) \&\2},/p'"
lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"lib\2\", (void *) \&\2},/p'"

# Handle CRLF in mingw tool chain
opt_cr=
case $build_os in
mingw*)
  opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
  ;;
esac

# Try without a prefix underscore, then with it.
for ac_symprfx in "" "_"; do

  # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
  symxfrm="\\1 $ac_symprfx\\2 \\2"

  # Write the raw and C identifiers.
  if test "$lt_cv_nm_interface" = "MS dumpbin"; then
    # Fake it for dumpbin and say T for any non-static function
    # and D for any global variable.
    # Also find C++ and __fastcall symbols from MSVC++,
    # which start with @ or ?.
    lt_cv_sys_global_symbol_pipe="$AWK '"\
"     {last_section=section; section=\$ 3};"\
"     /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
"     /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
"     \$ 0!~/External *\|/{next};"\
"     / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
"     {if(hide[section]) next};"\
"     {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
"     {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
"     s[1]~/^[@?]/{print s[1], s[1]; next};"\
"     s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
"     ' prfx=^$ac_symprfx"
  else
    lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[	 ]\($symcode$symcode*\)[	 ][	 ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
  fi
  lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"

  # Check to see that the pipe works correctly.
  pipe_works=no

  rm -f conftest*
  cat > conftest.$ac_ext <<_LT_EOF
#ifdef __cplusplus
extern "C" {
#endif
char nm_test_var;
void nm_test_func(void);
void nm_test_func(void){}
#ifdef __cplusplus
}
#endif
int main(){nm_test_var='a';nm_test_func();return(0);}
_LT_EOF

  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
  (eval $ac_compile) 2>&5
  ac_status=$?
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
  test $ac_status = 0; }; then
    # Now try to grab the symbols.
    nlist=conftest.nm
    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5
  (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5
  ac_status=$?
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
  test $ac_status = 0; } && 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 $GREP ' nm_test_var$' "$nlist" >/dev/null; then
	if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
	  cat <<_LT_EOF > conftest.$ac_ext
/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
/* DATA imports from DLLs on WIN32 con't be const, because runtime
   relocations are performed -- see ld's documentation on pseudo-relocs.  */
# define LT_DLSYM_CONST
#elif defined(__osf__)
/* This system does not cope well with relocations in const data.  */
# define LT_DLSYM_CONST
#else
# define LT_DLSYM_CONST const
#endif

#ifdef __cplusplus
extern "C" {
#endif

_LT_EOF
	  # Now generate the symbol file.
	  eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'

	  cat <<_LT_EOF >> conftest.$ac_ext

/* The mapping between symbol names and symbols.  */
LT_DLSYM_CONST struct {
  const char *name;
  void       *address;
}
lt__PROGRAM__LTX_preloaded_symbols[] =
{
  { "@PROGRAM@", (void *) 0 },
_LT_EOF
	  $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
	  cat <<\_LT_EOF >> conftest.$ac_ext
  {0, (void *) 0}
};

/* This works around a problem in FreeBSD linker */
#ifdef FREEBSD_WORKAROUND
static const void *lt_preloaded_setup() {
  return lt__PROGRAM__LTX_preloaded_symbols;
}
#endif

#ifdef __cplusplus
}
#endif
_LT_EOF
	  # Now try linking the two files.
	  mv conftest.$ac_objext conftstm.$ac_objext
	  lt_globsym_save_LIBS=$LIBS
	  lt_globsym_save_CFLAGS=$CFLAGS
	  LIBS="conftstm.$ac_objext"
	  CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
	  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
  (eval $ac_link) 2>&5
  ac_status=$?
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
  test $ac_status = 0; } && test -s conftest${ac_exeext}; then
	    pipe_works=yes
	  fi
	  LIBS=$lt_globsym_save_LIBS
	  CFLAGS=$lt_globsym_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 -rf 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

if test -z "$lt_cv_sys_global_symbol_pipe"; then
  lt_cv_sys_global_symbol_to_cdecl=
fi
if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
$as_echo "failed" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
fi

# Response file support.
if test "$lt_cv_nm_interface" = "MS dumpbin"; then
  nm_file_list_spec='@'
elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then
  nm_file_list_spec='@'
fi



























{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
$as_echo_n "checking for sysroot... " >&6; }

# Check whether --with-sysroot was given.
if test "${with_sysroot+set}" = set; then :
  withval=$with_sysroot;
else
  with_sysroot=no
fi


lt_sysroot=
case ${with_sysroot} in #(
 yes)
   if test "$GCC" = yes; then
     lt_sysroot=`$CC --print-sysroot 2>/dev/null`
   fi
   ;; #(
 /*)
   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
   ;; #(
 no|'')
   ;; #(
 *)
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5
$as_echo "${with_sysroot}" >&6; }
   as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5
   ;;
esac

 { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5
$as_echo "${lt_sysroot:-no}" >&6; }





# Check whether --enable-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
ia64-*-hpux*)
  # Find out which ABI we are using.
  echo 'int i;' > conftest.$ac_ext
  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
  (eval $ac_compile) 2>&5
  ac_status=$?
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
  test $ac_status = 0; }; then
    case `/usr/bin/file conftest.$ac_objext` in
      *ELF-32*)
	HPUX_IA64_MODE="32"
	;;
      *ELF-64*)
	HPUX_IA64_MODE="64"
	;;
    esac
  fi
  rm -rf conftest*
  ;;
*-*-irix6*)
  # Find out which ABI we are using.
  echo '#line '$LINENO' "configure"' > conftest.$ac_ext
  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
  (eval $ac_compile) 2>&5
  ac_status=$?
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
  test $ac_status = 0; }; then
    if test "$lt_cv_prog_gnu_ld" = yes; then
      case `/usr/bin/file conftest.$ac_objext` in
	*32-bit*)
	  LD="${LD-ld} -melf32bsmip"
	  ;;
	*N32*)
	  LD="${LD-ld} -melf32bmipn32"
	  ;;
	*64-bit*)
	  LD="${LD-ld} -melf64bmip"
	;;
      esac
    else
      case `/usr/bin/file conftest.$ac_objext` in
	*32-bit*)
	  LD="${LD-ld} -32"
	  ;;
	*N32*)
	  LD="${LD-ld} -n32"
	  ;;
	*64-bit*)
	  LD="${LD-ld} -64"
	  ;;
      esac
    fi
  fi
  rm -rf conftest*
  ;;

x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
  # Find out which ABI we are using.
  echo 'int i;' > conftest.$ac_ext
  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
  (eval $ac_compile) 2>&5
  ac_status=$?
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
  test $ac_status = 0; }; then
    case `/usr/bin/file conftest.o` in
      *32-bit*)
	case $host in
	  x86_64-*kfreebsd*-gnu)
	    LD="${LD-ld} -m elf_i386_fbsd"
	    ;;
	  x86_64-*linux*)
	    LD="${LD-ld} -m elf_i386"
	    ;;
	  ppc64-*linux*|powerpc64-*linux*)
	    LD="${LD-ld} -m elf32ppclinux"
	    ;;
	  s390x-*linux*)
	    LD="${LD-ld} -m elf_s390"
	    ;;
	  sparc64-*linux*)
	    LD="${LD-ld} -m elf32_sparc"
	    ;;
	esac
	;;
      *64-bit*)
	case $host in
	  x86_64-*kfreebsd*-gnu)
	    LD="${LD-ld} -m elf_x86_64_fbsd"
	    ;;
	  x86_64-*linux*)
	    LD="${LD-ld} -m elf_x86_64"
	    ;;
	  ppc*-*linux*|powerpc*-*linux*)
	    LD="${LD-ld} -m elf64ppc"
	    ;;
	  s390*-*linux*|s390*-*tpf*)
	    LD="${LD-ld} -m elf64_s390"
	    ;;
	  sparc*-*linux*)
	    LD="${LD-ld} -m elf64_sparc"
	    ;;
	esac
	;;
    esac
  fi
  rm -rf conftest*
  ;;

*-*-sco3.2v5*)
  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
  SAVE_CFLAGS="$CFLAGS"
  CFLAGS="$CFLAGS -belf"
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
$as_echo_n "checking whether the C compiler needs -belf... " >&6; }
if ${lt_cv_cc_needs_belf+:} false; then :
  $as_echo_n "(cached) " >&6
else
  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

     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  lt_cv_cc_needs_belf=yes
else
  lt_cv_cc_needs_belf=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext 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

fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
$as_echo "$lt_cv_cc_needs_belf" >&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
  ;;
*-*solaris*)
  # Find out which ABI we are using.
  echo 'int i;' > conftest.$ac_ext
  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
  (eval $ac_compile) 2>&5
  ac_status=$?
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
  test $ac_status = 0; }; then
    case `/usr/bin/file conftest.o` in
    *64-bit*)
      case $lt_cv_prog_gnu_ld in
      yes*)
        case $host in
        i?86-*-solaris*)
          LD="${LD-ld} -m elf_x86_64"
          ;;
        sparc*-*-solaris*)
          LD="${LD-ld} -m elf64_sparc"
          ;;
        esac
        # GNU ld 2.21 introduced _sol2 emulations.  Use them if available.
        if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
          LD="${LD-ld}_sol2"
        fi
        ;;
      *)
	if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
	  LD="${LD-ld} -64"
	fi
	;;
      esac
      ;;
    esac
  fi
  rm -rf conftest*
  ;;
esac

need_locks="$enable_libtool_lock"

if test -n "$ac_tool_prefix"; then
  # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args.
set dummy ${ac_tool_prefix}mt; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_MANIFEST_TOOL+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$MANIFEST_TOOL"; then
  ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
    ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt"
    $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

fi
fi
MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL
if test -n "$MANIFEST_TOOL"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5
$as_echo "$MANIFEST_TOOL" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


fi
if test -z "$ac_cv_prog_MANIFEST_TOOL"; then
  ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL
  # Extract the first word of "mt", so it can be a program name with args.
set dummy mt; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$ac_ct_MANIFEST_TOOL"; then
  ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
    ac_cv_prog_ac_ct_MANIFEST_TOOL="mt"
    $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

fi
fi
ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL
if test -n "$ac_ct_MANIFEST_TOOL"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5
$as_echo "$ac_ct_MANIFEST_TOOL" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi

  if test "x$ac_ct_MANIFEST_TOOL" = x; then
    MANIFEST_TOOL=":"
  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
    MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL
  fi
else
  MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL"
fi

test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5
$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }
if ${lt_cv_path_mainfest_tool+:} false; then :
  $as_echo_n "(cached) " >&6
else
  lt_cv_path_mainfest_tool=no
  echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5
  $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
  cat conftest.err >&5
  if $GREP 'Manifest Tool' conftest.out > /dev/null; then
    lt_cv_path_mainfest_tool=yes
  fi
  rm -f conftest*
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
$as_echo "$lt_cv_path_mainfest_tool" >&6; }
if test "x$lt_cv_path_mainfest_tool" != xyes; then
  MANIFEST_TOOL=:
fi






  case $host_os in
    rhapsody* | darwin*)
    if test -n "$ac_tool_prefix"; then
  # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_DSYMUTIL+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$DSYMUTIL"; then
  ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
    ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
    $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

fi
fi
DSYMUTIL=$ac_cv_prog_DSYMUTIL
if test -n "$DSYMUTIL"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
$as_echo "$DSYMUTIL" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


fi
if test -z "$ac_cv_prog_DSYMUTIL"; then
  ac_ct_DSYMUTIL=$DSYMUTIL
  # Extract the first word of "dsymutil", so it can be a program name with args.
set dummy dsymutil; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$ac_ct_DSYMUTIL"; then
  ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
    ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
    $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

fi
fi
ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
if test -n "$ac_ct_DSYMUTIL"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5
$as_echo "$ac_ct_DSYMUTIL" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi

  if test "x$ac_ct_DSYMUTIL" = x; then
    DSYMUTIL=":"
  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
    DSYMUTIL=$ac_ct_DSYMUTIL
  fi
else
  DSYMUTIL="$ac_cv_prog_DSYMUTIL"
fi

    if test -n "$ac_tool_prefix"; then
  # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
set dummy ${ac_tool_prefix}nmedit; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_NMEDIT+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$NMEDIT"; then
  ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
    ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
    $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

fi
fi
NMEDIT=$ac_cv_prog_NMEDIT
if test -n "$NMEDIT"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5
$as_echo "$NMEDIT" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


fi
if test -z "$ac_cv_prog_NMEDIT"; then
  ac_ct_NMEDIT=$NMEDIT
  # Extract the first word of "nmedit", so it can be a program name with args.
set dummy nmedit; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$ac_ct_NMEDIT"; then
  ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
    ac_cv_prog_ac_ct_NMEDIT="nmedit"
    $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

fi
fi
ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
if test -n "$ac_ct_NMEDIT"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5
$as_echo "$ac_ct_NMEDIT" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi

  if test "x$ac_ct_NMEDIT" = x; then
    NMEDIT=":"
  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
    NMEDIT=$ac_ct_NMEDIT
  fi
else
  NMEDIT="$ac_cv_prog_NMEDIT"
fi

    if test -n "$ac_tool_prefix"; then
  # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args.
set dummy ${ac_tool_prefix}lipo; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_LIPO+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$LIPO"; then
  ac_cv_prog_LIPO="$LIPO" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
    ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
    $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

fi
fi
LIPO=$ac_cv_prog_LIPO
if test -n "$LIPO"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5
$as_echo "$LIPO" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


fi
if test -z "$ac_cv_prog_LIPO"; then
  ac_ct_LIPO=$LIPO
  # Extract the first word of "lipo", so it can be a program name with args.
set dummy lipo; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_ac_ct_LIPO+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$ac_ct_LIPO"; then
  ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
    ac_cv_prog_ac_ct_LIPO="lipo"
    $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

fi
fi
ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO
if test -n "$ac_ct_LIPO"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5
$as_echo "$ac_ct_LIPO" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi

  if test "x$ac_ct_LIPO" = x; then
    LIPO=":"
  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
    LIPO=$ac_ct_LIPO
  fi
else
  LIPO="$ac_cv_prog_LIPO"
fi

    if test -n "$ac_tool_prefix"; then
  # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args.
set dummy ${ac_tool_prefix}otool; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_OTOOL+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$OTOOL"; then
  ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
    ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
    $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

fi
fi
OTOOL=$ac_cv_prog_OTOOL
if test -n "$OTOOL"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
$as_echo "$OTOOL" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


fi
if test -z "$ac_cv_prog_OTOOL"; then
  ac_ct_OTOOL=$OTOOL
  # Extract the first word of "otool", so it can be a program name with args.
set dummy otool; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_ac_ct_OTOOL+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$ac_ct_OTOOL"; then
  ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
    ac_cv_prog_ac_ct_OTOOL="otool"
    $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

fi
fi
ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL
if test -n "$ac_ct_OTOOL"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5
$as_echo "$ac_ct_OTOOL" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi

  if test "x$ac_ct_OTOOL" = x; then
    OTOOL=":"
  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
    OTOOL=$ac_ct_OTOOL
  fi
else
  OTOOL="$ac_cv_prog_OTOOL"
fi

    if test -n "$ac_tool_prefix"; then
  # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args.
set dummy ${ac_tool_prefix}otool64; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_OTOOL64+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$OTOOL64"; then
  ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
    ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
    $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

fi
fi
OTOOL64=$ac_cv_prog_OTOOL64
if test -n "$OTOOL64"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5
$as_echo "$OTOOL64" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


fi
if test -z "$ac_cv_prog_OTOOL64"; then
  ac_ct_OTOOL64=$OTOOL64
  # Extract the first word of "otool64", so it can be a program name with args.
set dummy otool64; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$ac_ct_OTOOL64"; then
  ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
    ac_cv_prog_ac_ct_OTOOL64="otool64"
    $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

fi
fi
ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64
if test -n "$ac_ct_OTOOL64"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5
$as_echo "$ac_ct_OTOOL64" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi

  if test "x$ac_ct_OTOOL64" = x; then
    OTOOL64=":"
  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
    OTOOL64=$ac_ct_OTOOL64
  fi
else
  OTOOL64="$ac_cv_prog_OTOOL64"
fi



























    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
$as_echo_n "checking for -single_module linker flag... " >&6; }
if ${lt_cv_apple_cc_single_mod+:} false; then :
  $as_echo_n "(cached) " >&6
else
  lt_cv_apple_cc_single_mod=no
      if test -z "${LT_MULTI_MODULE}"; then
	# By default we will add the -single_module flag. You can override
	# by either setting the environment variable LT_MULTI_MODULE
	# non-empty at configure time, or by adding -multi_module to the
	# link flags.
	rm -rf libconftest.dylib*
	echo "int foo(void){return 1;}" > conftest.c
	echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
-dynamiclib -Wl,-single_module conftest.c" >&5
	$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
	  -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
        _lt_result=$?
	# If there is a non-empty error log, and "single_module"
	# appears in it, assume the flag caused a linker warning
        if test -s conftest.err && $GREP single_module conftest.err; then
	  cat conftest.err >&5
	# Otherwise, if the output was created with a 0 exit code from
	# the compiler, it worked.
	elif test -f libconftest.dylib && test $_lt_result -eq 0; then
	  lt_cv_apple_cc_single_mod=yes
	else
	  cat conftest.err >&5
	fi
	rm -rf libconftest.dylib*
	rm -f conftest.*
      fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
$as_echo "$lt_cv_apple_cc_single_mod" >&6; }

    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
if ${lt_cv_ld_exported_symbols_list+:} false; then :
  $as_echo_n "(cached) " >&6
else
  lt_cv_ld_exported_symbols_list=no
      save_LDFLAGS=$LDFLAGS
      echo "_main" > conftest.sym
      LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  lt_cv_ld_exported_symbols_list=yes
else
  lt_cv_ld_exported_symbols_list=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
	LDFLAGS="$save_LDFLAGS"

fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
$as_echo "$lt_cv_ld_exported_symbols_list" >&6; }

    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
$as_echo_n "checking for -force_load linker flag... " >&6; }
if ${lt_cv_ld_force_load+:} false; then :
  $as_echo_n "(cached) " >&6
else
  lt_cv_ld_force_load=no
      cat > conftest.c << _LT_EOF
int forced_loaded() { return 2;}
_LT_EOF
      echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5
      $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
      echo "$AR cru libconftest.a conftest.o" >&5
      $AR cru libconftest.a conftest.o 2>&5
      echo "$RANLIB libconftest.a" >&5
      $RANLIB libconftest.a 2>&5
      cat > conftest.c << _LT_EOF
int main() { return 0;}
_LT_EOF
      echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5
      $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
      _lt_result=$?
      if test -s conftest.err && $GREP force_load conftest.err; then
	cat conftest.err >&5
      elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then
	lt_cv_ld_force_load=yes
      else
	cat conftest.err >&5
      fi
        rm -f conftest.err libconftest.a conftest conftest.c
        rm -rf conftest.dSYM

fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5
$as_echo "$lt_cv_ld_force_load" >&6; }
    case $host_os in
    rhapsody* | darwin1.[012])
      _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
    darwin1.*)
      _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
    darwin*) # darwin 5.x on
      # if running on 10.5 or later, the deployment target defaults
      # to the OS version, if on x86, and 10.4, the deployment
      # target defaults to 10.4. Don't you love it?
      case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
	10.0,*86*-darwin8*|10.0,*-darwin[91]*)
	  _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
	10.[012]*)
	  _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
	10.*)
	  _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
      esac
    ;;
  esac
    if test "$lt_cv_apple_cc_single_mod" = "yes"; then
      _lt_dar_single_mod='$single_module'
    fi
    if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
      _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
    else
      _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
    fi
    if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
      _lt_dsymutil='~$DSYMUTIL $lib || :'
    else
      _lt_dsymutil=
    fi
    ;;
  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
{ $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
if test -z "$CPP"; then
  if ${ac_cv_prog_CPP+:} false; 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.i 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.  */
#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.i conftest.$ac_ext

done
# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
rm -f conftest.i 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:${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.  */
#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.i 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.  */
#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.i conftest.$ac_ext

done
# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
rm -f conftest.i conftest.err conftest.$ac_ext
if $ac_preproc_ok; then :

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

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 ANSI C header files" >&5
$as_echo_n "checking for ANSI C header files... " >&6; }
if ${ac_cv_header_stdc+:} false; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <stdlib.h>
#include <stdarg.h>
#include <string.h>
#include <float.h>

int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  ac_cv_header_stdc=yes
else
  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 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*

fi

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

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 confdefs.h - <<_ACEOF >conftest.$ac_ext
/* 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
if ac_fn_c_try_run "$LINENO"; then :

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

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

# 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
"
if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
  cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF

fi

done


for ac_header in dlfcn.h
do :
  ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
"
if test "x$ac_cv_header_dlfcn_h" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_DLFCN_H 1
_ACEOF

fi

done





# Set options



        enable_dlopen=no


  enable_win32_dll=no


            # Check whether --enable-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.
      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
      for pkg in $enableval; do
	IFS="$lt_save_ifs"
	if test "X$pkg" = "X$p"; then
	  enable_shared=yes
	fi
      done
      IFS="$lt_save_ifs"
      ;;
    esac
else
  enable_shared=yes
fi









  # Check whether --enable-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.
      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
      for pkg in $enableval; do
	IFS="$lt_save_ifs"
	if test "X$pkg" = "X$p"; then
	  enable_static=yes
	fi
      done
      IFS="$lt_save_ifs"
      ;;
    esac
else
  enable_static=yes
fi










# Check whether --with-pic was given.
if test "${with_pic+set}" = set; then :
  withval=$with_pic; lt_p=${PACKAGE-default}
    case $withval in
    yes|no) pic_mode=$withval ;;
    *)
      pic_mode=default
      # Look at the argument we got.  We use all the common list separators.
      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
      for lt_pkg in $withval; do
	IFS="$lt_save_ifs"
	if test "X$lt_pkg" = "X$lt_p"; then
	  pic_mode=yes
	fi
      done
      IFS="$lt_save_ifs"
      ;;
    esac
else
  pic_mode=default
fi


test -z "$pic_mode" && pic_mode=default







  # Check whether --enable-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.
      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
      for pkg in $enableval; do
	IFS="$lt_save_ifs"
	if test "X$pkg" = "X$p"; then
	  enable_fast_install=yes
	fi
      done
      IFS="$lt_save_ifs"
      ;;
    esac
else
  enable_fast_install=yes
fi











# This can be used to rebuild libtool when needed
LIBTOOL_DEPS="$ltmain"

# Always use our own libtool.
LIBTOOL='$(SHELL) $(top_builddir)/libtool'






























test -z "$LN_S" && LN_S="ln -s"














if test -n "${ZSH_VERSION+set}" ; then
   setopt NO_GLOB_SUBST
fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
$as_echo_n "checking for objdir... " >&6; }
if ${lt_cv_objdir+:} false; then :
  $as_echo_n "(cached) " >&6
else
  rm -f .libs 2>/dev/null
mkdir .libs 2>/dev/null
if test -d .libs; then
  lt_cv_objdir=.libs
else
  # MS-DOS does not allow filenames that begin with a dot.
  lt_cv_objdir=_libs
fi
rmdir .libs 2>/dev/null
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
$as_echo "$lt_cv_objdir" >&6; }
objdir=$lt_cv_objdir





cat >>confdefs.h <<_ACEOF
#define LT_OBJDIR "$lt_cv_objdir/"
_ACEOF




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

# Global variables:
ofile=libtool
can_build_shared=yes

# All known linkers require a `.a' archive for static linking (except MSVC,
# which needs '.lib').
libext=a

with_gnu_ld="$lt_cv_prog_gnu_ld"

old_CC="$CC"
old_CFLAGS="$CFLAGS"

# Set sane defaults for various variables
test -z "$CC" && CC=cc
test -z "$LTCC" && LTCC=$CC
test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
test -z "$LD" && LD=ld
test -z "$ac_objext" && ac_objext=o

for cc_temp in $compiler""; do
  case $cc_temp in
    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
    \-*) ;;
    *) break;;
  esac
done
cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`


# Only perform the check for file, if the check method requires it
test -z "$MAGIC_CMD" && MAGIC_CMD=file
case $deplibs_check_method in
file_magic*)
  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; }
if ${lt_cv_path_MAGIC_CMD+:} false; then :
  $as_echo_n "(cached) " >&6
else
  case $MAGIC_CMD in
[\\/*] |  ?:[\\/]*)
  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
  ;;
*)
  lt_save_MAGIC_CMD="$MAGIC_CMD"
  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
  ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
  for ac_dir in $ac_dummy; do
    IFS="$lt_save_ifs"
    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 <<_LT_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

_LT_EOF
	  fi ;;
	esac
      fi
      break
    fi
  done
  IFS="$lt_save_ifs"
  MAGIC_CMD="$lt_save_MAGIC_CMD"
  ;;
esac
fi

MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
if test -n "$MAGIC_CMD"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
$as_echo "$MAGIC_CMD" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi





if test -z "$lt_cv_path_MAGIC_CMD"; then
  if test -n "$ac_tool_prefix"; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5
$as_echo_n "checking for file... " >&6; }
if ${lt_cv_path_MAGIC_CMD+:} false; then :
  $as_echo_n "(cached) " >&6
else
  case $MAGIC_CMD in
[\\/*] |  ?:[\\/]*)
  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
  ;;
*)
  lt_save_MAGIC_CMD="$MAGIC_CMD"
  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
  ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
  for ac_dir in $ac_dummy; do
    IFS="$lt_save_ifs"
    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 <<_LT_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

_LT_EOF
	  fi ;;
	esac
      fi
      break
    fi
  done
  IFS="$lt_save_ifs"
  MAGIC_CMD="$lt_save_MAGIC_CMD"
  ;;
esac
fi

MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
if test -n "$MAGIC_CMD"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
$as_echo "$MAGIC_CMD" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


  else
    MAGIC_CMD=:
  fi
fi

  fi
  ;;
esac

# Use C for the default configuration in the libtool script

lt_save_CC="$CC"
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


# Source file extension for C test sources.
ac_ext=c

# Object file extension for compiled C test sources.
objext=o
objext=$objext

# Code to be used in simple compile tests
lt_simple_compile_test_code="int some_variable = 0;"

# Code to be used in simple link tests
lt_simple_link_test_code='int main(){return(0);}'







# If no C compiler was specified, use CC.
LTCC=${LTCC-"$CC"}

# If no C compiler flags were specified, use CFLAGS.
LTCFLAGS=${LTCFLAGS-"$CFLAGS"}

# Allow CC to be a program name with arguments.
compiler=$CC

# Save the default compiler, since it gets overwritten when the other
# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
compiler_DEFAULT=$CC

# save warnings/boilerplate of simple test code
ac_outfile=conftest.$ac_objext
echo "$lt_simple_compile_test_code" >conftest.$ac_ext
eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
_lt_compiler_boilerplate=`cat conftest.err`
$RM conftest*

ac_outfile=conftest.$ac_objext
echo "$lt_simple_link_test_code" >conftest.$ac_ext
eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
_lt_linker_boilerplate=`cat conftest.err`
$RM -r conftest*


## CAVEAT EMPTOR:
## There is no encapsulation within the following macros, do not change
## the running order or otherwise move them around unless you know exactly
## what you are doing...
if test -n "$compiler"; then

lt_prog_compiler_no_builtin_flag=

if test "$GCC" = yes; then
  case $cc_basename in
  nvcc*)
    lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;;
  *)
    lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;;
  esac

  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then :
  $as_echo_n "(cached) " >&6
else
  lt_cv_prog_compiler_rtti_exceptions=no
   ac_outfile=conftest.$ac_objext
   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
   lt_compiler_flag="-fno-rtti -fno-exceptions"
   # Insert the option either (1) after the last *FLAGS variable, or
   # (2) before a word containing "conftest.", or (3) at the end.
   # Note that $ac_compile itself does not contain backslashes and begins
   # with a dollar sign (not a hyphen), so the echo should work correctly.
   # The option is referenced via a variable to avoid confusing sed.
   lt_compile=`echo "$ac_compile" | $SED \
   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
   -e 's:$: $lt_compiler_flag:'`
   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
   (eval "$lt_compile" 2>conftest.err)
   ac_status=$?
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   if (exit $ac_status) && test -s "$ac_outfile"; then
     # The compiler can only warn and ignore the option if not recognized
     # So say no if there are warnings other than the usual output.
     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
       lt_cv_prog_compiler_rtti_exceptions=yes
     fi
   fi
   $RM conftest*

fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; }

if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
    lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
else
    :
fi

fi






  lt_prog_compiler_wl=
lt_prog_compiler_pic=
lt_prog_compiler_static=


  if test "$GCC" = yes; then
    lt_prog_compiler_wl='-Wl,'
    lt_prog_compiler_static='-static'

    case $host_os in
      aix*)
      # All AIX code is PIC.
      if test "$host_cpu" = ia64; then
	# AIX 5 now supports IA64 processor
	lt_prog_compiler_static='-Bstatic'
      fi
      ;;

    amigaos*)
      case $host_cpu in
      powerpc)
            # see comment about AmigaOS4 .so support
            lt_prog_compiler_pic='-fPIC'
        ;;
      m68k)
            # 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_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
        ;;
      esac
      ;;

    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
      # PIC is the default for these OSes.
      ;;

    mingw* | cygwin* | pw32* | os2* | cegcc*)
      # 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).
      # Although the cygwin gcc ignores -fPIC, still need this for old-style
      # (--disable-auto-import) libraries
      lt_prog_compiler_pic='-DDLL_EXPORT'
      ;;

    darwin* | rhapsody*)
      # PIC is the default on this platform
      # Common symbols not allowed in MH_DYLIB files
      lt_prog_compiler_pic='-fno-common'
      ;;

    haiku*)
      # PIC is the default for Haiku.
      # The "-static" flag exists, but is broken.
      lt_prog_compiler_static=
      ;;

    hpux*)
      # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
      # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
      # sets the default TLS model and affects inlining.
      case $host_cpu in
      hppa*64*)
	# +Z the default
	;;
      *)
	lt_prog_compiler_pic='-fPIC'
	;;
      esac
      ;;

    interix[3-9]*)
      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
      # Instead, we relocate shared libraries at runtime.
      ;;

    msdosdjgpp*)
      # Just because we use GCC doesn't mean we suddenly get shared libraries
      # on systems that don't support them.
      lt_prog_compiler_can_build_shared=no
      enable_shared=no
      ;;

    *nto* | *qnx*)
      # QNX uses GNU C++, but need to define -shared option too, otherwise
      # it will coredump.
      lt_prog_compiler_pic='-fPIC -shared'
      ;;

    sysv4*MP*)
      if test -d /usr/nec; then
	lt_prog_compiler_pic=-Kconform_pic
      fi
      ;;

    *)
      lt_prog_compiler_pic='-fPIC'
      ;;
    esac

    case $cc_basename in
    nvcc*) # Cuda Compiler Driver 2.2
      lt_prog_compiler_wl='-Xlinker '
      if test -n "$lt_prog_compiler_pic"; then
        lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic"
      fi
      ;;
    esac
  else
    # PORTME Check for flag to pass linker flags through the system compiler.
    case $host_os in
    aix*)
      lt_prog_compiler_wl='-Wl,'
      if test "$host_cpu" = ia64; then
	# AIX 5 now supports IA64 processor
	lt_prog_compiler_static='-Bstatic'
      else
	lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'
      fi
      ;;

    mingw* | cygwin* | pw32* | os2* | cegcc*)
      # 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_prog_compiler_pic='-DDLL_EXPORT'
      ;;

    hpux9* | hpux10* | hpux11*)
      lt_prog_compiler_wl='-Wl,'
      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
      # not for PA HP-UX.
      case $host_cpu in
      hppa*64*|ia64*)
	# +Z the default
	;;
      *)
	lt_prog_compiler_pic='+Z'
	;;
      esac
      # Is there a better lt_prog_compiler_static that works with the bundled CC?
      lt_prog_compiler_static='${wl}-a ${wl}archive'
      ;;

    irix5* | irix6* | nonstopux*)
      lt_prog_compiler_wl='-Wl,'
      # PIC (with -KPIC) is the default.
      lt_prog_compiler_static='-non_shared'
      ;;

    linux* | k*bsd*-gnu | kopensolaris*-gnu)
      case $cc_basename in
      # old Intel for x86_64 which still supported -KPIC.
      ecc*)
	lt_prog_compiler_wl='-Wl,'
	lt_prog_compiler_pic='-KPIC'
	lt_prog_compiler_static='-static'
        ;;
      # icc used to be incompatible with GCC.
      # ICC 10 doesn't accept -KPIC any more.
      icc* | ifort*)
	lt_prog_compiler_wl='-Wl,'
	lt_prog_compiler_pic='-fPIC'
	lt_prog_compiler_static='-static'
        ;;
      # Lahey Fortran 8.1.
      lf95*)
	lt_prog_compiler_wl='-Wl,'
	lt_prog_compiler_pic='--shared'
	lt_prog_compiler_static='--static'
	;;
      nagfor*)
	# NAG Fortran compiler
	lt_prog_compiler_wl='-Wl,-Wl,,'
	lt_prog_compiler_pic='-PIC'
	lt_prog_compiler_static='-Bstatic'
	;;
      pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
        # Portland Group compilers (*not* the Pentium gcc compiler,
	# which looks to be a dead project)
	lt_prog_compiler_wl='-Wl,'
	lt_prog_compiler_pic='-fpic'
	lt_prog_compiler_static='-Bstatic'
        ;;
      ccc*)
        lt_prog_compiler_wl='-Wl,'
        # All Alpha code is PIC.
        lt_prog_compiler_static='-non_shared'
        ;;
      xl* | bgxl* | bgf* | mpixl*)
	# IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
	lt_prog_compiler_wl='-Wl,'
	lt_prog_compiler_pic='-qpic'
	lt_prog_compiler_static='-qstaticlink'
	;;
      *)
	case `$CC -V 2>&1 | sed 5q` in
	*Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*)
	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
	  lt_prog_compiler_pic='-KPIC'
	  lt_prog_compiler_static='-Bstatic'
	  lt_prog_compiler_wl=''
	  ;;
	*Sun\ F* | *Sun*Fortran*)
	  lt_prog_compiler_pic='-KPIC'
	  lt_prog_compiler_static='-Bstatic'
	  lt_prog_compiler_wl='-Qoption ld '
	  ;;
	*Sun\ C*)
	  # Sun C 5.9
	  lt_prog_compiler_pic='-KPIC'
	  lt_prog_compiler_static='-Bstatic'
	  lt_prog_compiler_wl='-Wl,'
	  ;;
        *Intel*\ [CF]*Compiler*)
	  lt_prog_compiler_wl='-Wl,'
	  lt_prog_compiler_pic='-fPIC'
	  lt_prog_compiler_static='-static'
	  ;;
	*Portland\ Group*)
	  lt_prog_compiler_wl='-Wl,'
	  lt_prog_compiler_pic='-fpic'
	  lt_prog_compiler_static='-Bstatic'
	  ;;
	esac
	;;
      esac
      ;;

    newsos6)
      lt_prog_compiler_pic='-KPIC'
      lt_prog_compiler_static='-Bstatic'
      ;;

    *nto* | *qnx*)
      # QNX uses GNU C++, but need to define -shared option too, otherwise
      # it will coredump.
      lt_prog_compiler_pic='-fPIC -shared'
      ;;

    osf3* | osf4* | osf5*)
      lt_prog_compiler_wl='-Wl,'
      # All OSF/1 code is PIC.
      lt_prog_compiler_static='-non_shared'
      ;;

    rdos*)
      lt_prog_compiler_static='-non_shared'
      ;;

    solaris*)
      lt_prog_compiler_pic='-KPIC'
      lt_prog_compiler_static='-Bstatic'
      case $cc_basename in
      f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
	lt_prog_compiler_wl='-Qoption ld ';;
      *)
	lt_prog_compiler_wl='-Wl,';;
      esac
      ;;

    sunos4*)
      lt_prog_compiler_wl='-Qoption ld '
      lt_prog_compiler_pic='-PIC'
      lt_prog_compiler_static='-Bstatic'
      ;;

    sysv4 | sysv4.2uw2* | sysv4.3*)
      lt_prog_compiler_wl='-Wl,'
      lt_prog_compiler_pic='-KPIC'
      lt_prog_compiler_static='-Bstatic'
      ;;

    sysv4*MP*)
      if test -d /usr/nec ;then
	lt_prog_compiler_pic='-Kconform_pic'
	lt_prog_compiler_static='-Bstatic'
      fi
      ;;

    sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
      lt_prog_compiler_wl='-Wl,'
      lt_prog_compiler_pic='-KPIC'
      lt_prog_compiler_static='-Bstatic'
      ;;

    unicos*)
      lt_prog_compiler_wl='-Wl,'
      lt_prog_compiler_can_build_shared=no
      ;;

    uts4*)
      lt_prog_compiler_pic='-pic'
      lt_prog_compiler_static='-Bstatic'
      ;;

    *)
      lt_prog_compiler_can_build_shared=no
      ;;
    esac
  fi

case $host_os in
  # For platforms which do not support PIC, -DPIC is meaningless:
  *djgpp*)
    lt_prog_compiler_pic=
    ;;
  *)
    lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
    ;;
esac

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
if ${lt_cv_prog_compiler_pic+:} false; then :
  $as_echo_n "(cached) " >&6
else
  lt_cv_prog_compiler_pic=$lt_prog_compiler_pic
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5
$as_echo "$lt_cv_prog_compiler_pic" >&6; }
lt_prog_compiler_pic=$lt_cv_prog_compiler_pic

#
# Check to make sure the PIC flag actually works.
#
if test -n "$lt_prog_compiler_pic"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
if ${lt_cv_prog_compiler_pic_works+:} false; then :
  $as_echo_n "(cached) " >&6
else
  lt_cv_prog_compiler_pic_works=no
   ac_outfile=conftest.$ac_objext
   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
   lt_compiler_flag="$lt_prog_compiler_pic -DPIC"
   # Insert the option either (1) after the last *FLAGS variable, or
   # (2) before a word containing "conftest.", or (3) at the end.
   # Note that $ac_compile itself does not contain backslashes and begins
   # with a dollar sign (not a hyphen), so the echo should work correctly.
   # The option is referenced via a variable to avoid confusing sed.
   lt_compile=`echo "$ac_compile" | $SED \
   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
   -e 's:$: $lt_compiler_flag:'`
   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
   (eval "$lt_compile" 2>conftest.err)
   ac_status=$?
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   if (exit $ac_status) && test -s "$ac_outfile"; then
     # The compiler can only warn and ignore the option if not recognized
     # So say no if there are warnings other than the usual output.
     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
       lt_cv_prog_compiler_pic_works=yes
     fi
   fi
   $RM conftest*

fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
$as_echo "$lt_cv_prog_compiler_pic_works" >&6; }

if test x"$lt_cv_prog_compiler_pic_works" = xyes; then
    case $lt_prog_compiler_pic in
     "" | " "*) ;;
     *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
     esac
else
    lt_prog_compiler_pic=
     lt_prog_compiler_can_build_shared=no
fi

fi











#
# Check to make sure the static flag actually works.
#
wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
if ${lt_cv_prog_compiler_static_works+:} false; then :
  $as_echo_n "(cached) " >&6
else
  lt_cv_prog_compiler_static_works=no
   save_LDFLAGS="$LDFLAGS"
   LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
   echo "$lt_simple_link_test_code" > conftest.$ac_ext
   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
     # The linker can only warn and ignore the option if not recognized
     # So say no if there are warnings
     if test -s conftest.err; then
       # Append any errors to the config.log.
       cat conftest.err 1>&5
       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
       if diff conftest.exp conftest.er2 >/dev/null; then
         lt_cv_prog_compiler_static_works=yes
       fi
     else
       lt_cv_prog_compiler_static_works=yes
     fi
   fi
   $RM -r conftest*
   LDFLAGS="$save_LDFLAGS"

fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
$as_echo "$lt_cv_prog_compiler_static_works" >&6; }

if test x"$lt_cv_prog_compiler_static_works" = xyes; then
    :
else
    lt_prog_compiler_static=
fi







  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
if ${lt_cv_prog_compiler_c_o+:} false; then :
  $as_echo_n "(cached) " >&6
else
  lt_cv_prog_compiler_c_o=no
   $RM -r conftest 2>/dev/null
   mkdir conftest
   cd conftest
   mkdir out
   echo "$lt_simple_compile_test_code" > conftest.$ac_ext

   lt_compiler_flag="-o out/conftest2.$ac_objext"
   # Insert the option either (1) after the last *FLAGS variable, or
   # (2) before a word containing "conftest.", or (3) at the end.
   # Note that $ac_compile itself does not contain backslashes and begins
   # with a dollar sign (not a hyphen), so the echo should work correctly.
   lt_compile=`echo "$ac_compile" | $SED \
   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
   -e 's:$: $lt_compiler_flag:'`
   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
   (eval "$lt_compile" 2>out/conftest.err)
   ac_status=$?
   cat out/conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   if (exit $ac_status) && test -s out/conftest2.$ac_objext
   then
     # The compiler can only warn and ignore the option if not recognized
     # So say no if there are warnings
     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
       lt_cv_prog_compiler_c_o=yes
     fi
   fi
   chmod u+w . 2>&5
   $RM conftest*
   # SGI C++ compiler will create directory out/ii_files/ for
   # template instantiation
   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
   $RM out/* && rmdir out
   cd ..
   $RM -r conftest
   $RM conftest*

fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
$as_echo "$lt_cv_prog_compiler_c_o" >&6; }






  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
if ${lt_cv_prog_compiler_c_o+:} false; then :
  $as_echo_n "(cached) " >&6
else
  lt_cv_prog_compiler_c_o=no
   $RM -r conftest 2>/dev/null
   mkdir conftest
   cd conftest
   mkdir out
   echo "$lt_simple_compile_test_code" > conftest.$ac_ext

   lt_compiler_flag="-o out/conftest2.$ac_objext"
   # Insert the option either (1) after the last *FLAGS variable, or
   # (2) before a word containing "conftest.", or (3) at the end.
   # Note that $ac_compile itself does not contain backslashes and begins
   # with a dollar sign (not a hyphen), so the echo should work correctly.
   lt_compile=`echo "$ac_compile" | $SED \
   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
   -e 's:$: $lt_compiler_flag:'`
   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
   (eval "$lt_compile" 2>out/conftest.err)
   ac_status=$?
   cat out/conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   if (exit $ac_status) && test -s out/conftest2.$ac_objext
   then
     # The compiler can only warn and ignore the option if not recognized
     # So say no if there are warnings
     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
       lt_cv_prog_compiler_c_o=yes
     fi
   fi
   chmod u+w . 2>&5
   $RM conftest*
   # SGI C++ compiler will create directory out/ii_files/ for
   # template instantiation
   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
   $RM out/* && rmdir out
   cd ..
   $RM -r conftest
   $RM conftest*

fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
$as_echo "$lt_cv_prog_compiler_c_o" >&6; }




hard_links="nottested"
if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then
  # do not overwrite the value of need_locks provided by the user
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
$as_echo_n "checking if we can lock with hard links... " >&6; }
  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
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
$as_echo "$hard_links" >&6; }
  if test "$hard_links" = no; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
    need_locks=warn
  fi
else
  need_locks=no
fi






  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }

  runpath_var=
  allow_undefined_flag=
  always_export_symbols=no
  archive_cmds=
  archive_expsym_cmds=
  compiler_needs_object=no
  enable_shared_with_static_runtimes=no
  export_dynamic_flag_spec=
  export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
  hardcode_automatic=no
  hardcode_direct=no
  hardcode_direct_absolute=no
  hardcode_libdir_flag_spec=
  hardcode_libdir_separator=
  hardcode_minus_L=no
  hardcode_shlibpath_var=unsupported
  inherit_rpath=no
  link_all_deplibs=unknown
  module_cmds=
  module_expsym_cmds=
  old_archive_from_new_cmds=
  old_archive_from_expsyms_cmds=
  thread_safe_flag_spec=
  whole_archive_flag_spec=
  # 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 extended regexp 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_|_GLOBAL__F[ID]_.*'
  # 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.
  # Exclude shared library initialization/finalization symbols.
  extract_expsyms_cmds=

  case $host_os in
  cygwin* | mingw* | pw32* | cegcc*)
    # 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
    ;;
  interix*)
    # we just hope/assume this is gcc and not c89 (= MSVC++)
    with_gnu_ld=yes
    ;;
  openbsd*)
    with_gnu_ld=no
    ;;
  esac

  ld_shlibs=yes

  # On some targets, GNU ld is compatible enough with the native linker
  # that we're better off using the native interface for both.
  lt_use_gnu_ld_interface=no
  if test "$with_gnu_ld" = yes; then
    case $host_os in
      aix*)
	# The AIX port of GNU ld has always aspired to compatibility
	# with the native linker.  However, as the warning in the GNU ld
	# block says, versions before 2.19.5* couldn't really create working
	# shared libraries, regardless of the interface used.
	case `$LD -v 2>&1` in
	  *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
	  *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;;
	  *\ \(GNU\ Binutils\)\ [3-9]*) ;;
	  *)
	    lt_use_gnu_ld_interface=yes
	    ;;
	esac
	;;
      *)
	lt_use_gnu_ld_interface=yes
	;;
    esac
  fi

  if test "$lt_use_gnu_ld_interface" = yes; then
    # If archive_cmds runs LD, not CC, wlarc should be empty
    wlarc='${wl}'

    # Set some defaults for GNU ld with shared library support. These
    # are reset later if shared libraries are not supported. Putting them
    # here allows them to be overridden if necessary.
    runpath_var=LD_RUN_PATH
    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
    export_dynamic_flag_spec='${wl}--export-dynamic'
    # ancient GNU ld didn't support --whole-archive et. al.
    if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
      whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
    else
      whole_archive_flag_spec=
    fi
    supports_anon_versioning=no
    case `$LD -v 2>&1` in
      *GNU\ gold*) supports_anon_versioning=yes ;;
      *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
      *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
      *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
      *\ 2.11.*) ;; # other 2.11 versions
      *) supports_anon_versioning=yes ;;
    esac

    # See if GNU ld supports shared libraries.
    case $host_os in
    aix[3-9]*)
      # On AIX/PPC, the GNU linker is very broken
      if test "$host_cpu" != ia64; then
	ld_shlibs=no
	cat <<_LT_EOF 1>&2

*** Warning: the GNU linker, at least up to release 2.19, 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 install binutils
*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
*** You will then need to restart the configuration process.

_LT_EOF
      fi
      ;;

    amigaos*)
      case $host_cpu in
      powerpc)
            # see comment about AmigaOS4 .so support
            archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
            archive_expsym_cmds=''
        ;;
      m68k)
            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
        ;;
      esac
      ;;

    beos*)
      if $LD --help 2>&1 | $GREP ': 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* | cegcc*)
      # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
      # as there is no search path for DLLs.
      hardcode_libdir_flag_spec='-L$libdir'
      export_dynamic_flag_spec='${wl}--export-all-symbols'
      allow_undefined_flag=unsupported
      always_export_symbols=no
      enable_shared_with_static_runtimes=yes
      export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
      exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'

      if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
        archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
	# If the export-symbols file already is a .def file (1st line
	# is EXPORTS), use it as is; otherwise, prepend...
	archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
	  cp $export_symbols $output_objdir/$soname.def;
	else
	  echo EXPORTS > $output_objdir/$soname.def;
	  cat $export_symbols >> $output_objdir/$soname.def;
	fi~
	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
      else
	ld_shlibs=no
      fi
      ;;

    haiku*)
      archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
      link_all_deplibs=yes
      ;;

    interix[3-9]*)
      hardcode_direct=no
      hardcode_shlibpath_var=no
      hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
      export_dynamic_flag_spec='${wl}-E'
      # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
      # Instead, shared libraries are loaded at an image base (0x10000000 by
      # default) and relocated if they conflict, which is a slow very memory
      # consuming and fragmenting process.  To avoid this, we pick a random,
      # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
      # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
      archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
      archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
      ;;

    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
      tmp_diet=no
      if test "$host_os" = linux-dietlibc; then
	case $cc_basename in
	  diet\ *) tmp_diet=yes;;	# linux-dietlibc with static linking (!diet-dyn)
	esac
      fi
      if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
	 && test "$tmp_diet" = no
      then
	tmp_addflag=' $pic_flag'
	tmp_sharedflag='-shared'
	case $cc_basename,$host_cpu in
        pgcc*)				# Portland Group C compiler
	  whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
	  tmp_addflag=' $pic_flag'
	  ;;
	pgf77* | pgf90* | pgf95* | pgfortran*)
					# Portland Group f77 and f90 compilers
	  whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
	  tmp_addflag=' $pic_flag -Mnomain' ;;
	ecc*,ia64* | icc*,ia64*)	# Intel C compiler on ia64
	  tmp_addflag=' -i_dynamic' ;;
	efc*,ia64* | ifort*,ia64*)	# Intel Fortran compiler on ia64
	  tmp_addflag=' -i_dynamic -nofor_main' ;;
	ifc* | ifort*)			# Intel Fortran compiler
	  tmp_addflag=' -nofor_main' ;;
	lf95*)				# Lahey Fortran 8.1
	  whole_archive_flag_spec=
	  tmp_sharedflag='--shared' ;;
	xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
	  tmp_sharedflag='-qmkshrobj'
	  tmp_addflag= ;;
	nvcc*)	# Cuda Compiler Driver 2.2
	  whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
	  compiler_needs_object=yes
	  ;;
	esac
	case `$CC -V 2>&1 | sed 5q` in
	*Sun\ C*)			# Sun C 5.9
	  whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
	  compiler_needs_object=yes
	  tmp_sharedflag='-G' ;;
	*Sun\ F*)			# Sun Fortran 8.3
	  tmp_sharedflag='-G' ;;
	esac
	archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'

        if test "x$supports_anon_versioning" = xyes; then
          archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
	    cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
	    echo "local: *; };" >> $output_objdir/$libname.ver~
	    $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
        fi

	case $cc_basename in
	xlf* | bgf* | bgxlf* | mpixlf*)
	  # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
	  whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
	  hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
	  archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
	  if test "x$supports_anon_versioning" = xyes; then
	    archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
	      cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
	      echo "local: *; };" >> $output_objdir/$libname.ver~
	      $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
	  fi
	  ;;
	esac
      else
        ld_shlibs=no
      fi
      ;;

    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 $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
	archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
      fi
      ;;

    solaris*)
      if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
	ld_shlibs=no
	cat <<_LT_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.

_LT_EOF
      elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
	archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
	archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
      else
	ld_shlibs=no
      fi
      ;;

    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
      case `$LD -v 2>&1` in
        *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
	ld_shlibs=no
	cat <<_LT_EOF 1>&2

*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
*** reliably create shared libraries on SCO systems.  Therefore, libtool
*** is disabling shared libraries support.  We urge you to upgrade GNU
*** binutils to release 2.16.91.0.3 or newer.  Another option is to modify
*** your PATH or compiler configuration so that the native linker is
*** used, and then restart.

_LT_EOF
	;;
	*)
	  # For security reasons, it is highly recommended that you always
	  # use absolute paths for naming shared libraries, and exclude the
	  # DT_RUNPATH tag from executables and libraries.  But doing so
	  # requires that you compile everything twice, which is a pain.
	  if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
	    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
	    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
      ;;

    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 | $GREP ': supported targets:.* elf' > /dev/null; then
	archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
	archive_expsym_cmds='$CC -shared $pic_flag $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" = no; then
      runpath_var=
      hardcode_libdir_flag_spec=
      export_dynamic_flag_spec=
      whole_archive_flag_spec=
    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 "$lt_prog_compiler_static"; then
	# Neither direct hardcoding nor static linking is supported with a
	# broken collect2.
	hardcode_direct=unsupported
      fi
      ;;

    aix[4-9]*)
      if test "$host_cpu" = ia64; then
	# On IA64, the linker does run time linking by default, so we don't
	# have to do anything special.
	aix_use_runtimelinking=no
	exp_sym_flag='-Bexport'
	no_entry_flag=""
      else
	# If we're using GNU nm, then we don't want the "-C" option.
	# -C means demangle to AIX nm, but means don't demangle with GNU nm
	# Also, AIX nm treats weak defined symbols like other global
	# defined symbols, whereas GNU nm marks them as "W".
	if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
	  export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
	else
	  export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
	fi
	aix_use_runtimelinking=no

	# Test if we are trying to use run time linking or normal
	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
	# need to do runtime linking.
	case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
	  for ld_flag in $LDFLAGS; do
	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
	    aix_use_runtimelinking=yes
	    break
	  fi
	  done
	  ;;
	esac

	exp_sym_flag='-bexport'
	no_entry_flag='-bnoentry'
      fi

      # When large executables or shared objects are built, AIX ld can
      # have problems creating the table of contents.  If linking a library
      # or program results in "error TOC overflow" add -mminimal-toc to
      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.

      archive_cmds=''
      hardcode_direct=yes
      hardcode_direct_absolute=yes
      hardcode_libdir_separator=':'
      link_all_deplibs=yes
      file_list_spec='${wl}-f,'

      if test "$GCC" = yes; then
	case $host_os in aix4.[012]|aix4.[012].*)
	# We only want to do this on AIX 4.2 and lower, the check
	# below for broken collect2 doesn't work under 4.3+
	  collect2name=`${CC} -print-prog-name=collect2`
	  if test -f "$collect2name" &&
	   strings "$collect2name" | $GREP resolve_lib_name >/dev/null
	  then
	  # We have reworked collect2
	  :
	  else
	  # We have old collect2
	  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
	  ;;
	esac
	shared_flag='-shared'
	if test "$aix_use_runtimelinking" = yes; then
	  shared_flag="$shared_flag "'${wl}-G'
	fi
      else
	# not using gcc
	if test "$host_cpu" = ia64; then
	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
	# chokes on -Wl,-G. The following line is correct:
	  shared_flag='-G'
	else
	  if test "$aix_use_runtimelinking" = yes; then
	    shared_flag='${wl}-G'
	  else
	    shared_flag='${wl}-bM:SRE'
	  fi
	fi
      fi

      export_dynamic_flag_spec='${wl}-bexpall'
      # It seems that -bexpall does not export symbols beginning with
      # underscore (_), so it is better to generate a list of symbols to export.
      always_export_symbols=yes
      if test "$aix_use_runtimelinking" = yes; then
	# Warning - without using the other runtime loading flags (-brtl),
	# -berok will link without error, but may produce a broken library.
	allow_undefined_flag='-berok'
        # Determine the default libpath from the value encoded in an
        # empty executable.
        if test "${lt_cv_aix_libpath+set}" = set; then
  aix_libpath=$lt_cv_aix_libpath
else
  if ${lt_cv_aix_libpath_+:} false; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :

  lt_aix_libpath_sed='
      /Import File Strings/,/^$/ {
	  /^0/ {
	      s/^0  *\([^ ]*\) *$/\1/
	      p
	  }
      }'
  lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
  # Check for a 64-bit object if we didn't find anything.
  if test -z "$lt_cv_aix_libpath_"; then
    lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
  fi
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
  if test -z "$lt_cv_aix_libpath_"; then
    lt_cv_aix_libpath_="/usr/lib:/lib"
  fi

fi

  aix_libpath=$lt_cv_aix_libpath_
fi

        hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
        archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
      else
	if test "$host_cpu" = ia64; then
	  hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
	  allow_undefined_flag="-z nodefs"
	  archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
	else
	 # Determine the default libpath from the value encoded in an
	 # empty executable.
	 if test "${lt_cv_aix_libpath+set}" = set; then
  aix_libpath=$lt_cv_aix_libpath
else
  if ${lt_cv_aix_libpath_+:} false; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :

  lt_aix_libpath_sed='
      /Import File Strings/,/^$/ {
	  /^0/ {
	      s/^0  *\([^ ]*\) *$/\1/
	      p
	  }
      }'
  lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
  # Check for a 64-bit object if we didn't find anything.
  if test -z "$lt_cv_aix_libpath_"; then
    lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
  fi
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
  if test -z "$lt_cv_aix_libpath_"; then
    lt_cv_aix_libpath_="/usr/lib:/lib"
  fi

fi

  aix_libpath=$lt_cv_aix_libpath_
fi

	 hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
	  # Warning - without using the other run time loading flags,
	  # -berok will link without error, but may produce a broken library.
	  no_undefined_flag=' ${wl}-bernotok'
	  allow_undefined_flag=' ${wl}-berok'
	  if test "$with_gnu_ld" = yes; then
	    # We only use this code for GNU lds that support --whole-archive.
	    whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
	  else
	    # Exported symbols can be pulled into shared objects from archives
	    whole_archive_flag_spec='$convenience'
	  fi
	  archive_cmds_need_lc=yes
	  # This is similar to how AIX traditionally builds its shared libraries.
	  archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
	fi
      fi
      ;;

    amigaos*)
      case $host_cpu in
      powerpc)
            # see comment about AmigaOS4 .so support
            archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
            archive_expsym_cmds=''
        ;;
      m68k)
            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
        ;;
      esac
      ;;

    bsdi[45]*)
      export_dynamic_flag_spec=-rdynamic
      ;;

    cygwin* | mingw* | pw32* | cegcc*)
      # 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.
      case $cc_basename in
      cl*)
	# Native MSVC
	hardcode_libdir_flag_spec=' '
	allow_undefined_flag=unsupported
	always_export_symbols=yes
	file_list_spec='@'
	# Tell ltmain to make .lib files, not .a files.
	libext=lib
	# Tell ltmain to make .dll files, not .so files.
	shrext_cmds=".dll"
	# FIXME: Setting linknames here is a bad hack.
	archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
	archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
	    sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
	  else
	    sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
	  fi~
	  $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
	  linknames='
	# The linker will not automatically build a static lib if we build a DLL.
	# _LT_TAGVAR(old_archive_from_new_cmds, )='true'
	enable_shared_with_static_runtimes=yes
	exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
	export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
	# Don't use ranlib
	old_postinstall_cmds='chmod 644 $oldlib'
	postlink_cmds='lt_outputfile="@OUTPUT@"~
	  lt_tool_outputfile="@TOOL_OUTPUT@"~
	  case $lt_outputfile in
	    *.exe|*.EXE) ;;
	    *)
	      lt_outputfile="$lt_outputfile.exe"
	      lt_tool_outputfile="$lt_tool_outputfile.exe"
	      ;;
	  esac~
	  if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
	    $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
	    $RM "$lt_outputfile.manifest";
	  fi'
	;;
      *)
	# Assume MSVC wrapper
	hardcode_libdir_flag_spec=' '
	allow_undefined_flag=unsupported
	# Tell ltmain to make .lib files, not .a files.
	libext=lib
	# Tell ltmain to make .dll files, not .so files.
	shrext_cmds=".dll"
	# FIXME: Setting linknames here is a bad hack.
	archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''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'
	enable_shared_with_static_runtimes=yes
	;;
      esac
      ;;

    darwin* | rhapsody*)


  archive_cmds_need_lc=no
  hardcode_direct=no
  hardcode_automatic=yes
  hardcode_shlibpath_var=unsupported
  if test "$lt_cv_ld_force_load" = "yes"; then
    whole_archive_flag_spec='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'

  else
    whole_archive_flag_spec=''
  fi
  link_all_deplibs=yes
  allow_undefined_flag="$_lt_dar_allow_undefined"
  case $cc_basename in
     ifort*) _lt_dar_can_shared=yes ;;
     *) _lt_dar_can_shared=$GCC ;;
  esac
  if test "$_lt_dar_can_shared" = "yes"; then
    output_verbose_link_cmd=func_echo_all
    archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
    module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
    module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"

  else
  ld_shlibs=no
  fi

      ;;

    dgux*)
      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
      hardcode_libdir_flag_spec='-L$libdir'
      hardcode_shlibpath_var=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* | dragonfly*)
      archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
      hardcode_libdir_flag_spec='-R$libdir'
      hardcode_direct=yes
      hardcode_shlibpath_var=no
      ;;

    hpux9*)
      if test "$GCC" = yes; then
	archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
      else
	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'
      fi
      hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
      hardcode_libdir_separator=:
      hardcode_direct=yes

      # hardcode_minus_L: Not really in the search PATH,
      # but as the default location of the library.
      hardcode_minus_L=yes
      export_dynamic_flag_spec='${wl}-E'
      ;;

    hpux10*)
      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
	archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
      else
	archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
      fi
      if test "$with_gnu_ld" = no; then
	hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
	hardcode_libdir_separator=:
	hardcode_direct=yes
	hardcode_direct_absolute=yes
	export_dynamic_flag_spec='${wl}-E'
	# hardcode_minus_L: Not really in the search PATH,
	# but as the default location of the library.
	hardcode_minus_L=yes
      fi
      ;;

    hpux11*)
      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
	case $host_cpu in
	hppa*64*)
	  archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
	  ;;
	ia64*)
	  archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
	  ;;
	*)
	  archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
	  ;;
	esac
      else
	case $host_cpu in
	hppa*64*)
	  archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
	  ;;
	ia64*)
	  archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
	  ;;
	*)

	  # Older versions of the 11.00 compiler do not understand -b yet
	  # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
	  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5
$as_echo_n "checking if $CC understands -b... " >&6; }
if ${lt_cv_prog_compiler__b+:} false; then :
  $as_echo_n "(cached) " >&6
else
  lt_cv_prog_compiler__b=no
   save_LDFLAGS="$LDFLAGS"
   LDFLAGS="$LDFLAGS -b"
   echo "$lt_simple_link_test_code" > conftest.$ac_ext
   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
     # The linker can only warn and ignore the option if not recognized
     # So say no if there are warnings
     if test -s conftest.err; then
       # Append any errors to the config.log.
       cat conftest.err 1>&5
       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
       if diff conftest.exp conftest.er2 >/dev/null; then
         lt_cv_prog_compiler__b=yes
       fi
     else
       lt_cv_prog_compiler__b=yes
     fi
   fi
   $RM -r conftest*
   LDFLAGS="$save_LDFLAGS"

fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5
$as_echo "$lt_cv_prog_compiler__b" >&6; }

if test x"$lt_cv_prog_compiler__b" = xyes; then
    archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
else
    archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
fi

	  ;;
	esac
      fi
      if test "$with_gnu_ld" = no; then
	hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
	hardcode_libdir_separator=:

	case $host_cpu in
	hppa*64*|ia64*)
	  hardcode_direct=no
	  hardcode_shlibpath_var=no
	  ;;
	*)
	  hardcode_direct=yes
	  hardcode_direct_absolute=yes
	  export_dynamic_flag_spec='${wl}-E'

	  # hardcode_minus_L: Not really in the search PATH,
	  # but as the default location of the library.
	  hardcode_minus_L=yes
	  ;;
	esac
      fi
      ;;

    irix5* | irix6* | nonstopux*)
      if test "$GCC" = yes; then
	archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
	# Try to use the -exported_symbol ld option, if it does not
	# work, assume that -exports_file does not work either and
	# implicitly export all symbols.
	# This should be the same for all languages, so no per-tag cache variable.
	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
if ${lt_cv_irix_exported_symbol+:} false; then :
  $as_echo_n "(cached) " >&6
else
  save_LDFLAGS="$LDFLAGS"
	   LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
	   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
int foo (void) { return 0; }
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  lt_cv_irix_exported_symbol=yes
else
  lt_cv_irix_exported_symbol=no
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
           LDFLAGS="$save_LDFLAGS"
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
$as_echo "$lt_cv_irix_exported_symbol" >&6; }
	if test "$lt_cv_irix_exported_symbol" = yes; then
          archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
	fi
      else
	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
      fi
      archive_cmds_need_lc='no'
      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
      hardcode_libdir_separator=:
      inherit_rpath=yes
      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 $linker_flags'
      hardcode_direct=yes
      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
      hardcode_libdir_separator=:
      hardcode_shlibpath_var=no
      ;;

    *nto* | *qnx*)
      ;;

    openbsd*)
      if test -f /usr/libexec/ld.so; then
	hardcode_direct=yes
	hardcode_shlibpath_var=no
	hardcode_direct_absolute=yes
	if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
	  archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
	  archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
	  hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
	  export_dynamic_flag_spec='${wl}-E'
	else
	  case $host_os in
	   openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
	     archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
	     hardcode_libdir_flag_spec='-R$libdir'
	     ;;
	   *)
	     archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
	     hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
	     ;;
	  esac
	fi
      else
	ld_shlibs=no
      fi
      ;;

    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" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
      else
	allow_undefined_flag=' -expect_unresolved \*'
	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
      fi
      archive_cmds_need_lc='no'
      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} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${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='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
	archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
	$CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'

	# Both c and cxx compiler support -rpath directly
	hardcode_libdir_flag_spec='-rpath $libdir'
      fi
      archive_cmds_need_lc='no'
      hardcode_libdir_separator=:
      ;;

    solaris*)
      no_undefined_flag=' -z defs'
      if test "$GCC" = yes; then
	wlarc='${wl}'
	archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
	archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
	  $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
      else
	case `$CC -V 2>&1` in
	*"Compilers 5.0"*)
	  wlarc=''
	  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'
	  ;;
	*)
	  wlarc='${wl}'
	  archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
	  archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
	  $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
	  ;;
	esac
      fi
      hardcode_libdir_flag_spec='-R$libdir'
      hardcode_shlibpath_var=no
      case $host_os in
      solaris2.[0-5] | solaris2.[0-5].*) ;;
      *)
	# The compiler driver will combine and reorder linker options,
	# but understands `-z linker_flag'.  GCC discards it without `$wl',
	# but is careful enough not to reorder.
	# Supported since Solaris 2.6 (maybe 2.5.1?)
	if test "$GCC" = yes; then
	  whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
	else
	  whole_archive_flag_spec='-z allextract$convenience -z defaultextract'
	fi
	;;
      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)
      case $host_vendor in
	sni)
	  archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
	  hardcode_direct=yes # is this really true???
	;;
	siemens)
	  ## LD is ld it makes a PLAMLIB
	  ## CC just makes a GrossModule.
	  archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
	  reload_cmds='$CC -r -o $output$reload_objs'
	  hardcode_direct=no
        ;;
	motorola)
	  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
	;;
      esac
      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'
      ;;

    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*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
      no_undefined_flag='${wl}-z,text'
      archive_cmds_need_lc=no
      hardcode_shlibpath_var=no
      runpath_var='LD_RUN_PATH'

      if test "$GCC" = yes; then
	archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
	archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
      else
	archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
	archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
      fi
      ;;

    sysv5* | sco3.2v5* | sco5v6*)
      # Note: We can NOT use -z defs as we might desire, because we do not
      # link with -lc, and that would cause any symbols used from libc to
      # always be unresolved, which means just about no library would
      # ever link correctly.  If we're not using GNU ld we use -z text
      # though, which does catch some bad symbols but isn't as heavy-handed
      # as -z defs.
      no_undefined_flag='${wl}-z,text'
      allow_undefined_flag='${wl}-z,nodefs'
      archive_cmds_need_lc=no
      hardcode_shlibpath_var=no
      hardcode_libdir_flag_spec='${wl}-R,$libdir'
      hardcode_libdir_separator=':'
      link_all_deplibs=yes
      export_dynamic_flag_spec='${wl}-Bexport'
      runpath_var='LD_RUN_PATH'

      if test "$GCC" = yes; then
	archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
	archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
      else
	archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
	archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
      fi
      ;;

    uts4*)
      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
      hardcode_libdir_flag_spec='-L$libdir'
      hardcode_shlibpath_var=no
      ;;

    *)
      ld_shlibs=no
      ;;
    esac

    if test x$host_vendor = xsni; then
      case $host in
      sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
	export_dynamic_flag_spec='${wl}-Blargedynsym'
	;;
      esac
    fi
  fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
$as_echo "$ld_shlibs" >&6; }
test "$ld_shlibs" = no && can_build_shared=no

with_gnu_ld=$with_gnu_ld















#
# Do we need to explicitly link libc?
#
case "x$archive_cmds_need_lc" in
x|xyes)
  # Assume -lc should be added
  archive_cmds_need_lc=yes

  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.
      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
if ${lt_cv_archive_cmds_need_lc+:} false; then :
  $as_echo_n "(cached) " >&6
else
  $RM conftest*
	echo "$lt_simple_compile_test_code" > conftest.$ac_ext

	if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
  (eval $ac_compile) 2>&5
  ac_status=$?
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
  test $ac_status = 0; } 2>conftest.err; then
	  soname=conftest
	  lib=conftest
	  libobjs=conftest.$ac_objext
	  deplibs=
	  wl=$lt_prog_compiler_wl
	  pic_flag=$lt_prog_compiler_pic
	  compiler_flags=-v
	  linker_flags=-v
	  verstring=
	  output_objdir=.
	  libname=conftest
	  lt_save_allow_undefined_flag=$allow_undefined_flag
	  allow_undefined_flag=
	  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
  (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
  ac_status=$?
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
  test $ac_status = 0; }
	  then
	    lt_cv_archive_cmds_need_lc=no
	  else
	    lt_cv_archive_cmds_need_lc=yes
	  fi
	  allow_undefined_flag=$lt_save_allow_undefined_flag
	else
	  cat conftest.err 1>&5
	fi
	$RM conftest*

fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5
$as_echo "$lt_cv_archive_cmds_need_lc" >&6; }
      archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
      ;;
    esac
  fi
  ;;
esac
























































































































































  { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
$as_echo_n "checking dynamic linker characteristics... " >&6; }

if test "$GCC" = yes; then
  case $host_os in
    darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
    *) lt_awk_arg="/^libraries:/" ;;
  esac
  case $host_os in
    mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;;
    *) lt_sed_strip_eq="s,=/,/,g" ;;
  esac
  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
  case $lt_search_path_spec in
  *\;*)
    # if the path contains ";" then we assume it to be the separator
    # otherwise default to the standard path separator (i.e. ":") - it is
    # assumed that no part of a normal pathname contains ";" but that should
    # okay in the real world where ";" in dirpaths is itself problematic.
    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
    ;;
  *)
    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
    ;;
  esac
  # Ok, now we have the path, separated by spaces, we can step through it
  # and add multilib dir if necessary.
  lt_tmp_lt_search_path_spec=
  lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
  for lt_sys_path in $lt_search_path_spec; do
    if test -d "$lt_sys_path/$lt_multi_os_dir"; then
      lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
    else
      test -d "$lt_sys_path" && \
	lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
    fi
  done
  lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
BEGIN {RS=" "; FS="/|\n";} {
  lt_foo="";
  lt_count=0;
  for (lt_i = NF; lt_i > 0; lt_i--) {
    if ($lt_i != "" && $lt_i != ".") {
      if ($lt_i == "..") {
        lt_count++;
      } else {
        if (lt_count == 0) {
          lt_foo="/" $lt_i lt_foo;
        } else {
          lt_count--;
        }
      }
    }
  }
  if (lt_foo != "") { lt_freq[lt_foo]++; }
  if (lt_freq[lt_foo] == 1) { print lt_foo; }
}'`
  # AWK program above erroneously prepends '/' to C:/dos/paths
  # for these hosts.
  case $host_os in
    mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
      $SED 's,/\([A-Za-z]:\),\1,g'` ;;
  esac
  sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
else
  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
fi
library_names_spec=
libname_spec='lib$name'
soname_spec=
shrext_cmds=".so"
postinstall_cmds=
postuninstall_cmds=
finish_cmds=
finish_eval=
shlibpath_var=
shlibpath_overrides_runpath=unknown
version_type=none
dynamic_linker="$host_os ld.so"
sys_lib_dlsearch_path_spec="/lib /usr/lib"
need_lib_prefix=unknown
hardcode_into_libs=no

# when you set need_version to no, make sure it does not cause -set_version
# flags to be left without arguments
need_version=unknown

case $host_os in
aix3*)
  version_type=linux # correct to gnu/linux during the next big refactor
  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
  shlibpath_var=LIBPATH

  # AIX 3 has no versioning support, so we append a major version to the name.
  soname_spec='${libname}${release}${shared_ext}$major'
  ;;

aix[4-9]*)
  version_type=linux # correct to gnu/linux during the next big refactor
  need_lib_prefix=no
  need_version=no
  hardcode_into_libs=yes
  if test "$host_cpu" = ia64; then
    # AIX 5 supports IA64
    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
    shlibpath_var=LD_LIBRARY_PATH
  else
    # With GCC up to 2.95.x, collect2 would create an import file
    # for dependence libraries.  The import file would start with
    # the line `#! .'.  This would cause the generated library to
    # depend on `.', always an invalid library.  This was fixed in
    # development snapshots of GCC prior to 3.0.
    case $host_os in
      aix4 | aix4.[01] | aix4.[01].*)
      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
	   echo ' yes '
	   echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
	:
      else
	can_build_shared=no
      fi
      ;;
    esac
    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
    # soname into executable. Probably we can add versioning support to
    # collect2, so additional links can be useful in future.
    if test "$aix_use_runtimelinking" = yes; then
      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
      # instead of lib<name>.a to let people know that these are not
      # typical AIX shared libraries.
      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
    else
      # We preserve .a as extension for shared libraries through AIX4.2
      # and later when we are not doing run time linking.
      library_names_spec='${libname}${release}.a $libname.a'
      soname_spec='${libname}${release}${shared_ext}$major'
    fi
    shlibpath_var=LIBPATH
  fi
  ;;

amigaos*)
  case $host_cpu in
  powerpc)
    # Since July 2007 AmigaOS4 officially supports .so libraries.
    # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
    ;;
  m68k)
    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=`func_echo_all "$lib" | $SED '\''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'
    ;;
  esac
  ;;

beos*)
  library_names_spec='${libname}${shared_ext}'
  dynamic_linker="$host_os ld.so"
  shlibpath_var=LIBRARY_PATH
  ;;

bsdi[45]*)
  version_type=linux # correct to gnu/linux during the next big refactor
  need_version=no
  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
  soname_spec='${libname}${release}${shared_ext}$major'
  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
  shlibpath_var=LD_LIBRARY_PATH
  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
  # the default ld.so.conf also contains /usr/contrib/lib and
  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
  # libtool to hard-code these into programs
  ;;

cygwin* | mingw* | pw32* | cegcc*)
  version_type=windows
  shrext_cmds=".dll"
  need_version=no
  need_lib_prefix=no

  case $GCC,$cc_basename in
  yes,*)
    # gcc
    library_names_spec='$libname.dll.a'
    # DLL is installed to $(libdir)/../bin by postinstall_cmds
    postinstall_cmds='base_file=`basename \${file}`~
      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
      dldir=$destdir/`dirname \$dlpath`~
      test -d \$dldir || mkdir -p \$dldir~
      $install_prog $dir/$dlname \$dldir/$dlname~
      chmod a+x \$dldir/$dlname~
      if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
        eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
      fi'
    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
      dlpath=$dir/\$dldll~
       $RM \$dlpath'
    shlibpath_overrides_runpath=yes

    case $host_os in
    cygwin*)
      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'

      sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"
      ;;
    mingw* | cegcc*)
      # MinGW DLLs use traditional 'lib' prefix
      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
      ;;
    pw32*)
      # pw32 DLLs use 'pw' prefix rather than 'lib'
      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
      ;;
    esac
    dynamic_linker='Win32 ld.exe'
    ;;

  *,cl*)
    # Native MSVC
    libname_spec='$name'
    soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
    library_names_spec='${libname}.dll.lib'

    case $build_os in
    mingw*)
      sys_lib_search_path_spec=
      lt_save_ifs=$IFS
      IFS=';'
      for lt_path in $LIB
      do
        IFS=$lt_save_ifs
        # Let DOS variable expansion print the short 8.3 style file name.
        lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
        sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
      done
      IFS=$lt_save_ifs
      # Convert to MSYS style.
      sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
      ;;
    cygwin*)
      # Convert to unix form, then to dos form, then back to unix form
      # but this time dos style (no spaces!) so that the unix form looks
      # like /cygdrive/c/PROGRA~1:/cygdr...
      sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
      sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
      sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
      ;;
    *)
      sys_lib_search_path_spec="$LIB"
      if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
        # It is most probably a Windows format PATH.
        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
      else
        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
      fi
      # FIXME: find the short name or the path components, as spaces are
      # common. (e.g. "Program Files" -> "PROGRA~1")
      ;;
    esac

    # DLL is installed to $(libdir)/../bin by postinstall_cmds
    postinstall_cmds='base_file=`basename \${file}`~
      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
      dldir=$destdir/`dirname \$dlpath`~
      test -d \$dldir || mkdir -p \$dldir~
      $install_prog $dir/$dlname \$dldir/$dlname'
    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
      dlpath=$dir/\$dldll~
       $RM \$dlpath'
    shlibpath_overrides_runpath=yes
    dynamic_linker='Win32 link.exe'
    ;;

  *)
    # Assume MSVC wrapper
    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
    dynamic_linker='Win32 ld.exe'
    ;;
  esac
  # FIXME: first we should search . and the directory the executable is in
  shlibpath_var=PATH
  ;;

darwin* | rhapsody*)
  dynamic_linker="$host_os dyld"
  version_type=darwin
  need_lib_prefix=no
  need_version=no
  library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
  soname_spec='${libname}${release}${major}$shared_ext'
  shlibpath_overrides_runpath=yes
  shlibpath_var=DYLD_LIBRARY_PATH
  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'

  sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"
  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
  ;;

dgux*)
  version_type=linux # correct to gnu/linux during the next big refactor
  need_lib_prefix=no
  need_version=no
  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
  soname_spec='${libname}${release}${shared_ext}$major'
  shlibpath_var=LD_LIBRARY_PATH
  ;;

freebsd* | dragonfly*)
  # DragonFly does not have aout.  When/if they implement a new
  # versioning mechanism, adjust this.
  if test -x /usr/bin/objformat; then
    objformat=`/usr/bin/objformat`
  else
    case $host_os in
    freebsd[23].*) objformat=aout ;;
    *) objformat=elf ;;
    esac
  fi
  version_type=freebsd-$objformat
  case $version_type in
    freebsd-elf*)
      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
      need_version=no
      need_lib_prefix=no
      ;;
    freebsd-*)
      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
      need_version=yes
      ;;
  esac
  shlibpath_var=LD_LIBRARY_PATH
  case $host_os in
  freebsd2.*)
    shlibpath_overrides_runpath=yes
    ;;
  freebsd3.[01]* | freebsdelf3.[01]*)
    shlibpath_overrides_runpath=yes
    hardcode_into_libs=yes
    ;;
  freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
  freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
    shlibpath_overrides_runpath=no
    hardcode_into_libs=yes
    ;;
  *) # from 4.6 on, and DragonFly
    shlibpath_overrides_runpath=yes
    hardcode_into_libs=yes
    ;;
  esac
  ;;

gnu*)
  version_type=linux # correct to gnu/linux during the next big refactor
  need_lib_prefix=no
  need_version=no
  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
  soname_spec='${libname}${release}${shared_ext}$major'
  shlibpath_var=LD_LIBRARY_PATH
  shlibpath_overrides_runpath=no
  hardcode_into_libs=yes
  ;;

haiku*)
  version_type=linux # correct to gnu/linux during the next big refactor
  need_lib_prefix=no
  need_version=no
  dynamic_linker="$host_os runtime_loader"
  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
  soname_spec='${libname}${release}${shared_ext}$major'
  shlibpath_var=LIBRARY_PATH
  shlibpath_overrides_runpath=yes
  sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
  hardcode_into_libs=yes
  ;;

hpux9* | hpux10* | hpux11*)
  # Give a soname corresponding to the major version so that dld.sl refuses to
  # link against other versions.
  version_type=sunos
  need_lib_prefix=no
  need_version=no
  case $host_cpu in
  ia64*)
    shrext_cmds='.so'
    hardcode_into_libs=yes
    dynamic_linker="$host_os dld.so"
    shlibpath_var=LD_LIBRARY_PATH
    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
    soname_spec='${libname}${release}${shared_ext}$major'
    if test "X$HPUX_IA64_MODE" = X32; then
      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
    else
      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
    fi
    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
    ;;
  hppa*64*)
    shrext_cmds='.sl'
    hardcode_into_libs=yes
    dynamic_linker="$host_os dld.sl"
    shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
    soname_spec='${libname}${release}${shared_ext}$major'
    sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
    ;;
  *)
    shrext_cmds='.sl'
    dynamic_linker="$host_os dld.sl"
    shlibpath_var=SHLIB_PATH
    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
    soname_spec='${libname}${release}${shared_ext}$major'
    ;;
  esac
  # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
  postinstall_cmds='chmod 555 $lib'
  # or fails outright, so override atomically:
  install_override_mode=555
  ;;

interix[3-9]*)
  version_type=linux # correct to gnu/linux during the next big refactor
  need_lib_prefix=no
  need_version=no
  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
  soname_spec='${libname}${release}${shared_ext}$major'
  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
  shlibpath_var=LD_LIBRARY_PATH
  shlibpath_overrides_runpath=no
  hardcode_into_libs=yes
  ;;

irix5* | irix6* | nonstopux*)
  case $host_os in
    nonstopux*) version_type=nonstopux ;;
    *)
	if test "$lt_cv_prog_gnu_ld" = yes; then
		version_type=linux # correct to gnu/linux during the next big refactor
	else
		version_type=irix
	fi ;;
  esac
  need_lib_prefix=no
  need_version=no
  soname_spec='${libname}${release}${shared_ext}$major'
  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
  case $host_os in
  irix5* | nonstopux*)
    libsuff= shlibsuff=
    ;;
  *)
    case $LD in # libtool.m4 will add one of these switches to LD
    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
      libsuff= shlibsuff= libmagic=32-bit;;
    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
      libsuff=32 shlibsuff=N32 libmagic=N32;;
    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
      libsuff=64 shlibsuff=64 libmagic=64-bit;;
    *) libsuff= shlibsuff= libmagic=never-match;;
    esac
    ;;
  esac
  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
  shlibpath_overrides_runpath=no
  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
  hardcode_into_libs=yes
  ;;

# No shared lib support for Linux oldld, aout, or coff.
linux*oldld* | linux*aout* | linux*coff*)
  dynamic_linker=no
  ;;

# This must be glibc/ELF.
linux* | k*bsd*-gnu | kopensolaris*-gnu)
  version_type=linux # correct to gnu/linux during the next big refactor
  need_lib_prefix=no
  need_version=no
  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
  soname_spec='${libname}${release}${shared_ext}$major'
  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
  shlibpath_var=LD_LIBRARY_PATH
  shlibpath_overrides_runpath=no

  # Some binutils ld are patched to set DT_RUNPATH
  if ${lt_cv_shlibpath_overrides_runpath+:} false; then :
  $as_echo_n "(cached) " >&6
else
  lt_cv_shlibpath_overrides_runpath=no
    save_LDFLAGS=$LDFLAGS
    save_libdir=$libdir
    eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
	 LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  if  ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
  lt_cv_shlibpath_overrides_runpath=yes
fi
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
    LDFLAGS=$save_LDFLAGS
    libdir=$save_libdir

fi

  shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath

  # This implies no fast_install, which is unacceptable.
  # Some rework will be needed to allow for fast_install
  # before this can be enabled.
  hardcode_into_libs=yes

  # Append ld.so.conf contents to the search path
  if test -f /etc/ld.so.conf; then
    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
  fi

  # We used to test for /lib/ld.so.1 and disable shared libraries on
  # powerpc, because MkLinux only supported shared libraries with the
  # GNU dynamic linker.  Since this was broken with cross compilers,
  # most powerpc-linux boxes support dynamic linking these days and
  # people can always --disable-shared, the test was removed, and we
  # assume the GNU/Linux dynamic linker is in use.
  dynamic_linker='GNU/Linux ld.so'
  ;;

netbsd*)
  version_type=sunos
  need_lib_prefix=no
  need_version=no
  if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
    dynamic_linker='NetBSD (a.out) ld.so'
  else
    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
    soname_spec='${libname}${release}${shared_ext}$major'
    dynamic_linker='NetBSD ld.elf_so'
  fi
  shlibpath_var=LD_LIBRARY_PATH
  shlibpath_overrides_runpath=yes
  hardcode_into_libs=yes
  ;;

newsos6)
  version_type=linux # correct to gnu/linux during the next big refactor
  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
  shlibpath_var=LD_LIBRARY_PATH
  shlibpath_overrides_runpath=yes
  ;;

*nto* | *qnx*)
  version_type=qnx
  need_lib_prefix=no
  need_version=no
  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
  soname_spec='${libname}${release}${shared_ext}$major'
  shlibpath_var=LD_LIBRARY_PATH
  shlibpath_overrides_runpath=no
  hardcode_into_libs=yes
  dynamic_linker='ldqnx.so'
  ;;

openbsd*)
  version_type=sunos
  sys_lib_dlsearch_path_spec="/usr/lib"
  need_lib_prefix=no
  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
  case $host_os in
    openbsd3.3 | openbsd3.3.*)	need_version=yes ;;
    *)				need_version=no  ;;
  esac
  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
  shlibpath_var=LD_LIBRARY_PATH
  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
    case $host_os in
      openbsd2.[89] | openbsd2.[89].*)
	shlibpath_overrides_runpath=no
	;;
      *)
	shlibpath_overrides_runpath=yes
	;;
      esac
  else
    shlibpath_overrides_runpath=yes
  fi
  ;;

os2*)
  libname_spec='$name'
  shrext_cmds=".dll"
  need_lib_prefix=no
  library_names_spec='$libname${shared_ext} $libname.a'
  dynamic_linker='OS/2 ld.exe'
  shlibpath_var=LIBPATH
  ;;

osf3* | osf4* | osf5*)
  version_type=osf
  need_lib_prefix=no
  need_version=no
  soname_spec='${libname}${release}${shared_ext}$major'
  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
  shlibpath_var=LD_LIBRARY_PATH
  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
  ;;

rdos*)
  dynamic_linker=no
  ;;

solaris*)
  version_type=linux # correct to gnu/linux during the next big refactor
  need_lib_prefix=no
  need_version=no
  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
  soname_spec='${libname}${release}${shared_ext}$major'
  shlibpath_var=LD_LIBRARY_PATH
  shlibpath_overrides_runpath=yes
  hardcode_into_libs=yes
  # ldd complains unless libraries are executable
  postinstall_cmds='chmod +x $lib'
  ;;

sunos4*)
  version_type=sunos
  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
  shlibpath_var=LD_LIBRARY_PATH
  shlibpath_overrides_runpath=yes
  if test "$with_gnu_ld" = yes; then
    need_lib_prefix=no
  fi
  need_version=yes
  ;;

sysv4 | sysv4.3*)
  version_type=linux # correct to gnu/linux during the next big refactor
  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
  soname_spec='${libname}${release}${shared_ext}$major'
  shlibpath_var=LD_LIBRARY_PATH
  case $host_vendor in
    sni)
      shlibpath_overrides_runpath=no
      need_lib_prefix=no
      runpath_var=LD_RUN_PATH
      ;;
    siemens)
      need_lib_prefix=no
      ;;
    motorola)
      need_lib_prefix=no
      need_version=no
      shlibpath_overrides_runpath=no
      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
      ;;
  esac
  ;;

sysv4*MP*)
  if test -d /usr/nec ;then
    version_type=linux # correct to gnu/linux during the next big refactor
    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
    soname_spec='$libname${shared_ext}.$major'
    shlibpath_var=LD_LIBRARY_PATH
  fi
  ;;

sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
  version_type=freebsd-elf
  need_lib_prefix=no
  need_version=no
  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
  soname_spec='${libname}${release}${shared_ext}$major'
  shlibpath_var=LD_LIBRARY_PATH
  shlibpath_overrides_runpath=yes
  hardcode_into_libs=yes
  if test "$with_gnu_ld" = yes; then
    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
  else
    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
    case $host_os in
      sco3.2v5*)
        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
	;;
    esac
  fi
  sys_lib_dlsearch_path_spec='/usr/lib'
  ;;

tpf*)
  # TPF is a cross-target only.  Preferred cross-host = GNU/Linux.
  version_type=linux # correct to gnu/linux during the next big refactor
  need_lib_prefix=no
  need_version=no
  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
  shlibpath_var=LD_LIBRARY_PATH
  shlibpath_overrides_runpath=no
  hardcode_into_libs=yes
  ;;

uts4*)
  version_type=linux # correct to gnu/linux during the next big refactor
  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
  soname_spec='${libname}${release}${shared_ext}$major'
  shlibpath_var=LD_LIBRARY_PATH
  ;;

*)
  dynamic_linker=no
  ;;
esac
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
$as_echo "$dynamic_linker" >&6; }
test "$dynamic_linker" = no && can_build_shared=no

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 "${lt_cv_sys_lib_search_path_spec+set}" = set; then
  sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
fi
if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
  sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
fi




























































































  { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
hardcode_action=
if test -n "$hardcode_libdir_flag_spec" ||
   test -n "$runpath_var" ||
   test "X$hardcode_automatic" = "Xyes" ; then

  # We can hardcode non-existent 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 "$_LT_TAGVAR(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
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
$as_echo "$hardcode_action" >&6; }

if test "$hardcode_action" = relink ||
   test "$inherit_rpath" = yes; 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






  if test "x$enable_dlopen" != xyes; then
  enable_dlopen=unknown
  enable_dlopen_self=unknown
  enable_dlopen_self_static=unknown
else
  lt_cv_dlopen=no
  lt_cv_dlopen_libs=

  case $host_os in
  beos*)
    lt_cv_dlopen="load_add_on"
    lt_cv_dlopen_libs=
    lt_cv_dlopen_self=yes
    ;;

  mingw* | pw32* | cegcc*)
    lt_cv_dlopen="LoadLibrary"
    lt_cv_dlopen_libs=
    ;;

  cygwin*)
    lt_cv_dlopen="dlopen"
    lt_cv_dlopen_libs=
    ;;

  darwin*)
  # if libdl is installed we need to link against it
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
$as_echo_n "checking for dlopen in -ldl... " >&6; }
if ${ac_cv_lib_dl_dlopen+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-ldl  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* 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 dlopen ();
int
main ()
{
return dlopen ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_dl_dlopen=yes
else
  ac_cv_lib_dl_dlopen=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_dl_dlopen" >&5
$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
else

    lt_cv_dlopen="dyld"
    lt_cv_dlopen_libs=
    lt_cv_dlopen_self=yes

fi

    ;;

  *)
    ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
if test "x$ac_cv_func_shl_load" = xyes; then :
  lt_cv_dlopen="shl_load"
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
$as_echo_n "checking for shl_load in -ldld... " >&6; }
if ${ac_cv_lib_dld_shl_load+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-ldld  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* 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 shl_load ();
int
main ()
{
return shl_load ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_dld_shl_load=yes
else
  ac_cv_lib_dld_shl_load=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_dld_shl_load" >&5
$as_echo "$ac_cv_lib_dld_shl_load" >&6; }
if test "x$ac_cv_lib_dld_shl_load" = xyes; then :
  lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
else
  ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
if test "x$ac_cv_func_dlopen" = xyes; then :
  lt_cv_dlopen="dlopen"
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
$as_echo_n "checking for dlopen in -ldl... " >&6; }
if ${ac_cv_lib_dl_dlopen+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-ldl  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* 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 dlopen ();
int
main ()
{
return dlopen ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_dl_dlopen=yes
else
  ac_cv_lib_dl_dlopen=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_dl_dlopen" >&5
$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
$as_echo_n "checking for dlopen in -lsvld... " >&6; }
if ${ac_cv_lib_svld_dlopen+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lsvld  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* 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 dlopen ();
int
main ()
{
return dlopen ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_svld_dlopen=yes
else
  ac_cv_lib_svld_dlopen=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_svld_dlopen" >&5
$as_echo "$ac_cv_lib_svld_dlopen" >&6; }
if test "x$ac_cv_lib_svld_dlopen" = xyes; then :
  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
$as_echo_n "checking for dld_link in -ldld... " >&6; }
if ${ac_cv_lib_dld_dld_link+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-ldld  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* 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 dld_link ();
int
main ()
{
return dld_link ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_dld_dld_link=yes
else
  ac_cv_lib_dld_dld_link=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_dld_dld_link" >&5
$as_echo "$ac_cv_lib_dld_dld_link" >&6; }
if test "x$ac_cv_lib_dld_dld_link" = xyes; then :
  lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
fi


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"
    wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"

    save_LIBS="$LIBS"
    LIBS="$lt_cv_dlopen_libs $LIBS"

    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
$as_echo_n "checking whether a program can dlopen itself... " >&6; }
if ${lt_cv_dlopen_self+:} false; then :
  $as_echo_n "(cached) " >&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 <<_LT_EOF
#line $LINENO "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

/* When -fvisbility=hidden is used, assume the code has been annotated
   correspondingly for the symbols needed.  */
#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
int fnord () __attribute__((visibility("default")));
#endif

int fnord () { return 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;
          else puts (dlerror ());
	}
      /* dlclose (self); */
    }
  else
    puts (dlerror ());

  return status;
}
_LT_EOF
  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
  (eval $ac_link) 2>&5
  ac_status=$?
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
  test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
    (./conftest; exit; ) >&5 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_dlunknown|x*) lt_cv_dlopen_self=no ;;
    esac
  else :
    # compilation failed
    lt_cv_dlopen_self=no
  fi
fi
rm -fr conftest*


fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
$as_echo "$lt_cv_dlopen_self" >&6; }

    if test "x$lt_cv_dlopen_self" = xyes; then
      wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }
if ${lt_cv_dlopen_self_static+:} false; then :
  $as_echo_n "(cached) " >&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 <<_LT_EOF
#line $LINENO "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

/* When -fvisbility=hidden is used, assume the code has been annotated
   correspondingly for the symbols needed.  */
#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
int fnord () __attribute__((visibility("default")));
#endif

int fnord () { return 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;
          else puts (dlerror ());
	}
      /* dlclose (self); */
    }
  else
    puts (dlerror ());

  return status;
}
_LT_EOF
  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
  (eval $ac_link) 2>&5
  ac_status=$?
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
  test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
    (./conftest; exit; ) >&5 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_dlunknown|x*) lt_cv_dlopen_self_static=no ;;
    esac
  else :
    # compilation failed
    lt_cv_dlopen_self_static=no
  fi
fi
rm -fr conftest*


fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5
$as_echo "$lt_cv_dlopen_self_static" >&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

















striplib=
old_striplib=
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
$as_echo_n "checking whether stripping libraries is possible... " >&6; }
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"
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
else
# FIXME - insert some real tests, host_os isn't really good enough
  case $host_os in
  darwin*)
    if test -n "$STRIP" ; then
      striplib="$STRIP -x"
      old_striplib="$STRIP -S"
      { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
    else
      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
    fi
    ;;
  *)
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
    ;;
  esac
fi












  # Report which library types will actually be built
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
$as_echo_n "checking if libtool supports shared libraries... " >&6; }
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
$as_echo "$can_build_shared" >&6; }

  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
$as_echo_n "checking whether to build shared libraries... " >&6; }
  test "$can_build_shared" = "no" && enable_shared=no

  # On AIX, shared libraries and static libraries use the same namespace, and
  # are all built from PIC.
  case $host_os in
  aix3*)
    test "$enable_shared" = yes && enable_static=no
    if test -n "$RANLIB"; then
      archive_cmds="$archive_cmds~\$RANLIB \$lib"
      postinstall_cmds='$RANLIB $lib'
    fi
    ;;

  aix[4-9]*)
    if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
      test "$enable_shared" = yes && enable_static=no
    fi
    ;;
  esac
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
$as_echo "$enable_shared" >&6; }

  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
$as_echo_n "checking whether to build static libraries... " >&6; }
  # Make sure either enable_shared or enable_static is yes.
  test "$enable_shared" = yes || enable_static=yes
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
$as_echo "$enable_static" >&6; }




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

CC="$lt_save_CC"















        ac_config_commands="$ac_config_commands libtool"




# Only expand once:


autoconf_compflags="$CFLAGS"
CFLAGS=$oCFLAGS
LDFLAGS="$oLDFLAGS"

unset CONFVAR

#compile silently, if possible
# Check whether --enable-silent-rules was given.
if test "${enable_silent_rules+set}" = set; then :
  enableval=$enable_silent_rules;
fi

case $enable_silent_rules in # (((
  yes) AM_DEFAULT_VERBOSITY=0;;
   no) AM_DEFAULT_VERBOSITY=1;;
    *) AM_DEFAULT_VERBOSITY=0;;
esac
am_make=${MAKE-make}
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
$as_echo_n "checking whether $am_make supports nested variables... " >&6; }
if ${am_cv_make_support_nested_variables+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if $as_echo 'TRUE=$(BAR$(V))
BAR0=false
BAR1=true
V=1
am__doit:
	@$(TRUE)
.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
  am_cv_make_support_nested_variables=yes
else
  am_cv_make_support_nested_variables=no
fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
$as_echo "$am_cv_make_support_nested_variables" >&6; }
if test $am_cv_make_support_nested_variables = yes; then
    AM_V='$(V)'
  AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
else
  AM_V=$AM_DEFAULT_VERBOSITY
  AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
fi
AM_BACKSLASH='\'



$as_echo "#define BAREFOOTD 0" >>confdefs.h


$as_echo "#define COVENANT 0" >>confdefs.h




cat >>confdefs.h <<_ACEOF
#define PRODUCT "$UCAPP"
_ACEOF


cat >>confdefs.h <<_ACEOF
#define LCPRODUCT "$APP"
_ACEOF


# Check whether --enable-release was given.
if test "${enable_release+set}" = set; then :
  enableval=$enable_release; unset prerelease
fi


if test x"$prerelease" != x; then

$as_echo "#define PRERELEASE 1" >>confdefs.h

else

$as_echo "#define PRERELEASE 0" >>confdefs.h

fi
 if test x$prerelease != x; then
  PRERELEASE_TRUE=
  PRERELEASE_FALSE='#'
else
  PRERELEASE_TRUE='#'
  PRERELEASE_FALSE=
fi


#compiler related checks, updates CFLAGS and CPPFLAGS and sets
# 'warn' with flags for warnings

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:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_YACC+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$YACC"; then
  ac_cv_prog_YACC="$YACC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
    ac_cv_prog_YACC="$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

fi
fi
YACC=$ac_cv_prog_YACC
if test -n "$YACC"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $YACC" >&5
$as_echo "$YACC" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


  test -n "$YACC" && break
done
test -n "$YACC" || YACC="yacc"

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:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_AWK+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$AWK"; then
  ac_cv_prog_AWK="$AWK" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
    ac_cv_prog_AWK="$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

fi
fi
AWK=$ac_cv_prog_AWK
if test -n "$AWK"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
$as_echo "$AWK" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


  test -n "$AWK" && break
done

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:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_LEX+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$LEX"; then
  ac_cv_prog_LEX="$LEX" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
    ac_cv_prog_LEX="$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

fi
fi
LEX=$ac_cv_prog_LEX
if test -n "$LEX"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LEX" >&5
$as_echo "$LEX" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


  test -n "$LEX" && break
done
test -n "$LEX" || LEX=":"

if test "x$LEX" != "x:"; then
  cat >conftest.l <<_ACEOF
%%
a { ECHO; }
b { REJECT; }
c { yymore (); }
d { yyless (1); }
e { /* IRIX 6.5 flex 2.5.4 underquotes its yyless argument.  */
    yyless ((input () != 0)); }
f { unput (yytext[0]); }
. { BEGIN INITIAL; }
%%
#ifdef YYTEXT_POINTER
extern char *yytext;
#endif
int
main (void)
{
  return ! yylex () + ! yywrap ();
}
_ACEOF
{ { 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:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
  (eval "$LEX conftest.l") 2>&5
  ac_status=$?
  $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 ${ac_cv_prog_lex_root+:} false; then :
  $as_echo_n "(cached) " >&6
else

if test -f lex.yy.c; then
  ac_cv_prog_lex_root=lex.yy
elif test -f lexyy.c; then
  ac_cv_prog_lex_root=lexyy
else
  as_fn_error $? "cannot find output from $LEX; giving up" "$LINENO" 5
fi
fi
{ $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:${as_lineno-$LINENO}: checking lex library" >&5
$as_echo_n "checking lex library... " >&6; }
if ${ac_cv_lib_lex+:} false; then :
  $as_echo_n "(cached) " >&6
else

    ac_save_LIBS=$LIBS
    ac_cv_lib_lex='none needed'
    for ac_lib in '' -lfl -ll; do
      LIBS="$ac_lib $ac_save_LIBS"
      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
`cat $LEX_OUTPUT_ROOT.c`
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_lex=$ac_lib
fi
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:${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:${as_lineno-$LINENO}: checking whether yytext is a pointer" >&5
$as_echo_n "checking whether yytext is a pointer... " >&6; }
if ${ac_cv_prog_lex_yytext_pointer+:} false; then :
  $as_echo_n "(cached) " >&6
else
  # POSIX says lex can declare yytext either as a pointer or an array; the
# default is implementation-dependent.  Figure out which it is, since
# not all implementations provide the %pointer and %array declarations.
ac_cv_prog_lex_yytext_pointer=no
ac_save_LIBS=$LIBS
LIBS="$LEXLIB $ac_save_LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

  #define YYTEXT_POINTER 1
`cat $LEX_OUTPUT_ROOT.c`
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_prog_lex_yytext_pointer=yes
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_save_LIBS

fi
{ $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

$as_echo "#define YYTEXT_POINTER 1" >>confdefs.h

fi
rm -f conftest.l $LEX_OUTPUT_ROOT.c

fi
if test "$LEX" = :; then
  LEX=${am_missing_run}flex
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:${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
if test -z "$CPP"; then
  if ${ac_cv_prog_CPP+:} false; 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.i 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.  */
#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.i conftest.$ac_ext

done
# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
rm -f conftest.i 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:${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.  */
#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.i 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.  */
#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.i conftest.$ac_ext

done
# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
rm -f conftest.i conftest.err conftest.$ac_ext
if $ac_preproc_ok; then :

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

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 $ac_cv_c_compiler_gnu = yes; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC needs -traditional" >&5
$as_echo_n "checking whether $CC needs -traditional... " >&6; }
if ${ac_cv_prog_gcc_traditional+:} false; then :
  $as_echo_n "(cached) " >&6
else
    ac_pattern="Autoconf.*'x'"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <sgtty.h>
Autoconf TIOCGETP
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "$ac_pattern" >/dev/null 2>&1; then :
  ac_cv_prog_gcc_traditional=yes
else
  ac_cv_prog_gcc_traditional=no
fi
rm -f conftest*


  if test $ac_cv_prog_gcc_traditional = no; then
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <termio.h>
Autoconf TCGETA
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "$ac_pattern" >/dev/null 2>&1; then :
  ac_cv_prog_gcc_traditional=yes
fi
rm -f conftest*

  fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_gcc_traditional" >&5
$as_echo "$ac_cv_prog_gcc_traditional" >&6; }
  if test $ac_cv_prog_gcc_traditional = yes; then
    CC="$CC -traditional"
  fi
fi


case $host in
    alpha*-dec-osf*)
	CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-D_XOPEN_SOURCE_EXTENDED -DBYTE_ORDER=LITTLE_ENDIAN -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_OSF_SOURCE"
	;;

    *-*-hpux*)
	#HPUX needs _PROTOTYPES to include prototypes
	#for configure (for gcc and cc)
	CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-D_PROTOTYPES"
	;;

    *-*-solaris*)
	#for msghdr msg_flags
	CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-D_XOPEN_SOURCE=600"
	CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-D__EXTENSIONS__ -DBSD_COMP"
	;;

    *-*-linux-*)
	CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED"
	CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-D_BSD_SOURCE -D_DEFAULT_SOURCE"
	;;

    *-*-aix*)

$as_echo "#define _ALL_SOURCE 1" >>confdefs.h

	CPPFLAGS="${CPPFLAGS}${CPPFLAGS+ }-DXOPEN_SOURCE_EXTENDED=1"
	;;
esac

#XXX cross compilation
case $host_alias in
    arm-linux-androideabi)
	LDFLAGS="$LDFLAGS${LDFLAGS:+ }-lgcc -ldl"
	;;
esac

#XXX only needed for libraries
case $host in
    *-*-darwin*)
	if test x"${enable_dependency_tracking}" = xno; then
	    HW=`uname -m`
	    case $HW in
		ppc*)
		    CFLAGS="$CFLAGS${CFLAGS:+ }-arch ppc -arch ppc64"
		    LDFLAGS="$LDLAGS${LDLAGS:+ }-arch ppc -arch ppc64"
		    ;;
		*)
		    CFLAGS="$CFLAGS${CFLAGS:+ }-arch i386 -arch x86_64"
		    LDFLAGS="$LDLAGS${LDLAGS:+ }-arch i386 -arch x86_64"
		    ;;
	    esac
	fi
esac

unset COMPTYPE
unset FAILWARN
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for compiler type" >&5
$as_echo_n "checking for compiler type... " >&6; }
if $CC -v 2>&1 | tail -1 | egrep '^gcc ' >/dev/null; then
    COMPTYPE=gcc
    FAILWARN="-Wall -Werror"
elif $CC -v 2>&1 | egrep '(^|^a-zA-Z+ )(clang|LLVM) ' >/dev/null; then
    COMPTYPE=clang
    FAILWARN="-Wall -Werror"
elif $CC -V 2>&1 | grep 'Sun C ' >/dev/null; then
    COMPTYPE=suncc
    FAILWARN="-v -errwarn=%all"
elif $CC -v 2>&1 | egrep '^pcc ' >/dev/null; then
    COMPTYPE=pcc
elif $CC -qversion 2>&1 | egrep '^IBM XL C' >/dev/null; then
    COMPTYPE=xlc
    FAILWARN="-qhalt=w"
else
    #XXX
    case $host in
	alphaev6-dec-osf*)
	    COMPTYPE="osfcc"
	    ;;
	alpha*-dec-osf*)
	    COMPTYPE="oldosfcc"
	    ;;
	*-*-irix*) #sgi cc
	    COMPTYPE="sgicc"
	    ;;
	*-*-hpux*)
	    COMPTYPE="hpuxcc"
	    ;;
	*)
	    #gcc compatible compiler?
	    if test x"$GCC" != x; then
		COMPTYPE="gcc"
	    fi
	    ;;
    esac
fi
if test x"$COMPTYPE" = x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unknown" >&5
$as_echo "unknown" >&6; }
else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $COMPTYPE" >&5
$as_echo "$COMPTYPE" >&6; }
fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for preprocessor flags" >&5
$as_echo_n "checking for preprocessor flags... " >&6; }
unset cpp_flags
case $ac_cv_prog_CPP in
    gcc*)
	#simplify parsing after cpp processing (for e.g. errno checks)
	cpp_flags="${cpp_flags}${cpp_flags:+ }-P"

	if test x"`uname`" = xSunOS; then
	    cpp_flags="${cpp_flags}${cpp_flags:+ }-std=gnu99"
	fi
	;;
    suncc*)
	if test x"`uname`" = xSunOS; then
	    cpp_flags="${cpp_flags}${cpp_flags:+ }-xc99=all"
	fi
	;;
esac
if test x"$cpp_flags" != x; then
   CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$cpp_flags"
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cpp_flags" >&5
$as_echo "$cpp_flags" >&6; }
else
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
$as_echo "none" >&6; }
fi

unset comp_flags
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for compiler flags" >&5
$as_echo_n "checking for compiler flags... " >&6; }
case $COMPTYPE in
    gcc)
	if test x"`uname`" = xSunOS; then
	    comp_flags="-std=gnu99"
	fi
	;;

    suncc)
	#-xs provides easier debugging with gdb
	comp_flags="-Xa -xs"
	if test x"`uname`" = xSunOS; then
	    comp_flags="$comp_flags -xc99=all"
	fi
    ;;

    osfcc)
	comp_flags="-std1"
    ;;

    oldosfcc) #XXX is it possible to get it to work with -newc?
	if test x"$GCC" = x; then
	    comp_flags="-std1 -oldc"
	fi
    ;;

    hpuxcc)
	if test x"$GCC" = x; then
	    CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-D_XOPEN_SOURCE"
	    #XXX when cc is used as CPP it needs -Ae to work
	    #    for L_SOCKPROTO; add -Ae to CPPFLAGS.
	    #    This won't work if CPP is specified by hand
	    #    and is something else than cc (when CC is hp cc)
#	    comp_flags="-Ae"
	    CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-Ae"
	fi
	;;

    xlc)
	comp_flags=""
	;;
esac
#make sure compiling with compiler options works
if test x"$comp_flags" != x; then
    oCFLAGS="$CFLAGS"
    CFLAGS="$CFLAGS${CFLAGS:+ }$comp_flags"
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $comp_flags" >&5
$as_echo "$comp_flags" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
$as_echo "none" >&6; }
		    unset comp_flags
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
    CFLAGS="$oCFLAGS"
else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
$as_echo "none" >&6; }
fi

case $COMPTYPE in
    suncc)
	true #skip on this platform, gives warning but does not fail
	;;
    *)
	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for support for -pipe compiler flag" >&5
$as_echo_n "checking for support for -pipe compiler flag... " >&6; }
	oCFLAGS="$CFLAGS"
	CFLAGS="$CFLAGS${CFLAGS:+ }$FAILWARN -pipe"
	if test "$cross_compiling" = yes; then :
  	     { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

int main()
{
	return 0;
	}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
	     comp_flags="${comp_flags}${comp_flags:+ }-pipe"
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi

	CFLAGS="$oCFLAGS"
	;;
esac

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for support for -Wbounded compiler flag" >&5
$as_echo_n "checking for support for -Wbounded compiler flag... " >&6; }
case $COMPTYPE in
    xlc)
	#use of -Wbounded does not result in an error even when
	#-qhalt=w is specified, resulting in a warning for each
	#compiled file, so disable check
	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no, disabled for this compiler" >&5
$as_echo "no, disabled for this compiler" >&6; }
	;;
    *)
	oCFLAGS="$CFLAGS"
	CFLAGS="$CFLAGS${CFLAGS:+ }$FAILWARN -Wbounded"
	if test "$cross_compiling" = yes; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; } else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

int main()
{
        return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
	 comp_flags="${comp_flags}${comp_flags:+ }-Wbounded"

$as_echo "#define HAVE_DECL_BOUNDED 1" >>confdefs.h

else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi

	CFLAGS="$oCFLAGS"
	;;
esac

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether compiler supports _Pragma()" >&5
$as_echo_n "checking whether compiler supports _Pragma()... " >&6; }
oCFLAGS="$CFLAGS"
CFLAGS="$CFLAGS${CFLAGS:+ }$FAILWARN"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <stdlib.h>

#define foo(x)                                            \
do {                                                      \
 _Pragma("GCC diagnostic ignored \"-Waddress\"");         \
} while (x > 1)

int
main ()
{
foo(0)
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

$as_echo "#define HAVE_PRAGMA_SUPPORT 1" >>confdefs.h

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
CFLAGS="$oCFLAGS"

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __attribute__ support" >&5
$as_echo_n "checking for __attribute__ support... " >&6; }
oCFLAGS="$CFLAGS"
CFLAGS="$CFLAGS${CFLAGS:+ }$FAILWARN"
if test "$cross_compiling" = yes; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; } else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <stdlib.h>

void errfunc(void) __attribute__((noreturn));

void errfunc(void)
{
    exit(0);
}

int main()
{
    errfunc();
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

$as_echo "#define HAVE_DECL_ATTRIBUTE 1" >>confdefs.h

else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi

CFLAGS="$oCFLAGS"

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for constructor __attribute__ support" >&5
$as_echo_n "checking for constructor __attribute__ support... " >&6; }
oCFLAGS="$CFLAGS"
CFLAGS="$CFLAGS${CFLAGS:+ }$FAILWARN"
if test "$cross_compiling" = yes; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; } else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <stdlib.h>

void errfunc(void) __attribute__((constructor));

void errfunc(void)
{
    exit(0);
}

int main()
{
    errfunc();
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

$as_echo "#define HAVE_DECL_CONSTRUCTOR 1" >>confdefs.h

else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi

CFLAGS="$oCFLAGS"

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __attribute__ nonnull support" >&5
$as_echo_n "checking for __attribute__ nonnull support... " >&6; }
oCFLAGS="$CFLAGS"
CFLAGS="$CFLAGS${CFLAGS:+ }$FAILWARN"
if test "$cross_compiling" = yes; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; } else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <stdlib.h>

void func(char *) __attribute__((__nonnull__(1)));

void func(char *f)
{
    char *d;
    d = f;
}

int main()
{
    func(NULL);
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

$as_echo "#define HAVE_DECL_NONNULL 1" >>confdefs.h

else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi

CFLAGS="$oCFLAGS"

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __printf__ format attribute support" >&5
$as_echo_n "checking for __printf__ format attribute support... " >&6; }
oCFLAGS="$CFLAGS"
CFLAGS="$CFLAGS${CFLAGS:+ }$FAILWARN"
if test "$cross_compiling" = yes; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; } else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <stdlib.h>

void func(const char *fmt, ...)
   __attribute__((format(__printf__, 1, 2)));

void func(const char *fmt, ...) {
     (void)fmt;
     return;
}

int main()
{
    func("foo");
    return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

$as_echo "#define HAVE_DECL_FORMAT 1" >>confdefs.h

else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi

CFLAGS="$oCFLAGS"

#check whether to enable debugging
unset NODEBUG
unset debug_enabled
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for compilation with debugging" >&5
$as_echo_n "checking for compilation with debugging... " >&6; }
# Check whether --enable-debug was given.
if test "${enable_debug+set}" = set; then :
  enableval=$enable_debug; if test x"$enableval" = xno; then
    NODEBUG="Disabled, using --disable-debug"
 fi
else
  #off by default for full release, enabled by default for prerelease
 if test x"$prerelease" = x; then
    NODEBUG="Disabled (default)"
 fi
fi

if test x"$NODEBUG" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: disabled" >&5
$as_echo "disabled" >&6; }
else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
    debug_enabled=t
    FEAT="$FEAT${FEAT:+ }debug"
fi

#check whether to enable livedebug
unset NOLIVEDEBUG
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for live debugging" >&5
$as_echo_n "checking for live debugging... " >&6; }
# Check whether --enable-livedebug was given.
if test "${enable_livedebug+set}" = set; then :
  enableval=$enable_livedebug; if test x"$enableval" = xno; then
    NOLIVEDEBUG="Disabled, using --disable-livedebug"
 fi
else
  #off by default for full release, enabled by default for prerelease
 if test x"$prerelease" = x; then
    NOLIVEDEBUG="Disabled (default)"
 fi
fi

if test x"$NOLIVEDEBUG" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: disabled" >&5
$as_echo "disabled" >&6; }
else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
    debug_enabled=t
    FEAT="$FEAT${FEAT:+ }livedebug"

$as_echo "#define HAVE_COND_LIVEDEBUG 1" >>confdefs.h

fi

#check for problem with linker/gcc on AIX
unset aixldbug
case $COMPTYPE in
    gcc)
	oCFLAGS="$CFLAGS"
	CFLAGS="$CFLAGS${CFLAGS:+ }-g"
	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether compiling using -g works with gcc" >&5
$as_echo_n "checking whether compiling using -g works with gcc... " >&6; }
	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
int foo;
int
main ()
{
foo++;
  ;
  return 0;
}
_ACEOF
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:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
             { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: building with -g0" >&5
$as_echo "$as_me: WARNING: building with -g0" >&2;}
	     aixldbug=t
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
        CFLAGS="$oCFLAGS"
        ;;
esac

#enable -fstack-protector if debug enabled
#XXX disabled, can lead to build failure on some platforms
#if test x"${debug_enabled}" != x; then
#   AC_MSG_CHECKING([for support for -fstack-protector compiler flag])
#   oCFLAGS="$CFLAGS"
#   CFLAGS="$CFLAGS${CFLAGS:+ }$FAILWARN -fstack-protector"
#   AC_TRY_RUN([
#int main()
#{
#        return 0;
#}], [AC_MSG_RESULT([yes])
#     comp_flags="${comp_flags}${comp_flags:+ }-fstack-protector"],
#    [AC_MSG_RESULT([no])],
#    [AC_MSG_RESULT([no]) dnl assume not supported when cross-compiling])
#   CFLAGS="$oCFLAGS"
#fi

#set compilation debugging flags
if test x"${debug_enabled}" = xt; then
    #no optimization wanted
    if test x"${ac_cv_prog_cc_g}" = xyes; then
	case $COMPTYPE in
	    gcc)
		if test x"$aixldbug" != x; then
		    #disable debug info
		    CFLAGS="$CFLAGS${CFLAGS:+ }-g0"
		else
		    CFLAGS="$CFLAGS${CFLAGS:+ }-ggdb"
		fi
		;;
	    *)
		CFLAGS="$CFLAGS${CFLAGS:+ }-g"
		;;
	esac
    fi
    CPPFLAGS="$CPPFLAGS${CPPFLAGS:+ }-DDEBUG=1"
else
    #autoconf_compflags is set to "-g -O2" with GCC
    #override CFLAGS when running configure to avoid this
    CPPFLAGS="$CPPFLAGS${CPPFLAGS:+ }-DDEBUG=0"
    CFLAGS="$CFLAGS${CFLAGS:+ }$autoconf_compflags"

    case $COMPTYPE in
	gcc)
	    if test x"$aixldbug" != x; then
	        #disable debug info
		if echo $CFLAGS | grep -- "-g " >/dev/null; then
		    CFLAGS="`echo $CFLAGS | sed -e 's/-g //g'`"
		fi
		CFLAGS="$CFLAGS${CFLAGS:+ }-g0"
	    else
		#use -ggdb also when not debugging
		if echo $CFLAGS | grep -- "-g " >/dev/null; then
		    CFLAGS="`echo $CFLAGS | sed -e 's/-g //g'`"
		fi
		CFLAGS="$CFLAGS${CFLAGS:+ }-ggdb"
	    fi
	    ;;
    esac
fi

#check whether to compilation warnings
unset NOWARN
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for warning flags" >&5
$as_echo_n "checking for warning flags... " >&6; }
# Check whether --enable-warnings was given.
if test "${enable_warnings+set}" = set; then :
  enableval=$enable_warnings; if test x"$enableval" = xno; then
    NOWARN="Disabled, using --disable-warnings"
 fi
else
  #off by default
 NOWARN="Disabled (default)"
fi


#place warning flags in $warn
if test x"$NOWARN" = x; then
    #try to enable compiler specific warning flags
    case $COMPTYPE in
	gcc)
	    warn="-Wall -Wformat -W -Wnested-externs -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wcast-align -Wcast-qual -Wbad-function-cast -Wpointer-arith -Wundef"
	    #warn="$warn -Wold-style-cast -Winline -Waggregate-return -Wconversion -Wwrite-strings -Wtraditional -Wshadow"
	    ;;

	hpuxcc)
	    warn="-v"
	    ;;

	*osfcc) #osf cc
#	    warn="-w0 -check -portable -warnprotos"
	    true
	    ;;

#	pcc)
#	    warn="-Wall --warn-common --warn-constructors --warn-multiple-gp --warn-once --warn-section-align --error-unresolved-symbols"
#	    ;;

	sgicc) #sgi cc
	    warn="-fullwarn"
	    ;;

	suncc)
	    warn="-v"
	    case $host in
		#XXX only available for some platforms
		sparc-*solaris*)
		    warn="$warn -xanalyze=code"
		    ;;
	    esac
	    ;;

	xlc)
	    warn="-qinfo=all:noppt"
	    ;;

	*) #try -Wall (gcc)
	    warn="-Wall"
	    ;;
    esac

    oCFLAGS="$CFLAGS"
    CFLAGS="$CFLAGS${CFLAGS:+ }$warn"
    #make sure compilation is still possible
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $warn" >&5
$as_echo "$warn" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
$as_echo "none" >&6; }
		    unset warn
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
    CFLAGS="$oCFLAGS"
else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
$as_echo "none" >&6; }
fi

#check if compilation with FORTIFY_SOURCE gives error/warning
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether compilation with FORTIFY_SOURCE works" >&5
$as_echo_n "checking whether compilation with FORTIFY_SOURCE works... " >&6; }
oCFLAGS="$CFLAGS"
oCPPFLAGS="$CPPFLAGS"
CFLAGS="$CFLAGS${CFLAGS:+ }$FAILWARN"
CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-D_FORTIFY_SOURCE=2"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <stdio.h>
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
		    CPPFLAGS="$oCPPFLAGS"
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
CFLAGS="$oCFLAGS"

#for Solaris, generate 64-bit binaries if running in 64-bit mode.
#building 32-bit binaries (the default) causes problems with
#LD_PRELOAD if running in a 64-bit environment.
#XXX more general solution would be to build and install both
unset sol64
case $host in
    *-*-solaris*)
	if test x`isainfo -b` = x64; then
	    ISA64DIR=`isainfo -n`
	    if test x"$ISA64DIR" != x; then
		{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for support for -m64 compiler flag" >&5
$as_echo_n "checking for support for -m64 compiler flag... " >&6; }
		oCFLAGS="$CFLAGS"
		CFLAGS="$CFLAGS${CFLAGS:+ }-m64"
		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_fn_error $? "cannot run test program while cross compiling
See \`config.log' for more details" "$LINENO" 5; }
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

			int main() {
			    return 0;
		}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
		     sol64=t

		     { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: building for 64-bit addressing model" >&5
$as_echo "$as_me: WARNING: building for 64-bit addressing model" >&2;}
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi

		CFLAGS="$oCFLAGS"
	    fi
	fi
	;;
esac

#NOTE: set warnings at the bottom; might interfere with tests
CFLAGS="$CFLAGS${CFLAGS:+ }$comp_flags"

#check whether to compile with extra DIAGNOSTICS
unset NODIAG
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for compliation with DIAGNOSTIC" >&5
$as_echo_n "checking for compliation with DIAGNOSTIC... " >&6; }

# Check whether --enable-diagnostic was given.
if test "${enable_diagnostic+set}" = set; then :
  enableval=$enable_diagnostic; if test x"$enableval" = xno; then
    NODIAG="Disabled, using --disable-diagnostics"
 fi
else
  #off by default for full release, enabled by default for prerelease
 if test x"$prerelease" = x; then
    NODIAG="Disabled (default)"
 fi
fi

if test x"$NODIAG" = x; then
    FEAT="$FEAT${FEAT:+ }diagnostic"
    $as_echo "#define DIAGNOSTIC 1" >>confdefs.h

    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
else
    $as_echo "#define DIAGNOSTIC 0" >>confdefs.h

    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi

#check whether to build with profiling
unset NOPROFIL
for ac_func in moncontrol
do :
  ac_fn_c_check_func "$LINENO" "moncontrol" "ac_cv_func_moncontrol"
if test "x$ac_cv_func_moncontrol" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_MONCONTROL 1
_ACEOF

fi
done

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether profiled compilation requested" >&5
$as_echo_n "checking whether profiled compilation requested... " >&6; }
# Check whether --enable-profiling was given.
if test "${enable_profiling+set}" = set; then :
  enableval=$enable_profiling; if test x"$enableval" = xno; then
    NOPROFIL="Disabled, using --disable-profiling"
 fi
else
  #off by default
 NOPROFIL="Disabled (default)"
fi

if test x"$NOPROFIL" = x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

    oLDFLAGS="$LDFLAGS"
    oCFLAGS="$CFLAGS"
    LDFLAGS="$LDFLAGS${LDFLAGS:+ }-pg"
    CFLAGS="$CFLAGS${CFLAGS:+ }-pg -DPROFILING"
    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_fn_error $? "cannot run test program while cross compiling
See \`config.log' for more details" "$LINENO" 5; }
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

int main()
{
	return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
  FEAT="$FEAT${FEAT:+ }profiling"

$as_echo "#define HAVE_PROFILING 1" >>confdefs.h


     case $host in
	 *-*-openbsd* | *-*-freebsd*)
	     #static linking, disable server preloading
	     no_preload_server=t
	     #OpenBSD and FreeBSD appear to be happier if -lc is included
	     #when profiling is enabled
	     LIBS="$LIBS${LIBS:+ }-lc"
	     ;;
     esac
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: profiling requested, but compilation with profiling fails" >&5
$as_echo "$as_me: WARNING: profiling requested, but compilation with profiling fails" >&2;}
    NOPROFIL="Disabled, profiled compilation fails"
    CFLAGS="$oCFLAGS"
    LDFLAGS="$oLDFLAGS"
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi

else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi

#check whether to build with coverage
unset NOCOVERAGE
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether coverage requested" >&5
$as_echo_n "checking whether coverage requested... " >&6; }
# Check whether --enable-coverage was given.
if test "${enable_coverage+set}" = set; then :
  enableval=$enable_coverage; if test x"$enableval" = xno; then
    NOCOVER="Disabled, using --disable-coverage"
 fi
else
  #disabled by default
 NOCOVER="Disabled (default)"
fi

if test x"$NOCOVER" = x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
    oLDFLAGS="$LDFLAGS"
    oCFLAGS="$CFLAGS"
    LDFLAGS="$LDFLAGS${LDFLAGS:+ }--coverage"
    CFLAGS="$CFLAGS${CFLAGS:+ }--coverage"
    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_fn_error $? "cannot run test program while cross compiling
See \`config.log' for more details" "$LINENO" 5; }
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/wait.h>

#include <stdlib.h>
#include <unistd.h>

int main()
{
	int res;
	/* look for darwin() fork problem */
	if ((res = fork()) == 0)
	    exit(0); /* child */
	else if (res == -1)
	    exit(1); /* err */
	else {
	    if (waitpid(res, NULL, 0) == res)
		exit(0);
	    else
		exit(1);
	}
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
  FEAT="$FEAT${FEAT:+ }coverage"

$as_echo "#define HAVE_COVERAGE 1" >>confdefs.h

else
  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: coverage requested, but compilation with --coverage fails" >&5
$as_echo "$as_me: WARNING: coverage requested, but compilation with --coverage fails" >&2;}
     NOCOVER="Disabled, --coverage compilation fails"
     CFLAGS="$oCFLAGS"
     LDFLAGS="$oLDFLAGS"
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi

else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi

#check whether to run lint
unset NOLINT
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether linting requested" >&5
$as_echo_n "checking whether linting requested... " >&6; }
# Check whether --enable-linting was given.
if test "${enable_linting+set}" = set; then :
  enableval=$enable_linting; if test x"$enableval" = xno; then
    NOLINT="Disabled, using --disable-linting"
 fi
else
  #off by default
 NOLINT="Disabled (default)"
fi

if test x"$NOLINT" = x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

    # Extract the first word of "lint", so it can be a program name with args.
set dummy lint; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_LINT+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$LINT"; then
  ac_cv_prog_LINT="$LINT" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
    ac_cv_prog_LINT="lint"
    $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

fi
fi
LINT=$ac_cv_prog_LINT
if test -n "$LINT"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LINT" >&5
$as_echo "$LINT" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


    if test x"$LINT" = x; then
	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: linting requested, but lint not found" >&5
$as_echo "$as_me: WARNING: linting requested, but lint not found" >&2;}
	NOLINT="Disabled, lint not found"
    else
	s_linting=t
	case $host in
	    *-*-aix*)
		LINTFLAGS="-abcbpx -Nn8000 -Nd8000"
		LINTPASS1=""
		LINTPASS2=""
		LINTLIBOPT="-C"
		;;
	    *-*-openbsd* | *-*-freebsd*)
		LINTFLAGS="-abcebprxz"
		LINTPASS1="-i"
		LINTPASS2=""
		LINTLIBOPT="-C"
		;;
	    *-*-solaris*)
#		LINTFLAGS=-c -errchk=%all -errsecurity=extended -fd -Ncheck=%all -Nlevel=3 -p -s
#		SUPPRESS="-x -erroff=E_FUNC_DECL_VAR_ARG2"
		LINTLIBS="-lnsl -lsocket -lwrap"
		LINTWARN="-errsecurity=extended -errchk=%all -errhdr -Ncheck=%all -Nlevel=3"
		LINTFLAGS="-fd -s -errfmt=simple $SUPPRESS $LINTWARN"
		LINTPASS1="-c"
		LINTPASS2="$LINTFLAGS $LINTLIBS"
		LINTLIBOPT="-o"
		;;
	esac
    fi
else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
 if test x"$NOLINT" = x; then
  RUNLINT_TRUE=
  RUNLINT_FALSE='#'
else
  RUNLINT_TRUE='#'
  RUNLINT_FALSE=
fi








case $host in
    *-*-darwin*)

$as_echo "#define HAVE_DARWIN 1" >>confdefs.h

	;;

    *-*-openbsd*)

$as_echo "#define HAVE_OPENBSD_BUGS 1" >>confdefs.h

	;;

    *-*-solaris*)

$as_echo "#define HAVE_SENDMSG_DEADLOCK 1" >>confdefs.h


$as_echo "#define HAVE_SOLARIS_BUGS 1" >>confdefs.h


$as_echo "#define SPT_TYPE SPT_REUSEARGV" >>confdefs.h

	;;

    *-*-linux-*)

$as_echo "#define HAVE_LINUX_BUGS 1" >>confdefs.h


$as_echo "#define SPT_TYPE SPT_REUSEARGV" >>confdefs.h

	;;

    *-*-aix*)

$as_echo "#define HAVE_SYSTEM_XMSG_MAGIC 1" >>confdefs.h

	;;
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:${as_lineno-$LINENO}: checking size of char" >&5
$as_echo_n "checking size of char... " >&6; }
if ${ac_cv_sizeof_char+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (char))" "ac_cv_sizeof_char"        "$ac_includes_default"; then :

else
  if test "$ac_cv_type_char" = 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_error 77 "cannot compute sizeof (char)
See \`config.log' for more details" "$LINENO" 5; }
   else
     ac_cv_sizeof_char=0
   fi
fi

fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_char" >&5
$as_echo "$ac_cv_sizeof_char" >&6; }



cat >>confdefs.h <<_ACEOF
#define SIZEOF_CHAR $ac_cv_sizeof_char
_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 short" >&5
$as_echo_n "checking size of short... " >&6; }
if ${ac_cv_sizeof_short+:} false; 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_error 77 "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 SIZEOF_SHORT $ac_cv_sizeof_short
_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 int" >&5
$as_echo_n "checking size of int... " >&6; }
if ${ac_cv_sizeof_int+:} false; 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
  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_error 77 "cannot compute sizeof (int)
See \`config.log' for more details" "$LINENO" 5; }
   else
     ac_cv_sizeof_int=0
   fi
fi

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 ${ac_cv_sizeof_long+:} false; then :
  $as_echo_n "(cached) " >&6
else
  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_error 77 "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



{ $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 ${ac_cv_header_sys_wait_h+:} false; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <sys/types.h>
#include <sys/wait.h>
#ifndef WEXITSTATUS
# define WEXITSTATUS(stat_val) ((unsigned int) (stat_val) >> 8)
#endif
#ifndef WIFEXITED
# define WIFEXITED(stat_val) (((stat_val) & 255) == 0)
#endif

int
main ()
{
  int s;
  wait (&s);
  s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  ac_cv_header_sys_wait_h=yes
else
  ac_cv_header_sys_wait_h=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_sys_wait_h" >&5
$as_echo "$ac_cv_header_sys_wait_h" >&6; }
if test $ac_cv_header_sys_wait_h = yes; then

$as_echo "#define HAVE_SYS_WAIT_H 1" >>confdefs.h

fi

for ac_header in fcntl.h limits.h malloc.h paths.h strings.h syslog.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"
if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
  cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF

fi

done

for ac_header in unistd.h crypt.h stddef.h sys/file.h sys/ioctl.h sys/time.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"
if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
  cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF

fi

done

for ac_header in shadow.h ifaddrs.h sys/sem.h netinet/in.h rpc/rpc.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"
if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
  cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF

fi

done

for ac_header in sys/ipc.h arpa/nameser.h net/if_dl.h execinfo.h sys/pstat.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"
if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
  cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF

fi

done

for ac_header in sys/shm.h valgrind/valgrind.h netinet/tcp_fsm.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"
if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
  cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF

fi

done


#some header dependencies for netinet/ip.h, use compilation test
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for netinet/ip.h" >&5
$as_echo_n "checking for netinet/ip.h... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>

#include <netinet/in.h>
#include <netinet/in_systm.h>
#include <netinet/ip.h>

int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

$as_echo "#define HAVE_NETINET_IP_H 1" >>confdefs.h

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

case $host in
    #XXX only check for priv.h support on Solaris for now
    *-*-solaris*)
	for ac_header in priv.h
do :
  ac_fn_c_check_header_mongrel "$LINENO" "priv.h" "ac_cv_header_priv_h" "$ac_includes_default"
if test "x$ac_cv_header_priv_h" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_PRIV_H 1
_ACEOF

$as_echo "#define HAVE_PRIVILEGES 1" >>confdefs.h


$as_echo "#define HAVE_SOLARIS_PRIVS 1" >>confdefs.h

fi

done

	;;
esac

for ac_header in netinet/ip_var.h
do :
  ac_fn_c_check_header_compile "$LINENO" "netinet/ip_var.h" "ac_cv_header_netinet_ip_var_h" "
#if HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
#if HAVE_NETINET_IN_H
#include <netinet/in.h>
#endif

"
if test "x$ac_cv_header_netinet_ip_var_h" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_NETINET_IP_VAR_H 1
_ACEOF

fi

done


for ac_header in resolv.h
do :
  ac_fn_c_check_header_compile "$LINENO" "resolv.h" "ac_cv_header_resolv_h" "
#if HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
#if HAVE_NETINET_IN_H
#include <netinet/in.h>
#endif
#if HAVE_ARPA_NAMESER_H
#include <arpa/nameser.h>
#endif

"
if test "x$ac_cv_header_resolv_h" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_RESOLV_H 1
_ACEOF

fi

done


ac_fn_c_check_header_mongrel "$LINENO" "sys/sockio.h" "ac_cv_header_sys_sockio_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_sockio_h" = xyes; then :

$as_echo "#define HAVE_SYS_SOCKIO_H 1" >>confdefs.h

 have_sys_sockio_h=t
fi



{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether <sys/types.h> defines const" >&5
$as_echo_n "checking whether <sys/types.h> defines const... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#ifdef const
yes
#endif

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "yes" >/dev/null 2>&1; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
    check_const="yes"
fi
rm -f conftest*

if test x$check_const = xyes; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5
$as_echo_n "checking for an ANSI C-conforming const... " >&6; }
if ${ac_cv_c_const+:} false; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

int
main ()
{

#ifndef __cplusplus
  /* Ultrix mips cc rejects this sort of thing.  */
  typedef int charset[2];
  const charset cs = { 0, 0 };
  /* SunOS 4.1.1 cc rejects this.  */
  char const *const *pcpcc;
  char **ppc;
  /* NEC SVR4.0.2 mips cc rejects this.  */
  struct point {int x, y;};
  static struct point const zero = {0,0};
  /* AIX XL C 1.02.0.0 rejects this.
     It does not let you subtract one const X* pointer from another in
     an arm of an if-expression whose if-part is not a constant
     expression */
  const char *g = "string";
  pcpcc = &g + (g ? g-g : 0);
  /* HPUX 7.0 cc rejects these. */
  ++pcpcc;
  ppc = (char**) pcpcc;
  pcpcc = (char const *const *) ppc;
  { /* SCO 3.2v4 cc rejects this sort of thing.  */
    char tx;
    char *t = &tx;
    char const *s = 0 ? (char *) 0 : (char const *) 0;

    *t++ = 0;
    if (s) return 0;
  }
  { /* Someone thinks the Sun supposedly-ANSI compiler will reject this.  */
    int x[] = {25, 17};
    const int *foo = &x[0];
    ++foo;
  }
  { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
    typedef const int *iptr;
    iptr p = 0;
    ++p;
  }
  { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying
       "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
    struct s { int j; const int *ap[3]; } bx;
    struct s *b = &bx; b->j = 5;
  }
  { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
    const int foo = 10;
    if (!foo) return 0;
  }
  return !cs[0] && !zero.x;
#endif

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  ac_cv_c_const=yes
else
  ac_cv_c_const=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5
$as_echo "$ac_cv_c_const" >&6; }
if test $ac_cv_c_const = no; then

$as_echo "#define const /**/" >>confdefs.h

fi

fi

#looks for Linux + systems with RTAX_GATEWAY defined in net/route.h
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for supported routing socket communication" >&5
$as_echo_n "checking for supported routing socket communication... " >&6; }

unset no_routeinfo
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <net/route.h>
#ifdef linux
yes
#endif /* linux */

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "yes" >/dev/null 2>&1; then :
  $as_echo "#define HAVE_ROUTE_SOURCE 1" >>confdefs.h


$as_echo "#define HAVE_ROUTEINFO_LINUX 1" >>confdefs.h

    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <net/route.h>
#ifdef RTA_GATEWAY
yes
#endif /* RTA_GATEWAY */

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "yes" >/dev/null 2>&1; then :
  $as_echo "#define HAVE_ROUTE_SOURCE 1" >>confdefs.h


$as_echo "#define HAVE_ROUTEINFO_BSD 1" >>confdefs.h

     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, might result in reduced functionality" >&5
$as_echo "no, might result in reduced functionality" >&6; }
      no_routeinfo=t
fi
rm -f conftest*

fi
rm -f conftest*


#XXXsys/socket.h?
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct ip_opts in <netinet/in.h>" >&5
$as_echo_n "checking for struct ip_opts in <netinet/in.h>... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <netinet/ip_var.h>

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "struct.*ipoption" >/dev/null 2>&1; then :

$as_echo "#define HAVE_STRUCT_IPOPTS 1" >>confdefs.h

    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest*


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct tcp_info in <netinet/tcp.h>" >&5
$as_echo_n "checking for struct tcp_info in <netinet/tcp.h>... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <netinet/tcp.h>

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "struct.*tcp_info" >/dev/null 2>&1; then :

$as_echo "#define HAVE_TCP_INFO 1" >>confdefs.h

    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

    # check which values are found in the tcp_info struct
    # (limitations in autoconf makes it necessary to list each name explicitly
    #  and not use a list stored in a variable)

    #values not present on some older linux versions
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tcp_info value tcpi_rcv_rtt" >&5
$as_echo_n "checking for tcp_info value tcpi_rcv_rtt... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
int
main ()
{


struct tcp_info tcp_info;
void *p;

p = &tcp_info.tcpi_rcv_rtt;
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

$as_echo "#define HAVE_TCP_INFO_TCPI_RCV_RTT 1" >>confdefs.h

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&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
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tcp_info value tcpi_rcv_space" >&5
$as_echo_n "checking for tcp_info value tcpi_rcv_space... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
int
main ()
{


struct tcp_info tcp_info;
void *p;

p = &tcp_info.tcpi_rcv_space;
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

$as_echo "#define HAVE_TCP_INFO_TCPI_RCV_SPACE 1" >>confdefs.h

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&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
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tcp_info value tcpi_total_retrans" >&5
$as_echo_n "checking for tcp_info value tcpi_total_retrans... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
int
main ()
{


struct tcp_info tcp_info;
void *p;

p = &tcp_info.tcpi_total_retrans;
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

$as_echo "#define HAVE_TCP_INFO_TCPI_TOTAL_RETRANS 1" >>confdefs.h

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&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

    #values not present on freebsd
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tcp_info value tcpi_advmss" >&5
$as_echo_n "checking for tcp_info value tcpi_advmss... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
int
main ()
{


struct tcp_info tcp_info;
void *p;

p = &tcp_info.tcpi_advmss;
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

$as_echo "#define HAVE_TCP_INFO_TCPI_ADVMSS 1" >>confdefs.h

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&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
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tcp_info value tcpi_ato" >&5
$as_echo_n "checking for tcp_info value tcpi_ato... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
int
main ()
{


struct tcp_info tcp_info;
void *p;

p = &tcp_info.tcpi_ato;
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

$as_echo "#define HAVE_TCP_INFO_TCPI_ATO 1" >>confdefs.h

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&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
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tcp_info value tcpi_backoff" >&5
$as_echo_n "checking for tcp_info value tcpi_backoff... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
int
main ()
{


struct tcp_info tcp_info;
void *p;

p = &tcp_info.tcpi_backoff;
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

$as_echo "#define HAVE_TCP_INFO_TCPI_BACKOFF 1" >>confdefs.h

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&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
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tcp_info value tcpi_ca_state" >&5
$as_echo_n "checking for tcp_info value tcpi_ca_state... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
int
main ()
{


struct tcp_info tcp_info;
void *p;

p = &tcp_info.tcpi_ca_state;
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

$as_echo "#define HAVE_TCP_INFO_TCPI_CA_STATE 1" >>confdefs.h

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&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
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tcp_info value tcpi_fackets" >&5
$as_echo_n "checking for tcp_info value tcpi_fackets... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
int
main ()
{


struct tcp_info tcp_info;
void *p;

p = &tcp_info.tcpi_fackets;
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

$as_echo "#define HAVE_TCP_INFO_TCPI_FACKETS 1" >>confdefs.h

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&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
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tcp_info value tcpi_last_ack_recv" >&5
$as_echo_n "checking for tcp_info value tcpi_last_ack_recv... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
int
main ()
{


struct tcp_info tcp_info;
void *p;

p = &tcp_info.tcpi_last_ack_recv;
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

$as_echo "#define HAVE_TCP_INFO_TCPI_LAST_ACK_RECV 1" >>confdefs.h

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&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
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tcp_info value tcpi_last_ack_sent" >&5
$as_echo_n "checking for tcp_info value tcpi_last_ack_sent... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
int
main ()
{


struct tcp_info tcp_info;
void *p;

p = &tcp_info.tcpi_last_ack_sent;
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

$as_echo "#define HAVE_TCP_INFO_TCPI_LAST_ACK_SENT 1" >>confdefs.h

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&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
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tcp_info value tcpi_last_data_recv" >&5
$as_echo_n "checking for tcp_info value tcpi_last_data_recv... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
int
main ()
{


struct tcp_info tcp_info;
void *p;

p = &tcp_info.tcpi_last_data_recv;
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

$as_echo "#define HAVE_TCP_INFO_TCPI_LAST_DATA_RECV 1" >>confdefs.h

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&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
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tcp_info value tcpi_last_data_sent" >&5
$as_echo_n "checking for tcp_info value tcpi_last_data_sent... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
int
main ()
{


struct tcp_info tcp_info;
void *p;

p = &tcp_info.tcpi_last_data_sent;
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

$as_echo "#define HAVE_TCP_INFO_TCPI_LAST_DATA_SENT 1" >>confdefs.h

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&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
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tcp_info value tcpi_lost" >&5
$as_echo_n "checking for tcp_info value tcpi_lost... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
int
main ()
{


struct tcp_info tcp_info;
void *p;

p = &tcp_info.tcpi_lost;
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

$as_echo "#define HAVE_TCP_INFO_TCPI_LOST 1" >>confdefs.h

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&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
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tcp_info value tcpi_pmtu" >&5
$as_echo_n "checking for tcp_info value tcpi_pmtu... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
int
main ()
{


struct tcp_info tcp_info;
void *p;

p = &tcp_info.tcpi_pmtu;
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

$as_echo "#define HAVE_TCP_INFO_TCPI_PMTU 1" >>confdefs.h

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&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
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tcp_info value tcpi_probes" >&5
$as_echo_n "checking for tcp_info value tcpi_probes... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
int
main ()
{


struct tcp_info tcp_info;
void *p;

p = &tcp_info.tcpi_probes;
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

$as_echo "#define HAVE_TCP_INFO_TCPI_PROBES 1" >>confdefs.h

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&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
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tcp_info value tcpi_rcv_rtt" >&5
$as_echo_n "checking for tcp_info value tcpi_rcv_rtt... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
int
main ()
{


struct tcp_info tcp_info;
void *p;

p = &tcp_info.tcpi_rcv_rtt;
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

$as_echo "#define HAVE_TCP_INFO_TCPI_RCV_RTT 1" >>confdefs.h

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&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
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tcp_info value tcpi_rcv_ssthresh" >&5
$as_echo_n "checking for tcp_info value tcpi_rcv_ssthresh... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
int
main ()
{


struct tcp_info tcp_info;
void *p;

p = &tcp_info.tcpi_rcv_ssthresh;
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

$as_echo "#define HAVE_TCP_INFO_TCPI_RCV_SSTHRESH 1" >>confdefs.h

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&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
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tcp_info value tcpi_reordering" >&5
$as_echo_n "checking for tcp_info value tcpi_reordering... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
int
main ()
{


struct tcp_info tcp_info;
void *p;

p = &tcp_info.tcpi_reordering;
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

$as_echo "#define HAVE_TCP_INFO_TCPI_REORDERING 1" >>confdefs.h

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&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
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tcp_info value tcpi_retrans" >&5
$as_echo_n "checking for tcp_info value tcpi_retrans... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
int
main ()
{


struct tcp_info tcp_info;
void *p;

p = &tcp_info.tcpi_retrans;
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

$as_echo "#define HAVE_TCP_INFO_TCPI_RETRANS 1" >>confdefs.h

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&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
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tcp_info value tcpi_retransmits" >&5
$as_echo_n "checking for tcp_info value tcpi_retransmits... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
int
main ()
{


struct tcp_info tcp_info;
void *p;

p = &tcp_info.tcpi_retransmits;
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

$as_echo "#define HAVE_TCP_INFO_TCPI_RETRANSMITS 1" >>confdefs.h

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&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
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tcp_info value tcpi_sacked" >&5
$as_echo_n "checking for tcp_info value tcpi_sacked... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
int
main ()
{


struct tcp_info tcp_info;
void *p;

p = &tcp_info.tcpi_sacked;
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

$as_echo "#define HAVE_TCP_INFO_TCPI_SACKED 1" >>confdefs.h

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&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
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tcp_info value tcpi_unacked" >&5
$as_echo_n "checking for tcp_info value tcpi_unacked... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
int
main ()
{


struct tcp_info tcp_info;
void *p;

p = &tcp_info.tcpi_unacked;
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

$as_echo "#define HAVE_TCP_INFO_TCPI_UNACKED 1" >>confdefs.h

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&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
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest*


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether <sys/types.h> defines inline" >&5
$as_echo_n "checking whether <sys/types.h> defines inline... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#ifdef inline
yes
#endif

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "yes" >/dev/null 2>&1; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
    check_inline="yes"
fi
rm -f conftest*

if test x"${check_inline}" = xyes; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5
$as_echo_n "checking for inline... " >&6; }
if ${ac_cv_c_inline+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_cv_c_inline=no
for ac_kw in inline __inline__ __inline; do
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#ifndef __cplusplus
typedef int foo_t;
static $ac_kw foo_t static_foo () {return 0; }
$ac_kw foo_t foo () {return 0; }
#endif

_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  ac_cv_c_inline=$ac_kw
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
  test "$ac_cv_c_inline" != no && break
done

fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5
$as_echo "$ac_cv_c_inline" >&6; }

case $ac_cv_c_inline in
  inline | yes) ;;
  *)
    case $ac_cv_c_inline in
      no) ac_val=;;
      *) ac_val=$ac_cv_c_inline;;
    esac
    cat >>confdefs.h <<_ACEOF
#ifndef __cplusplus
#define inline $ac_val
#endif
_ACEOF
    ;;
esac

fi

{ $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 ${ac_cv_type_uid_t+:} false; then :
  $as_echo_n "(cached) " >&6
else
  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

fi

ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default"
if test "x$ac_cv_type_off_t" = xyes; then :

else

cat >>confdefs.h <<_ACEOF
#define off_t long int
_ACEOF

fi

ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default"
if test "x$ac_cv_type_pid_t" = xyes; then :

else

cat >>confdefs.h <<_ACEOF
#define pid_t int
_ACEOF

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" = xyes; then :

else

cat >>confdefs.h <<_ACEOF
#define size_t unsigned int
_ACEOF

fi

{ $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 ${ac_cv_header_time+:} false; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* 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
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


# Check whether --enable-largefile was given.
if test "${enable_largefile+set}" = set; then :
  enableval=$enable_largefile;
fi

if test "$enable_largefile" != no; then

  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5
$as_echo_n "checking for special C compiler options needed for large files... " >&6; }
if ${ac_cv_sys_largefile_CC+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_cv_sys_largefile_CC=no
     if test "$GCC" != yes; then
       ac_save_CC=$CC
       while :; do
	 # IRIX 6.2 and later do not support large files by default,
	 # so use the C compiler's -n32 option if that helps.
	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <sys/types.h>
 /* Check that off_t can represent 2**63 - 1 correctly.
    We can't simply define LARGE_OFF_T to be 9223372036854775807,
    since some C++ compilers masquerading as C compilers
    incorrectly reject 9223372036854775807.  */
#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
		       && LARGE_OFF_T % 2147483647 == 1)
		      ? 1 : -1];
int
main ()
{

  ;
  return 0;
}
_ACEOF
	 if ac_fn_c_try_compile "$LINENO"; then :
  break
fi
rm -f core conftest.err conftest.$ac_objext
	 CC="$CC -n32"
	 if ac_fn_c_try_compile "$LINENO"; then :
  ac_cv_sys_largefile_CC=' -n32'; break
fi
rm -f core conftest.err conftest.$ac_objext
	 break
       done
       CC=$ac_save_CC
       rm -f conftest.$ac_ext
    fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5
$as_echo "$ac_cv_sys_largefile_CC" >&6; }
  if test "$ac_cv_sys_largefile_CC" != no; then
    CC=$CC$ac_cv_sys_largefile_CC
  fi

  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5
$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; }
if ${ac_cv_sys_file_offset_bits+:} false; then :
  $as_echo_n "(cached) " >&6
else
  while :; do
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <sys/types.h>
 /* Check that off_t can represent 2**63 - 1 correctly.
    We can't simply define LARGE_OFF_T to be 9223372036854775807,
    since some C++ compilers masquerading as C compilers
    incorrectly reject 9223372036854775807.  */
#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
		       && LARGE_OFF_T % 2147483647 == 1)
		      ? 1 : -1];
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  ac_cv_sys_file_offset_bits=no; break
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#define _FILE_OFFSET_BITS 64
#include <sys/types.h>
 /* Check that off_t can represent 2**63 - 1 correctly.
    We can't simply define LARGE_OFF_T to be 9223372036854775807,
    since some C++ compilers masquerading as C compilers
    incorrectly reject 9223372036854775807.  */
#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
		       && LARGE_OFF_T % 2147483647 == 1)
		      ? 1 : -1];
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  ac_cv_sys_file_offset_bits=64; break
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
  ac_cv_sys_file_offset_bits=unknown
  break
done
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5
$as_echo "$ac_cv_sys_file_offset_bits" >&6; }
case $ac_cv_sys_file_offset_bits in #(
  no | unknown) ;;
  *)
cat >>confdefs.h <<_ACEOF
#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits
_ACEOF
;;
esac
rm -rf conftest*
  if test $ac_cv_sys_file_offset_bits = unknown; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5
$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; }
if ${ac_cv_sys_large_files+:} false; then :
  $as_echo_n "(cached) " >&6
else
  while :; do
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <sys/types.h>
 /* Check that off_t can represent 2**63 - 1 correctly.
    We can't simply define LARGE_OFF_T to be 9223372036854775807,
    since some C++ compilers masquerading as C compilers
    incorrectly reject 9223372036854775807.  */
#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
		       && LARGE_OFF_T % 2147483647 == 1)
		      ? 1 : -1];
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  ac_cv_sys_large_files=no; break
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#define _LARGE_FILES 1
#include <sys/types.h>
 /* Check that off_t can represent 2**63 - 1 correctly.
    We can't simply define LARGE_OFF_T to be 9223372036854775807,
    since some C++ compilers masquerading as C compilers
    incorrectly reject 9223372036854775807.  */
#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
		       && LARGE_OFF_T % 2147483647 == 1)
		      ? 1 : -1];
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  ac_cv_sys_large_files=1; break
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
  ac_cv_sys_large_files=unknown
  break
done
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5
$as_echo "$ac_cv_sys_large_files" >&6; }
case $ac_cv_sys_large_files in #(
  no | unknown) ;;
  *)
cat >>confdefs.h <<_ACEOF
#define _LARGE_FILES $ac_cv_sys_large_files
_ACEOF
;;
esac
rm -rf conftest*
  fi


fi


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for in6_addr" >&5
$as_echo_n "checking for in6_addr... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>

int
main ()
{

struct in6_addr sin6;

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

$as_echo "#define HAVE_IN6_ADDR 1" >>confdefs.h

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

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking to see if openlog accepts LOG_PERROR" >&5
$as_echo_n "checking to see if openlog accepts LOG_PERROR... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <syslog.h>
#ifdef LOG_PERROR
yes
#endif

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "yes" >/dev/null 2>&1; then :

$as_echo "#define HAVE_OPENLOG_LOG_PERROR 1" >>confdefs.h

    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest*


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking to see if stdlib.h defines EXIT_FAILURE" >&5
$as_echo_n "checking to see if stdlib.h defines EXIT_FAILURE... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <stdlib.h>
#ifdef EXIT_FAILURE
yes
#endif

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "yes" >/dev/null 2>&1; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
else

$as_echo "#define NEED_EXIT_FAILURE 1" >>confdefs.h

    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest*


#XXX actually checks if AF_UNIX should be used instead of AF_LOCAL
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether <sys/socket.h> uses AF_UNIX" >&5
$as_echo_n "checking whether <sys/socket.h> uses AF_UNIX... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#ifdef AF_LOCAL
#else
#ifdef AF_UNIX
yes
#endif
#endif

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "yes" >/dev/null 2>&1; then :

$as_echo "#define NEED_AF_LOCAL 1" >>confdefs.h

    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest*


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SIGINFO" >&5
$as_echo_n "checking for SIGINFO... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <signal.h>
#ifdef SIGINFO
yes
#endif

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "yes" >/dev/null 2>&1; then :

$as_echo "#define HAVE_SIGNAL_SIGINFO 1" >>confdefs.h

    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest*


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking to see if MSG_WAITALL exists" >&5
$as_echo_n "checking to see if MSG_WAITALL exists... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/socket.h>
#ifdef MSG_WAITALL
yes
#endif

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "yes" >/dev/null 2>&1; then :

$as_echo "#define HAVE_MSG_WAITALL 1" >>confdefs.h

    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest*


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether realloc with a NULL pointer calls malloc" >&5
$as_echo_n "checking whether realloc with a NULL pointer calls malloc... " >&6; }
if test "$cross_compiling" = yes; then :

$as_echo "#define HAVE_NOMALLOC_REALLOC 1" >>confdefs.h

     { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <stdlib.h>
#ifndef NULL
#define NULL (char *)0
#endif

int main()
{
	/* will assume this test doesn\'t fail because of lack of memory */
	if (realloc(NULL, 1) == NULL)
		return 1;
	else
		return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
else

$as_echo "#define HAVE_NOMALLOC_REALLOC 1" >>confdefs.h

     { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi


# AC_MSG_CHECKING([whether free can be called with NULL])
# AC_TRY_RUN([
# #include <stdlib.h>
# #ifndef NULL
# #define NULL (char *)0
# #endif

# int main()
# {
#	/* will assume core dump/seg fault if it doesn\'t work */
#	free(NULL);
#	return 0;
# }], [AC_MSG_RESULT(yes)],
#     [AC_DEFINE(HAVE_NONULL_FREE, 1, [free does not accept NULL parameter])
#      AC_MSG_RESULT(no)],
#     [dnl assume NULL is not accepted when cross-compiling
#      AC_DEFINE(HAVE_NONULL_FREE, 1, [free does not accept NULL parameter])
#      AC_MSG_RESULT(no)])
#XXX always set for now

$as_echo "#define HAVE_NONULL_FREE 1" >>confdefs.h


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if getsockopt needs cast" >&5
$as_echo_n "checking if getsockopt needs cast... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
int getsockopt(int, int, int, char *, int *);

int
main ()
{
 1
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

$as_echo "#define NEED_GETSOCKOPT_CAST 1" >>confdefs.h

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&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

#include both <sys/ioctl.h> and <sys/sockio.h>?
if test x$have_sys_sockio_h = xt; then
	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking to see if <sys/sockio.h> should be included" >&5
$as_echo_n "checking to see if <sys/sockio.h> should be included... " >&6; }
	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/ioctl.h>
#ifdef SIOCATMARK
#else
#include <sys/sockio.h>
#ifdef SIOCATMARK
yes
#endif
#endif

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "yes" >/dev/null 2>&1; then :

$as_echo "#define NEED_SYS_SOCKIO_H 1" >>confdefs.h

    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest*

fi

#XXX should be more generic, check if nonexistent
#SV_INTERRUPT, but not SA_RESTART defined?
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking to see if SV_INTERRUPT should be used" >&5
$as_echo_n "checking to see if SV_INTERRUPT should be used... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <signal.h>
#ifdef SA_RESTART
#else
# ifdef SV_INTERRUPT
yes
# endif
#endif

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "yes" >/dev/null 2>&1; then :

$as_echo "#define NEED_SA_RESTART 1" >>confdefs.h

    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest*


#XXX seems to be supported on Solaris2.6, but there might be some
#defines that need to be set (should _XOPEN_SOURCE be defined on all
#platforms?)
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if cmsghdr exists in <sys/socket.h>" >&5
$as_echo_n "checking if cmsghdr exists in <sys/socket.h>... " >&6; }
case $host in
    *)
	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>

int
main ()
{
struct cmsghdr foo = {1,1,1};
 struct msghdr bar;
 foo.cmsg_len = 0;
 foo.cmsg_type = SCM_RIGHTS;
 foo.cmsg_level = SOL_SOCKET;
 bar.msg_controllen = 1;

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

$as_echo "#define HAVE_CMSGHDR 1" >>confdefs.h

    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&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
	;;
esac

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CMSG_SPACE in sys/socket.h" >&5
$as_echo_n "checking for CMSG_SPACE in sys/socket.h... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>

int
main ()
{
int d = CMSG_SPACE(4);
   return 0;

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

$as_echo "#define HAVE_CMSG_SPACE 1" >>confdefs.h

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_exeext conftest.$ac_ext

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CMSG_LEN in sys/socket.h" >&5
$as_echo_n "checking for CMSG_LEN in sys/socket.h... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>

int
main ()
{
int d = CMSG_LEN(4);
    return 0;

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

$as_echo "#define HAVE_CMSG_LEN 1" >>confdefs.h

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_exeext conftest.$ac_ext

unset have_sa_len
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sa_len in sockaddr" >&5
$as_echo_n "checking for sa_len in sockaddr... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>

int
main ()
{
struct sockaddr sa;
sa.sa_len = 0;

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

$as_echo "#define HAVE_SOCKADDR_SA_LEN 1" >>confdefs.h

    have_sa_len=t
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&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

if test x"${have_sa_len}" != x; then
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sa_len type" >&5
$as_echo_n "checking for sa_len type... " >&6; }
   oCFLAGS="$CFLAGS"
   CFLAGS="$CFLAGS${CFLAGS:+ }$FAILWARN"
   unset sa_len_type_found
   for type in uint8_t "unsigned char"; do
       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
int
main ()
{

struct sockaddr sa;
$type *sa_len_ptr;
sa_len_ptr = &sa.sa_len;
sa_len_ptr++; /* use to avoid warning/error */
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define sa_len_type $type
_ACEOF

        sa_len_type_found=t
        break
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
   done
   CFLAGS="$oCFLAGS"

   if test x"${sa_len_type_found}" != x; then
       { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
   else
       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to obtain sa_len type, exiting" >&5
$as_echo "$as_me: WARNING: unable to obtain sa_len type, exiting" >&2;}
       exit 1
   fi
else

$as_echo "#define sa_len_type socklen_t" >>confdefs.h

fi

unset have_ss_len
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sockaddr_storage ss_len in sockaddr" >&5
$as_echo_n "checking for sockaddr_storage ss_len in sockaddr... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>

int
main ()
{
struct sockaddr_storage ss;
ss.ss_len = 0;

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

$as_echo "#define HAVE_SOCKADDR_STORAGE_SS_LEN 1" >>confdefs.h

    have_ss_len=t
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&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

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __res_state options type" >&5
$as_echo_n "checking for __res_state options type... " >&6; }
oCFLAGS="$CFLAGS"
CFLAGS="$CFLAGS${CFLAGS:+ }$FAILWARN"
unset res_options_type_found
for type in "unsigned int" u_long; do
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <netinet/in.h>
#include <arpa/nameser.h>
#include <resolv.h>
int
main ()
{

struct __res_state res;
$type *res_options_ptr;
res_options_ptr = &res.options;
res_options_ptr++;
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define res_options_type_t $type
_ACEOF

     res_options_type_found=t
     break
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
done
CFLAGS="$oCFLAGS"
if test x"${res_options_type_found}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to obtain __res_state options type, setting to unsigned long" >&5
$as_echo "$as_me: WARNING: unable to obtain __res_state options type, setting to unsigned long" >&2;}

cat >>confdefs.h <<_ACEOF
#define res_options_type_t unsigned long
_ACEOF

fi

#AIX 6.1 needs sys/select.h, but can be problematic on other platforms
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if sys/select.h is needed" >&5
$as_echo_n "checking if sys/select.h is needed... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/time.h>
#include <string.h>
#include <unistd.h>

int
main ()
{
fd_set *fdp;
    size_t p;
    fdp = NULL;
    p = NFDBITS * sizeof(fd_mask);

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
else
      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/time.h>
#include <sys/select.h>
#include <string.h>
#include <unistd.h>

int
main ()
{
fd_set *fdp;
    size_t p;
    fdp = NULL;
    p = NFDBITS * sizeof(fd_mask);
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

$as_echo "#define HAVE_SYS_SELECT_H 1" >>confdefs.h

     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&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
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking to see if malloc_options exists" >&5
$as_echo_n "checking to see if malloc_options exists... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
extern char *malloc_options;
int
main ()
{
 malloc_options = 0;
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :

$as_echo "#define HAVE_MALLOC_OPTIONS 1" >>confdefs.h

 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&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_exeext conftest.$ac_ext

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking to see if __progname exists" >&5
$as_echo_n "checking to see if __progname exists... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
extern char *__progname;
int
main ()
{
 __progname = 0;
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :

$as_echo "#define HAVE_PROGNAME 1" >>confdefs.h

 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&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_exeext conftest.$ac_ext

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing crypt" >&5
$as_echo_n "checking for library containing crypt... " >&6; }
if ${ac_cv_search_crypt+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* 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 '' 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 ${ac_cv_search_crypt+:} false; then :
  break
fi
done
if ${ac_cv_search_crypt+:} false; then :

else
  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"

fi


#HP-UX 11.00
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing getspnam" >&5
$as_echo_n "checking for library containing getspnam... " >&6; }
if ${ac_cv_search_getspnam+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* 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 getspnam ();
int
main ()
{
return getspnam ();
  ;
  return 0;
}
_ACEOF
for ac_lib in '' sec; 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_getspnam=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext
  if ${ac_cv_search_getspnam+:} false; then :
  break
fi
done
if ${ac_cv_search_getspnam+:} false; then :

else
  ac_cv_search_getspnam=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_getspnam" >&5
$as_echo "$ac_cv_search_getspnam" >&6; }
ac_res=$ac_cv_search_getspnam
if test "$ac_res" != no; then :
  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"

fi


#FreeBSD has setproctitle in -lutil
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing setproctitle" >&5
$as_echo_n "checking for library containing setproctitle... " >&6; }
if ${ac_cv_search_setproctitle+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* 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 setproctitle ();
int
main ()
{
return setproctitle ();
  ;
  return 0;
}
_ACEOF
for ac_lib in '' util; 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_setproctitle=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext
  if ${ac_cv_search_setproctitle+:} false; then :
  break
fi
done
if ${ac_cv_search_setproctitle+:} false; then :

else
  ac_cv_search_setproctitle=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_setproctitle" >&5
$as_echo "$ac_cv_search_setproctitle" >&6; }
ac_res=$ac_cv_search_setproctitle
if test "$ac_res" != no; then :
  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"

fi


#expected select behavior?
unset nb_select_err
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for expected select behaviour" >&5
$as_echo_n "checking for expected select behaviour... " >&6; }
if test "$cross_compiling" = yes; then :
       { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/*
 * ftp.inet.no:/pub/home/michaels/stuff/socket-select.c
 * $ cc socket-select.c && uname -a && ./a.out
 *
 * Thanks to Eric Anderson <anderse@hpl.hp.com>.
 *
*/

#include <sys/types.h>
#include <sys/time.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>

#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
#include <fcntl.h>

#define BLOCKING(b)	(b ? ("blocking") : ("non-blocking"))

static int selectcheck(int s);
static int dotests(int s, int blocking);

int
main(void)
{
	int s, p;
	struct sigaction sigact;

	sigemptyset(&sigact.sa_mask);
	sigact.sa_handler = SIG_IGN;
	sigact.sa_flags	= 0;
	if (sigaction(SIGPIPE, &sigact, NULL) != 0) {
		perror("sigaction()");
		exit(1);
	}

	if ((s = socket(AF_INET, SOCK_STREAM, 0)) == -1) {
		perror("socket()");
		exit(1);
	}

	if ((p = fcntl(s, F_GETFL, 0)) == -1
	|| fcntl(s, F_SETFL, p | O_NONBLOCK) == -1) {
		perror("fcntl()");
	   exit(1);
	}

	p = dotests(s, 0);
	close(s);

	return p;
}


static int
dotests(s, blocking)
	int s;
	int blocking;
{
	int p, rc;
	struct sockaddr_in addr;

	fprintf(stderr, "testing with %s, bound, socket:\n", BLOCKING(blocking));
	bzero(&addr, sizeof(addr));
	addr.sin_family		= AF_INET;
	addr.sin_addr.s_addr = htonl(INADDR_ANY);
	addr.sin_port			= htons(0);

	/* LINTED pointer casts may be troublesome */
	if (bind(s, (struct sockaddr *)&addr, sizeof(addr)) != 0) {
		perror("running Linux? bind()");
		exit(1);
	}

	fprintf(stderr, "\tselect() returned %d\n", selectcheck(s));
	p = read(s, NULL, 0);
	fprintf(stderr, "\tread() returned %d, errno = %d (%s)\n",
	p, errno, (strerror(errno)));
	p = write(s, &s, sizeof(s));
	fprintf(stderr, "\twrite() returned %d, errno = %d (%s)\n",
	p, errno, (strerror(errno)));

	fprintf(stderr, "testing with %s, bound, listening, socket:\n", BLOCKING(blocking));
	if (listen(s, 1) != 0) {
		perror("listen()");
		exit(1);
	}
	fprintf(stderr, "\tselect() returned %d\n", rc = selectcheck(s));
	p = read(s, NULL, 0);
	fprintf(stderr, "\tread() returned %d, errno = %d (%s)\n",
	p, errno, (strerror(errno)));
	p = write(s, &s, sizeof(s));
	fprintf(stderr, "\twrite() returned %d, errno = %d (%s)\n",
	p, errno, (strerror(errno)));

	return rc;
}

static int
selectcheck(s)
	int s;
{
	fd_set rset, wset, xset;
	struct timeval timeout;
	int ret;

	FD_ZERO(&rset);
	FD_SET(s, &rset);
	wset = xset = rset;

	timeout.tv_sec		= 0;
	timeout.tv_usec	= 0;

	errno = 0;
	ret = select(s + 1, &rset, &wset, &xset, &timeout);

	if (FD_ISSET(s, &rset))
	    fprintf(stderr, "\tsocket is readable\n");

	if (FD_ISSET(s, &wset))
	    fprintf(stderr, "\tsocket is writeable\n");

	if (FD_ISSET(s, &xset))
	    fprintf(stderr, "\tsocket has an exception pending\n");

	return ret;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
     nb_select_err=t
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi


if test x"${nb_select_err}" = xt; then
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: socksify operations on nonblocking sockets might fail on this platform" >&5
$as_echo "$as_me: WARNING: socksify operations on nonblocking sockets might fail on this platform" >&2;}
fi

#Linux (RedHat 5.2) defines socklen_t in <socketbits.h>, which is
#included by <sys/socket.h>.  check for this first.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for socklen_t" >&5
$as_echo_n "checking for socklen_t... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>

int
main ()
{
socklen_t foo = 1;
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
    socklen_found=t
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
    socklen_found=""
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext


if test x"$socklen_found" = x; then
    case $host in
	alpha*-dec-osf* | *-*-aix*)
	    $as_echo "#define socklen_t size_t" >>confdefs.h

	    ;;

	*)
	    $as_echo "#define socklen_t int" >>confdefs.h

	    ;;
    esac
fi

#sig_atomic_t
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sig_atomic_t in <signal.h>" >&5
$as_echo_n "checking for sig_atomic_t in <signal.h>... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <signal.h>

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "sig_atomic_t" >/dev/null 2>&1; then :

$as_echo "#define HAVE_SIG_ATOMIC_T 1" >>confdefs.h

    case $host in
	*-*-aix*)

$as_echo "#define HAVE_VOLATILE_SIG_ATOMIC_T 1" >>confdefs.h

	;;
    esac
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest*


#try to identify number of valid signal values
SIGDEFAULT=128
unset sigmax
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for number of valid signal values" >&5
$as_echo_n "checking for number of valid signal values... " >&6; }
if test "$cross_compiling" = yes; then :
   sigmax=128
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: cross-compiling, setting to $sigmax" >&5
$as_echo "cross-compiling, setting to $sigmax" >&6; }

else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <signal.h>
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
   FILE *fp;
   int minval = 0;
   int i;

   for (i = 1; i < 1000; i++) {
      if (i == SIGKILL || i == SIGSTOP)
         continue;
      if (signal(i, SIG_DFL) == SIG_ERR) {
         perror("signal");
         break;
      }
   }
   minval = i;
   fprintf(stderr, "notice: signal() based value: %d\n", minval);

#ifdef NSIG
   if (NSIG > minval) {
      minval = NSIG;
      fprintf(stderr, "notice: NSIG based value: %d\n", minval);
   }
#endif /* NSIG */

#ifdef SIGRTMAX
   /* note: this value might be changed at runtime (e.g., Linux) */
   if (SIGRTMAX > minval) {
      minval = SIGRTMAX;
      fprintf(stderr, "notice: SIGRTMAX based value: %d\n", minval);
   }
#endif /* SIGRTMAX */

   /* get base 2 value */
   for (i = 0; i < 10; i++) {
      int n = 1 << i;
      if (n > minval) {
         minval = n;
         fprintf(stderr, "notice: base 2 based increase: %d\n", minval);
	 break;
      }
   }

   fprintf(stderr, "notice: setting signal max value to %d\n", minval);
   if ((fp = fopen("conftest.out", "w")) == NULL) {
      perror("fopen");
      exit(1);
   }
   /* write zero for no special handling needed */
   fprintf(fp, "%ld\n", minval);
   fclose(fp);
   exit(0);

   return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
  sigmax=`test -s conftest.out && cat conftest.out`
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi

if test x"$sigmax" = x; then
   sigmax=$SIGDEFAULT
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: got no value, setting to $sigmax" >&5
$as_echo "got no value, setting to $sigmax" >&6; }
else
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: setting to $sigmax" >&5
$as_echo "setting to $sigmax" >&6; }
fi

cat >>confdefs.h <<_ACEOF
#define SOCKS_NSIG $sigmax
_ACEOF


ac_fn_c_check_type "$LINENO" "int8_t" "ac_cv_type_int8_t" "
#include <sys/types.h>
#include <netinet/in.h>

"
if test "x$ac_cv_type_int8_t" = xyes; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_INT8_T 1
_ACEOF


fi
ac_fn_c_check_type "$LINENO" "int16_t" "ac_cv_type_int16_t" "
#include <sys/types.h>
#include <netinet/in.h>

"
if test "x$ac_cv_type_int16_t" = xyes; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_INT16_T 1
_ACEOF


fi
ac_fn_c_check_type "$LINENO" "int32_t" "ac_cv_type_int32_t" "
#include <sys/types.h>
#include <netinet/in.h>

"
if test "x$ac_cv_type_int32_t" = xyes; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_INT32_T 1
_ACEOF


fi
ac_fn_c_check_type "$LINENO" "uint8_t" "ac_cv_type_uint8_t" "
#include <sys/types.h>
#include <netinet/in.h>

"
if test "x$ac_cv_type_uint8_t" = xyes; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_UINT8_T 1
_ACEOF


fi
ac_fn_c_check_type "$LINENO" "uint16_t" "ac_cv_type_uint16_t" "
#include <sys/types.h>
#include <netinet/in.h>

"
if test "x$ac_cv_type_uint16_t" = xyes; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_UINT16_T 1
_ACEOF


fi
ac_fn_c_check_type "$LINENO" "uint32_t" "ac_cv_type_uint32_t" "
#include <sys/types.h>
#include <netinet/in.h>

"
if test "x$ac_cv_type_uint32_t" = xyes; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_UINT32_T 1
_ACEOF


fi
ac_fn_c_check_type "$LINENO" "in_port_t" "ac_cv_type_in_port_t" "
#include <sys/types.h>
#include <netinet/in.h>

"
if test "x$ac_cv_type_in_port_t" = xyes; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_IN_PORT_T 1
_ACEOF


fi
ac_fn_c_check_type "$LINENO" "in_addr_t" "ac_cv_type_in_addr_t" "
#include <sys/types.h>
#include <netinet/in.h>

"
if test "x$ac_cv_type_in_addr_t" = xyes; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_IN_ADDR_T 1
_ACEOF


fi

ac_fn_c_check_type "$LINENO" "ssize_t" "ac_cv_type_ssize_t" "$ac_includes_default"
if test "x$ac_cv_type_ssize_t" = xyes; then :

else

cat >>confdefs.h <<_ACEOF
#define ssize_t int
_ACEOF

fi


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working memcmp" >&5
$as_echo_n "checking for working memcmp... " >&6; }
if ${ac_cv_func_memcmp_working+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if test "$cross_compiling" = yes; then :
  ac_cv_func_memcmp_working=no
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
$ac_includes_default
int
main ()
{

  /* Some versions of memcmp are not 8-bit clean.  */
  char c0 = '\100', c1 = '\200', c2 = '\201';
  if (memcmp(&c0, &c2, 1) >= 0 || memcmp(&c1, &c2, 1) >= 0)
    return 1;

  /* The Next x86 OpenStep bug shows up only when comparing 16 bytes
     or more and with at least one buffer not starting on a 4-byte boundary.
     William Lewis provided this test program.   */
  {
    char foo[21];
    char bar[21];
    int i;
    for (i = 0; i < 4; i++)
      {
	char *a = foo + i;
	char *b = bar + i;
	strcpy (a, "--------01111111");
	strcpy (b, "--------10000000");
	if (memcmp (a, b, 16) >= 0)
	  return 1;
      }
    return 0;
  }

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
  ac_cv_func_memcmp_working=yes
else
  ac_cv_func_memcmp_working=no
fi
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:${as_lineno-$LINENO}: result: $ac_cv_func_memcmp_working" >&5
$as_echo "$ac_cv_func_memcmp_working" >&6; }
test $ac_cv_func_memcmp_working = no && case " $LIBOBJS " in
  *" memcmp.$ac_objext "* ) ;;
  *) LIBOBJS="$LIBOBJS memcmp.$ac_objext"
 ;;
esac


if ${ac_cv_func_setvbuf_reversed+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_cv_func_setvbuf_reversed=no
fi


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking return type of signal handlers" >&5
$as_echo_n "checking return type of signal handlers... " >&6; }
if ${ac_cv_type_signal+:} false; then :
  $as_echo_n "(cached) " >&6
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <sys/types.h>
#include <signal.h>

int
main ()
{
return *(signal (0, 0)) (0) == 1;
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  ac_cv_type_signal=int
else
  ac_cv_type_signal=void
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_signal" >&5
$as_echo "$ac_cv_type_signal" >&6; }

cat >>confdefs.h <<_ACEOF
#define RETSIGTYPE $ac_cv_type_signal
_ACEOF


for ac_func in strftime
do :
  ac_fn_c_check_func "$LINENO" "strftime" "ac_cv_func_strftime"
if test "x$ac_cv_func_strftime" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_STRFTIME 1
_ACEOF

else
  # strftime is in -lintl on SCO UNIX.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for strftime in -lintl" >&5
$as_echo_n "checking for strftime in -lintl... " >&6; }
if ${ac_cv_lib_intl_strftime+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lintl  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* 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 strftime ();
int
main ()
{
return strftime ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_intl_strftime=yes
else
  ac_cv_lib_intl_strftime=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_intl_strftime" >&5
$as_echo "$ac_cv_lib_intl_strftime" >&6; }
if test "x$ac_cv_lib_intl_strftime" = xyes; then :
  $as_echo "#define HAVE_STRFTIME 1" >>confdefs.h

LIBS="-lintl $LIBS"
fi

fi
done




  for ac_header in $ac_header_list
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
"
if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
  cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF

fi

done




{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether utime accepts a null argument" >&5
$as_echo_n "checking whether utime accepts a null argument... " >&6; }
if ${ac_cv_func_utime_null+:} false; then :
  $as_echo_n "(cached) " >&6
else
  rm -f conftest.data; >conftest.data
# Sequent interprets utime(file, 0) to mean use start of epoch.  Wrong.
if test "$cross_compiling" = yes; then :
  ac_cv_func_utime_null='guessing yes'
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
$ac_includes_default
	       #ifdef HAVE_UTIME_H
	       # include <utime.h>
	       #endif
int
main ()
{
struct stat s, t;
  return ! (stat ("conftest.data", &s) == 0
	    && utime ("conftest.data", 0) == 0
	    && stat ("conftest.data", &t) == 0
	    && t.st_mtime >= s.st_mtime
	    && t.st_mtime - s.st_mtime < 120);
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
  ac_cv_func_utime_null=yes
else
  ac_cv_func_utime_null=no
fi
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:${as_lineno-$LINENO}: result: $ac_cv_func_utime_null" >&5
$as_echo "$ac_cv_func_utime_null" >&6; }
if test "x$ac_cv_func_utime_null" != xno; then
  ac_cv_func_utime_null=yes

$as_echo "#define HAVE_UTIME_NULL 1" >>confdefs.h

fi
rm -f conftest.data

for ac_func in vprintf
do :
  ac_fn_c_check_func "$LINENO" "vprintf" "ac_cv_func_vprintf"
if test "x$ac_cv_func_vprintf" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_VPRINTF 1
_ACEOF

ac_fn_c_check_func "$LINENO" "_doprnt" "ac_cv_func__doprnt"
if test "x$ac_cv_func__doprnt" = xyes; then :

$as_echo "#define HAVE_DOPRNT 1" >>confdefs.h

fi

fi
done



#doesn't work if test links with -lsocket (Solaris)
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing inet_addr" >&5
$as_echo_n "checking for library containing inet_addr... " >&6; }
if ${ac_cv_search_inet_addr+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* 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 inet_addr ();
int
main ()
{
return inet_addr ();
  ;
  return 0;
}
_ACEOF
for ac_lib in '' nsl; 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_inet_addr=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext
  if ${ac_cv_search_inet_addr+:} false; then :
  break
fi
done
if ${ac_cv_search_inet_addr+:} false; then :

else
  ac_cv_search_inet_addr=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_inet_addr" >&5
$as_echo "$ac_cv_search_inet_addr" >&6; }
ac_res=$ac_cv_search_inet_addr
if test "$ac_res" != no; then :
  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"

fi


#NOTE: also test for -lsocket in preload.m4. not really needed there
#      as check is also done here (for checks such as L_PIPETYPE() that
#      might need to link with -lsocket, but also having test there makes
#      code in that file easier to read.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing getsockopt" >&5
$as_echo_n "checking for library containing getsockopt... " >&6; }
if ${ac_cv_search_getsockopt+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* 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 getsockopt ();
int
main ()
{
return getsockopt ();
  ;
  return 0;
}
_ACEOF
for ac_lib in '' socket; 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_getsockopt=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext
  if ${ac_cv_search_getsockopt+:} false; then :
  break
fi
done
if ${ac_cv_search_getsockopt+:} false; then :

else
  ac_cv_search_getsockopt=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_getsockopt" >&5
$as_echo "$ac_cv_search_getsockopt" >&6; }
ac_res=$ac_cv_search_getsockopt
if test "$ac_res" != no; then :
  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"

fi


for ac_func in getprpwnam getspnam getpwnam_shadow bindresvport
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"
if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
  cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF

fi
done

for ac_func in getpass
do :
  ac_fn_c_check_func "$LINENO" "getpass" "ac_cv_func_getpass"
if test "x$ac_cv_func_getpass" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_GETPASS 1
_ACEOF

fi
done


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for system V getpwnam" >&5
$as_echo_n "checking for system V getpwnam... " >&6; }
unset getpwnam_alt
if test x"${ac_cv_func_getprpwnam}" = xyes; then
    getpwnam_alt=t
fi

if test x"${ac_cv_func_getspnam}" = xyes; then
    getpwnam_alt=t
fi

#XXX
if test x"${getpwnam_alt}" = x; then

$as_echo "#define HAVE_WORKING_GETPWNAM 1" >>confdefs.h

    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
fi

#try to determine pipe buffer type

unset pipeside
#Some systems seem to base how much can be written to the pipe based
#on the size of the socket receive buffer (read-side), while others
#on the size of the socket send buffer (send-side).
#
#This little hack tries to make an educated guess as to what is the
#case on this particular system.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking read/send-side pipe system" >&5
$as_echo_n "checking read/send-side pipe system... " >&6; }
if test "$cross_compiling" = yes; then :
      { $as_echo "$as_me:${as_lineno-$LINENO}: result: cross-compiling" >&5
$as_echo "cross-compiling" >&6; }
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>

#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>

#ifndef MIN
#define MIN(a,b) ((a) < (b) ? (a) : (b))
#endif /* !MIN */

#if NEED_AF_LOCAL
#define AF_LOCAL AF_UNIX
#endif /* NEED_AF_LOCAL */

#define PACKETSIZE  (1024)

#define PADBYTES    (sizeof(short) * (64))
/*
 * Just a wild guess.  Dante uses sizeof(long).
 */

#define SEND_PIPE   (0)
#define RECV_PIPE   (1)

#define EXIT_OK      (0) /* type successfully determined */
#define EXIT_UNKNOWN (1) /* error: unable to determine type */

static void
setsockets(const int doreverse, const size_t packetsize,
           const int s, const int r,
           int *sndbuf, int *sndbuf_set,
           int *rcvbuf, int *rcvbuf_set);

static size_t
sendtest(const int s, const char *buf, const size_t buflen);

void
reswrite(const char *res);

int
main(void)
{
   size_t sent, packetcount;
   int sndbuf, sndbuf_set, rcvbuf, rcvbuf_set;
   char buf[PACKETSIZE];
   int datapipev[2];

   if (socketpair(AF_LOCAL, SOCK_DGRAM, 0, datapipev) != 0) {
      perror("socketpair()");
      exit(EXIT_UNKNOWN);
   }

   setsockets(0,
              PACKETSIZE,
              datapipev[SEND_PIPE],
              datapipev[RECV_PIPE],
              &sndbuf, &sndbuf_set,
              &rcvbuf, &rcvbuf_set);

   packetcount = MIN(sndbuf, sndbuf_set) / (PACKETSIZE + PADBYTES);

   fprintf(stderr,
           "Requested sndbuf to be %d, is %d.  "
           "Requested rcvbuf to be %d, is %d.\n"
           "Calculated packetcount is %lu\n",
           sndbuf, sndbuf_set,
           rcvbuf, rcvbuf_set,
           (unsigned long)packetcount);

   sent = sendtest(datapipev[SEND_PIPE], buf, PACKETSIZE) / PACKETSIZE;

   if (sent >= packetcount) {
      fprintf(stderr, "status determined by send-side\n");
      reswrite("sendbased");
      exit(EXIT_OK);
   }

   /*
    * Try the reverse.  Perhaps this system wants a large rcvbuf rather than
    * a large sndbuf.
    */
   close(datapipev[SEND_PIPE]);
   close(datapipev[RECV_PIPE]);

   if (socketpair(AF_LOCAL, SOCK_DGRAM, 0, datapipev) != 0) {
      perror("socketpair()");
      exit(EXIT_UNKNOWN);
   }

   setsockets(1,
              PACKETSIZE,
              datapipev[SEND_PIPE],
              datapipev[RECV_PIPE],
              &sndbuf, &sndbuf_set,
              &rcvbuf, &rcvbuf_set);

   packetcount = MIN(rcvbuf, rcvbuf_set) / (PACKETSIZE + PADBYTES);

   fprintf(stderr,
           "Requested sndbuf to be %d, is %d.  "
           "Requested rcvbuf to be %d, is %d.\n"
           "Calculated packetcount is %lu\n",
           sndbuf, sndbuf_set,
           rcvbuf, rcvbuf_set,
           (unsigned long)packetcount);

   sent = sendtest(datapipev[SEND_PIPE], buf, PACKETSIZE) / PACKETSIZE;

   if (sent >= packetcount) {
      fprintf(stderr, "status determined by read-side\n");
      reswrite("recvbased");
      exit(EXIT_OK);
   }

   fprintf(stderr, "status is unknown\n");
   return EXIT_UNKNOWN;
}

static void
setsockets(doreverse, packetsize, s, r, sndbuf, sndbuf_set, rcvbuf, rcvbuf_set)
   const int doreverse;
   const size_t packetsize;
   const int s;
   const int r;
   int *sndbuf, *sndbuf_set;
   int *rcvbuf, *rcvbuf_set;
{
   socklen_t len;
   int p;

   if ((p = fcntl(s, F_GETFL, 0))        == -1
   ||  fcntl(s, F_SETFL, p | O_NONBLOCK) == -1
   ||  fcntl(r, F_SETFL, p | O_NONBLOCK) == -1) {
      perror("fcntl(F_SETFL/F_GETFL, O_NONBLOCK) failed");
      exit(EXIT_UNKNOWN);
   }

   len = sizeof(*sndbuf_set);

   if (doreverse) {
      *sndbuf = packetsize + PADBYTES;

      if (setsockopt(s, SOL_SOCKET, SO_SNDBUF, sndbuf, sizeof(*sndbuf)) != 0) {
         perror("setsockopt(SO_SNDBUF)");
         exit(EXIT_UNKNOWN);
      }

      if (getsockopt(s, SOL_SOCKET, SO_SNDBUF, sndbuf_set, &len) != 0) {
         perror("getsockopt(SO_SNDBUF)");
         exit(EXIT_UNKNOWN);
      }

      *rcvbuf = *sndbuf_set * 10;
      if (setsockopt(r, SOL_SOCKET, SO_RCVBUF, rcvbuf, sizeof(*rcvbuf)) != 0) {
         perror("setsockopt(SO_RCVBUF)");
         exit(EXIT_UNKNOWN);
      }
   }
   else {
      *rcvbuf = packetsize + PADBYTES;

      if (setsockopt(r, SOL_SOCKET, SO_RCVBUF, rcvbuf, sizeof(*rcvbuf)) != 0) {
         perror("setsockopt(SO_RCVBUF)");
         exit(EXIT_UNKNOWN);
      }

      if (getsockopt(r, SOL_SOCKET, SO_RCVBUF, rcvbuf_set, &len) != 0) {
         perror("getsockopt(SO_RCVBUF)");
         exit(EXIT_UNKNOWN);
      }

      *sndbuf = *rcvbuf_set * 10;
      if (setsockopt(s, SOL_SOCKET, SO_SNDBUF, sndbuf, sizeof(*sndbuf)) != 0) {
         perror("setsockopt(SO_SNDBUF)");
         exit(EXIT_UNKNOWN);
      }
   }

   if (getsockopt(s, SOL_SOCKET, SO_SNDBUF, sndbuf_set, &len) != 0
   ||  getsockopt(r, SOL_SOCKET, SO_RCVBUF, rcvbuf_set, &len) != 0) {
      perror("getsockopt(SO_SNDBUF/SO_RCVBUF)");
      exit(EXIT_UNKNOWN);
   }

   fprintf(stderr, "sndbuf is %lu, rcvbuf is %lu\n",
          (unsigned long)*sndbuf_set, (unsigned long)*rcvbuf_set);

   if (doreverse) {
      if (*rcvbuf_set < *rcvbuf) {
         fprintf(stderr, "failed to set rcvbuf to %lu.  Is %lu\n",
                 (unsigned long)*rcvbuf, (unsigned long)*rcvbuf_set);
         exit(EXIT_UNKNOWN);
      }
   }
   else {
      if (*sndbuf_set < *sndbuf) {
         fprintf(stderr, "failed to set sndbuf to %lu (is %lu)\n",
                 (unsigned long)*sndbuf, (unsigned long)*sndbuf_set);
         exit(EXIT_UNKNOWN);
      }
   }
}

static size_t
sendtest(s, buf, buflen)
   const int s;
   const char *buf;
   const size_t buflen;
{
   ssize_t rc;
   size_t sent;
   int i;

   i        = 1;
   sent     = 0;
   errno    = 0;

   while (1) {
      if ((rc = write(s, buf, buflen)) == -1)
         break;
      else {
         assert(rc == (ssize_t)buflen);

         ++i;
         sent += rc;
      }
   }

   fprintf(stderr,
          "failed sending packet #%d, sent %ld/%ld.  "
          "Total bytes sent: %lu.  Error on last packet: %s\n",
          i,
          (long)rc,
          (unsigned long)buflen,
          (unsigned long)sent,
          strerror(errno));

   return sent;
}

void
reswrite(res)
   const char *res;
{
   FILE *fp;
   if ((fp = fopen("conftest.out", "w")) == NULL) {
      perror("fopen");
      exit(1);
   }
   fprintf(fp, "%s\n", res);
   fclose(fp);
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
  pipeside=`cat conftest.out`
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pipeside" >&5
$as_echo "$pipeside" >&6; }

else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: unknown" >&5
$as_echo "unknown" >&6; }
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi


case $pipeside in
    recvbased)

$as_echo "#define HAVE_PIPEBUFFER_RECV_BASED 1" >>confdefs.h

	;;
    sendbased)

$as_echo "#define HAVE_PIPEBUFFER_SEND_BASED 1" >>confdefs.h

	;;
    *)

$as_echo "#define HAVE_PIPEBUFFER_UNKNOWN 1" >>confdefs.h

        { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to determine PIPEBUFFER type" >&5
$as_echo "$as_me: WARNING: unable to determine PIPEBUFFER type" >&2;}
	;;
esac

#obtain highest valid select() timeout seconds value
DEFAULTMAX=33333333 #corresponds roughly to one year
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for errorless select behavior with high timeouts" >&5
$as_echo_n "checking for errorless select behavior with high timeouts... " >&6; }
 if test "$cross_compiling" = yes; then :
         { $as_echo "$as_me:${as_lineno-$LINENO}: result: unknown" >&5
$as_echo "unknown" >&6; }
       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to determine max select value, using default" >&5
$as_echo "$as_me: WARNING: unable to determine max select value, using default" >&2;}

cat >>confdefs.h <<_ACEOF
#define HAVE_SELECT_MAXTIMEOUT $DEFAULTMAX
_ACEOF
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/time.h>

#include <errno.h>
#ifdef HAVE_LIMITS_H
#include <limits.h>
#endif /* HAVE_LIMITS_H */
#include <signal.h>
#include <stdlib.h>
#include <stdio.h>
#include <stdint.h>
#include <unistd.h>

void sigalrm(int signal);

#define MAXVAL LONG_MAX

int resval = -1; /* -1: fail, 0: ok */

int
main(void)
{
   if (checkval(MAXVAL) == 0) {
      fprintf(stderr, "notice: highest acceptable value equal to MAXVAL\n");
      FILE *fp;
      if ((fp = fopen("conftest.out", "w")) == NULL) {
         perror("fopen");
         exit(-1);
      }
      /* write zero for no special handling needed */
      fprintf(fp, "%ld\n", 0);
      fclose(fp);
      exit(0);
   }

   binsearch(0, MAXVAL);
}

binsearch(long startval, long endval)
{
   long midval = (endval - startval) / 2 + startval;

/*   printf("binsearch: %ld - %ld (%ld)\n", startval, endval, midval);*/

   if (midval == startval || midval == endval) {
      FILE *fp;
      if ((fp = fopen("conftest.out", "w")) == NULL) {
         perror("fopen");
         exit(-1);
      }
      fprintf(fp, "%ld\n", midval);
      fclose(fp);
      exit(0);
   }

   if (checkval(midval) == -1)
      /* value failed, must lie below current value*/
      binsearch(startval, midval);
   else
      /* value succeeded, must lie above current value*/
      binsearch(midval, endval);
}

int
checkval(long val)
{
   struct timeval timeout;
   int rc;

   timeout.tv_sec  = val;
   timeout.tv_usec = 0;

   if (signal(SIGALRM, sigalrm) == SIG_ERR) {
      perror("signal(SIGALRM)");
      exit(1);
   }

   alarm(1);

   resval = -1;
   if ((rc = select(0, NULL, NULL, NULL, &timeout)) == -1) {
      if (errno == EINTR)
         return resval;
      perror("select()");
      return -1;
   }

   if (rc == 0)
      fprintf(stderr, "expected alarm to trigger, not select to timeout ...\n");
   else
      fprintf(stderr, "select(2) returned %d ...very unexpected\n", rc);

   return resval;
}

void
sigalrm(sig)
   int sig;
{
   resval = 0;
/*   printf("got sig, ok val\n");*/
}

_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
  MAXVAL=`cat conftest.out`
      if test x"$MAXVAL" = x; then
         { $as_echo "$as_me:${as_lineno-$LINENO}: result: test failure" >&5
$as_echo "test failure" >&6; }
         { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to determine max select value, using default" >&5
$as_echo "$as_me: WARNING: unable to determine max select value, using default" >&2;}

cat >>confdefs.h <<_ACEOF
#define HAVE_SELECT_MAXTIMEOUT $DEFAULTMAX
_ACEOF
      elif test $MAXVAL -eq 0; then
         { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_SELECT_MAXTIMEOUT 0
_ACEOF
      elif test $MAXVAL -lt $DEFAULTMAX; then
         { $as_echo "$as_me:${as_lineno-$LINENO}: result: unexpected test result" >&5
$as_echo "unexpected test result" >&6; }
         { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unexpectedly low max select value ... using default" >&5
$as_echo "$as_me: WARNING: unexpectedly low max select value ... using default" >&2;}

cat >>confdefs.h <<_ACEOF
#define HAVE_SELECT_MAXTIMEOUT $DEFAULTMAX
_ACEOF
      else
         { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using max $MAXVAL" >&5
$as_echo "no, using max $MAXVAL" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_SELECT_MAXTIMEOUT $MAXVAL
_ACEOF
      fi
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: unknown" >&5
$as_echo "unknown" >&6; }
       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to determine max select value, using default" >&5
$as_echo "$as_me: WARNING: unable to determine max select value, using default" >&2;}

cat >>confdefs.h <<_ACEOF
#define HAVE_SELECT_MAXTIMEOUT $DEFAULTMAX
_ACEOF
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi


#generate list of errno values
ERRNOSRC="include/errorsymbols_gen.h"
cp /dev/null $ERRNOSRC
ERRVALFILE="errorvals.txt" #for counting unique (numeric) values
cp /dev/null $ERRVALFILE
unset ERRNOVALS
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol E2BIG" >&5
$as_echo_n "checking for errno symbol E2BIG... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef E2BIG
errnoval: E2BIG
#else
#error "errno value E2BIG not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS E2BIG"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EACCES" >&5
$as_echo_n "checking for errno symbol EACCES... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EACCES
errnoval: EACCES
#else
#error "errno value EACCES not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EACCES"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EADDRINUSE" >&5
$as_echo_n "checking for errno symbol EADDRINUSE... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EADDRINUSE
errnoval: EADDRINUSE
#else
#error "errno value EADDRINUSE not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EADDRINUSE"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EADDRNOTAVAIL" >&5
$as_echo_n "checking for errno symbol EADDRNOTAVAIL... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EADDRNOTAVAIL
errnoval: EADDRNOTAVAIL
#else
#error "errno value EADDRNOTAVAIL not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EADDRNOTAVAIL"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EADV" >&5
$as_echo_n "checking for errno symbol EADV... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EADV
errnoval: EADV
#else
#error "errno value EADV not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EADV"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EAFNOSUPPORT" >&5
$as_echo_n "checking for errno symbol EAFNOSUPPORT... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EAFNOSUPPORT
errnoval: EAFNOSUPPORT
#else
#error "errno value EAFNOSUPPORT not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EAFNOSUPPORT"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EAGAIN" >&5
$as_echo_n "checking for errno symbol EAGAIN... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EAGAIN
errnoval: EAGAIN
#else
#error "errno value EAGAIN not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EAGAIN"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EALREADY" >&5
$as_echo_n "checking for errno symbol EALREADY... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EALREADY
errnoval: EALREADY
#else
#error "errno value EALREADY not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EALREADY"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EAUTH" >&5
$as_echo_n "checking for errno symbol EAUTH... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EAUTH
errnoval: EAUTH
#else
#error "errno value EAUTH not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EAUTH"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EBADARCH" >&5
$as_echo_n "checking for errno symbol EBADARCH... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EBADARCH
errnoval: EBADARCH
#else
#error "errno value EBADARCH not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EBADARCH"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EBADE" >&5
$as_echo_n "checking for errno symbol EBADE... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EBADE
errnoval: EBADE
#else
#error "errno value EBADE not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EBADE"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EBADEXEC" >&5
$as_echo_n "checking for errno symbol EBADEXEC... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EBADEXEC
errnoval: EBADEXEC
#else
#error "errno value EBADEXEC not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EBADEXEC"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EBADF" >&5
$as_echo_n "checking for errno symbol EBADF... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EBADF
errnoval: EBADF
#else
#error "errno value EBADF not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EBADF"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EBADFD" >&5
$as_echo_n "checking for errno symbol EBADFD... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EBADFD
errnoval: EBADFD
#else
#error "errno value EBADFD not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EBADFD"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EBADMACHO" >&5
$as_echo_n "checking for errno symbol EBADMACHO... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EBADMACHO
errnoval: EBADMACHO
#else
#error "errno value EBADMACHO not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EBADMACHO"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EBADMSG" >&5
$as_echo_n "checking for errno symbol EBADMSG... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EBADMSG
errnoval: EBADMSG
#else
#error "errno value EBADMSG not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EBADMSG"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EBADR" >&5
$as_echo_n "checking for errno symbol EBADR... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EBADR
errnoval: EBADR
#else
#error "errno value EBADR not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EBADR"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EBADRPC" >&5
$as_echo_n "checking for errno symbol EBADRPC... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EBADRPC
errnoval: EBADRPC
#else
#error "errno value EBADRPC not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EBADRPC"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EBADRQC" >&5
$as_echo_n "checking for errno symbol EBADRQC... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EBADRQC
errnoval: EBADRQC
#else
#error "errno value EBADRQC not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EBADRQC"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EBADSLT" >&5
$as_echo_n "checking for errno symbol EBADSLT... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EBADSLT
errnoval: EBADSLT
#else
#error "errno value EBADSLT not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EBADSLT"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EBFONT" >&5
$as_echo_n "checking for errno symbol EBFONT... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EBFONT
errnoval: EBFONT
#else
#error "errno value EBFONT not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EBFONT"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EBUSY" >&5
$as_echo_n "checking for errno symbol EBUSY... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EBUSY
errnoval: EBUSY
#else
#error "errno value EBUSY not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EBUSY"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ECANCELED" >&5
$as_echo_n "checking for errno symbol ECANCELED... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ECANCELED
errnoval: ECANCELED
#else
#error "errno value ECANCELED not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ECANCELED"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ECAPMODE" >&5
$as_echo_n "checking for errno symbol ECAPMODE... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ECAPMODE
errnoval: ECAPMODE
#else
#error "errno value ECAPMODE not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ECAPMODE"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ECHILD" >&5
$as_echo_n "checking for errno symbol ECHILD... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ECHILD
errnoval: ECHILD
#else
#error "errno value ECHILD not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ECHILD"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ECHRNG" >&5
$as_echo_n "checking for errno symbol ECHRNG... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ECHRNG
errnoval: ECHRNG
#else
#error "errno value ECHRNG not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ECHRNG"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ECOMM" >&5
$as_echo_n "checking for errno symbol ECOMM... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ECOMM
errnoval: ECOMM
#else
#error "errno value ECOMM not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ECOMM"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ECONNABORTED" >&5
$as_echo_n "checking for errno symbol ECONNABORTED... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ECONNABORTED
errnoval: ECONNABORTED
#else
#error "errno value ECONNABORTED not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ECONNABORTED"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ECONNREFUSED" >&5
$as_echo_n "checking for errno symbol ECONNREFUSED... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ECONNREFUSED
errnoval: ECONNREFUSED
#else
#error "errno value ECONNREFUSED not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ECONNREFUSED"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ECONNRESET" >&5
$as_echo_n "checking for errno symbol ECONNRESET... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ECONNRESET
errnoval: ECONNRESET
#else
#error "errno value ECONNRESET not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ECONNRESET"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EDEADLK" >&5
$as_echo_n "checking for errno symbol EDEADLK... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EDEADLK
errnoval: EDEADLK
#else
#error "errno value EDEADLK not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EDEADLK"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EDEADLOCK" >&5
$as_echo_n "checking for errno symbol EDEADLOCK... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EDEADLOCK
errnoval: EDEADLOCK
#else
#error "errno value EDEADLOCK not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EDEADLOCK"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EDESTADDRREQ" >&5
$as_echo_n "checking for errno symbol EDESTADDRREQ... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EDESTADDRREQ
errnoval: EDESTADDRREQ
#else
#error "errno value EDESTADDRREQ not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EDESTADDRREQ"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EDEVERR" >&5
$as_echo_n "checking for errno symbol EDEVERR... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EDEVERR
errnoval: EDEVERR
#else
#error "errno value EDEVERR not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EDEVERR"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EDIRIOCTL" >&5
$as_echo_n "checking for errno symbol EDIRIOCTL... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EDIRIOCTL
errnoval: EDIRIOCTL
#else
#error "errno value EDIRIOCTL not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EDIRIOCTL"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EDOM" >&5
$as_echo_n "checking for errno symbol EDOM... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EDOM
errnoval: EDOM
#else
#error "errno value EDOM not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EDOM"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EDOOFUS" >&5
$as_echo_n "checking for errno symbol EDOOFUS... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EDOOFUS
errnoval: EDOOFUS
#else
#error "errno value EDOOFUS not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EDOOFUS"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EDQUOT" >&5
$as_echo_n "checking for errno symbol EDQUOT... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EDQUOT
errnoval: EDQUOT
#else
#error "errno value EDQUOT not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EDQUOT"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EEXIST" >&5
$as_echo_n "checking for errno symbol EEXIST... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EEXIST
errnoval: EEXIST
#else
#error "errno value EEXIST not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EEXIST"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EFAULT" >&5
$as_echo_n "checking for errno symbol EFAULT... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EFAULT
errnoval: EFAULT
#else
#error "errno value EFAULT not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EFAULT"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EFBIG" >&5
$as_echo_n "checking for errno symbol EFBIG... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EFBIG
errnoval: EFBIG
#else
#error "errno value EFBIG not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EFBIG"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EFTYPE" >&5
$as_echo_n "checking for errno symbol EFTYPE... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EFTYPE
errnoval: EFTYPE
#else
#error "errno value EFTYPE not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EFTYPE"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EHOSTDOWN" >&5
$as_echo_n "checking for errno symbol EHOSTDOWN... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EHOSTDOWN
errnoval: EHOSTDOWN
#else
#error "errno value EHOSTDOWN not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EHOSTDOWN"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EHOSTUNREACH" >&5
$as_echo_n "checking for errno symbol EHOSTUNREACH... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EHOSTUNREACH
errnoval: EHOSTUNREACH
#else
#error "errno value EHOSTUNREACH not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EHOSTUNREACH"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EIDRM" >&5
$as_echo_n "checking for errno symbol EIDRM... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EIDRM
errnoval: EIDRM
#else
#error "errno value EIDRM not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EIDRM"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EILSEQ" >&5
$as_echo_n "checking for errno symbol EILSEQ... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EILSEQ
errnoval: EILSEQ
#else
#error "errno value EILSEQ not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EILSEQ"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EINPROGRESS" >&5
$as_echo_n "checking for errno symbol EINPROGRESS... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EINPROGRESS
errnoval: EINPROGRESS
#else
#error "errno value EINPROGRESS not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EINPROGRESS"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EINTR" >&5
$as_echo_n "checking for errno symbol EINTR... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EINTR
errnoval: EINTR
#else
#error "errno value EINTR not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EINTR"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EINVAL" >&5
$as_echo_n "checking for errno symbol EINVAL... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EINVAL
errnoval: EINVAL
#else
#error "errno value EINVAL not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EINVAL"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EIO" >&5
$as_echo_n "checking for errno symbol EIO... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EIO
errnoval: EIO
#else
#error "errno value EIO not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EIO"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EIPSEC" >&5
$as_echo_n "checking for errno symbol EIPSEC... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EIPSEC
errnoval: EIPSEC
#else
#error "errno value EIPSEC not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EIPSEC"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EISCONN" >&5
$as_echo_n "checking for errno symbol EISCONN... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EISCONN
errnoval: EISCONN
#else
#error "errno value EISCONN not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EISCONN"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EISDIR" >&5
$as_echo_n "checking for errno symbol EISDIR... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EISDIR
errnoval: EISDIR
#else
#error "errno value EISDIR not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EISDIR"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EJUSTRETURN" >&5
$as_echo_n "checking for errno symbol EJUSTRETURN... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EJUSTRETURN
errnoval: EJUSTRETURN
#else
#error "errno value EJUSTRETURN not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EJUSTRETURN"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EL2HLT" >&5
$as_echo_n "checking for errno symbol EL2HLT... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EL2HLT
errnoval: EL2HLT
#else
#error "errno value EL2HLT not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EL2HLT"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EL2NSYNC" >&5
$as_echo_n "checking for errno symbol EL2NSYNC... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EL2NSYNC
errnoval: EL2NSYNC
#else
#error "errno value EL2NSYNC not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EL2NSYNC"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EL3HLT" >&5
$as_echo_n "checking for errno symbol EL3HLT... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EL3HLT
errnoval: EL3HLT
#else
#error "errno value EL3HLT not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EL3HLT"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EL3RST" >&5
$as_echo_n "checking for errno symbol EL3RST... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EL3RST
errnoval: EL3RST
#else
#error "errno value EL3RST not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EL3RST"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ELAST" >&5
$as_echo_n "checking for errno symbol ELAST... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ELAST
errnoval: ELAST
#else
#error "errno value ELAST not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ELAST"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ELIBACC" >&5
$as_echo_n "checking for errno symbol ELIBACC... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ELIBACC
errnoval: ELIBACC
#else
#error "errno value ELIBACC not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ELIBACC"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ELIBBAD" >&5
$as_echo_n "checking for errno symbol ELIBBAD... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ELIBBAD
errnoval: ELIBBAD
#else
#error "errno value ELIBBAD not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ELIBBAD"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ELIBEXEC" >&5
$as_echo_n "checking for errno symbol ELIBEXEC... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ELIBEXEC
errnoval: ELIBEXEC
#else
#error "errno value ELIBEXEC not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ELIBEXEC"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ELIBMAX" >&5
$as_echo_n "checking for errno symbol ELIBMAX... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ELIBMAX
errnoval: ELIBMAX
#else
#error "errno value ELIBMAX not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ELIBMAX"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ELIBSCN" >&5
$as_echo_n "checking for errno symbol ELIBSCN... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ELIBSCN
errnoval: ELIBSCN
#else
#error "errno value ELIBSCN not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ELIBSCN"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ELNRNG" >&5
$as_echo_n "checking for errno symbol ELNRNG... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ELNRNG
errnoval: ELNRNG
#else
#error "errno value ELNRNG not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ELNRNG"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ELOCKUNMAPPED" >&5
$as_echo_n "checking for errno symbol ELOCKUNMAPPED... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ELOCKUNMAPPED
errnoval: ELOCKUNMAPPED
#else
#error "errno value ELOCKUNMAPPED not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ELOCKUNMAPPED"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ELOOP" >&5
$as_echo_n "checking for errno symbol ELOOP... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ELOOP
errnoval: ELOOP
#else
#error "errno value ELOOP not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ELOOP"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EMEDIUMTYPE" >&5
$as_echo_n "checking for errno symbol EMEDIUMTYPE... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EMEDIUMTYPE
errnoval: EMEDIUMTYPE
#else
#error "errno value EMEDIUMTYPE not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EMEDIUMTYPE"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EMFILE" >&5
$as_echo_n "checking for errno symbol EMFILE... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EMFILE
errnoval: EMFILE
#else
#error "errno value EMFILE not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EMFILE"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EMLINK" >&5
$as_echo_n "checking for errno symbol EMLINK... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EMLINK
errnoval: EMLINK
#else
#error "errno value EMLINK not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EMLINK"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EMSGSIZE" >&5
$as_echo_n "checking for errno symbol EMSGSIZE... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EMSGSIZE
errnoval: EMSGSIZE
#else
#error "errno value EMSGSIZE not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EMSGSIZE"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EMULTIHOP" >&5
$as_echo_n "checking for errno symbol EMULTIHOP... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EMULTIHOP
errnoval: EMULTIHOP
#else
#error "errno value EMULTIHOP not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EMULTIHOP"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ENAMETOOLONG" >&5
$as_echo_n "checking for errno symbol ENAMETOOLONG... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ENAMETOOLONG
errnoval: ENAMETOOLONG
#else
#error "errno value ENAMETOOLONG not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ENAMETOOLONG"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ENEEDAUTH" >&5
$as_echo_n "checking for errno symbol ENEEDAUTH... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ENEEDAUTH
errnoval: ENEEDAUTH
#else
#error "errno value ENEEDAUTH not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ENEEDAUTH"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ENETDOWN" >&5
$as_echo_n "checking for errno symbol ENETDOWN... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ENETDOWN
errnoval: ENETDOWN
#else
#error "errno value ENETDOWN not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ENETDOWN"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ENETRESET" >&5
$as_echo_n "checking for errno symbol ENETRESET... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ENETRESET
errnoval: ENETRESET
#else
#error "errno value ENETRESET not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ENETRESET"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ENETUNREACH" >&5
$as_echo_n "checking for errno symbol ENETUNREACH... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ENETUNREACH
errnoval: ENETUNREACH
#else
#error "errno value ENETUNREACH not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ENETUNREACH"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ENFILE" >&5
$as_echo_n "checking for errno symbol ENFILE... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ENFILE
errnoval: ENFILE
#else
#error "errno value ENFILE not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ENFILE"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ENOANO" >&5
$as_echo_n "checking for errno symbol ENOANO... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ENOANO
errnoval: ENOANO
#else
#error "errno value ENOANO not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ENOANO"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ENOATTR" >&5
$as_echo_n "checking for errno symbol ENOATTR... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ENOATTR
errnoval: ENOATTR
#else
#error "errno value ENOATTR not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ENOATTR"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ENOBUFS" >&5
$as_echo_n "checking for errno symbol ENOBUFS... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ENOBUFS
errnoval: ENOBUFS
#else
#error "errno value ENOBUFS not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ENOBUFS"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ENOCSI" >&5
$as_echo_n "checking for errno symbol ENOCSI... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ENOCSI
errnoval: ENOCSI
#else
#error "errno value ENOCSI not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ENOCSI"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ENODATA" >&5
$as_echo_n "checking for errno symbol ENODATA... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ENODATA
errnoval: ENODATA
#else
#error "errno value ENODATA not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ENODATA"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ENODEV" >&5
$as_echo_n "checking for errno symbol ENODEV... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ENODEV
errnoval: ENODEV
#else
#error "errno value ENODEV not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ENODEV"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ENOENT" >&5
$as_echo_n "checking for errno symbol ENOENT... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ENOENT
errnoval: ENOENT
#else
#error "errno value ENOENT not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ENOENT"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ENOEXEC" >&5
$as_echo_n "checking for errno symbol ENOEXEC... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ENOEXEC
errnoval: ENOEXEC
#else
#error "errno value ENOEXEC not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ENOEXEC"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ENOIOCTL" >&5
$as_echo_n "checking for errno symbol ENOIOCTL... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ENOIOCTL
errnoval: ENOIOCTL
#else
#error "errno value ENOIOCTL not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ENOIOCTL"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ENOLCK" >&5
$as_echo_n "checking for errno symbol ENOLCK... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ENOLCK
errnoval: ENOLCK
#else
#error "errno value ENOLCK not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ENOLCK"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ENOLINK" >&5
$as_echo_n "checking for errno symbol ENOLINK... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ENOLINK
errnoval: ENOLINK
#else
#error "errno value ENOLINK not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ENOLINK"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ENOMEDIUM" >&5
$as_echo_n "checking for errno symbol ENOMEDIUM... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ENOMEDIUM
errnoval: ENOMEDIUM
#else
#error "errno value ENOMEDIUM not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ENOMEDIUM"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ENOMEM" >&5
$as_echo_n "checking for errno symbol ENOMEM... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ENOMEM
errnoval: ENOMEM
#else
#error "errno value ENOMEM not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ENOMEM"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ENOMSG" >&5
$as_echo_n "checking for errno symbol ENOMSG... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ENOMSG
errnoval: ENOMSG
#else
#error "errno value ENOMSG not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ENOMSG"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ENONET" >&5
$as_echo_n "checking for errno symbol ENONET... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ENONET
errnoval: ENONET
#else
#error "errno value ENONET not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ENONET"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ENOPKG" >&5
$as_echo_n "checking for errno symbol ENOPKG... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ENOPKG
errnoval: ENOPKG
#else
#error "errno value ENOPKG not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ENOPKG"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ENOPOLICY" >&5
$as_echo_n "checking for errno symbol ENOPOLICY... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ENOPOLICY
errnoval: ENOPOLICY
#else
#error "errno value ENOPOLICY not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ENOPOLICY"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ENOPROTOOPT" >&5
$as_echo_n "checking for errno symbol ENOPROTOOPT... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ENOPROTOOPT
errnoval: ENOPROTOOPT
#else
#error "errno value ENOPROTOOPT not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ENOPROTOOPT"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ENOSPC" >&5
$as_echo_n "checking for errno symbol ENOSPC... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ENOSPC
errnoval: ENOSPC
#else
#error "errno value ENOSPC not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ENOSPC"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ENOSR" >&5
$as_echo_n "checking for errno symbol ENOSR... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ENOSR
errnoval: ENOSR
#else
#error "errno value ENOSR not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ENOSR"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ENOSTR" >&5
$as_echo_n "checking for errno symbol ENOSTR... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ENOSTR
errnoval: ENOSTR
#else
#error "errno value ENOSTR not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ENOSTR"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ENOSYS" >&5
$as_echo_n "checking for errno symbol ENOSYS... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ENOSYS
errnoval: ENOSYS
#else
#error "errno value ENOSYS not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ENOSYS"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ENOTACTIVE" >&5
$as_echo_n "checking for errno symbol ENOTACTIVE... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ENOTACTIVE
errnoval: ENOTACTIVE
#else
#error "errno value ENOTACTIVE not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ENOTACTIVE"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ENOTBLK" >&5
$as_echo_n "checking for errno symbol ENOTBLK... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ENOTBLK
errnoval: ENOTBLK
#else
#error "errno value ENOTBLK not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ENOTBLK"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ENOTCAPABLE" >&5
$as_echo_n "checking for errno symbol ENOTCAPABLE... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ENOTCAPABLE
errnoval: ENOTCAPABLE
#else
#error "errno value ENOTCAPABLE not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ENOTCAPABLE"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ENOTCONN" >&5
$as_echo_n "checking for errno symbol ENOTCONN... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ENOTCONN
errnoval: ENOTCONN
#else
#error "errno value ENOTCONN not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ENOTCONN"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ENOTDIR" >&5
$as_echo_n "checking for errno symbol ENOTDIR... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ENOTDIR
errnoval: ENOTDIR
#else
#error "errno value ENOTDIR not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ENOTDIR"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ENOTEMPTY" >&5
$as_echo_n "checking for errno symbol ENOTEMPTY... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ENOTEMPTY
errnoval: ENOTEMPTY
#else
#error "errno value ENOTEMPTY not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ENOTEMPTY"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ENOTRECOVERABLE" >&5
$as_echo_n "checking for errno symbol ENOTRECOVERABLE... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ENOTRECOVERABLE
errnoval: ENOTRECOVERABLE
#else
#error "errno value ENOTRECOVERABLE not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ENOTRECOVERABLE"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ENOTSOCK" >&5
$as_echo_n "checking for errno symbol ENOTSOCK... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ENOTSOCK
errnoval: ENOTSOCK
#else
#error "errno value ENOTSOCK not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ENOTSOCK"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ENOTSUP" >&5
$as_echo_n "checking for errno symbol ENOTSUP... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ENOTSUP
errnoval: ENOTSUP
#else
#error "errno value ENOTSUP not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ENOTSUP"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ENOTTY" >&5
$as_echo_n "checking for errno symbol ENOTTY... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ENOTTY
errnoval: ENOTTY
#else
#error "errno value ENOTTY not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ENOTTY"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ENOTUNIQ" >&5
$as_echo_n "checking for errno symbol ENOTUNIQ... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ENOTUNIQ
errnoval: ENOTUNIQ
#else
#error "errno value ENOTUNIQ not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ENOTUNIQ"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ENXIO" >&5
$as_echo_n "checking for errno symbol ENXIO... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ENXIO
errnoval: ENXIO
#else
#error "errno value ENXIO not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ENXIO"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EOPNOTSUPP" >&5
$as_echo_n "checking for errno symbol EOPNOTSUPP... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EOPNOTSUPP
errnoval: EOPNOTSUPP
#else
#error "errno value EOPNOTSUPP not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EOPNOTSUPP"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EOVERFLOW" >&5
$as_echo_n "checking for errno symbol EOVERFLOW... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EOVERFLOW
errnoval: EOVERFLOW
#else
#error "errno value EOVERFLOW not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EOVERFLOW"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EOWNERDEAD" >&5
$as_echo_n "checking for errno symbol EOWNERDEAD... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EOWNERDEAD
errnoval: EOWNERDEAD
#else
#error "errno value EOWNERDEAD not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EOWNERDEAD"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EPERM" >&5
$as_echo_n "checking for errno symbol EPERM... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EPERM
errnoval: EPERM
#else
#error "errno value EPERM not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EPERM"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EPFNOSUPPORT" >&5
$as_echo_n "checking for errno symbol EPFNOSUPPORT... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EPFNOSUPPORT
errnoval: EPFNOSUPPORT
#else
#error "errno value EPFNOSUPPORT not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EPFNOSUPPORT"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EPIPE" >&5
$as_echo_n "checking for errno symbol EPIPE... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EPIPE
errnoval: EPIPE
#else
#error "errno value EPIPE not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EPIPE"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EPROCLIM" >&5
$as_echo_n "checking for errno symbol EPROCLIM... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EPROCLIM
errnoval: EPROCLIM
#else
#error "errno value EPROCLIM not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EPROCLIM"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EPROCUNAVAIL" >&5
$as_echo_n "checking for errno symbol EPROCUNAVAIL... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EPROCUNAVAIL
errnoval: EPROCUNAVAIL
#else
#error "errno value EPROCUNAVAIL not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EPROCUNAVAIL"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EPROGMISMATCH" >&5
$as_echo_n "checking for errno symbol EPROGMISMATCH... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EPROGMISMATCH
errnoval: EPROGMISMATCH
#else
#error "errno value EPROGMISMATCH not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EPROGMISMATCH"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EPROGUNAVAIL" >&5
$as_echo_n "checking for errno symbol EPROGUNAVAIL... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EPROGUNAVAIL
errnoval: EPROGUNAVAIL
#else
#error "errno value EPROGUNAVAIL not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EPROGUNAVAIL"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EPROTO" >&5
$as_echo_n "checking for errno symbol EPROTO... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EPROTO
errnoval: EPROTO
#else
#error "errno value EPROTO not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EPROTO"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EPROTONOSUPPORT" >&5
$as_echo_n "checking for errno symbol EPROTONOSUPPORT... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EPROTONOSUPPORT
errnoval: EPROTONOSUPPORT
#else
#error "errno value EPROTONOSUPPORT not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EPROTONOSUPPORT"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EPROTOTYPE" >&5
$as_echo_n "checking for errno symbol EPROTOTYPE... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EPROTOTYPE
errnoval: EPROTOTYPE
#else
#error "errno value EPROTOTYPE not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EPROTOTYPE"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EPWROFF" >&5
$as_echo_n "checking for errno symbol EPWROFF... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EPWROFF
errnoval: EPWROFF
#else
#error "errno value EPWROFF not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EPWROFF"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ERANGE" >&5
$as_echo_n "checking for errno symbol ERANGE... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ERANGE
errnoval: ERANGE
#else
#error "errno value ERANGE not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ERANGE"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EREMCHG" >&5
$as_echo_n "checking for errno symbol EREMCHG... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EREMCHG
errnoval: EREMCHG
#else
#error "errno value EREMCHG not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EREMCHG"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EREMOTE" >&5
$as_echo_n "checking for errno symbol EREMOTE... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EREMOTE
errnoval: EREMOTE
#else
#error "errno value EREMOTE not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EREMOTE"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ERESTART" >&5
$as_echo_n "checking for errno symbol ERESTART... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ERESTART
errnoval: ERESTART
#else
#error "errno value ERESTART not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ERESTART"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EROFS" >&5
$as_echo_n "checking for errno symbol EROFS... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EROFS
errnoval: EROFS
#else
#error "errno value EROFS not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EROFS"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ERPCMISMATCH" >&5
$as_echo_n "checking for errno symbol ERPCMISMATCH... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ERPCMISMATCH
errnoval: ERPCMISMATCH
#else
#error "errno value ERPCMISMATCH not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ERPCMISMATCH"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ESHLIBVERS" >&5
$as_echo_n "checking for errno symbol ESHLIBVERS... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ESHLIBVERS
errnoval: ESHLIBVERS
#else
#error "errno value ESHLIBVERS not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ESHLIBVERS"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ESHUTDOWN" >&5
$as_echo_n "checking for errno symbol ESHUTDOWN... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ESHUTDOWN
errnoval: ESHUTDOWN
#else
#error "errno value ESHUTDOWN not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ESHUTDOWN"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ESOCKTNOSUPPORT" >&5
$as_echo_n "checking for errno symbol ESOCKTNOSUPPORT... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ESOCKTNOSUPPORT
errnoval: ESOCKTNOSUPPORT
#else
#error "errno value ESOCKTNOSUPPORT not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ESOCKTNOSUPPORT"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ESPIPE" >&5
$as_echo_n "checking for errno symbol ESPIPE... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ESPIPE
errnoval: ESPIPE
#else
#error "errno value ESPIPE not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ESPIPE"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ESRCH" >&5
$as_echo_n "checking for errno symbol ESRCH... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ESRCH
errnoval: ESRCH
#else
#error "errno value ESRCH not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ESRCH"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ESRMNT" >&5
$as_echo_n "checking for errno symbol ESRMNT... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ESRMNT
errnoval: ESRMNT
#else
#error "errno value ESRMNT not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ESRMNT"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ESTALE" >&5
$as_echo_n "checking for errno symbol ESTALE... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ESTALE
errnoval: ESTALE
#else
#error "errno value ESTALE not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ESTALE"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ESTRPIPE" >&5
$as_echo_n "checking for errno symbol ESTRPIPE... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ESTRPIPE
errnoval: ESTRPIPE
#else
#error "errno value ESTRPIPE not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ESTRPIPE"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ETIME" >&5
$as_echo_n "checking for errno symbol ETIME... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ETIME
errnoval: ETIME
#else
#error "errno value ETIME not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ETIME"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ETIMEDOUT" >&5
$as_echo_n "checking for errno symbol ETIMEDOUT... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ETIMEDOUT
errnoval: ETIMEDOUT
#else
#error "errno value ETIMEDOUT not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ETIMEDOUT"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ETOOMANYREFS" >&5
$as_echo_n "checking for errno symbol ETOOMANYREFS... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ETOOMANYREFS
errnoval: ETOOMANYREFS
#else
#error "errno value ETOOMANYREFS not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ETOOMANYREFS"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ETXTBSY" >&5
$as_echo_n "checking for errno symbol ETXTBSY... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ETXTBSY
errnoval: ETXTBSY
#else
#error "errno value ETXTBSY not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ETXTBSY"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EUNATCH" >&5
$as_echo_n "checking for errno symbol EUNATCH... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EUNATCH
errnoval: EUNATCH
#else
#error "errno value EUNATCH not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EUNATCH"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EUSERS" >&5
$as_echo_n "checking for errno symbol EUSERS... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EUSERS
errnoval: EUSERS
#else
#error "errno value EUSERS not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EUSERS"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EWOULDBLOCK" >&5
$as_echo_n "checking for errno symbol EWOULDBLOCK... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EWOULDBLOCK
errnoval: EWOULDBLOCK
#else
#error "errno value EWOULDBLOCK not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EWOULDBLOCK"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EXDEV" >&5
$as_echo_n "checking for errno symbol EXDEV... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EXDEV
errnoval: EXDEV
#else
#error "errno value EXDEV not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EXDEV"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EXFULL" >&5
$as_echo_n "checking for errno symbol EXFULL... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EXFULL
errnoval: EXFULL
#else
#error "errno value EXFULL not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EXFULL"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ECLONEME" >&5
$as_echo_n "checking for errno symbol ECLONEME... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ECLONEME
errnoval: ECLONEME
#else
#error "errno value ECLONEME not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ECLONEME"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ECORRUPT" >&5
$as_echo_n "checking for errno symbol ECORRUPT... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ECORRUPT
errnoval: ECORRUPT
#else
#error "errno value ECORRUPT not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ECORRUPT"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EDESTADDREQ" >&5
$as_echo_n "checking for errno symbol EDESTADDREQ... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EDESTADDREQ
errnoval: EDESTADDREQ
#else
#error "errno value EDESTADDREQ not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EDESTADDREQ"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EDIST" >&5
$as_echo_n "checking for errno symbol EDIST... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EDIST
errnoval: EDIST
#else
#error "errno value EDIST not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EDIST"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EFORMAT" >&5
$as_echo_n "checking for errno symbol EFORMAT... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EFORMAT
errnoval: EFORMAT
#else
#error "errno value EFORMAT not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EFORMAT"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EMEDIA" >&5
$as_echo_n "checking for errno symbol EMEDIA... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EMEDIA
errnoval: EMEDIA
#else
#error "errno value EMEDIA not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EMEDIA"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ENOCONNECT" >&5
$as_echo_n "checking for errno symbol ENOCONNECT... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ENOCONNECT
errnoval: ENOCONNECT
#else
#error "errno value ENOCONNECT not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ENOCONNECT"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ENOTEMPTY" >&5
$as_echo_n "checking for errno symbol ENOTEMPTY... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ENOTEMPTY
errnoval: ENOTEMPTY
#else
#error "errno value ENOTEMPTY not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ENOTEMPTY"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ENOTREADY" >&5
$as_echo_n "checking for errno symbol ENOTREADY... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ENOTREADY
errnoval: ENOTREADY
#else
#error "errno value ENOTREADY not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ENOTREADY"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ENOTRUST" >&5
$as_echo_n "checking for errno symbol ENOTRUST... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ENOTRUST
errnoval: ENOTRUST
#else
#error "errno value ENOTRUST not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ENOTRUST"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ESAD" >&5
$as_echo_n "checking for errno symbol ESAD... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ESAD
errnoval: ESAD
#else
#error "errno value ESAD not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ESAD"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ESOFT" >&5
$as_echo_n "checking for errno symbol ESOFT... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ESOFT
errnoval: ESOFT
#else
#error "errno value ESOFT not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ESOFT"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol ESYSERROR" >&5
$as_echo_n "checking for errno symbol ESYSERROR... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef ESYSERROR
errnoval: ESYSERROR
#else
#error "errno value ESYSERROR not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS ESYSERROR"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EWOULDBLOCK" >&5
$as_echo_n "checking for errno symbol EWOULDBLOCK... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EWOULDBLOCK
errnoval: EWOULDBLOCK
#else
#error "errno value EWOULDBLOCK not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EWOULDBLOCK"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for errno symbol EWRPROTECT" >&5
$as_echo_n "checking for errno symbol EWRPROTECT... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <errno.h>
int
main ()
{

#ifdef EWRPROTECT
errnoval: EWRPROTECT
#else
#error "errno value EWRPROTECT not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        ERRNOVALS="$ERRNOVALS EWRPROTECT"
        cat conftest.i | grep errnoval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext

if test x"$ERRNOVALS" = x; then
    { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "error: no errno symbols found
See \`config.log' for more details" "$LINENO" 5; }
fi
ERRNOCNT=`echo $ERRNOVALS | wc -w | awk '{ print $1 }'`

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking errno symbols" >&5
$as_echo_n "checking errno symbols... " >&6; }
unset UNIQUEVALS UNIQUESYMBOLS
if test -s $ERRVALFILE; then
    UNIQUEVALS=`sort $ERRVALFILE | uniq | wc -l | awk '{ print $1 }'`
    UNIQUESYMBOLS=`cat $ERRVALFILE | wc -l | awk '{ print $1 }'`
    if test $ERRNOCNT -ne $UNIQUESYMBOLS; then
	{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "internal error: errno symbol count mismatch
See \`config.log' for more details" "$LINENO" 5; }
    fi

cat >>confdefs.h <<_ACEOF
#define UNIQUE_ERRNO_VALUES $UNIQUEVALS
_ACEOF

    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unique symbols: $UNIQUESYMBOLS, unique values: $UNIQUEVALS" >&5
$as_echo "unique symbols: $UNIQUESYMBOLS, unique values: $UNIQUEVALS" >&6; }
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 $? "error: unable to determine errno symbol values
See \`config.log' for more details" "$LINENO" 5; }
fi

echo "/* NOTICE: $ERRNOSRC: Generated from by configure */" >>$ERRNOSRC
echo "" >>$ERRNOSRC
echo "static const errorsymboltable_t errnosymbolv[] = {" >>$ERRNOSRC

#generic list
for errno in $ERRNOVALS; do
    echo "   { \"$errno\",	$errno	}," >>$ERRNOSRC
done

#keyword alias list
maxaliaslen=0 #highest number of values for an alias

#errno values that can match 'no-route' keyword (if found on platform)
ERRNO_NOROUTE="ENETUNREACH EHOSTUNREACH ENETDOWN ETIMEDOUT"
keyword="no-route"
keycnt=0
for keyval in ${ERRNO_NOROUTE}; do
    for errno in $ERRNOVALS; do
	if test x"$keyval" = x"$errno"; then
	    echo "   { \"$keyword\",	$errno	}," >>$ERRNOSRC
	    keycnt=`expr $keycnt + 1`
	fi
    done
done

#any-error; alias for all values
keyword="system-any"
keycnt=0
for errno in $ERRNOVALS; do
    echo "   { \"$keyword\",	$errno	}," >>$ERRNOSRC
    keycnt=`expr $keycnt + 1`
done

if test $keycnt -gt $maxaliaslen; then
    maxaliaslen=$keycnt
fi

echo "};" >>$ERRNOSRC


cat >>confdefs.h <<_ACEOF
#define MAX_ERRNO_VALUES_FOR_SYMBOL $maxaliaslen
_ACEOF



#generate list of getaddrinfo errors
cp /dev/null $ERRVALFILE
unset GAIERRVALS
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for getaddrinfo() error EAI_ADDRFAMILY" >&5
$as_echo_n "checking for getaddrinfo() error EAI_ADDRFAMILY... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
int
main ()
{

#ifdef EAI_ADDRFAMILY
gaierrval: EAI_ADDRFAMILY
#else
#error "gai error value EAI_ADDRFAMILY not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        GAIERRVALS="$GAIERRVALS EAI_ADDRFAMILY"

$as_echo "#define HAVE_ERR_EAI_ADDRFAMILY 1" >>confdefs.h

        cat conftest.i | grep gaierrval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for getaddrinfo() error EAI_AGAIN" >&5
$as_echo_n "checking for getaddrinfo() error EAI_AGAIN... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
int
main ()
{

#ifdef EAI_AGAIN
gaierrval: EAI_AGAIN
#else
#error "gai error value EAI_AGAIN not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        GAIERRVALS="$GAIERRVALS EAI_AGAIN"

$as_echo "#define HAVE_ERR_EAI_AGAIN 1" >>confdefs.h

        cat conftest.i | grep gaierrval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for getaddrinfo() error EAI_BADFLAGS" >&5
$as_echo_n "checking for getaddrinfo() error EAI_BADFLAGS... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
int
main ()
{

#ifdef EAI_BADFLAGS
gaierrval: EAI_BADFLAGS
#else
#error "gai error value EAI_BADFLAGS not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        GAIERRVALS="$GAIERRVALS EAI_BADFLAGS"

$as_echo "#define HAVE_ERR_EAI_BADFLAGS 1" >>confdefs.h

        cat conftest.i | grep gaierrval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for getaddrinfo() error EAI_BADHINTS" >&5
$as_echo_n "checking for getaddrinfo() error EAI_BADHINTS... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
int
main ()
{

#ifdef EAI_BADHINTS
gaierrval: EAI_BADHINTS
#else
#error "gai error value EAI_BADHINTS not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        GAIERRVALS="$GAIERRVALS EAI_BADHINTS"

$as_echo "#define HAVE_ERR_EAI_BADHINTS 1" >>confdefs.h

        cat conftest.i | grep gaierrval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for getaddrinfo() error EAI_FAIL" >&5
$as_echo_n "checking for getaddrinfo() error EAI_FAIL... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
int
main ()
{

#ifdef EAI_FAIL
gaierrval: EAI_FAIL
#else
#error "gai error value EAI_FAIL not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        GAIERRVALS="$GAIERRVALS EAI_FAIL"

$as_echo "#define HAVE_ERR_EAI_FAIL 1" >>confdefs.h

        cat conftest.i | grep gaierrval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for getaddrinfo() error EAI_FAMILY" >&5
$as_echo_n "checking for getaddrinfo() error EAI_FAMILY... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
int
main ()
{

#ifdef EAI_FAMILY
gaierrval: EAI_FAMILY
#else
#error "gai error value EAI_FAMILY not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        GAIERRVALS="$GAIERRVALS EAI_FAMILY"

$as_echo "#define HAVE_ERR_EAI_FAMILY 1" >>confdefs.h

        cat conftest.i | grep gaierrval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for getaddrinfo() error EAI_MEMORY" >&5
$as_echo_n "checking for getaddrinfo() error EAI_MEMORY... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
int
main ()
{

#ifdef EAI_MEMORY
gaierrval: EAI_MEMORY
#else
#error "gai error value EAI_MEMORY not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        GAIERRVALS="$GAIERRVALS EAI_MEMORY"

$as_echo "#define HAVE_ERR_EAI_MEMORY 1" >>confdefs.h

        cat conftest.i | grep gaierrval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for getaddrinfo() error EAI_NODATA" >&5
$as_echo_n "checking for getaddrinfo() error EAI_NODATA... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
int
main ()
{

#ifdef EAI_NODATA
gaierrval: EAI_NODATA
#else
#error "gai error value EAI_NODATA not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        GAIERRVALS="$GAIERRVALS EAI_NODATA"

$as_echo "#define HAVE_ERR_EAI_NODATA 1" >>confdefs.h

        cat conftest.i | grep gaierrval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for getaddrinfo() error EAI_NONAME" >&5
$as_echo_n "checking for getaddrinfo() error EAI_NONAME... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
int
main ()
{

#ifdef EAI_NONAME
gaierrval: EAI_NONAME
#else
#error "gai error value EAI_NONAME not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        GAIERRVALS="$GAIERRVALS EAI_NONAME"

$as_echo "#define HAVE_ERR_EAI_NONAME 1" >>confdefs.h

        cat conftest.i | grep gaierrval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for getaddrinfo() error EAI_OVERFLOW" >&5
$as_echo_n "checking for getaddrinfo() error EAI_OVERFLOW... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
int
main ()
{

#ifdef EAI_OVERFLOW
gaierrval: EAI_OVERFLOW
#else
#error "gai error value EAI_OVERFLOW not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        GAIERRVALS="$GAIERRVALS EAI_OVERFLOW"

$as_echo "#define HAVE_ERR_EAI_OVERFLOW 1" >>confdefs.h

        cat conftest.i | grep gaierrval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for getaddrinfo() error EAI_PROTOCOL" >&5
$as_echo_n "checking for getaddrinfo() error EAI_PROTOCOL... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
int
main ()
{

#ifdef EAI_PROTOCOL
gaierrval: EAI_PROTOCOL
#else
#error "gai error value EAI_PROTOCOL not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        GAIERRVALS="$GAIERRVALS EAI_PROTOCOL"

$as_echo "#define HAVE_ERR_EAI_PROTOCOL 1" >>confdefs.h

        cat conftest.i | grep gaierrval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for getaddrinfo() error EAI_SERVICE" >&5
$as_echo_n "checking for getaddrinfo() error EAI_SERVICE... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
int
main ()
{

#ifdef EAI_SERVICE
gaierrval: EAI_SERVICE
#else
#error "gai error value EAI_SERVICE not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        GAIERRVALS="$GAIERRVALS EAI_SERVICE"

$as_echo "#define HAVE_ERR_EAI_SERVICE 1" >>confdefs.h

        cat conftest.i | grep gaierrval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for getaddrinfo() error EAI_SOCKTYPE" >&5
$as_echo_n "checking for getaddrinfo() error EAI_SOCKTYPE... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
int
main ()
{

#ifdef EAI_SOCKTYPE
gaierrval: EAI_SOCKTYPE
#else
#error "gai error value EAI_SOCKTYPE not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        GAIERRVALS="$GAIERRVALS EAI_SOCKTYPE"

$as_echo "#define HAVE_ERR_EAI_SOCKTYPE 1" >>confdefs.h

        cat conftest.i | grep gaierrval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for getaddrinfo() error EAI_SYSTEM" >&5
$as_echo_n "checking for getaddrinfo() error EAI_SYSTEM... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
int
main ()
{

#ifdef EAI_SYSTEM
gaierrval: EAI_SYSTEM
#else
#error "gai error value EAI_SYSTEM not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        GAIERRVALS="$GAIERRVALS EAI_SYSTEM"

$as_echo "#define HAVE_ERR_EAI_SYSTEM 1" >>confdefs.h

        cat conftest.i | grep gaierrval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for getaddrinfo() error EAI_ALLDONE" >&5
$as_echo_n "checking for getaddrinfo() error EAI_ALLDONE... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
int
main ()
{

#ifdef EAI_ALLDONE
gaierrval: EAI_ALLDONE
#else
#error "gai error value EAI_ALLDONE not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        GAIERRVALS="$GAIERRVALS EAI_ALLDONE"

$as_echo "#define HAVE_ERR_EAI_ALLDONE 1" >>confdefs.h

        cat conftest.i | grep gaierrval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for getaddrinfo() error EAI_CANCELED" >&5
$as_echo_n "checking for getaddrinfo() error EAI_CANCELED... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
int
main ()
{

#ifdef EAI_CANCELED
gaierrval: EAI_CANCELED
#else
#error "gai error value EAI_CANCELED not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        GAIERRVALS="$GAIERRVALS EAI_CANCELED"

$as_echo "#define HAVE_ERR_EAI_CANCELED 1" >>confdefs.h

        cat conftest.i | grep gaierrval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for getaddrinfo() error EAI_IDN_ENCODE" >&5
$as_echo_n "checking for getaddrinfo() error EAI_IDN_ENCODE... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
int
main ()
{

#ifdef EAI_IDN_ENCODE
gaierrval: EAI_IDN_ENCODE
#else
#error "gai error value EAI_IDN_ENCODE not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        GAIERRVALS="$GAIERRVALS EAI_IDN_ENCODE"

$as_echo "#define HAVE_ERR_EAI_IDN_ENCODE 1" >>confdefs.h

        cat conftest.i | grep gaierrval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for getaddrinfo() error EAI_INPROGRESS" >&5
$as_echo_n "checking for getaddrinfo() error EAI_INPROGRESS... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
int
main ()
{

#ifdef EAI_INPROGRESS
gaierrval: EAI_INPROGRESS
#else
#error "gai error value EAI_INPROGRESS not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        GAIERRVALS="$GAIERRVALS EAI_INPROGRESS"

$as_echo "#define HAVE_ERR_EAI_INPROGRESS 1" >>confdefs.h

        cat conftest.i | grep gaierrval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for getaddrinfo() error EAI_INTR" >&5
$as_echo_n "checking for getaddrinfo() error EAI_INTR... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
int
main ()
{

#ifdef EAI_INTR
gaierrval: EAI_INTR
#else
#error "gai error value EAI_INTR not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        GAIERRVALS="$GAIERRVALS EAI_INTR"

$as_echo "#define HAVE_ERR_EAI_INTR 1" >>confdefs.h

        cat conftest.i | grep gaierrval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for getaddrinfo() error EAI_NOTCANCELED" >&5
$as_echo_n "checking for getaddrinfo() error EAI_NOTCANCELED... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
int
main ()
{

#ifdef EAI_NOTCANCELED
gaierrval: EAI_NOTCANCELED
#else
#error "gai error value EAI_NOTCANCELED not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        GAIERRVALS="$GAIERRVALS EAI_NOTCANCELED"

$as_echo "#define HAVE_ERR_EAI_NOTCANCELED 1" >>confdefs.h

        cat conftest.i | grep gaierrval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for getaddrinfo() error EAI_BADEXTFLAGS" >&5
$as_echo_n "checking for getaddrinfo() error EAI_BADEXTFLAGS... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
int
main ()
{

#ifdef EAI_BADEXTFLAGS
gaierrval: EAI_BADEXTFLAGS
#else
#error "gai error value EAI_BADEXTFLAGS not defined"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: OK" >&5
$as_echo "OK" >&6; }
        GAIERRVALS="$GAIERRVALS EAI_BADEXTFLAGS"

$as_echo "#define HAVE_ERR_EAI_BADEXTFLAGS 1" >>confdefs.h

        cat conftest.i | grep gaierrval: >>$ERRVALFILE
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest.err conftest.i conftest.$ac_ext

if test x"$GAIERRVALS" = x; then
    { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "error: no getaddrinfo() error symbols found
See \`config.log' for more details" "$LINENO" 5; }
fi
ERRNOCNT=`echo $GAIERRVALS | wc -w | awk '{ print $1 }'`

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking getaddrinfo() error symbols" >&5
$as_echo_n "checking getaddrinfo() error symbols... " >&6; }
unset UNIQUEVALS UNIQUESYMBOLS
if test -s $ERRVALFILE; then
    UNIQUEVALS=`sort $ERRVALFILE | uniq | wc -l | awk '{ print $1 }'`
    if test $UNIQUEVALS -le 1; then
        { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "error: getaddrinfo() error value count too low
See \`config.log' for more details" "$LINENO" 5; }
    fi
    UNIQUESYMBOLS=`cat $ERRVALFILE | wc -l | awk '{ print $1 }'`
    if test $UNIQUESYMBOLS -le 1; then
        { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "error: getaddrinfo() error symbol count too low
See \`config.log' for more details" "$LINENO" 5; }
    fi

    if test $ERRNOCNT -ne $UNIQUESYMBOLS; then
	{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "internal error: errno symbol count mismatch
See \`config.log' for more details" "$LINENO" 5; }
    fi

cat >>confdefs.h <<_ACEOF
#define UNIQUE_GAIERR_VALUES $UNIQUEVALS
_ACEOF

    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unique symbols: $UNIQUESYMBOLS, unique values: $UNIQUEVALS" >&5
$as_echo "unique symbols: $UNIQUESYMBOLS, unique values: $UNIQUEVALS" >&6; }
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 $? "error: unable to determine getaddrinfo() error symbol values
See \`config.log' for more details" "$LINENO" 5; }
fi

echo "" >>$ERRNOSRC
echo "static const errorsymboltable_t gaierrsymbolv[] = {" >>$ERRNOSRC

#generic list
for errno in $GAIERRVALS; do
    echo "   { \"$errno\",	$errno	}," >>$ERRNOSRC
done

#keyword alias list
maxaliaslen=0 #highest number of values for an alias

#error values that can match 'foo' keyword (if found on platform)
ERRNO_foo="..."
keyword="foo"
keycnt=0
for keyval in ${ERRNO_foo}; do
    for errno in $GAIERRVALS; do
	if test x"$keyval" = x"$errno"; then
	    echo "   { \"$keyword\",	$errno	}," >>$ERRNOSRC
	    keycnt=`expr $keycnt + 1`
	fi
    done
done

#any-error; alias for all values
keyword="dns-any"
keycnt=0
for errno in $GAIERRVALS; do
    echo "   { \"$keyword\",	$errno	}," >>$ERRNOSRC
    keycnt=`expr $keycnt + 1`
done

if test $keycnt -gt $maxaliaslen; then
    maxaliaslen=$keycnt
fi

echo "};" >>$ERRNOSRC


cat >>confdefs.h <<_ACEOF
#define MAX_GAIERR_VALUES_FOR_SYMBOL $maxaliaslen
_ACEOF

rm -f $ERRVALFILE


unset COMPATFUNCS

unset build_libscompat
#if test x"$prerelease" != x; then
#    #build libscompat for increased testing during prereleases, but
#    #only on platforms without complicated library systems
#    case $host in
#	 *-*-linux*)
#	    build_libscompat=t
#	    ;;
#    esac
#fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for timer macros" >&5
$as_echo_n "checking for timer macros... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/time.h>
int
main ()
{
struct timeval tv, tv2, tv3;

    tv.tv_sec = 0;
    tv.tv_usec = 0;
    tv2.tv_sec = 0;
    tv2.tv_usec = 0;
    tv3.tv_sec = 0;
    tv3.tv_usec = 0;

    timeradd(&tv, &tv2, &tv3);
    timersub(&tv3, &tv2, &tv);
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

$as_echo "#define HAVE_TIMER_MACROS 1" >>confdefs.h

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_exeext conftest.$ac_ext

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SIOCGIFHWADDR" >&5
$as_echo_n "checking for SIOCGIFHWADDR... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <stdio.h>
#include <sys/ioctl.h>
#include <net/if.h>
#ifndef SIOCGIFHWADDR
#error "SIOCGIFHWADDR not defined"
#endif

int
main ()
{

struct ifreq ifr;
unsigned char c;

c = 0;
memcpy(c, ifr.ifr_hwaddr.sa_data, 1);
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

$as_echo "#define HAVE_SIOCGIFHWADDR 1" >>confdefs.h

else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }

$as_echo "#define HAVE_SIOCGIFHWADDR 0" >>confdefs.h

fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fd_mask" >&5
$as_echo_n "checking for fd_mask... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#if HAVE_SYS_SELECT_H
#include <sys/select.h>
#endif /* HAVE_SYS_SELECT_H */
#include <sys/types.h>
#include <sys/time.h>
#include <string.h>
#include <unistd.h>

int
main ()
{
fd_mask foo;
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

$as_echo "#define HAVE_FDMASK 1" >>confdefs.h

else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }

$as_echo "#define HAVE_FDMASK 0" >>confdefs.h

fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CPU_EQUAL" >&5
$as_echo_n "checking for CPU_EQUAL... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#define _GNU_SOURCE
#include <sched.h>
int
main ()
{
   cpu_set_t set1, set2;
    if (CPU_EQUAL(&set1, &set2))
       return 0;

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

$as_echo "#define HAVE_CPU_EQUAL 1" >>confdefs.h

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_exeext conftest.$ac_ext

#no replacements for these
for ac_func in processor_bind
do :
  ac_fn_c_check_func "$LINENO" "processor_bind" "ac_cv_func_processor_bind"
if test "x$ac_cv_func_processor_bind" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_PROCESSOR_BIND 1
_ACEOF

fi
done


case $host in
#    *-*-freebsd[1-8]\.*)
    *-*-freebsd*) #XXX disable on all versions for now
	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: disabling sched_setscheduler code on this platform" >&5
$as_echo "$as_me: WARNING: disabling sched_setscheduler code on this platform" >&2;}
	;;
    *-*-netbsd*) #XXX appears to have similar problem as freebsd
	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: disabling sched_setscheduler code on this platform" >&5
$as_echo "$as_me: WARNING: disabling sched_setscheduler code on this platform" >&2;}
	;;
    *)
	for ac_func in sched_setscheduler
do :
  ac_fn_c_check_func "$LINENO" "sched_setscheduler" "ac_cv_func_sched_setscheduler"
if test "x$ac_cv_func_sched_setscheduler" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_SCHED_SETSCHEDULER 1
_ACEOF

fi
done

	;;
esac

for ac_header in sched.h
do :
  ac_fn_c_check_header_mongrel "$LINENO" "sched.h" "ac_cv_header_sched_h" "$ac_includes_default"
if test "x$ac_cv_header_sched_h" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_SCHED_H 1
_ACEOF

fi

done


#getpassphrase() is not limited to 9 character passwords on SunOS
ac_fn_c_check_func "$LINENO" "getpassphrase" "ac_cv_func_getpassphrase"
if test "x$ac_cv_func_getpassphrase" = xyes; then :

$as_echo "#define getpass(p) getpassphrase(p)" >>confdefs.h

fi


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sched_setaffinity" >&5
$as_echo_n "checking for sched_setaffinity... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sched.h>

int
main ()
{
   cpu_set_t set1;
    sched_getaffinity(0, 1, &set1);
    sched_setaffinity(0, 1, &set1);

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

$as_echo "#define HAVE_SCHED_SETAFFINITY 1" >>confdefs.h

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

for ac_header in ifaddrs.h
do :
  ac_fn_c_check_header_mongrel "$LINENO" "ifaddrs.h" "ac_cv_header_ifaddrs_h" "$ac_includes_default"
if test "x$ac_cv_header_ifaddrs_h" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_IFADDRS_H 1
_ACEOF

fi

done


for ac_func in daemon difftime getifaddrs freeifaddrs hstrerror
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"
if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
  cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF

fi
done

for ac_func in inet_pton issetugid memmove seteuid setegid
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"
if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
  cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF

fi
done

for ac_func in setproctitle strvis vsyslog bzero strlcpy backtrace
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"
if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
  cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF

fi
done

#inet_ntoa - only checked for incorrect behavior

#try to detect gcc bug (irix 64 problem, affects among others inet_ntoa)
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for incorrect inet_ntoa behaviour" >&5
$as_echo_n "checking for incorrect inet_ntoa behaviour... " >&6; }
if test "$cross_compiling" = yes; then :
       { $as_echo "$as_me:${as_lineno-$LINENO}: result: assuming no" >&5
$as_echo "assuming no" >&6; }
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <sys/socket.h>
int main(void)
{
    struct sockaddr_in addr;
    char *a, *b = "195.195.195.195";
    addr.sin_addr.s_addr = inet_addr(b);
    a = inet_ntoa(addr.sin_addr);
    if (strcmp(a, b) == 0)
	return 1;
    else
	return 0;
}

_ACEOF
if ac_fn_c_try_run "$LINENO"; then :

$as_echo "#define HAVE_BROKEN_INET_NTOA 1" >>confdefs.h

    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
    ac_cv_func_inet_ntoa=no
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi


#AC_CHECK_FUNCS will add HAVE_foo define as long as function exists,
#check overselves as we only want define set if function is also working.
ac_cv_func_pselect=no
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working pselect()" >&5
$as_echo_n "checking for working pselect()... " >&6; }
if test "$cross_compiling" = yes; then :
       { $as_echo "$as_me:${as_lineno-$LINENO}: result: assuming no" >&5
$as_echo "assuming no" >&6; }
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/time.h>
#include <sys/types.h>
#include <errno.h>
#include <stdio.h>
#include <unistd.h>

int
main(void)
{
   struct timespec ts = { 0, 0 };

   errno = 0;
   if (pselect(0, NULL, NULL, NULL, &ts, NULL) == 0) {
      if (errno == ENOSYS) {
         fprintf(stderr, "pselect: error: returns 0 but errno set to ENOSYS\n");
         return -1;
      } else {
         fprintf(stderr, "pselect: working as expected: returns 0 and errno not ENOSYS (errno = %d)\n", errno);
         return 0;
      }
   } else {
      perror("pselect");
      return -1;
   }
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
     ac_cv_func_pselect=yes

$as_echo "#define HAVE_PSELECT 1" >>confdefs.h

else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi


#AC_CHECK_FUNCS will add HAVE_foo define as long as function exists,
#check overselves as we only want define set if function is also working.
ac_cv_func_sockatmark=no
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working sockatmark" >&5
$as_echo_n "checking for working sockatmark... " >&6; }
if test "$cross_compiling" = yes; then :
       { $as_echo "$as_me:${as_lineno-$LINENO}: result: assuming no" >&5
$as_echo "assuming no" >&6; }
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>

int
main()
{
    int s;
    int r;

    if ((s = socket(AF_INET, SOCK_STREAM, 0)) == -1)
	return 1;
    if ((r = sockatmark(s)) == -1)
	return 1;
    return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
     ac_cv_func_sockatmark=yes

$as_echo "#define HAVE_SOCKATMARK 1" >>confdefs.h

else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi


#XXX
#if `uname` != OpenBSD; then
#   ac_cv_func_getifaddrs=no
#   AC_MSG_WARN([notice: using libscompat getifaddrs() function])
#fi

#only compile files that are needed, client
unset LIBSCSRC LIBDSCSRC
CLIENTONLY="issetugid"
SERVERONLY="daemon seteuid sockatmark"
SHAREDFUNCS="getifaddrs hstrerror inet_ntoa inet_pton memmove pselect setproctitle strlcpy strvis vsyslog"
#XXXold?: difftime
for func in $CLIENTONLY $SHAREDFUNCS; do
    var=ac_cv_func_${func}
    if test ! -s "libscompat/${func}.c"; then
	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: error: libscompat file for $func missing" >&5
$as_echo "$as_me: WARNING: error: libscompat file for $func missing" >&2;}
	exit 1
    fi
    if eval "test x\"\$${var}\" = xno"; then
	LIBSCSRC="${LIBSCSRC}${LIBSCSRC:+ }${func}.lo"
	LIBDSCSRC="${LIBDSCSRC}${LIBDSCSRC:+ }libdsocks_la-${func}.lo"
	COMPATFUNCS="$COMPATFUNCS${COMPATFUNCS:+ }$func"
    fi
done
if test x"${build_libscompat}" != x; then
   unset LIBSCSRC LIBDSCSRC #link directly with libscompat i prerelease
fi



#server
unset SOCKDCOMPAT
for func in $SERVERONLY $SHAREDFUNCS; do
    var=ac_cv_func_${func}
    if test ! -s "libscompat/${func}.c"; then
	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: error: libscompat file for $func missing" >&5
$as_echo "$as_me: WARNING: error: libscompat file for $func missing" >&2;}
	exit 1
    fi
    if eval "test x\"\$${var}\" = xno"; then
	SOCKDCOMPAT="${SOCKDCOMPAT}${SOCKDCOMPAT:+ }${func}.${OBJEXT}"
	COMPATFUNCS="$COMPATFUNCS${COMPATFUNCS:+ }$func"
    fi
done
if test x"${build_libscompat}" != x; then
   unset SOCKDCOMPAT #link directly with libscompat i prerelease
   COMPATFUNCS="$CLIENTONLY $SERVERONLY $SHAREDFUNCS"
fi
COMPATFUNCS=`echo $COMPATFUNCS | xargs -n1 | sort | uniq | xargs`


if test x"$LIBSCSRC" != x; then
   LINTSCCOMPATLIB="-lscompat"
fi




cat >>confdefs.h <<_ACEOF
#define DANTE_COMPATFILES "$COMPATFUNCS"
_ACEOF


if test x"${ac_cv_func_bzero}" = xno; then

$as_echo "#define bzero(b, len) memset((b), 0, (len))" >>confdefs.h

fi


#causes problems with packaging, allow test to be turned off

# Check whether --with-glibc-secure was given.
if test "${with_glibc_secure+set}" = set; then :
  withval=$with_glibc_secure; GLIBCSEC=$withval
fi


if test "${GLIBCSEC}" != no; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __libc_enable_secure" >&5
$as_echo_n "checking for __libc_enable_secure... " >&6; }
    if test "$cross_compiling" = yes; then :
      { $as_echo "$as_me:${as_lineno-$LINENO}: result: assuming no" >&5
$as_echo "assuming no" >&6; }
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

extern int __libc_enable_secure;

int main()
{
    if (__libc_enable_secure == 0)
	return 0;

	return 1;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

$as_echo "#define HAVE_LIBC_ENABLE_SECURE 1" >>confdefs.h

else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi

fi

if test x"$GLIBCSEC" = xno; then

$as_echo "#define HAVE_LIBC_ENABLE_SECURE_DISABLED 1" >>confdefs.h

fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for FIONREAD socket support" >&5
$as_echo_n "checking for FIONREAD socket support... " >&6; }
if test "$cross_compiling" = yes; then :
       { $as_echo "$as_me:${as_lineno-$LINENO}: result: assuming no" >&5
$as_echo "assuming no" >&6; }
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/ioctl.h>
#include <sys/socket.h>

int
main(void)
{
	int bufdat, s;

	if ((s = socket(PF_INET, SOCK_STREAM, 0)) == -1) {
	   perror("socket");
	   return -1;
	}

	if (ioctl(s, FIONREAD, &bufdat) == -1) {
	   perror("ioctl");
	   return -1;
	}

	return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

$as_echo "#define HAVE_RECVBUF_IOCTL 1" >>confdefs.h


$as_echo "#define RECVBUF_IOCTLVAL FIONREAD" >>confdefs.h

else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for FIONWRITE socket support" >&5
$as_echo_n "checking for FIONWRITE socket support... " >&6; }
if test "$cross_compiling" = yes; then :
       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/ioctl.h>
#include <sys/socket.h>

int
main(void)
{
	int bufdat, s;

	if ((s = socket(PF_INET, SOCK_STREAM, 0)) == -1) {
	   perror("socket");
	   return -1;
	}

	if (ioctl(s, FIONWRITE, &bufdat) == -1) {
	   perror("ioctl");
	   return -1;
	}

	return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

$as_echo "#define HAVE_SENDBUF_IOCTL 1" >>confdefs.h


$as_echo "#define SENDBUF_IOCTLVAL FIONWRITE" >>confdefs.h

else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }

     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for TIOCOUTQ socket support" >&5
$as_echo_n "checking for TIOCOUTQ socket support... " >&6; }
     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_fn_error $? "cannot run test program while cross compiling
See \`config.log' for more details" "$LINENO" 5; }
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/ioctl.h>
#include <sys/socket.h>

int
main(void)
{
	int bufdat, s;

	if ((s = socket(PF_INET, SOCK_STREAM, 0)) == -1) {
	   perror("socket");
	   return -1;
	}

	if (ioctl(s, TIOCOUTQ, &bufdat) == -1) {
	   perror("ioctl");
	   return -1;
	}

	return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

$as_echo "#define HAVE_SENDBUF_IOCTL TIOCOUTQ" >>confdefs.h


$as_echo "#define SENDBUF_IOCTLVAL TIOCOUTQ" >>confdefs.h

else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi

fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi


#set to a high value for systems where this is possible
case $host in
    *-*-linux-* | *-*-aix*)
	#nada
	;;

    *)
	CPPFLAGS="$CPPFLAGS${CPPFLAGS:+ }-DFD_SETSIZE=65536"
	;;
esac

#on most platforms FD_SETSIZE can be ignored
case $host in
    *-*-solaris*)

$as_echo "#define FD_SETSIZE_LIMITS_SELECT 1" >>confdefs.h

	;;
    *)

$as_echo "#define FD_SETSIZE_LIMITS_SELECT 0" >>confdefs.h

	;;
esac

#lack of unified buffers result in less optimal shmem.c performance
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sufficiently unified buffer cache" >&5
$as_echo_n "checking for sufficiently unified buffer cache... " >&6; }
 if test "$cross_compiling" = yes; then :
         { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: assuming buffercache not unified on this platform" >&5
$as_echo "$as_me: WARNING: assuming buffercache not unified on this platform" >&2;}
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <sys/types.h>
#include <sys/uio.h>
#include <sys/mman.h>

#include <assert.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <fcntl.h>

#ifndef MAP_FAILED
#define MAP_FAILED (-1)
#endif

#define ELEMENTS(array) (sizeof(array) / sizeof(array[0]))
#define FILENAME        ".tmpfile"
#define TESTITERATIONS  (128)

int
main(void)
{
   FILE *fp;
   size_t testi, i;
   int array[2];

   assert(ELEMENTS(array) % 2 == 0);

   if ((fp = fopen(FILENAME, "w+")) == NULL) {
      fprintf(stderr, "fopen(%s) failed: %s", FILENAME, strerror(errno));
      exit(1);
   }

   if (ftruncate(fileno(fp), (off_t)sizeof(array)) == -1) {
      perror("ftruncate()");
      exit(1);
   }

   fprintf(stderr, "created file %s of size %lu, mmap()'ing it  ...\n",
          FILENAME, (unsigned long)sizeof(array));

   fclose(fp);

   for (testi = 0; testi < TESTITERATIONS; ++testi) {
      /*
       * This test mmap(2)'s a file, moves some of the mmap(2)-ed memory
       * around, unmap(2)s, and then truncate(2)s the file to a smaller size.
       *
       * Afterwards it again mmap(2)'s the same file using the smaller
       * (truncated) size and checks that the contents, up to the smaller
       * truncated size, is correct and the same as it was before the unmap(2).
       *
       * On OpenBSD this for some reason fails and we end up with
       * old data from the previous iteration in the remapped array. :-/
       */
      off_t truncatedsize;
      int *map, beforeunmap[ELEMENTS(array)], afterremap[ELEMENTS(array)];

      /* just to make sure user does not change one but not the other. */
      assert(sizeof(*map) == sizeof(*array));

      for (i = 0; i < ELEMENTS(array); ++i)
         array[i] = (int)random();

      if ((fp = fopen(FILENAME, "r+")) == NULL) {
         fprintf(stderr, "fopen(%s) failed: %s", FILENAME, strerror(errno));
         exit(1);
      }

      if ((map = mmap(NULL,
                      sizeof(array),
                      PROT_READ | PROT_WRITE,
                      MAP_SHARED,
                      fileno(fp),
                      (off_t)0)) == MAP_FAILED) {
         perror("mmap()");
         exit(1);
      }

      fclose(fp);

      memcpy(map,         array, sizeof(array));
      memcpy(beforeunmap, map,   sizeof(array));

      assert(memcmp(map,         array, sizeof(array)) == 0);
      assert(memcmp(beforeunmap, array, sizeof(array)) == 0);

      array[0] = array[1]; /* 0xdeadbeef */
      map[0]   = array[1]; /* 0xdeadbeef */

      memcpy(beforeunmap, map, sizeof(array));

      assert(memcmp(map,         array, sizeof(array)) == 0);
      assert(memcmp(beforeunmap, array, sizeof(array)) == 0);

      truncatedsize = (off_t)(sizeof(array) / 2);
      assert(memcmp(map,         array, (size_t)truncatedsize) == 0);
      assert(memcmp(beforeunmap, array, (size_t)truncatedsize) == 0);

#if 0
      /*
       * with a unified buffercache the below msync(2) should not
       * be needed as the subsequent open(2) and mmap(2)-ed should
       * read from the buffercache if the data is still there, or
       * from file if already flushed from cache to disk.
       */

      if (msync(map, truncatedsize, MS_ASYNC) == -1) {
         perror("msync(2)");
         exit(1);
      }
#endif
      if (munmap(map, sizeof(array)) == -1) {
         perror("munmap()");
         exit(1);
      }

      if (truncate(FILENAME, truncatedsize) == -1) {
         perror("truncate()");
         exit(1);
      }

      if ((fp = fopen(FILENAME, "r+")) == NULL) {
         fprintf(stderr, "fopen(%s) failed: %s", FILENAME, strerror(errno));
         exit(1);
      }

      if ((map = mmap(NULL,
                      truncatedsize,
                      PROT_READ | PROT_WRITE,
                      MAP_SHARED,
                      fileno(fp),
                      (off_t)0)) == MAP_FAILED) {
         perror("mmap()");
         exit(1);
      }

      fclose(fp);

      bzero(afterremap, sizeof(afterremap));
      memcpy(afterremap, map, (size_t)truncatedsize);

      if (beforeunmap[0] != afterremap[0]) {
         fprintf(stderr, "on iteration %lu re-mapped() array index 0 of size %lu "
                "does not match what we unmapped() previously\n",
                (unsigned long)testi + 1,
                (unsigned long)sizeof(beforeunmap[0]));

         exit(1);
      }

      if (memcmp(beforeunmap, afterremap, (size_t)truncatedsize) != 0) {
         fprintf(stderr, "on iteration %lu re-mapped() data of size %lu (%s) "
                "does not match what we unmapped() previously\n",
                (unsigned long)testi + 1,
                (unsigned long)truncatedsize,
                truncatedsize == sizeof(array) ? "not truncated" : "truncated");

         exit(1);
      }

      if (truncate(FILENAME, (size_t)sizeof(array)) == -1) {
         perror("truncate()");
         exit(1);
      }
   }

   fprintf(stderr, "tested through %lu iterations, all ok\n", (unsigned long)testi);

   if (unlink(FILENAME) != 0) {
      perror("unlink()");
      exit(1);
   }

   return 0;
}

_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

$as_echo "#define HAVE_UNIFIED_BUFFERCACHE 1" >>confdefs.h

else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: assuming buffercache not unified on this platform" >&5
$as_echo "$as_me: WARNING: assuming buffercache not unified on this platform" >&2;}
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi


#XXX should be in osdep.m4
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing clock_gettime" >&5
$as_echo_n "checking for library containing clock_gettime... " >&6; }
if ${ac_cv_search_clock_gettime+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* 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 clock_gettime ();
int
main ()
{
return clock_gettime ();
  ;
  return 0;
}
_ACEOF
for ac_lib in '' rt; 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_clock_gettime=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext
  if ${ac_cv_search_clock_gettime+:} false; then :
  break
fi
done
if ${ac_cv_search_clock_gettime+:} false; then :

else
  ac_cv_search_clock_gettime=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_clock_gettime" >&5
$as_echo "$ac_cv_search_clock_gettime" >&6; }
ac_res=$ac_cv_search_clock_gettime
if test "$ac_res" != no; then :
  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"

fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CLOCK_MONOTONIC clock_gettime() support" >&5
$as_echo_n "checking for CLOCK_MONOTONIC clock_gettime() support... " >&6; }
if test "$cross_compiling" = yes; then :
       { $as_echo "$as_me:${as_lineno-$LINENO}: result: assuming no" >&5
$as_echo "assuming no" >&6; }
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/time.h>
#include <time.h>

int
main(void)
{
	struct timespec ts;

	if (clock_gettime(CLOCK_MONOTONIC, &ts) == -1) {
	   perror("clock_gettime");
	   return -1;
	}

	return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

$as_echo "#define HAVE_CLOCK_GETTIME_MONOTONIC 1" >>confdefs.h

else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi



case $host in
    *-*-osf*)
	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OSF support might be removed in the near future." >&5
$as_echo "$as_me: WARNING: OSF support might be removed in the near future." >&2;}
	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Please contact dante-bugs@inet.no if you are using this platform." >&5
$as_echo "$as_me: WARNING: Please contact dante-bugs@inet.no if you are using this platform." >&2;}
	exit 1
	;;
esac

#known keywords for --enable/disable-foo(=yes/no)?
LTINTERNAL="dlopen|dlopen_self|dlopen_self_static|fast_install|libtool_lock|win32_dll|shared_with_static_runtimes|shared_with_static_runtimes_CXX|shared_with_static_runtimes_F77|option_checking|silent_rules"
KNOWN_KEYWORDS="$LTINTERNAL|shared|static|debug|warnings|diagnostic|profiling|coverage|linting|libwrap|preload|serverdl|clientdl|internal|pidfile|drt_fallback|release|dependency_tracking|largefile|livedebug|clientbuild|serverbuild|client|server|libcfail"
for keyword in `set | egrep '^enable_' | sed -e 's/^enable_//' | \
                sed -e 's/=.*$//'`; do
    echo $keyword | egrep "^(${KNOWN_KEYWORDS})$" > /dev/null
    if test $? -ne 0; then
	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unknown --enable/disable keyword '$keyword'" >&5
$as_echo "$as_me: WARNING: unknown --enable/disable keyword '$keyword'" >&2;}
	#check is not entirely reliable, only exit in prerelease
	if test x"$prerelease" != x; then
	    exit 1
	fi
    fi
done

#known keywords for --with/without-foo?
LTINTERNAL="gnu_ld|pic|tags|gnu_ldcxx|sysroot"
KNOWN_KEYWORDS="$LTINTERNAL|socks_conf|sockd_conf|pidfile|iomax|negmax|bufsize|libc|upnp|pam|bsdauth|full_env|gssapi_path|gssapi|krb5_config|krb5|krb5_path|pac|ldap|ldap_path|sasl|sasl_path|glibc_secure|libwrap"
for keyword in `set | egrep '^with_' | sed -e 's/^with_//' | \
                sed -e 's/=.*$//'`; do
    echo $keyword | egrep "^(${KNOWN_KEYWORDS})$" > /dev/null
    if test $? -ne 0; then
	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unknown --with/without keyword '$keyword'" >&5
$as_echo "$as_me: WARNING: unknown --with/without keyword '$keyword'" >&2;}
	#check is not entirely reliable, only exit in prerelease
	if test x"$prerelease" != x; then
	    exit 1
	fi
    fi
done



unset NOCLIENT
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether client compilation should be disabled" >&5
$as_echo_n "checking whether client compilation should be disabled... " >&6; }
# Check whether --enable-client was given.
if test "${enable_client+set}" = set; then :
  enableval=$enable_client; if test x"$enableval" = xno; then
    NOCLIENT="Disabled, using --disable-client"
 fi
fi

if test x"$NOCLIENT" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
    CONFVAR="${CONFVAR}${CONFVAR:+ }noclient"
else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
    CONFVAR="${CONFVAR}${CONFVAR:+ }client"
fi

unset NOSERVER
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether server compilation should be disabled" >&5
$as_echo_n "checking whether server compilation should be disabled... " >&6; }
# Check whether --enable-server was given.
if test "${enable_server+set}" = set; then :
  enableval=$enable_server; if test x"$enableval" = xno; then
    NOSERVER="Disabled, using --disable-server"
 fi
fi

if test x"$NOSERVER" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
    CONFVAR="${CONFVAR}${CONFVAR:+ }noserver"
else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
    CONFVAR="${CONFVAR}${CONFVAR:+ }server"
fi

if test x"$NOCLIENT" != x -a x"$NOSERVER" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot disable both client and server compilation" >&5
$as_echo "$as_me: WARNING: cannot disable both client and server compilation" >&2;}
    exit 1
fi

#allow default file locations to be overridden
unset SOCKSCONFPATH
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for client configuration file location" >&5
$as_echo_n "checking for client configuration file location... " >&6; }

# Check whether --with-socks-conf was given.
if test "${with_socks_conf+set}" = set; then :
  withval=$with_socks_conf; SOCKSCONFPATH="$withval"
else
  #set default socks.conf path
 SOCKSCONFPATH="/etc/socks.conf"
fi


cat >>confdefs.h <<_ACEOF
#define SOCKS_CONFIGFILE "$SOCKSCONFPATH"
_ACEOF

{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $SOCKSCONFPATH" >&5
$as_echo "$SOCKSCONFPATH" >&6; }

unset SOCKDCONFPATH
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for server configuration file location" >&5
$as_echo_n "checking for server configuration file location... " >&6; }

# Check whether --with-sockd-conf was given.
if test "${with_sockd_conf+set}" = set; then :
  withval=$with_sockd_conf; SOCKDCONFPATH="$withval"
else
  #set default sockd.conf path
 SOCKDCONFPATH="/etc/${SERVNAME}.conf"
fi


cat >>confdefs.h <<_ACEOF
#define SOCKD_CONFIGFILE "$SOCKDCONFPATH"
_ACEOF

{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $SOCKDCONFPATH" >&5
$as_echo "$SOCKDCONFPATH" >&6; }

unset NOBSDAUTH
for ac_header in bsd_auth.h
do :
  ac_fn_c_check_header_mongrel "$LINENO" "bsd_auth.h" "ac_cv_header_bsd_auth_h" "$ac_includes_default"
if test "x$ac_cv_header_bsd_auth_h" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_BSD_AUTH_H 1
_ACEOF

fi

done

ac_fn_c_check_func "$LINENO" "auth_userokay" "ac_cv_func_auth_userokay"
if test "x$ac_cv_func_auth_userokay" = xyes; then :

fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for bsd authentication" >&5
$as_echo_n "checking for bsd authentication... " >&6; }

# Check whether --with-bsdauth was given.
if test "${with_bsdauth+set}" = set; then :
  withval=$with_bsdauth; if test x"$withval" = xno; then
    NOBSDAUTH="Disabled, using --without-bsdauth"
 fi
fi


if test x"$NOBSDAUTH" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: disabled" >&5
$as_echo "disabled" >&6; }
else
    #look for bsd authentication support
    if test x"${ac_cv_header_bsd_auth_h}" = xno; then
	NOBSDAUTH="Disabled, usable bsd_auth.h not found"
	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no, usable bsd_auth.h not found" >&5
$as_echo "no, usable bsd_auth.h not found" >&6; }
    else
	if test x"${ac_cv_func_auth_userokay}" = xno; then
	    NOBSDAUTH="Disabled, auth_userokay function not found"
	    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, auth_userokay function not found" >&5
$as_echo "no, auth_userokay function not found" >&6; }
	else

$as_echo "#define HAVE_BSDAUTH 1" >>confdefs.h

	    FEAT="$FEAT${FEAT:+ }bsdauth"
	    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
	fi
    fi
fi

#only relevant for platforms lacking issetugid()
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking full environment usage" >&5
$as_echo_n "checking full environment usage... " >&6; }

# Check whether --with-full-env was given.
if test "${with_full_env+set}" = set; then :
  withval=$with_full_env; CONFENV=$withval
fi

if test x"$CONFENV" = xno; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }

$as_echo "#define HAVE_CONFENV_DISABLE 1" >>confdefs.h

else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking direct route fallback in client enabled" >&5
$as_echo_n "checking direct route fallback in client enabled... " >&6; }
# Check whether --enable-drt-fallback was given.
if test "${enable_drt_fallback+set}" = set; then :
  enableval=$enable_drt_fallback;
else
  #disable fallback by default
 enable_drt_fallback=no
fi

if test x"${enable_drt_fallback}" = xyes; then

$as_echo "#define SOCKS_DIRECTROUTE_FALLBACK 1" >>confdefs.h

    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
else

$as_echo "#define SOCKS_DIRECTROUTE_FALLBACK 0" >>confdefs.h

    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi

#library checks for preloading code

#A good time to save the cache (preload code might fail)
cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
# tests run on this system so they can be shared between configure
# scripts and configure runs, see configure's option --config-cache.
# It is not useful on other systems.  If it contains results you don't
# want to keep, you may remove or edit it.
#
# config.status only pays attention to the cache file if you give it
# the --recheck option to rerun configure.
#
# `ac_cv_env_foo' variables (set or unset) will be overridden when
# loading this file, other *unset* `ac_cv_foo' will be assigned the
# following values.

_ACEOF

# The following way of writing the cache mishandles newlines in values,
# but we know of no workaround that is simple, portable, and efficient.
# So, we kill variables containing newlines.
# 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.
(
  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

  (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 \.
      sed -n \
	"s/'/'\\\\''/g;
	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
      ;; #(
    *)
      # `set' quotes correctly as required by POSIX, so do not add quotes.
      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
      ;;
    esac |
    sort
) |
  sed '
     /^ac_cv_env_/b end
     t clear
     :clear
     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
     t end
     s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
     :end' >>confcache
if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
  if test -w "$cache_file"; then
    if test "x$cache_file" != "x/dev/null"; then
      { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
$as_echo "$as_me: updating cache $cache_file" >&6;}
      if test ! -f "$cache_file" || test -h "$cache_file"; then
	cat confcache >"$cache_file"
      else
        case $cache_file in #(
        */* | ?:*)
	  mv -f confcache "$cache_file"$$ &&
	  mv -f "$cache_file"$$ "$cache_file" ;; #(
        *)
	  mv -f confcache "$cache_file" ;;
	esac
      fi
    fi
  else
    { $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
rm -f confcache

SOLIB_POSTFIX=so
unset SOFULLPATH

case $host in
    *-*-aix*)
	PRELOAD="LDR"
	SOLIB_POSTFIX="a(shr.o)"
	#XXX final part might vary, LDR_PRELOAD64 shr_64.o?
	#XXX libdsocks_64.so or similar for 64 bit
	#XXX extra variable for last part (not part of file name)
	SOFULLPATH=t
	;;

    alpha*-dec-osf*)

$as_echo "#define HAVE_DEC_PROTO 1" >>confdefs.h


$as_echo "#define HAVE_EXTRA_OSF_SYMBOLS 1" >>confdefs.h

	PRELOAD="RLD"
	;;

    *-*-hpux*)
	SOLIB_POSTFIX=sl
	;;

    *-*-darwin*)
	SOLIB_POSTFIX=dylib
	PRELOAD="DYLD"
	SOFULLPATH=t
	;;

    *-*-irix*)
	PRELOAD="RLD"
	;;

    *-*-cygwin)
	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: disabling preloading" >&5
$as_echo "$as_me: WARNING: disabling preloading" >&2;}
	no_preload_client=t
	no_preload_server=t
	no_preload=t

$as_echo "#define HAVE_NO_RESOLVESTUFF 1" >>confdefs.h

	;;
esac



case $PRELOAD in
    DYLD)
	PRELOAD_SEPERATOR=":"
	PRELOAD_VARIABLE="DYLD_INSERT_LIBRARIES"
	PRELOAD_POSTFIX=""
	;;

    RLD)
	PRELOAD_SEPERATOR=":"
	PRELOAD_VARIABLE="_RLD_LIST"
	PRELOAD_POSTFIX="DEFAULT"
	;;

    LDR)
	PRELOAD_SEPERATOR=":"
	PRELOAD_VARIABLE="LDR_PRELOAD"
	PRELOAD_POSTFIX=""
	;;

    *)
	PRELOAD_SEPERATOR=" "
	PRELOAD_VARIABLE="LD_PRELOAD"
	PRELOAD_POSTFIX=""
	;;
esac





## preload related tests
#build without support for preloading?

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for RES_INIT in resolv.h" >&5
$as_echo_n "checking for RES_INIT in resolv.h... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <netinet/in.h>
#include <arpa/nameser.h>
#include <resolv.h>

int
main ()
{

#ifndef RES_INIT
#error "no RES_INIT"
#endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }

$as_echo "#define HAVE_NO_RESOLVESTUFF 1" >>confdefs.h

fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

# HAVE_DLFCN_H only determines if the include file exists
ac_fn_c_check_header_mongrel "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default"
if test "x$ac_cv_header_dlfcn_h" = xyes; then :

$as_echo "#define HAVE_DLFCN_H 1" >>confdefs.h

 have_dlfcn_h=t
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: dlfcn.h missing, preloading disabled" >&5
$as_echo "$as_me: WARNING: dlfcn.h missing, preloading disabled" >&2;}
 no_preload_client=t
 no_preload_server=t
 no_preload=t
fi



if test x"${no_preload}" = x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether all interposition usage should be disabled" >&5
$as_echo_n "checking whether all interposition usage should be disabled... " >&6; }
    # Check whether --enable-preload was given.
if test "${enable_preload+set}" = set; then :
  enableval=$enable_preload; if test x"$enableval" = xno; then
	     no_preload_client=t
	     no_preload_server=t
	     no_preload=t
	     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
	 else
	     { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
	 fi
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi

fi

if test x"${no_preload}" = x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether interposition in the client should be disabled" >&5
$as_echo_n "checking whether interposition in the client should be disabled... " >&6; }
    # Check whether --enable-clientdl was given.
if test "${enable_clientdl+set}" = set; then :
  enableval=$enable_clientdl; if test x"$enableval" = xno; then
             no_preload_client=t
	     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
         else
             { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
	 fi
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether interposition in the server should be disabled" >&5
$as_echo_n "checking whether interposition in the server should be disabled... " >&6; }
    # Check whether --enable-serverdl was given.
if test "${enable_serverdl+set}" = set; then :
  enableval=$enable_serverdl; if test x"$enableval" = xno; then
             no_preload_server=t
	     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
         else
             if test x"$enableval" = xyes; then
		 serverdl_always_on=t
	     fi
	     { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
	 fi
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi

fi

 if test x"$no_preload_server" = x; then
  SERVER_INTERPOSITION_TRUE=
  SERVER_INTERPOSITION_FALSE='#'
else
  SERVER_INTERPOSITION_TRUE='#'
  SERVER_INTERPOSITION_FALSE=
fi

 if test x"$serverdl_always_on" = xt; then
  SERVER_INTERPOSITION_ALWAYS_TRUE=
  SERVER_INTERPOSITION_ALWAYS_FALSE='#'
else
  SERVER_INTERPOSITION_ALWAYS_TRUE='#'
  SERVER_INTERPOSITION_ALWAYS_FALSE=
fi


if test x"${no_preload_client}" = xt -a x"${no_preload_server}" = xt; then
    unset preload_enabled
else
    preload_enabled=t
fi

unset have_dlflag
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for DL_LAZY" >&5
$as_echo_n "checking for DL_LAZY... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <dlfcn.h>
#ifdef DL_LAZY
yes
#endif

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "yes" >/dev/null 2>&1; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
    have_dlflag=t
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest*


if test x"${have_dlflag}" = x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for RTLD_MEMBER" >&5
$as_echo_n "checking for RTLD_MEMBER... " >&6; }
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <dlfcn.h>
#ifdef RTLD_MEMBER
# ifdef RTLD_LAZY
yes
# endif
#endif

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "yes" >/dev/null 2>&1; then :

$as_echo "#define DL_LAZY RTLD_LAZY|RTLD_MEMBER" >>confdefs.h

	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
	have_dlflag=t
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest*

fi

if test x"${have_dlflag}" = x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking to see if dlopen param has DL_ and not RTLD_ prefix" >&5
$as_echo_n "checking to see if dlopen param has DL_ and not RTLD_ prefix... " >&6; }
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <dlfcn.h>
#ifdef DL_LAZY
#else
# ifdef RTLD_LAZY
yes
# endif
#endif

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "yes" >/dev/null 2>&1; then :

$as_echo "#define DL_LAZY RTLD_LAZY" >>confdefs.h

	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
	have_dlflag=t
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest*

fi

for ac_func in __fprintf_chk __vfprintf_chk __read_chk
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"
if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
  cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF

fi
done


for ac_func in _IO_getc _IO_putc
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"
if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
  cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF

fi
done


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing getaddrinfo" >&5
$as_echo_n "checking for library containing getaddrinfo... " >&6; }
if ${ac_cv_search_getaddrinfo+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* 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 getaddrinfo ();
int
main ()
{
return getaddrinfo ();
  ;
  return 0;
}
_ACEOF
for ac_lib in '' socket; 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_getaddrinfo=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext
  if ${ac_cv_search_getaddrinfo+:} false; then :
  break
fi
done
if ${ac_cv_search_getaddrinfo+:} false; then :

else
  ac_cv_search_getaddrinfo=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_getaddrinfo" >&5
$as_echo "$ac_cv_search_getaddrinfo" >&6; }
ac_res=$ac_cv_search_getaddrinfo
if test "$ac_res" != no; then :
  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"

fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing getnameinfo" >&5
$as_echo_n "checking for library containing getnameinfo... " >&6; }
if ${ac_cv_search_getnameinfo+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* 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 getnameinfo ();
int
main ()
{
return getnameinfo ();
  ;
  return 0;
}
_ACEOF
for ac_lib in '' socket; 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_getnameinfo=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext
  if ${ac_cv_search_getnameinfo+:} false; then :
  break
fi
done
if ${ac_cv_search_getnameinfo+:} false; then :

else
  ac_cv_search_getnameinfo=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_getnameinfo" >&5
$as_echo "$ac_cv_search_getnameinfo" >&6; }
ac_res=$ac_cv_search_getnameinfo
if test "$ac_res" != no; then :
  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"

fi

for ac_func in gethostbyname2 getaddrinfo getnameinfo freeaddrinfo
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"
if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
  cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF

fi
done

for ac_func in getipnodebyname
do :
  ac_fn_c_check_func "$LINENO" "getipnodebyname" "ac_cv_func_getipnodebyname"
if test "x$ac_cv_func_getipnodebyname" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_GETIPNODEBYNAME 1
_ACEOF

fi
done


#find prototypes from dlib/interposition.c
if test x"${preload_enabled}" = xt; then

    unset failproto
    preprotoCFLAGS="$CFLAGS"
#   CFLAGS="$CFLAGS -Werror"

    #prototypes; return value first, then parameters
    #
    # Example (accept from OpenBSD manual page):
    #
    # int accept(int s, struct sockaddr *addr, socklen_t *addrlen);
    #
    # Remove variable names and the result is:
    # int, int, struct sockaddr *, socklen_t *
    # This is quoted and added to the L_NSOCKPROTO call below.


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking prototypes for accept" >&5
$as_echo_n "checking prototypes for accept... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <sys/types.h>
#include <sys/socket.h>
#include <sys/uio.h>
#include <netdb.h>
#include <unistd.h>

int
accept( int, struct sockaddr *, socklen_t *
);
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_ACCEPT_0 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_ACCEPT_1 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_ACCEPT_2 struct sockaddr *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_ACCEPT_3 socklen_t *
_ACEOF

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <sys/types.h>
#include <sys/socket.h>
#include <sys/uio.h>
#include <netdb.h>
#include <unistd.h>

int
accept( int, struct sockaddr *, Psocklen_t
);
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_ACCEPT_0 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_ACCEPT_1 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_ACCEPT_2 struct sockaddr *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_ACCEPT_3 Psocklen_t
_ACEOF

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: failure" >&5
$as_echo "failure" >&6; }
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: missing prototype for accept" >&5
$as_echo "$as_me: WARNING: missing prototype for accept" >&2;}
  failproto=t
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking prototypes for bind" >&5
$as_echo_n "checking prototypes for bind... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <sys/types.h>
#include <sys/socket.h>
#include <sys/uio.h>
#include <netdb.h>
#include <unistd.h>

int
bind( int, const struct sockaddr *, socklen_t
);
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_BIND_0 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_BIND_1 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_BIND_2 const struct sockaddr *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_BIND_3 socklen_t
_ACEOF

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: failure" >&5
$as_echo "failure" >&6; }
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: missing prototype for bind" >&5
$as_echo "$as_me: WARNING: missing prototype for bind" >&2;}
  failproto=t
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking prototypes for connect" >&5
$as_echo_n "checking prototypes for connect... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <sys/types.h>
#include <sys/socket.h>
#include <sys/uio.h>
#include <netdb.h>
#include <unistd.h>

int
connect( int, const struct sockaddr *, socklen_t
);
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_CONNECT_0 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_CONNECT_1 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_CONNECT_2 const struct sockaddr *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_CONNECT_3 socklen_t
_ACEOF

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: failure" >&5
$as_echo "failure" >&6; }
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: missing prototype for connect" >&5
$as_echo "$as_me: WARNING: missing prototype for connect" >&2;}
  failproto=t
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking prototypes for gethostbyaddr" >&5
$as_echo_n "checking prototypes for gethostbyaddr... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <sys/types.h>
#include <sys/socket.h>
#include <sys/uio.h>
#include <netdb.h>
#include <unistd.h>

struct hostent *
gethostbyaddr( const char *, int, int
);
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETHOSTBYADDR_0 struct hostent *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETHOSTBYADDR_1 const char *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETHOSTBYADDR_2 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETHOSTBYADDR_3 int
_ACEOF

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <sys/types.h>
#include <sys/socket.h>
#include <sys/uio.h>
#include <netdb.h>
#include <unistd.h>

struct hostent *
gethostbyaddr( const char *, socklen_t, int
);
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETHOSTBYADDR_0 struct hostent *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETHOSTBYADDR_1 const char *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETHOSTBYADDR_2 socklen_t
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETHOSTBYADDR_3 int
_ACEOF

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <sys/types.h>
#include <sys/socket.h>
#include <sys/uio.h>
#include <netdb.h>
#include <unistd.h>

struct hostent *
gethostbyaddr( const void *, socklen_t, int
);
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETHOSTBYADDR_0 struct hostent *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETHOSTBYADDR_1 const void *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETHOSTBYADDR_2 socklen_t
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETHOSTBYADDR_3 int
_ACEOF

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <sys/types.h>
#include <sys/socket.h>
#include <sys/uio.h>
#include <netdb.h>
#include <unistd.h>

struct hostent *
gethostbyaddr( const void *, int, int
);
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETHOSTBYADDR_0 struct hostent *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETHOSTBYADDR_1 const void *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETHOSTBYADDR_2 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETHOSTBYADDR_3 int
_ACEOF

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <sys/types.h>
#include <sys/socket.h>
#include <sys/uio.h>
#include <netdb.h>
#include <unistd.h>

struct hostent *
gethostbyaddr( const void *, size_t, int
);
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETHOSTBYADDR_0 struct hostent *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETHOSTBYADDR_1 const void *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETHOSTBYADDR_2 size_t
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETHOSTBYADDR_3 int
_ACEOF

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: failure" >&5
$as_echo "failure" >&6; }
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: missing prototype for gethostbyaddr" >&5
$as_echo "$as_me: WARNING: missing prototype for gethostbyaddr" >&2;}
  failproto=t
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
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking prototypes for getnameinfo" >&5
$as_echo_n "checking prototypes for getnameinfo... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <sys/types.h>
#include <sys/socket.h>
#include <sys/uio.h>
#include <netdb.h>
#include <unistd.h>

int
getnameinfo( const struct sockaddr *, socklen_t, char *, socklen_t, char *, socklen_t, int
);
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETNAMEINFO_0 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETNAMEINFO_1 const struct sockaddr *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETNAMEINFO_2 socklen_t
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETNAMEINFO_3 char *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETNAMEINFO_4 socklen_t
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETNAMEINFO_5 char *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETNAMEINFO_6 socklen_t
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETNAMEINFO_7 int
_ACEOF

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <sys/types.h>
#include <sys/socket.h>
#include <sys/uio.h>
#include <netdb.h>
#include <unistd.h>

int
getnameinfo( const struct sockaddr *, socklen_t, char *, socklen_t, char *, socklen_t,  unsigned int
);
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETNAMEINFO_0 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETNAMEINFO_1 const struct sockaddr *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETNAMEINFO_2 socklen_t
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETNAMEINFO_3 char *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETNAMEINFO_4 socklen_t
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETNAMEINFO_5 char *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETNAMEINFO_6 socklen_t
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETNAMEINFO_7 unsigned int
_ACEOF

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <sys/types.h>
#include <sys/socket.h>
#include <sys/uio.h>
#include <netdb.h>
#include <unistd.h>

int
getnameinfo( const struct sockaddr *, socklen_t, char *, size_t, char *, size_t,    int
);
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETNAMEINFO_0 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETNAMEINFO_1 const struct sockaddr *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETNAMEINFO_2 socklen_t
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETNAMEINFO_3 char *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETNAMEINFO_4 size_t
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETNAMEINFO_5 char *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETNAMEINFO_6 size_t
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETNAMEINFO_7 int
_ACEOF

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: failure" >&5
$as_echo "failure" >&6; }
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: missing prototype for getnameinfo" >&5
$as_echo "$as_me: WARNING: missing prototype for getnameinfo" >&2;}
  failproto=t
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


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking prototypes for getpeername" >&5
$as_echo_n "checking prototypes for getpeername... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <sys/types.h>
#include <sys/socket.h>
#include <sys/uio.h>
#include <netdb.h>
#include <unistd.h>

int
getpeername( int, struct sockaddr *, socklen_t *
);
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETPEERNAME_0 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETPEERNAME_1 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETPEERNAME_2 struct sockaddr *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETPEERNAME_3 socklen_t *
_ACEOF

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <sys/types.h>
#include <sys/socket.h>
#include <sys/uio.h>
#include <netdb.h>
#include <unistd.h>

int
getpeername( int, struct sockaddr *, Psocklen_t
);
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETPEERNAME_0 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETPEERNAME_1 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETPEERNAME_2 struct sockaddr *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETPEERNAME_3 Psocklen_t
_ACEOF

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: failure" >&5
$as_echo "failure" >&6; }
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: missing prototype for getpeername" >&5
$as_echo "$as_me: WARNING: missing prototype for getpeername" >&2;}
  failproto=t
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking prototypes for getsockname" >&5
$as_echo_n "checking prototypes for getsockname... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <sys/types.h>
#include <sys/socket.h>
#include <sys/uio.h>
#include <netdb.h>
#include <unistd.h>

int
getsockname( int, struct sockaddr *, socklen_t *
);
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETSOCKNAME_0 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETSOCKNAME_1 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETSOCKNAME_2 struct sockaddr *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETSOCKNAME_3 socklen_t *
_ACEOF

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <sys/types.h>
#include <sys/socket.h>
#include <sys/uio.h>
#include <netdb.h>
#include <unistd.h>

int
getsockname( int, struct sockaddr *, Psocklen_t
);
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETSOCKNAME_0 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETSOCKNAME_1 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETSOCKNAME_2 struct sockaddr *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETSOCKNAME_3 Psocklen_t
_ACEOF

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: failure" >&5
$as_echo "failure" >&6; }
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: missing prototype for getsockname" >&5
$as_echo "$as_me: WARNING: missing prototype for getsockname" >&2;}
  failproto=t
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking prototypes for getsockopt" >&5
$as_echo_n "checking prototypes for getsockopt... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <sys/types.h>
#include <sys/socket.h>
#include <sys/uio.h>
#include <netdb.h>
#include <unistd.h>

int
getsockopt( int, int, int, void *, socklen_t *
);
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETSOCKOPT_0 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETSOCKOPT_1 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETSOCKOPT_2 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETSOCKOPT_3 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETSOCKOPT_4 void *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETSOCKOPT_5 socklen_t *
_ACEOF

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <sys/types.h>
#include <sys/socket.h>
#include <sys/uio.h>
#include <netdb.h>
#include <unistd.h>

int
getsockopt( int, int, int, void *, Psocklen_t
);
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETSOCKOPT_0 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETSOCKOPT_1 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETSOCKOPT_2 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETSOCKOPT_3 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETSOCKOPT_4 void *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETSOCKOPT_5 Psocklen_t
_ACEOF

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <sys/types.h>
#include <sys/socket.h>
#include <sys/uio.h>
#include <netdb.h>
#include <unistd.h>

int
getsockopt( int, int, int, char *, int *
);
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETSOCKOPT_0 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETSOCKOPT_1 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETSOCKOPT_2 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETSOCKOPT_3 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETSOCKOPT_4 char *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETSOCKOPT_5 int *
_ACEOF

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: failure" >&5
$as_echo "failure" >&6; }
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: missing prototype for getsockopt" >&5
$as_echo "$as_me: WARNING: missing prototype for getsockopt" >&2;}
  failproto=t
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


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking prototypes for listen" >&5
$as_echo_n "checking prototypes for listen... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <sys/types.h>
#include <sys/socket.h>
#include <sys/uio.h>
#include <netdb.h>
#include <unistd.h>

int
listen( int, int
);
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_LISTEN_0 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_LISTEN_1 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_LISTEN_2 int
_ACEOF

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: failure" >&5
$as_echo "failure" >&6; }
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: missing prototype for listen" >&5
$as_echo "$as_me: WARNING: missing prototype for listen" >&2;}
  failproto=t
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking prototypes for read" >&5
$as_echo_n "checking prototypes for read... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <sys/types.h>
#include <sys/socket.h>
#include <sys/uio.h>
#include <netdb.h>
#include <unistd.h>

ssize_t
read( int, void *, size_t
);
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_READ_0 ssize_t
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_READ_1 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_READ_2 void *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_READ_3 size_t
_ACEOF

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: failure" >&5
$as_echo "failure" >&6; }
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: missing prototype for read" >&5
$as_echo "$as_me: WARNING: missing prototype for read" >&2;}
  failproto=t
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking prototypes for readv" >&5
$as_echo_n "checking prototypes for readv... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <sys/types.h>
#include <sys/socket.h>
#include <sys/uio.h>
#include <netdb.h>
#include <unistd.h>

ssize_t
readv( int, const struct iovec *, int
);
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_READV_0 ssize_t
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_READV_1 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_READV_2 const struct iovec *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_READV_3 int
_ACEOF

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <sys/types.h>
#include <sys/socket.h>
#include <sys/uio.h>
#include <netdb.h>
#include <unistd.h>

int
readv( int, const struct iovec *, int
);
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_READV_0 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_READV_1 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_READV_2 const struct iovec *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_READV_3 int
_ACEOF

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: failure" >&5
$as_echo "failure" >&6; }
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: missing prototype for readv" >&5
$as_echo "$as_me: WARNING: missing prototype for readv" >&2;}
  failproto=t
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking prototypes for recv" >&5
$as_echo_n "checking prototypes for recv... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <sys/types.h>
#include <sys/socket.h>
#include <sys/uio.h>
#include <netdb.h>
#include <unistd.h>

ssize_t
recv( int, void *, size_t, int
);
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_RECV_0 ssize_t
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_RECV_1 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_RECV_2 void *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_RECV_3 size_t
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_RECV_4 int
_ACEOF

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <sys/types.h>
#include <sys/socket.h>
#include <sys/uio.h>
#include <netdb.h>
#include <unistd.h>

ssize_t
recv( int, void *, size_t, unsigned int
);
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_RECV_0 ssize_t
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_RECV_1 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_RECV_2 void *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_RECV_3 size_t
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_RECV_4 unsigned int
_ACEOF

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: failure" >&5
$as_echo "failure" >&6; }
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: missing prototype for recv" >&5
$as_echo "$as_me: WARNING: missing prototype for recv" >&2;}
  failproto=t
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking prototypes for recvfrom" >&5
$as_echo_n "checking prototypes for recvfrom... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <sys/types.h>
#include <sys/socket.h>
#include <sys/uio.h>
#include <netdb.h>
#include <unistd.h>

ssize_t
recvfrom( int, void *, size_t, int, struct sockaddr *, socklen_t *
);
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_RECVFROM_0 ssize_t
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_RECVFROM_1 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_RECVFROM_2 void *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_RECVFROM_3 size_t
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_RECVFROM_4 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_RECVFROM_5 struct sockaddr *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_RECVFROM_6 socklen_t *
_ACEOF

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <sys/types.h>
#include <sys/socket.h>
#include <sys/uio.h>
#include <netdb.h>
#include <unistd.h>

ssize_t
recvfrom( int, void *, size_t, int, struct sockaddr *, Psocklen_t
);
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_RECVFROM_0 ssize_t
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_RECVFROM_1 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_RECVFROM_2 void *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_RECVFROM_3 size_t
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_RECVFROM_4 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_RECVFROM_5 struct sockaddr *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_RECVFROM_6 Psocklen_t
_ACEOF

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <sys/types.h>
#include <sys/socket.h>
#include <sys/uio.h>
#include <netdb.h>
#include <unistd.h>

ssize_t
recvfrom( int, void *, size_t, unsigned int, const struct sockaddr *, socklen_t *
);
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_RECVFROM_0 ssize_t
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_RECVFROM_1 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_RECVFROM_2 void *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_RECVFROM_3 size_t
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_RECVFROM_4 unsigned int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_RECVFROM_5 const struct sockaddr *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_RECVFROM_6 socklen_t *
_ACEOF

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: failure" >&5
$as_echo "failure" >&6; }
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: missing prototype for recvfrom" >&5
$as_echo "$as_me: WARNING: missing prototype for recvfrom" >&2;}
  failproto=t
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


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking prototypes for recvmsg" >&5
$as_echo_n "checking prototypes for recvmsg... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <sys/types.h>
#include <sys/socket.h>
#include <sys/uio.h>
#include <netdb.h>
#include <unistd.h>

ssize_t
recvmsg( int, struct msghdr *, int
);
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_RECVMSG_0 ssize_t
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_RECVMSG_1 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_RECVMSG_2 struct msghdr *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_RECVMSG_3 int
_ACEOF

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <sys/types.h>
#include <sys/socket.h>
#include <sys/uio.h>
#include <netdb.h>
#include <unistd.h>

int
recvmsg( int, struct msghdr *, unsigned int
);
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_RECVMSG_0 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_RECVMSG_1 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_RECVMSG_2 struct msghdr *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_RECVMSG_3 unsigned int
_ACEOF

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: failure" >&5
$as_echo "failure" >&6; }
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: missing prototype for recvmsg" >&5
$as_echo "$as_me: WARNING: missing prototype for recvmsg" >&2;}
  failproto=t
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking prototypes for send" >&5
$as_echo_n "checking prototypes for send... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <sys/types.h>
#include <sys/socket.h>
#include <sys/uio.h>
#include <netdb.h>
#include <unistd.h>

ssize_t
send( int, const void *, size_t, int
);
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_SEND_0 ssize_t
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_SEND_1 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_SEND_2 const void *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_SEND_3 size_t
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_SEND_4 int
_ACEOF

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <sys/types.h>
#include <sys/socket.h>
#include <sys/uio.h>
#include <netdb.h>
#include <unistd.h>

ssize_t
send( int, const void *, size_t, unsigned int
);
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_SEND_0 ssize_t
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_SEND_1 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_SEND_2 const void *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_SEND_3 size_t
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_SEND_4 unsigned int
_ACEOF

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: failure" >&5
$as_echo "failure" >&6; }
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: missing prototype for send" >&5
$as_echo "$as_me: WARNING: missing prototype for send" >&2;}
  failproto=t
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking prototypes for sendmsg" >&5
$as_echo_n "checking prototypes for sendmsg... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <sys/types.h>
#include <sys/socket.h>
#include <sys/uio.h>
#include <netdb.h>
#include <unistd.h>

ssize_t
sendmsg( int, const struct msghdr *, int
);
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_SENDMSG_0 ssize_t
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_SENDMSG_1 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_SENDMSG_2 const struct msghdr *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_SENDMSG_3 int
_ACEOF

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <sys/types.h>
#include <sys/socket.h>
#include <sys/uio.h>
#include <netdb.h>
#include <unistd.h>

int
sendmsg( int, const struct msghdr *, unsigned int
);
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_SENDMSG_0 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_SENDMSG_1 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_SENDMSG_2 const struct msghdr *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_SENDMSG_3 unsigned int
_ACEOF

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: failure" >&5
$as_echo "failure" >&6; }
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: missing prototype for sendmsg" >&5
$as_echo "$as_me: WARNING: missing prototype for sendmsg" >&2;}
  failproto=t
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking prototypes for sendto" >&5
$as_echo_n "checking prototypes for sendto... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <sys/types.h>
#include <sys/socket.h>
#include <sys/uio.h>
#include <netdb.h>
#include <unistd.h>

ssize_t
sendto( int, const void *, size_t, int, const struct sockaddr *, socklen_t
);
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_SENDTO_0 ssize_t
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_SENDTO_1 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_SENDTO_2 const void *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_SENDTO_3 size_t
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_SENDTO_4 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_SENDTO_5 const struct sockaddr *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_SENDTO_6 socklen_t
_ACEOF

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: failure" >&5
$as_echo "failure" >&6; }
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: missing prototype for sendto" >&5
$as_echo "$as_me: WARNING: missing prototype for sendto" >&2;}
  failproto=t
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking prototypes for write" >&5
$as_echo_n "checking prototypes for write... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <sys/types.h>
#include <sys/socket.h>
#include <sys/uio.h>
#include <netdb.h>
#include <unistd.h>

ssize_t
write( int, const void *, size_t
);
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_WRITE_0 ssize_t
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_WRITE_1 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_WRITE_2 const void *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_WRITE_3 size_t
_ACEOF

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: failure" >&5
$as_echo "failure" >&6; }
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: missing prototype for write" >&5
$as_echo "$as_me: WARNING: missing prototype for write" >&2;}
  failproto=t
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking prototypes for writev" >&5
$as_echo_n "checking prototypes for writev... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <sys/types.h>
#include <sys/socket.h>
#include <sys/uio.h>
#include <netdb.h>
#include <unistd.h>

ssize_t
writev( int, const struct iovec *, int
);
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_WRITEV_0 ssize_t
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_WRITEV_1 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_WRITEV_2 const struct iovec *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_WRITEV_3 int
_ACEOF

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <sys/types.h>
#include <sys/socket.h>
#include <sys/uio.h>
#include <netdb.h>
#include <unistd.h>

int
writev( int, const struct iovec *, int
);
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_WRITEV_0 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_WRITEV_1 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_WRITEV_2 const struct iovec *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_WRITEV_3 int
_ACEOF

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: failure" >&5
$as_echo "failure" >&6; }
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: missing prototype for writev" >&5
$as_echo "$as_me: WARNING: missing prototype for writev" >&2;}
  failproto=t
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

    #XXX stdio related functions

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking prototypes for getc" >&5
$as_echo_n "checking prototypes for getc... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <stdio.h>
#include <stdarg.h>
#include <unistd.h>
#ifdef getc
#undef getc
#endif

int
getc( FILE *
);
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETC_0 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETC_1 FILE *
_ACEOF

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: failure" >&5
$as_echo "failure" >&6; }
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: missing prototype for getc" >&5
$as_echo "$as_me: WARNING: missing prototype for getc" >&2;}
  failproto=t
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking prototypes for fgetc" >&5
$as_echo_n "checking prototypes for fgetc... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <stdio.h>
#include <stdarg.h>
#include <unistd.h>
#ifdef fgetc
#undef fgetc
#endif

int
fgetc( FILE *
);
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_FGETC_0 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_FGETC_1 FILE *
_ACEOF

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: failure" >&5
$as_echo "failure" >&6; }
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: missing prototype for fgetc" >&5
$as_echo "$as_me: WARNING: missing prototype for fgetc" >&2;}
  failproto=t
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking prototypes for gets" >&5
$as_echo_n "checking prototypes for gets... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <stdio.h>
#include <stdarg.h>
#include <unistd.h>
#ifdef gets
#undef gets
#endif

char *
gets( char *
);
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETS_0 char *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_GETS_1 char *
_ACEOF

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: failure" >&5
$as_echo "failure" >&6; }
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: missing prototype for gets" >&5
$as_echo "$as_me: WARNING: missing prototype for gets" >&2;}
  failproto=t
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking prototypes for fgets" >&5
$as_echo_n "checking prototypes for fgets... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <stdio.h>
#include <stdarg.h>
#include <unistd.h>
#ifdef fgets
#undef fgets
#endif

char *
fgets( char *, int, FILE *
);
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_FGETS_0 char *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_FGETS_1 char *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_FGETS_2 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_FGETS_3 FILE *
_ACEOF

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: failure" >&5
$as_echo "failure" >&6; }
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: missing prototype for fgets" >&5
$as_echo "$as_me: WARNING: missing prototype for fgets" >&2;}
  failproto=t
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking prototypes for putc" >&5
$as_echo_n "checking prototypes for putc... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <stdio.h>
#include <stdarg.h>
#include <unistd.h>
#ifdef putc
#undef putc
#endif

int
putc( int, FILE *
);
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_PUTC_0 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_PUTC_1 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_PUTC_2 FILE *
_ACEOF

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: failure" >&5
$as_echo "failure" >&6; }
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: missing prototype for putc" >&5
$as_echo "$as_me: WARNING: missing prototype for putc" >&2;}
  failproto=t
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking prototypes for fputc" >&5
$as_echo_n "checking prototypes for fputc... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <stdio.h>
#include <stdarg.h>
#include <unistd.h>
#ifdef fputc
#undef fputc
#endif

int
fputc( int, FILE *
);
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_FPUTC_0 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_FPUTC_1 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_FPUTC_2 FILE *
_ACEOF

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: failure" >&5
$as_echo "failure" >&6; }
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: missing prototype for fputc" >&5
$as_echo "$as_me: WARNING: missing prototype for fputc" >&2;}
  failproto=t
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking prototypes for puts" >&5
$as_echo_n "checking prototypes for puts... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <stdio.h>
#include <stdarg.h>
#include <unistd.h>
#ifdef puts
#undef puts
#endif

int
puts( const char *
);
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_PUTS_0 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_PUTS_1 const char *
_ACEOF

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: failure" >&5
$as_echo "failure" >&6; }
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: missing prototype for puts" >&5
$as_echo "$as_me: WARNING: missing prototype for puts" >&2;}
  failproto=t
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking prototypes for fputs" >&5
$as_echo_n "checking prototypes for fputs... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <stdio.h>
#include <stdarg.h>
#include <unistd.h>
#ifdef fputs
#undef fputs
#endif

int
fputs( const char *, FILE *
);
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_FPUTS_0 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_FPUTS_1 const char *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_FPUTS_2 FILE *
_ACEOF

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: failure" >&5
$as_echo "failure" >&6; }
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: missing prototype for fputs" >&5
$as_echo "$as_me: WARNING: missing prototype for fputs" >&2;}
  failproto=t
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking prototypes for fflush" >&5
$as_echo_n "checking prototypes for fflush... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <stdio.h>
#include <stdarg.h>
#include <unistd.h>
#ifdef fflush
#undef fflush
#endif

int
fflush( FILE *
);
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_FFLUSH_0 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_FFLUSH_1 FILE *
_ACEOF

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: failure" >&5
$as_echo "failure" >&6; }
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: missing prototype for fflush" >&5
$as_echo "$as_me: WARNING: missing prototype for fflush" >&2;}
  failproto=t
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking prototypes for fclose" >&5
$as_echo_n "checking prototypes for fclose... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <stdio.h>
#include <stdarg.h>
#include <unistd.h>
#ifdef fclose
#undef fclose
#endif

int
fclose( FILE *
);
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_FCLOSE_0 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_FCLOSE_1 FILE *
_ACEOF

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: failure" >&5
$as_echo "failure" >&6; }
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: missing prototype for fclose" >&5
$as_echo "$as_me: WARNING: missing prototype for fclose" >&2;}
  failproto=t
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking prototypes for fprintf" >&5
$as_echo_n "checking prototypes for fprintf... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <stdio.h>
#include <stdarg.h>
#include <unistd.h>
#ifdef fprintf
#undef fprintf
#endif

int
fprintf( FILE *, const char *, ...
);
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_FPRINTF_0 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_FPRINTF_1 FILE *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_FPRINTF_2 const char *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_FPRINTF_3 ...
_ACEOF

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: failure" >&5
$as_echo "failure" >&6; }
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: missing prototype for fprintf" >&5
$as_echo "$as_me: WARNING: missing prototype for fprintf" >&2;}
  failproto=t
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking prototypes for vfprintf" >&5
$as_echo_n "checking prototypes for vfprintf... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <stdio.h>
#include <stdarg.h>
#include <unistd.h>
#ifdef vfprintf
#undef vfprintf
#endif

int
vfprintf( FILE *, const char *, va_list
);
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_VFPRINTF_0 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_VFPRINTF_1 FILE *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_VFPRINTF_2 const char *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_VFPRINTF_3 va_list
_ACEOF

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: failure" >&5
$as_echo "failure" >&6; }
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: missing prototype for vfprintf" >&5
$as_echo "$as_me: WARNING: missing prototype for vfprintf" >&2;}
  failproto=t
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking prototypes for printf" >&5
$as_echo_n "checking prototypes for printf... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <stdio.h>
#include <stdarg.h>
#include <unistd.h>
#ifdef printf
#undef printf
#endif

int
printf( const char *, ...
);
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_PRINTF_0 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_PRINTF_1 const char *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_PRINTF_2 ...
_ACEOF

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: failure" >&5
$as_echo "failure" >&6; }
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: missing prototype for printf" >&5
$as_echo "$as_me: WARNING: missing prototype for printf" >&2;}
  failproto=t
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking prototypes for vprintf" >&5
$as_echo_n "checking prototypes for vprintf... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <stdio.h>
#include <stdarg.h>
#include <unistd.h>
#ifdef vprintf
#undef vprintf
#endif

int
vprintf( const char *, va_list
);
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_VPRINTF_0 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_VPRINTF_1 const char *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_VPRINTF_2 va_list
_ACEOF

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: failure" >&5
$as_echo "failure" >&6; }
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: missing prototype for vprintf" >&5
$as_echo "$as_me: WARNING: missing prototype for vprintf" >&2;}
  failproto=t
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking prototypes for fwrite" >&5
$as_echo_n "checking prototypes for fwrite... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <stdio.h>
#include <stdarg.h>
#include <unistd.h>
#ifdef fwrite
#undef fwrite
#endif

size_t
fwrite( const void *, size_t, size_t, FILE *
);
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_FWRITE_0 size_t
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_FWRITE_1 const void *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_FWRITE_2 size_t
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_FWRITE_3 size_t
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_FWRITE_4 FILE *
_ACEOF

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: failure" >&5
$as_echo "failure" >&6; }
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: missing prototype for fwrite" >&5
$as_echo "$as_me: WARNING: missing prototype for fwrite" >&2;}
  failproto=t
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking prototypes for fread" >&5
$as_echo_n "checking prototypes for fread... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <stdio.h>
#include <stdarg.h>
#include <unistd.h>
#ifdef fread
#undef fread
#endif

size_t
fread( void *, size_t, size_t, FILE *
);
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_FREAD_0 size_t
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_FREAD_1 void *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_FREAD_2 size_t
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_FREAD_3 size_t
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT_FREAD_4 FILE *
_ACEOF

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: failure" >&5
$as_echo "failure" >&6; }
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: missing prototype for fread" >&5
$as_echo "$as_me: WARNING: missing prototype for fread" >&2;}
  failproto=t
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

    if test x"${ac_cv_func__IO_getc}" = xyes; then

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking prototypes for _IO_getc" >&5
$as_echo_n "checking prototypes for _IO_getc... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <stdio.h>
#include <stdarg.h>
#include <unistd.h>
#ifdef _IO_getc
#undef _IO_getc
#endif

int
_IO_getc( FILE *
);
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT__IO_GETC_0 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT__IO_GETC_1 FILE *
_ACEOF

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: failure" >&5
$as_echo "failure" >&6; }
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: missing prototype for _IO_getc" >&5
$as_echo "$as_me: WARNING: missing prototype for _IO_getc" >&2;}
  failproto=t
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
    fi

    if test x"${ac_cv_func__IO_putc}" = xyes; then

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking prototypes for _IO_putc" >&5
$as_echo_n "checking prototypes for _IO_putc... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <stdio.h>
#include <stdarg.h>
#include <unistd.h>
#ifdef _IO_putc
#undef _IO_putc
#endif

int
_IO_putc( int, FILE *
);
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT__IO_PUTC_0 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT__IO_PUTC_1 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT__IO_PUTC_2 FILE *
_ACEOF

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: failure" >&5
$as_echo "failure" >&6; }
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: missing prototype for _IO_putc" >&5
$as_echo "$as_me: WARNING: missing prototype for _IO_putc" >&2;}
  failproto=t
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
    fi

    if test x"${ac_cv_func___read_chk}" = xyes; then

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking prototypes for _read_chk" >&5
$as_echo_n "checking prototypes for _read_chk... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <stdio.h>
#include <stdarg.h>
#include <unistd.h>
#ifdef _read_chk
#undef _read_chk
#endif

ssize_t
_read_chk( int, void *, size_t, size_t
);
int
main ()
{

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT__READ_CHK_0 ssize_t
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT__READ_CHK_1 int
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT__READ_CHK_2 void *
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT__READ_CHK_3 size_t
_ACEOF

cat >>confdefs.h <<_ACEOF
#define HAVE_PROT__READ_CHK_4 size_t
_ACEOF

  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: failure" >&5
$as_echo "failure" >&6; }
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: missing prototype for _read_chk" >&5
$as_echo "$as_me: WARNING: missing prototype for _read_chk" >&2;}
  failproto=t
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
    fi

    #XXX add vprintf_chk/fprintf_chk?

    if test x"$failproto" != x; then
	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: attempt to determine function prototypes
failed, and will probably mean that building of libdsocks, which
allows on-the-fly socksification of dynamic binaries, will not work.

      You have several options:

      1. If you do not need libdsocks, run configure with the
         option --disable-preload.
      2. Submit a bugreport.
      3. Find the prototypes used on your platform for the
         failed functions, and add them to the configure.ac
         file. Then use autoconf, which must be installed,
         to regenerate the configure script.
         Function prototype definitions can usually be found
         in the manual page for the function or the system
         include files (usually found under /usr/include)." >&5
$as_echo "$as_me: WARNING: attempt to determine function prototypes
failed, and will probably mean that building of libdsocks, which
allows on-the-fly socksification of dynamic binaries, will not work.

      You have several options:

      1. If you do not need libdsocks, run configure with the
         option --disable-preload.
      2. Submit a bugreport.
      3. Find the prototypes used on your platform for the
         failed functions, and add them to the configure.ac
         file. Then use autoconf, which must be installed,
         to regenerate the configure script.
         Function prototype definitions can usually be found
         in the manual page for the function or the system
         include files (usually found under /usr/include)." >&2;}
	exit 1
    fi

    CFLAGS="$preprotoCFLAGS"
fi

#Look for functions needed for socksify located in other places than libc
SOCKSIFY_PRELOAD_LIBS=""
oLIBS=$LIBS

#clock_gettime()
if test x"${ac_cv_search_clock_gettime}" = x"-lrt"; then
    SOCKSIFY_PRELOAD_LIBS="${SOCKSIFY_PRELOAD_LIBS}${SOCKSIFY_PRELOAD_LIBS:+${PRELOAD_SEPERATOR}}${base_library_path}librt.${SOLIB_POSTFIX}"
fi

#HP-UX 11.00
LIBS=""
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing bindresvport" >&5
$as_echo_n "checking for library containing bindresvport... " >&6; }
if ${ac_cv_search_bindresvport+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* 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 bindresvport ();
int
main ()
{
return bindresvport ();
  ;
  return 0;
}
_ACEOF
for ac_lib in '' rpcsoc; 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_bindresvport=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext
  if ${ac_cv_search_bindresvport+:} false; then :
  break
fi
done
if ${ac_cv_search_bindresvport+:} false; then :

else
  ac_cv_search_bindresvport=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_bindresvport" >&5
$as_echo "$ac_cv_search_bindresvport" >&6; }
ac_res=$ac_cv_search_bindresvport
if test "$ac_res" != no; then :
  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"

fi


NLIBS="${NLIBS}${NLIBS:+ }$LIBS"
LIBS=""

#ignore when preloading is disabled (only the AC_SEARCH_LIBS test is needed)
if test x"${preload_enabled}" = xt -a x"${ac_cv_search_bindresvport}" = x"-lrpcsoc"; then

cat >>confdefs.h <<_ACEOF
#define LIBRARY_LIBRPCSOC "${base_library_path}librpcsoc.sl"
_ACEOF

    SOCKSIFY_PRELOAD_LIBS="${SOCKSIFY_PRELOAD_LIBS}${SOCKSIFY_PRELOAD_LIBS:+${PRELOAD_SEPERATOR}}${base_library_path}librpcsoc.sl"


$as_echo "#define LIBRARY_BINDRESVPORT LIBRARY_LIBRPCSOC" >>confdefs.h

fi

unset use_threads
unset have_ptread_h
ac_fn_c_check_header_mongrel "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default"
if test "x$ac_cv_header_pthread_h" = xyes; then :

$as_echo "#define HAVE_PTHREAD_H 1" >>confdefs.h

     have_pthread_h=t
fi


if test x"${have_pthread_h}" = xt; then
    #do not wish to link directly with libpthreads, included only if needed
    tLIBS=$LIBS
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing pthread_mutexattr_init" >&5
$as_echo_n "checking for library containing pthread_mutexattr_init... " >&6; }
if ${ac_cv_search_pthread_mutexattr_init+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* 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 pthread_mutexattr_init ();
int
main ()
{
return pthread_mutexattr_init ();
  ;
  return 0;
}
_ACEOF
for ac_lib in '' pthread; 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_pthread_mutexattr_init=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext
  if ${ac_cv_search_pthread_mutexattr_init+:} false; then :
  break
fi
done
if ${ac_cv_search_pthread_mutexattr_init+:} false; then :

else
  ac_cv_search_pthread_mutexattr_init=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_pthread_mutexattr_init" >&5
$as_echo "$ac_cv_search_pthread_mutexattr_init" >&6; }
ac_res=$ac_cv_search_pthread_mutexattr_init
if test "$ac_res" != no; then :
  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"

fi


    #try compiling
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether compilation with pthread.h works" >&5
$as_echo_n "checking whether compilation with pthread.h works... " >&6; }
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <pthread.h>
int
main ()
{

pthread_mutexattr_t attr;
if (pthread_mutexattr_init(&attr) == 0)
    return 0;
else
    return 1;
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
	 use_threads=t
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_exeext conftest.$ac_ext
    LIBS=$tLIBS
fi
if test x"$use_threads" = xt; then

$as_echo "#define HAVE_PTHREAD_H 1" >>confdefs.h

    if test x"${ac_cv_search_pthread_mutexattr_init}" = x"-lpthread"; then
        case $host in
	    *-*-linux-*)
	        #XXX attempt to find latest pthread library
		PATH=$PATH:/sbin
		export PATH
		unset LIBPT_ALTS
		for file in `ldconfig -p | grep /libpthread.so| xargs -n 1 echo | grep /libpthread.so`; do
		    test -s "$file" && LIBPT_ALTS="${LIBPT_ALTS}${LIBPT_ALTS:+ }$file"
		done
		LIBPT_NAME=`echo ${LIBPT_ALTS} | sed -e 's/.*\///' | sort -nr | head -n 1`
		if test x"${LIBPT_NAME}" = x; then
		    #nothing found, set something anyway
		    LIBPT_NAME="${base_library_path}libpthread.so"
		fi
		;;

	    *)
		LIBPT_NAME="libpthread.${SOLIB_POSTFIX}"
		;;
        esac

cat >>confdefs.h <<_ACEOF
#define LIBRARY_PTHREAD "${base_library_path}$LIBPT_NAME"
_ACEOF

    fi
fi

LIBS=""
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing connect" >&5
$as_echo_n "checking for library containing connect... " >&6; }
if ${ac_cv_search_connect+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* 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 connect ();
int
main ()
{
return connect ();
  ;
  return 0;
}
_ACEOF
for ac_lib in '' socket; 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_connect=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext
  if ${ac_cv_search_connect+:} false; then :
  break
fi
done
if ${ac_cv_search_connect+:} false; then :

else
  ac_cv_search_connect=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_connect" >&5
$as_echo "$ac_cv_search_connect" >&6; }
ac_res=$ac_cv_search_connect
if test "$ac_res" != no; then :
  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"

fi

#ignore when preloading is disabled (only the AC_SEARCH_LIBS test is needed)
if test x"$preload_enabled" = xt -a x"${ac_cv_search_connect}" = x"-lsocket"; then

cat >>confdefs.h <<_ACEOF
#define LIBRARY_LIBSOCKET "${base_library_path}libsocket.${SOLIB_POSTFIX}"
_ACEOF

    SOCKSIFY_PRELOAD_LIBS="${SOCKSIFY_PRELOAD_LIBS}${SOCKSIFY_PRELOAD_LIBS:+${PRELOAD_SEPERATOR}}${base_library_path}libsocket.${SOLIB_POSTFIX}"


$as_echo "#define LIBRARY_CONNECT LIBRARY_LIBSOCKET" >>confdefs.h


    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for accept in -lsocket" >&5
$as_echo_n "checking for accept in -lsocket... " >&6; }
if ${ac_cv_lib_socket_accept+:} false; 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.  */

/* 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 accept ();
int
main ()
{
return accept ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_socket_accept=yes
else
  ac_cv_lib_socket_accept=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_accept" >&5
$as_echo "$ac_cv_lib_socket_accept" >&6; }
if test "x$ac_cv_lib_socket_accept" = xyes; then :

$as_echo "#define LIBRARY_ACCEPT LIBRARY_LIBSOCKET" >>confdefs.h

fi

    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bind in -lsocket" >&5
$as_echo_n "checking for bind in -lsocket... " >&6; }
if ${ac_cv_lib_socket_bind+:} false; 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.  */

/* 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 bind ();
int
main ()
{
return bind ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_socket_bind=yes
else
  ac_cv_lib_socket_bind=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_bind" >&5
$as_echo "$ac_cv_lib_socket_bind" >&6; }
if test "x$ac_cv_lib_socket_bind" = xyes; then :

$as_echo "#define LIBRARY_BIND LIBRARY_LIBSOCKET" >>confdefs.h

fi

    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bindresvport in -lsocket" >&5
$as_echo_n "checking for bindresvport in -lsocket... " >&6; }
if ${ac_cv_lib_socket_bindresvport+:} false; 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.  */

/* 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 bindresvport ();
int
main ()
{
return bindresvport ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_socket_bindresvport=yes
else
  ac_cv_lib_socket_bindresvport=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_bindresvport" >&5
$as_echo "$ac_cv_lib_socket_bindresvport" >&6; }
if test "x$ac_cv_lib_socket_bindresvport" = xyes; then :

$as_echo "#define LIBRARY_BINDRESVPORT LIBRARY_LIBSOCKET" >>confdefs.h

fi

    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getpeername in -lsocket" >&5
$as_echo_n "checking for getpeername in -lsocket... " >&6; }
if ${ac_cv_lib_socket_getpeername+:} false; 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.  */

/* 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 getpeername ();
int
main ()
{
return getpeername ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_socket_getpeername=yes
else
  ac_cv_lib_socket_getpeername=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_getpeername" >&5
$as_echo "$ac_cv_lib_socket_getpeername" >&6; }
if test "x$ac_cv_lib_socket_getpeername" = xyes; then :

$as_echo "#define LIBRARY_GETPEERNAME LIBRARY_LIBSOCKET" >>confdefs.h

fi

    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getsockname in -lsocket" >&5
$as_echo_n "checking for getsockname in -lsocket... " >&6; }
if ${ac_cv_lib_socket_getsockname+:} false; 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.  */

/* 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 getsockname ();
int
main ()
{
return getsockname ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_socket_getsockname=yes
else
  ac_cv_lib_socket_getsockname=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_getsockname" >&5
$as_echo "$ac_cv_lib_socket_getsockname" >&6; }
if test "x$ac_cv_lib_socket_getsockname" = xyes; then :

$as_echo "#define LIBRARY_GETSOCKNAME LIBRARY_LIBSOCKET" >>confdefs.h

fi

    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for listen in -lsocket" >&5
$as_echo_n "checking for listen in -lsocket... " >&6; }
if ${ac_cv_lib_socket_listen+:} false; 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.  */

/* 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 listen ();
int
main ()
{
return listen ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_socket_listen=yes
else
  ac_cv_lib_socket_listen=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_listen" >&5
$as_echo "$ac_cv_lib_socket_listen" >&6; }
if test "x$ac_cv_lib_socket_listen" = xyes; then :

$as_echo "#define LIBRARY_LISTEN LIBRARY_LIBSOCKET" >>confdefs.h

fi

    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getaddrinfo in -lsocket" >&5
$as_echo_n "checking for getaddrinfo in -lsocket... " >&6; }
if ${ac_cv_lib_socket_getaddrinfo+:} false; 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.  */

/* 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 getaddrinfo ();
int
main ()
{
return getaddrinfo ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_socket_getaddrinfo=yes
else
  ac_cv_lib_socket_getaddrinfo=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_getaddrinfo" >&5
$as_echo "$ac_cv_lib_socket_getaddrinfo" >&6; }
if test "x$ac_cv_lib_socket_getaddrinfo" = xyes; then :

$as_echo "#define LIBRARY_GETADDRINFO LIBRARY_LIBSOCKET" >>confdefs.h

fi

    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getnameinfo in -lsocket" >&5
$as_echo_n "checking for getnameinfo in -lsocket... " >&6; }
if ${ac_cv_lib_socket_getnameinfo+:} false; 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.  */

/* 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 getnameinfo ();
int
main ()
{
return getnameinfo ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_socket_getnameinfo=yes
else
  ac_cv_lib_socket_getnameinfo=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_getnameinfo" >&5
$as_echo "$ac_cv_lib_socket_getnameinfo" >&6; }
if test "x$ac_cv_lib_socket_getnameinfo" = xyes; then :

$as_echo "#define LIBRARY_GETNAMEINFO LIBRARY_LIBSOCKET" >>confdefs.h

fi

    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for freeaddrinfo in -lsocket" >&5
$as_echo_n "checking for freeaddrinfo in -lsocket... " >&6; }
if ${ac_cv_lib_socket_freeaddrinfo+:} false; 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.  */

/* 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 freeaddrinfo ();
int
main ()
{
return freeaddrinfo ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_socket_freeaddrinfo=yes
else
  ac_cv_lib_socket_freeaddrinfo=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_freeaddrinfo" >&5
$as_echo "$ac_cv_lib_socket_freeaddrinfo" >&6; }
if test "x$ac_cv_lib_socket_freeaddrinfo" = xyes; then :

$as_echo "#define LIBRARY_FREEADDRINFO LIBRARY_LIBSOCKET" >>confdefs.h

fi

    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for freehostent in -lsocket" >&5
$as_echo_n "checking for freehostent in -lsocket... " >&6; }
if ${ac_cv_lib_socket_freehostent+:} false; 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.  */

/* 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 freehostent ();
int
main ()
{
return freehostent ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_socket_freehostent=yes
else
  ac_cv_lib_socket_freehostent=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_freehostent" >&5
$as_echo "$ac_cv_lib_socket_freehostent" >&6; }
if test "x$ac_cv_lib_socket_freehostent" = xyes; then :

$as_echo "#define LIBRARY_FREEHOSTENT LIBRARY_LIBSOCKET" >>confdefs.h

fi

    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for recvfrom in -lsocket" >&5
$as_echo_n "checking for recvfrom in -lsocket... " >&6; }
if ${ac_cv_lib_socket_recvfrom+:} false; 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.  */

/* 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 recvfrom ();
int
main ()
{
return recvfrom ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_socket_recvfrom=yes
else
  ac_cv_lib_socket_recvfrom=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_recvfrom" >&5
$as_echo "$ac_cv_lib_socket_recvfrom" >&6; }
if test "x$ac_cv_lib_socket_recvfrom" = xyes; then :

$as_echo "#define LIBRARY_RECVFROM LIBRARY_LIBSOCKET" >>confdefs.h

fi

    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for rresvport in -lsocket" >&5
$as_echo_n "checking for rresvport in -lsocket... " >&6; }
if ${ac_cv_lib_socket_rresvport+:} false; 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.  */

/* 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 rresvport ();
int
main ()
{
return rresvport ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_socket_rresvport=yes
else
  ac_cv_lib_socket_rresvport=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_rresvport" >&5
$as_echo "$ac_cv_lib_socket_rresvport" >&6; }
if test "x$ac_cv_lib_socket_rresvport" = xyes; then :

$as_echo "#define LIBRARY_RRESVPORT LIBRARY_LIBSOCKET" >>confdefs.h

fi

    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for recvmsg in -lsocket" >&5
$as_echo_n "checking for recvmsg in -lsocket... " >&6; }
if ${ac_cv_lib_socket_recvmsg+:} false; 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.  */

/* 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 recvmsg ();
int
main ()
{
return recvmsg ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_socket_recvmsg=yes
else
  ac_cv_lib_socket_recvmsg=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_recvmsg" >&5
$as_echo "$ac_cv_lib_socket_recvmsg" >&6; }
if test "x$ac_cv_lib_socket_recvmsg" = xyes; then :

$as_echo "#define LIBRARY_RECVMSG LIBRARY_LIBSOCKET" >>confdefs.h

fi

    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sendmsg in -lsocket" >&5
$as_echo_n "checking for sendmsg in -lsocket... " >&6; }
if ${ac_cv_lib_socket_sendmsg+:} false; 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.  */

/* 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 sendmsg ();
int
main ()
{
return sendmsg ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_socket_sendmsg=yes
else
  ac_cv_lib_socket_sendmsg=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_sendmsg" >&5
$as_echo "$ac_cv_lib_socket_sendmsg" >&6; }
if test "x$ac_cv_lib_socket_sendmsg" = xyes; then :

$as_echo "#define LIBRARY_SENDMSG LIBRARY_LIBSOCKET" >>confdefs.h

fi

    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for send in -lsocket" >&5
$as_echo_n "checking for send in -lsocket... " >&6; }
if ${ac_cv_lib_socket_send+:} false; 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.  */

/* 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 send ();
int
main ()
{
return send ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_socket_send=yes
else
  ac_cv_lib_socket_send=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_send" >&5
$as_echo "$ac_cv_lib_socket_send" >&6; }
if test "x$ac_cv_lib_socket_send" = xyes; then :

$as_echo "#define LIBRARY_SEND LIBRARY_LIBSOCKET" >>confdefs.h

fi

    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for recv in -lsocket" >&5
$as_echo_n "checking for recv in -lsocket... " >&6; }
if ${ac_cv_lib_socket_recv+:} false; 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.  */

/* 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 recv ();
int
main ()
{
return recv ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_socket_recv=yes
else
  ac_cv_lib_socket_recv=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_recv" >&5
$as_echo "$ac_cv_lib_socket_recv" >&6; }
if test "x$ac_cv_lib_socket_recv" = xyes; then :

$as_echo "#define LIBRARY_RECV LIBRARY_LIBSOCKET" >>confdefs.h

fi

    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sendto in -lsocket" >&5
$as_echo_n "checking for sendto in -lsocket... " >&6; }
if ${ac_cv_lib_socket_sendto+:} false; 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.  */

/* 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 sendto ();
int
main ()
{
return sendto ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_socket_sendto=yes
else
  ac_cv_lib_socket_sendto=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_sendto" >&5
$as_echo "$ac_cv_lib_socket_sendto" >&6; }
if test "x$ac_cv_lib_socket_sendto" = xyes; then :

$as_echo "#define LIBRARY_SENDTO LIBRARY_LIBSOCKET" >>confdefs.h

fi

fi

NLIBS="${NLIBS}${NLIBS:+ }$LIBS"
LIBS=""

if test x"$preload_enabled" = xt -a x"${ac_cv_search_inet_addr}" = x"-lnsl"; then

cat >>confdefs.h <<_ACEOF
#define LIBRARY_LIBNSL "${base_library_path}libnsl.${SOLIB_POSTFIX}"
_ACEOF


    SOCKSIFY_PRELOAD_LIBS="${SOCKSIFY_PRELOAD_LIBS}${SOCKSIFY_PRELOAD_LIBS:+${PRELOAD_SEPERATOR}}${base_library_path}libnsl.${SOLIB_POSTFIX}"

    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5
$as_echo_n "checking for gethostbyname in -lnsl... " >&6; }
if ${ac_cv_lib_nsl_gethostbyname+:} false; 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.  */

/* 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
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_nsl_gethostbyname=yes
else
  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" = xyes; then :

$as_echo "#define LIBRARY_GETHOSTBYNAME LIBRARY_LIBNSL" >>confdefs.h

fi

    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyaddr in -lnsl" >&5
$as_echo_n "checking for gethostbyaddr in -lnsl... " >&6; }
if ${ac_cv_lib_nsl_gethostbyaddr+:} false; 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.  */

/* 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 gethostbyaddr ();
int
main ()
{
return gethostbyaddr ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_nsl_gethostbyaddr=yes
else
  ac_cv_lib_nsl_gethostbyaddr=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_gethostbyaddr" >&5
$as_echo "$ac_cv_lib_nsl_gethostbyaddr" >&6; }
if test "x$ac_cv_lib_nsl_gethostbyaddr" = xyes; then :

$as_echo "#define LIBRARY_GETHOSTBYADDR LIBRARY_LIBNSL" >>confdefs.h

fi

    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for freehostent in -lnsl" >&5
$as_echo_n "checking for freehostent in -lnsl... " >&6; }
if ${ac_cv_lib_nsl_freehostent+:} false; 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.  */

/* 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 freehostent ();
int
main ()
{
return freehostent ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_nsl_freehostent=yes
else
  ac_cv_lib_nsl_freehostent=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_freehostent" >&5
$as_echo "$ac_cv_lib_nsl_freehostent" >&6; }
if test "x$ac_cv_lib_nsl_freehostent" = xyes; then :

$as_echo "#define LIBRARY_FREEHOSTENT LIBRARY_LIBNSL" >>confdefs.h

fi

    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getipnodebyname in -lnsl" >&5
$as_echo_n "checking for getipnodebyname in -lnsl... " >&6; }
if ${ac_cv_lib_nsl_getipnodebyname+:} false; 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.  */

/* 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 getipnodebyname ();
int
main ()
{
return getipnodebyname ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_nsl_getipnodebyname=yes
else
  ac_cv_lib_nsl_getipnodebyname=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_getipnodebyname" >&5
$as_echo "$ac_cv_lib_nsl_getipnodebyname" >&6; }
if test "x$ac_cv_lib_nsl_getipnodebyname" = xyes; then :

$as_echo "#define LIBRARY_GETIPNODEBYNAME LIBRARY_LIBNSL" >>confdefs.h

fi

fi

#linking with -lresolv results in error unless -shared is included
#since no static version exists for libresolv on SunOS
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing inet_aton" >&5
$as_echo_n "checking for library containing inet_aton... " >&6; }
if ${ac_cv_search_inet_aton+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* 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 inet_aton ();
int
main ()
{
return inet_aton ();
  ;
  return 0;
}
_ACEOF
for ac_lib in '' resolv; 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_inet_aton=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext
  if ${ac_cv_search_inet_aton+:} false; then :
  break
fi
done
if ${ac_cv_search_inet_aton+:} false; then :

else
  ac_cv_search_inet_aton=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_inet_aton" >&5
$as_echo "$ac_cv_search_inet_aton" >&6; }
ac_res=$ac_cv_search_inet_aton
if test "$ac_res" != no; then :
  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"

fi


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing res_9_init" >&5
$as_echo_n "checking for library containing res_9_init... " >&6; }
if ${ac_cv_search_res_9_init+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* 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 res_9_init ();
int
main ()
{
return res_9_init ();
  ;
  return 0;
}
_ACEOF
for ac_lib in '' resolv; 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_res_9_init=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext
  if ${ac_cv_search_res_9_init+:} false; then :
  break
fi
done
if ${ac_cv_search_res_9_init+:} false; then :

else
  ac_cv_search_res_9_init=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_res_9_init" >&5
$as_echo "$ac_cv_search_res_9_init" >&6; }
ac_res=$ac_cv_search_res_9_init
if test "$ac_res" != no; then :
  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"

fi


NLIBS="${NLIBS}${NLIBS:+ }$LIBS"
LIBS=""

if test x"${preload_enabled}" = xt -a x"${ac_cv_search_inet_aton}" = x"-lresolv"; then

cat >>confdefs.h <<_ACEOF
#define LIBRARY_LIBRESOLV "${base_library_path}libresolv.${SOLIB_POSTFIX}"
_ACEOF


    SOCKSIFY_PRELOAD_LIBS="${SOCKSIFY_PRELOAD_LIBS}${SOCKSIFY_PRELOAD_LIBS:+${PRELOAD_SEPERATOR}}${base_library_path}libresolv.${SOLIB_POSTFIX}"

    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname2 in -lresolv" >&5
$as_echo_n "checking for gethostbyname2 in -lresolv... " >&6; }
if ${ac_cv_lib_resolv_gethostbyname2+:} false; 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.  */

/* 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 gethostbyname2 ();
int
main ()
{
return gethostbyname2 ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_resolv_gethostbyname2=yes
else
  ac_cv_lib_resolv_gethostbyname2=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_gethostbyname2" >&5
$as_echo "$ac_cv_lib_resolv_gethostbyname2" >&6; }
if test "x$ac_cv_lib_resolv_gethostbyname2" = xyes; then :

$as_echo "#define LIBRARY_GETHOSTBYNAME2 LIBRARY_LIBRESOLV" >>confdefs.h

fi

fi

#XXX gcc on Solaris (using gnu ld) doesn't seems to implicitly link
#with libdl in this test, which means that libdl will not be included
#in socksify.

if test x"${preload_enabled}" = xt; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5
$as_echo_n "checking for library containing dlopen... " >&6; }
if ${ac_cv_search_dlopen+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* 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 dlopen ();
int
main ()
{
return dlopen ();
  ;
  return 0;
}
_ACEOF
for ac_lib in '' dl; 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_dlopen=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext
  if ${ac_cv_search_dlopen+:} false; then :
  break
fi
done
if ${ac_cv_search_dlopen+:} false; then :

else
  ac_cv_search_dlopen=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5
$as_echo "$ac_cv_search_dlopen" >&6; }
ac_res=$ac_cv_search_dlopen
if test "$ac_res" != no; then :
  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"

fi


    NLIBS="${NLIBS}${NLIBS:+ }$LIBS"
    LIBS=""
    if test x"${ac_cv_search_dlopen}" = x"-ldl"; then
	case $host in
	    *-*-sunos4*) #XXX attempt to get libdl name
		libdl=`ls ${base_library_path}libdl.${SOLIB_POSTFIX}* | sed -e 's/.*\///' | sort -nr | head -n 1`
		if test x"$libdl" = x; then
		    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unable to locate libdl" >&5
$as_echo "$as_me: WARNING: unable to locate libdl" >&2;}
		else
		    LIBRARY_DLOPEN=${base_library_path}${libdl}
		    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: hardcoding libdl to $LIBRARY_DLOPEN" >&5
$as_echo "$as_me: WARNING: hardcoding libdl to $LIBRARY_DLOPEN" >&2;}
		fi
		;;

	    *)
		LIBRARY_DLOPEN="${base_library_path}libdl.${SOLIB_POSTFIX}"
		;;
	esac
	SOCKSIFY_PRELOAD_LIBS="${SOCKSIFY_PRELOAD_LIBS}${LIBRARY_DLOPEN:+${PRELOAD_SEPERATOR}}${LIBRARY_DLOPEN}"
    fi
fi
LIBS="$oLIBS $NLIBS"



for ac_func in rresvport
do :
  ac_fn_c_check_func "$LINENO" "rresvport" "ac_cv_func_rresvport"
if test "x$ac_cv_func_rresvport" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_RRESVPORT 1
_ACEOF

fi
done
 #not found on android

#specify location of the socks library in socksify too
#NOTE: exec_prefix and prefix have the value NONE here if they are unset
o_exec_prefix=${exec_prefix}
o_prefix=${prefix}
if test x"${prefix}" = xNONE; then
    prefix=$ac_default_prefix
fi
if test x"${exec_prefix}" = xNONE; then
    exec_prefix=$prefix
fi
LIBRARY_PREFIX=`eval echo \$libdir`
LIBRARY_PREFIX=`eval echo \$LIBRARY_PREFIX`
exec_prefix=${o_exec_prefix}
prefix=${o_prefix}


#allow user to specify libc name, use default value otherwise
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libc name" >&5
$as_echo_n "checking for libc name... " >&6; }

# Check whether --with-libc was given.
if test "${with_libc+set}" = set; then :
  withval=$with_libc; LIBC_NAME=$withval
fi


#set default?
if test x"${LIBC_NAME}" = x; then
    case $host in
	*-*-freebsd*)
	    #XXX
	    #can't set it to libc.so directly, might be ld script
	    unset LIBC_ALTS
	    for file in `ldconfig -r | grep /libc.so| awk '{ print $3 }'`; do
		test -s "$file" && LIBC_ALTS="${LIBC_ALTS}${LIBC_ALTS:+ }$file"
	    done
	    LIBC_NAME=`echo ${LIBC_ALTS} | sed -e 's/.*\///' | sort -nr | head -n 1`
	    if test x"${LIBC_NAME}" = x; then
		#nothing found, set libc.so anyway
		LIBC_NAME="${base_library_path}libc.${SOLIB_POSTFIX}"
	    fi
	    ;;

	*-*-linux-*)
	    #XXX
	    #can't set it to libc.so directly, might be ld script
	    unset LIBC_ALTS
	    for file in `ldconfig -p | grep /libc.so| xargs -n 1 echo | grep /libc.so`; do
		test -s "$file" && LIBC_ALTS="${LIBC_ALTS}${LIBC_ALTS:+ }$file"
	    done
	    LIBC_NAME=`echo ${LIBC_ALTS} | sed -e 's/.*\///' | sort -nr | head -n 1`
	    if test x"${LIBC_NAME}" = x; then
		#nothing found, set libc.so anyway
		LIBC_NAME="${base_library_path}libc.so"
	    fi
	    ;;

	*)
	    LIBC_NAME="${base_library_path}libc.${SOLIB_POSTFIX}"
	    ;;
    esac
fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${LIBC_NAME}" >&5
$as_echo "${LIBC_NAME}" >&6; }
if test x"${LIBC_NAME}" = xNULL; then

$as_echo "#define LIBRARY_LIBC NULL" >>confdefs.h

else

cat >>confdefs.h <<_ACEOF
#define LIBRARY_LIBC "${LIBC_NAME}"
_ACEOF

fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for symbol lookup without underscore" >&5
$as_echo_n "checking for symbol lookup without underscore... " >&6; }
if test "$cross_compiling" = yes; then :
  	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

$as_echo "#define HAVE_NO_SYMBOL_UNDERSCORE 1" >>confdefs.h

else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <dlfcn.h>
#include <stdio.h>

#include "include/symbols.h"

int main()
{
    void *lib;
    void *sym;

    if ((lib = dlopen(LIBRARY_CONNECT, DL_LAZY)) == NULL) {
	    fprintf(stderr, "dlopen: %s\n", dlerror());
	    return 1;
    }
    (void)dlerror();
    if ((sym = dlsym(lib, "connect")) == NULL) {
	    fprintf(stderr, "dlsym: %s\n", dlerror());
	    return 1;
    }
    return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

$as_echo "#define HAVE_NO_SYMBOL_UNDERSCORE 1" >>confdefs.h

else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working dlsym" >&5
$as_echo_n "checking for working dlsym... " >&6; }
if test "$cross_compiling" = yes; then :
       { $as_echo "$as_me:${as_lineno-$LINENO}: result: assuming yes" >&5
$as_echo "assuming yes" >&6; }
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <dlfcn.h>
#include <stdio.h>

#include "include/symbols.h"

int main()
{
    void *lib;
    void *sym;

    if ((lib = dlopen(LIBRARY_CONNECT, DL_LAZY)) == NULL) {
	    fprintf(stderr, "dlopen: %s\n", dlerror());
	    return 1;
    }
    (void)dlerror();
    if ((sym = dlsym(lib, SYMBOL_CONNECT)) == NULL) {
	    fprintf(stderr, "dlsym: %s\n", dlerror());
	    return 1;
    }
    return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
     no_preload_client=t
     no_preload_server=t
     no_preload=t
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working RTLD_NEXT" >&5
$as_echo_n "checking for working RTLD_NEXT... " >&6; }
if test "$cross_compiling" = yes; then :
       { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

$as_echo "#define HAVE_RTLD_NEXT 1" >>confdefs.h

else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#define _GNU_SOURCE
#include <dlfcn.h>
#include <stdio.h>

#include "include/symbols.h"

int main()
{
    void *sym;

    if ((sym = dlsym(RTLD_NEXT, SYMBOL_READ)) == NULL) {
	    fprintf(stderr, "dlsym: %s\n", dlerror());
	    return 1;
    }
    return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

$as_echo "#define HAVE_RTLD_NEXT 1" >>confdefs.h

else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }

$as_echo "#define HAVE_RTLD_NEXT 0" >>confdefs.h

fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi


if test x"${preload_enabled}" = xt; then
    #Solaris might block preloading
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking libc preload blocking" >&5
$as_echo_n "checking libc preload blocking... " >&6; }
    if test "$cross_compiling" = yes; then :
      { $as_echo "$as_me:${as_lineno-$LINENO}: result: assuming no" >&5
$as_echo "assuming no" >&6; }
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <stdlib.h>
#include <string.h>
#include <unistd.h>
int
main(int argc, char *argv[])
{
   char buf[1024];

   strcpy(buf, "lari -V ");
   strcat(buf, argv[0]);
   strcat(buf, " | grep read | grep protected > /dev/null");

   /*
    * return error if 'protected'
    * (ignore errors, not indicative of blocking) */
   if (system(buf) == 0)
      return 1;
   else
      return 0;
}

ssize_t
read(d, buf, nbytes)
   int d;
   void *buf;
   size_t nbytes;
{
   return 0;
}

_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: this platform blocks preloading of libraries" >&5
$as_echo "$as_me: WARNING: this platform blocks preloading of libraries" >&2;}
    blocked_preload=t
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi

fi

unset NOPRELOAD
if test x"${no_preload}" != x -o x"${no_preload_client}" != x; then
   NOPRELOAD=t
   FEAT="$FEAT${FEAT:+ }nopreload"
else

$as_echo "#define HAVE_PRELOAD 1" >>confdefs.h

fi




ac_config_files="$ac_config_files bin/socksify"


#look for missing prototypes
if test x"${ac_cv_func__IO_getc}" = xyes; then
   ac_fn_c_check_decl "$LINENO" "_IO_getc" "ac_cv_have_decl__IO_getc" "$ac_includes_default"
if test "x$ac_cv_have_decl__IO_getc" = xyes; then :
  ac_have_decl=1
else
  ac_have_decl=0
fi

cat >>confdefs.h <<_ACEOF
#define HAVE_DECL__IO_GETC $ac_have_decl
_ACEOF
ac_fn_c_check_decl "$LINENO" "_IO_putc" "ac_cv_have_decl__IO_putc" "$ac_includes_default"
if test "x$ac_cv_have_decl__IO_putc" = xyes; then :
  ac_have_decl=1
else
  ac_have_decl=0
fi

cat >>confdefs.h <<_ACEOF
#define HAVE_DECL__IO_PUTC $ac_have_decl
_ACEOF

fi
ac_fn_c_check_decl "$LINENO" "gets" "ac_cv_have_decl_gets" "$ac_includes_default"
if test "x$ac_cv_have_decl_gets" = xyes; then :
  ac_have_decl=1
else
  ac_have_decl=0
fi

cat >>confdefs.h <<_ACEOF
#define HAVE_DECL_GETS $ac_have_decl
_ACEOF



no_gssapi=t
no_krb5=t
no_ldap=t
no_sasl=t
no_pac=t

unset noldap nopac
unset LDAPLIBS

nogssDLIBDEPS=$DLIBDEPS
nogssSOCKDDEPS=$SOCKDDEPS
nogssCPPFLAGS=$CPPFLAGS
nogssLDFLAGS=$LDFLAGS
nogssCFLAGS=$CFLAGS
nogssLIBS=$LIBS

unset gssdir
unset krb5confpath

unset gssapi_default
case $host in
    #openbsd libthread is buggy; disable gssapi by default (needs pthreads)
    *-*-openbsd*)
	gssapi_default=no

$as_echo "#define HAVE_THREADS_EINTR_PROBLEMS 1" >>confdefs.h

	;;
esac

unset GSSAPI

# Check whether --with-gssapi-path was given.
if test "${with_gssapi_path+set}" = set; then :
  withval=$with_gssapi_path; if test -e "$withval"; then
     gssdir=$withval
     #act as if --with-gssapi is specified if path is given
     GSSAPI="yes"
 else
     { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: invalid gssapi-path: $withval" >&5
$as_echo "$as_me: WARNING: invalid gssapi-path: $withval" >&2;}
 fi
fi



# Check whether --with-gssapi was given.
if test "${with_gssapi+set}" = set; then :
  withval=$with_gssapi; GSSAPI=$withval
else
  if test x"${gssapi_default}" = xno -a x"$GSSAPI" != xyes; then
     GSSAPI="no"
     { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: gssapi disabled by default on this platform" >&5
$as_echo "$as_me: WARNING: gssapi disabled by default on this platform" >&2;}
 fi
fi



# Check whether --with-krb5-config was given.
if test "${with_krb5_config+set}" = set; then :
  withval=$with_krb5_config; if test x"$withval" != xno; then
     krb5confpath=$withval
 fi
fi


if test x"$GSSAPI" != xno; then
   #attempt to create build environment based on prefix
   if test x"$gssdir" != x; then
      if test x"$krb5confpath" = x -a -x "$gssdir/bin/krb5-config"; then
            krb5confpath=$gssdir/bin/krb5-config
      fi
   else
      #set /usr as default gssdir
      case $host in
          *-*-aix*)
	      gssdir=/usr/krb5
	      ;;
	  *)
	      gssdir=/usr
	      ;;
      esac
   fi

   unset krb5fail
   if test x"$krb5confpath" != xno; then
       if test x"$krb5confpath" != x; then
           if ! test -x "$krb5confpath"; then
	       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: krb5-config '$krb5confpath' not executable, ignoring" >&5
$as_echo "$as_me: WARNING: krb5-config '$krb5confpath' not executable, ignoring" >&2;}
           else
               ac_gssapi_cflags=`$krb5confpath --cflags gssapi 2>/dev/null`
	       if test $? != 0; then
		   krb5fail=t
	       fi
	       ac_gssapi_libs=`$krb5confpath --libs gssapi 2>/dev/null`
	       if test $? != 0; then
		   krb5fail=t
	       fi
           fi
       else
           # Extract the first word of "krb5-config", so it can be a program name with args.
set dummy krb5-config; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_ac_krb5_config+:} false; then :
  $as_echo_n "(cached) " >&6
else
  if test -n "$ac_krb5_config"; then
  ac_cv_prog_ac_krb5_config="$ac_krb5_config" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
  IFS=$as_save_IFS
  test -z "$as_dir" && as_dir=.
    for ac_exec_ext in '' $ac_executable_extensions; do
  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
    ac_cv_prog_ac_krb5_config="yes"
    $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

  test -z "$ac_cv_prog_ac_krb5_config" && ac_cv_prog_ac_krb5_config="no"
fi
fi
ac_krb5_config=$ac_cv_prog_ac_krb5_config
if test -n "$ac_krb5_config"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_krb5_config" >&5
$as_echo "$ac_krb5_config" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi


           if test x"${ac_krb5_config}" = xyes; then
	       ac_gssapi_cflags=`krb5-config --cflags gssapi 2>/dev/null`
	       if test $? != 0; then
		   krb5fail=t
	       fi
	       ac_gssapi_libs=`krb5-config --libs gssapi 2>/dev/null`
	       if test $? != 0; then
		   krb5fail=t
	       fi
           fi
       fi
   fi
      if test x"$krb5fail" = xt; then
       ac_gssapi_cflags=
       ac_gssapi_libs=
   fi

      if test x"${ac_gssapi_cflags}" = x -a x"${ac_gssapi_libs}" = x -a \
           x"$gssdir" != x; then
              case $host in
           *-*-aix*)
	       CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I/usr/include"
	       ;;
	   *)
	       CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$gssdir/include"
	       ;;
       esac

       LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$gssdir/lib"
       #includes under kerberosV dir on OpenBSD
       if test -d "$gssdir/include/kerberosV"; then
		  CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I${gssdir}/include/kerberosV"
       fi
   fi

      if test x"${ac_gssapi_cflags}" != x; then
       CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$ac_gssapi_cflags"
   fi

      if test x"${ac_gssapi_libs}" != x; then
              SOCKDDEPS="${SOCKDDEPS}${SOCKDDEPS:+ }$ac_gssapi_libs"

       #need to use -lpthread rather than -pthread for dlib because
       #the first will not cause -lpthread to be linked in
       #(and the application might not be linked with -lphread).
       #applications should use -pthread so keep this for SOCKDDEPS
       NDEPS=`echo $ac_gssapi_libs | sed -e 's/-pthread/-lpthread/g'`
              DLIBDEPS="${DLIBDEPS}${DLIBDEPS:+ }$NDEPS"
   fi

      for ac_header in gssapi.h gssapi/gssapi.h gssapi/gssapi_ext.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"
if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
  cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF

fi

done

      for ac_header in gssapi/gssapi_krb5.h
do :
  ac_fn_c_check_header_compile "$LINENO" "gssapi/gssapi_krb5.h" "ac_cv_header_gssapi_gssapi_krb5_h" "
#if HAVE_GSSAPI_H
#include <gssapi.h>
#elif HAVE_GSSAPI_GSSAPI_H
#include <gssapi/gssapi.h>
#endif /* HAVE_GSSAPI_H */

"
if test "x$ac_cv_header_gssapi_gssapi_krb5_h" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_GSSAPI_GSSAPI_KRB5_H 1
_ACEOF

fi

done

   for ac_header in gssapi/gssapi_generic.h
do :
  ac_fn_c_check_header_mongrel "$LINENO" "gssapi/gssapi_generic.h" "ac_cv_header_gssapi_gssapi_generic_h" "$ac_includes_default"
if test "x$ac_cv_header_gssapi_gssapi_generic_h" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_GSSAPI_GSSAPI_GENERIC_H 1
_ACEOF

fi

done


      if test x"${ac_gssapi_libs}" != x; then
       _libsonly=`echo $ac_gssapi_libs | xargs -n1 | egrep '^-l' | xargs echo`
       _optsonly=`echo $ac_gssapi_libs | xargs -n1 | egrep -v '^-l' | xargs echo`
       LIBS="${LIBS}${LIBS:+ }${_libsonly}"
       LDFLAGS="${LDFLAGS}${LDFLAGS:+ }${_optsonly}"

       case $host in
	   *-*-freebsd7*)
	          #skip check, causes problems
	       ;;
	   *)
	       #wanted in case of Heimdal on FreeBSD, if the function
	       #is missing in libgssapi. not wanted if not needed for
	       #heimdal (potentially causes linking problems if
	       #multiple kerberos implementations are installed on a
	       #machine).
	       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing gsskrb5_register_acceptor_identity" >&5
$as_echo_n "checking for library containing gsskrb5_register_acceptor_identity... " >&6; }
if ${ac_cv_search_gsskrb5_register_acceptor_identity+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* 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 gsskrb5_register_acceptor_identity ();
int
main ()
{
return gsskrb5_register_acceptor_identity ();
  ;
  return 0;
}
_ACEOF
for ac_lib in '' gssapi gssapi_krb5; 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_gsskrb5_register_acceptor_identity=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext
  if ${ac_cv_search_gsskrb5_register_acceptor_identity+:} false; then :
  break
fi
done
if ${ac_cv_search_gsskrb5_register_acceptor_identity+:} false; then :

else
  ac_cv_search_gsskrb5_register_acceptor_identity=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_gsskrb5_register_acceptor_identity" >&5
$as_echo "$ac_cv_search_gsskrb5_register_acceptor_identity" >&6; }
ac_res=$ac_cv_search_gsskrb5_register_acceptor_identity
if test "$ac_res" != no; then :
  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"

fi

	       ;;
       esac
   else
       oLIBS=$LIBS
       LIBS=""

       #AC_CHECK_LIB(crypto, main) #XXX only very old mit kerberos
       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -ldes" >&5
$as_echo_n "checking for main in -ldes... " >&6; }
if ${ac_cv_lib_des_main+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-ldes  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


int
main ()
{
return main ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_des_main=yes
else
  ac_cv_lib_des_main=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_des_main" >&5
$as_echo "$ac_cv_lib_des_main" >&6; }
if test "x$ac_cv_lib_des_main" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_LIBDES 1
_ACEOF

  LIBS="-ldes $LIBS"

fi

       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lcrypt" >&5
$as_echo_n "checking for main in -lcrypt... " >&6; }
if ${ac_cv_lib_crypt_main+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lcrypt  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


int
main ()
{
return main ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_crypt_main=yes
else
  ac_cv_lib_crypt_main=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_crypt_main" >&5
$as_echo "$ac_cv_lib_crypt_main" >&6; }
if test "x$ac_cv_lib_crypt_main" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_LIBCRYPT 1
_ACEOF

  LIBS="-lcrypt $LIBS"

fi

       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lroken" >&5
$as_echo_n "checking for main in -lroken... " >&6; }
if ${ac_cv_lib_roken_main+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lroken  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


int
main ()
{
return main ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_roken_main=yes
else
  ac_cv_lib_roken_main=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_roken_main" >&5
$as_echo "$ac_cv_lib_roken_main" >&6; }
if test "x$ac_cv_lib_roken_main" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_LIBROKEN 1
_ACEOF

  LIBS="-lroken $LIBS"

fi


       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lcom_err" >&5
$as_echo_n "checking for main in -lcom_err... " >&6; }
if ${ac_cv_lib_com_err_main+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lcom_err  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


int
main ()
{
return main ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_com_err_main=yes
else
  ac_cv_lib_com_err_main=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_com_err_main" >&5
$as_echo "$ac_cv_lib_com_err_main" >&6; }
if test "x$ac_cv_lib_com_err_main" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_LIBCOM_ERR 1
_ACEOF

  LIBS="-lcom_err $LIBS"

fi

       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -ldes425" >&5
$as_echo_n "checking for main in -ldes425... " >&6; }
if ${ac_cv_lib_des425_main+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-ldes425  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


int
main ()
{
return main ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_des425_main=yes
else
  ac_cv_lib_des425_main=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_des425_main" >&5
$as_echo "$ac_cv_lib_des425_main" >&6; }
if test "x$ac_cv_lib_des425_main" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_LIBDES425 1
_ACEOF

  LIBS="-ldes425 $LIBS"

fi

       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lk5crypto" >&5
$as_echo_n "checking for main in -lk5crypto... " >&6; }
if ${ac_cv_lib_k5crypto_main+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lk5crypto  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


int
main ()
{
return main ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_k5crypto_main=yes
else
  ac_cv_lib_k5crypto_main=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_k5crypto_main" >&5
$as_echo "$ac_cv_lib_k5crypto_main" >&6; }
if test "x$ac_cv_lib_k5crypto_main" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_LIBK5CRYPTO 1
_ACEOF

  LIBS="-lk5crypto $LIBS"

fi


       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lpthread" >&5
$as_echo_n "checking for main in -lpthread... " >&6; }
if ${ac_cv_lib_pthread_main+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lpthread  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


int
main ()
{
return main ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_pthread_main=yes
else
  ac_cv_lib_pthread_main=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_pthread_main" >&5
$as_echo "$ac_cv_lib_pthread_main" >&6; }
if test "x$ac_cv_lib_pthread_main" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_LIBPTHREAD 1
_ACEOF

  LIBS="-lpthread $LIBS"

fi


       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lasn1" >&5
$as_echo_n "checking for main in -lasn1... " >&6; }
if ${ac_cv_lib_asn1_main+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lasn1  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


int
main ()
{
return main ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_asn1_main=yes
else
  ac_cv_lib_asn1_main=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_asn1_main" >&5
$as_echo "$ac_cv_lib_asn1_main" >&6; }
if test "x$ac_cv_lib_asn1_main" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_LIBASN1 1
_ACEOF

  LIBS="-lasn1 $LIBS"

fi

       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lkrb5" >&5
$as_echo_n "checking for main in -lkrb5... " >&6; }
if ${ac_cv_lib_krb5_main+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lkrb5  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


int
main ()
{
return main ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_krb5_main=yes
else
  ac_cv_lib_krb5_main=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_krb5_main" >&5
$as_echo "$ac_cv_lib_krb5_main" >&6; }
if test "x$ac_cv_lib_krb5_main" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_LIBKRB5 1
_ACEOF

  LIBS="-lkrb5 $LIBS"

fi

       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lgssapi_krb5" >&5
$as_echo_n "checking for main in -lgssapi_krb5... " >&6; }
if ${ac_cv_lib_gssapi_krb5_main+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lgssapi_krb5  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


int
main ()
{
return main ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_gssapi_krb5_main=yes
else
  ac_cv_lib_gssapi_krb5_main=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_gssapi_krb5_main" >&5
$as_echo "$ac_cv_lib_gssapi_krb5_main" >&6; }
if test "x$ac_cv_lib_gssapi_krb5_main" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_LIBGSSAPI_KRB5 1
_ACEOF

  LIBS="-lgssapi_krb5 $LIBS"

fi


       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lgssapi" >&5
$as_echo_n "checking for main in -lgssapi... " >&6; }
if ${ac_cv_lib_gssapi_main+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lgssapi  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


int
main ()
{
return main ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_gssapi_main=yes
else
  ac_cv_lib_gssapi_main=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_gssapi_main" >&5
$as_echo "$ac_cv_lib_gssapi_main" >&6; }
if test "x$ac_cv_lib_gssapi_main" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_LIBGSSAPI 1
_ACEOF

  LIBS="-lgssapi $LIBS"

fi


       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lgss" >&5
$as_echo_n "checking for main in -lgss... " >&6; }
if ${ac_cv_lib_gss_main+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lgss  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


int
main ()
{
return main ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_gss_main=yes
else
  ac_cv_lib_gss_main=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_gss_main" >&5
$as_echo "$ac_cv_lib_gss_main" >&6; }
if test "x$ac_cv_lib_gss_main" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_LIBGSS 1
_ACEOF

  LIBS="-lgss $LIBS"

fi


       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lksvc" >&5
$as_echo_n "checking for main in -lksvc... " >&6; }
if ${ac_cv_lib_ksvc_main+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lksvc  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


int
main ()
{
return main ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_ksvc_main=yes
else
  ac_cv_lib_ksvc_main=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_ksvc_main" >&5
$as_echo "$ac_cv_lib_ksvc_main" >&6; }
if test "x$ac_cv_lib_ksvc_main" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_LIBKSVC 1
_ACEOF

  LIBS="-lksvc $LIBS"

fi


              if test x"${LIBS}" != x; then
	   DLIBDEPS="${DLIBDEPS}${DLIBDEPS:+ }$LIBS"
	   SOCKDDEPS="${SOCKDDEPS}${SOCKDDEPS:+ }$LIBS"
       fi
       LIBS="${oLIBS}${oLIBS:+ }$LIBS"
   fi


   for ac_func in gss_map_name_to_any
do :
  ac_fn_c_check_func "$LINENO" "gss_map_name_to_any" "ac_cv_func_gss_map_name_to_any"
if test "x$ac_cv_func_gss_map_name_to_any" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_GSS_MAP_NAME_TO_ANY 1
_ACEOF

$as_echo "#define HAVE_GSS_MAP_ANY_TO_ANY 1" >>confdefs.h

fi
done

   for ac_func in gsskrb5_extract_authz_data_from_sec_context
do :
  ac_fn_c_check_func "$LINENO" "gsskrb5_extract_authz_data_from_sec_context" "ac_cv_func_gsskrb5_extract_authz_data_from_sec_context"
if test "x$ac_cv_func_gsskrb5_extract_authz_data_from_sec_context" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_GSSKRB5_EXTRACT_AUTHZ_DATA_FROM_SEC_CONTEXT 1
_ACEOF

$as_echo "#define HAVE_GSSKRB5_EXTRACT_AUTHZ_DATA_FROM_SEC_CONTEXT 1" >>confdefs.h

fi
done


   unset have_heimdal
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for heimdal" >&5
$as_echo_n "checking for heimdal... " >&6; }
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include "krb5.h"
int
main ()
{
printf("%s\n", heimdal_version);
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :

$as_echo "#define HAVE_HEIMDAL_KERBEROS 1" >>confdefs.h

    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
    have_heimdal=t
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_exeext conftest.$ac_ext

      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working gssapi" >&5
$as_echo_n "checking for working gssapi... " >&6; }
   if test "$cross_compiling" = yes; then :
      { $as_echo "$as_me:${as_lineno-$LINENO}: result: assuming no" >&5
$as_echo "assuming no" >&6; }
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#if HAVE_GSSAPI_H
#include <gssapi.h>
#elif HAVE_GSSAPI_GSSAPI_H
#include <gssapi/gssapi.h>
#endif /* HAVE_GSSAPI_H */

#if !HAVE_HEIMDAL_KERBEROS
#if HAVE_GSSAPI_GSSAPI_EXT_H
#include <gssapi/gssapi_ext.h>
#endif /* HAVE_GSSAPI_GSSAPI_EXT_H */
#if HAVE_GSSAPI_GSSAPI_KRB5_H
#include <gssapi/gssapi_krb5.h>
#endif /* HAVE_GSSAPI_GSSAPI_KRB5_H */
#if HAVE_GSSAPI_GSSAPI_GENERIC_H
#include <gssapi/gssapi_generic.h>
#endif /* HAVE_GSSAPI_GSSAPI_GENERIC_H */
#endif /* HAVE_HEIMDAL_KERBEROS */

int
main(void)
{
    OM_uint32 val;
    gss_OID_set set;

    gss_create_empty_oid_set(&val, &set);

    return 0;
}

_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
  unset no_gssapi
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi


   for file in gssapi.h gssapi/gssapi.h gssapi/gssapi_generic.h; do
       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <$file>

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "gss_nt_service_name" >/dev/null 2>&1; then :
  break
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <$file>

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "gss_nt_service_name" >/dev/null 2>&1; then :
  GSS_C_NT_HOSTBASED_SERVICE
else

$as_echo "#define gss_nt_service_name GSS_C_NT_HOSTBASED_SERVICE" >>confdefs.h

                              break;
fi
rm -f conftest*

fi
rm -f conftest*

   done
fi

#restore build environment if not using gssapi
if test x"${no_gssapi}" = xt; then
    DLIBDEPS=$nogssDLIBDEPS
    SOCKDDEPS=$nogssSOCKDDEPS
    CPPFLAGS=$nogssCPPFLAGS
    LDFLAGS=$nogssLDFLAGS
    CFLAGS=$nogssCFLAGS
    LIBS=$nogssLIBS
else
    #include libs as dependencies as needed in subdirs
    LIBS="${LIBS}${LIBS:+ }$nogssLIBS"


$as_echo "#define HAVE_GSSAPI 1" >>confdefs.h

fi

if test x"${no_gssapi}" = xt; then
   noldap="working GSSAPI installation required"
   nopac="working GSSAPI installation required"
else
   FEAT="$FEAT${FEAT:+ }gssapi"

   LIBScpy="$LIBS"

#AC_ARG_WITH(krb5,
# [  --without-krb5          disable kerberos 5 support [default=detect]],
# [KRB5="$withval"])
KRB5=yes


if test x"$KRB5" != xno; then
   unset krb5fail
   if test x"$krb5confpath" != x; then
      ac_krb5_cflags=`$krb5confpath --cflags krb5 2>/dev/null`
      if test $? != 0; then
         krb5fail=t
      fi
      ac_krb5_libs=`$krb5confpath --libs krb5 2>/dev/null`
      if test $? != 0; then
         krb5fail=t
      fi
      ac_krb5_heimdal="`$krb5confpath --version 2>/dev/null | grep -i heimdal`"
   fi
      if test x"$krb5confpath" = x -o x"$krb5fail" = xt; then
      ac_krb5_cflags=
      ac_krb5_libs=
   fi

   unset PAC

# Check whether --with-pac was given.
if test "${with_pac+set}" = set; then :
  withval=$with_pac; PAC="$withval"
else
  PAC="yes" #default
fi


   if test x"$PAC" != xyes; then
      PAC="no"
      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PAC disabled with --without-pac" >&5
$as_echo "$as_me: WARNING: PAC disabled with --without-pac" >&2;}
   fi

      if test x"${ac_krb5_cflags}" != x; then
      CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$ac_krb5_cflags"
   fi

      for ac_header in krb5.h kerberosv5/krb5.h com_err.h et/com_err.h kerberosv5/com_err.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"
if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
  cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF

fi

done


   ac_com_error_message=no
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <krb5.h>

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "com_err.h" >/dev/null 2>&1; then :
  ac_com_err_krb5=yes
fi
rm -f conftest*

   if test x"${ac_com_err_krb5}" = xyes; then

$as_echo "#define HAVE_COM_ERR_IN_KRB5 1" >>confdefs.h

   fi
   if test x"${ac_cv_header_com_err_h}" = xyes; then
      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <com_err.h>

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "error_message" >/dev/null 2>&1; then :
  ac_com_error_message=yes
fi
rm -f conftest*

   elif test x"${ac_cv_header_et_com_err_h}" = xyes; then
      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <et/com_err.h>

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "error_message" >/dev/null 2>&1; then :
  ac_com_error_message=yes
fi
rm -f conftest*

   elif test x"${ac_cv_header_kerberosv5_com_err_h}" = xyes; then
      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <kerberosv5/com_err.h>

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "error_message" >/dev/null 2>&1; then :
  ac_com_error_message=yes
fi
rm -f conftest*

   fi

      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lpthread" >&5
$as_echo_n "checking for main in -lpthread... " >&6; }
if ${ac_cv_lib_pthread_main+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lpthread  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


int
main ()
{
return main ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_pthread_main=yes
else
  ac_cv_lib_pthread_main=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_pthread_main" >&5
$as_echo "$ac_cv_lib_pthread_main" >&6; }
if test "x$ac_cv_lib_pthread_main" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_LIBPTHREAD 1
_ACEOF

  LIBS="-lpthread $LIBS"

fi


      if test x"${ac_krb5_libs}" != x; then
      _libsonly=`echo $ac_krb5_libs | xargs -n1 | egrep '^-l' | xargs echo`
      _optsonly=`echo $ac_krb5_libs | xargs -n1 | egrep -v '^-l' | xargs echo`

      LIBS="${LIBS}${LIBS:+ }${_libsonly}"
      LDFLAGS="${LDFLAGS}${LDFLAGS:+ }${_optsonly}"
   else
      #AC_CHECK_LIB(crypto, main) #XXX only very old mit kerberos
      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -ldes" >&5
$as_echo_n "checking for main in -ldes... " >&6; }
if ${ac_cv_lib_des_main+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-ldes  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


int
main ()
{
return main ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_des_main=yes
else
  ac_cv_lib_des_main=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_des_main" >&5
$as_echo "$ac_cv_lib_des_main" >&6; }
if test "x$ac_cv_lib_des_main" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_LIBDES 1
_ACEOF

  LIBS="-ldes $LIBS"

fi

      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lcrypt" >&5
$as_echo_n "checking for main in -lcrypt... " >&6; }
if ${ac_cv_lib_crypt_main+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lcrypt  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


int
main ()
{
return main ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_crypt_main=yes
else
  ac_cv_lib_crypt_main=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_crypt_main" >&5
$as_echo "$ac_cv_lib_crypt_main" >&6; }
if test "x$ac_cv_lib_crypt_main" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_LIBCRYPT 1
_ACEOF

  LIBS="-lcrypt $LIBS"

fi

      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lroken" >&5
$as_echo_n "checking for main in -lroken... " >&6; }
if ${ac_cv_lib_roken_main+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lroken  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


int
main ()
{
return main ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_roken_main=yes
else
  ac_cv_lib_roken_main=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_roken_main" >&5
$as_echo "$ac_cv_lib_roken_main" >&6; }
if test "x$ac_cv_lib_roken_main" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_LIBROKEN 1
_ACEOF

  LIBS="-lroken $LIBS"

fi


      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lcom_err" >&5
$as_echo_n "checking for main in -lcom_err... " >&6; }
if ${ac_cv_lib_com_err_main+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lcom_err  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


int
main ()
{
return main ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_com_err_main=yes
else
  ac_cv_lib_com_err_main=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_com_err_main" >&5
$as_echo "$ac_cv_lib_com_err_main" >&6; }
if test "x$ac_cv_lib_com_err_main" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_LIBCOM_ERR 1
_ACEOF

  LIBS="-lcom_err $LIBS"

fi

      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -ldes425" >&5
$as_echo_n "checking for main in -ldes425... " >&6; }
if ${ac_cv_lib_des425_main+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-ldes425  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


int
main ()
{
return main ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_des425_main=yes
else
  ac_cv_lib_des425_main=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_des425_main" >&5
$as_echo "$ac_cv_lib_des425_main" >&6; }
if test "x$ac_cv_lib_des425_main" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_LIBDES425 1
_ACEOF

  LIBS="-ldes425 $LIBS"

fi

      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lk5crypto" >&5
$as_echo_n "checking for main in -lk5crypto... " >&6; }
if ${ac_cv_lib_k5crypto_main+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lk5crypto  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


int
main ()
{
return main ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_k5crypto_main=yes
else
  ac_cv_lib_k5crypto_main=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_k5crypto_main" >&5
$as_echo "$ac_cv_lib_k5crypto_main" >&6; }
if test "x$ac_cv_lib_k5crypto_main" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_LIBK5CRYPTO 1
_ACEOF

  LIBS="-lk5crypto $LIBS"

fi


      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lasn1" >&5
$as_echo_n "checking for main in -lasn1... " >&6; }
if ${ac_cv_lib_asn1_main+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lasn1  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


int
main ()
{
return main ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_asn1_main=yes
else
  ac_cv_lib_asn1_main=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_asn1_main" >&5
$as_echo "$ac_cv_lib_asn1_main" >&6; }
if test "x$ac_cv_lib_asn1_main" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_LIBASN1 1
_ACEOF

  LIBS="-lasn1 $LIBS"

fi

      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lkrb5" >&5
$as_echo_n "checking for main in -lkrb5... " >&6; }
if ${ac_cv_lib_krb5_main+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lkrb5  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


int
main ()
{
return main ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_krb5_main=yes
else
  ac_cv_lib_krb5_main=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_krb5_main" >&5
$as_echo "$ac_cv_lib_krb5_main" >&6; }
if test "x$ac_cv_lib_krb5_main" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_LIBKRB5 1
_ACEOF

  LIBS="-lkrb5 $LIBS"

fi


      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lksvc" >&5
$as_echo_n "checking for main in -lksvc... " >&6; }
if ${ac_cv_lib_ksvc_main+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lksvc  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


int
main ()
{
return main ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_ksvc_main=yes
else
  ac_cv_lib_ksvc_main=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_ksvc_main" >&5
$as_echo "$ac_cv_lib_ksvc_main" >&6; }
if test "x$ac_cv_lib_ksvc_main" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_LIBKSVC 1
_ACEOF

  LIBS="-lksvc $LIBS"

fi

   fi

   if test `echo $LIBS | grep -c com_err` -ne 0 -a x"$ac_com_error_message" = xyes; then
      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for error_message in -lcom_err" >&5
$as_echo_n "checking for error_message in -lcom_err... " >&6; }
if ${ac_cv_lib_com_err_error_message+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lcom_err  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* 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 error_message ();
int
main ()
{
return error_message ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_com_err_error_message=yes
else
  ac_cv_lib_com_err_error_message=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_com_err_error_message" >&5
$as_echo "$ac_cv_lib_com_err_error_message" >&6; }
if test "x$ac_cv_lib_com_err_error_message" = xyes; then :

$as_echo "#define HAVE_ERROR_MESSAGE 1" >>confdefs.h

fi

   elif test x"${ac_com_error_message}" = xyes; then
      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for error_message in -lkrb5" >&5
$as_echo_n "checking for error_message in -lkrb5... " >&6; }
if ${ac_cv_lib_krb5_error_message+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lkrb5  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* 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 error_message ();
int
main ()
{
return error_message ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_krb5_error_message=yes
else
  ac_cv_lib_krb5_error_message=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_krb5_error_message" >&5
$as_echo "$ac_cv_lib_krb5_error_message" >&6; }
if test "x$ac_cv_lib_krb5_error_message" = xyes; then :

$as_echo "#define HAVE_ERROR_MESSAGE 1" >>confdefs.h

fi

   fi

   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_get_err_text in -lkrb5" >&5
$as_echo_n "checking for krb5_get_err_text in -lkrb5... " >&6; }
if ${ac_cv_lib_krb5_krb5_get_err_text+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lkrb5  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* 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 krb5_get_err_text ();
int
main ()
{
return krb5_get_err_text ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_krb5_krb5_get_err_text=yes
else
  ac_cv_lib_krb5_krb5_get_err_text=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_krb5_krb5_get_err_text" >&5
$as_echo "$ac_cv_lib_krb5_krb5_get_err_text" >&6; }
if test "x$ac_cv_lib_krb5_krb5_get_err_text" = xyes; then :

$as_echo "#define HAVE_KRB5_GET_ERR_TEXT 1" >>confdefs.h

fi

   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_get_error_message in -lkrb5" >&5
$as_echo_n "checking for krb5_get_error_message in -lkrb5... " >&6; }
if ${ac_cv_lib_krb5_krb5_get_error_message+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lkrb5  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* 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 krb5_get_error_message ();
int
main ()
{
return krb5_get_error_message ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_krb5_krb5_get_error_message=yes
else
  ac_cv_lib_krb5_krb5_get_error_message=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_krb5_krb5_get_error_message" >&5
$as_echo "$ac_cv_lib_krb5_krb5_get_error_message" >&6; }
if test "x$ac_cv_lib_krb5_krb5_get_error_message" = xyes; then :

$as_echo "#define HAVE_KRB5_GET_ERROR_MESSAGE 1" >>confdefs.h

fi


  if test x"$PAC" != xno; then
     ac_fn_c_check_type "$LINENO" "krb5_pac" "ac_cv_type_krb5_pac" "
#if HAVE_KRB5_H
#include <krb5.h>
#elif HAVE_KERBEROSV5_KRB5_H
#include <kerberosv5/krb5.h>
#endif /* HAVE_KERBEROSV5_KRB5_H */

"
if test "x$ac_cv_type_krb5_pac" = xyes; then :

$as_echo "#define HAVE_KRB5_PAC 1" >>confdefs.h

fi


     #relies on gssapi.m4 having being run
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking if environment is usable for pac" >&5
$as_echo_n "checking if environment is usable for pac... " >&6; }
     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#if HAVE_GSSKRB5_EXTRACT_AUTHZ_DATA_FROM_SEC_CONTEXT && HAVE_HEIMDAL_KERBEROS && HAVE_KRB5_PAC
yes
#elif HAVE_GSS_MAP_NAME_TO_ANY && !HAVE_HEIMDAL_KERBEROS && HAVE_KRB5_PAC
yes
#endif /* HAVE_GSS_MAP_NAME_TO_ANY && !HAVE_HEIMDAL_KERBEROS && HAVE_KRB5_PAC */

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "yes" >/dev/null 2>&1; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
       unset no_pac
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f conftest*

   else
      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, disabled" >&5
$as_echo "no, disabled" >&6; }
   fi

      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working krb5" >&5
$as_echo_n "checking for working krb5... " >&6; }
   if test "$cross_compiling" = yes; then :
      unset no_krb5

$as_echo "#define HAVE_KRB5 1" >>confdefs.h

    { $as_echo "$as_me:${as_lineno-$LINENO}: result: assuming yes" >&5
$as_echo "assuming yes" >&6; }
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#if HAVE_KRB5_H
#include <krb5.h>
#elif HAVE_KERBEROSV5_KRB5_H
#include <kerberosv5/krb5.h>
#endif /* HAVE_KERBEROSV5_KRB5_H */

int
main(void)
{
        krb5_context context;

        krb5_init_context(&context);

       return 0;
}

_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
  unset no_krb5

$as_echo "#define HAVE_KRB5 1" >>confdefs.h

    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi


   ac_fn_c_check_decl "$LINENO" "krb5_kt_free_entry" "ac_cv_have_decl_krb5_kt_free_entry" "
#if HAVE_KRB5_H
#include <krb5.h>
#elif HAVE_KERBEROSV5_KRB5_H
#include <kerberosv5/krb5.h>
#endif /* HAVE_KERBEROSV5_KRB5_H */

"
if test "x$ac_cv_have_decl_krb5_kt_free_entry" = xyes; then :
  ac_have_decl=1
else
  ac_have_decl=0
fi

cat >>confdefs.h <<_ACEOF
#define HAVE_DECL_KRB5_KT_FREE_ENTRY $ac_have_decl
_ACEOF

   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_kt_free_entry in -lkrb5" >&5
$as_echo_n "checking for krb5_kt_free_entry in -lkrb5... " >&6; }
if ${ac_cv_lib_krb5_krb5_kt_free_entry+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lkrb5  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* 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 krb5_kt_free_entry ();
int
main ()
{
return krb5_kt_free_entry ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_krb5_krb5_kt_free_entry=yes
else
  ac_cv_lib_krb5_krb5_kt_free_entry=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_krb5_krb5_kt_free_entry" >&5
$as_echo "$ac_cv_lib_krb5_krb5_kt_free_entry" >&6; }
if test "x$ac_cv_lib_krb5_krb5_kt_free_entry" = xyes; then :

$as_echo "#define HAVE_KRB5_KT_FREE_ENTRY 1" >>confdefs.h

fi

   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_get_init_creds_keytab in -lkrb5" >&5
$as_echo_n "checking for krb5_get_init_creds_keytab in -lkrb5... " >&6; }
if ${ac_cv_lib_krb5_krb5_get_init_creds_keytab+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lkrb5  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* 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 krb5_get_init_creds_keytab ();
int
main ()
{
return krb5_get_init_creds_keytab ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_krb5_krb5_get_init_creds_keytab=yes
else
  ac_cv_lib_krb5_krb5_get_init_creds_keytab=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_krb5_krb5_get_init_creds_keytab" >&5
$as_echo "$ac_cv_lib_krb5_krb5_get_init_creds_keytab" >&6; }
if test "x$ac_cv_lib_krb5_krb5_get_init_creds_keytab" = xyes; then :

$as_echo "#define HAVE_GET_INIT_CREDS_KEYTAB 1" >>confdefs.h

fi

   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_get_init_creds_opt_alloc in -lkrb5" >&5
$as_echo_n "checking for krb5_get_init_creds_opt_alloc in -lkrb5... " >&6; }
if ${ac_cv_lib_krb5_krb5_get_init_creds_opt_alloc+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lkrb5  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* 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 krb5_get_init_creds_opt_alloc ();
int
main ()
{
return krb5_get_init_creds_opt_alloc ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_krb5_krb5_get_init_creds_opt_alloc=yes
else
  ac_cv_lib_krb5_krb5_get_init_creds_opt_alloc=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_krb5_krb5_get_init_creds_opt_alloc" >&5
$as_echo "$ac_cv_lib_krb5_krb5_get_init_creds_opt_alloc" >&6; }
if test "x$ac_cv_lib_krb5_krb5_get_init_creds_opt_alloc" = xyes; then :

$as_echo "#define HAVE_GET_INIT_CREDS_OPT_ALLOC 1" >>confdefs.h

fi


   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_get_init_creds_opt_free with krb5 context " >&5
$as_echo_n "checking for krb5_get_init_creds_opt_free with krb5 context ... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#if HAVE_KRB5_H
#include <krb5.h>
#elif HAVE_KERBEROSV5_KRB5_H
#include <kerberosv5/krb5.h>
#endif /* HAVE_KERBEROSV5_KRB5_H */

int
main ()
{

krb5_context context;
krb5_get_init_creds_opt options;
krb5_get_init_creds_opt_free(context, &options);

  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

$as_echo "#define HAVE_GET_INIT_CREDS_OPT_FREE_CTX 1" >>confdefs.h

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

   case $host in
    *-*-solaris*)
              { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: disabling Kerberos memory cache on this platform" >&5
$as_echo "$as_me: WARNING: disabling Kerberos memory cache on this platform" >&2;}
       ;;
    *)
       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MEMORY cache" >&5
$as_echo_n "checking for MEMORY cache... " >&6; }
       if test "$cross_compiling" = yes; then :
  	 true
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#if HAVE_KRB5_H
#include <krb5.h>
#elif HAVE_KERBEROSV5_KRB5_H
#include <kerberosv5/krb5.h>
#endif /* HAVE_KERBEROSV5_KRB5_H */

main()
{
    krb5_context context;
    krb5_ccache cc;

    krb5_init_context(&context);
    return krb5_cc_resolve(context, "MEMORY:test_cache", &cc);
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :

$as_echo "#define HAVE_KRB5_MEMORY_CACHE 1" >>confdefs.h

         { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi

	;;
   esac

   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MEMORY keytab" >&5
$as_echo_n "checking for MEMORY keytab... " >&6; }
   if test "$cross_compiling" = yes; then :
     true
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#if HAVE_KRB5_H
#include <krb5.h>
#elif HAVE_KERBEROSV5_KRB5_H
#include <kerberosv5/krb5.h>
#endif /* HAVE_KERBEROSV5_KRB5_H */

main()
{
    krb5_context context;
    krb5_keytab kt;

    krb5_init_context(&context);
    return krb5_kt_resolve(context, "MEMORY:test_keytab", &kt);
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :

$as_echo "#define HAVE_KRB5_MEMORY_KEYTAB 1" >>confdefs.h

    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi

fi

   if test x"${no_krb5}" = xt; then
       noldap="KerberosV installation required"
       nopac="KerberosV installation required"
   else
       if test x"${no_pac}" = xt; then
          nopac="PAC support needed"
       fi


sasldir=/usr

# Check whether --with-sasl was given.
if test "${with_sasl+set}" = set; then :
  withval=$with_sasl; SASL=$withval
fi



# Check whether --with-sasl-path was given.
if test "${with_sasl_path+set}" = set; then :
  withval=$with_sasl_path; sasldir=$withval
fi


if test x"$SASL" != xno; then
   unset saslfail

   if test x"$sasldir" != xno; then
      ac_sasl_cflags=-I$sasldir/include
      ac_sasl_libs=-L$sasldir/lib
   else
      ac_sasl_cflags=
      ac_sasl_libs=
   fi

      if test x"${ac_sasl_cflags}" != x; then
      CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$ac_sasl_cflags"
   fi

      if test x"${ac_sasl_libs}" != x; then
      NPATH=`echo $ac_sasl_libs | xargs -n1 | egrep '^-L' | xargs echo`
      LDFLAGS="${LDFLAGS}${LDFLAGS:+ }$NPATH"
   fi

      for ac_header in sasl.h sasl/sasl.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"
if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
  cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF

fi

done


   case `uname` in
      Darwin) ac_lib_sav="$LIBS"
              { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lsasl2" >&5
$as_echo_n "checking for main in -lsasl2... " >&6; }
if ${ac_cv_lib_sasl2_main+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lsasl2  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


int
main ()
{
return main ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_sasl2_main=yes
else
  ac_cv_lib_sasl2_main=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_sasl2_main" >&5
$as_echo "$ac_cv_lib_sasl2_main" >&6; }
if test "x$ac_cv_lib_sasl2_main" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_LIBSASL2 1
_ACEOF

  LIBS="-lsasl2 $LIBS"

fi

	      if test x"$LIBS" != x; then
                 LIBS="$ac_lib_sav"
              fi
              if test x"${ac_cv_lib_sasl2_main}" = yes; then

$as_echo "#define HAVE_SASL_DARWIN 1" >>confdefs.h

              fi
              ;;
   esac

   if test x"${ac_cv_header_sasl_h}" = xyes ||
      test x"${ac_cv_header_sasl_sasl_h}" = xyes ||
      test x"${ac_cv_lib_sasl2_main}" = xyes; then
      unset no_sasl

$as_echo "#define HAVE_SASL 1" >>confdefs.h

   fi
fi

       if test x"${no_sasl}" = xt; then
           noldap="SASL installation required"
       else

ldapdir=/usr

# Check whether --with-ldap was given.
if test "${with_ldap+set}" = set; then :
  withval=$with_ldap; LDAP=$withval
fi



# Check whether --with-ldap-path was given.
if test "${with_ldap_path+set}" = set; then :
  withval=$with_ldap_path; ldapdir=$withval
fi


if test x"$LDAP" != xno; then
   unset ldapfail

   if test x"$ldapdir" != xno; then
      ac_ldap_cflags=-I$ldapdir/include
      ac_ldap_libs=-L$ldapdir/lib
   else
      ac_ldap_cflags=
      ac_ldap_libs=
   fi

      if test x"${ac_ldap_cflags}" != x; then
      CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$ac_ldap_cflags"
   fi

      if test x"${ac_ldap_libs}" != x; then
      NPATH=`echo $ac_ldap_libs | xargs -n1 | egrep '^-L' | xargs echo`
      LDFLAGS="${LDFLAGS}${LDFLAGS:+ }$NPATH"
   fi

      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lresolv" >&5
$as_echo_n "checking for main in -lresolv... " >&6; }
if ${ac_cv_lib_resolv_main+:} false; 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.  */


int
main ()
{
return main ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_resolv_main=yes
else
  ac_cv_lib_resolv_main=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_main" >&5
$as_echo "$ac_cv_lib_resolv_main" >&6; }
if test "x$ac_cv_lib_resolv_main" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_LIBRESOLV 1
_ACEOF

  LIBS="-lresolv $LIBS"

fi


      for ac_header in ldap.h
do :
  ac_fn_c_check_header_mongrel "$LINENO" "ldap.h" "ac_cv_header_ldap_h" "$ac_includes_default"
if test "x$ac_cv_header_ldap_h" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_LDAP_H 1
_ACEOF

fi

done

   for ac_header in mozldap/ldap.h
do :
  ac_fn_c_check_header_mongrel "$LINENO" "mozldap/ldap.h" "ac_cv_header_mozldap_ldap_h" "$ac_includes_default"
if test "x$ac_cv_header_mozldap_ldap_h" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_MOZLDAP_LDAP_H 1
_ACEOF

fi

done


   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lldap" >&5
$as_echo_n "checking for main in -lldap... " >&6; }
if ${ac_cv_lib_ldap_main+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lldap  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


int
main ()
{
return main ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_ldap_main=yes
else
  ac_cv_lib_ldap_main=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_ldap_main" >&5
$as_echo "$ac_cv_lib_ldap_main" >&6; }
if test "x$ac_cv_lib_ldap_main" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_LIBLDAP 1
_ACEOF

  LIBS="-lldap $LIBS"

fi

   if test x"${ac_cv_lib_ldap_main}" != xyes; then
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lpthread" >&5
$as_echo_n "checking for main in -lpthread... " >&6; }
if ${ac_cv_lib_pthread_main+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lpthread  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


int
main ()
{
return main ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_pthread_main=yes
else
  ac_cv_lib_pthread_main=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_pthread_main" >&5
$as_echo "$ac_cv_lib_pthread_main" >&6; }
if test "x$ac_cv_lib_pthread_main" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_LIBPTHREAD 1
_ACEOF

  LIBS="-lpthread $LIBS"

fi

     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lldap60" >&5
$as_echo_n "checking for main in -lldap60... " >&6; }
if ${ac_cv_lib_ldap60_main+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lldap60  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


int
main ()
{
return main ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_ldap60_main=yes
else
  ac_cv_lib_ldap60_main=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_ldap60_main" >&5
$as_echo "$ac_cv_lib_ldap60_main" >&6; }
if test "x$ac_cv_lib_ldap60_main" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_LIBLDAP60 1
_ACEOF

  LIBS="-lldap60 $LIBS"

fi

     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lprldap60" >&5
$as_echo_n "checking for main in -lprldap60... " >&6; }
if ${ac_cv_lib_prldap60_main+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lprldap60  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


int
main ()
{
return main ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_prldap60_main=yes
else
  ac_cv_lib_prldap60_main=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_prldap60_main" >&5
$as_echo "$ac_cv_lib_prldap60_main" >&6; }
if test "x$ac_cv_lib_prldap60_main" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_LIBPRLDAP60 1
_ACEOF

  LIBS="-lprldap60 $LIBS"

fi

     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lssldap60" >&5
$as_echo_n "checking for main in -lssldap60... " >&6; }
if ${ac_cv_lib_ssldap60_main+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lssldap60  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


int
main ()
{
return main ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_ssldap60_main=yes
else
  ac_cv_lib_ssldap60_main=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_ssldap60_main" >&5
$as_echo "$ac_cv_lib_ssldap60_main" >&6; }
if test "x$ac_cv_lib_ssldap60_main" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_LIBSSLDAP60 1
_ACEOF

  LIBS="-lssldap60 $LIBS"

fi

   fi

      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working ldap" >&5
$as_echo_n "checking for working ldap... " >&6; }
   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_fn_error $? "cannot run test program while cross compiling
See \`config.log' for more details" "$LINENO" 5; }
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#if HAVE_LDAP_H
#include <ldap.h>
#elif HAVE_MOZLDAP_LDAP_H
#include <mozldap/ldap.h>
#endif

int
main(void)
{
       char *host="";
       int port;

       ldap_init(host, port);

       return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
  unset no_ldap
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi


   unset ldap_openldap
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for OpenLDAP" >&5
$as_echo_n "checking for OpenLDAP... " >&6; }
   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_fn_error $? "cannot run test program while cross compiling
See \`config.log' for more details" "$LINENO" 5; }
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#if HAVE_LDAP_H
#include <ldap.h>
#endif
#include <string.h>

int
main(void)
{
   return strcmp(LDAP_VENDOR_NAME, "OpenLDAP");
}

_ACEOF
if ac_fn_c_try_run "$LINENO"; then :

$as_echo "#define HAVE_OPENLDAP 1" >>confdefs.h

   { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
   ldap_openldap=t
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi


   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Sun LDAP SDK" >&5
$as_echo_n "checking for Sun LDAP SDK... " >&6; }
   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_fn_error $? "cannot run test program while cross compiling
See \`config.log' for more details" "$LINENO" 5; }
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#if HAVE_LDAP_H
#include <ldap.h>
#endif
#include <string.h>

int
main(void)
{
   return strcmp(LDAP_VENDOR_NAME, "Sun Microsystems Inc.");
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :

$as_echo "#define HAVE_SUN_LDAP_SDK 1" >>confdefs.h

   { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi


   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Mozilla LDAP SDK" >&5
$as_echo_n "checking for Mozilla LDAP SDK... " >&6; }
   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_fn_error $? "cannot run test program while cross compiling
See \`config.log' for more details" "$LINENO" 5; }
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#if HAVE_LDAP_H
#include <ldap.h>
#elif HAVE_MOZLDAP_LDAP_H
#include <mozldap/ldap.h>
#endif
#include <string.h>

int
main(void)
{
   return strcmp(LDAP_VENDOR_NAME, "mozilla.org");
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :

$as_echo "#define HAVE_MOZILLA_LDAP_SDK 1" >>confdefs.h

   { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi


   if test x"${ldap_openldap}" != x; then
      for ac_header in lber.h
do :
  ac_fn_c_check_header_mongrel "$LINENO" "lber.h" "ac_cv_header_lber_h" "$ac_includes_default"
if test "x$ac_cv_header_lber_h" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_LBER_H 1
_ACEOF

fi

done

      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -llber" >&5
$as_echo_n "checking for main in -llber... " >&6; }
if ${ac_cv_lib_lber_main+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-llber  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


int
main ()
{
return main ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_lber_main=yes
else
  ac_cv_lib_lber_main=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_lber_main" >&5
$as_echo "$ac_cv_lib_lber_main" >&6; }
if test "x$ac_cv_lib_lber_main" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_LIBLBER 1
_ACEOF

  LIBS="-llber $LIBS"

fi

   fi

   if test x"${ac_cv_header_ldap_h}" = xyes; then
      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <ldap.h>

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "LDAP_REBINDPROC_CALLBACK" >/dev/null 2>&1; then :

$as_echo "#define HAVE_LDAP_REBINDPROC_CALLBACK 1" >>confdefs.h

fi
rm -f conftest*

   elif test x"${ac_cv_header_mozldap_ldap_h}" = xyes; then
      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <mozldap/ldap.h>

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "LDAP_REBINDPROC_CALLBACK" >/dev/null 2>&1; then :

$as_echo "#define HAVE_LDAP_REBINDPROC_CALLBACK 1" >>confdefs.h

fi
rm -f conftest*

   else
      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LDAP_REBINDPROC_CALLBACK" >&5
$as_echo_n "checking for LDAP_REBINDPROC_CALLBACK... " >&6; }

$as_echo "#define HAVE_LDAP_REBINDPROC_CALLBACK 0" >>confdefs.h

      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
   fi
   if test x"${ac_cv_header_ldap_h}" = xyes; then
      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <ldap.h>

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "LDAP_REBIND_PROC" >/dev/null 2>&1; then :

$as_echo "#define HAVE_LDAP_REBIND_PROC 1" >>confdefs.h

fi
rm -f conftest*

   elif test x"${ac_cv_header_mozldap_ldap_h}" = xyes; then
      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <mozldap/ldap.h>

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "LDAP_REBIND_PROC" >/dev/null 2>&1; then :

$as_echo "#define HAVE_LDAP_REBIND_PROC 1" >>confdefs.h

fi
rm -f conftest*

   else
      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LDAP_REBIND_PROC" >&5
$as_echo_n "checking for LDAP_REBIND_PROC... " >&6; }

$as_echo "#define HAVE_LDAP_REBIND_PROC 0" >>confdefs.h

      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
   fi
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#define LDAP_REFERRALS
#if HAVE_LDAP_H
#include <ldap.h>
#elif HAVE_MOZLDAP_LDAP_H
#include <mozldap/ldap.h>
#endif

_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
  $EGREP "LDAP_REBIND_FUNCTION" >/dev/null 2>&1; then :

$as_echo "#define HAVE_LDAP_REBIND_FUNCTION 1" >>confdefs.h

fi
rm -f conftest*


   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LDAP_SCOPE_DEFAULT" >&5
$as_echo_n "checking for LDAP_SCOPE_DEFAULT... " >&6; }
   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_fn_error $? "cannot run test program while cross compiling
See \`config.log' for more details" "$LINENO" 5; }
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#if HAVE_LDAP_H
#include <ldap.h>
#elif HAVE_MOZLDAP_LDAP_H
#include <mozldap/ldap.h>
#endif

int
main(void)
{
#ifdef LDAP_SCOPE_DEFAULT
        return 0;
#else
        return 1;
#endif
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :

$as_echo "#define HAVE_LDAP_SCOPE_DEFAULT 1" >>confdefs.h

   { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi


   ac_fn_c_check_member "$LINENO" "struct ldap_url_desc" "lud_scheme" "ac_cv_member_struct_ldap_url_desc_lud_scheme" "#if HAVE_LDAP_H
#include <ldap.h>
#elif HAVE_MOZLDAP_LDAP_H
#include <mozldap/ldap.h>
#endif

"
if test "x$ac_cv_member_struct_ldap_url_desc_lud_scheme" = xyes; then :

$as_echo "#define HAVE_LDAP_URL_LUD_SCHEME 1" >>confdefs.h

fi


   if test x"${ac_cv_lib_ldap_main}" = xyes; then
      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ldapssl_client_init in -lldap" >&5
$as_echo_n "checking for ldapssl_client_init in -lldap... " >&6; }
if ${ac_cv_lib_ldap_ldapssl_client_init+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lldap  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* 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 ldapssl_client_init ();
int
main ()
{
return ldapssl_client_init ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_ldap_ldapssl_client_init=yes
else
  ac_cv_lib_ldap_ldapssl_client_init=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_ldap_ldapssl_client_init" >&5
$as_echo "$ac_cv_lib_ldap_ldapssl_client_init" >&6; }
if test "x$ac_cv_lib_ldap_ldapssl_client_init" = xyes; then :

$as_echo "#define HAVE_LDAPSSL_CLIENT_INIT 1" >>confdefs.h

fi

   elif test x"${ac_cv_lib_ssldap60_main}" = xyes; then
      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ldapssl_client_init in -lssldap60" >&5
$as_echo_n "checking for ldapssl_client_init in -lssldap60... " >&6; }
if ${ac_cv_lib_ssldap60_ldapssl_client_init+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lssldap60  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* 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 ldapssl_client_init ();
int
main ()
{
return ldapssl_client_init ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_ssldap60_ldapssl_client_init=yes
else
  ac_cv_lib_ssldap60_ldapssl_client_init=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_ssldap60_ldapssl_client_init" >&5
$as_echo "$ac_cv_lib_ssldap60_ldapssl_client_init" >&6; }
if test "x$ac_cv_lib_ssldap60_ldapssl_client_init" = xyes; then :

$as_echo "#define HAVE_LDAPSSL_CLIENT_INIT 1" >>confdefs.h

fi

   else
      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ldapssl_client_init" >&5
$as_echo_n "checking for ldapssl_client_init... " >&6; }

$as_echo "#define HAVE_LDAPSSL_CLIENT_INIT 0" >>confdefs.h

      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
   fi
   if test x"${ac_cv_lib_ldap_main}" = xyes; then
      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ldap_url_desc2str in -lldap" >&5
$as_echo_n "checking for ldap_url_desc2str in -lldap... " >&6; }
if ${ac_cv_lib_ldap_ldap_url_desc2str+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lldap  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* 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 ldap_url_desc2str ();
int
main ()
{
return ldap_url_desc2str ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_ldap_ldap_url_desc2str=yes
else
  ac_cv_lib_ldap_ldap_url_desc2str=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_ldap_ldap_url_desc2str" >&5
$as_echo "$ac_cv_lib_ldap_ldap_url_desc2str" >&6; }
if test "x$ac_cv_lib_ldap_ldap_url_desc2str" = xyes; then :

$as_echo "#define HAVE_LDAP_URL_DESC2STR 1" >>confdefs.h

fi

   elif test x"${ac_cv_lib_ldap60_main}" = xyes; then
      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ldap_url_desc2str in -lldap60" >&5
$as_echo_n "checking for ldap_url_desc2str in -lldap60... " >&6; }
if ${ac_cv_lib_ldap60_ldap_url_desc2str+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lldap60  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* 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 ldap_url_desc2str ();
int
main ()
{
return ldap_url_desc2str ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_ldap60_ldap_url_desc2str=yes
else
  ac_cv_lib_ldap60_ldap_url_desc2str=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_ldap60_ldap_url_desc2str" >&5
$as_echo "$ac_cv_lib_ldap60_ldap_url_desc2str" >&6; }
if test "x$ac_cv_lib_ldap60_ldap_url_desc2str" = xyes; then :

$as_echo "#define HAVE_LDAP_URL_DESC2STR 1" >>confdefs.h

fi

   else
      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ldap_url_desc2str" >&5
$as_echo_n "checking for ldap_url_desc2str... " >&6; }

$as_echo "#define HAVE_LDAP_URL_DESC2STR 0" >>confdefs.h

      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
   fi

   if test x"${ac_cv_lib_ldap_main}" = xyes; then
      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ldap_url_parse in -lldap" >&5
$as_echo_n "checking for ldap_url_parse in -lldap... " >&6; }
if ${ac_cv_lib_ldap_ldap_url_parse+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lldap  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* 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 ldap_url_parse ();
int
main ()
{
return ldap_url_parse ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_ldap_ldap_url_parse=yes
else
  ac_cv_lib_ldap_ldap_url_parse=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_ldap_ldap_url_parse" >&5
$as_echo "$ac_cv_lib_ldap_ldap_url_parse" >&6; }
if test "x$ac_cv_lib_ldap_ldap_url_parse" = xyes; then :

$as_echo "#define HAVE_LDAP_URL_PARSE 1" >>confdefs.h

fi

   elif test x"${ac_cv_lib_ldap60_main}" = xyes; then
      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ldap_url_parse in -lldap60" >&5
$as_echo_n "checking for ldap_url_parse in -lldap60... " >&6; }
if ${ac_cv_lib_ldap60_ldap_url_parse+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lldap60  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* 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 ldap_url_parse ();
int
main ()
{
return ldap_url_parse ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_ldap60_ldap_url_parse=yes
else
  ac_cv_lib_ldap60_ldap_url_parse=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_ldap60_ldap_url_parse" >&5
$as_echo "$ac_cv_lib_ldap60_ldap_url_parse" >&6; }
if test "x$ac_cv_lib_ldap60_ldap_url_parse" = xyes; then :

$as_echo "#define HAVE_LDAP_URL_PARSE 1" >>confdefs.h

fi

   else
      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ldap_url_parse" >&5
$as_echo_n "checking for ldap_url_parse... " >&6; }

$as_echo "#define HAVE_LDAP_URL_PARSE 0" >>confdefs.h

      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
   fi
fi

           if test x"${no_ldap}" = xt; then
               noldap="LDAP installation required"
           else
               if test x"$LIBS" != x; then
                   LDAPLIBS=${LIBS##$LIBScpy} #ensure only new libraries are added
               fi
           fi
       fi
   fi
   if test x"$LIBScpy" != x; then
      LIBS="$LIBScpy"
   fi
fi
if test x"$noldap" != x; then
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ldap disabled: $noldap" >&5
$as_echo "$as_me: WARNING: ldap disabled: $noldap" >&2;}
fi

unset stdio_preload
case $host in
    *-*-linux-* | *-*-solaris*)
	#only do preloading if gssapi is defined
	if test x"${no_gssapi}" != xt; then
	    stdio_preload=t
	fi
	;;
esac

ac_config_files="$ac_config_files capi/socks.h"

if test x"${stdio_preload}" = xt; then

$as_echo "#define HAVE_LINUX_GLIBC_WORKAROUND 1" >>confdefs.h

    #append contents for stdio preloading
    cat capi/socks_glibc.h >> capi/socks.h
fi

unset MAPOPT

MAPFILE=socks.sym

STDDIRS="lib/" #socks shared/dynamic libraries (Rfoo functions)
for symdir in $STDDIRS; do
    cp /dev/null $symdir/$MAPFILE
    cat include/symbols_common.txt >> $symdir/$MAPFILE
done

PLDDIRS="dlib/" #preloading (standard, non-Rfoo functions)
if test x"$sol64" = xt; then
   PLDDIRS="$PLDDIRS dlib64/"
fi
for symdir in $PLDDIRS; do
    cat include/symbols_preload.txt >> $symdir/$MAPFILE

    #platform dependent symbols
    case $host in
	*-*-darwin*)
	    cat include/symbols_darwin.txt >> $symdir/$MAPFILE
	    ;;

	*-*-linux-*)
	    if test x"${stdio_preload}" = xt; then
		cat include/symbols_glibc.txt >> $symdir/$MAPFILE
	    fi
	    ;;

       *-*-solaris*)
	    cat include/symbols_osol.txt >> $symdir/$MAPFILE
	    if test x"${stdio_preload}" = xt; then
		cat include/symbols_osol_stdio.txt >> $symdir/$MAPFILE
	    fi
	    ;;

	*-*-freebsd*)
	    cat include/symbols_freebsd.txt >> $symdir/$MAPFILE
	    ;;
    esac
done

MAPOPT="-export-symbols socks.sym"



#miniupnpc tests
#miniupnpc

# Check whether --with-upnp was given.
if test "${with_upnp+set}" = set; then :
  withval=$with_upnp; UPNP=$withval
fi


no_upnp=t
if test x"${UPNP}" != xno; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for miniupnpc headers" >&5
$as_echo_n "checking for miniupnpc headers... " >&6; }
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */
#include <miniupnpc/miniupnpc.h>
int
main ()
{
struct UPNPDev upnpdev;
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
         upnphdr=t
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
         unset upnphdr
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

    if test "x$upnphdr" = "xt"; then
	oLIBS=$LIBS
        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing UPNP_GetValidIGD" >&5
$as_echo_n "checking for library containing UPNP_GetValidIGD... " >&6; }
if ${ac_cv_search_UPNP_GetValidIGD+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* 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 UPNP_GetValidIGD ();
int
main ()
{
return UPNP_GetValidIGD ();
  ;
  return 0;
}
_ACEOF
for ac_lib in '' miniupnpc; 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_UPNP_GetValidIGD=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext
  if ${ac_cv_search_UPNP_GetValidIGD+:} false; then :
  break
fi
done
if ${ac_cv_search_UPNP_GetValidIGD+:} false; then :

else
  ac_cv_search_UPNP_GetValidIGD=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_UPNP_GetValidIGD" >&5
$as_echo "$ac_cv_search_UPNP_GetValidIGD" >&6; }
ac_res=$ac_cv_search_UPNP_GetValidIGD
if test "$ac_res" != no; then :
  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
  have_libminiupnp=t
fi

	UPNPLIB=$LIBS
	LIBS=$oLIBS
    fi
    if test x"${have_libminiupnp}" = xt; then
        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for miniupnpc version >= 1.7" >&5
$as_echo_n "checking for miniupnpc version >= 1.7... " >&6; }
	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

            #include <stdio.h>
            #include <miniupnpc/miniupnpc.h>
            #include <miniupnpc/upnpcommands.h>
            #include <miniupnpc/upnperrors.h>
int
main ()
{


            #ifndef MINIUPNPC_API_VERSION
	    #error "no api version define"
            #else
            # if MINIUPNPC_API_VERSION < 8
            #error "api version too low"
            # endif
            #endif
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

$as_echo "#define HAVE_LIBMINIUPNP 1" >>confdefs.h


$as_echo "#define HAVE_LIBMINIUPNP17 1" >>confdefs.h

          unset no_upnp
	  SOCKDDEPS="${SOCKDDEPS}${SOCKDDEPS:+ }$UPNPLIB"
	  DLIBDEPS="${DLIBDEPS}${DLIBDEPS:+ }$UPNPLIB"
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

        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for miniupnpc version >= 1.4" >&5
$as_echo_n "checking for miniupnpc version >= 1.4... " >&6; }
	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

            #include <stdio.h>
            #include <miniupnpc/miniupnpc.h>
            #include <miniupnpc/upnpcommands.h>
            #include <miniupnpc/upnperrors.h>
int
main ()
{


            char *str = NULL;
            struct UPNPDev *UPNPDev;
            struct UPNPUrls *UPNPUrls = NULL;
            struct IGDdatas *IGDdatas = NULL;

	    (void)sizeof(IGDdatas->CIF.servicetype);

            (void)UPNP_GetIGDFromUrl(str, UPNPUrls, IGDdatas, str, 0);
            (void)UPNP_GetValidIGD(UPNPDev, UPNPUrls, IGDdatas, str, 0);
            (void)UPNP_GetExternalIPAddress(str, str, str);
            (void)UPNP_AddPortMapping(str, str, str, str, str, str, str, str);
            (void)UPNP_DeletePortMapping(str, str, str, str, str);
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

$as_echo "#define HAVE_LIBMINIUPNP 1" >>confdefs.h


$as_echo "#define HAVE_LIBMINIUPNP14 1" >>confdefs.h

          unset no_upnp
	  SOCKDDEPS="${SOCKDDEPS}${SOCKDDEPS:+ }$UPNPLIB"
	  DLIBDEPS="${DLIBDEPS}${DLIBDEPS:+ }$UPNPLIB"
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

	 if test x"${no_upnp}" != x; then
	         { $as_echo "$as_me:${as_lineno-$LINENO}: checking for miniupnpc version 1.3" >&5
$as_echo_n "checking for miniupnpc version 1.3... " >&6; }
		 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

                    #include <stdio.h>
                    #include <miniupnpc/miniupnpc.h>
                    #include <miniupnpc/upnpcommands.h>
                    #include <miniupnpc/upnperrors.h>
int
main ()
{


			 char *str = NULL;
			 struct UPNPDev *UPNPDev;
			 struct UPNPUrls *UPNPUrls = NULL;
			 struct IGDdatas *IGDdatas = NULL;

			 (void)strlen(IGDdatas->servicetype);

			 (void)UPNP_GetIGDFromUrl(str, UPNPUrls, IGDdatas, str, 0);
			 (void)UPNP_GetValidIGD(UPNPDev, UPNPUrls, IGDdatas, str, 0);
			 (void)UPNP_GetExternalIPAddress(str, str, str);
			 (void)UPNP_AddPortMapping(str, str, str, str, str, str, str, str);
			 (void)UPNP_DeletePortMapping(str, str, str, str, str);
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

$as_echo "#define HAVE_LIBMINIUPNP 1" >>confdefs.h


$as_echo "#define HAVE_LIBMINIUPNP13 1" >>confdefs.h

		  unset no_upnp
		  SOCKDDEPS="${SOCKDDEPS}${SOCKDDEPS:+ }$UPNPLIB"
		  DLIBDEPS="${DLIBDEPS}${DLIBDEPS:+ }$UPNPLIB"
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
    fi
fi

if test x"${no_upnp}" = x; then
    FEAT="$FEAT${FEAT:+ }upnp"
fi


unset have_libcfail
#check whether to use and where to place pidfile
unset NOPIDFILE
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use server pidfile" >&5
$as_echo_n "checking whether to use server pidfile... " >&6; }
# Check whether --enable-pidfile was given.
if test "${enable_pidfile+set}" = set; then :
  enableval=$enable_pidfile; if test x"$enableval" = xno; then
    NOPIDFILE="Disabled, using --disable-pidfile"
 fi
fi

if test x"$NOPIDFILE" = x; then
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

$as_echo "#define HAVE_ENABLED_PIDFILE 1" >>confdefs.h

else
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi

unset PIDFILEPATH
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for pid file location" >&5
$as_echo_n "checking for pid file location... " >&6; }

# Check whether --with-pidfile was given.
if test "${with_pidfile+set}" = set; then :
  withval=$with_pidfile; PIDFILEPATH="$withval"
else
  #default per-platform pidfile locations
 case $host in
     *-*-aix*)
	 PIDFILEPATH="/etc/${SERVNAME}.pid"
	 ;;
     *)
	 PIDFILEPATH="/var/run/${SERVNAME}.pid"
	 ;;
 esac
fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $PIDFILEPATH" >&5
$as_echo "$PIDFILEPATH" >&6; }

cat >>confdefs.h <<_ACEOF
#define SOCKD_PIDFILE "$PIDFILEPATH"
_ACEOF


#SOCKD_IOMAX/NEGOTIATEMAX override?
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOCKD_IOMAX value" >&5
$as_echo_n "checking for SOCKD_IOMAX value... " >&6; }

# Check whether --with-iomax was given.
if test "${with_iomax+set}" = set; then :
  withval=$with_iomax; { $as_echo "$as_me:${as_lineno-$LINENO}: result: $withval" >&5
$as_echo "$withval" >&6; }
 FEAT="$FEAT${FEAT:+ }iomax-$withval"
 CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-DSOCKD_IOMAX=$withval"
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: default" >&5
$as_echo "default" >&6; }
fi


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOCKD_NEGOTIATEMAX value" >&5
$as_echo_n "checking for SOCKD_NEGOTIATEMAX value... " >&6; }

# Check whether --with-negmax was given.
if test "${with_negmax+set}" = set; then :
  withval=$with_negmax; { $as_echo "$as_me:${as_lineno-$LINENO}: result: $withval" >&5
$as_echo "$withval" >&6; }
 FEAT="$FEAT${FEAT:+ }negmax-$withval"
 CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-DSOCKD_NEGOTIATEMAX=$withval"
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: default" >&5
$as_echo "default" >&6; }
fi


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOCKD_BUFSIZE value" >&5
$as_echo_n "checking for SOCKD_BUFSIZE value... " >&6; }

# Check whether --with-bufsize was given.
if test "${with_bufsize+set}" = set; then :
  withval=$with_bufsize; { $as_echo "$as_me:${as_lineno-$LINENO}: result: $withval" >&5
$as_echo "$withval" >&6; }
 FEAT="$FEAT${FEAT:+ }bufsize-$withval"
 CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-DSOCKD_BUFSIZE=$withval"
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: default" >&5
$as_echo "default" >&6; }
fi


#math library used in server
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for lround in -lm" >&5
$as_echo_n "checking for lround in -lm... " >&6; }
if ${ac_cv_lib_m_lround+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lm  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* 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 lround ();
int
main ()
{
return lround ();
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_m_lround=yes
else
  ac_cv_lib_m_lround=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_m_lround" >&5
$as_echo "$ac_cv_lib_m_lround" >&6; }
if test "x$ac_cv_lib_m_lround" = xyes; then :
  SOCKDDEPS="${SOCKDDEPS}${SOCKDDEPS:+ }-lm"
fi


#XXX for backwards compatibility
unset NOLIBWRAP

# Check whether --with-libwrap was given.
if test "${with_libwrap+set}" = set; then :
  withval=$with_libwrap; if test x"$withval" = xno; then
    NOLIBWRAP="Disabled, using --without-libwrap"
 fi
fi


# Check whether --enable-libwrap was given.
if test "${enable_libwrap+set}" = set; then :
  enableval=$enable_libwrap; { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: --disable/enable-libwrap is deprecated" >&5
$as_echo "$as_me: WARNING: --disable/enable-libwrap is deprecated" >&2;}
 if test x"$NOLIBWRAP" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot specify both --without-libwrap and --disable-libwrap" >&5
$as_echo "$as_me: WARNING: cannot specify both --without-libwrap and --disable-libwrap" >&2;}
    exit 1
 fi
 if test x"$enableval" = xno; then
    NOLIBWRAP="Disabled, using --disable-libwrap"
 fi
fi


if test x"$NOLIBWRAP" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libwrap" >&5
$as_echo_n "checking for libwrap... " >&6; }
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: disabled" >&5
$as_echo "disabled" >&6; }
else
    for ac_header in tcpd.h
do :
  ac_fn_c_check_header_mongrel "$LINENO" "tcpd.h" "ac_cv_header_tcpd_h" "$ac_includes_default"
if test "x$ac_cv_header_tcpd_h" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_TCPD_H 1
_ACEOF

fi

done

    if test x"${ac_cv_header_tcpd_h}" != xyes; then
	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libwrap" >&5
$as_echo_n "checking for libwrap... " >&6; }
	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no, usable tcpd.h not found" >&5
$as_echo "no, usable tcpd.h not found" >&6; }
	NOLIBWRAP="Disabled, tcpd.h missing"
    else
	case $host in
	    *-*-linux-*)
	        #XXX needed on at least RedHat
		{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing yp_get_default_domain" >&5
$as_echo_n "checking for library containing yp_get_default_domain... " >&6; }
if ${ac_cv_search_yp_get_default_domain+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* 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 yp_get_default_domain ();
int
main ()
{
return yp_get_default_domain ();
  ;
  return 0;
}
_ACEOF
for ac_lib in '' nsl; 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_yp_get_default_domain=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext
  if ${ac_cv_search_yp_get_default_domain+:} false; then :
  break
fi
done
if ${ac_cv_search_yp_get_default_domain+:} false; then :

else
  ac_cv_search_yp_get_default_domain=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_yp_get_default_domain" >&5
$as_echo "$ac_cv_search_yp_get_default_domain" >&6; }
ac_res=$ac_cv_search_yp_get_default_domain
if test "$ac_res" != no; then :
  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"

fi

		;;
	esac
	oLIBS=$LIBS
	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libwrap" >&5
$as_echo_n "checking for libwrap... " >&6; }
	#normal library testing does not work for libwrap (will not link
	#without allow/deny_severity)
	#XXX include header in compilation test?
	LIBS="$LIBS -lwrap"
	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

int allow_severity;
int deny_severity;

int
main ()
{
hosts_access(0);
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
	 SOCKDDEPS="${SOCKDDEPS}${SOCKDDEPS:+ }-lwrap"

$as_echo "#define HAVE_COND_LIBWRAP 1" >>confdefs.h

         FEAT="$FEAT${FEAT:+ }libwrap"
else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
         NOLIBWRAP="Disabled, -lwrap not found"
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
        LIBS="$oLIBS"
    fi
fi

unset NOPAM
for ac_header in security/pam_appl.h
do :
  ac_fn_c_check_header_mongrel "$LINENO" "security/pam_appl.h" "ac_cv_header_security_pam_appl_h" "$ac_includes_default"
if test "x$ac_cv_header_security_pam_appl_h" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_SECURITY_PAM_APPL_H 1
_ACEOF

fi

done

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing pam_start" >&5
$as_echo_n "checking for library containing pam_start... " >&6; }
if ${ac_cv_search_pam_start+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* 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 pam_start ();
int
main ()
{
return pam_start ();
  ;
  return 0;
}
_ACEOF
for ac_lib in '' pam; 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_pam_start=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext
  if ${ac_cv_search_pam_start+:} false; then :
  break
fi
done
if ${ac_cv_search_pam_start+:} false; then :

else
  ac_cv_search_pam_start=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_pam_start" >&5
$as_echo "$ac_cv_search_pam_start" >&6; }
ac_res=$ac_cv_search_pam_start
if test "$ac_res" != no; then :
  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"

fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for pam" >&5
$as_echo_n "checking for pam... " >&6; }

# Check whether --with-pam was given.
if test "${with_pam+set}" = set; then :
  withval=$with_pam; if test x"$withval" = xno; then
    NOPAM="Disabled, using --without-pam"
 fi
fi


if test x"$NOPAM" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: disabled" >&5
$as_echo "disabled" >&6; }
else
    #look for PAM header and lib
    if test x"${ac_cv_header_security_pam_appl_h}" = xno; then
	NOPAM="Disabled, security/pam_appl.h missing"
	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no, usable security/pam_appl.h not found" >&5
$as_echo "no, usable security/pam_appl.h not found" >&6; }
    else
        if test x"${ac_cv_search_pam_start}" = xno; then
	    NOPAM="Disabled, pam library not found"
	    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, pam library not found" >&5
$as_echo "no, pam library not found" >&6; }
	else

$as_echo "#define HAVE_COND_PAM 1" >>confdefs.h

	    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
	    FEAT="$FEAT${FEAT:+ }pam"
	fi
    fi
fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether libcfail should be enabled" >&5
$as_echo_n "checking whether libcfail should be enabled... " >&6; }
# Check whether --enable-libcfail was given.
if test "${enable_libcfail+set}" = set; then :
  enableval=$enable_libcfail;
fi

if test x"${enable_libcfail}" = xyes; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

$as_echo "#define HAVE_LIBCFAIL 1" >>confdefs.h

    have_libcfail=t
    FEAT="$FEAT${FEAT:+ }libcfail"
else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi



unset ALLSOCKOPTS
unset SOCKOPTS
#socket level
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOL_SOCKET socket option SO_BINDANY" >&5
$as_echo_n "checking for SOL_SOCKET socket option SO_BINDANY... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_BINDANY, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_BINDANY");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_BINDANY, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_BINDANY");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_SO_BINDANY 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_BINDANY_LVL SOL_SOCKET
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_BINDANY_NAME "so_bindany"
_ACEOF
    if test x"SOL_SOCKET" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_BINDANY_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_BINDANY_IPV6 0
_ACEOF
    elif test x"SOL_SOCKET" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_BINDANY_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_BINDANY_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_BINDANY_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_BINDANY_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }SO_BINDANY"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi #test requires root
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOL_SOCKET socket option SO_BROADCAST" >&5
$as_echo_n "checking for SOL_SOCKET socket option SO_BROADCAST... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_BROADCAST, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_BROADCAST");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_BROADCAST, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_BROADCAST");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_SO_BROADCAST 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_BROADCAST_LVL SOL_SOCKET
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_BROADCAST_NAME "so_broadcast"
_ACEOF
    if test x"SOL_SOCKET" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_BROADCAST_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_BROADCAST_IPV6 0
_ACEOF
    elif test x"SOL_SOCKET" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_BROADCAST_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_BROADCAST_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_BROADCAST_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_BROADCAST_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }SO_BROADCAST"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOL_SOCKET socket option SO_DEBUG" >&5
$as_echo_n "checking for SOL_SOCKET socket option SO_DEBUG... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_DEBUG, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_DEBUG");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_DEBUG, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_DEBUG");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_SO_DEBUG 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_DEBUG_LVL SOL_SOCKET
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_DEBUG_NAME "so_debug"
_ACEOF
    if test x"SOL_SOCKET" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_DEBUG_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_DEBUG_IPV6 0
_ACEOF
    elif test x"SOL_SOCKET" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_DEBUG_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_DEBUG_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_DEBUG_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_DEBUG_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }SO_DEBUG"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOL_SOCKET socket option SO_DONTROUTE" >&5
$as_echo_n "checking for SOL_SOCKET socket option SO_DONTROUTE... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_DONTROUTE, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_DONTROUTE");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_DONTROUTE, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_DONTROUTE");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_SO_DONTROUTE 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_DONTROUTE_LVL SOL_SOCKET
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_DONTROUTE_NAME "so_dontroute"
_ACEOF
    if test x"SOL_SOCKET" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_DONTROUTE_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_DONTROUTE_IPV6 0
_ACEOF
    elif test x"SOL_SOCKET" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_DONTROUTE_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_DONTROUTE_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_DONTROUTE_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_DONTROUTE_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }SO_DONTROUTE"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOL_SOCKET socket option SO_JUMBO" >&5
$as_echo_n "checking for SOL_SOCKET socket option SO_JUMBO... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_JUMBO, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_JUMBO");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_JUMBO, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_JUMBO");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_SO_JUMBO 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_JUMBO_LVL SOL_SOCKET
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_JUMBO_NAME "so_jumbo"
_ACEOF
    if test x"SOL_SOCKET" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_JUMBO_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_JUMBO_IPV6 0
_ACEOF
    elif test x"SOL_SOCKET" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_JUMBO_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_JUMBO_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_JUMBO_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_JUMBO_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }SO_JUMBO"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOL_SOCKET socket option SO_KEEPALIVE" >&5
$as_echo_n "checking for SOL_SOCKET socket option SO_KEEPALIVE... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_KEEPALIVE, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_KEEPALIVE");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_KEEPALIVE, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_KEEPALIVE");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_SO_KEEPALIVE 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_KEEPALIVE_LVL SOL_SOCKET
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_KEEPALIVE_NAME "so_keepalive"
_ACEOF
    if test x"SOL_SOCKET" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_KEEPALIVE_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_KEEPALIVE_IPV6 0
_ACEOF
    elif test x"SOL_SOCKET" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_KEEPALIVE_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_KEEPALIVE_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_KEEPALIVE_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_KEEPALIVE_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }SO_KEEPALIVE"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOL_SOCKET socket option SO_LINGER" >&5
$as_echo_n "checking for SOL_SOCKET socket option SO_LINGER... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_LINGER, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_LINGER");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_LINGER, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_LINGER");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_SO_LINGER 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_LINGER_LVL SOL_SOCKET
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_LINGER_NAME "so_linger"
_ACEOF
    if test x"SOL_SOCKET" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_LINGER_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_LINGER_IPV6 0
_ACEOF
    elif test x"SOL_SOCKET" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_LINGER_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_LINGER_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_LINGER_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_LINGER_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }SO_LINGER"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi   #linger arg
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOL_SOCKET socket option SO_OOBINLINE" >&5
$as_echo_n "checking for SOL_SOCKET socket option SO_OOBINLINE... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_OOBINLINE, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_OOBINLINE");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_OOBINLINE, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_OOBINLINE");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_SO_OOBINLINE 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_OOBINLINE_LVL SOL_SOCKET
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_OOBINLINE_NAME "so_oobinline"
_ACEOF
    if test x"SOL_SOCKET" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_OOBINLINE_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_OOBINLINE_IPV6 0
_ACEOF
    elif test x"SOL_SOCKET" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_OOBINLINE_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_OOBINLINE_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_OOBINLINE_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_OOBINLINE_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }SO_OOBINLINE"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOL_SOCKET socket option SO_PRIORITY" >&5
$as_echo_n "checking for SOL_SOCKET socket option SO_PRIORITY... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_PRIORITY, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_PRIORITY");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_PRIORITY, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_PRIORITY");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_SO_PRIORITY 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_PRIORITY_LVL SOL_SOCKET
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_PRIORITY_NAME "so_priority"
_ACEOF
    if test x"SOL_SOCKET" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_PRIORITY_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_PRIORITY_IPV6 0
_ACEOF
    elif test x"SOL_SOCKET" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_PRIORITY_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_PRIORITY_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_PRIORITY_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_PRIORITY_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }SO_PRIORITY"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOL_SOCKET socket option SO_RCVBUF" >&5
$as_echo_n "checking for SOL_SOCKET socket option SO_RCVBUF... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_RCVBUF, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_RCVBUF");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_RCVBUF, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_RCVBUF");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_SO_RCVBUF 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_RCVBUF_LVL SOL_SOCKET
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_RCVBUF_NAME "so_rcvbuf"
_ACEOF
    if test x"SOL_SOCKET" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_RCVBUF_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_RCVBUF_IPV6 0
_ACEOF
    elif test x"SOL_SOCKET" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_RCVBUF_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_RCVBUF_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_RCVBUF_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_RCVBUF_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }SO_RCVBUF"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOL_SOCKET socket option SO_RCVBUFFORCE" >&5
$as_echo_n "checking for SOL_SOCKET socket option SO_RCVBUFFORCE... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_RCVBUFFORCE, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_RCVBUFFORCE");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_RCVBUFFORCE, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_RCVBUFFORCE");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_SO_RCVBUFFORCE 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_RCVBUFFORCE_LVL SOL_SOCKET
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_RCVBUFFORCE_NAME "so_rcvbufforce"
_ACEOF
    if test x"SOL_SOCKET" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_RCVBUFFORCE_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_RCVBUFFORCE_IPV6 0
_ACEOF
    elif test x"SOL_SOCKET" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_RCVBUFFORCE_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_RCVBUFFORCE_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_RCVBUFFORCE_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_RCVBUFFORCE_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }SO_RCVBUFFORCE"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOL_SOCKET socket option SO_RCVLOWAT" >&5
$as_echo_n "checking for SOL_SOCKET socket option SO_RCVLOWAT... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_RCVLOWAT, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_RCVLOWAT");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_RCVLOWAT, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_RCVLOWAT");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_SO_RCVLOWAT 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_RCVLOWAT_LVL SOL_SOCKET
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_RCVLOWAT_NAME "so_rcvlowat"
_ACEOF
    if test x"SOL_SOCKET" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_RCVLOWAT_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_RCVLOWAT_IPV6 0
_ACEOF
    elif test x"SOL_SOCKET" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_RCVLOWAT_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_RCVLOWAT_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_RCVLOWAT_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_RCVLOWAT_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }SO_RCVLOWAT"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOL_SOCKET socket option SO_RCVTIMEO" >&5
$as_echo_n "checking for SOL_SOCKET socket option SO_RCVTIMEO... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_RCVTIMEO, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_RCVTIMEO");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_RCVTIMEO, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_RCVTIMEO");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_SO_RCVTIMEO 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_RCVTIMEO_LVL SOL_SOCKET
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_RCVTIMEO_NAME "so_rcvtimeo"
_ACEOF
    if test x"SOL_SOCKET" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_RCVTIMEO_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_RCVTIMEO_IPV6 0
_ACEOF
    elif test x"SOL_SOCKET" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_RCVTIMEO_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_RCVTIMEO_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_RCVTIMEO_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_RCVTIMEO_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }SO_RCVTIMEO"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi #timeval arg
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOL_SOCKET socket option SO_SNDBUF" >&5
$as_echo_n "checking for SOL_SOCKET socket option SO_SNDBUF... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_SNDBUF, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_SNDBUF");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_SNDBUF, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_SNDBUF");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_SO_SNDBUF 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_SNDBUF_LVL SOL_SOCKET
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_SNDBUF_NAME "so_sndbuf"
_ACEOF
    if test x"SOL_SOCKET" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_SNDBUF_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_SNDBUF_IPV6 0
_ACEOF
    elif test x"SOL_SOCKET" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_SNDBUF_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_SNDBUF_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_SNDBUF_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_SNDBUF_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }SO_SNDBUF"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOL_SOCKET socket option SO_SNDBUFFORCE" >&5
$as_echo_n "checking for SOL_SOCKET socket option SO_SNDBUFFORCE... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_SNDBUFFORCE, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_SNDBUFFORCE");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_SNDBUFFORCE, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_SNDBUFFORCE");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_SO_SNDBUFFORCE 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_SNDBUFFORCE_LVL SOL_SOCKET
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_SNDBUFFORCE_NAME "so_sndbufforce"
_ACEOF
    if test x"SOL_SOCKET" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_SNDBUFFORCE_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_SNDBUFFORCE_IPV6 0
_ACEOF
    elif test x"SOL_SOCKET" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_SNDBUFFORCE_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_SNDBUFFORCE_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_SNDBUFFORCE_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_SNDBUFFORCE_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }SO_SNDBUFFORCE"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOL_SOCKET socket option SO_SNDLOWAT" >&5
$as_echo_n "checking for SOL_SOCKET socket option SO_SNDLOWAT... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_SNDLOWAT, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_SNDLOWAT");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_SNDLOWAT, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_SNDLOWAT");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_SO_SNDLOWAT 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_SNDLOWAT_LVL SOL_SOCKET
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_SNDLOWAT_NAME "so_sndlowat"
_ACEOF
    if test x"SOL_SOCKET" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_SNDLOWAT_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_SNDLOWAT_IPV6 0
_ACEOF
    elif test x"SOL_SOCKET" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_SNDLOWAT_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_SNDLOWAT_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_SNDLOWAT_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_SNDLOWAT_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }SO_SNDLOWAT"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOL_SOCKET socket option SO_SNDTIMEO" >&5
$as_echo_n "checking for SOL_SOCKET socket option SO_SNDTIMEO... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_SNDTIMEO, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_SNDTIMEO");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_SNDTIMEO, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_SNDTIMEO");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_SO_SNDTIMEO 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_SNDTIMEO_LVL SOL_SOCKET
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_SNDTIMEO_NAME "so_sndtimeo"
_ACEOF
    if test x"SOL_SOCKET" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_SNDTIMEO_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_SNDTIMEO_IPV6 0
_ACEOF
    elif test x"SOL_SOCKET" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_SNDTIMEO_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_SNDTIMEO_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_SNDTIMEO_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_SNDTIMEO_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }SO_SNDTIMEO"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi #timeval arg
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOL_SOCKET socket option SO_TIMESTAMP" >&5
$as_echo_n "checking for SOL_SOCKET socket option SO_TIMESTAMP... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_TIMESTAMP, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_TIMESTAMP");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_TIMESTAMP, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_TIMESTAMP");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_SO_TIMESTAMP 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_TIMESTAMP_LVL SOL_SOCKET
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_TIMESTAMP_NAME "so_timestamp"
_ACEOF
    if test x"SOL_SOCKET" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_TIMESTAMP_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_TIMESTAMP_IPV6 0
_ACEOF
    elif test x"SOL_SOCKET" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_TIMESTAMP_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_TIMESTAMP_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_TIMESTAMP_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_TIMESTAMP_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }SO_TIMESTAMP"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi #XXX requires additional code
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOL_SOCKET socket option SO_USELOOPBACK" >&5
$as_echo_n "checking for SOL_SOCKET socket option SO_USELOOPBACK... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_USELOOPBACK, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_USELOOPBACK");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_USELOOPBACK, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_USELOOPBACK");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_SO_USELOOPBACK 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_USELOOPBACK_LVL SOL_SOCKET
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_USELOOPBACK_NAME "so_useloopback"
_ACEOF
    if test x"SOL_SOCKET" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_USELOOPBACK_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_USELOOPBACK_IPV6 0
_ACEOF
    elif test x"SOL_SOCKET" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_USELOOPBACK_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_USELOOPBACK_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_USELOOPBACK_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_USELOOPBACK_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }SO_USELOOPBACK"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOL_SOCKET socket option SO_AUDIT" >&5
$as_echo_n "checking for SOL_SOCKET socket option SO_AUDIT... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_AUDIT, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_AUDIT");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_AUDIT, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_AUDIT");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_SO_AUDIT 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_AUDIT_LVL SOL_SOCKET
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_AUDIT_NAME "so_audit"
_ACEOF
    if test x"SOL_SOCKET" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_AUDIT_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_AUDIT_IPV6 0
_ACEOF
    elif test x"SOL_SOCKET" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_AUDIT_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_AUDIT_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_AUDIT_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_AUDIT_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }SO_AUDIT"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOL_SOCKET socket option SO_CKSUMRECV" >&5
$as_echo_n "checking for SOL_SOCKET socket option SO_CKSUMRECV... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_CKSUMRECV, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_CKSUMRECV");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_CKSUMRECV, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_CKSUMRECV");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_SO_CKSUMRECV 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_CKSUMRECV_LVL SOL_SOCKET
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_CKSUMRECV_NAME "so_cksumrecv"
_ACEOF
    if test x"SOL_SOCKET" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_CKSUMRECV_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_CKSUMRECV_IPV6 0
_ACEOF
    elif test x"SOL_SOCKET" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_CKSUMRECV_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_CKSUMRECV_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_CKSUMRECV_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_CKSUMRECV_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }SO_CKSUMRECV"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOL_SOCKET socket option SO_NOMULTIPATH" >&5
$as_echo_n "checking for SOL_SOCKET socket option SO_NOMULTIPATH... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_NOMULTIPATH, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_NOMULTIPATH");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_NOMULTIPATH, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_NOMULTIPATH");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_SO_NOMULTIPATH 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_NOMULTIPATH_LVL SOL_SOCKET
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_NOMULTIPATH_NAME "so_nomultipath"
_ACEOF
    if test x"SOL_SOCKET" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_NOMULTIPATH_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_NOMULTIPATH_IPV6 0
_ACEOF
    elif test x"SOL_SOCKET" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_NOMULTIPATH_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_NOMULTIPATH_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_NOMULTIPATH_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_NOMULTIPATH_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }SO_NOMULTIPATH"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOL_SOCKET socket option SO_NOREUSEADDR" >&5
$as_echo_n "checking for SOL_SOCKET socket option SO_NOREUSEADDR... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_NOREUSEADDR, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_NOREUSEADDR");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_NOREUSEADDR, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_NOREUSEADDR");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_SO_NOREUSEADDR 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_NOREUSEADDR_LVL SOL_SOCKET
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_NOREUSEADDR_NAME "so_noreuseaddr"
_ACEOF
    if test x"SOL_SOCKET" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_NOREUSEADDR_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_NOREUSEADDR_IPV6 0
_ACEOF
    elif test x"SOL_SOCKET" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_NOREUSEADDR_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_NOREUSEADDR_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_NOREUSEADDR_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_NOREUSEADDR_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }SO_NOREUSEADDR"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi #XXX usable?

#tcp level
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_TCP socket option TCP_CORK" >&5
$as_echo_n "checking for IPPROTO_TCP socket option TCP_CORK... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_TCP == SOL_SOCKET || IPPROTO_TCP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_TCP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_TCP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_TCP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_TCP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_TCP, TCP_CORK, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_TCP TCP_CORK");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_TCP == SOL_SOCKET || IPPROTO_TCP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_TCP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_TCP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_TCP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_TCP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_TCP, TCP_CORK, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_TCP TCP_CORK");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_TCP_CORK 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_CORK_LVL IPPROTO_TCP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_CORK_NAME "tcp_cork"
_ACEOF
    if test x"IPPROTO_TCP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_CORK_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_CORK_IPV6 0
_ACEOF
    elif test x"IPPROTO_TCP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_CORK_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_CORK_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_CORK_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_CORK_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }TCP_CORK"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_TCP socket option TCP_CWND" >&5
$as_echo_n "checking for IPPROTO_TCP socket option TCP_CWND... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_TCP == SOL_SOCKET || IPPROTO_TCP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_TCP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_TCP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_TCP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_TCP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_TCP, TCP_CWND, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_TCP TCP_CWND");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_TCP == SOL_SOCKET || IPPROTO_TCP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_TCP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_TCP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_TCP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_TCP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_TCP, TCP_CWND, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_TCP TCP_CWND");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_TCP_CWND 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_CWND_LVL IPPROTO_TCP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_CWND_NAME "tcp_cwnd"
_ACEOF
    if test x"IPPROTO_TCP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_CWND_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_CWND_IPV6 0
_ACEOF
    elif test x"IPPROTO_TCP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_CWND_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_CWND_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_CWND_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_CWND_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }TCP_CWND"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi      #Google patch
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_TCP socket option TCP_INIT_CWND" >&5
$as_echo_n "checking for IPPROTO_TCP socket option TCP_INIT_CWND... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_TCP == SOL_SOCKET || IPPROTO_TCP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_TCP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_TCP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_TCP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_TCP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_TCP, TCP_INIT_CWND, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_TCP TCP_INIT_CWND");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_TCP == SOL_SOCKET || IPPROTO_TCP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_TCP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_TCP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_TCP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_TCP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_TCP, TCP_INIT_CWND, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_TCP TCP_INIT_CWND");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_TCP_INIT_CWND 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_INIT_CWND_LVL IPPROTO_TCP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_INIT_CWND_NAME "tcp_init_cwnd"
_ACEOF
    if test x"IPPROTO_TCP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_INIT_CWND_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_INIT_CWND_IPV6 0
_ACEOF
    elif test x"IPPROTO_TCP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_INIT_CWND_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_INIT_CWND_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_INIT_CWND_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_INIT_CWND_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }TCP_INIT_CWND"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi #Solaris
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_TCP socket option TCP_KEEPCNT" >&5
$as_echo_n "checking for IPPROTO_TCP socket option TCP_KEEPCNT... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_TCP == SOL_SOCKET || IPPROTO_TCP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_TCP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_TCP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_TCP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_TCP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_TCP, TCP_KEEPCNT, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_TCP TCP_KEEPCNT");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_TCP == SOL_SOCKET || IPPROTO_TCP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_TCP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_TCP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_TCP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_TCP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_TCP, TCP_KEEPCNT, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_TCP TCP_KEEPCNT");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_TCP_KEEPCNT 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_KEEPCNT_LVL IPPROTO_TCP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_KEEPCNT_NAME "tcp_keepcnt"
_ACEOF
    if test x"IPPROTO_TCP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_KEEPCNT_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_KEEPCNT_IPV6 0
_ACEOF
    elif test x"IPPROTO_TCP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_KEEPCNT_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_KEEPCNT_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_KEEPCNT_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_KEEPCNT_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }TCP_KEEPCNT"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_TCP socket option TCP_KEEPIDLE" >&5
$as_echo_n "checking for IPPROTO_TCP socket option TCP_KEEPIDLE... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_TCP == SOL_SOCKET || IPPROTO_TCP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_TCP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_TCP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_TCP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_TCP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_TCP, TCP_KEEPIDLE, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_TCP TCP_KEEPIDLE");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_TCP == SOL_SOCKET || IPPROTO_TCP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_TCP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_TCP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_TCP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_TCP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_TCP, TCP_KEEPIDLE, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_TCP TCP_KEEPIDLE");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_TCP_KEEPIDLE 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_KEEPIDLE_LVL IPPROTO_TCP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_KEEPIDLE_NAME "tcp_keepidle"
_ACEOF
    if test x"IPPROTO_TCP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_KEEPIDLE_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_KEEPIDLE_IPV6 0
_ACEOF
    elif test x"IPPROTO_TCP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_KEEPIDLE_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_KEEPIDLE_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_KEEPIDLE_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_KEEPIDLE_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }TCP_KEEPIDLE"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_TCP socket option TCP_KEEPINTVL" >&5
$as_echo_n "checking for IPPROTO_TCP socket option TCP_KEEPINTVL... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_TCP == SOL_SOCKET || IPPROTO_TCP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_TCP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_TCP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_TCP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_TCP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_TCP, TCP_KEEPINTVL, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_TCP TCP_KEEPINTVL");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_TCP == SOL_SOCKET || IPPROTO_TCP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_TCP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_TCP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_TCP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_TCP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_TCP, TCP_KEEPINTVL, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_TCP TCP_KEEPINTVL");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_TCP_KEEPINTVL 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_KEEPINTVL_LVL IPPROTO_TCP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_KEEPINTVL_NAME "tcp_keepintvl"
_ACEOF
    if test x"IPPROTO_TCP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_KEEPINTVL_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_KEEPINTVL_IPV6 0
_ACEOF
    elif test x"IPPROTO_TCP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_KEEPINTVL_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_KEEPINTVL_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_KEEPINTVL_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_KEEPINTVL_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }TCP_KEEPINTVL"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_TCP socket option TCP_LINGER2" >&5
$as_echo_n "checking for IPPROTO_TCP socket option TCP_LINGER2... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_TCP == SOL_SOCKET || IPPROTO_TCP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_TCP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_TCP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_TCP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_TCP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_TCP, TCP_LINGER2, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_TCP TCP_LINGER2");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_TCP == SOL_SOCKET || IPPROTO_TCP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_TCP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_TCP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_TCP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_TCP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_TCP, TCP_LINGER2, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_TCP TCP_LINGER2");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_TCP_LINGER2 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_LINGER2_LVL IPPROTO_TCP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_LINGER2_NAME "tcp_linger2"
_ACEOF
    if test x"IPPROTO_TCP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_LINGER2_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_LINGER2_IPV6 0
_ACEOF
    elif test x"IPPROTO_TCP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_LINGER2_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_LINGER2_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_LINGER2_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_LINGER2_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }TCP_LINGER2"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_TCP socket option TCP_MAXRT" >&5
$as_echo_n "checking for IPPROTO_TCP socket option TCP_MAXRT... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_TCP == SOL_SOCKET || IPPROTO_TCP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_TCP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_TCP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_TCP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_TCP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_TCP, TCP_MAXRT, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_TCP TCP_MAXRT");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_TCP == SOL_SOCKET || IPPROTO_TCP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_TCP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_TCP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_TCP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_TCP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_TCP, TCP_MAXRT, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_TCP TCP_MAXRT");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_TCP_MAXRT 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_MAXRT_LVL IPPROTO_TCP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_MAXRT_NAME "tcp_maxrt"
_ACEOF
    if test x"IPPROTO_TCP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_MAXRT_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_MAXRT_IPV6 0
_ACEOF
    elif test x"IPPROTO_TCP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_MAXRT_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_MAXRT_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_MAXRT_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_MAXRT_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }TCP_MAXRT"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_TCP socket option TCP_MAXSEG" >&5
$as_echo_n "checking for IPPROTO_TCP socket option TCP_MAXSEG... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_TCP == SOL_SOCKET || IPPROTO_TCP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_TCP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_TCP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_TCP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_TCP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_TCP, TCP_MAXSEG, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_TCP TCP_MAXSEG");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_TCP == SOL_SOCKET || IPPROTO_TCP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_TCP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_TCP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_TCP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_TCP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_TCP, TCP_MAXSEG, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_TCP TCP_MAXSEG");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_TCP_MAXSEG 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_MAXSEG_LVL IPPROTO_TCP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_MAXSEG_NAME "tcp_maxseg"
_ACEOF
    if test x"IPPROTO_TCP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_MAXSEG_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_MAXSEG_IPV6 0
_ACEOF
    elif test x"IPPROTO_TCP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_MAXSEG_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_MAXSEG_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_MAXSEG_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_MAXSEG_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }TCP_MAXSEG"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_TCP socket option TCP_MD5SIG" >&5
$as_echo_n "checking for IPPROTO_TCP socket option TCP_MD5SIG... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_TCP == SOL_SOCKET || IPPROTO_TCP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_TCP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_TCP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_TCP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_TCP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_TCP, TCP_MD5SIG, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_TCP TCP_MD5SIG");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_TCP == SOL_SOCKET || IPPROTO_TCP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_TCP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_TCP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_TCP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_TCP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_TCP, TCP_MD5SIG, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_TCP TCP_MD5SIG");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_TCP_MD5SIG 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_MD5SIG_LVL IPPROTO_TCP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_MD5SIG_NAME "tcp_md5sig"
_ACEOF
    if test x"IPPROTO_TCP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_MD5SIG_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_MD5SIG_IPV6 0
_ACEOF
    elif test x"IPPROTO_TCP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_MD5SIG_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_MD5SIG_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_MD5SIG_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_MD5SIG_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }TCP_MD5SIG"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_TCP socket option TCP_NODELAY" >&5
$as_echo_n "checking for IPPROTO_TCP socket option TCP_NODELAY... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_TCP == SOL_SOCKET || IPPROTO_TCP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_TCP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_TCP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_TCP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_TCP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_TCP, TCP_NODELAY, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_TCP TCP_NODELAY");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_TCP == SOL_SOCKET || IPPROTO_TCP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_TCP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_TCP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_TCP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_TCP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_TCP, TCP_NODELAY, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_TCP TCP_NODELAY");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_TCP_NODELAY 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_NODELAY_LVL IPPROTO_TCP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_NODELAY_NAME "tcp_nodelay"
_ACEOF
    if test x"IPPROTO_TCP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_NODELAY_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_NODELAY_IPV6 0
_ACEOF
    elif test x"IPPROTO_TCP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_NODELAY_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_NODELAY_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_NODELAY_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_NODELAY_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }TCP_NODELAY"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_TCP socket option TCP_NOOPT" >&5
$as_echo_n "checking for IPPROTO_TCP socket option TCP_NOOPT... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_TCP == SOL_SOCKET || IPPROTO_TCP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_TCP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_TCP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_TCP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_TCP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_TCP, TCP_NOOPT, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_TCP TCP_NOOPT");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_TCP == SOL_SOCKET || IPPROTO_TCP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_TCP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_TCP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_TCP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_TCP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_TCP, TCP_NOOPT, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_TCP TCP_NOOPT");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_TCP_NOOPT 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_NOOPT_LVL IPPROTO_TCP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_NOOPT_NAME "tcp_noopt"
_ACEOF
    if test x"IPPROTO_TCP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_NOOPT_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_NOOPT_IPV6 0
_ACEOF
    elif test x"IPPROTO_TCP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_NOOPT_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_NOOPT_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_NOOPT_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_NOOPT_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }TCP_NOOPT"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_TCP socket option TCP_NOPUSH" >&5
$as_echo_n "checking for IPPROTO_TCP socket option TCP_NOPUSH... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_TCP == SOL_SOCKET || IPPROTO_TCP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_TCP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_TCP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_TCP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_TCP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_TCP, TCP_NOPUSH, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_TCP TCP_NOPUSH");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_TCP == SOL_SOCKET || IPPROTO_TCP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_TCP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_TCP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_TCP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_TCP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_TCP, TCP_NOPUSH, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_TCP TCP_NOPUSH");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_TCP_NOPUSH 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_NOPUSH_LVL IPPROTO_TCP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_NOPUSH_NAME "tcp_nopush"
_ACEOF
    if test x"IPPROTO_TCP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_NOPUSH_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_NOPUSH_IPV6 0
_ACEOF
    elif test x"IPPROTO_TCP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_NOPUSH_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_NOPUSH_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_NOPUSH_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_NOPUSH_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }TCP_NOPUSH"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
#L_CHECKSOCKOPT(IPPROTO_TCP, TCP_QUICKACK) #only transient?
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_TCP socket option TCP_SACK_ENABLE" >&5
$as_echo_n "checking for IPPROTO_TCP socket option TCP_SACK_ENABLE... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_TCP == SOL_SOCKET || IPPROTO_TCP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_TCP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_TCP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_TCP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_TCP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_TCP, TCP_SACK_ENABLE, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_TCP TCP_SACK_ENABLE");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_TCP == SOL_SOCKET || IPPROTO_TCP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_TCP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_TCP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_TCP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_TCP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_TCP, TCP_SACK_ENABLE, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_TCP TCP_SACK_ENABLE");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_TCP_SACK_ENABLE 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_SACK_ENABLE_LVL IPPROTO_TCP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_SACK_ENABLE_NAME "tcp_sack_enable"
_ACEOF
    if test x"IPPROTO_TCP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_SACK_ENABLE_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_SACK_ENABLE_IPV6 0
_ACEOF
    elif test x"IPPROTO_TCP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_SACK_ENABLE_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_SACK_ENABLE_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_SACK_ENABLE_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_SACK_ENABLE_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }TCP_SACK_ENABLE"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_TCP socket option TCP_STDURG" >&5
$as_echo_n "checking for IPPROTO_TCP socket option TCP_STDURG... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_TCP == SOL_SOCKET || IPPROTO_TCP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_TCP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_TCP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_TCP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_TCP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_TCP, TCP_STDURG, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_TCP TCP_STDURG");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_TCP == SOL_SOCKET || IPPROTO_TCP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_TCP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_TCP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_TCP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_TCP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_TCP, TCP_STDURG, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_TCP TCP_STDURG");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_TCP_STDURG 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_STDURG_LVL IPPROTO_TCP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_STDURG_NAME "tcp_stdurg"
_ACEOF
    if test x"IPPROTO_TCP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_STDURG_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_STDURG_IPV6 0
_ACEOF
    elif test x"IPPROTO_TCP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_STDURG_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_STDURG_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_STDURG_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_STDURG_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }TCP_STDURG"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_TCP socket option TCP_SYNCNT" >&5
$as_echo_n "checking for IPPROTO_TCP socket option TCP_SYNCNT... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_TCP == SOL_SOCKET || IPPROTO_TCP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_TCP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_TCP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_TCP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_TCP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_TCP, TCP_SYNCNT, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_TCP TCP_SYNCNT");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_TCP == SOL_SOCKET || IPPROTO_TCP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_TCP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_TCP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_TCP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_TCP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_TCP, TCP_SYNCNT, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_TCP TCP_SYNCNT");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_TCP_SYNCNT 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_SYNCNT_LVL IPPROTO_TCP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_SYNCNT_NAME "tcp_syncnt"
_ACEOF
    if test x"IPPROTO_TCP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_SYNCNT_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_SYNCNT_IPV6 0
_ACEOF
    elif test x"IPPROTO_TCP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_SYNCNT_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_SYNCNT_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_SYNCNT_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_SYNCNT_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }TCP_SYNCNT"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_TCP socket option TCP_WINDOW_CLAMP" >&5
$as_echo_n "checking for IPPROTO_TCP socket option TCP_WINDOW_CLAMP... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_TCP == SOL_SOCKET || IPPROTO_TCP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_TCP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_TCP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_TCP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_TCP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_TCP, TCP_WINDOW_CLAMP, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_TCP TCP_WINDOW_CLAMP");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_TCP == SOL_SOCKET || IPPROTO_TCP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_TCP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_TCP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_TCP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_TCP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_TCP, TCP_WINDOW_CLAMP, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_TCP TCP_WINDOW_CLAMP");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_TCP_WINDOW_CLAMP 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_WINDOW_CLAMP_LVL IPPROTO_TCP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_WINDOW_CLAMP_NAME "tcp_window_clamp"
_ACEOF
    if test x"IPPROTO_TCP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_WINDOW_CLAMP_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_WINDOW_CLAMP_IPV6 0
_ACEOF
    elif test x"IPPROTO_TCP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_WINDOW_CLAMP_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_WINDOW_CLAMP_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_WINDOW_CLAMP_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_WINDOW_CLAMP_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }TCP_WINDOW_CLAMP"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_TCP socket option TCP_RFC1323" >&5
$as_echo_n "checking for IPPROTO_TCP socket option TCP_RFC1323... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_TCP == SOL_SOCKET || IPPROTO_TCP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_TCP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_TCP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_TCP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_TCP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_TCP, TCP_RFC1323, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_TCP TCP_RFC1323");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_TCP == SOL_SOCKET || IPPROTO_TCP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_TCP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_TCP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_TCP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_TCP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_TCP, TCP_RFC1323, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_TCP TCP_RFC1323");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_TCP_RFC1323 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_RFC1323_LVL IPPROTO_TCP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_RFC1323_NAME "tcp_rfc1323"
_ACEOF
    if test x"IPPROTO_TCP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_RFC1323_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_RFC1323_IPV6 0
_ACEOF
    elif test x"IPPROTO_TCP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_RFC1323_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_RFC1323_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_RFC1323_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_RFC1323_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }TCP_RFC1323"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_TCP socket option TCP_NODELAYACK" >&5
$as_echo_n "checking for IPPROTO_TCP socket option TCP_NODELAYACK... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_TCP == SOL_SOCKET || IPPROTO_TCP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_TCP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_TCP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_TCP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_TCP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_TCP, TCP_NODELAYACK, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_TCP TCP_NODELAYACK");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_TCP == SOL_SOCKET || IPPROTO_TCP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_TCP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_TCP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_TCP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_TCP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_TCP, TCP_NODELAYACK, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_TCP TCP_NODELAYACK");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_TCP_NODELAYACK 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_NODELAYACK_LVL IPPROTO_TCP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_NODELAYACK_NAME "tcp_nodelayack"
_ACEOF
    if test x"IPPROTO_TCP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_NODELAYACK_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_NODELAYACK_IPV6 0
_ACEOF
    elif test x"IPPROTO_TCP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_NODELAYACK_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_NODELAYACK_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_NODELAYACK_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_NODELAYACK_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }TCP_NODELAYACK"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_TCP socket option TCP_CWND_IF" >&5
$as_echo_n "checking for IPPROTO_TCP socket option TCP_CWND_IF... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_TCP == SOL_SOCKET || IPPROTO_TCP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_TCP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_TCP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_TCP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_TCP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_TCP, TCP_CWND_IF, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_TCP TCP_CWND_IF");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_TCP == SOL_SOCKET || IPPROTO_TCP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_TCP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_TCP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_TCP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_TCP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_TCP, TCP_CWND_IF, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_TCP TCP_CWND_IF");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_TCP_CWND_IF 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_CWND_IF_LVL IPPROTO_TCP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_CWND_IF_NAME "tcp_cwnd_if"
_ACEOF
    if test x"IPPROTO_TCP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_CWND_IF_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_CWND_IF_IPV6 0
_ACEOF
    elif test x"IPPROTO_TCP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_CWND_IF_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_CWND_IF_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_CWND_IF_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_CWND_IF_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }TCP_CWND_IF"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_TCP socket option TCP_CWND_DF" >&5
$as_echo_n "checking for IPPROTO_TCP socket option TCP_CWND_DF... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_TCP == SOL_SOCKET || IPPROTO_TCP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_TCP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_TCP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_TCP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_TCP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_TCP, TCP_CWND_DF, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_TCP TCP_CWND_DF");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_TCP == SOL_SOCKET || IPPROTO_TCP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_TCP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_TCP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_TCP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_TCP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_TCP, TCP_CWND_DF, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_TCP TCP_CWND_DF");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_TCP_CWND_DF 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_CWND_DF_LVL IPPROTO_TCP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_CWND_DF_NAME "tcp_cwnd_df"
_ACEOF
    if test x"IPPROTO_TCP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_CWND_DF_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_CWND_DF_IPV6 0
_ACEOF
    elif test x"IPPROTO_TCP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_CWND_DF_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_CWND_DF_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_CWND_DF_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_CWND_DF_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }TCP_CWND_DF"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_TCP socket option TCP_NOTENTER_SSTART" >&5
$as_echo_n "checking for IPPROTO_TCP socket option TCP_NOTENTER_SSTART... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_TCP == SOL_SOCKET || IPPROTO_TCP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_TCP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_TCP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_TCP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_TCP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_TCP, TCP_NOTENTER_SSTART, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_TCP TCP_NOTENTER_SSTART");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_TCP == SOL_SOCKET || IPPROTO_TCP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_TCP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_TCP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_TCP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_TCP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_TCP, TCP_NOTENTER_SSTART, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_TCP TCP_NOTENTER_SSTART");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_TCP_NOTENTER_SSTART 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_NOTENTER_SSTART_LVL IPPROTO_TCP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_NOTENTER_SSTART_NAME "tcp_notenter_sstart"
_ACEOF
    if test x"IPPROTO_TCP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_NOTENTER_SSTART_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_NOTENTER_SSTART_IPV6 0
_ACEOF
    elif test x"IPPROTO_TCP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_NOTENTER_SSTART_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_NOTENTER_SSTART_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_NOTENTER_SSTART_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_NOTENTER_SSTART_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }TCP_NOTENTER_SSTART"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_TCP socket option TCP_NOREDUCE_CWND_IN_FRXMT" >&5
$as_echo_n "checking for IPPROTO_TCP socket option TCP_NOREDUCE_CWND_IN_FRXMT... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_TCP == SOL_SOCKET || IPPROTO_TCP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_TCP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_TCP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_TCP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_TCP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_TCP, TCP_NOREDUCE_CWND_IN_FRXMT, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_TCP TCP_NOREDUCE_CWND_IN_FRXMT");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_TCP == SOL_SOCKET || IPPROTO_TCP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_TCP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_TCP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_TCP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_TCP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_TCP, TCP_NOREDUCE_CWND_IN_FRXMT, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_TCP TCP_NOREDUCE_CWND_IN_FRXMT");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_TCP_NOREDUCE_CWND_IN_FRXMT 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_NOREDUCE_CWND_IN_FRXMT_LVL IPPROTO_TCP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_NOREDUCE_CWND_IN_FRXMT_NAME "tcp_noreduce_cwnd_in_frxmt"
_ACEOF
    if test x"IPPROTO_TCP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_NOREDUCE_CWND_IN_FRXMT_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_NOREDUCE_CWND_IN_FRXMT_IPV6 0
_ACEOF
    elif test x"IPPROTO_TCP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_NOREDUCE_CWND_IN_FRXMT_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_NOREDUCE_CWND_IN_FRXMT_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_NOREDUCE_CWND_IN_FRXMT_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_NOREDUCE_CWND_IN_FRXMT_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }TCP_NOREDUCE_CWND_IN_FRXMT"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_TCP socket option TCP_NOREDUCE_CWND_EXIT_FRXMT" >&5
$as_echo_n "checking for IPPROTO_TCP socket option TCP_NOREDUCE_CWND_EXIT_FRXMT... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_TCP == SOL_SOCKET || IPPROTO_TCP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_TCP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_TCP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_TCP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_TCP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_TCP, TCP_NOREDUCE_CWND_EXIT_FRXMT, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_TCP TCP_NOREDUCE_CWND_EXIT_FRXMT");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_TCP == SOL_SOCKET || IPPROTO_TCP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_TCP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_TCP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_TCP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_TCP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_TCP, TCP_NOREDUCE_CWND_EXIT_FRXMT, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_TCP TCP_NOREDUCE_CWND_EXIT_FRXMT");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_TCP_NOREDUCE_CWND_EXIT_FRXMT 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_NOREDUCE_CWND_EXIT_FRXMT_LVL IPPROTO_TCP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_NOREDUCE_CWND_EXIT_FRXMT_NAME "tcp_noreduce_cwnd_exit_frxmt"
_ACEOF
    if test x"IPPROTO_TCP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_NOREDUCE_CWND_EXIT_FRXMT_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_NOREDUCE_CWND_EXIT_FRXMT_IPV6 0
_ACEOF
    elif test x"IPPROTO_TCP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_NOREDUCE_CWND_EXIT_FRXMT_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_NOREDUCE_CWND_EXIT_FRXMT_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_NOREDUCE_CWND_EXIT_FRXMT_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_TCP_NOREDUCE_CWND_EXIT_FRXMT_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }TCP_NOREDUCE_CWND_EXIT_FRXMT"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi

#udp level
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_UDP socket option UDP_CORK" >&5
$as_echo_n "checking for IPPROTO_UDP socket option UDP_CORK... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_UDP == SOL_SOCKET || IPPROTO_UDP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_UDP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_UDP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_UDP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_UDP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_UDP, UDP_CORK, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_UDP UDP_CORK");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_UDP == SOL_SOCKET || IPPROTO_UDP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_UDP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_UDP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_UDP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_UDP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_UDP, UDP_CORK, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_UDP UDP_CORK");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_UDP_CORK 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_UDP_CORK_LVL IPPROTO_UDP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_UDP_CORK_NAME "udp_cork"
_ACEOF
    if test x"IPPROTO_UDP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_UDP_CORK_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_UDP_CORK_IPV6 0
_ACEOF
    elif test x"IPPROTO_UDP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_UDP_CORK_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_UDP_CORK_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_UDP_CORK_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_UDP_CORK_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }UDP_CORK"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi

#ipv4 level
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IP socket option IP_AUTH_LEVEL" >&5
$as_echo_n "checking for IPPROTO_IP socket option IP_AUTH_LEVEL... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_AUTH_LEVEL, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_AUTH_LEVEL");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_AUTH_LEVEL, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_AUTH_LEVEL");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IP_AUTH_LEVEL 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_AUTH_LEVEL_LVL IPPROTO_IP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_AUTH_LEVEL_NAME "ip_auth_level"
_ACEOF
    if test x"IPPROTO_IP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_AUTH_LEVEL_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_AUTH_LEVEL_IPV6 0
_ACEOF
    elif test x"IPPROTO_IP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_AUTH_LEVEL_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_AUTH_LEVEL_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_AUTH_LEVEL_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_AUTH_LEVEL_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IP_AUTH_LEVEL"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IP socket option IP_DONTFRAG" >&5
$as_echo_n "checking for IPPROTO_IP socket option IP_DONTFRAG... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_DONTFRAG, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_DONTFRAG");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_DONTFRAG, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_DONTFRAG");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IP_DONTFRAG 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_DONTFRAG_LVL IPPROTO_IP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_DONTFRAG_NAME "ip_dontfrag"
_ACEOF
    if test x"IPPROTO_IP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_DONTFRAG_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_DONTFRAG_IPV6 0
_ACEOF
    elif test x"IPPROTO_IP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_DONTFRAG_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_DONTFRAG_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_DONTFRAG_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_DONTFRAG_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IP_DONTFRAG"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IP socket option IP_ESP_NETWORK_LEVEL" >&5
$as_echo_n "checking for IPPROTO_IP socket option IP_ESP_NETWORK_LEVEL... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_ESP_NETWORK_LEVEL, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_ESP_NETWORK_LEVEL");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_ESP_NETWORK_LEVEL, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_ESP_NETWORK_LEVEL");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IP_ESP_NETWORK_LEVEL 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_ESP_NETWORK_LEVEL_LVL IPPROTO_IP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_ESP_NETWORK_LEVEL_NAME "ip_esp_network_level"
_ACEOF
    if test x"IPPROTO_IP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_ESP_NETWORK_LEVEL_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_ESP_NETWORK_LEVEL_IPV6 0
_ACEOF
    elif test x"IPPROTO_IP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_ESP_NETWORK_LEVEL_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_ESP_NETWORK_LEVEL_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_ESP_NETWORK_LEVEL_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_ESP_NETWORK_LEVEL_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IP_ESP_NETWORK_LEVEL"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IP socket option IP_ESP_TRANS_LEVEL" >&5
$as_echo_n "checking for IPPROTO_IP socket option IP_ESP_TRANS_LEVEL... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_ESP_TRANS_LEVEL, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_ESP_TRANS_LEVEL");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_ESP_TRANS_LEVEL, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_ESP_TRANS_LEVEL");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IP_ESP_TRANS_LEVEL 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_ESP_TRANS_LEVEL_LVL IPPROTO_IP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_ESP_TRANS_LEVEL_NAME "ip_esp_trans_level"
_ACEOF
    if test x"IPPROTO_IP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_ESP_TRANS_LEVEL_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_ESP_TRANS_LEVEL_IPV6 0
_ACEOF
    elif test x"IPPROTO_IP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_ESP_TRANS_LEVEL_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_ESP_TRANS_LEVEL_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_ESP_TRANS_LEVEL_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_ESP_TRANS_LEVEL_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IP_ESP_TRANS_LEVEL"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IP socket option IP_FREEBIND" >&5
$as_echo_n "checking for IPPROTO_IP socket option IP_FREEBIND... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_FREEBIND, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_FREEBIND");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_FREEBIND, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_FREEBIND");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IP_FREEBIND 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_FREEBIND_LVL IPPROTO_IP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_FREEBIND_NAME "ip_freebind"
_ACEOF
    if test x"IPPROTO_IP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_FREEBIND_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_FREEBIND_IPV6 0
_ACEOF
    elif test x"IPPROTO_IP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_FREEBIND_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_FREEBIND_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_FREEBIND_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_FREEBIND_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IP_FREEBIND"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IP socket option IP_IPCOMP_LEVEL" >&5
$as_echo_n "checking for IPPROTO_IP socket option IP_IPCOMP_LEVEL... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_IPCOMP_LEVEL, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_IPCOMP_LEVEL");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_IPCOMP_LEVEL, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_IPCOMP_LEVEL");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IP_IPCOMP_LEVEL 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_IPCOMP_LEVEL_LVL IPPROTO_IP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_IPCOMP_LEVEL_NAME "ip_ipcomp_level"
_ACEOF
    if test x"IPPROTO_IP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_IPCOMP_LEVEL_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_IPCOMP_LEVEL_IPV6 0
_ACEOF
    elif test x"IPPROTO_IP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_IPCOMP_LEVEL_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_IPCOMP_LEVEL_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_IPCOMP_LEVEL_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_IPCOMP_LEVEL_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IP_IPCOMP_LEVEL"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IP socket option IP_MINTTL" >&5
$as_echo_n "checking for IPPROTO_IP socket option IP_MINTTL... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_MINTTL, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_MINTTL");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_MINTTL, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_MINTTL");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IP_MINTTL 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_MINTTL_LVL IPPROTO_IP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_MINTTL_NAME "ip_minttl"
_ACEOF
    if test x"IPPROTO_IP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_MINTTL_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_MINTTL_IPV6 0
_ACEOF
    elif test x"IPPROTO_IP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_MINTTL_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_MINTTL_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_MINTTL_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_MINTTL_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IP_MINTTL"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IP socket option IP_MTU_DISCOVER" >&5
$as_echo_n "checking for IPPROTO_IP socket option IP_MTU_DISCOVER... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_MTU_DISCOVER, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_MTU_DISCOVER");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_MTU_DISCOVER, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_MTU_DISCOVER");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IP_MTU_DISCOVER 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_MTU_DISCOVER_LVL IPPROTO_IP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_MTU_DISCOVER_NAME "ip_mtu_discover"
_ACEOF
    if test x"IPPROTO_IP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_MTU_DISCOVER_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_MTU_DISCOVER_IPV6 0
_ACEOF
    elif test x"IPPROTO_IP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_MTU_DISCOVER_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_MTU_DISCOVER_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_MTU_DISCOVER_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_MTU_DISCOVER_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IP_MTU_DISCOVER"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IP socket option IP_PORTRANGE" >&5
$as_echo_n "checking for IPPROTO_IP socket option IP_PORTRANGE... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_PORTRANGE, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_PORTRANGE");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_PORTRANGE, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_PORTRANGE");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IP_PORTRANGE 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_PORTRANGE_LVL IPPROTO_IP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_PORTRANGE_NAME "ip_portrange"
_ACEOF
    if test x"IPPROTO_IP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_PORTRANGE_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_PORTRANGE_IPV6 0
_ACEOF
    elif test x"IPPROTO_IP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_PORTRANGE_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_PORTRANGE_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_PORTRANGE_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_PORTRANGE_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IP_PORTRANGE"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IP socket option IP_TOS" >&5
$as_echo_n "checking for IPPROTO_IP socket option IP_TOS... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_TOS, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_TOS");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_TOS, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_TOS");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IP_TOS 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_TOS_LVL IPPROTO_IP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_TOS_NAME "ip_tos"
_ACEOF
    if test x"IPPROTO_IP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_TOS_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_TOS_IPV6 0
_ACEOF
    elif test x"IPPROTO_IP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_TOS_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_TOS_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_TOS_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_TOS_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IP_TOS"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IP socket option IP_TTL" >&5
$as_echo_n "checking for IPPROTO_IP socket option IP_TTL... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_TTL, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_TTL");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_TTL, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_TTL");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IP_TTL 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_TTL_LVL IPPROTO_IP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_TTL_NAME "ip_ttl"
_ACEOF
    if test x"IPPROTO_IP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_TTL_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_TTL_IPV6 0
_ACEOF
    elif test x"IPPROTO_IP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_TTL_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_TTL_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_TTL_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_TTL_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IP_TTL"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IP socket option IP_TRANSPARENT" >&5
$as_echo_n "checking for IPPROTO_IP socket option IP_TRANSPARENT... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_TRANSPARENT, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_TRANSPARENT");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_TRANSPARENT, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_TRANSPARENT");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IP_TRANSPARENT 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_TRANSPARENT_LVL IPPROTO_IP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_TRANSPARENT_NAME "ip_transparent"
_ACEOF
    if test x"IPPROTO_IP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_TRANSPARENT_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_TRANSPARENT_IPV6 0
_ACEOF
    elif test x"IPPROTO_IP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_TRANSPARENT_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_TRANSPARENT_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_TRANSPARENT_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_TRANSPARENT_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IP_TRANSPARENT"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IP socket option IP_UNICAST_HOPS" >&5
$as_echo_n "checking for IPPROTO_IP socket option IP_UNICAST_HOPS... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_UNICAST_HOPS, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_UNICAST_HOPS");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_UNICAST_HOPS, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_UNICAST_HOPS");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IP_UNICAST_HOPS 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_UNICAST_HOPS_LVL IPPROTO_IP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_UNICAST_HOPS_NAME "ip_unicast_hops"
_ACEOF
    if test x"IPPROTO_IP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_UNICAST_HOPS_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_UNICAST_HOPS_IPV6 0
_ACEOF
    elif test x"IPPROTO_IP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_UNICAST_HOPS_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_UNICAST_HOPS_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_UNICAST_HOPS_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_UNICAST_HOPS_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IP_UNICAST_HOPS"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IP socket option IP_BROADCAST_IF" >&5
$as_echo_n "checking for IPPROTO_IP socket option IP_BROADCAST_IF... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_BROADCAST_IF, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_BROADCAST_IF");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_BROADCAST_IF, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_BROADCAST_IF");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IP_BROADCAST_IF 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_BROADCAST_IF_LVL IPPROTO_IP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_BROADCAST_IF_NAME "ip_broadcast_if"
_ACEOF
    if test x"IPPROTO_IP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_BROADCAST_IF_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_BROADCAST_IF_IPV6 0
_ACEOF
    elif test x"IPPROTO_IP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_BROADCAST_IF_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_BROADCAST_IF_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_BROADCAST_IF_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_BROADCAST_IF_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IP_BROADCAST_IF"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi

#ipv6 level
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_ADDRFORM" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_ADDRFORM... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_ADDRFORM, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_ADDRFORM");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_ADDRFORM, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_ADDRFORM");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_ADDRFORM 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ADDRFORM_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ADDRFORM_NAME "ipv6_addrform"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ADDRFORM_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ADDRFORM_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ADDRFORM_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ADDRFORM_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ADDRFORM_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ADDRFORM_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_ADDRFORM"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_UNICAST_HOPS" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_UNICAST_HOPS... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_UNICAST_HOPS, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_UNICAST_HOPS");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_UNICAST_HOPS, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_UNICAST_HOPS");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_UNICAST_HOPS 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_UNICAST_HOPS_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_UNICAST_HOPS_NAME "ipv6_unicast_hops"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_UNICAST_HOPS_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_UNICAST_HOPS_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_UNICAST_HOPS_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_UNICAST_HOPS_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_UNICAST_HOPS_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_UNICAST_HOPS_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_UNICAST_HOPS"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_2292DSTOPTS" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_2292DSTOPTS... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_2292DSTOPTS, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_2292DSTOPTS");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_2292DSTOPTS, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_2292DSTOPTS");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_2292DSTOPTS 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_2292DSTOPTS_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_2292DSTOPTS_NAME "ipv6_2292dstopts"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_2292DSTOPTS_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_2292DSTOPTS_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_2292DSTOPTS_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_2292DSTOPTS_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_2292DSTOPTS_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_2292DSTOPTS_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_2292DSTOPTS"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_2292HOPLIMIT" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_2292HOPLIMIT... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_2292HOPLIMIT, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_2292HOPLIMIT");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_2292HOPLIMIT, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_2292HOPLIMIT");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_2292HOPLIMIT 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_2292HOPLIMIT_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_2292HOPLIMIT_NAME "ipv6_2292hoplimit"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_2292HOPLIMIT_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_2292HOPLIMIT_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_2292HOPLIMIT_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_2292HOPLIMIT_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_2292HOPLIMIT_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_2292HOPLIMIT_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_2292HOPLIMIT"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_2292HOPOPTS" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_2292HOPOPTS... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_2292HOPOPTS, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_2292HOPOPTS");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_2292HOPOPTS, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_2292HOPOPTS");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_2292HOPOPTS 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_2292HOPOPTS_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_2292HOPOPTS_NAME "ipv6_2292hopopts"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_2292HOPOPTS_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_2292HOPOPTS_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_2292HOPOPTS_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_2292HOPOPTS_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_2292HOPOPTS_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_2292HOPOPTS_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_2292HOPOPTS"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_2292PKTINFO" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_2292PKTINFO... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_2292PKTINFO, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_2292PKTINFO");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_2292PKTINFO, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_2292PKTINFO");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_2292PKTINFO 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_2292PKTINFO_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_2292PKTINFO_NAME "ipv6_2292pktinfo"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_2292PKTINFO_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_2292PKTINFO_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_2292PKTINFO_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_2292PKTINFO_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_2292PKTINFO_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_2292PKTINFO_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_2292PKTINFO"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_2292PKTOPTIONS" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_2292PKTOPTIONS... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_2292PKTOPTIONS, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_2292PKTOPTIONS");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_2292PKTOPTIONS, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_2292PKTOPTIONS");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_2292PKTOPTIONS 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_2292PKTOPTIONS_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_2292PKTOPTIONS_NAME "ipv6_2292pktoptions"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_2292PKTOPTIONS_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_2292PKTOPTIONS_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_2292PKTOPTIONS_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_2292PKTOPTIONS_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_2292PKTOPTIONS_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_2292PKTOPTIONS_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_2292PKTOPTIONS"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_2292RTHDR" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_2292RTHDR... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_2292RTHDR, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_2292RTHDR");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_2292RTHDR, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_2292RTHDR");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_2292RTHDR 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_2292RTHDR_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_2292RTHDR_NAME "ipv6_2292rthdr"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_2292RTHDR_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_2292RTHDR_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_2292RTHDR_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_2292RTHDR_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_2292RTHDR_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_2292RTHDR_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_2292RTHDR"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_ADDRFORM" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_ADDRFORM... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_ADDRFORM, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_ADDRFORM");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_ADDRFORM, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_ADDRFORM");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_ADDRFORM 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ADDRFORM_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ADDRFORM_NAME "ipv6_addrform"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ADDRFORM_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ADDRFORM_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ADDRFORM_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ADDRFORM_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ADDRFORM_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ADDRFORM_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_ADDRFORM"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_ADDR_PREFERENCES" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_ADDR_PREFERENCES... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_ADDR_PREFERENCES, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_ADDR_PREFERENCES");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_ADDR_PREFERENCES, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_ADDR_PREFERENCES");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_ADDR_PREFERENCES 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ADDR_PREFERENCES_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ADDR_PREFERENCES_NAME "ipv6_addr_preferences"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ADDR_PREFERENCES_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ADDR_PREFERENCES_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ADDR_PREFERENCES_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ADDR_PREFERENCES_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ADDR_PREFERENCES_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ADDR_PREFERENCES_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_ADDR_PREFERENCES"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_AUTHHDR" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_AUTHHDR... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_AUTHHDR, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_AUTHHDR");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_AUTHHDR, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_AUTHHDR");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_AUTHHDR 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_AUTHHDR_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_AUTHHDR_NAME "ipv6_authhdr"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_AUTHHDR_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_AUTHHDR_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_AUTHHDR_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_AUTHHDR_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_AUTHHDR_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_AUTHHDR_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_AUTHHDR"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_AUTH_LEVEL" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_AUTH_LEVEL... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_AUTH_LEVEL, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_AUTH_LEVEL");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_AUTH_LEVEL, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_AUTH_LEVEL");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_AUTH_LEVEL 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_AUTH_LEVEL_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_AUTH_LEVEL_NAME "ipv6_auth_level"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_AUTH_LEVEL_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_AUTH_LEVEL_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_AUTH_LEVEL_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_AUTH_LEVEL_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_AUTH_LEVEL_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_AUTH_LEVEL_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_AUTH_LEVEL"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_AUTOFLOWLABEL" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_AUTOFLOWLABEL... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_AUTOFLOWLABEL, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_AUTOFLOWLABEL");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_AUTOFLOWLABEL, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_AUTOFLOWLABEL");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_AUTOFLOWLABEL 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_AUTOFLOWLABEL_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_AUTOFLOWLABEL_NAME "ipv6_autoflowlabel"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_AUTOFLOWLABEL_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_AUTOFLOWLABEL_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_AUTOFLOWLABEL_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_AUTOFLOWLABEL_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_AUTOFLOWLABEL_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_AUTOFLOWLABEL_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_AUTOFLOWLABEL"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_CHECKSUM" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_CHECKSUM... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_CHECKSUM, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_CHECKSUM");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_CHECKSUM, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_CHECKSUM");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_CHECKSUM 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_CHECKSUM_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_CHECKSUM_NAME "ipv6_checksum"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_CHECKSUM_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_CHECKSUM_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_CHECKSUM_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_CHECKSUM_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_CHECKSUM_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_CHECKSUM_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_CHECKSUM"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_DONTFRAG" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_DONTFRAG... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_DONTFRAG, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_DONTFRAG");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_DONTFRAG, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_DONTFRAG");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_DONTFRAG 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_DONTFRAG_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_DONTFRAG_NAME "ipv6_dontfrag"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_DONTFRAG_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_DONTFRAG_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_DONTFRAG_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_DONTFRAG_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_DONTFRAG_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_DONTFRAG_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_DONTFRAG"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_DSTOPTS" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_DSTOPTS... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_DSTOPTS, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_DSTOPTS");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_DSTOPTS, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_DSTOPTS");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_DSTOPTS 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_DSTOPTS_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_DSTOPTS_NAME "ipv6_dstopts"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_DSTOPTS_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_DSTOPTS_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_DSTOPTS_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_DSTOPTS_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_DSTOPTS_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_DSTOPTS_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_DSTOPTS"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_DSTOPTS" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_DSTOPTS... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_DSTOPTS, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_DSTOPTS");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_DSTOPTS, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_DSTOPTS");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_DSTOPTS 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_DSTOPTS_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_DSTOPTS_NAME "ipv6_dstopts"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_DSTOPTS_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_DSTOPTS_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_DSTOPTS_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_DSTOPTS_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_DSTOPTS_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_DSTOPTS_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_DSTOPTS"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_ESP_NETWORK_LEVEL" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_ESP_NETWORK_LEVEL... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_ESP_NETWORK_LEVEL, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_ESP_NETWORK_LEVEL");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_ESP_NETWORK_LEVEL, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_ESP_NETWORK_LEVEL");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_ESP_NETWORK_LEVEL 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ESP_NETWORK_LEVEL_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ESP_NETWORK_LEVEL_NAME "ipv6_esp_network_level"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ESP_NETWORK_LEVEL_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ESP_NETWORK_LEVEL_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ESP_NETWORK_LEVEL_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ESP_NETWORK_LEVEL_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ESP_NETWORK_LEVEL_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ESP_NETWORK_LEVEL_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_ESP_NETWORK_LEVEL"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_ESP_TRANS_LEVEL" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_ESP_TRANS_LEVEL... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_ESP_TRANS_LEVEL, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_ESP_TRANS_LEVEL");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_ESP_TRANS_LEVEL, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_ESP_TRANS_LEVEL");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_ESP_TRANS_LEVEL 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ESP_TRANS_LEVEL_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ESP_TRANS_LEVEL_NAME "ipv6_esp_trans_level"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ESP_TRANS_LEVEL_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ESP_TRANS_LEVEL_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ESP_TRANS_LEVEL_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ESP_TRANS_LEVEL_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ESP_TRANS_LEVEL_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ESP_TRANS_LEVEL_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_ESP_TRANS_LEVEL"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_FLOWINFO" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_FLOWINFO... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_FLOWINFO, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_FLOWINFO");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_FLOWINFO, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_FLOWINFO");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_FLOWINFO 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_FLOWINFO_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_FLOWINFO_NAME "ipv6_flowinfo"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_FLOWINFO_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_FLOWINFO_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_FLOWINFO_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_FLOWINFO_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_FLOWINFO_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_FLOWINFO_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_FLOWINFO"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_FLOWINFO_SEND" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_FLOWINFO_SEND... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_FLOWINFO_SEND, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_FLOWINFO_SEND");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_FLOWINFO_SEND, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_FLOWINFO_SEND");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_FLOWINFO_SEND 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_FLOWINFO_SEND_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_FLOWINFO_SEND_NAME "ipv6_flowinfo_send"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_FLOWINFO_SEND_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_FLOWINFO_SEND_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_FLOWINFO_SEND_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_FLOWINFO_SEND_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_FLOWINFO_SEND_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_FLOWINFO_SEND_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_FLOWINFO_SEND"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_FLOWLABEL_MGR" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_FLOWLABEL_MGR... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_FLOWLABEL_MGR, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_FLOWLABEL_MGR");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_FLOWLABEL_MGR, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_FLOWLABEL_MGR");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_FLOWLABEL_MGR 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_FLOWLABEL_MGR_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_FLOWLABEL_MGR_NAME "ipv6_flowlabel_mgr"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_FLOWLABEL_MGR_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_FLOWLABEL_MGR_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_FLOWLABEL_MGR_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_FLOWLABEL_MGR_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_FLOWLABEL_MGR_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_FLOWLABEL_MGR_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_FLOWLABEL_MGR"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_HOPLIMIT" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_HOPLIMIT... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_HOPLIMIT, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_HOPLIMIT");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_HOPLIMIT, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_HOPLIMIT");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_HOPLIMIT 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_HOPLIMIT_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_HOPLIMIT_NAME "ipv6_hoplimit"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_HOPLIMIT_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_HOPLIMIT_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_HOPLIMIT_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_HOPLIMIT_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_HOPLIMIT_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_HOPLIMIT_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_HOPLIMIT"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_HOPLIMIT" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_HOPLIMIT... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_HOPLIMIT, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_HOPLIMIT");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_HOPLIMIT, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_HOPLIMIT");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_HOPLIMIT 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_HOPLIMIT_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_HOPLIMIT_NAME "ipv6_hoplimit"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_HOPLIMIT_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_HOPLIMIT_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_HOPLIMIT_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_HOPLIMIT_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_HOPLIMIT_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_HOPLIMIT_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_HOPLIMIT"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_HOPOPTS" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_HOPOPTS... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_HOPOPTS, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_HOPOPTS");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_HOPOPTS, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_HOPOPTS");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_HOPOPTS 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_HOPOPTS_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_HOPOPTS_NAME "ipv6_hopopts"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_HOPOPTS_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_HOPOPTS_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_HOPOPTS_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_HOPOPTS_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_HOPOPTS_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_HOPOPTS_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_HOPOPTS"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_HOPOPTS" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_HOPOPTS... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_HOPOPTS, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_HOPOPTS");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_HOPOPTS, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_HOPOPTS");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_HOPOPTS 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_HOPOPTS_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_HOPOPTS_NAME "ipv6_hopopts"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_HOPOPTS_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_HOPOPTS_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_HOPOPTS_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_HOPOPTS_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_HOPOPTS_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_HOPOPTS_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_HOPOPTS"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_IPCOMP_LEVEL" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_IPCOMP_LEVEL... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_IPCOMP_LEVEL, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_IPCOMP_LEVEL");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_IPCOMP_LEVEL, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_IPCOMP_LEVEL");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_IPCOMP_LEVEL 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_IPCOMP_LEVEL_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_IPCOMP_LEVEL_NAME "ipv6_ipcomp_level"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_IPCOMP_LEVEL_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_IPCOMP_LEVEL_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_IPCOMP_LEVEL_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_IPCOMP_LEVEL_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_IPCOMP_LEVEL_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_IPCOMP_LEVEL_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_IPCOMP_LEVEL"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_IPSEC_POLICY" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_IPSEC_POLICY... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_IPSEC_POLICY, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_IPSEC_POLICY");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_IPSEC_POLICY, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_IPSEC_POLICY");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_IPSEC_POLICY 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_IPSEC_POLICY_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_IPSEC_POLICY_NAME "ipv6_ipsec_policy"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_IPSEC_POLICY_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_IPSEC_POLICY_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_IPSEC_POLICY_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_IPSEC_POLICY_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_IPSEC_POLICY_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_IPSEC_POLICY_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_IPSEC_POLICY"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_JOIN_ANYCAST" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_JOIN_ANYCAST... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_JOIN_ANYCAST, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_JOIN_ANYCAST");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_JOIN_ANYCAST, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_JOIN_ANYCAST");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_JOIN_ANYCAST 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_JOIN_ANYCAST_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_JOIN_ANYCAST_NAME "ipv6_join_anycast"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_JOIN_ANYCAST_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_JOIN_ANYCAST_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_JOIN_ANYCAST_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_JOIN_ANYCAST_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_JOIN_ANYCAST_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_JOIN_ANYCAST_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_JOIN_ANYCAST"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_JOIN_GROUP" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_JOIN_GROUP... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_JOIN_GROUP, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_JOIN_GROUP");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_JOIN_GROUP, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_JOIN_GROUP");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_JOIN_GROUP 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_JOIN_GROUP_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_JOIN_GROUP_NAME "ipv6_join_group"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_JOIN_GROUP_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_JOIN_GROUP_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_JOIN_GROUP_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_JOIN_GROUP_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_JOIN_GROUP_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_JOIN_GROUP_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_JOIN_GROUP"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_LEAVE_ANYCAST" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_LEAVE_ANYCAST... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_LEAVE_ANYCAST, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_LEAVE_ANYCAST");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_LEAVE_ANYCAST, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_LEAVE_ANYCAST");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_LEAVE_ANYCAST 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_LEAVE_ANYCAST_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_LEAVE_ANYCAST_NAME "ipv6_leave_anycast"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_LEAVE_ANYCAST_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_LEAVE_ANYCAST_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_LEAVE_ANYCAST_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_LEAVE_ANYCAST_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_LEAVE_ANYCAST_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_LEAVE_ANYCAST_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_LEAVE_ANYCAST"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_LEAVE_GROUP" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_LEAVE_GROUP... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_LEAVE_GROUP, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_LEAVE_GROUP");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_LEAVE_GROUP, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_LEAVE_GROUP");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_LEAVE_GROUP 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_LEAVE_GROUP_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_LEAVE_GROUP_NAME "ipv6_leave_group"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_LEAVE_GROUP_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_LEAVE_GROUP_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_LEAVE_GROUP_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_LEAVE_GROUP_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_LEAVE_GROUP_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_LEAVE_GROUP_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_LEAVE_GROUP"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_MINHOPCOUNT" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_MINHOPCOUNT... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_MINHOPCOUNT, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_MINHOPCOUNT");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_MINHOPCOUNT, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_MINHOPCOUNT");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_MINHOPCOUNT 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_MINHOPCOUNT_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_MINHOPCOUNT_NAME "ipv6_minhopcount"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_MINHOPCOUNT_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_MINHOPCOUNT_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_MINHOPCOUNT_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_MINHOPCOUNT_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_MINHOPCOUNT_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_MINHOPCOUNT_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_MINHOPCOUNT"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_MTU" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_MTU... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_MTU, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_MTU");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_MTU, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_MTU");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_MTU 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_MTU_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_MTU_NAME "ipv6_mtu"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_MTU_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_MTU_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_MTU_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_MTU_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_MTU_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_MTU_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_MTU"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_MTU_DISCOVER" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_MTU_DISCOVER... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_MTU_DISCOVER, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_MTU_DISCOVER");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_MTU_DISCOVER, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_MTU_DISCOVER");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_MTU_DISCOVER 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_MTU_DISCOVER_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_MTU_DISCOVER_NAME "ipv6_mtu_discover"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_MTU_DISCOVER_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_MTU_DISCOVER_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_MTU_DISCOVER_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_MTU_DISCOVER_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_MTU_DISCOVER_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_MTU_DISCOVER_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_MTU_DISCOVER"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_NEXTHOP" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_NEXTHOP... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_NEXTHOP, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_NEXTHOP");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_NEXTHOP, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_NEXTHOP");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_NEXTHOP 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_NEXTHOP_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_NEXTHOP_NAME "ipv6_nexthop"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_NEXTHOP_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_NEXTHOP_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_NEXTHOP_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_NEXTHOP_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_NEXTHOP_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_NEXTHOP_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_NEXTHOP"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_ORIGDSTADDR" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_ORIGDSTADDR... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_ORIGDSTADDR, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_ORIGDSTADDR");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_ORIGDSTADDR, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_ORIGDSTADDR");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_ORIGDSTADDR 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ORIGDSTADDR_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ORIGDSTADDR_NAME "ipv6_origdstaddr"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ORIGDSTADDR_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ORIGDSTADDR_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ORIGDSTADDR_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ORIGDSTADDR_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ORIGDSTADDR_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ORIGDSTADDR_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_ORIGDSTADDR"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_PATHMTU" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_PATHMTU... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_PATHMTU, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_PATHMTU");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_PATHMTU, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_PATHMTU");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_PATHMTU 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_PATHMTU_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_PATHMTU_NAME "ipv6_pathmtu"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_PATHMTU_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_PATHMTU_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_PATHMTU_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_PATHMTU_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_PATHMTU_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_PATHMTU_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_PATHMTU"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_PIPEX" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_PIPEX... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_PIPEX, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_PIPEX");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_PIPEX, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_PIPEX");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_PIPEX 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_PIPEX_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_PIPEX_NAME "ipv6_pipex"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_PIPEX_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_PIPEX_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_PIPEX_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_PIPEX_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_PIPEX_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_PIPEX_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_PIPEX"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_PKTINFO" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_PKTINFO... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_PKTINFO, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_PKTINFO");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_PKTINFO, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_PKTINFO");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_PKTINFO 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_PKTINFO_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_PKTINFO_NAME "ipv6_pktinfo"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_PKTINFO_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_PKTINFO_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_PKTINFO_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_PKTINFO_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_PKTINFO_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_PKTINFO_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_PKTINFO"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_PORTRANGE" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_PORTRANGE... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_PORTRANGE, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_PORTRANGE");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_PORTRANGE, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_PORTRANGE");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_PORTRANGE 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_PORTRANGE_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_PORTRANGE_NAME "ipv6_portrange"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_PORTRANGE_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_PORTRANGE_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_PORTRANGE_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_PORTRANGE_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_PORTRANGE_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_PORTRANGE_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_PORTRANGE"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_RETOPTS" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_RETOPTS... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_RETOPTS, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_RETOPTS");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_RETOPTS, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_RETOPTS");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_RETOPTS 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RETOPTS_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RETOPTS_NAME "ipv6_retopts"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RETOPTS_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RETOPTS_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RETOPTS_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RETOPTS_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RETOPTS_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RETOPTS_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_RETOPTS"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_ROUTER_ALERT" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_ROUTER_ALERT... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_ROUTER_ALERT, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_ROUTER_ALERT");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_ROUTER_ALERT, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_ROUTER_ALERT");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_ROUTER_ALERT 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ROUTER_ALERT_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ROUTER_ALERT_NAME "ipv6_router_alert"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ROUTER_ALERT_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ROUTER_ALERT_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ROUTER_ALERT_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ROUTER_ALERT_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ROUTER_ALERT_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ROUTER_ALERT_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_ROUTER_ALERT"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_RTHDR" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_RTHDR... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_RTHDR, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_RTHDR");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_RTHDR, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_RTHDR");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_RTHDR 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RTHDR_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RTHDR_NAME "ipv6_rthdr"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RTHDR_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RTHDR_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RTHDR_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RTHDR_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RTHDR_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RTHDR_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_RTHDR"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_RTHDRDSTOPTS" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_RTHDRDSTOPTS... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_RTHDRDSTOPTS, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_RTHDRDSTOPTS");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_RTHDRDSTOPTS, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_RTHDRDSTOPTS");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_RTHDRDSTOPTS 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RTHDRDSTOPTS_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RTHDRDSTOPTS_NAME "ipv6_rthdrdstopts"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RTHDRDSTOPTS_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RTHDRDSTOPTS_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RTHDRDSTOPTS_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RTHDRDSTOPTS_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RTHDRDSTOPTS_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RTHDRDSTOPTS_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_RTHDRDSTOPTS"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_TCLASS" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_TCLASS... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_TCLASS, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_TCLASS");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_TCLASS, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_TCLASS");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_TCLASS 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_TCLASS_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_TCLASS_NAME "ipv6_tclass"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_TCLASS_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_TCLASS_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_TCLASS_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_TCLASS_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_TCLASS_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_TCLASS_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_TCLASS"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_TRANSPARENT" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_TRANSPARENT... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_TRANSPARENT, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_TRANSPARENT");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_TRANSPARENT, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_TRANSPARENT");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_TRANSPARENT 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_TRANSPARENT_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_TRANSPARENT_NAME "ipv6_transparent"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_TRANSPARENT_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_TRANSPARENT_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_TRANSPARENT_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_TRANSPARENT_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_TRANSPARENT_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_TRANSPARENT_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_TRANSPARENT"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_UNICAST_HOPS" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_UNICAST_HOPS... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_UNICAST_HOPS, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_UNICAST_HOPS");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_UNICAST_HOPS, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_UNICAST_HOPS");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_UNICAST_HOPS 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_UNICAST_HOPS_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_UNICAST_HOPS_NAME "ipv6_unicast_hops"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_UNICAST_HOPS_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_UNICAST_HOPS_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_UNICAST_HOPS_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_UNICAST_HOPS_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_UNICAST_HOPS_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_UNICAST_HOPS_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_UNICAST_HOPS"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_USE_MIN_MTU" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_USE_MIN_MTU... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_USE_MIN_MTU, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_USE_MIN_MTU");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_USE_MIN_MTU, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_USE_MIN_MTU");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_USE_MIN_MTU 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_USE_MIN_MTU_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_USE_MIN_MTU_NAME "ipv6_use_min_mtu"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_USE_MIN_MTU_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_USE_MIN_MTU_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_USE_MIN_MTU_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_USE_MIN_MTU_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_USE_MIN_MTU_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_USE_MIN_MTU_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_USE_MIN_MTU"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_V6ONLY" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_V6ONLY... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_V6ONLY, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_V6ONLY");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_V6ONLY, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_V6ONLY");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_V6ONLY 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_V6ONLY_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_V6ONLY_NAME "ipv6_v6only"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_V6ONLY_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_V6ONLY_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_V6ONLY_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_V6ONLY_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_V6ONLY_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_V6ONLY_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_V6ONLY"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_XFRM_POLICY" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_XFRM_POLICY... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_XFRM_POLICY, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_XFRM_POLICY");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_XFRM_POLICY, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_XFRM_POLICY");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_XFRM_POLICY 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_XFRM_POLICY_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_XFRM_POLICY_NAME "ipv6_xfrm_policy"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_XFRM_POLICY_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_XFRM_POLICY_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_XFRM_POLICY_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_XFRM_POLICY_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_XFRM_POLICY_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_XFRM_POLICY_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_XFRM_POLICY"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_MIPDSTOPTS" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_MIPDSTOPTS... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_MIPDSTOPTS, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_MIPDSTOPTS");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_MIPDSTOPTS, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_MIPDSTOPTS");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_MIPDSTOPTS 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_MIPDSTOPTS_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_MIPDSTOPTS_NAME "ipv6_mipdstopts"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_MIPDSTOPTS_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_MIPDSTOPTS_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_MIPDSTOPTS_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_MIPDSTOPTS_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_MIPDSTOPTS_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_MIPDSTOPTS_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_MIPDSTOPTS"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_AIXRAWSOCKET" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_AIXRAWSOCKET... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_AIXRAWSOCKET, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_AIXRAWSOCKET");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_AIXRAWSOCKET, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_AIXRAWSOCKET");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_AIXRAWSOCKET 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_AIXRAWSOCKET_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_AIXRAWSOCKET_NAME "ipv6_aixrawsocket"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_AIXRAWSOCKET_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_AIXRAWSOCKET_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_AIXRAWSOCKET_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_AIXRAWSOCKET_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_AIXRAWSOCKET_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_AIXRAWSOCKET_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_AIXRAWSOCKET"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi

OKSOCKOPTS="$SOCKOPTS" #user-settable socket options

ALLSOCKOPTS="$SOCKOPTS"

unset SOCKOPTS #default to no TCP_IPA support
ac_fn_c_check_header_mongrel "$LINENO" "linux/bbkernel.h" "ac_cv_header_linux_bbkernel_h" "$ac_includes_default"
if test "x$ac_cv_header_linux_bbkernel_h" = xyes; then :
  #found TCP_IPA header, cannot include headers during build
 #so determine values of expected defines.
 SOCKOPTS="TCP_IPA"

   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPA_VERSION value" >&5
$as_echo_n "checking for IPA_VERSION value... " >&6; }
   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_fn_error $? "cannot run test program while cross compiling
See \`config.log' for more details" "$LINENO" 5; }
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <linux/bbkernel.h>


#include <stdio.h>

int
main(void)
{
   FILE *fp;
   int val;

   val = IPA_VERSION;

   if ((fp = fopen("conftest.out", "w")) == NULL) {
      perror("fopen");
      exit(-1);
   }
   fprintf(fp, "%ld\n", val);
   fclose(fp);

   return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
  ac_cv_definedint=$(cat conftest.out)
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define SOCKS_HOSTID_VERSION $ac_cv_definedint
_ACEOF

else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi


   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MAX_IPA value" >&5
$as_echo_n "checking for MAX_IPA value... " >&6; }
   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_fn_error $? "cannot run test program while cross compiling
See \`config.log' for more details" "$LINENO" 5; }
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <linux/bbkernel.h>


#include <stdio.h>

int
main(void)
{
   FILE *fp;
   int val;

   val = MAX_IPA;

   if ((fp = fopen("conftest.out", "w")) == NULL) {
      perror("fopen");
      exit(-1);
   }
   fprintf(fp, "%ld\n", val);
   fclose(fp);

   return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
  ac_cv_definedint=$(cat conftest.out)
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_MAX_HOSTIDS $ac_cv_definedint
_ACEOF

else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi


   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for TCP_IPA value" >&5
$as_echo_n "checking for TCP_IPA value... " >&6; }
   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_fn_error $? "cannot run test program while cross compiling
See \`config.log' for more details" "$LINENO" 5; }
else
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#include <linux/tcp.h>


#include <stdio.h>

int
main(void)
{
   FILE *fp;
   int val;

   val = TCP_IPA;

   if ((fp = fopen("conftest.out", "w")) == NULL) {
      perror("fopen");
      exit(-1);
   }
   fprintf(fp, "%ld\n", val);
   fclose(fp);

   return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"; then :
  ac_cv_definedint=$(cat conftest.out)
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define TCP_IPA $ac_cv_definedint
_ACEOF

else
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi


$as_echo "#define HAVE_TCP_IPA 1" >>confdefs.h

$as_echo "#define SOCKS_TCP_IPA_LVL IPPROTO_TCP" >>confdefs.h

$as_echo "#define SOCKS_TCP_IPA_NAME \"tcp_ipa\"" >>confdefs.h

$as_echo "#define SOCKS_TCP_IPA_IPV4 1" >>confdefs.h

$as_echo "#define SOCKS_TCP_IPA_IPV6 0" >>confdefs.h

fi



HOSTIDSOCKOPTS="$SOCKOPTS"

ALLSOCKOPTS="$ALLSOCKOPTS $SOCKOPTS"

#options that are not settable by users
unset SOCKOPTS
#socket level
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOL_SOCKET socket option SO_ERROR" >&5
$as_echo_n "checking for SOL_SOCKET socket option SO_ERROR... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_ERROR, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_ERROR");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_ERROR, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_ERROR");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_SO_ERROR 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_ERROR_LVL SOL_SOCKET
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_ERROR_NAME "so_error"
_ACEOF
    if test x"SOL_SOCKET" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_ERROR_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_ERROR_IPV6 0
_ACEOF
    elif test x"SOL_SOCKET" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_ERROR_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_ERROR_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_ERROR_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_ERROR_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }SO_ERROR"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi #not usable
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOL_SOCKET socket option SO_REUSEADDR" >&5
$as_echo_n "checking for SOL_SOCKET socket option SO_REUSEADDR... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_REUSEADDR, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_REUSEADDR");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_REUSEADDR, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_REUSEADDR");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_SO_REUSEADDR 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_REUSEADDR_LVL SOL_SOCKET
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_REUSEADDR_NAME "so_reuseaddr"
_ACEOF
    if test x"SOL_SOCKET" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_REUSEADDR_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_REUSEADDR_IPV6 0
_ACEOF
    elif test x"SOL_SOCKET" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_REUSEADDR_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_REUSEADDR_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_REUSEADDR_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_REUSEADDR_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }SO_REUSEADDR"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi #not usable
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOL_SOCKET socket option SO_REUSEPORT" >&5
$as_echo_n "checking for SOL_SOCKET socket option SO_REUSEPORT... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_REUSEPORT, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_REUSEPORT");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_REUSEPORT, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_REUSEPORT");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_SO_REUSEPORT 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_REUSEPORT_LVL SOL_SOCKET
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_REUSEPORT_NAME "so_reuseport"
_ACEOF
    if test x"SOL_SOCKET" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_REUSEPORT_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_REUSEPORT_IPV6 0
_ACEOF
    elif test x"SOL_SOCKET" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_REUSEPORT_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_REUSEPORT_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_REUSEPORT_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_REUSEPORT_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }SO_REUSEPORT"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi #not usable
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOL_SOCKET socket option SO_ACCEPTCONN" >&5
$as_echo_n "checking for SOL_SOCKET socket option SO_ACCEPTCONN... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_ACCEPTCONN, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_ACCEPTCONN");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_ACCEPTCONN, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_ACCEPTCONN");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_SO_ACCEPTCONN 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_ACCEPTCONN_LVL SOL_SOCKET
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_ACCEPTCONN_NAME "so_acceptconn"
_ACEOF
    if test x"SOL_SOCKET" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_ACCEPTCONN_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_ACCEPTCONN_IPV6 0
_ACEOF
    elif test x"SOL_SOCKET" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_ACCEPTCONN_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_ACCEPTCONN_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_ACCEPTCONN_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_ACCEPTCONN_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }SO_ACCEPTCONN"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi #not usable
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOL_SOCKET socket option SO_KERNACCEPT" >&5
$as_echo_n "checking for SOL_SOCKET socket option SO_KERNACCEPT... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_KERNACCEPT, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_KERNACCEPT");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_KERNACCEPT, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_KERNACCEPT");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_SO_KERNACCEPT 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_KERNACCEPT_LVL SOL_SOCKET
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_KERNACCEPT_NAME "so_kernaccept"
_ACEOF
    if test x"SOL_SOCKET" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_KERNACCEPT_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_KERNACCEPT_IPV6 0
_ACEOF
    elif test x"SOL_SOCKET" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_KERNACCEPT_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_KERNACCEPT_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_KERNACCEPT_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_KERNACCEPT_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }SO_KERNACCEPT"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi #likely not usable
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOL_SOCKET socket option SO_PEERID" >&5
$as_echo_n "checking for SOL_SOCKET socket option SO_PEERID... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_PEERID, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_PEERID");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_PEERID, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_PEERID");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_SO_PEERID 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_PEERID_LVL SOL_SOCKET
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_PEERID_NAME "so_peerid"
_ACEOF
    if test x"SOL_SOCKET" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_PEERID_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_PEERID_IPV6 0
_ACEOF
    elif test x"SOL_SOCKET" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_PEERID_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_PEERID_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_PEERID_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_PEERID_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }SO_PEERID"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi #likely not usable
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOL_SOCKET socket option SO_TYPE" >&5
$as_echo_n "checking for SOL_SOCKET socket option SO_TYPE... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_TYPE, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_TYPE");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_TYPE, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_TYPE");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_SO_TYPE 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_TYPE_LVL SOL_SOCKET
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_TYPE_NAME "so_type"
_ACEOF
    if test x"SOL_SOCKET" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_TYPE_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_TYPE_IPV6 0
_ACEOF
    elif test x"SOL_SOCKET" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_TYPE_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_TYPE_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_TYPE_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_TYPE_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }SO_TYPE"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi #likely not usable
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOL_SOCKET socket option SO_USE_IFBUFS" >&5
$as_echo_n "checking for SOL_SOCKET socket option SO_USE_IFBUFS... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_USE_IFBUFS, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_USE_IFBUFS");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (SOL_SOCKET == SOL_SOCKET || SOL_SOCKET == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (SOL_SOCKET == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (SOL_SOCKET == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (SOL_SOCKET == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: SOL_SOCKET");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, SOL_SOCKET, SO_USE_IFBUFS, &optval, optlen) < 0) {
      perror("setsockopt: SOL_SOCKET SO_USE_IFBUFS");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_SO_USE_IFBUFS 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_USE_IFBUFS_LVL SOL_SOCKET
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_USE_IFBUFS_NAME "so_use_ifbufs"
_ACEOF
    if test x"SOL_SOCKET" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_USE_IFBUFS_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_USE_IFBUFS_IPV6 0
_ACEOF
    elif test x"SOL_SOCKET" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_USE_IFBUFS_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_USE_IFBUFS_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_USE_IFBUFS_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_SO_USE_IFBUFS_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }SO_USE_IFBUFS"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi #likely not usable

#ipv4 level
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IP socket option IP_ADDRFORM" >&5
$as_echo_n "checking for IPPROTO_IP socket option IP_ADDRFORM... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_ADDRFORM, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_ADDRFORM");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_ADDRFORM, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_ADDRFORM");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IP_ADDRFORM 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_ADDRFORM_LVL IPPROTO_IP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_ADDRFORM_NAME "ip_addrform"
_ACEOF
    if test x"IPPROTO_IP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_ADDRFORM_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_ADDRFORM_IPV6 0
_ACEOF
    elif test x"IPPROTO_IP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_ADDRFORM_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_ADDRFORM_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_ADDRFORM_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_ADDRFORM_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IP_ADDRFORM"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi #not usable
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IP socket option IP_ADD_MEMBERSHIP" >&5
$as_echo_n "checking for IPPROTO_IP socket option IP_ADD_MEMBERSHIP... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_ADD_MEMBERSHIP, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_ADD_MEMBERSHIP");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_ADD_MEMBERSHIP, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_ADD_MEMBERSHIP");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IP_ADD_MEMBERSHIP 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_ADD_MEMBERSHIP_LVL IPPROTO_IP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_ADD_MEMBERSHIP_NAME "ip_add_membership"
_ACEOF
    if test x"IPPROTO_IP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_ADD_MEMBERSHIP_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_ADD_MEMBERSHIP_IPV6 0
_ACEOF
    elif test x"IPPROTO_IP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_ADD_MEMBERSHIP_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_ADD_MEMBERSHIP_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_ADD_MEMBERSHIP_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_ADD_MEMBERSHIP_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IP_ADD_MEMBERSHIP"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi #likely not usable
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IP socket option IP_ADD_SOURCE_MEMBERSHIP" >&5
$as_echo_n "checking for IPPROTO_IP socket option IP_ADD_SOURCE_MEMBERSHIP... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_ADD_SOURCE_MEMBERSHIP, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_ADD_SOURCE_MEMBERSHIP");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_ADD_SOURCE_MEMBERSHIP, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_ADD_SOURCE_MEMBERSHIP");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IP_ADD_SOURCE_MEMBERSHIP 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_ADD_SOURCE_MEMBERSHIP_LVL IPPROTO_IP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_ADD_SOURCE_MEMBERSHIP_NAME "ip_add_source_membership"
_ACEOF
    if test x"IPPROTO_IP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_ADD_SOURCE_MEMBERSHIP_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_ADD_SOURCE_MEMBERSHIP_IPV6 0
_ACEOF
    elif test x"IPPROTO_IP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_ADD_SOURCE_MEMBERSHIP_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_ADD_SOURCE_MEMBERSHIP_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_ADD_SOURCE_MEMBERSHIP_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_ADD_SOURCE_MEMBERSHIP_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IP_ADD_SOURCE_MEMBERSHIP"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi #not usable
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IP socket option IP_BLOCK_SOURCE" >&5
$as_echo_n "checking for IPPROTO_IP socket option IP_BLOCK_SOURCE... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_BLOCK_SOURCE, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_BLOCK_SOURCE");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_BLOCK_SOURCE, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_BLOCK_SOURCE");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IP_BLOCK_SOURCE 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_BLOCK_SOURCE_LVL IPPROTO_IP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_BLOCK_SOURCE_NAME "ip_block_source"
_ACEOF
    if test x"IPPROTO_IP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_BLOCK_SOURCE_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_BLOCK_SOURCE_IPV6 0
_ACEOF
    elif test x"IPPROTO_IP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_BLOCK_SOURCE_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_BLOCK_SOURCE_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_BLOCK_SOURCE_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_BLOCK_SOURCE_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IP_BLOCK_SOURCE"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi #not usable
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IP socket option IP_DHCPMODE" >&5
$as_echo_n "checking for IPPROTO_IP socket option IP_DHCPMODE... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_DHCPMODE, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_DHCPMODE");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_DHCPMODE, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_DHCPMODE");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IP_DHCPMODE 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_DHCPMODE_LVL IPPROTO_IP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_DHCPMODE_NAME "ip_dhcpmode"
_ACEOF
    if test x"IPPROTO_IP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_DHCPMODE_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_DHCPMODE_IPV6 0
_ACEOF
    elif test x"IPPROTO_IP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_DHCPMODE_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_DHCPMODE_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_DHCPMODE_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_DHCPMODE_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IP_DHCPMODE"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi #likely not usable
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IP socket option IP_DROP_MEMBERSHIP" >&5
$as_echo_n "checking for IPPROTO_IP socket option IP_DROP_MEMBERSHIP... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_DROP_MEMBERSHIP, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_DROP_MEMBERSHIP");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_DROP_MEMBERSHIP, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_DROP_MEMBERSHIP");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IP_DROP_MEMBERSHIP 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_DROP_MEMBERSHIP_LVL IPPROTO_IP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_DROP_MEMBERSHIP_NAME "ip_drop_membership"
_ACEOF
    if test x"IPPROTO_IP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_DROP_MEMBERSHIP_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_DROP_MEMBERSHIP_IPV6 0
_ACEOF
    elif test x"IPPROTO_IP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_DROP_MEMBERSHIP_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_DROP_MEMBERSHIP_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_DROP_MEMBERSHIP_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_DROP_MEMBERSHIP_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IP_DROP_MEMBERSHIP"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi #likely not usable
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IP socket option IP_DROP_MEMBERSHIP" >&5
$as_echo_n "checking for IPPROTO_IP socket option IP_DROP_MEMBERSHIP... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_DROP_MEMBERSHIP, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_DROP_MEMBERSHIP");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_DROP_MEMBERSHIP, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_DROP_MEMBERSHIP");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IP_DROP_MEMBERSHIP 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_DROP_MEMBERSHIP_LVL IPPROTO_IP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_DROP_MEMBERSHIP_NAME "ip_drop_membership"
_ACEOF
    if test x"IPPROTO_IP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_DROP_MEMBERSHIP_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_DROP_MEMBERSHIP_IPV6 0
_ACEOF
    elif test x"IPPROTO_IP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_DROP_MEMBERSHIP_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_DROP_MEMBERSHIP_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_DROP_MEMBERSHIP_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_DROP_MEMBERSHIP_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IP_DROP_MEMBERSHIP"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi #not usable
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IP socket option IP_DROP_SOURCE_MEMBERSHIP" >&5
$as_echo_n "checking for IPPROTO_IP socket option IP_DROP_SOURCE_MEMBERSHIP... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_DROP_SOURCE_MEMBERSHIP, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_DROP_SOURCE_MEMBERSHIP");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_DROP_SOURCE_MEMBERSHIP, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_DROP_SOURCE_MEMBERSHIP");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IP_DROP_SOURCE_MEMBERSHIP 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_DROP_SOURCE_MEMBERSHIP_LVL IPPROTO_IP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_DROP_SOURCE_MEMBERSHIP_NAME "ip_drop_source_membership"
_ACEOF
    if test x"IPPROTO_IP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_DROP_SOURCE_MEMBERSHIP_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_DROP_SOURCE_MEMBERSHIP_IPV6 0
_ACEOF
    elif test x"IPPROTO_IP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_DROP_SOURCE_MEMBERSHIP_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_DROP_SOURCE_MEMBERSHIP_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_DROP_SOURCE_MEMBERSHIP_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_DROP_SOURCE_MEMBERSHIP_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IP_DROP_SOURCE_MEMBERSHIP"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi #not usable
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IP socket option IP_DROP_SOURCE_MEMBERSHIP" >&5
$as_echo_n "checking for IPPROTO_IP socket option IP_DROP_SOURCE_MEMBERSHIP... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_DROP_SOURCE_MEMBERSHIP, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_DROP_SOURCE_MEMBERSHIP");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_DROP_SOURCE_MEMBERSHIP, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_DROP_SOURCE_MEMBERSHIP");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IP_DROP_SOURCE_MEMBERSHIP 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_DROP_SOURCE_MEMBERSHIP_LVL IPPROTO_IP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_DROP_SOURCE_MEMBERSHIP_NAME "ip_drop_source_membership"
_ACEOF
    if test x"IPPROTO_IP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_DROP_SOURCE_MEMBERSHIP_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_DROP_SOURCE_MEMBERSHIP_IPV6 0
_ACEOF
    elif test x"IPPROTO_IP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_DROP_SOURCE_MEMBERSHIP_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_DROP_SOURCE_MEMBERSHIP_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_DROP_SOURCE_MEMBERSHIP_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_DROP_SOURCE_MEMBERSHIP_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IP_DROP_SOURCE_MEMBERSHIP"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi #not usable
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IP socket option IP_FINDPMTU" >&5
$as_echo_n "checking for IPPROTO_IP socket option IP_FINDPMTU... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_FINDPMTU, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_FINDPMTU");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_FINDPMTU, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_FINDPMTU");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IP_FINDPMTU 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_FINDPMTU_LVL IPPROTO_IP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_FINDPMTU_NAME "ip_findpmtu"
_ACEOF
    if test x"IPPROTO_IP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_FINDPMTU_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_FINDPMTU_IPV6 0
_ACEOF
    elif test x"IPPROTO_IP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_FINDPMTU_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_FINDPMTU_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_FINDPMTU_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_FINDPMTU_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IP_FINDPMTU"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi #likely not usable
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IP socket option IP_HDRINCL" >&5
$as_echo_n "checking for IPPROTO_IP socket option IP_HDRINCL... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_HDRINCL, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_HDRINCL");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_HDRINCL, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_HDRINCL");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IP_HDRINCL 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_HDRINCL_LVL IPPROTO_IP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_HDRINCL_NAME "ip_hdrincl"
_ACEOF
    if test x"IPPROTO_IP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_HDRINCL_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_HDRINCL_IPV6 0
_ACEOF
    elif test x"IPPROTO_IP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_HDRINCL_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_HDRINCL_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_HDRINCL_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_HDRINCL_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IP_HDRINCL"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi #not usable
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IP socket option IP_HDRINCL" >&5
$as_echo_n "checking for IPPROTO_IP socket option IP_HDRINCL... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_HDRINCL, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_HDRINCL");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_HDRINCL, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_HDRINCL");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IP_HDRINCL 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_HDRINCL_LVL IPPROTO_IP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_HDRINCL_NAME "ip_hdrincl"
_ACEOF
    if test x"IPPROTO_IP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_HDRINCL_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_HDRINCL_IPV6 0
_ACEOF
    elif test x"IPPROTO_IP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_HDRINCL_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_HDRINCL_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_HDRINCL_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_HDRINCL_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IP_HDRINCL"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi #not usable
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IP socket option IP_MULTICAST_HOPS" >&5
$as_echo_n "checking for IPPROTO_IP socket option IP_MULTICAST_HOPS... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_MULTICAST_HOPS, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_MULTICAST_HOPS");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_MULTICAST_HOPS, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_MULTICAST_HOPS");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IP_MULTICAST_HOPS 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_MULTICAST_HOPS_LVL IPPROTO_IP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_MULTICAST_HOPS_NAME "ip_multicast_hops"
_ACEOF
    if test x"IPPROTO_IP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_MULTICAST_HOPS_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_MULTICAST_HOPS_IPV6 0
_ACEOF
    elif test x"IPPROTO_IP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_MULTICAST_HOPS_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_MULTICAST_HOPS_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_MULTICAST_HOPS_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_MULTICAST_HOPS_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IP_MULTICAST_HOPS"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi #not usable
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IP socket option IP_MULTICAST_IF" >&5
$as_echo_n "checking for IPPROTO_IP socket option IP_MULTICAST_IF... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_MULTICAST_IF, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_MULTICAST_IF");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_MULTICAST_IF, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_MULTICAST_IF");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IP_MULTICAST_IF 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_MULTICAST_IF_LVL IPPROTO_IP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_MULTICAST_IF_NAME "ip_multicast_if"
_ACEOF
    if test x"IPPROTO_IP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_MULTICAST_IF_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_MULTICAST_IF_IPV6 0
_ACEOF
    elif test x"IPPROTO_IP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_MULTICAST_IF_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_MULTICAST_IF_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_MULTICAST_IF_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_MULTICAST_IF_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IP_MULTICAST_IF"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi #not usable
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IP socket option IP_MULTICAST_LOOP" >&5
$as_echo_n "checking for IPPROTO_IP socket option IP_MULTICAST_LOOP... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_MULTICAST_LOOP, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_MULTICAST_LOOP");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_MULTICAST_LOOP, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_MULTICAST_LOOP");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IP_MULTICAST_LOOP 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_MULTICAST_LOOP_LVL IPPROTO_IP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_MULTICAST_LOOP_NAME "ip_multicast_loop"
_ACEOF
    if test x"IPPROTO_IP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_MULTICAST_LOOP_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_MULTICAST_LOOP_IPV6 0
_ACEOF
    elif test x"IPPROTO_IP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_MULTICAST_LOOP_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_MULTICAST_LOOP_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_MULTICAST_LOOP_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_MULTICAST_LOOP_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IP_MULTICAST_LOOP"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi #not usable
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IP socket option IP_MULTICAST_TTL" >&5
$as_echo_n "checking for IPPROTO_IP socket option IP_MULTICAST_TTL... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_MULTICAST_TTL, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_MULTICAST_TTL");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_MULTICAST_TTL, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_MULTICAST_TTL");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IP_MULTICAST_TTL 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_MULTICAST_TTL_LVL IPPROTO_IP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_MULTICAST_TTL_NAME "ip_multicast_ttl"
_ACEOF
    if test x"IPPROTO_IP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_MULTICAST_TTL_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_MULTICAST_TTL_IPV6 0
_ACEOF
    elif test x"IPPROTO_IP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_MULTICAST_TTL_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_MULTICAST_TTL_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_MULTICAST_TTL_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_MULTICAST_TTL_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IP_MULTICAST_TTL"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi #not usable
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IP socket option IP_OPTIONS" >&5
$as_echo_n "checking for IPPROTO_IP socket option IP_OPTIONS... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_OPTIONS, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_OPTIONS");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_OPTIONS, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_OPTIONS");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IP_OPTIONS 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_OPTIONS_LVL IPPROTO_IP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_OPTIONS_NAME "ip_options"
_ACEOF
    if test x"IPPROTO_IP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_OPTIONS_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_OPTIONS_IPV6 0
_ACEOF
    elif test x"IPPROTO_IP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_OPTIONS_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_OPTIONS_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_OPTIONS_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_OPTIONS_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IP_OPTIONS"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi #likely not usable/unsupported type
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IP socket option IP_PMTUAGE" >&5
$as_echo_n "checking for IPPROTO_IP socket option IP_PMTUAGE... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_PMTUAGE, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_PMTUAGE");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_PMTUAGE, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_PMTUAGE");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IP_PMTUAGE 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_PMTUAGE_LVL IPPROTO_IP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_PMTUAGE_NAME "ip_pmtuage"
_ACEOF
    if test x"IPPROTO_IP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_PMTUAGE_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_PMTUAGE_IPV6 0
_ACEOF
    elif test x"IPPROTO_IP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_PMTUAGE_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_PMTUAGE_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_PMTUAGE_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_PMTUAGE_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IP_PMTUAGE"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi #likely not usable
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IP socket option IP_RECVDSTADDR" >&5
$as_echo_n "checking for IPPROTO_IP socket option IP_RECVDSTADDR... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_RECVDSTADDR, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_RECVDSTADDR");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_RECVDSTADDR, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_RECVDSTADDR");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IP_RECVDSTADDR 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVDSTADDR_LVL IPPROTO_IP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVDSTADDR_NAME "ip_recvdstaddr"
_ACEOF
    if test x"IPPROTO_IP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVDSTADDR_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVDSTADDR_IPV6 0
_ACEOF
    elif test x"IPPROTO_IP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVDSTADDR_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVDSTADDR_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVDSTADDR_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVDSTADDR_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IP_RECVDSTADDR"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi #not usable
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IP socket option IP_RECVIF" >&5
$as_echo_n "checking for IPPROTO_IP socket option IP_RECVIF... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_RECVIF, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_RECVIF");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_RECVIF, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_RECVIF");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IP_RECVIF 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVIF_LVL IPPROTO_IP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVIF_NAME "ip_recvif"
_ACEOF
    if test x"IPPROTO_IP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVIF_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVIF_IPV6 0
_ACEOF
    elif test x"IPPROTO_IP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVIF_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVIF_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVIF_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVIF_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IP_RECVIF"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi #not usable
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IP socket option IP_RECVIFINFO" >&5
$as_echo_n "checking for IPPROTO_IP socket option IP_RECVIFINFO... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_RECVIFINFO, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_RECVIFINFO");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_RECVIFINFO, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_RECVIFINFO");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IP_RECVIFINFO 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVIFINFO_LVL IPPROTO_IP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVIFINFO_NAME "ip_recvifinfo"
_ACEOF
    if test x"IPPROTO_IP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVIFINFO_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVIFINFO_IPV6 0
_ACEOF
    elif test x"IPPROTO_IP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVIFINFO_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVIFINFO_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVIFINFO_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVIFINFO_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IP_RECVIFINFO"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi #not usable
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IP socket option IP_RECVINTERFACE" >&5
$as_echo_n "checking for IPPROTO_IP socket option IP_RECVINTERFACE... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_RECVINTERFACE, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_RECVINTERFACE");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_RECVINTERFACE, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_RECVINTERFACE");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IP_RECVINTERFACE 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVINTERFACE_LVL IPPROTO_IP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVINTERFACE_NAME "ip_recvinterface"
_ACEOF
    if test x"IPPROTO_IP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVINTERFACE_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVINTERFACE_IPV6 0
_ACEOF
    elif test x"IPPROTO_IP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVINTERFACE_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVINTERFACE_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVINTERFACE_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVINTERFACE_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IP_RECVINTERFACE"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi #likely not usable
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IP socket option IP_RECVMACHDR" >&5
$as_echo_n "checking for IPPROTO_IP socket option IP_RECVMACHDR... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_RECVMACHDR, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_RECVMACHDR");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_RECVMACHDR, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_RECVMACHDR");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IP_RECVMACHDR 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVMACHDR_LVL IPPROTO_IP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVMACHDR_NAME "ip_recvmachdr"
_ACEOF
    if test x"IPPROTO_IP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVMACHDR_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVMACHDR_IPV6 0
_ACEOF
    elif test x"IPPROTO_IP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVMACHDR_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVMACHDR_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVMACHDR_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVMACHDR_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IP_RECVMACHDR"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi #not usable
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IP socket option IP_RECVTOS" >&5
$as_echo_n "checking for IPPROTO_IP socket option IP_RECVTOS... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_RECVTOS, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_RECVTOS");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_RECVTOS, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_RECVTOS");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IP_RECVTOS 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVTOS_LVL IPPROTO_IP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVTOS_NAME "ip_recvtos"
_ACEOF
    if test x"IPPROTO_IP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVTOS_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVTOS_IPV6 0
_ACEOF
    elif test x"IPPROTO_IP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVTOS_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVTOS_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVTOS_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVTOS_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IP_RECVTOS"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi #not usable
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IP socket option IP_RECVTTL" >&5
$as_echo_n "checking for IPPROTO_IP socket option IP_RECVTTL... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_RECVTTL, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_RECVTTL");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_RECVTTL, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_RECVTTL");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IP_RECVTTL 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVTTL_LVL IPPROTO_IP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVTTL_NAME "ip_recvttl"
_ACEOF
    if test x"IPPROTO_IP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVTTL_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVTTL_IPV6 0
_ACEOF
    elif test x"IPPROTO_IP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVTTL_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVTTL_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVTTL_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVTTL_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IP_RECVTTL"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi #likely not usable
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IP socket option IP_RECVTTL" >&5
$as_echo_n "checking for IPPROTO_IP socket option IP_RECVTTL... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_RECVTTL, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_RECVTTL");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_RECVTTL, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_RECVTTL");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IP_RECVTTL 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVTTL_LVL IPPROTO_IP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVTTL_NAME "ip_recvttl"
_ACEOF
    if test x"IPPROTO_IP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVTTL_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVTTL_IPV6 0
_ACEOF
    elif test x"IPPROTO_IP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVTTL_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVTTL_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVTTL_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_RECVTTL_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IP_RECVTTL"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi #not usable
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IP socket option IP_SOURCE_FILTER" >&5
$as_echo_n "checking for IPPROTO_IP socket option IP_SOURCE_FILTER... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_SOURCE_FILTER, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_SOURCE_FILTER");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_SOURCE_FILTER, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_SOURCE_FILTER");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IP_SOURCE_FILTER 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_SOURCE_FILTER_LVL IPPROTO_IP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_SOURCE_FILTER_NAME "ip_source_filter"
_ACEOF
    if test x"IPPROTO_IP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_SOURCE_FILTER_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_SOURCE_FILTER_IPV6 0
_ACEOF
    elif test x"IPPROTO_IP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_SOURCE_FILTER_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_SOURCE_FILTER_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_SOURCE_FILTER_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_SOURCE_FILTER_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IP_SOURCE_FILTER"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi #not usable
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IP socket option IP_UNBLOCK_SOURCE" >&5
$as_echo_n "checking for IPPROTO_IP socket option IP_UNBLOCK_SOURCE... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_UNBLOCK_SOURCE, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_UNBLOCK_SOURCE");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_UNBLOCK_SOURCE, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_UNBLOCK_SOURCE");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IP_UNBLOCK_SOURCE 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_UNBLOCK_SOURCE_LVL IPPROTO_IP
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_UNBLOCK_SOURCE_NAME "ip_unblock_source"
_ACEOF
    if test x"IPPROTO_IP" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_UNBLOCK_SOURCE_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_UNBLOCK_SOURCE_IPV6 0
_ACEOF
    elif test x"IPPROTO_IP" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_UNBLOCK_SOURCE_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_UNBLOCK_SOURCE_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_UNBLOCK_SOURCE_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_UNBLOCK_SOURCE_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IP_UNBLOCK_SOURCE"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi #not usable

#ipv6 level (XXX likely more)
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_MULTICAST_HOPS" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_MULTICAST_HOPS... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_MULTICAST_HOPS, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_MULTICAST_HOPS");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_MULTICAST_HOPS, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_MULTICAST_HOPS");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_MULTICAST_HOPS 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_MULTICAST_HOPS_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_MULTICAST_HOPS_NAME "ipv6_multicast_hops"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_MULTICAST_HOPS_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_MULTICAST_HOPS_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_MULTICAST_HOPS_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_MULTICAST_HOPS_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_MULTICAST_HOPS_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_MULTICAST_HOPS_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_MULTICAST_HOPS"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_MULTICAST_IF" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_MULTICAST_IF... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_MULTICAST_IF, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_MULTICAST_IF");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_MULTICAST_IF, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_MULTICAST_IF");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_MULTICAST_IF 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_MULTICAST_IF_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_MULTICAST_IF_NAME "ipv6_multicast_if"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_MULTICAST_IF_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_MULTICAST_IF_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_MULTICAST_IF_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_MULTICAST_IF_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_MULTICAST_IF_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_MULTICAST_IF_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_MULTICAST_IF"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_MULTICAST_LOOP" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_MULTICAST_LOOP... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_MULTICAST_LOOP, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_MULTICAST_LOOP");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_MULTICAST_LOOP, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_MULTICAST_LOOP");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_MULTICAST_LOOP 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_MULTICAST_LOOP_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_MULTICAST_LOOP_NAME "ipv6_multicast_loop"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_MULTICAST_LOOP_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_MULTICAST_LOOP_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_MULTICAST_LOOP_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_MULTICAST_LOOP_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_MULTICAST_LOOP_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_MULTICAST_LOOP_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_MULTICAST_LOOP"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_AIXRAWSOCKET" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_AIXRAWSOCKET... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_AIXRAWSOCKET, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_AIXRAWSOCKET");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_AIXRAWSOCKET, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_AIXRAWSOCKET");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_AIXRAWSOCKET 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_AIXRAWSOCKET_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_AIXRAWSOCKET_NAME "ipv6_aixrawsocket"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_AIXRAWSOCKET_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_AIXRAWSOCKET_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_AIXRAWSOCKET_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_AIXRAWSOCKET_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_AIXRAWSOCKET_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_AIXRAWSOCKET_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_AIXRAWSOCKET"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi #not usable
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_NOPROBE" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_NOPROBE... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_NOPROBE, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_NOPROBE");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_NOPROBE, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_NOPROBE");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_NOPROBE 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_NOPROBE_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_NOPROBE_NAME "ipv6_noprobe"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_NOPROBE_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_NOPROBE_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_NOPROBE_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_NOPROBE_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_NOPROBE_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_NOPROBE_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_NOPROBE"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi #not usable
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_PKTOPTIONS" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_PKTOPTIONS... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_PKTOPTIONS, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_PKTOPTIONS");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_PKTOPTIONS, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_PKTOPTIONS");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_PKTOPTIONS 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_PKTOPTIONS_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_PKTOPTIONS_NAME "ipv6_pktoptions"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_PKTOPTIONS_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_PKTOPTIONS_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_PKTOPTIONS_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_PKTOPTIONS_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_PKTOPTIONS_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_PKTOPTIONS_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_PKTOPTIONS"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi #not usable
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_RECVHOPS" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_RECVHOPS... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_RECVHOPS, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_RECVHOPS");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_RECVHOPS, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_RECVHOPS");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_RECVHOPS 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVHOPS_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVHOPS_NAME "ipv6_recvhops"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVHOPS_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVHOPS_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVHOPS_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVHOPS_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVHOPS_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVHOPS_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_RECVHOPS"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi #not usable
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_RECVIF" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_RECVIF... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_RECVIF, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_RECVIF");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_RECVIF, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_RECVIF");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_RECVIF 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVIF_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVIF_NAME "ipv6_recvif"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVIF_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVIF_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVIF_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVIF_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVIF_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVIF_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_RECVIF"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi #not usable
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_RECVSRCRT" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_RECVSRCRT... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_RECVSRCRT, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_RECVSRCRT");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_RECVSRCRT, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_RECVSRCRT");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_RECVSRCRT 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVSRCRT_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVSRCRT_NAME "ipv6_recvsrcrt"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVSRCRT_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVSRCRT_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVSRCRT_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVSRCRT_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVSRCRT_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVSRCRT_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_RECVSRCRT"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi #not usable
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_SENDIF" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_SENDIF... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_SENDIF, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_SENDIF");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_SENDIF, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_SENDIF");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_SENDIF 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_SENDIF_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_SENDIF_NAME "ipv6_sendif"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_SENDIF_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_SENDIF_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_SENDIF_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_SENDIF_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_SENDIF_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_SENDIF_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_SENDIF"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi #not usable
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_ADD_MEMBERSHIP" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_ADD_MEMBERSHIP... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_ADD_MEMBERSHIP, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_ADD_MEMBERSHIP");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_ADD_MEMBERSHIP, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_ADD_MEMBERSHIP");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_ADD_MEMBERSHIP 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ADD_MEMBERSHIP_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ADD_MEMBERSHIP_NAME "ipv6_add_membership"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ADD_MEMBERSHIP_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ADD_MEMBERSHIP_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ADD_MEMBERSHIP_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ADD_MEMBERSHIP_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ADD_MEMBERSHIP_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_ADD_MEMBERSHIP_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_ADD_MEMBERSHIP"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_DROP_MEMBERSHIP" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_DROP_MEMBERSHIP... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_DROP_MEMBERSHIP, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_DROP_MEMBERSHIP");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_DROP_MEMBERSHIP, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_DROP_MEMBERSHIP");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_DROP_MEMBERSHIP 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_DROP_MEMBERSHIP_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_DROP_MEMBERSHIP_NAME "ipv6_drop_membership"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_DROP_MEMBERSHIP_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_DROP_MEMBERSHIP_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_DROP_MEMBERSHIP_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_DROP_MEMBERSHIP_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_DROP_MEMBERSHIP_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_DROP_MEMBERSHIP_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_DROP_MEMBERSHIP"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_RECVDSTADDR" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_RECVDSTADDR... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_RECVDSTADDR, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_RECVDSTADDR");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_RECVDSTADDR, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_RECVDSTADDR");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_RECVDSTADDR 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVDSTADDR_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVDSTADDR_NAME "ipv6_recvdstaddr"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVDSTADDR_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVDSTADDR_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVDSTADDR_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVDSTADDR_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVDSTADDR_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVDSTADDR_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_RECVDSTADDR"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_RECVDSTOPTS" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_RECVDSTOPTS... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_RECVDSTOPTS, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_RECVDSTOPTS");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_RECVDSTOPTS, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_RECVDSTOPTS");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_RECVDSTOPTS 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVDSTOPTS_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVDSTOPTS_NAME "ipv6_recvdstopts"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVDSTOPTS_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVDSTOPTS_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVDSTOPTS_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVDSTOPTS_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVDSTOPTS_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVDSTOPTS_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_RECVDSTOPTS"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_RECVERR" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_RECVERR... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_RECVERR, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_RECVERR");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_RECVERR, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_RECVERR");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_RECVERR 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVERR_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVERR_NAME "ipv6_recverr"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVERR_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVERR_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVERR_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVERR_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVERR_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVERR_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_RECVERR"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_RECVHOPLIMIT" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_RECVHOPLIMIT... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_RECVHOPLIMIT, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_RECVHOPLIMIT");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_RECVHOPLIMIT, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_RECVHOPLIMIT");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_RECVHOPLIMIT 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVHOPLIMIT_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVHOPLIMIT_NAME "ipv6_recvhoplimit"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVHOPLIMIT_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVHOPLIMIT_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVHOPLIMIT_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVHOPLIMIT_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVHOPLIMIT_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVHOPLIMIT_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_RECVHOPLIMIT"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_RECVHOPOPTS" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_RECVHOPOPTS... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_RECVHOPOPTS, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_RECVHOPOPTS");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_RECVHOPOPTS, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_RECVHOPOPTS");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_RECVHOPOPTS 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVHOPOPTS_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVHOPOPTS_NAME "ipv6_recvhopopts"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVHOPOPTS_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVHOPOPTS_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVHOPOPTS_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVHOPOPTS_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVHOPOPTS_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVHOPOPTS_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_RECVHOPOPTS"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_RECVOPTS" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_RECVOPTS... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_RECVOPTS, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_RECVOPTS");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_RECVOPTS, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_RECVOPTS");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_RECVOPTS 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVOPTS_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVOPTS_NAME "ipv6_recvopts"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVOPTS_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVOPTS_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVOPTS_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVOPTS_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVOPTS_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVOPTS_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_RECVOPTS"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_RECVORIGDSTADDR" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_RECVORIGDSTADDR... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_RECVORIGDSTADDR, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_RECVORIGDSTADDR");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_RECVORIGDSTADDR, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_RECVORIGDSTADDR");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_RECVORIGDSTADDR 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVORIGDSTADDR_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVORIGDSTADDR_NAME "ipv6_recvorigdstaddr"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVORIGDSTADDR_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVORIGDSTADDR_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVORIGDSTADDR_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVORIGDSTADDR_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVORIGDSTADDR_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVORIGDSTADDR_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_RECVORIGDSTADDR"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_RECVPATHMTU" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_RECVPATHMTU... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_RECVPATHMTU, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_RECVPATHMTU");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_RECVPATHMTU, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_RECVPATHMTU");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_RECVPATHMTU 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVPATHMTU_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVPATHMTU_NAME "ipv6_recvpathmtu"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVPATHMTU_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVPATHMTU_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVPATHMTU_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVPATHMTU_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVPATHMTU_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVPATHMTU_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_RECVPATHMTU"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_RECVPKTINFO" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_RECVPKTINFO... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_RECVPKTINFO, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_RECVPKTINFO");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_RECVPKTINFO, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_RECVPKTINFO");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_RECVPKTINFO 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVPKTINFO_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVPKTINFO_NAME "ipv6_recvpktinfo"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVPKTINFO_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVPKTINFO_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVPKTINFO_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVPKTINFO_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVPKTINFO_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVPKTINFO_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_RECVPKTINFO"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_RECVRETOPTS" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_RECVRETOPTS... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_RECVRETOPTS, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_RECVRETOPTS");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_RECVRETOPTS, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_RECVRETOPTS");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_RECVRETOPTS 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVRETOPTS_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVRETOPTS_NAME "ipv6_recvretopts"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVRETOPTS_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVRETOPTS_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVRETOPTS_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVRETOPTS_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVRETOPTS_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVRETOPTS_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_RECVRETOPTS"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_RECVRTHDR" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_RECVRTHDR... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_RECVRTHDR, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_RECVRTHDR");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_RECVRTHDR, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_RECVRTHDR");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_RECVRTHDR 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVRTHDR_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVRTHDR_NAME "ipv6_recvrthdr"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVRTHDR_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVRTHDR_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVRTHDR_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVRTHDR_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVRTHDR_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVRTHDR_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_RECVRTHDR"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi
unset _compileok
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPPROTO_IPV6 socket option IPV6_RECVTCLASS" >&5
$as_echo_n "checking for IPPROTO_IPV6 socket option IPV6_RECVTCLASS... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_RECVTCLASS, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_RECVTCLASS");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IPV6 == SOL_SOCKET || IPPROTO_IPV6 == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IPV6 == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IPV6 == IPPROTO_IPV6) {
      stype = SOCK_DGRAM;   /* XXX test only UDP in case of IPPROTO_IPV6 */
      ptype = IPPROTO_IPV6; /* set to v6 for ipv6 test */
   } else if (IPPROTO_IPV6 == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IPV6");
       exit(1);
   }

   if((s = socket(PF_INET6, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = 1;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IPV6, IPV6_RECVTCLASS, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IPV6 IPV6_RECVTCLASS");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  _compileok=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext

  if test x"${_compileok}" != x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define HAVE_IPV6_RECVTCLASS 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVTCLASS_LVL IPPROTO_IPV6
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVTCLASS_NAME "ipv6_recvtclass"
_ACEOF
    if test x"IPPROTO_IPV6" = x"IPPROTO_IP"; then
       #ipv4-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVTCLASS_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVTCLASS_IPV6 0
_ACEOF
    elif test x"IPPROTO_IPV6" = x"IPPROTO_IPV6"; then
       #ipv6-only

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVTCLASS_IPV4 0
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVTCLASS_IPV6 1
_ACEOF
    else
       #both ipv4 and ipv6

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVTCLASS_IPV4 1
_ACEOF

cat >>confdefs.h <<_ACEOF
#define SOCKS_IPV6_RECVTCLASS_IPV6 1
_ACEOF
    fi
    SOCKOPTS="$SOCKOPTS${SOCKOPTS:+ }IPV6_RECVTCLASS"
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
  fi

INVALIDSOCKOPTS="$SOCKOPTS" #not user-settable options

ALLSOCKOPTS="$ALLSOCKOPTS $SOCKOPTS"

#add symbolic values for options
unset SOCKOPTVALSYMS
for opt in $OKSOCKOPTS; do
    case $opt in
	IP_PORTRANGE)
	    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for socket option symbol IP_PORTRANGE value IP_PORTRANGE_DEFAULT" >&5
$as_echo_n "checking for socket option symbol IP_PORTRANGE value IP_PORTRANGE_DEFAULT... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = IP_PORTRANGE_DEFAULT;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_PORTRANGE, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_PORTRANGE");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_PORTRANGE_DEFAULT_SYMNAME "ip_portrange_default"
_ACEOF
     SOCKOPTVALSYMS="$SOCKOPTVALSYMS${SOCKOPTVALSYMS:+ }IP_PORTRANGE_DEFAULT"
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
	    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for socket option symbol IP_PORTRANGE value IP_PORTRANGE_HIGH" >&5
$as_echo_n "checking for socket option symbol IP_PORTRANGE value IP_PORTRANGE_HIGH... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = IP_PORTRANGE_HIGH;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_PORTRANGE, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_PORTRANGE");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_PORTRANGE_HIGH_SYMNAME "ip_portrange_high"
_ACEOF
     SOCKOPTVALSYMS="$SOCKOPTVALSYMS${SOCKOPTVALSYMS:+ }IP_PORTRANGE_HIGH"
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
	    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for socket option symbol IP_PORTRANGE value IP_PORTRANGE_LOW" >&5
$as_echo_n "checking for socket option symbol IP_PORTRANGE value IP_PORTRANGE_LOW... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = IP_PORTRANGE_LOW;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_PORTRANGE, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_PORTRANGE");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_PORTRANGE_LOW_SYMNAME "ip_portrange_low"
_ACEOF
     SOCKOPTVALSYMS="$SOCKOPTVALSYMS${SOCKOPTVALSYMS:+ }IP_PORTRANGE_LOW"
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
	    ;;
    esac
done

#define socket option behavior.
# the default is integer values that can only be set before bind()/connect(),
# exceptions are specified here.

#postonly: only settable after bind()/connect()
SOCKOPTS_POSTONLY="TCP_CWND"

#anytime: always settable
SOCKOPTS_ANYTIME="SO_DEBUG IP_TOS" #XXX verify/expand

#dup: options for which values should be duplicated across connections
SOCKOPTSDUP_IP="IP_HDRINCL IP_MULTICAST_IF IP_MULTICAST_LOOP IP_MULTICAST_TTL
                IP_OPTIONS IP_RECVDSTADDR IP_RECVIF IP_TOS IP_TTL"
SOCKOPTSDUP_SOL="SO_BROADCAST SO_DEBUG SO_DONTROUTE SO_KEEPALIVE SO_LINGER
                 SO_OOBINLINE SO_RCVBUF SO_RCVLOWAT SO_RCVTIMEO SO_REUSEADDR
                 SO_REUSEPORT SO_SNDBUF SO_SNDLOWAT SO_SNDTIMEO SO_TIMESTAMP
                 SO_USELOOPBACK"
SOCKOPTSDUP_TCP="TCP_KEEPALIVE TCP_MAXRT TCP_MAXSEG TCP_NODELAY TCP_STDURG"

IPTOS_DSCP="AF11 AF12 AF13 AF21 AF22 AF23 AF31 AF32 AF33 AF41 AF42 AF43
            CS0 CS1 CS2 CS3 CS4 CS5 CS6 CS7 EF"
IPTOS_PREC="NETCONTROL INTERNETCONTROL CRITIC_ECP FLASHOVERRIDE FLASH
            IMMEDIATE PRIORITY ROUTINE"
IPTOS_TOS="LOWDELAY THROUGHPUT RELIABILITY"

sockopt2argtype()
{
   _opt=$1

    case ${_opt} in
	SO_LINGER)
	    _argtype="linger_val"
	    ;;
	SO_SNDTIMEO | SO_RCVTIMEO)
	    _argtype="timeval_val"
	    ;;
	TCP_IPA)
	    _argtype="option28_val"
	    ;;
	*)
	    _argtype="int_val"
	    ;;
    esac

    echo ${_argtype}
}

optargmatch ()
{
   _list="$1"
   _opt="$2"

    for _val in ${_list}; do
	if test x"${_val}" = x"${_opt}"; then
	    return 0
	fi
    done

    return 1
}

#priv: options that require privileges to set
SOCKOPTS_PRIV="SO_BINDANY SO_RCVBUFFORCE SO_SNDBUFFORCE IP_TRANSPARENT IP_FREEBIND"
case $host in
    *-*-linux-*)
	SOCKOPTS_PRIV="$SOCKOPTS_PRIV${SOCKOPTS_PRIV:+ }SO_DEBUG"
	;;
esac

OPTSRCTMP0=_sockopttmp0.c #for options to be duplicated
OPTSRCTMP1=_sockopttmp1.c #for options definitions
OPTSRCTMP2=_sockopttmp2.c #for option argument symbols
cp /dev/null $OPTSRCTMP0
cp /dev/null $OPTSRCTMP1
cp /dev/null $OPTSRCTMP2

DUPSOCKOPTCNT=0
for opt in $ALLSOCKOPTS; do
    if optargmatch "${SOCKOPTSDUP_IP}" $opt; then
        echo "   { IPPROTO_IP, $opt, \"$opt\" }," >> $OPTSRCTMP0
        DUPSOCKOPTCNT=`expr $DUPSOCKOPTCNT + 1`
    fi
    if optargmatch "${SOCKOPTSDUP_SOL}" $opt; then
        echo "   { SOL_SOCKET, $opt, \"$opt\" }," >> $OPTSRCTMP0
        DUPSOCKOPTCNT=`expr $DUPSOCKOPTCNT + 1`
    fi
    if optargmatch "${SOCKOPTSDUP_TCP}" $opt; then
        echo "   { IPPROTO_TCP, $opt, \"$opt\" }," >> $OPTSRCTMP0
        DUPSOCKOPTCNT=`expr $DUPSOCKOPTCNT + 1`
    fi
done

SOCKOPTCNT=0
SOCKOPTSYMCNT=0
unset OKSOCKOPTVALSYMS
for opt in $OKSOCKOPTS; do
    argtype=`sockopt2argtype $opt`

    calltype="preonly" #default
    if optargmatch "${SOCKOPTS_POSTONLY}" $opt; then
       calltype="postonly"
    fi
    if optargmatch "${SOCKOPTS_ANYTIME}" $opt; then
       calltype="anytime"
    fi

    optshift=0
    optmask=0

    if optargmatch "${SOCKOPTS_DUP}" $opt; then
       dup=1
    else
       dup=0
    fi

    priv=0

    if optargmatch "${SOCKOPTS_PRIV}" $opt; then
       priv=1
    else
       priv=0
    fi

    optid=$SOCKOPTCNT

    echo "   { $optid, $argtype, ${opt}, SOCKS_${opt}_LVL, SOCKS_${opt}_IPV4, SOCKS_${opt}_IPV6, $calltype, $optshift, $optmask, $dup, $priv, SOCKS_${opt}_NAME }," >> $OPTSRCTMP1
    SOCKOPTCNT=`expr $SOCKOPTCNT + 1`

    #add subfields
    case $opt in
	IP_PORTRANGE)
	    unset SOCKOPTVALSYMS
	    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for socket option symbol IP_PORTRANGE value IP_PORTRANGE_DEFAULT" >&5
$as_echo_n "checking for socket option symbol IP_PORTRANGE value IP_PORTRANGE_DEFAULT... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = IP_PORTRANGE_DEFAULT;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_PORTRANGE, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_PORTRANGE");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_PORTRANGE_DEFAULT_SYMNAME "ip_portrange_default"
_ACEOF
     SOCKOPTVALSYMS="$SOCKOPTVALSYMS${SOCKOPTVALSYMS:+ }IP_PORTRANGE_DEFAULT"
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
	    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for socket option symbol IP_PORTRANGE value IP_PORTRANGE_HIGH" >&5
$as_echo_n "checking for socket option symbol IP_PORTRANGE value IP_PORTRANGE_HIGH... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = IP_PORTRANGE_HIGH;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_PORTRANGE, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_PORTRANGE");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_PORTRANGE_HIGH_SYMNAME "ip_portrange_high"
_ACEOF
     SOCKOPTVALSYMS="$SOCKOPTVALSYMS${SOCKOPTVALSYMS:+ }IP_PORTRANGE_HIGH"
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
	    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for socket option symbol IP_PORTRANGE value IP_PORTRANGE_LOW" >&5
$as_echo_n "checking for socket option symbol IP_PORTRANGE value IP_PORTRANGE_LOW... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/udp.h>

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main ()
{

   socklen_t optlen;
   int optval;
   int stype;
   int ptype;
   int s;

   if (IPPROTO_IP == SOL_SOCKET || IPPROTO_IP == IPPROTO_TCP) {
      stype = SOCK_STREAM; /* XXX test only TCP in case of SOL_SOCKET */
      ptype = IPPROTO_TCP;
   } else if (IPPROTO_IP == IPPROTO_IP) {
      stype = SOCK_DGRAM; /* XXX test only UDP in case of IPPROTO_IP */
      ptype = IPPROTO_IP;
   } else if (IPPROTO_IP == IPPROTO_UDP) {
      stype = SOCK_DGRAM;
      ptype = IPPROTO_UDP;
   } else {
       fprintf(stderr, "error: unexpected socket type: IPPROTO_IP");
       exit(1);
   }

   if((s = socket(PF_INET, stype, ptype)) < 0) {
      perror("socket");
      exit(1);
   }

   optval = IP_PORTRANGE_LOW;
   optlen = sizeof(optval);
   if(setsockopt(s, IPPROTO_IP, IP_PORTRANGE, &optval, optlen) < 0) {
      perror("setsockopt: IPPROTO_IP IP_PORTRANGE");
      close(s);
      exit(1);
   }
  ;
  return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_PORTRANGE_LOW_SYMNAME "ip_portrange_low"
_ACEOF
     SOCKOPTVALSYMS="$SOCKOPTVALSYMS${SOCKOPTVALSYMS:+ }IP_PORTRANGE_LOW"
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
	    unset symlist
	    for sym in $SOCKOPTVALSYMS; do
		echo "   { $optid, { .int_val = $sym }, SOCKS_${sym}_SYMNAME }," >> $OPTSRCTMP2
		lcsym=`echo $sym | ucase`
		symlist="$symlist${symlist:+ }$lcsym"
		SOCKOPTSYMCNT=`expr $SOCKOPTSYMCNT + 1`
	    done
	    if test x"$symlist" != x; then
		OKSOCKOPTVALSYMS="$OKSOCKOPTVALSYMS${OKSOCKOPTVALSYMS:+ }$opt($symlist)"
	    fi
	    ;;

	IP_TOS)
	    #DSCP (rfc2474), 6 bits (2-7)
	    optshift=2
	    optmask=0x3F
	    optid=$SOCKOPTCNT
	    subfield="ip_tos.dscp"

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_TOS_DSCP_NAME "$subfield"
_ACEOF

	    echo "   { $optid, $argtype, ${opt}, SOCKS_${opt}_LVL, SOCKS_${opt}_IPV4, SOCKS_${opt}_IPV6, $calltype, $optshift, $optmask, $dup, $priv, SOCKS_IP_TOS_DSCP_NAME }," >> $OPTSRCTMP1
	    SOCKOPTCNT=`expr $SOCKOPTCNT + 1`

	    unset symlist
	    for sym in $IPTOS_DSCP; do
		echo "   { $optid, { .int_val = SOCKS_IP_TOS_DSCP_${sym} }, SOCKS_IP_TOS_DSCP_${sym}_SYMNAME }," >> $OPTSRCTMP2
		lcsym=`echo $sym | ucase`
		symlist="$symlist${symlist:+ }$lcsym"
		SOCKOPTSYMCNT=`expr $SOCKOPTSYMCNT + 1`
	    done
	    if test x"$symlist" != x; then
		OKSOCKOPTVALSYMS="$OKSOCKOPTVALSYMS${OKSOCKOPTVALSYMS:+ }$subfield($symlist)"
	    fi

	    #Precedence
	    optshift=5
	    optmask=0x7
	    optid=$SOCKOPTCNT
	    subfield="ip_tos.prec"

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_TOS_PREC_NAME "$subfield"
_ACEOF

	    echo "   { $optid, $argtype, ${opt}, SOCKS_${opt}_LVL, SOCKS_${opt}_IPV4, SOCKS_${opt}_IPV6, $calltype, $optshift, $optmask, $dup, $priv, SOCKS_IP_TOS_PREC_NAME }," >> $OPTSRCTMP1
	    SOCKOPTCNT=`expr $SOCKOPTCNT + 1`

	    unset symlist
	    for sym in $IPTOS_PREC; do
		echo "   { $optid, { .int_val = SOCKS_IP_TOS_PREC_${sym} }, SOCKS_IP_TOS_PREC_${sym}_SYMNAME }," >> $OPTSRCTMP2
		lcsym=`echo $sym | ucase`
		symlist="$symlist${symlist:+ }$lcsym"
		SOCKOPTSYMCNT=`expr $SOCKOPTSYMCNT + 1`
	    done
	    if test x"$symlist" != x; then
		OKSOCKOPTVALSYMS="$OKSOCKOPTVALSYMS${OKSOCKOPTVALSYMS:+ }$subfield($symlist)"
	    fi

	    #TOS (bits 1-4)
	    optshift=1
	    optmask=0xf
	    optid=$SOCKOPTCNT
	    subfield="ip_tos.tos"

cat >>confdefs.h <<_ACEOF
#define SOCKS_IP_TOS_TOS_NAME "$subfield"
_ACEOF

	    echo "   { $optid, $argtype, ${opt}, SOCKS_${opt}_LVL, SOCKS_${opt}_IPV4, SOCKS_${opt}_IPV6, $calltype, $optshift, $optmask, $dup, $priv, SOCKS_IP_TOS_TOS_NAME }," >> $OPTSRCTMP1
	    SOCKOPTCNT=`expr $SOCKOPTCNT + 1`

	    unset symlist
	    for sym in $IPTOS_TOS; do
		echo "   { $optid, { .int_val = SOCKS_IP_TOS_TOS_${sym} }, SOCKS_IP_TOS_TOS_${sym}_SYMNAME }," >> $OPTSRCTMP2
		lcsym=`echo $sym | ucase`
		symlist="$symlist${symlist:+ }$lcsym"
		SOCKOPTSYMCNT=`expr $SOCKOPTSYMCNT + 1`
	    done
	    if test x"$symlist" != x; then
		OKSOCKOPTVALSYMS="$OKSOCKOPTVALSYMS${OKSOCKOPTVALSYMS:+ }$subfield($symlist)"
	    fi
	    ;;
    esac
done

#hostid options (only set first)
unset HOSTIDTYPE
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for supported hostid type" >&5
$as_echo_n "checking for supported hostid type... " >&6; }
for opt in $HOSTIDSOCKOPTS; do
    argtype=`sockopt2argtype $opt`

    calltype="preonly" #default
    if optargmatch "${SOCKOPTS_POSTONLY}" $opt; then
       calltype="postonly"
    fi
    if optargmatch "${SOCKOPTS_ANYTIME}" $opt; then
       calltype="anytime"
    fi

    optshift=0
    optmask=0

    if optargmatch "${SOCKOPTS_DUP}" $opt; then
       dup=1
    else
       dup=0
    fi

    priv=0

    if optargmatch "${SOCKOPTS_PRIV}" $opt; then
       priv=1
    else
       priv=0
    fi

    optid=$SOCKOPTCNT


cat >>confdefs.h <<_ACEOF
#define SOCKS_HOSTID_NAME "hostid"
_ACEOF

    echo "   { $optid, $argtype, ${opt}, SOCKS_${opt}_LVL, SOCKS_${opt}_IPV4, SOCKS_${opt}_IPV6, $calltype, $optshift, $optmask, $dup, $priv, SOCKS_HOSTID_NAME }," >> $OPTSRCTMP1

cat >>confdefs.h <<_ACEOF
#define SOCKS_HOSTID_TYPE SOCKS_HOSTID_TYPE_${opt}
_ACEOF

    SOCKOPTCNT=`expr $SOCKOPTCNT + 1`
    HOSTIDTYPE=$opt

    #add supported arguments
    unset symlist
    for sym in NONE PASS ADDCLIENT SETCLIENT; do
	echo "   { $optid, { .int_val = SOCKS_HOSTID_$sym }, SOCKS_HOSTID_${sym}_SYMNAME }," >> $OPTSRCTMP2
	SOCKOPTSYMCNT=`expr $SOCKOPTSYMCNT + 1`
    done
    OKSOCKOPTVALSYMS="$OKSOCKOPTVALSYMS${OKSOCKOPTVALSYMS:+ }hostid(none pass add-client set-client)"
    OKSOCKOPTS="$OKSOCKOPTS${OKSOCKOPTS:+ }hostid($opt)"

    break #end after first entry
done
if test x"$HOSTIDTYPE" = x; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }

$as_echo "#define SOCKS_HOSTID_TYPE SOCKS_HOSTID_TYPE_NONE" >>confdefs.h

else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $HOSTIDTYPE" >&5
$as_echo "$HOSTIDTYPE" >&6; }
    FEAT="$FEAT${FEAT:+ }hostid"
fi

#options that are not settable by users
for opt in $INVALIDSOCKOPTS; do
    calltype="invalid"
    argtype=`sockopt2argtype $opt`
    optshift=0
    optmask=0
    priv=0
    optid=$SOCKOPTCNT

    echo "   { $optid, $argtype, ${opt}, SOCKS_${opt}_LVL, SOCKS_${opt}_IPV4, SOCKS_${opt}_IPV6, $calltype, $optshift, $optmask, $dup, $priv, SOCKS_${opt}_NAME }," >> $OPTSRCTMP1
    SOCKOPTCNT=`expr $SOCKOPTCNT + 1`
done

OPTNAMEMAXLEN=0
for opt in $ALLSOCKOPTS $INVALIDSOCKOPTS; do
    namelen=`echo $opt | wc -c` #should include newline
    if test $namelen -gt $OPTNAMEMAXLEN; then
       OPTNAMEMAXLEN=$namelen
    fi
done

cat >>confdefs.h <<_ACEOF
#define SOCKOPTNAME_MAXLEN $OPTNAMEMAXLEN
_ACEOF


#generate source file
case $APP in
    dante)
	SOCKOPTSRC="lib/sockopt_gen.c"
	;;
    *)
	SOCKOPTSRC="src/sockopt_gen.c"
	;;
esac
cp /dev/null $SOCKOPTSRC
echo "/* NOTICE: $SOCKOPTSRC Generated by configure */" >>$SOCKOPTSRC
echo "" >> $SOCKOPTSRC

#quotes around argument added to avoid [] in text from disappearing
echo 'static const struct option option[] = {' >> $SOCKOPTSRC
cat $OPTSRCTMP0 >> $SOCKOPTSRC
echo '};' >> $SOCKOPTSRC
echo '' >> $SOCKOPTSRC

cat >>confdefs.h <<_ACEOF
#define HAVE_DUPSOCKOPT_MAX $DUPSOCKOPTCNT
_ACEOF

#quotes around argument added to avoid [] in text from disappearing
echo 'static const sockopt_t sockopts[] = {' >> $SOCKOPTSRC
#list of options that can be set also after connection has been established
cat $OPTSRCTMP1 >> $SOCKOPTSRC
echo '};' >> $SOCKOPTSRC

cat >>confdefs.h <<_ACEOF
#define HAVE_SOCKOPTVAL_MAX $SOCKOPTCNT
_ACEOF

#add symbolic values for options
echo '' >> $SOCKOPTSRC
#quotes around argument added to avoid [] in text from disappearing
echo 'static const sockoptvalsym_t sockoptvalsyms[] = {' >> $SOCKOPTSRC
cat $OPTSRCTMP2 >> $SOCKOPTSRC
echo '};' >> $SOCKOPTSRC

cat >>confdefs.h <<_ACEOF
#define HAVE_SOCKOPTVALSYM_MAX $SOCKOPTSYMCNT
_ACEOF

rm -f "$OPTSRCTMP0" "$OPTSRCTMP1" "$OPTSRCTMP2"

#set value for server -v option
UCOKSOCKOPTS_SO=`echo $OKSOCKOPTS | ucase | xargs -n1 | egrep 'SO_' | xargs`

cat >>confdefs.h <<_ACEOF
#define DANTE_SOCKOPTS_SO "${UCOKSOCKOPTS_SO}"
_ACEOF

UCOKSOCKOPTS_IPV4=`echo $OKSOCKOPTS | ucase | xargs -n1 | egrep 'IP_' | xargs`

cat >>confdefs.h <<_ACEOF
#define DANTE_SOCKOPTS_IPV4 "${UCOKSOCKOPTS_IPV4}"
_ACEOF

UCOKSOCKOPTS_IPV6=`echo $OKSOCKOPTS | ucase | xargs -n1 | egrep 'IPV6_' | xargs`

cat >>confdefs.h <<_ACEOF
#define DANTE_SOCKOPTS_IPV6 "${UCOKSOCKOPTS_IPV6}"
_ACEOF

UCOKSOCKOPTS_TCP=`echo $OKSOCKOPTS | ucase | xargs -n1 | egrep 'TCP_' | xargs`

cat >>confdefs.h <<_ACEOF
#define DANTE_SOCKOPTS_TCP "${UCOKSOCKOPTS_TCP}"
_ACEOF

UCOKSOCKOPTS_UDP=`echo $OKSOCKOPTS | ucase | xargs -n1 | egrep 'UDP_' | xargs`

cat >>confdefs.h <<_ACEOF
#define DANTE_SOCKOPTS_UDP "${UCOKSOCKOPTS_UDP}"
_ACEOF



#look for modules, and check version
servdir=sockd
unset MOD_BANDWIDTH MOD_REDIRECT MOD_LDAP MOD_PAC MOD_CONVSID
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for module bandwidth" >&5
$as_echo_n "checking for module bandwidth... " >&6; }
 if test -f "licensed/bandwidth.c"; then
	MINVER="109"
	unset MODVER
	MODLINE=`head -1 licensed/bandwidth.c | grep MODVER`
	if test x"$MODLINE" != x; then
		MODVER=`echo "$MODLINE" | cut -d: -f 2`
	fi

				if test x"$MODVER" = x; then
		MODVER=`awk '/Id:/{ split($''4,a,".");print a[2]; exit }' licensed/bandwidth.c`
	fi
	if test "$MODVER" -lt "$MINVER"; then
		echo "" >&2
		echo "You have version 1.$MODVER of the bandwidth module, which is outdated." >&2
		echo "This version of Dante requires at least version 1.$MINVER." >&2
		echo "Please contact Inferno Nettverk A/S for an updated" >&2
		echo "version before you attempt to compile." >&2
		echo "Inferno Nettverk A/S can be reached at info@inet.no." >&2
		echo "" >&2
		echo "There is no additional cost for upgrading." >&2
		exit 1
	fi

	#command to run in case of success
	MOD_BANDWIDTH=t

	unset HAVEMOD_BANDWIDTH

$as_echo "#define HAVE_MODULE_BANDWIDTH 1" >>confdefs.h
	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
else
	HAVEMOD_BANDWIDTH=un

	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
ac_sources="${HAVEMOD_BANDWIDTH}licensed/bandwidth.c"
ac_dests="$servdir/bandwidth.c"
while test -n "$ac_sources"; do
  set $ac_dests; ac_dest=$1; shift; ac_dests=$*
  set $ac_sources; ac_source=$1; shift; ac_sources=$*
  ac_config_links_1="$ac_config_links_1 $ac_dest:$ac_source"
done
ac_config_links="$ac_config_links $ac_config_links_1"

if test x"" != xnokey; then
    ac_sources="${HAVEMOD_BANDWIDTH}licensed/bandwidth_key.c"
ac_dests="$servdir/bandwidth_key.c"
while test -n "$ac_sources"; do
  set $ac_dests; ac_dest=$1; shift; ac_dests=$*
  set $ac_sources; ac_source=$1; shift; ac_sources=$*
  ac_config_links_2="$ac_config_links_2 $ac_dest:$ac_source"
done
ac_config_links="$ac_config_links $ac_config_links_2"

fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for module redirect" >&5
$as_echo_n "checking for module redirect... " >&6; }
 if test -f "licensed/redirect.c"; then
	MINVER="79"
	unset MODVER
	MODLINE=`head -1 licensed/redirect.c | grep MODVER`
	if test x"$MODLINE" != x; then
		MODVER=`echo "$MODLINE" | cut -d: -f 2`
	fi

				if test x"$MODVER" = x; then
		MODVER=`awk '/Id:/{ split($''4,a,".");print a[2]; exit }' licensed/redirect.c`
	fi
	if test "$MODVER" -lt "$MINVER"; then
		echo "" >&2
		echo "You have version 1.$MODVER of the redirect module, which is outdated." >&2
		echo "This version of Dante requires at least version 1.$MINVER." >&2
		echo "Please contact Inferno Nettverk A/S for an updated" >&2
		echo "version before you attempt to compile." >&2
		echo "Inferno Nettverk A/S can be reached at info@inet.no." >&2
		echo "" >&2
		echo "There is no additional cost for upgrading." >&2
		exit 1
	fi

	#command to run in case of success
	MOD_REDIRECT=t

	unset HAVEMOD_REDIRECT

$as_echo "#define HAVE_MODULE_REDIRECT 1" >>confdefs.h
	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
else
	HAVEMOD_REDIRECT=un

	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
ac_sources="${HAVEMOD_REDIRECT}licensed/redirect.c"
ac_dests="$servdir/redirect.c"
while test -n "$ac_sources"; do
  set $ac_dests; ac_dest=$1; shift; ac_dests=$*
  set $ac_sources; ac_source=$1; shift; ac_sources=$*
  ac_config_links_3="$ac_config_links_3 $ac_dest:$ac_source"
done
ac_config_links="$ac_config_links $ac_config_links_3"

if test x"" != xnokey; then
    ac_sources="${HAVEMOD_REDIRECT}licensed/redirect_key.c"
ac_dests="$servdir/redirect_key.c"
while test -n "$ac_sources"; do
  set $ac_dests; ac_dest=$1; shift; ac_dests=$*
  set $ac_sources; ac_source=$1; shift; ac_sources=$*
  ac_config_links_4="$ac_config_links_4 $ac_dest:$ac_source"
done
ac_config_links="$ac_config_links $ac_config_links_4"

fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for module ldap" >&5
$as_echo_n "checking for module ldap... " >&6; }
 if test -f "licensed/ldap.c"; then
	MINVER="211"
	unset MODVER
	MODLINE=`head -1 licensed/ldap.c | grep MODVER`
	if test x"$MODLINE" != x; then
		MODVER=`echo "$MODLINE" | cut -d: -f 2`
	fi

				if test x"$MODVER" = x; then
		MODVER=`awk '/Id:/{ split($''4,a,".");print a[2]; exit }' licensed/ldap.c`
	fi
	if test "$MODVER" -lt "$MINVER"; then
		echo "" >&2
		echo "You have version 1.$MODVER of the ldap module, which is outdated." >&2
		echo "This version of Dante requires at least version 1.$MINVER." >&2
		echo "Please contact Inferno Nettverk A/S for an updated" >&2
		echo "version before you attempt to compile." >&2
		echo "Inferno Nettverk A/S can be reached at info@inet.no." >&2
		echo "" >&2
		echo "There is no additional cost for upgrading." >&2
		exit 1
	fi

	#command to run in case of success
	MOD_LDAP=t

	unset HAVEMOD_LDAP

$as_echo "#define HAVE_MODULE_LDAP 1" >>confdefs.h
	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
else
	HAVEMOD_LDAP=un

	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
ac_sources="${HAVEMOD_LDAP}licensed/ldap.c"
ac_dests="$servdir/ldap.c"
while test -n "$ac_sources"; do
  set $ac_dests; ac_dest=$1; shift; ac_dests=$*
  set $ac_sources; ac_source=$1; shift; ac_sources=$*
  ac_config_links_5="$ac_config_links_5 $ac_dest:$ac_source"
done
ac_config_links="$ac_config_links $ac_config_links_5"

if test x"" != xnokey; then
    ac_sources="${HAVEMOD_LDAP}licensed/ldap_key.c"
ac_dests="$servdir/ldap_key.c"
while test -n "$ac_sources"; do
  set $ac_dests; ac_dest=$1; shift; ac_dests=$*
  set $ac_sources; ac_source=$1; shift; ac_sources=$*
  ac_config_links_6="$ac_config_links_6 $ac_dest:$ac_source"
done
ac_config_links="$ac_config_links $ac_config_links_6"

fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for module pac" >&5
$as_echo_n "checking for module pac... " >&6; }
 if test -f "licensed/pac.c"; then
	MINVER="30"
	unset MODVER
	MODLINE=`head -1 licensed/pac.c | grep MODVER`
	if test x"$MODLINE" != x; then
		MODVER=`echo "$MODLINE" | cut -d: -f 2`
	fi

				if test x"$MODVER" = x; then
		MODVER=`awk '/Id:/{ split($''4,a,".");print a[2]; exit }' licensed/pac.c`
	fi
	if test "$MODVER" -lt "$MINVER"; then
		echo "" >&2
		echo "You have version 1.$MODVER of the pac module, which is outdated." >&2
		echo "This version of Dante requires at least version 1.$MINVER." >&2
		echo "Please contact Inferno Nettverk A/S for an updated" >&2
		echo "version before you attempt to compile." >&2
		echo "Inferno Nettverk A/S can be reached at info@inet.no." >&2
		echo "" >&2
		echo "There is no additional cost for upgrading." >&2
		exit 1
	fi

	#command to run in case of success
	MOD_PAC=t

	unset HAVEMOD_PAC

$as_echo "#define HAVE_MODULE_PAC 1" >>confdefs.h
	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
else
	HAVEMOD_PAC=un

	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
ac_sources="${HAVEMOD_PAC}licensed/pac.c"
ac_dests="$servdir/pac.c"
while test -n "$ac_sources"; do
  set $ac_dests; ac_dest=$1; shift; ac_dests=$*
  set $ac_sources; ac_source=$1; shift; ac_sources=$*
  ac_config_links_7="$ac_config_links_7 $ac_dest:$ac_source"
done
ac_config_links="$ac_config_links $ac_config_links_7"

if test x"" != xnokey; then
    ac_sources="${HAVEMOD_PAC}licensed/pac_key.c"
ac_dests="$servdir/pac_key.c"
while test -n "$ac_sources"; do
  set $ac_dests; ac_dest=$1; shift; ac_dests=$*
  set $ac_sources; ac_source=$1; shift; ac_sources=$*
  ac_config_links_8="$ac_config_links_8 $ac_dest:$ac_source"
done
ac_config_links="$ac_config_links $ac_config_links_8"

fi

{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for module checkmodule" >&5
$as_echo_n "checking for module checkmodule... " >&6; }
 if test -f "licensed/checkmodule.c"; then
	MINVER="80"
	unset MODVER
	MODLINE=`head -1 licensed/checkmodule.c | grep MODVER`
	if test x"$MODLINE" != x; then
		MODVER=`echo "$MODLINE" | cut -d: -f 2`
	fi

				if test x"$MODVER" = x; then
		MODVER=`awk '/Id:/{ split($''4,a,".");print a[2]; exit }' licensed/checkmodule.c`
	fi
	if test "$MODVER" -lt "$MINVER"; then
		echo "" >&2
		echo "You have version 1.$MODVER of the checkmodule module, which is outdated." >&2
		echo "This version of Dante requires at least version 1.$MINVER." >&2
		echo "Please contact Inferno Nettverk A/S for an updated" >&2
		echo "version before you attempt to compile." >&2
		echo "Inferno Nettverk A/S can be reached at info@inet.no." >&2
		echo "" >&2
		echo "There is no additional cost for upgrading." >&2
		exit 1
	fi

	#command to run in case of success


	unset HAVEMOD_CHECKMODULE

$as_echo "#define HAVE_MODULE_CHECKMODULE 1" >>confdefs.h
	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
else
	HAVEMOD_CHECKMODULE=un

	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
ac_sources="${HAVEMOD_CHECKMODULE}licensed/checkmodule.c"
ac_dests="$servdir/checkmodule.c"
while test -n "$ac_sources"; do
  set $ac_dests; ac_dest=$1; shift; ac_dests=$*
  set $ac_sources; ac_source=$1; shift; ac_sources=$*
  ac_config_links_9="$ac_config_links_9 $ac_dest:$ac_source"
done
ac_config_links="$ac_config_links $ac_config_links_9"

if test x"nokey" != xnokey; then
    ac_sources="${HAVEMOD_CHECKMODULE}licensed/checkmodule_key.c"
ac_dests="$servdir/checkmodule_key.c"
while test -n "$ac_sources"; do
  set $ac_dests; ac_dest=$1; shift; ac_dests=$*
  set $ac_sources; ac_source=$1; shift; ac_sources=$*
  ac_config_links_10="$ac_config_links_10 $ac_dest:$ac_source"
done
ac_config_links="$ac_config_links $ac_config_links_10"

fi
 #helper file
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for module convert_sid" >&5
$as_echo_n "checking for module convert_sid... " >&6; }
 if test -f "licensed/convert_sid.c"; then
	MINVER="1"
	unset MODVER
	MODLINE=`head -1 licensed/convert_sid.c | grep MODVER`
	if test x"$MODLINE" != x; then
		MODVER=`echo "$MODLINE" | cut -d: -f 2`
	fi

				if test x"$MODVER" = x; then
		MODVER=`awk '/Id:/{ split($''4,a,".");print a[2]; exit }' licensed/convert_sid.c`
	fi
	if test "$MODVER" -lt "$MINVER"; then
		echo "" >&2
		echo "You have version 1.$MODVER of the convert_sid module, which is outdated." >&2
		echo "This version of Dante requires at least version 1.$MINVER." >&2
		echo "Please contact Inferno Nettverk A/S for an updated" >&2
		echo "version before you attempt to compile." >&2
		echo "Inferno Nettverk A/S can be reached at info@inet.no." >&2
		echo "" >&2
		echo "There is no additional cost for upgrading." >&2
		exit 1
	fi

	#command to run in case of success
	MOD_CONVSID=t

	unset HAVEMOD_CONVERT_SID

$as_echo "#define HAVE_MODULE_CONVERT_SID 1" >>confdefs.h
	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
else
	HAVEMOD_CONVERT_SID=un

	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
ac_sources="${HAVEMOD_CONVERT_SID}licensed/convert_sid.c"
ac_dests=""bin"/convert_sid.c"
while test -n "$ac_sources"; do
  set $ac_dests; ac_dest=$1; shift; ac_dests=$*
  set $ac_sources; ac_source=$1; shift; ac_sources=$*
  ac_config_links_11="$ac_config_links_11 $ac_dest:$ac_source"
done
ac_config_links="$ac_config_links $ac_config_links_11"

if test x"nokey" != xnokey; then
    ac_sources="${HAVEMOD_CONVERT_SID}licensed/convert_sid_key.c"
ac_dests=""bin"/convert_sid_key.c"
while test -n "$ac_sources"; do
  set $ac_dests; ac_dest=$1; shift; ac_dests=$*
  set $ac_sources; ac_source=$1; shift; ac_sources=$*
  ac_config_links_12="$ac_config_links_12 $ac_dest:$ac_source"
done
ac_config_links="$ac_config_links $ac_config_links_12"

fi


if test x"$MOD_BANDWIDTH" != x; then
   FEAT="$FEAT${FEAT:+ }mod-bandwidth"
fi
unset have_ldap
if test x"$MOD_LDAP" != x -a x"${no_ldap}" = x -a x"${no_gssapi}" = x; then
   FEAT="$FEAT${FEAT:+ }mod-ldap"
   SOCKDDEPS="${SOCKDDEPS}${SOCKDDEPS:+ }$LDAPLIBS"

$as_echo "#define HAVE_LDAP 1" >>confdefs.h

   have_ldap=t
fi
unset have_pac
if test x"$MOD_PAC" != x -a x"$MOD_LDAP" -a x"${no_ldap}" = x \
     -a x"${no_pac}" = x -a x"${no_gssapi}" = x -a x"${no_krb5}" = x; then
   FEAT="$FEAT${FEAT:+ }mod-pac"

$as_echo "#define HAVE_PAC 1" >>confdefs.h

   have_pac=t
   if test x"${have_ldap}" = x; then
      SOCKDDEPS="${SOCKDDEPS}${SOCKDDEPS:+ }$LDAPLIBS"
   fi
fi
 if test x"${have_pac}" != x; then
  HAVEMOD_PAC_TRUE=
  HAVEMOD_PAC_FALSE='#'
else
  HAVEMOD_PAC_TRUE='#'
  HAVEMOD_PAC_FALSE=
fi


if test x"$MOD_REDIRECT" != x; then
   FEAT="$FEAT${FEAT:+ }mod-redirect"
fi
FEAT="$FEAT${FEAT:+ }sess2" #session code now part of base

if test x"$prerelease" != x; then
   FEAT="$FEAT${FEAT:+ }prerel" #prerelease build
fi

#standard features
FEAT="$FEAT${FEAT:+ }mon-data mon-disconnect" #monitoring code

#construct SUBDIRS variable
SUBDIRS="unlicensed example doc bin SPECS capi contrib"
DISTSUBDIRS="$SUBDIRS"
UNITSUBDIRS="" #dirs to do unit testing in
if test x"$NOSERVER" = x; then
   SUBDIRS="sockd ${SUBDIRS}"
   UNITSUBDIRS="sockd ${UNITSUBDIRS}"
fi
DISTSUBDIRS="$DISTSUBDIRS sockd"
if test x"$NOCLIENT" = x; then
   if test x"${no_preload_client}" = x; then
       SUBDIRS="dlib $SUBDIRS"
       UNITSUBDIRS="dlib ${UNITSUBDIRS}"
       if test x"$sol64" != x; then
           SUBDIRS="dlib64 $SUBDIRS"
           UNITSUBDIRS="dlib64 ${UNITSUBDIRS}"
       fi
       FEAT="$FEAT${FEAT:+ }preload"
   fi
   #lib handles yacc/lex generation for dlib/sockd, should be before these
   SUBDIRS="lib $SUBDIRS"
   UNITSUBDIRS="lib ${UNITSUBDIRS}"
fi
DISTSUBDIRS="include libscompat $DISTSUBDIRS lib dlib dlib64"

#include should be done before compilation to ensure that
#redefac is executed first
TOPSUBDIRS="$subdirs include"
#libscompat no longer built directly, but build for prereleases for testing
if test x"${build_libscompat}" != x; then
    TOPSUBDIRS="$TOPSUBDIRS libscompat"
    LIBSCOMPAT="-lscompat"
    LDFLAGS="$LDFLAGS${LDFLAGS:+ }-L../libscompat"
else
    unset LIBSCOMPAT
fi
TOPSUBDIRS="$TOPSUBDIRS $SUBDIRS"








#set build features for server -v option
FEATURES=`echo $FEAT | xargs -n 1 echo | sort | xargs echo`

cat >>confdefs.h <<_ACEOF
#define DANTE_BUILD "$FEATURES"
_ACEOF


#add libcfail
if test x"$have_libcfail" != x; then
    LIBS="$LIBS${LIBS:+ }-lcfail"
fi

#add any warning flags (value set above)
CFLAGS="$CFLAGS $warn"

#store build environment
cp /dev/null buildenv.txt
echo "flags: ${ac_configure_args}" >> buildenv.txt
echo "CC: $CC $initCC" >> buildenv.txt
echo "CFLAGS: $CFLAGS $initCFLAGS" >> buildenv.txt
echo "CPP: $CPP $initCPP" >> buildenv.txt
echo "CPPFLAGS: $CPPFLAGS $initCPPFLAGS" >> buildenv.txt
echo "LDFLAGS: $LDFLAGS $initLDFLAGS" >> buildenv.txt
echo "LD_LIBRARY_PATH: ${LD_LIBRARY_PATH}" >> buildenv.txt
echo "LIBS: $LIBS $initLIBS" >> buildenv.txt
echo "DLIBDEPS: $DLIBDEPS" >> buildenv.txt
echo "SOCKDDEPS: $SOCKDDEPS" >> buildenv.txt
echo "compiler flags: $comp_flags" >> buildenv.txt
echo "warning flags: $warn" >> buildenv.txt
echo "FEATURES: $FEAT" >> buildenv.txt
echo "compat: $COMPATFUNCS" >> buildenv.txt
echo "socket options (socket level): `echo ${UCOKSOCKOPTS_SO} | ucase`" >> buildenv.txt
echo "socket options (ipv4 level): `echo ${UCOKSOCKOPTS_IPV4} | ucase`" >> buildenv.txt
echo "socket options (ipv6 level): `echo ${UCOKSOCKOPTS_IPV6} | ucase`" >> buildenv.txt
echo "socket options (tcp level): `echo ${UCOKSOCKOPTS_TCP} | ucase`" >> buildenv.txt
echo "socket options (udp level): `echo ${UCOKSOCKOPTS_UDP} | ucase`" >> buildenv.txt
echo "socket option arguments: `echo $OKSOCKOPTVALSYMS | ucase`" >> buildenv.txt

cat buildenv.txt

echo "#build environment
export CC=\"$CC\"
export CFLAGS=\"$CFLAGS\"
export CPP=\"$CPP\"
export CPPFLAGS=\"$CPPFLAGS\"
export LDFLAGS=\"$LDFLAGS\"
export SOCKDDEPS=\"$SOCKDDEPS\"
export LIBS=\"$LIBS\"" > buildenvrc

ac_config_files="$ac_config_files sockd/Makefile include/Makefile lib/Makefile dlib/Makefile"

ac_config_files="$ac_config_files Makefile example/Makefile doc/Makefile bin/Makefile"

ac_config_files="$ac_config_files capi/Makefile SPECS/Makefile SPECS/dante.spec"

ac_config_files="$ac_config_files libscompat/Makefile contrib/Makefile"

ac_config_files="$ac_config_files unlicensed/Makefile VERSION dlib64/Makefile"


#change all #undef's to #define foo 0


cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
# tests run on this system so they can be shared between configure
# scripts and configure runs, see configure's option --config-cache.
# It is not useful on other systems.  If it contains results you don't
# want to keep, you may remove or edit it.
#
# config.status only pays attention to the cache file if you give it
# the --recheck option to rerun configure.
#
# `ac_cv_env_foo' variables (set or unset) will be overridden when
# loading this file, other *unset* `ac_cv_foo' will be assigned the
# following values.

_ACEOF

# The following way of writing the cache mishandles newlines in values,
# but we know of no workaround that is simple, portable, and efficient.
# So, we kill variables containing newlines.
# 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.
(
  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

  (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 \.
      sed -n \
	"s/'/'\\\\''/g;
	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
      ;; #(
    *)
      # `set' quotes correctly as required by POSIX, so do not add quotes.
      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
      ;;
    esac |
    sort
) |
  sed '
     /^ac_cv_env_/b end
     t clear
     :clear
     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
     t end
     s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
     :end' >>confcache
if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
  if test -w "$cache_file"; then
    if test "x$cache_file" != "x/dev/null"; then
      { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
$as_echo "$as_me: updating cache $cache_file" >&6;}
      if test ! -f "$cache_file" || test -h "$cache_file"; then
	cat confcache >"$cache_file"
      else
        case $cache_file in #(
        */* | ?:*)
	  mv -f confcache "$cache_file"$$ &&
	  mv -f "$cache_file"$$ "$cache_file" ;; #(
        *)
	  mv -f confcache "$cache_file" ;;
	esac
      fi
    fi
  else
    { $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
rm -f confcache

test "x$prefix" = xNONE && prefix=$ac_default_prefix
# Let make expand exec_prefix.
test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'

DEFS=-DHAVE_CONFIG_H

ac_libobjs=
ac_ltlibobjs=
for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
  # 1. Remove the extension, and $U if already installed.
  ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
  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.
  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

LTLIBOBJS=$ac_ltlibobjs


{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5
$as_echo_n "checking that generated files are newer than configure... " >&6; }
   if test -n "$am_sleep_pid"; then
     # Hide warnings about reused PIDs.
     wait $am_sleep_pid 2>/dev/null
   fi
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5
$as_echo "done" >&6; }
 if test -n "$EXEEXT"; then
  am__EXEEXT_TRUE=
  am__EXEEXT_FALSE='#'
else
  am__EXEEXT_TRUE='#'
  am__EXEEXT_FALSE=
fi

if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
  as_fn_error $? "conditional \"AMDEP\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
  as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${PRERELEASE_TRUE}" && test -z "${PRERELEASE_FALSE}"; then
  as_fn_error $? "conditional \"PRERELEASE\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${RUNLINT_TRUE}" && test -z "${RUNLINT_FALSE}"; then
  as_fn_error $? "conditional \"RUNLINT\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${SERVER_INTERPOSITION_TRUE}" && test -z "${SERVER_INTERPOSITION_FALSE}"; then
  as_fn_error $? "conditional \"SERVER_INTERPOSITION\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${SERVER_INTERPOSITION_ALWAYS_TRUE}" && test -z "${SERVER_INTERPOSITION_ALWAYS_FALSE}"; then
  as_fn_error $? "conditional \"SERVER_INTERPOSITION_ALWAYS\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${HAVEMOD_PAC_TRUE}" && test -z "${HAVEMOD_PAC_FALSE}"; then
  as_fn_error $? "conditional \"HAVEMOD_PAC\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi

: "${CONFIG_STATUS=./config.status}"
ac_write_fail=0
ac_clean_files_save=$ac_clean_files
ac_clean_files="$ac_clean_files $CONFIG_STATUS"
{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
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.
# Compiler output produced by configure, useful for debugging
# configure, is in config.log if it exists.

debug=false
ac_cs_recheck=false
ac_cs_silent=false

SHELL=\${CONFIG_SHELL-$SHELL}
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 :
  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_nl='
'
export as_nl
# Printing a long string crashes Solaris 7 /usr/bin/printf.
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
# 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
  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
    as_echo_n='/usr/ucb/echo -n'
  else
    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
    as_echo_n_body='eval
      arg=$1;
      case $arg in #(
      *"$as_nl"*)
	expr "X$arg" : "X\\(.*\\)$as_nl";
	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
      esac;
      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
    '
    export as_echo_n_body
    as_echo_n='sh -c $as_echo_n_body as_echo'
  fi
  export as_echo_body
  as_echo='sh -c $as_echo_body as_echo'
fi

# The user is always right.
if test "${PATH_SEPARATOR+set}" != set; then
  PATH_SEPARATOR=:
  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
      PATH_SEPARATOR=';'
  }
fi


# IFS
# We need space, tab and new line, in precisely that order.  Quoting is
# there to prevent editors from complaining about space-tab.
# (If _AS_PATH_WALK were called with IFS unset, it would disable word
# splitting by setting IFS to empty value.)
IFS=" ""	$as_nl"

# Find who we are.  Look in the path if we contain no directory separator.
as_myself=
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
IFS=$as_save_IFS

     ;;
esac
# We did not find ourselves, most probably we were run as `sh COMMAND'
# in which case we are not to be found in the path.
if test "x$as_myself" = x; then
  as_myself=$0
fi
if test ! -f "$as_myself"; then
  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
  exit 1
fi

# 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='> '
PS4='+ '

# NLS nuisances.
LC_ALL=C
export LC_ALL
LANGUAGE=C
export LANGUAGE

# CDPATH.
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH


# as_fn_error STATUS 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=$1; test $as_status -eq 0 && as_status=1
  if test "$4"; then
    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
  fi
  $as_echo "$as_me: error: $2" >&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
else
  as_expr=false
fi

if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
  as_basename=basename
else
  as_basename=false
fi

if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
  as_dirname=dirname
else
  as_dirname=false
fi

as_me=`$as_basename -- "$0" ||
$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
	 X"$0" : 'X\(//\)$' \| \
	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
$as_echo X/"$0" |
    sed '/^.*\/\([^/][^/]*\)\/*$/{
	    s//\1/
	    q
	  }
	  /^X\/\(\/\/\)$/{
	    s//\1/
	    q
	  }
	  /^X\/\(\/\).*/{
	    s//\1/
	    q
	  }
	  s/.*/./; q'`

# 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 #(((((
-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

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 -pR'.
    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
      as_ln_s='cp -pR'
  elif ln conf$$.file conf$$ 2>/dev/null; then
    as_ln_s=ln
  else
    as_ln_s='cp -pR'
  fi
else
  as_ln_s='cp -pR'
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='mkdir -p "$as_dir"'
else
  test -d ./-p && rmdir ./-p
  as_mkdir_p=false
fi


# as_fn_executable_p FILE
# -----------------------
# Test if FILE is an executable regular file.
as_fn_executable_p ()
{
  test -f "$1" && test -x "$1"
} # as_fn_executable_p
as_test_x='test -x'
as_executable_p=as_fn_executable_p

# 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 6>&1
## ----------------------------------- ##
## Main body of $CONFIG_STATUS script. ##
## ----------------------------------- ##
_ASEOF
test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1

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.69.  Invocation command line was

  CONFIG_FILES    = $CONFIG_FILES
  CONFIG_HEADERS  = $CONFIG_HEADERS
  CONFIG_LINKS    = $CONFIG_LINKS
  CONFIG_COMMANDS = $CONFIG_COMMANDS
  $ $0 $@

on `(hostname || uname -n) 2>/dev/null | sed 1q`
"

_ACEOF

case $ac_config_files in *"
"*) set x $ac_config_files; shift; ac_config_files=$*;;
esac

case $ac_config_headers in *"
"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
esac


cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
# Files that config.status was made for.
config_files="$ac_config_files"
config_headers="$ac_config_headers"
config_links="$ac_config_links"
config_commands="$ac_config_commands"

_ACEOF

cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
ac_cs_usage="\
\`$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]... [TAG]...

  -h, --help       print this help, then exit
  -V, --version    print version number and configuration settings, then exit
      --config     print configuration, then exit
  -q, --quiet, --silent
                   do not print progress messages
  -d, --debug      don't remove temporary files
      --recheck    update $as_me by reconfiguring in the same conditions
      --file=FILE[:TEMPLATE]
                   instantiate the configuration file FILE
      --header=FILE[:TEMPLATE]
                   instantiate the configuration header FILE

Configuration files:
$config_files

Configuration headers:
$config_headers

Configuration links:
$config_links

Configuration commands:
$config_commands

Report bugs to the package provider."

_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
config.status
configured by $0, generated by GNU Autoconf 2.69,
  with options \\"\$ac_cs_config\\"

Copyright (C) 2012 Free Software Foundation, Inc.
This config.status script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it."

ac_pwd='$ac_pwd'
srcdir='$srcdir'
INSTALL='$INSTALL'
MKDIR_P='$MKDIR_P'
AWK='$AWK'
test -n "\$AWK" || AWK=awk
_ACEOF

cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# The default lists apply if the user does not specify any file.
ac_need_defaults=:
while test $# != 0
do
  case $1 in
  --*=?*)
    ac_option=`expr "X$1" : 'X\([^=]*\)='`
    ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
    ac_shift=:
    ;;
  --*=)
    ac_option=`expr "X$1" : 'X\([^=]*\)='`
    ac_optarg=
    ac_shift=:
    ;;
  *)
    ac_option=$1
    ac_optarg=$2
    ac_shift=shift
    ;;
  esac

  case $ac_option in
  # Handling of the options.
  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
    ac_cs_recheck=: ;;
  --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
    $as_echo "$ac_cs_version"; exit ;;
  --config | --confi | --conf | --con | --co | --c )
    $as_echo "$ac_cs_config"; exit ;;
  --debug | --debu | --deb | --de | --d | -d )
    debug=: ;;
  --file | --fil | --fi | --f )
    $ac_shift
    case $ac_optarg in
    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
    '') as_fn_error $? "missing file argument" ;;
    esac
    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
    as_fn_append CONFIG_HEADERS " '$ac_optarg'"
    ac_need_defaults=false;;
  --he | --h)
    # Conflict between --help and --header
    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 \
  | -silent | --silent | --silen | --sile | --sil | --si | --s)
    ac_cs_silent=: ;;

  # This is an error.
  -*) as_fn_error $? "unrecognized option: \`$1'
Try \`$0 --help' for more information." ;;

  *) as_fn_append ac_config_targets " $1"
     ac_need_defaults=false ;;

  esac
  shift
done

ac_configure_extra_args=

if $ac_cs_silent; then
  exec 6>/dev/null
  ac_configure_extra_args="$ac_configure_extra_args --silent"
fi

_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
if \$ac_cs_recheck; then
  set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
  shift
  \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
  CONFIG_SHELL='$SHELL'
  export CONFIG_SHELL
  exec "\$@"
fi

_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
exec 5>>config.log
{
  echo
  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
## Running $as_me. ##
_ASBOX
  $as_echo "$ac_log"
} >&5

_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
#
# INIT-COMMANDS
#
AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"


# The HP-UX ksh and POSIX shell print the target directory to stdout
# if CDPATH is set.
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH

sed_quote_subst='$sed_quote_subst'
double_quote_subst='$double_quote_subst'
delay_variable_subst='$delay_variable_subst'
macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`'
macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`'
enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`'
enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`'
pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`'
enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`'
SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`'
ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`'
PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`'
host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`'
host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`'
host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`'
build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`'
build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`'
build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`'
SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`'
Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`'
GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`'
EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`'
FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`'
LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`'
NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`'
LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`'
max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`'
ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`'
exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`'
lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`'
reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`'
want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`'
DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`'
sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`'
AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'
archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`'
STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`'
lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`'
CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`'
CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`'
compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`'
GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`'
lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`'
lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`'
lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`'
objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`'
MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`'
lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`'
lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`'
lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`'
lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`'
need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`'
MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`'
DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`'
OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`'
libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`'
shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`'
extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`'
enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`'
export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`'
whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`'
compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`'
old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`'
old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`'
archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`'
module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`'
module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`'
with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`'
allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`'
no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`'
hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`'
hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`'
hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`'
hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`'
hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`'
hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`'
hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`'
export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`'
exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`'
include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`'
prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`'
postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`'
file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`'
version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`'
runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`'
shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`'
shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`'
libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`'
library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`'
soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`'
install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`'
postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`'
postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`'
finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`'
hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`'
sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`'
sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`'
hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`'
enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`'
enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`'
enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`'
old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`'
striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`'

LTCC='$LTCC'
LTCFLAGS='$LTCFLAGS'
compiler='$compiler_DEFAULT'

# A function that is used when there is no print builtin or printf.
func_fallback_echo ()
{
  eval 'cat <<_LTECHO_EOF
\$1
_LTECHO_EOF'
}

# Quote evaled strings.
for var in SHELL \
ECHO \
PATH_SEPARATOR \
SED \
GREP \
EGREP \
FGREP \
LD \
NM \
LN_S \
lt_SP2NL \
lt_NL2SP \
reload_flag \
OBJDUMP \
deplibs_check_method \
file_magic_cmd \
file_magic_glob \
want_nocaseglob \
DLLTOOL \
sharedlib_from_linklib_cmd \
AR \
AR_FLAGS \
archiver_list_spec \
STRIP \
RANLIB \
CC \
CFLAGS \
compiler \
lt_cv_sys_global_symbol_pipe \
lt_cv_sys_global_symbol_to_cdecl \
lt_cv_sys_global_symbol_to_c_name_address \
lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
nm_file_list_spec \
lt_prog_compiler_no_builtin_flag \
lt_prog_compiler_pic \
lt_prog_compiler_wl \
lt_prog_compiler_static \
lt_cv_prog_compiler_c_o \
need_locks \
MANIFEST_TOOL \
DSYMUTIL \
NMEDIT \
LIPO \
OTOOL \
OTOOL64 \
shrext_cmds \
export_dynamic_flag_spec \
whole_archive_flag_spec \
compiler_needs_object \
with_gnu_ld \
allow_undefined_flag \
no_undefined_flag \
hardcode_libdir_flag_spec \
hardcode_libdir_separator \
exclude_expsyms \
include_expsyms \
file_list_spec \
variables_saved_for_relink \
libname_spec \
library_names_spec \
soname_spec \
install_override_mode \
finish_eval \
old_striplib \
striplib; do
    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
    *[\\\\\\\`\\"\\\$]*)
      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
      ;;
    *)
      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
      ;;
    esac
done

# Double-quote double-evaled strings.
for var in reload_cmds \
old_postinstall_cmds \
old_postuninstall_cmds \
old_archive_cmds \
extract_expsyms_cmds \
old_archive_from_new_cmds \
old_archive_from_expsyms_cmds \
archive_cmds \
archive_expsym_cmds \
module_cmds \
module_expsym_cmds \
export_symbols_cmds \
prelink_cmds \
postlink_cmds \
postinstall_cmds \
postuninstall_cmds \
finish_cmds \
sys_lib_search_path_spec \
sys_lib_dlsearch_path_spec; do
    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
    *[\\\\\\\`\\"\\\$]*)
      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
      ;;
    *)
      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
      ;;
    esac
done

ac_aux_dir='$ac_aux_dir'
xsi_shell='$xsi_shell'
lt_shell_append='$lt_shell_append'

# See if we are running on zsh, and set the options which allow our
# commands through without removal of \ escapes INIT.
if test -n "\${ZSH_VERSION+set}" ; then
   setopt NO_GLOB_SUBST
fi


    PACKAGE='$PACKAGE'
    VERSION='$VERSION'
    TIMESTAMP='$TIMESTAMP'
    RM='$RM'
    ofile='$ofile'




_ACEOF

cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1

# Handling of arguments.
for ac_config_target in $ac_config_targets
do
  case $ac_config_target in
    "include/autoconf.h") CONFIG_HEADERS="$CONFIG_HEADERS include/autoconf.h" ;;
    "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
    "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
    "bin/socksify") CONFIG_FILES="$CONFIG_FILES bin/socksify" ;;
    "capi/socks.h") CONFIG_FILES="$CONFIG_FILES capi/socks.h" ;;
    "$ac_config_links_1") CONFIG_LINKS="$CONFIG_LINKS $ac_config_links_1" ;;
    "$ac_config_links_2") CONFIG_LINKS="$CONFIG_LINKS $ac_config_links_2" ;;
    "$ac_config_links_3") CONFIG_LINKS="$CONFIG_LINKS $ac_config_links_3" ;;
    "$ac_config_links_4") CONFIG_LINKS="$CONFIG_LINKS $ac_config_links_4" ;;
    "$ac_config_links_5") CONFIG_LINKS="$CONFIG_LINKS $ac_config_links_5" ;;
    "$ac_config_links_6") CONFIG_LINKS="$CONFIG_LINKS $ac_config_links_6" ;;
    "$ac_config_links_7") CONFIG_LINKS="$CONFIG_LINKS $ac_config_links_7" ;;
    "$ac_config_links_8") CONFIG_LINKS="$CONFIG_LINKS $ac_config_links_8" ;;
    "$ac_config_links_9") CONFIG_LINKS="$CONFIG_LINKS $ac_config_links_9" ;;
    "$ac_config_links_10") CONFIG_LINKS="$CONFIG_LINKS $ac_config_links_10" ;;
    "$ac_config_links_11") CONFIG_LINKS="$CONFIG_LINKS $ac_config_links_11" ;;
    "$ac_config_links_12") CONFIG_LINKS="$CONFIG_LINKS $ac_config_links_12" ;;
    "sockd/Makefile") CONFIG_FILES="$CONFIG_FILES sockd/Makefile" ;;
    "include/Makefile") CONFIG_FILES="$CONFIG_FILES include/Makefile" ;;
    "lib/Makefile") CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;;
    "dlib/Makefile") CONFIG_FILES="$CONFIG_FILES dlib/Makefile" ;;
    "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
    "example/Makefile") CONFIG_FILES="$CONFIG_FILES example/Makefile" ;;
    "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
    "bin/Makefile") CONFIG_FILES="$CONFIG_FILES bin/Makefile" ;;
    "capi/Makefile") CONFIG_FILES="$CONFIG_FILES capi/Makefile" ;;
    "SPECS/Makefile") CONFIG_FILES="$CONFIG_FILES SPECS/Makefile" ;;
    "SPECS/dante.spec") CONFIG_FILES="$CONFIG_FILES SPECS/dante.spec" ;;
    "libscompat/Makefile") CONFIG_FILES="$CONFIG_FILES libscompat/Makefile" ;;
    "contrib/Makefile") CONFIG_FILES="$CONFIG_FILES contrib/Makefile" ;;
    "unlicensed/Makefile") CONFIG_FILES="$CONFIG_FILES unlicensed/Makefile" ;;
    "VERSION") CONFIG_FILES="$CONFIG_FILES VERSION" ;;
    "dlib64/Makefile") CONFIG_FILES="$CONFIG_FILES dlib64/Makefile" ;;

  *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
  esac
done


# If the user did not use the arguments to specify the items to instantiate,
# then the envvar interface is used.  Set only those that are not.
# We use the long form for the default assignment because of an extremely
# bizarre bug on SunOS 4.1.3.
if $ac_need_defaults; then
  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
  test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
  test "${CONFIG_LINKS+set}" = set || CONFIG_LINKS=$config_links
  test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
fi

# Have a temporary directory for convenience.  Make it in the build tree
# simply because there is no reason against having it here, and in addition,
# creating and moving files from /tmp can sometimes cause problems.
# Hook for its removal unless debugging.
# Note that there is a small window in which the directory will not be cleaned:
# after its creation but before its name has been assigned to `$tmp'.
$debug ||
{
  tmp= ac_tmp=
  trap 'exit_status=$?
  : "${ac_tmp:=$tmp}"
  { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
' 0
  trap 'as_fn_exit 1' 1 2 13 15
}
# Create a (secure) tmp directory for tmp files.

{
  tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
  test -d "$tmp"
}  ||
{
  tmp=./conf$$-$RANDOM
  (umask 077 && mkdir "$tmp")
} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
ac_tmp=$tmp

# Set up the scripts for CONFIG_FILES section.
# No need to generate them if there are no CONFIG_FILES.
# This happens for instance with `./config.status config.h'.
if test -n "$CONFIG_FILES"; then


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'
else
  ac_cs_awk_cr=$ac_cr
fi

echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
_ACEOF


{
  echo "cat >conf$$subs.awk <<_ACEOF" &&
  echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
  echo "_ACEOF"
} >conf$$subs.sh ||
  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_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_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
  else
    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
  fi
done
rm -f conf$$subs.sh

cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
_ACEOF
sed -n '
h
s/^/S["/; s/!.*/"]=/
p
g
s/^[^!]*!//
:repl
t repl
s/'"$ac_delim"'$//
t delim
:nl
h
s/\(.\{148\}\)..*/\1/
t more1
s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
p
n
b repl
:more1
s/["\\]/\\&/g; s/^/"/; s/$/"\\/
p
g
s/.\{148\}//
t nl
:delim
h
s/\(.\{148\}\)..*/\1/
t more2
s/["\\]/\\&/g; s/^/"/; s/$/"/
p
b
:more2
s/["\\]/\\&/g; s/^/"/; s/$/"\\/
p
g
s/.\{148\}//
t delim
' <conf$$subs.awk | sed '
/^[^""]/{
  N
  s/\n//
}
' >>$CONFIG_STATUS || ac_write_fail=1
rm -f conf$$subs.awk
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
_ACAWK
cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
  for (key in S) S_is_set[key] = 1
  FS = ""

}
{
  line = $ 0
  nfields = split(line, field, "@")
  substed = 0
  len = length(field[1])
  for (i = 2; i < nfields; i++) {
    key = field[i]
    keylen = length(key)
    if (S_is_set[key]) {
      value = S[key]
      line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
      len += length(value) + length(field[++i])
      substed = 1
    } else
      len += 1 + keylen
  }

  print line
}

_ACAWK
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
  sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
else
  cat
fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
  || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
_ACEOF

# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
# trailing colons and then remove the whole line if VPATH becomes empty
# (actually we leave an empty line to preserve line numbers).
if test "x$srcdir" = x.; then
  ac_vpsub='/^[	 ]*VPATH[	 ]*=[	 ]*/{
h
s///
s/^/:/
s/[	 ]*$/:/
s/:\$(srcdir):/:/g
s/:\${srcdir}:/:/g
s/:@srcdir@:/:/g
s/^:*//
s/:*$//
x
s/\(=[	 ]*\).*/\1/
G
s/\n//
s/^[^=]*=[	 ]*$//
}'
fi

cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
fi # test -n "$CONFIG_FILES"

# Set up the scripts for CONFIG_HEADERS section.
# No need to generate them if there are no CONFIG_HEADERS.
# This happens for instance with `./config.status Makefile'.
if test -n "$CONFIG_HEADERS"; then
cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
BEGIN {
_ACEOF

# Transform confdefs.h into an awk script `defines.awk', embedded as
# here-document in config.status, that substitutes the proper values into
# config.h.in to produce config.h.

# Create a delimiter string that does not exist in confdefs.h, to ease
# handling of long lines.
ac_delim='%!_!# '
for ac_last_try in false false :; do
  ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
  if test -z "$ac_tt"; then
    break
  elif $ac_last_try; then
    as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
  else
    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
  fi
done

# For the awk script, D is an array of macro values keyed by name,
# likewise P contains macro parameters if any.  Preserve backslash
# newline sequences.

ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
sed -n '
s/.\{148\}/&'"$ac_delim"'/g
t rset
:rset
s/^[	 ]*#[	 ]*define[	 ][	 ]*/ /
t def
d
:def
s/\\$//
t bsnl
s/["\\]/\\&/g
s/^ \('"$ac_word_re"'\)\(([^()]*)\)[	 ]*\(.*\)/P["\1"]="\2"\
D["\1"]=" \3"/p
s/^ \('"$ac_word_re"'\)[	 ]*\(.*\)/D["\1"]=" \2"/p
d
:bsnl
s/["\\]/\\&/g
s/^ \('"$ac_word_re"'\)\(([^()]*)\)[	 ]*\(.*\)/P["\1"]="\2"\
D["\1"]=" \3\\\\\\n"\\/p
t cont
s/^ \('"$ac_word_re"'\)[	 ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
t cont
d
:cont
n
s/.\{148\}/&'"$ac_delim"'/g
t clear
:clear
s/\\$//
t bsnlc
s/["\\]/\\&/g; s/^/"/; s/$/"/p
d
:bsnlc
s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
b cont
' <confdefs.h | sed '
s/'"$ac_delim"'/"\\\
"/g' >>$CONFIG_STATUS || ac_write_fail=1

cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
  for (key in D) D_is_set[key] = 1
  FS = ""
}
/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
  line = \$ 0
  split(line, arg, " ")
  if (arg[1] == "#") {
    defundef = arg[2]
    mac1 = arg[3]
  } else {
    defundef = substr(arg[1], 2)
    mac1 = arg[2]
  }
  split(mac1, mac2, "(") #)
  macro = mac2[1]
  prefix = substr(line, 1, index(line, defundef) - 1)
  if (D_is_set[macro]) {
    # Preserve the white space surrounding the "#".
    print prefix "define", macro P[macro] D[macro]
    next
  } else {
    # Replace #undef with comments.  This is necessary, for example,
    # in the case of _POSIX_SOURCE, which is predefined and required
    # on some systems where configure will not decide to define it.
    if (defundef == "undef") {
      print "/*", prefix defundef, macro, "*/"
      next
    }
  }
}
{ print }
_ACAWK
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
  as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
fi # test -n "$CONFIG_HEADERS"


eval set X "  :F $CONFIG_FILES  :H $CONFIG_HEADERS  :L $CONFIG_LINKS  :C $CONFIG_COMMANDS"
shift
for ac_tag
do
  case $ac_tag in
  :[FHLC]) ac_mode=$ac_tag; continue;;
  esac
  case $ac_mode$ac_tag in
  :[FHL]*:*);;
  :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
  :[FH]-) ac_tag=-:-;;
  :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
  esac
  ac_save_IFS=$IFS
  IFS=:
  set x $ac_tag
  IFS=$ac_save_IFS
  shift
  ac_file=$1
  shift

  case $ac_mode in
  :L) ac_source=$1;;
  :[FH])
    ac_file_inputs=
    for ac_f
    do
      case $ac_f in
      -) ac_f="$ac_tmp/stdin";;
      *) # Look for the file first in the build tree, then in the source tree
	 # (if the path is not absolute).  The absolute path cannot be DOS-style,
	 # because $ac_f cannot contain `:'.
	 test -f "$ac_f" ||
	   case $ac_f in
	   [\\/$]*) false;;
	   *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
	   esac ||
	   as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
      esac
      case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
      as_fn_append ac_file_inputs " '$ac_f'"
    done

    # Let's still pretend it is `configure' which instantiates (i.e., don't
    # use $as_me), people would be surprised to read:
    #    /* config.h.  Generated by config.status.  */
    configure_input='Generated from '`
	  $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
	`' by configure.'
    if test x"$ac_file" != x-; then
      configure_input="$ac_file.  $configure_input"
      { $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.
    case $configure_input in #(
    *\&* | *\|* | *\\* )
       ac_sed_conf_input=`$as_echo "$configure_input" |
       sed 's/[\\\\&|]/\\\\&/g'`;; #(
    *) ac_sed_conf_input=$configure_input;;
    esac

    case $ac_tag in
    *:-:* | *:-) cat >"$ac_tmp/stdin" \
      || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
    esac
    ;;
  esac

  ac_dir=`$as_dirname -- "$ac_file" ||
$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
	 X"$ac_file" : 'X\(//\)[^/]' \| \
	 X"$ac_file" : 'X\(//\)$' \| \
	 X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
$as_echo X"$ac_file" |
    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
	    s//\1/
	    q
	  }
	  /^X\(\/\/\)[^/].*/{
	    s//\1/
	    q
	  }
	  /^X\(\/\/\)$/{
	    s//\1/
	    q
	  }
	  /^X\(\/\).*/{
	    s//\1/
	    q
	  }
	  s/.*/./; q'`
  as_dir="$ac_dir"; as_fn_mkdir_p
  ac_builddir=.

case "$ac_dir" in
.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
*)
  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
  # A ".." for each directory in $ac_dir_suffix.
  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
  case $ac_top_builddir_sub in
  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
  esac ;;
esac
ac_abs_top_builddir=$ac_pwd
ac_abs_builddir=$ac_pwd$ac_dir_suffix
# for backward compatibility:
ac_top_builddir=$ac_top_build_prefix

case $srcdir in
  .)  # We are building in place.
    ac_srcdir=.
    ac_top_srcdir=$ac_top_builddir_sub
    ac_abs_top_srcdir=$ac_pwd ;;
  [\\/]* | ?:[\\/]* )  # Absolute name.
    ac_srcdir=$srcdir$ac_dir_suffix;
    ac_top_srcdir=$srcdir
    ac_abs_top_srcdir=$srcdir ;;
  *) # Relative name.
    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
    ac_top_srcdir=$ac_top_build_prefix$srcdir
    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
esac
ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix


  case $ac_mode in
  :F)
  #
  # CONFIG_FILE
  #

  case $INSTALL in
  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
  *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
  esac
  ac_MKDIR_P=$MKDIR_P
  case $MKDIR_P in
  [\\/$]* | ?:[\\/]* ) ;;
  */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
  esac
_ACEOF

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
  q
}
/@datadir@/p
/@docdir@/p
/@infodir@/p
/@localedir@/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:${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
  ac_datarootdir_hack='
  s&@datadir@&$datadir&g
  s&@docdir@&$docdir&g
  s&@infodir@&$infodir&g
  s&@localedir@&$localedir&g
  s&@mandir@&$mandir&g
  s&\\\${datarootdir}&$datarootdir&g' ;;
esac
_ACEOF

# Neutralize VPATH when `$srcdir' = `.'.
# Shell code in configure.ac might set extrasub.
# FIXME: do we really want to maintain this feature?
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_sed_extra="$ac_vpsub
$extrasub
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
:t
/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
s|@configure_input@|$ac_sed_conf_input|;t t
s&@top_builddir@&$ac_top_builddir_sub&;t t
s&@top_build_prefix@&$ac_top_build_prefix&;t t
s&@srcdir@&$ac_srcdir&;t t
s&@abs_srcdir@&$ac_abs_srcdir&;t t
s&@top_srcdir@&$ac_top_srcdir&;t t
s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
s&@builddir@&$ac_builddir&;t t
s&@abs_builddir@&$ac_abs_builddir&;t t
s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
s&@INSTALL@&$ac_INSTALL&;t t
s&@MKDIR_P@&$ac_MKDIR_P&;t t
$ac_datarootdir_hack
"
eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
  >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5

test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
  { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
  { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' \
      "$ac_tmp/out"`; test -z "$ac_out"; } &&
  { $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;}

  rm -f "$ac_tmp/stdin"
  case $ac_file in
  -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
  *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
  esac \
  || as_fn_error $? "could not create $ac_file" "$LINENO" 5
 ;;
  :H)
  #
  # CONFIG_HEADER
  #
  if test x"$ac_file" != x-; then
    {
      $as_echo "/* $configure_input  */" \
      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
    } >"$ac_tmp/config.h" \
      || as_fn_error $? "could not create $ac_file" "$LINENO" 5
    if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
      { $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 "$ac_tmp/config.h" "$ac_file" \
	|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
    fi
  else
    $as_echo "/* $configure_input  */" \
      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
      || as_fn_error $? "could not create -" "$LINENO" 5
  fi
# Compute "$ac_file"'s index in $config_headers.
_am_arg="$ac_file"
_am_stamp_count=1
for _am_header in $config_headers :; do
  case $_am_header in
    $_am_arg | $_am_arg:* )
      break ;;
    * )
      _am_stamp_count=`expr $_am_stamp_count + 1` ;;
  esac
done
echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" ||
$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
	 X"$_am_arg" : 'X\(//\)[^/]' \| \
	 X"$_am_arg" : 'X\(//\)$' \| \
	 X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null ||
$as_echo X"$_am_arg" |
    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
	    s//\1/
	    q
	  }
	  /^X\(\/\/\)[^/].*/{
	    s//\1/
	    q
	  }
	  /^X\(\/\/\)$/{
	    s//\1/
	    q
	  }
	  /^X\(\/\).*/{
	    s//\1/
	    q
	  }
	  s/.*/./; q'`/stamp-h$_am_stamp_count
 ;;
  :L)
  #
  # CONFIG_LINK
  #

  if test "$ac_source" = "$ac_file" && test "$srcdir" = '.'; then
    :
  else
    # Prefer the file from the source tree if names are identical.
    if test "$ac_source" = "$ac_file" || test ! -r "$ac_source"; then
      ac_source=$srcdir/$ac_source
    fi

    { $as_echo "$as_me:${as_lineno-$LINENO}: linking $ac_source to $ac_file" >&5
$as_echo "$as_me: linking $ac_source to $ac_file" >&6;}

    if test ! -r "$ac_source"; then
      as_fn_error $? "$ac_source: file not found" "$LINENO" 5
    fi
    rm -f "$ac_file"

    # Try a relative symlink, then a hard link, then a copy.
    case $ac_source in
    [\\/$]* | ?:[\\/]* ) ac_rel_source=$ac_source ;;
	*) ac_rel_source=$ac_top_build_prefix$ac_source ;;
    esac
    ln -s "$ac_rel_source" "$ac_file" 2>/dev/null ||
      ln "$ac_source" "$ac_file" 2>/dev/null ||
      cp -p "$ac_source" "$ac_file" ||
      as_fn_error $? "cannot link or copy $ac_source to $ac_file" "$LINENO" 5
  fi
 ;;
  :C)  { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
$as_echo "$as_me: executing $ac_file commands" >&6;}
 ;;
  esac


  case $ac_file$ac_mode in
    "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
  # Older Autoconf quotes --file arguments for eval, but not when files
  # are listed without --file.  Let's play safe and only enable the eval
  # if we detect the quoting.
  case $CONFIG_FILES in
  *\'*) eval set x "$CONFIG_FILES" ;;
  *)   set x $CONFIG_FILES ;;
  esac
  shift
  for mf
  do
    # Strip MF so we end up with the name of the file.
    mf=`echo "$mf" | sed -e 's/:.*$//'`
    # Check whether this is an Automake generated Makefile or not.
    # We used to match only the files named 'Makefile.in', but
    # some people rename them; so instead we look at the file content.
    # Grep'ing the first line is not enough: some people post-process
    # each Makefile.in and add a new line on top of each file to say so.
    # Grep'ing the whole file is not good either: AIX grep has a line
    # limit of 2048, but all sed's we know have understand at least 4000.
    if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
      dirpart=`$as_dirname -- "$mf" ||
$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
	 X"$mf" : 'X\(//\)[^/]' \| \
	 X"$mf" : 'X\(//\)$' \| \
	 X"$mf" : 'X\(/\)' \| . 2>/dev/null ||
$as_echo X"$mf" |
    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
	    s//\1/
	    q
	  }
	  /^X\(\/\/\)[^/].*/{
	    s//\1/
	    q
	  }
	  /^X\(\/\/\)$/{
	    s//\1/
	    q
	  }
	  /^X\(\/\).*/{
	    s//\1/
	    q
	  }
	  s/.*/./; q'`
    else
      continue
    fi
    # Extract the definition of DEPDIR, am__include, and am__quote
    # from the Makefile without running 'make'.
    DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
    test -z "$DEPDIR" && continue
    am__include=`sed -n 's/^am__include = //p' < "$mf"`
    test -z "$am__include" && continue
    am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
    # Find all dependency output files, they are included files with
    # $(DEPDIR) in their names.  We invoke sed twice because it is the
    # simplest approach to changing $(DEPDIR) to its actual value in the
    # expansion.
    for file in `sed -n "
      s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
	 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
      # Make sure the directory exists.
      test -f "$dirpart/$file" && continue
      fdir=`$as_dirname -- "$file" ||
$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
	 X"$file" : 'X\(//\)[^/]' \| \
	 X"$file" : 'X\(//\)$' \| \
	 X"$file" : 'X\(/\)' \| . 2>/dev/null ||
$as_echo X"$file" |
    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
	    s//\1/
	    q
	  }
	  /^X\(\/\/\)[^/].*/{
	    s//\1/
	    q
	  }
	  /^X\(\/\/\)$/{
	    s//\1/
	    q
	  }
	  /^X\(\/\).*/{
	    s//\1/
	    q
	  }
	  s/.*/./; q'`
      as_dir=$dirpart/$fdir; as_fn_mkdir_p
      # echo "creating $dirpart/$file"
      echo '# dummy' > "$dirpart/$file"
    done
  done
}
 ;;
    "libtool":C)

    # See if we are running on zsh, and set the options which allow our
    # commands through without removal of \ escapes.
    if test -n "${ZSH_VERSION+set}" ; then
      setopt NO_GLOB_SUBST
    fi

    cfgfile="${ofile}T"
    trap "$RM \"$cfgfile\"; exit 1" 1 2 15
    $RM "$cfgfile"

    cat <<_LT_EOF >> "$cfgfile"
#! $SHELL

# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
# NOTE: Changes made to this file will be lost: look at ltmain.sh.
#
#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
#                 2006, 2007, 2008, 2009, 2010, 2011 Free Software
#                 Foundation, Inc.
#   Written by Gordon Matzigkeit, 1996
#
#   This file is part of GNU Libtool.
#
# GNU Libtool 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.
#
# As a special exception to the GNU General Public License,
# if you distribute this file as part of a program or library that
# is built using GNU Libtool, you may include this file under the
# same distribution terms that you use for the rest of that program.
#
# GNU Libtool 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 GNU Libtool; see the file COPYING.  If not, a copy
# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
# obtained by writing to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.


# The names of the tagged configurations supported by this script.
available_tags=""

# ### BEGIN LIBTOOL CONFIG

# Which release of libtool.m4 was used?
macro_version=$macro_version
macro_revision=$macro_revision

# Whether or not to build shared libraries.
build_libtool_libs=$enable_shared

# Whether or not to build static libraries.
build_old_libs=$enable_static

# What type of objects to build.
pic_mode=$pic_mode

# Whether or not to optimize for fast installation.
fast_install=$enable_fast_install

# Shell to use when invoking shell scripts.
SHELL=$lt_SHELL

# An echo program that protects backslashes.
ECHO=$lt_ECHO

# The PATH separator for the build system.
PATH_SEPARATOR=$lt_PATH_SEPARATOR

# The host system.
host_alias=$host_alias
host=$host
host_os=$host_os

# The build system.
build_alias=$build_alias
build=$build
build_os=$build_os

# A sed program that does not truncate output.
SED=$lt_SED

# Sed that helps us avoid accidentally triggering echo(1) options like -n.
Xsed="\$SED -e 1s/^X//"

# A grep program that handles long lines.
GREP=$lt_GREP

# An ERE matcher.
EGREP=$lt_EGREP

# A literal string matcher.
FGREP=$lt_FGREP

# A BSD- or MS-compatible name lister.
NM=$lt_NM

# Whether we need soft or hard links.
LN_S=$lt_LN_S

# What is the maximum length of a command?
max_cmd_len=$max_cmd_len

# Object file suffix (normally "o").
objext=$ac_objext

# Executable file suffix (normally "").
exeext=$exeext

# whether the shell understands "unset".
lt_unset=$lt_unset

# turn spaces into newlines.
SP2NL=$lt_lt_SP2NL

# turn newlines into spaces.
NL2SP=$lt_lt_NL2SP

# convert \$build file names to \$host format.
to_host_file_cmd=$lt_cv_to_host_file_cmd

# convert \$build files to toolchain format.
to_tool_file_cmd=$lt_cv_to_tool_file_cmd

# An object symbol dumper.
OBJDUMP=$lt_OBJDUMP

# 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

# How to find potential files when deplibs_check_method = "file_magic".
file_magic_glob=$lt_file_magic_glob

# Find potential files using nocaseglob when deplibs_check_method = "file_magic".
want_nocaseglob=$lt_want_nocaseglob

# DLL creation program.
DLLTOOL=$lt_DLLTOOL

# Command to associate shared and link libraries.
sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd

# The archiver.
AR=$lt_AR

# Flags to create an archive.
AR_FLAGS=$lt_AR_FLAGS

# How to feed a file listing to the archiver.
archiver_list_spec=$lt_archiver_list_spec

# A symbol stripping program.
STRIP=$lt_STRIP

# Commands used to install an old-style archive.
RANLIB=$lt_RANLIB
old_postinstall_cmds=$lt_old_postinstall_cmds
old_postuninstall_cmds=$lt_old_postuninstall_cmds

# Whether to use a lock for old archive extraction.
lock_old_archive_extraction=$lock_old_archive_extraction

# A C compiler.
LTCC=$lt_CC

# LTCC compiler flags.
LTCFLAGS=$lt_CFLAGS

# Take the output of nm and produce a listing of raw symbols and C names.
global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe

# Transform the output of nm in a proper C declaration.
global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl

# Transform the output of nm in a C name address pair.
global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address

# Transform the output of nm in a C name address pair when lib prefix is needed.
global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix

# Specify filename containing input files for \$NM.
nm_file_list_spec=$lt_nm_file_list_spec

# The root where to search for dependent libraries,and in which our libraries should be installed.
lt_sysroot=$lt_sysroot

# The name of the directory that contains temporary libtool files.
objdir=$objdir

# Used to examine libraries when file_magic_cmd begins with "file".
MAGIC_CMD=$MAGIC_CMD

# Must we lock files when doing compilation?
need_locks=$lt_need_locks

# Manifest tool.
MANIFEST_TOOL=$lt_MANIFEST_TOOL

# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
DSYMUTIL=$lt_DSYMUTIL

# Tool to change global to local symbols on Mac OS X.
NMEDIT=$lt_NMEDIT

# Tool to manipulate fat objects and archives on Mac OS X.
LIPO=$lt_LIPO

# ldd/readelf like tool for Mach-O binaries on Mac OS X.
OTOOL=$lt_OTOOL

# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4.
OTOOL64=$lt_OTOOL64

# Old archive suffix (normally "a").
libext=$libext

# Shared library suffix (normally ".so").
shrext_cmds=$lt_shrext_cmds

# The commands to extract the exported symbol list from a shared archive.
extract_expsyms_cmds=$lt_extract_expsyms_cmds

# Variables whose values should be saved in libtool wrapper scripts and
# restored at link time.
variables_saved_for_relink=$lt_variables_saved_for_relink

# 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

# Library versioning type.
version_type=$version_type

# Shared library runtime path variable.
runpath_var=$runpath_var

# Shared library path variable.
shlibpath_var=$shlibpath_var

# Is shlibpath searched before the hard-coded library search path?
shlibpath_overrides_runpath=$shlibpath_overrides_runpath

# 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

# Permission mode override for installation of shared libraries.
install_override_mode=$lt_install_override_mode

# Command to use after installation of a shared archive.
postinstall_cmds=$lt_postinstall_cmds

# Command to use after uninstallation of a shared archive.
postuninstall_cmds=$lt_postuninstall_cmds

# Commands used to finish a libtool library installation in a directory.
finish_cmds=$lt_finish_cmds

# As "finish_cmds", except a single script fragment to be evaled but
# not shown.
finish_eval=$lt_finish_eval

# Whether we should hardcode library paths into libraries.
hardcode_into_libs=$hardcode_into_libs

# 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

# 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

# Commands to strip libraries.
old_striplib=$lt_old_striplib
striplib=$lt_striplib


# The linker used to build libraries.
LD=$lt_LD

# How to create reloadable object files.
reload_flag=$lt_reload_flag
reload_cmds=$lt_reload_cmds

# Commands used to build an old-style archive.
old_archive_cmds=$lt_old_archive_cmds

# A language specific compiler.
CC=$lt_compiler

# Is the compiler the GNU compiler?
with_gcc=$GCC

# Compiler flag to turn off builtin functions.
no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag

# Additional compiler flags for building library objects.
pic_flag=$lt_lt_prog_compiler_pic

# How to pass a linker flag through the compiler.
wl=$lt_lt_prog_compiler_wl

# Compiler flag to prevent dynamic linking.
link_static_flag=$lt_lt_prog_compiler_static

# Does compiler simultaneously support -c and -o options?
compiler_c_o=$lt_lt_cv_prog_compiler_c_o

# Whether or not to add -lc for building shared libraries.
build_libtool_need_lc=$archive_cmds_need_lc

# Whether or not to disallow shared libs when runtime libs are static.
allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes

# 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

# Whether the compiler copes with passing no objects directly.
compiler_needs_object=$lt_compiler_needs_object

# 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 a shared archive.
archive_cmds=$lt_archive_cmds
archive_expsym_cmds=$lt_archive_expsym_cmds

# Commands used to build a loadable module if different from building
# a shared archive.
module_cmds=$lt_module_cmds
module_expsym_cmds=$lt_module_expsym_cmds

# Whether we are building with GNU ld or not.
with_gnu_ld=$lt_with_gnu_ld

# Flag that allows shared libraries with undefined symbols to be built.
allow_undefined_flag=$lt_allow_undefined_flag

# Flag that enforces no undefined symbols.
no_undefined_flag=$lt_no_undefined_flag

# 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\${shared_ext} during linking hardcodes
# DIR into the resulting binary.
hardcode_direct=$hardcode_direct

# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
# DIR into the resulting binary and the resulting library dependency is
# "absolute",i.e impossible to change by setting \${shlibpath_var} if the
# library is relocated.
hardcode_direct_absolute=$hardcode_direct_absolute

# 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

# Set to "yes" if building a shared library automatically hardcodes DIR
# into the library and all subsequent libraries and executables linked
# against it.
hardcode_automatic=$hardcode_automatic

# Set to yes if linker adds runtime paths of dependent libraries
# to runtime path list.
inherit_rpath=$inherit_rpath

# Whether libtool must link a program against all its dependency libraries.
link_all_deplibs=$link_all_deplibs

# 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

# 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

# Commands necessary for linking programs (against libraries) with templates.
prelink_cmds=$lt_prelink_cmds

# Commands necessary for finishing linking programs.
postlink_cmds=$lt_postlink_cmds

# Specify filename containing input files.
file_list_spec=$lt_file_list_spec

# How to hardcode a shared library path into an executable.
hardcode_action=$hardcode_action

# ### END LIBTOOL CONFIG

_LT_EOF

  case $host_os in
  aix3*)
    cat <<\_LT_EOF >> "$cfgfile"
# 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
_LT_EOF
    ;;
  esac


ltmain="$ac_aux_dir/ltmain.sh"


  # 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" >> "$cfgfile" \
     || (rm -f "$cfgfile"; exit 1)

  if test x"$xsi_shell" = xyes; then
  sed -e '/^func_dirname ()$/,/^} # func_dirname /c\
func_dirname ()\
{\
\    case ${1} in\
\      */*) func_dirname_result="${1%/*}${2}" ;;\
\      *  ) func_dirname_result="${3}" ;;\
\    esac\
} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \
  && mv -f "$cfgfile.tmp" "$cfgfile" \
    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
test 0 -eq $? || _lt_function_replace_fail=:


  sed -e '/^func_basename ()$/,/^} # func_basename /c\
func_basename ()\
{\
\    func_basename_result="${1##*/}"\
} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \
  && mv -f "$cfgfile.tmp" "$cfgfile" \
    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
test 0 -eq $? || _lt_function_replace_fail=:


  sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\
func_dirname_and_basename ()\
{\
\    case ${1} in\
\      */*) func_dirname_result="${1%/*}${2}" ;;\
\      *  ) func_dirname_result="${3}" ;;\
\    esac\
\    func_basename_result="${1##*/}"\
} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \
  && mv -f "$cfgfile.tmp" "$cfgfile" \
    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
test 0 -eq $? || _lt_function_replace_fail=:


  sed -e '/^func_stripname ()$/,/^} # func_stripname /c\
func_stripname ()\
{\
\    # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\
\    # positional parameters, so assign one to ordinary parameter first.\
\    func_stripname_result=${3}\
\    func_stripname_result=${func_stripname_result#"${1}"}\
\    func_stripname_result=${func_stripname_result%"${2}"}\
} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \
  && mv -f "$cfgfile.tmp" "$cfgfile" \
    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
test 0 -eq $? || _lt_function_replace_fail=:


  sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\
func_split_long_opt ()\
{\
\    func_split_long_opt_name=${1%%=*}\
\    func_split_long_opt_arg=${1#*=}\
} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \
  && mv -f "$cfgfile.tmp" "$cfgfile" \
    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
test 0 -eq $? || _lt_function_replace_fail=:


  sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\
func_split_short_opt ()\
{\
\    func_split_short_opt_arg=${1#??}\
\    func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\
} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \
  && mv -f "$cfgfile.tmp" "$cfgfile" \
    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
test 0 -eq $? || _lt_function_replace_fail=:


  sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\
func_lo2o ()\
{\
\    case ${1} in\
\      *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\
\      *)    func_lo2o_result=${1} ;;\
\    esac\
} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \
  && mv -f "$cfgfile.tmp" "$cfgfile" \
    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
test 0 -eq $? || _lt_function_replace_fail=:


  sed -e '/^func_xform ()$/,/^} # func_xform /c\
func_xform ()\
{\
    func_xform_result=${1%.*}.lo\
} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \
  && mv -f "$cfgfile.tmp" "$cfgfile" \
    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
test 0 -eq $? || _lt_function_replace_fail=:


  sed -e '/^func_arith ()$/,/^} # func_arith /c\
func_arith ()\
{\
    func_arith_result=$(( $* ))\
} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \
  && mv -f "$cfgfile.tmp" "$cfgfile" \
    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
test 0 -eq $? || _lt_function_replace_fail=:


  sed -e '/^func_len ()$/,/^} # func_len /c\
func_len ()\
{\
    func_len_result=${#1}\
} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \
  && mv -f "$cfgfile.tmp" "$cfgfile" \
    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
test 0 -eq $? || _lt_function_replace_fail=:

fi

if test x"$lt_shell_append" = xyes; then
  sed -e '/^func_append ()$/,/^} # func_append /c\
func_append ()\
{\
    eval "${1}+=\\${2}"\
} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \
  && mv -f "$cfgfile.tmp" "$cfgfile" \
    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
test 0 -eq $? || _lt_function_replace_fail=:


  sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\
func_append_quoted ()\
{\
\    func_quote_for_eval "${2}"\
\    eval "${1}+=\\\\ \\$func_quote_for_eval_result"\
} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \
  && mv -f "$cfgfile.tmp" "$cfgfile" \
    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
test 0 -eq $? || _lt_function_replace_fail=:


  # Save a `func_append' function call where possible by direct use of '+='
  sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
    && mv -f "$cfgfile.tmp" "$cfgfile" \
      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
  test 0 -eq $? || _lt_function_replace_fail=:
else
  # Save a `func_append' function call even when '+=' is not available
  sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
    && mv -f "$cfgfile.tmp" "$cfgfile" \
      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
  test 0 -eq $? || _lt_function_replace_fail=:
fi

if test x"$_lt_function_replace_fail" = x":"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5
$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;}
fi


   mv -f "$cfgfile" "$ofile" ||
    (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
  chmod +x "$ofile"

 ;;

  esac
done # for ac_tag


as_fn_exit 0
_ACEOF
ac_clean_files=$ac_clean_files_save

test $ac_write_fail = 0 ||
  as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5


# configure is writing to config.log, and then calls config.status.
# config.status does its own redirection, appending to config.log.
# Unfortunately, on DOS this fails, as config.log is still kept open
# by configure, so config.status won't be able to write to it; its
# output is simply discarded.  So we exec the FD to /dev/null,
# effectively closing config.log, so it can be properly (re)opened and
# appended to by config.status.  When coming back to configure, we
# need to make the FD available again.
if test "$no_create" != yes; then
  ac_cs_success=:
  ac_config_status_args=
  test "$silent" = yes &&
    ac_config_status_args="$ac_config_status_args --quiet"
  exec 5>/dev/null
  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
  exec 5>>config.log
  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
  # would make configure fail if this is the last instruction.
  $ac_cs_success || as_fn_exit 1
fi
if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
  { $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


rm -f sockd/config_scan.c sockd/config_parse.c
(cd sockd; ln -sf ../lib/config_scan.c config_scan.c)
(cd sockd; ln -sf ../lib/config_parse.c config_parse.c)
(cd dlib; ln -sf ../lib/config_scan.c config_scan.c)
(cd dlib; ln -sf ../lib/config_parse.c config_parse.c)

(cd sockd; ln -sf ../lib/config_parse.y config_parse.y)
(cd sockd; ln -sf ../lib/config_scan.l config_scan.l)
(cd dlib; ln -sf ../lib/config_parse.y config_parse.y)
(cd dlib; ln -sf ../lib/config_scan.l config_scan.l)

echo ""
echo "                     Configure status:"
echo ""

if test x"$NOCLIENT" != x; then
    echo "Client:            $NOCLIENT"
else
    echo "Client:            Enabled"
fi
if test x"$NOSERVER" != x; then
    echo "Server:            $NOSERVER"
else
    echo "Server:            Enabled"
fi
if test x"${no_preload}" = xt; then
   if test x"${blocked_preload}" = xt; then
	echo "Preloading:        Client preloading might not be reliable on this platform"
	CONFVAR="${CONFVAR}${CONFVAR:+ }badpreload"
   else
	echo "Preloading:        Disabled"
	CONFVAR="${CONFVAR}${CONFVAR:+ }nopreload"
   fi
else
    echo "Preloading:        Enabled"
    CONFVAR="${CONFVAR}${CONFVAR:+ }preload"
fi
if test x"${nb_select_err}" = xt; then
    echo "select:            Unexpected select behaviour on unconnected sockets,"
    echo "                   operations on nonblocking sockets might fail "
    echo "                   on this platform when using socksify"
    CONFVAR="${CONFVAR}${CONFVAR:+ }selecterr"
#else
#    echo "select:            OK"
fi
if test x"${no_routeinfo}" = xt; then
    echo "Routeinfo:         Not supported on this platform"
    CONFVAR="${CONFVAR}${CONFVAR:+ }norouteinfo"
else
#    echo "Routeinfo:         OK"
    CONFVAR="${CONFVAR}${CONFVAR:+ }routeinfo"
fi
if test x"$NOLIBWRAP" != x; then
	echo "Libwrap:           $NOLIBWRAP"
else
	echo "Libwrap:           Enabled"
fi
if test x"$NOBSDAUTH" != x; then
	echo "BSD Auth:          $NOBSDAUTH"
else
	echo "BSD Auth:          Enabled"
fi
if test x"$NOPAM" != x; then
	echo "PAM:               $NOPAM"
else
	echo "PAM:               Enabled"
fi
if test x"${no_gssapi}" = xt; then
   if test x"${bad_gssapi}" = xt; then
	echo "GSSAPI:            Located gssapi library not usable"
   else
	echo "GSSAPI:            Not found/disabled"
   fi
else
	echo "GSSAPI:            Enabled"
fi
if test x"${no_krb5}" = xt; then
	echo "KRB5:              Not found/disabled"
else
	echo "KRB5:              Enabled"
fi
if test x"${no_sasl}" = xt; then
	echo "SASL:              Not found/disabled"
else
	echo "SASL:              Enabled"
fi
if test x"${no_upnp}" = xt; then
    if test x"${have_libminiupnp}" = xt; then
	echo "UPNP:              Unsupported miniupnp library version"
    else
	echo "UPNP:              Not found/disabled"
    fi
else
    echo "UPNP:              Enabled"
fi
if test x"$COMPATFUNCS" = x; then
    echo "Compatability:     none"
else
    echo "Compatability:     $COMPATFUNCS"
fi

echo ""
echo "                     Modules:"
echo ""
if test x"$MOD_REDIRECT" != x; then
    echo "redirect:          Enabled"
else
    echo "redirect:          Not found"
fi
if test x"$MOD_BANDWIDTH" != x; then
    echo "bandwidth:         Enabled"
else
    echo "bandwidth:         Not found"
fi
if test x"$MOD_LDAP" != x; then
    if test x"${no_ldap}" != x; then
	s="             " #indent
	echo "ldap:$s Disabled ($noldap)"
	echo "     $s (NOTE: Both libraries and header files for"
	echo "     $s  Kerberos/SASL/GSSAPI/LDAP must be installed for the"
	echo "     $s  LDAP module to compile. On some platforms header files"
	echo "     $s  are found in separate packages (such as gssapi-devel).)"
    else
	echo "ldap:              Enabled"
    fi
else
    echo "ldap:              Not found"
fi
if test x"$MOD_PAC" != x; then
    if test x"${have_pac}" != x; then
        echo "pac:               Enabled"
    else
        s="             " #indent
        echo "pac: $s Disabled ($nopac)"
	echo "     $s (NOTE: Both libraries and header files for"
	echo "     $s Kerberos/SASL/GSSAPI/LDAP must be installed for the"
	echo "     $s PAC module to compile. On some platforms header files"
	echo "     $s are found in separate packages (such as gssapi-devel).)"
    fi
else
    echo "pac:               Not found"
fi

echo ""

echo "CONFRES: $CONFVAR" >> buildenv.txt

if test x"$prerelease" != x; then
   echo "
This is a pre-release.  We ask that everyone who can, test it to the
extent possible, to help reduce problems in the upcoming release.
Problems can be reported to dante-bugs@inet.no.

Note that pre-releases are often configured in a way that can
significantly increase the load on the machine.  This is done to
stress the server more, increasing the chances of detecting potential
problems.
"
fi

VINFO=README.latest
test -s "$VINFO" && cat "$VINFO"

#XXX depcomp regen hack
touch _reconf
for dir in bin lib dlib sockd unlicensed; do
    touch $dir/_reconf
done

true #ensure $? is zero

exit 0

LittleDemon - FACEBOOK
[ KELUAR ]