aboutsummaryrefslogtreecommitdiffstats
path: root/packages/ncftp
diff options
context:
space:
mode:
authorKoen Kooi <koen@openembedded.org>2005-06-30 08:19:37 +0000
committerOpenEmbedded Project <openembedded-devel@lists.openembedded.org>2005-06-30 08:19:37 +0000
commitc8e5702127e507e82e6f68a4b8c546803accea9d (patch)
tree00583491f40ecc640f2b28452af995e3a63a09d7 /packages/ncftp
parent87ec8ca4d2e2eb4d1c1e1e1a6b46a395d56805b9 (diff)
downloadopenembedded-c8e5702127e507e82e6f68a4b8c546803accea9d.tar.gz
import clean BK tree at cset 1.3670
Diffstat (limited to 'packages/ncftp')
-rw-r--r--packages/ncftp/.mtn2git_empty0
-rw-r--r--packages/ncftp/ncftp/.mtn2git_empty0
-rw-r--r--packages/ncftp/ncftp/acinclude.m44950
3 files changed, 4950 insertions, 0 deletions
diff --git a/packages/ncftp/.mtn2git_empty b/packages/ncftp/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/ncftp/.mtn2git_empty
diff --git a/packages/ncftp/ncftp/.mtn2git_empty b/packages/ncftp/ncftp/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/ncftp/ncftp/.mtn2git_empty
diff --git a/packages/ncftp/ncftp/acinclude.m4 b/packages/ncftp/ncftp/acinclude.m4
index e69de29bb2..e7d4bd0602 100644
--- a/packages/ncftp/ncftp/acinclude.m4
+++ b/packages/ncftp/ncftp/acinclude.m4
@@ -0,0 +1,4950 @@
+AC_DEFUN([wi_ARG_WITH_SOCKS5], [
+ AC_ARG_WITH(socks5,[ --with-socks5 try to find and use the SOCKS5 library],wi_want_socks5=$withval,wi_want_socks5=no)
+])
+dnl
+dnl
+dnl
+dnl
+AH_TEMPLATE([SOCKS], [define if using the socks library])
+AC_DEFUN([wi_LIB_SOCKS5], [
+ if test "$wi_want_socks5" != yes ; then
+ ac_cv_lib_socks5_SOCKSinit=no
+ else
+ # Look for the "SOCKS" library for use with Firewalls/Gateways.
+ SOCKS_LIBS=''
+
+ # First check for extra libraries that may be needed to
+ # link against socks. If we already checked for one or
+ # more of these libraries, we don't want to count them
+ # in the socks-only list.
+ #
+ if test "x$ac_cv_lib_db_main" = "x" ; then
+ AC_CHECK_LIB(db,main,[SOCKS_LIBS="$SOCKS_LIBS -ldb"])
+ fi
+ if test "x$ac_cv_lib_isode_main" = "x" ; then
+ AC_CHECK_LIB(isode,main,[SOCKS_LIBS="$SOCKS_LIBS -lisode"])
+ fi
+ if test "x$ac_cv_lib_com_err_main" = "x" ; then
+ AC_CHECK_LIB(com_err,main,[SOCKS_LIBS="$SOCKS_LIBS -lcom_err"])
+ fi
+ if test "x$ac_cv_lib_crypto_main" = "x" ; then
+ AC_CHECK_LIB(crypto,main,[SOCKS_LIBS="$SOCKS_LIBS -lcrypto"])
+ fi
+ if test "x$ac_cv_lib_krb5_main" = "x" ; then
+ AC_CHECK_LIB(krb5,main,[SOCKS_LIBS="$SOCKS_LIBS -lkrb5"])
+ fi
+ if test "x$ac_cv_lib_gssapi_krb5_main" = "x" ; then
+ AC_CHECK_LIB(gssapi_krb5,main,[SOCKS_LIBS="$SOCKS_LIBS -lgssapi_krb5"])
+ fi
+
+ AC_CHECK_LIB(socks5,SOCKSinit,[SOCKS_LIBS="$SOCKS_LIBS -lsocks5"])
+ AC_CHECK_HEADERS(socks.h socks5p.h)
+
+ if test "$ac_cv_lib_socks5_SOCKSinit" != yes ; then
+ ac_cv_lib_socks5_SOCKSinit=no
+ unset SOCKS_LIBS
+ else
+ AC_SUBST(SOCKS_LIBS)
+ AC_DEFINE(SOCKS,5)
+ fi
+ fi
+ AC_MSG_CHECKING([if SOCKS5 will be used])
+ AC_MSG_RESULT([$ac_cv_lib_socks5_SOCKSinit])
+])
+dnl
+dnl
+dnl
+dnl
+AC_DEFUN([wi_ARG_ENABLE_DEBUG], [
+# if DEBUGBUILD is yes, other macros try to set up a compilation environment
+# with debugging symbols enabled. Example macros which are affected are
+# wi_CFLAGS and wi_SFLAG.
+#
+AC_ARG_ENABLE(debug,
+[ --enable-debug enable debugging symbols],
+[
+ DEBUGBUILD=no
+ DEBUGCONFIGUREFLAG=""
+ if test "$enableval" != "no" ; then
+ DEBUGBUILD=yes
+ DEBUGCONFIGUREFLAG="--enable-debug"
+ fi
+],[
+dnl # Argument not specified; default is disabled.
+ DEBUGBUILD=no
+ DEBUGCONFIGUREFLAG=""
+])
+])
+dnl
+dnl
+dnl
+dnl
+AC_DEFUN([wi_ARG_DISABLE_CCDV], [
+AC_ARG_ENABLE(ccdv,[ --disable-ccdv disable use of ccdv program in Makefiles],use_ccdv="$enableval",use_ccdv=yes)
+])
+dnl
+dnl
+dnl
+dnl
+AC_DEFUN([wi_ARG_DISABLE_PRECOMP], [
+AC_ARG_ENABLE(ccdv,[ --disable-precomp disable use of precompiled header files],use_precomp="$enableval",use_precomp=yes)
+])
+dnl
+dnl
+dnl
+dnl
+AH_TEMPLATE([PRAGMA_HDRSTOP], [])
+AC_DEFUN([wi_CC_PRECOMP], [
+AC_CACHE_CHECK([if the C compiler can use precompiled headers], [wi_cv_cc_precomp], [
+ result="no"
+ if test "${use_precomp-yes}" != no ; then
+ wi_cv_cc_precomp_type="unknown"
+ /bin/rm -f pchtest.h pchtest.p pchtest.c pchtest.o pchtest csetc.pch pchtest.pch pchtest.h.gch
+ cat <<EOF > pchtest.h
+/* pchtest.h */
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#define FOOBAR 33 /* Make sure it can compile custom headers too */
+EOF
+ cat <<EOF > pchtest.c
+/* pchtest.c */
+#include "pchtest.h"
+
+main()
+{
+ if (FOOBAR == 33)
+ exit(0);
+ exit(1);
+}
+EOF
+ if test "$GCC" = yes ; then
+ #
+ # Try gcc 3.4's built-in implementation first
+ #
+ echo ${CC-cc} $CPPFLAGS pchtest.h -c >&5
+ ${CC-cc} $CPPFLAGS pchtest.h -c >&5 2>&5
+ if test -f pchtest.h.gch ; then
+ #
+ # Good, the .gch file was created.
+ # Odds are we're good to go.
+ #
+ echo "Successfully compiled pchtest.h into the precompiled header file pchtest.h.gch." >&5
+ AC_TRY_COMPILE([#include "pchtest.h"],[if (FOOBAR == 33) exit(0)],[result="yes" ; wi_cv_cc_precomp_type="gcc_gch_files"],[result="no"])
+ else
+ echo "This version of GCC did not compile pchtest.h into the precompiled header file pchtest.h.gch." >&5
+ #
+ # See if Apple's implementation works.
+ #
+ echo ${CC-cc} $CPPFLAGS -precomp pchtest.h -o pchtest.p >&5
+ ${CC-cc} $CPPFLAGS -precomp pchtest.h -o pchtest.p >&5 2>&5
+ if test -s pchtest.p ; then
+ AC_TRY_COMPILE([#include "pchtest.h"],[if (FOOBAR == 33) exit(0)],[result="yes" ; wi_cv_cc_precomp_type="gcc_dash_precomp"],[result="no"])
+ fi
+ fi
+ elif test "${result}_${SYS-aix}_${GCC}" = "no_aix_no" ; then
+ #
+ # AIX xlc
+ #
+ echo ${CC-cc} $CPPFLAGS -qusepcomp -qgenpcomp pchtest.c -o pchtest >&5
+ ${CC-cc} $CPPFLAGS -qusepcomp -qgenpcomp pchtest.c -o pchtest >&5 2>&5
+ if test -s pchtest ; then
+ result="yes"
+ wi_cv_cc_precomp_type="xlc"
+ wi_CFLAGS_TO_ADD_LATER="$wi_CFLAGS_TO_ADD_LATER -qusepcomp -qgenpcomp"
+ fi
+ else
+ #
+ # IRIX, Compaq C
+ #
+ cat <<EOF > pchtest.c
+#include "pchtest.h"
+#pragma hdrstop
+#include <stdarg.h>
+
+main() { exit(0); }
+EOF
+ for pchflags in "-pch -no_pch_messages" "-pch" "-LANG:pch"
+ do
+ /bin/rm -f pchtest.pch
+ echo ${CC-cc} $CPPFLAGS $pchflags pchtest.c -o pchtest >&5
+ ${CC-cc} $CPPFLAGS $pchflags pchtest.c -o pchtest >&5 2>&5
+ if test -f pchtest.pch ; then
+ result="yes"
+ wi_cv_cc_precomp_type="ccc"
+ wi_CFLAGS_TO_ADD_LATER="$wi_CFLAGS_TO_ADD_LATER $pchflags"
+ AC_DEFINE(PRAGMA_HDRSTOP)
+ break
+ fi
+ done
+ unset pchflags
+ fi
+ /bin/rm -f pchtest.h pchtest.p pchtest.c pchtest.o pchtest csetc.pch pchtest.pch pchtest.h.gch
+ fi
+ wi_cv_cc_precomp="$result"
+])
+])
+dnl
+dnl
+dnl
+dnl
+AC_DEFUN([wi_TEST_DASH_L], [
+AC_CACHE_CHECK([if shell can test for symlinks], [wi_cv_shell_test_symlinks], [
+wi_cv_shell_test_symlinks="no"
+wi_cv_test_L="false"
+wi_cv_test_not_L=":"
+/bin/rm -f config.lnk
+if test ! -f "config.lnk" ; then
+ /bin/ln -s /bin/ln config.lnk
+ if test -f "config.lnk" ; then
+ ( if test -L config.lnk ; then /bin/rm -f config.lnk ; fi ) 2>/dev/null
+ if test ! -f "config.lnk" ; then
+ wi_cv_shell_test_symlinks="yes"
+ wi_cv_test_L='test -L'
+ wi_cv_test_not_L='test ! -L'
+ else
+ ( if test -h config.lnk ; then /bin/rm -f config.lnk ; fi ) 2>/dev/null
+ if test ! -f "config.lnk" ; then
+ wi_cv_shell_test_symlinks="yes"
+ wi_cv_test_L='test -h'
+ wi_cv_test_not_L='test ! -h'
+ fi
+ fi
+ fi
+ /bin/rm -f config.lnk
+fi
+])
+test_L="$wi_cv_test_L"
+test_not_L="$wi_cv_test_not_L"
+])
+dnl
+dnl
+dnl
+dnl
+AC_DEFUN([wi_EXTRA_IDIR], [
+incdir="$1"
+if test -r $incdir ; then
+ case "$CPPFLAGS" in
+ *${incdir}*)
+ # echo " + already had $incdir" 1>&6
+ ;;
+ *)
+ if test "$CPPFLAGS" = "" ; then
+ CPPFLAGS="-I$incdir"
+ else
+ CPPFLAGS="$CPPFLAGS -I$incdir"
+ fi
+ echo " + found $incdir" 1>&6
+ ;;
+ esac
+fi
+])
+dnl
+dnl
+dnl
+dnl
+AC_DEFUN([wi_EXTRA_LDIR], [
+libdir="$1"
+if test -r $libdir ; then
+ case "$LDFLAGS" in
+ *${libdir}*)
+ # echo " + already had $libdir" 1>&6
+ ;;
+ *)
+ if test "$LDFLAGS" = "" ; then
+ LDFLAGS="-L$libdir"
+ else
+ LDFLAGS="$LDFLAGS -L$libdir"
+ fi
+ echo " + found $libdir" 1>&6
+ ;;
+ esac
+fi
+])
+dnl
+dnl
+dnl
+dnl
+AC_DEFUN([wi_GNU_LD], [
+AC_MSG_CHECKING([for GNU ld])
+wi_cv_prog_ld="ld"
+result="no"
+x=`ld --version 2>/dev/null | fgrep GNU`
+if test "$x" != "" ; then
+ wi_cv_prog_ld="gld"
+ result="yes"
+fi
+AC_MSG_RESULT($result)
+])
+dnl
+dnl
+dnl
+dnl
+AC_DEFUN([wi_LD_READONLY_TEXT], [
+if test "$SYS$wi_cv_prog_ld" = "linuxgld" ; then
+ LDFLAGS="$LDFLAGS -Xlinker -n"
+fi
+])
+dnl
+dnl
+dnl
+dnl
+AC_DEFUN([wi_FUNC_STRSIGNAL], [
+ case "$OS" in
+ aix4.3*)
+ # It didn't appear until several ML packs
+ # into 4.3.3
+ #
+ ;;
+ *)
+ AC_CHECK_FUNCS(strsignal)
+ ;;
+ esac
+])
+dnl
+dnl
+dnl
+dnl
+AC_DEFUN([wi_FUNC_GETCWD], [
+if test "${SYS}" = sunos ; then
+ # Use getwd on SunOS -- getcwd does a "popen("/bin/pwd")" -- aaaccck.
+ #
+ AC_CHECK_FUNCS(getwd)
+else
+ AC_CHECK_FUNCS(getcwd getwd)
+fi
+if test "$ac_cv_func_getcwd" = no && test "$ac_cv_func_getwd" = no ; then
+AC_WARN(This system does not have either getwd or getcwd?)
+AC_WARN(I find that a little hard to believe.)
+AC_WARN(You may want to try -DHAVE_GETWD anyway.)
+AC_WARN([
+This could also mean that your compiler isn't working])
+AC_WARN(with this configure script. Check the ./config.log)
+AC_WARN(and look for anomalies.)
+fi
+])
+dnl
+dnl
+dnl
+dnl
+AC_DEFUN([wi_EXTRA_SYSV_SUNOS_DIRS], [
+if test "${SYS-sunos}" = sunos ; then
+ AC_MSG_CHECKING([for System V compatibility directories])
+ AC_MSG_RESULT([])
+ wi_EXTRA_IDIR("/usr/5include")
+ wi_EXTRA_LDIR("/usr/5lib")
+fi
+])
+dnl
+dnl
+dnl If you want to also look for include and lib subdirectories in the
+dnl $HOME tree, you supply "yes" as the first argument to this macro.
+dnl
+dnl If you want to look for subdirectories in include/lib directories,
+dnl you pass the names in argument 3, otherwise pass a dash.
+dnl
+AC_DEFUN([wi_EXTRA_DIRS], [
+AC_MSG_CHECKING([for extra include and lib directories])
+AC_MSG_RESULT([])
+ifelse([$1], yes, [dnl
+b1=`cd .. ; pwd`
+b2=`cd ../.. ; pwd`
+exdirs="$HOME $j $b1 $b2 $prefix $2"
+if test -x "$HOME/bin/OS" ; then
+ b3=`$HOME/bin/OS`
+ b3="$HOME/$b3"
+ if test -d "$b3" ; then
+ exdirs="$b3 $exdirs"
+ fi
+fi
+],[dnl
+exdirs="$prefix $2"
+])
+subexdirs="$3"
+if test "$subexdirs" = "" ; then
+ subexdirs="-"
+fi
+for subexdir in $subexdirs ; do
+if test "$subexdir" = "-" ; then
+ subexdir=""
+else
+ subexdir="/$subexdir"
+fi
+for exdir in $exdirs ; do
+ case "$exdir" in
+ "/usr"|"/"|"//")
+ if test "$exdir" = "//" ; then exdir="/" ; fi
+ if test "$subexdir" != ""; then
+ incdir="${exdir}/include${subexdir}"
+ wi_EXTRA_IDIR($incdir)
+
+ libdir="${exdir}/lib${subexdir}"
+ wi_EXTRA_LDIR($libdir)
+ fi
+ ;;
+ *)
+ if test "$subexdir" = ""; then
+ incdir="${exdir}/include${subexdir}"
+ wi_EXTRA_IDIR($incdir)
+
+ libdir="${exdir}/lib${subexdir}"
+ wi_EXTRA_LDIR($libdir)
+ fi
+ ;;
+ esac
+done
+done
+])
+dnl
+dnl
+dnl
+AC_DEFUN([wi_HPUX_CFLAGS],
+[AC_MSG_CHECKING(if HP-UX ansi C compiler flags are needed)
+AC_REQUIRE([AC_PROG_CC])
+AC_REQUIRE([wi_OS_VAR])
+ac_cv_hpux_flags=no
+if test "$os" = hp-ux ; then
+ if test "$GCC" = yes ; then
+ if test "$CFLAGS" != "" ; then
+ # Shouldn't be in there.
+changequote(<<, >>)dnl
+ CFLAGS=`echo "$CFLAGS" | sed 's/-A[ae]//g'`
+changequote([, ])dnl
+ case "$CFLAGS" in
+ *_HPUX_SOURCE*)
+ ;;
+ *)
+ # This is required for the extended
+ # namespace.
+ #
+ CFLAGS="-D_HPUX_SOURCE $CFLAGS"
+ ;;
+ esac
+ fi
+ else
+ # If you're not using gcc, then you better have a cc/c89
+ # that is usable. If you have the barebones compiler, it
+ # won't work. The good compiler uses -Aa for the ANSI
+ # compatible stuff.
+changequote(<<, >>)dnl
+ x=`echo "$CFLAGS" | grep 'A[ae]' 2>/dev/null`
+changequote([, ])dnl
+ if test "$x" = "" ; then
+ CFLAGS="$CFLAGS -Ae"
+ fi
+ fi
+ ac_cv_hpux_flags=yes
+fi
+AC_MSG_RESULT($ac_cv_hpux_flags)
+])
+dnl
+dnl
+dnl
+AC_DEFUN([wi_OS_DEFAULT_CFLAGS], [
+AC_MSG_CHECKING(if we should customize your CFLAGS environment variable)
+wi_replace_O_with_g="no"
+case "$wi_orig_CFLAGS" in
+ "")
+ wi_replace_O_with_g="no"
+ ;;
+ "-g -O2")
+ wi_replace_O_with_g="no"
+ ;;
+ "-g -O")
+ wi_replace_O_with_g="no"
+ ;;
+ "-O2 -g")
+ wi_replace_O_with_g="no"
+ ;;
+ "-O -g")
+ wi_replace_O_with_g="no"
+ ;;
+ -g)
+ wi_replace_O_with_g="yes"
+ ;;
+esac
+
+#
+# See if your CFLAGS environment variable wasn't set or exported,
+# or if you are using a conservative default. If so, we will
+# add some additional flags for better performance, warning reporting,
+# etc.
+#
+# Note we are now checking the current value of CFLAGS, which may have
+# been changed by configure.
+#
+wi_os_default_cflags="no"
+case "$CFLAGS" in
+ "")
+ wi_os_default_cflags="yes"
+ ;;
+ "-g -O2")
+ wi_os_default_cflags="yes"
+ ;;
+ "-g -O")
+ wi_os_default_cflags="yes"
+ ;;
+ "-O2 -g")
+ wi_os_default_cflags="yes"
+ ;;
+ "-O -g")
+ wi_os_default_cflags="yes"
+ ;;
+ -g)
+ wi_os_default_cflags="yes"
+ ;;
+ -O)
+ wi_os_default_cflags="yes"
+ ;;
+ -O2)
+ wi_os_default_cflags="yes"
+ ;;
+esac
+
+if test "$wi_os_default_cflags" = yes ; then
+ if test "$GCC" = yes ; then
+ #
+ # gcc
+ #
+ wi_gcc_optimizer_flags=''
+ case "$wi_cv_gcc_version" in
+ 2.7.*|2.8.*|2.9*)
+ wi_os_default_cflags="-W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wbad-function-cast -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -Wmissing-declarations -Winline"
+ ;;
+ 3.*)
+ wi_os_default_cflags="-W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wbad-function-cast -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -Wmissing-declarations -Winline -Wmissing-format-attribute -Wformat-security"
+ wi_gcc_optimizer_flags='-Wdisabled-optimization'
+ ;;
+ *)
+ wi_os_default_cflags="-W -Wall"
+ ;;
+ esac
+ if test "$wi_replace_O_with_g" = yes ; then
+ wi_os_default_cflags="-g $wi_os_default_cflags"
+ else
+ wi_os_default_cflags="-O2 $wi_os_default_cflags"
+ if test "$wi_gcc_optimizer_flags" != "" ; then
+ wi_os_default_cflags="$wi_os_default_cflags $wi_gcc_optimizer_flags"
+ fi
+ fi
+ case "$OS" in
+ hpux*)
+ wi_os_default_cflags="-D_HPUX_SOURCE $wi_os_default_cflags"
+ ;;
+ bsdos*)
+ wi_os_default_cflags=`echo "$wi_os_default_cflags" | sed 's/\ -Wcast-qual//g'` # avoid va_start() problem
+ wi_os_default_cflags=`echo "$wi_os_default_cflags" | sed 's/\ -Wredundant-decls//g'`
+ ;;
+ openbsd*|unixware*|openunix*)
+ wi_os_default_cflags=`echo "$wi_os_default_cflags" | sed 's/\ -Wredundant-decls//g'`
+ ;;
+ esac
+ else
+ #
+ # regular cc
+ #
+ case "${wi_replace_O_with_g}_${OS}" in
+ no_aix*)
+ wi_os_default_cflags="-O -qinfo=cmp:cnd:dcl:eff:gen:ini:par:pro:rea:use -qlonglong -qro -qroconst -qlanglvl=extended -qsrcmsg -qmaxmem=20480 -qsuppress=1506-469:1506-409"
+ ;;
+ yes_aix*)
+ wi_os_default_cflags="-g -qinfo=cmp:cnd:dcl:eff:gen:ini:par:pro:rea:use -qlonglong -qro -qroconst -qlanglvl=extended -qsrcmsg -qmaxmem=20480 -qsuppress=1506-469:1506-409"
+ ;;
+ no_irix[2345]*|no_irix6.[01234]*)
+ wi_os_default_cflags="-O2 -xansi -fullwarn -use_readonly_const -G0 -rdata_shared"
+ ;;
+ yes_irix[2345]*|yes_irix6.[01234]*)
+ wi_os_default_cflags="-g -xansi -fullwarn -use_readonly_const -G0 -rdata_shared"
+ ;;
+ no_irix*)
+ wi_os_default_cflags="-O2 -IPA -xansi -fullwarn -use_readonly_const -G0 -rdata_shared -woff 1174"
+ ;;
+ yes_irix*)
+ wi_os_default_cflags="-g -xansi -fullwarn -use_readonly_const -G0 -rdata_shared -woff 1174"
+ ;;
+ no_digitalunix*)
+ wi_os_default_cflags="-O4 -std1 -portable -readonly_strings"
+ ;;
+ yes_digitalunix*)
+ wi_os_default_cflags="-g -std1 -portable -readonly_strings"
+ ;;
+ no_hpux*)
+ wi_os_default_cflags="-Ae +O2 +Ovolatile +Olibcalls +ESlit +w1 +DAportable"
+ ;;
+ yes_hpux*)
+ wi_os_default_cflags="-Ae -g +w1 +DAportable"
+ ;;
+ no_solaris*)
+ if test "$wi_cv_sunwspro_cc_version2" -ge 530 ; then
+ wi_os_default_cflags="-xipo -xO5 -xc99 -xbuiltin -xstrconst -dalign -Qn -errtags=yes -erroff=E_END_OF_LOOP_CODE_NOT_REACHED -mc"
+ else
+ wi_os_default_cflags="-xO4 -xstrconst -dalign -Qn"
+ fi
+ ;;
+ yes_solaris*)
+ if test "$wi_cv_sunwspro_cc_version2" -ge 530 ; then
+ wi_os_default_cflags="-g -xc99 -xstrconst -dalign -Qn -errtags=yes -erroff=E_END_OF_LOOP_CODE_NOT_REACHED"
+ else
+ wi_os_default_cflags="-g -xstrconst -dalign -Qn"
+ fi
+ ;;
+ no_tru64*)
+ wi_os_default_cflags="-O4 -tune host -std1 -readonly_strings -portable -warnprotos -msg_enable level6 -msg_disable longlongtype,hexoctunsign,unusedincl,unnecincl,nestincl,unusedtop,unknownmacro,ignorecallval,strctpadding,truncintasn,truncintcast,trunclongcast,ansialiascast,conststocls,unrefsdecl,subscrbounds2"
+ ;;
+ yes_tru64*)
+ wi_os_default_cflags="-g -std1 -readonly_strings -portable -warnprotos -msg_enable level6 -msg_disable longlongtype,hexoctunsign,unusedincl,unnecincl,nestincl,unusedtop,unknownmacro,ignorecallval,strctpadding,truncintasn,truncintcast,trunclongcast,ansialiascast,conststocls,unrefsdecl,subscrbounds2"
+ ;;
+ no_unixware*|no_openunix*)
+ wi_os_default_cflags='-O -K inline -K host -Q n'
+ ;;
+ yes_unixware*|yes_openunix*)
+ wi_os_default_cflags='-g -K host -Q n'
+ ;;
+ *)
+ wi_os_default_cflags="no"
+ ;;
+ esac
+ fi
+fi
+if test "$wi_os_default_cflags" != "no" ; then
+ CFLAGS="$wi_os_default_cflags"
+fi
+AC_MSG_RESULT($wi_os_default_cflags)
+])
+dnl
+dnl
+dnl
+AC_DEFUN([wi_SFLAG], [AC_REQUIRE([AC_PROG_CC])
+STRIP="strip"
+if test "$SFLAG" = "" ; then
+ SFLAG="-s"
+ case "$OS" in
+ macosx*)
+ SFLAG='-Wl,-x'
+ ;;
+ esac
+fi
+#
+# Was it ./configure --enable-debug ?
+#
+if test "$DEBUGBUILD" = yes ; then
+ SFLAG=""
+ STRIP=":"
+fi
+case "$CFLAGS" in
+ "-g"|"-g "*|*" -g"|*" -g "*|*"-g"[0-9]*)
+ # SFLAG="# $SFLAG"
+ SFLAG=""
+ STRIP=":"
+ ;;
+esac
+STRIPFLAG="$SFLAG"
+])
+dnl
+dnl
+dnl
+AC_DEFUN([wi_PROG_SUN_WORKSHOP_CC_VERSION], [
+AC_REQUIRE([AC_PROG_CC])
+if test "${SYS}_${GCC}" != solaris_no ; then
+ wi_cv_cc_is_sunwspro_cc="no"
+ wi_cv_sunwspro_cc_version="0"
+ wi_cv_sunwspro_cc_version2="0"
+else
+ AC_CACHE_CHECK([if the C compiler is Sun WorkShop C],[wi_cv_cc_is_sunwspro_cc], [
+changequote(<<, >>)dnl
+#
+# cc: Sun WorkShop 6 update 2 C 5.3 2001/05/15
+# usage: cc [ options] files. Use 'cc -flags' for details
+#
+# cc: WorkShop Compilers 4.2 30 Oct 1996 C 4.2
+# usage: cc [ options] files. Use 'cc -flags' for details
+#
+ wi_cv_sunwspro_cc_version=`$CC -V 2>&1 | sed -n '/WorkShop.*C\ [1-9]/{s/^.*C/C/;s/^C\ \([^\ ]*\).*/\1/;p;q;}'`
+ case "$wi_cv_sunwspro_cc_version" in
+ [1-9]*)
+ wi_cv_cc_is_sunwspro_cc="yes"
+ ver1=`echo "$wi_cv_sunwspro_cc_version" | cut -d. -f1`
+ ver2=`echo "$wi_cv_sunwspro_cc_version" | cut -d. -f2`
+ ver3=0
+ wi_cv_sunwspro_cc_version2=`expr "$ver1" '*' 100 + "$ver2" "*" 10 + "$ver3"`
+ unset ver1 ver2 ver3
+ ;;
+ *)
+ wi_cv_cc_is_sunwspro_cc="no"
+ wi_cv_sunwspro_cc_version="0"
+ wi_cv_sunwspro_cc_version2="0"
+ ;;
+ esac
+changequote([, ])dnl
+ ])
+ if test "$wi_cv_cc_is_sunwspro_cc" = yes ; then
+ AC_MSG_CHECKING([output of "cc -V" to determine version of Sun WorkShop C])
+ AC_MSG_RESULT("version $wi_cv_sunwspro_cc_version")
+ fi
+fi
+])
+dnl
+dnl
+dnl
+AC_DEFUN([wi_PROG_GCC_VERSION], [
+AC_REQUIRE([AC_PROG_CC])
+if test "$GCC" = yes ; then
+ AC_CACHE_CHECK([the version of GCC],[wi_cv_gcc_version], [
+changequote(<<, >>)dnl
+ wi_cv_gcc_version=`$CC -v 2>&1 | sed -n '/gcc version/{s/^.*gcc version//;s/^[^1-9]*//;s/\ .*//;p;q;}'`
+changequote([, ])dnl
+])
+else
+ wi_cv_gcc_version="0"
+fi
+])
+dnl
+dnl
+dnl
+AC_DEFUN([wi_REQUEST_NO_Y2K_WARNINGS], [
+ wi_request_no_y2k_warnings=yes
+])
+dnl
+dnl
+dnl
+AC_DEFUN([wi_CFLAGS_NO_Y2K_WARNINGS], [
+AC_REQUIRE([AC_PROG_CC])
+if test "x$wi_request_no_y2k_warnings" = xyes ; then
+case "${wi_cv_gcc_version-0}" in
+changequote(<<, >>)dnl
+ 0|1.*|2.[012345678].*)
+changequote([, ])dnl
+ ;;
+ *)
+ case "$CFLAGS" in
+ *-Wno-format-y2k*)
+ ;;
+ *)
+ oldCFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -Wno-format-y2k"
+ #
+ # Now check if this version of GCC
+ # accepts this flag...
+ #
+ AC_TRY_COMPILE([],[int junk;],[],[CFLAGS="$oldCFLAGS"])
+ unset oldCFLAGS
+ ;;
+ esac
+ ;;
+esac
+fi
+])
+dnl
+dnl
+dnl
+AC_DEFUN([wi_CFLAGS], [AC_REQUIRE([AC_PROG_CC])
+ wi_PROG_GCC_VERSION
+ AC_REQUIRE_CPP()
+ wi_PROG_SUN_WORKSHOP_CC_VERSION
+ wi_OS_DEFAULT_CFLAGS
+ wi_CFLAGS_NO_Y2K_WARNINGS
+changequote(<<, >>)dnl
+ add_O0="no"
+ if [ "$NOOPTCFLAGS" = "" ] ; then
+ NOOPTCFLAGS=`echo "$CFLAGS" | sed 's/[-+]O[0-9A-Za-z]*//g;s/-xO[0-9]//g;s/-Wc,-O3//g;s/-IPA//g;s/-xipo//g;s/\ \ */ /g;s/^\ *//;s/\ *$//;'`
+ if [ "$GCC" = "yes" ] ; then
+ add_O0="yes"
+ else
+ case "$CC" in
+ ccc|*/ccc)
+ # Compaq CC
+ add_O0="yes"
+ ;;
+ esac
+ fi
+ fi
+ if [ "$DEBUGCFLAGS" = "" ] ; then
+ DEBUGCFLAGS="-g $NOOPTCFLAGS"
+ fi
+ if [ "$add_O0" = yes ] ; then
+ NOOPTCFLAGS="-O0 $NOOPTCFLAGS"
+ fi
+changequote([, ])dnl
+ #
+ # Was it ./configure --enable-debug ?
+ #
+ AC_MSG_CHECKING([if this is a debug build])
+ if test "$DEBUGBUILD" = yes ; then
+ AC_MSG_RESULT(yes)
+ CFLAGS="$DEBUGCFLAGS"
+ else
+ AC_MSG_RESULT(no)
+ fi
+ AC_MSG_CHECKING([NOOPTCFLAGS])
+ AC_MSG_RESULT($NOOPTCFLAGS)
+ AC_MSG_CHECKING([DEBUGCFLAGS])
+ AC_MSG_RESULT($DEBUGCFLAGS)
+ AC_MSG_CHECKING([CFLAGS])
+ AC_MSG_RESULT($CFLAGS)
+])
+dnl
+dnl
+dnl
+AC_DEFUN([wi_HPUX_GCC___STDC_EXT__], [
+AC_MSG_CHECKING([if -D__STDC_EXT__ is needed with GCC on HP-UX])
+AC_TRY_RUN([
+#include <stdio.h>
+
+main()
+{
+#ifdef __STDC_EXT__
+ if (__STDC_EXT__ == 0)
+ exit(1); /* have __STDC_EXT__=0 */
+ exit(0); /* have __STDC_EXT__=1 */
+#else
+ exit(1); /* do not have __STDC_EXT__ */
+#endif
+}],[
+ # action if true
+ #
+ # Already have it defined.
+ #
+ AC_MSG_RESULT(no)
+],[
+ # action if false
+ #
+ # Not defined -- we need to define it then.
+ # This is required for the extended
+ # namespace symbols for Large Files.
+ #
+ CFLAGS="-D__STDC_EXT__ $CFLAGS"
+ AC_MSG_RESULT(yes)
+],[
+ # action if cross-compiling, guess
+ CFLAGS="-D__STDC_EXT__ $CFLAGS"
+ AC_MSG_RESULT(yes)
+])
+])
+dnl
+dnl
+dnl
+AC_DEFUN([wi_ENV_VAR_MESSAGES], [
+AC_MSG_CHECKING([if you set and exported the environment variable CC])
+if test "x$CC" = x ; then
+ AC_MSG_RESULT([no (you may want to do that since configure scripts look for gcc first)])
+else
+ AC_MSG_RESULT($CC)
+fi
+AC_MSG_CHECKING([for environment variable CFLAGS])
+if test "x$CFLAGS" = x ; then
+ AC_MSG_RESULT([no (we will choose a default set for you)])
+else
+ AC_MSG_RESULT($CFLAGS)
+fi
+AC_MSG_CHECKING([for environment variable CPPFLAGS])
+AC_MSG_RESULT(${CPPFLAGS-no})
+AC_MSG_CHECKING([for environment variable LDFLAGS])
+AC_MSG_RESULT(${LDFLAGS-no})
+AC_MSG_CHECKING([for environment variable LIBS])
+AC_MSG_RESULT(${LIBS-no})
+])
+dnl
+dnl
+dnl
+AC_DEFUN([wi_CFLAGS_LFS64], [AC_REQUIRE([AC_PROG_CC])
+AC_REQUIRE([wi_OS_VAR])
+wi_CFLAGS
+if test "os_${os}_gcc_${GCC}" = os_hp-ux_gcc_yes ; then
+ wi_HPUX_GCC___STDC_EXT__
+fi
+case "$CFLAGS" in
+ *-D_LARGEFILE64_SOURCE*)
+ ;;
+ *)
+ CFLAGS="-D_LARGEFILE64_SOURCE $CFLAGS"
+ DEBUGCFLAGS="-D_LARGEFILE64_SOURCE $DEBUGCFLAGS"
+ NOOPTCFLAGS="-D_LARGEFILE64_SOURCE $NOOPTCFLAGS"
+ ;;
+esac
+AC_MSG_CHECKING([if we should add to CFLAGS for LFS64 support])
+AC_MSG_RESULT($CFLAGS)
+])
+dnl
+dnl
+dnl
+AC_DEFUN([wi_CFLAGS_REENTRANT], [AC_REQUIRE([AC_PROG_CC])
+case "$CFLAGS" in
+ *-D_REENTRANT*)
+ ;;
+ *)
+ CFLAGS="-D_REENTRANT $CFLAGS"
+ ;;
+esac
+AC_MSG_CHECKING([if we should add -D_REENTRANT to CFLAGS])
+AC_MSG_RESULT($CFLAGS)
+])
+dnl
+dnl
+dnl
+AC_DEFUN([wi_PROTOTYPES], [
+AC_MSG_CHECKING(if the compiler supports function prototypes)
+AC_TRY_COMPILE(,[extern void exit(int status);],[wi_cv_prototypes=yes
+AC_DEFINE(PROTOTYPES)],wi_cv_prototypes=no)
+AC_MSG_RESULT($wi_cv_prototypes)
+])
+dnl
+dnl
+dnl
+
+AH_TEMPLATE([tv_sec_t], [type of the tv_sec field of struct timeval])
+AH_TEMPLATE([tv_usec_t], [type of the tv_usec field of struct timeval])
+AC_DEFUN([wi_STRUCT_TIMEVAL_FIELD_TYPES], [
+wi_struct_timeval_field_checks="cached"
+AC_CACHE_CHECK([what type the tv_sec field of struct timeval is],[wi_cv_struct_timeval_tv_sec], [
+wi_struct_timeval_field_checks="uncached"
+wi_PREREQ_UNISTD_H([$0])
+AC_TRY_RUN([
+ /* program */
+#if defined(AIX) || defined(_AIX) || defined(__HOS_AIX__)
+# define _ALL_SOURCE 1
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#include <sys/types.h>
+#include <sys/time.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+static void
+neg(void *dst0, size_t siz)
+{
+ unsigned char *dst = (unsigned char *) dst0;
+ unsigned char *dlim;
+
+ dlim = dst + siz;
+ while (dst < dlim)
+ *dst++ = (unsigned char) 0xEE;
+}
+
+int
+main(int argc, char **argv)
+{
+ FILE *fp;
+ const char *typ;
+ struct timeval tv;
+#define x tv.tv_sec
+
+ memset(&tv, 0, sizeof(tv));
+ fp = stdout;
+ if (argc == 1) {
+ fp = fopen("conftest.out", "w");
+ if (fp == NULL) {
+ perror("could not write to ./conftest.out");
+ exit(1);
+ }
+ }
+
+ neg(&x, sizeof(x));
+#ifdef HAVE_LONG_LONG
+ if (sizeof(x) == sizeof(long long)) {
+ typ = "long long";
+ } else
+#endif
+ if (sizeof(x) == sizeof(long)) {
+ typ = "long";
+ } else {
+ typ = "int";
+ }
+ (void) fprintf(fp, "%s%s\n", (x > 0) ? "unsigned " : "", typ);
+#undef x
+
+#define x tv.tv_usec
+ neg(&x, sizeof(x));
+#ifdef HAVE_LONG_LONG
+ if (sizeof(x) == sizeof(long long)) {
+ typ = "long long";
+ } else
+#endif
+ if (sizeof(x) == sizeof(long)) {
+ typ = "long";
+ } else {
+ typ = "int";
+ }
+ (void) fprintf(fp, "%s%s\n", (x > 0) ? "unsigned " : "", typ);
+#undef x
+
+ if (fp != stdout)
+ (void) fclose(fp);
+ exit(0);
+}
+],[
+ # action if true
+ if test -f conftest.out ; then
+ wi_cv_struct_timeval_tv_sec="`sed -n '1,1p' conftest.out`"
+ wi_cv_struct_timeval_tv_usec="`sed -n '2,2p' conftest.out`"
+ fi
+],[
+ # action if false
+ wi_cv_struct_timeval_tv_sec="long"
+ wi_cv_struct_timeval_tv_usec="long"
+],[
+ # action if cross compiling
+ wi_cv_struct_timeval_tv_sec="long"
+ wi_cv_struct_timeval_tv_usec="long"
+])
+ /bin/rm -f conftest.out
+])
+if test "$wi_struct_timeval_field_checks" = "uncached" ; then
+ AC_MSG_CHECKING([what type the tv_usec field of struct timeval is])
+ AC_MSG_RESULT([$wi_cv_struct_timeval_tv_usec])
+else
+ AC_CACHE_CHECK([what type the tv_usec field of struct timeval is],[wi_cv_struct_timeval_tv_usec], [:])
+fi
+AC_DEFINE_UNQUOTED(tv_sec_t, $wi_cv_struct_timeval_tv_sec)
+AC_DEFINE_UNQUOTED(tv_usec_t, $wi_cv_struct_timeval_tv_usec)
+])
+dnl
+dnl
+dnl
+AH_TEMPLATE([main_void_return_t], [type that main() should return])
+AC_DEFUN([wi_VOID_MAIN_RETURN_TYPE], [
+AC_CACHE_CHECK([what type main() should return],[wi_cv_main_void_return_t], [
+wi_cv_main_void_return_t="int"
+case "${GCC}_${SYS}" in
+ no_irix*|no_hpux)
+ wi_cv_main_void_return_t="void"
+ ;;
+esac
+])
+AC_DEFINE_UNQUOTED(main_void_return_t, $wi_cv_main_void_return_t)
+])
+dnl
+dnl
+dnl
+AH_TEMPLATE([INSECURE_CHOWN], [define if chown can be used to subvert security])
+AC_DEFUN([wi_INSECURE_CHOWN], [
+wi_PREREQ_UNISTD_H([$0])
+AC_MSG_CHECKING(if chown can be used to subvert security)
+AC_TRY_RUN([
+#if defined(AIX) || defined(_AIX) || defined(__HOS_AIX__)
+# define _ALL_SOURCE 1
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <stdio.h>
+
+main()
+{
+ int result;
+ char fn[64];
+ FILE *fp;
+ struct stat st;
+
+ setuid(1); /* if you're root, try set to someone else. */
+ sprintf(fn, "/tmp/fu%06ld", (long) getpid());
+ unlink(fn);
+ fp = fopen(fn, "w");
+ if (fp == NULL)
+ exit(1); /* assume the worst */
+ fprintf(fp, "%s\n", "hello world");
+ fclose(fp);
+
+ result = chown(fn, 0, 0);
+ if (stat(fn, &st) < 0) {
+ unlink(fn);
+ exit((result == 0) ? 0 : 1);
+ }
+ unlink(fn);
+
+ /* exit(0) if the insecure chown to uid 0 succeeded. */
+ exit((st.st_uid == 0) ? 0 : 1);
+}],[
+ # action if true
+ wi_cv_insecure_chown=yes
+ AC_DEFINE(INSECURE_CHOWN)
+],[
+ # action if false
+ wi_cv_insecure_chown=no
+],[
+ # action if cross-compiling, guess
+ wi_cv_insecure_chown=no
+])
+
+AC_MSG_RESULT($wi_cv_insecure_chown)
+])
+dnl
+dnl
+dnl
+AC_DEFUN([wi_PREREQ_UNISTD_H], [
+ if test "x$ac_cv_header_unistd_h" = x ; then
+ AC_MSG_ERROR([Script needs to check for <unistd.h> before calling [$1].])
+ fi
+])
+
+AH_TEMPLATE([NEED_GETOPT_H], [define if we need to include <getopt.h> for the getopt() global variables])
+AH_TEMPLATE([NEED_GETOPT_EXTERN_DECLS], [define if we need extern declarations for the getopt() global variables])
+AC_DEFUN([wi_GETOPT], [
+AC_CACHE_CHECK([how to access getopt() global variables], [wi_cv_getopt_decl], [
+wi_PREREQ_UNISTD_H([$0])
+AC_TRY_COMPILE([
+/* includes */
+#if defined(AIX) || defined(_AIX) || defined(__HOS_AIX__)
+# define _ALL_SOURCE 1
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#include <stdio.h>
+#include <stdlib.h>
+],[
+ optind = (optarg == 0) ? 66 : 99;
+],[wi_cv_getopt_decl="automatic"],[wi_cv_getopt_decl="unknown"])
+if test "$wi_cv_getopt_decl" = unknown ; then
+AC_TRY_COMPILE([
+/* includes */
+#if defined(AIX) || defined(_AIX) || defined(__HOS_AIX__)
+# define _ALL_SOURCE 1
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#include <stdio.h>
+#include <stdlib.h>
+#include <getopt.h>
+],[
+ optind = (optarg == 0) ? 66 : 99;
+],[wi_cv_getopt_decl="getopt.h"],[wi_cv_getopt_decl="manual"])
+fi
+])
+if test "$wi_cv_getopt_decl" = "getopt.h" ; then
+ AC_DEFINE(NEED_GETOPT_H)
+elif test "$wi_cv_getopt_decl" = "manual" ; then
+ AC_DEFINE(NEED_GETOPT_EXTERN_DECLS)
+fi
+])
+dnl
+dnl
+dnl
+AC_DEFUN([wi_LIB_SNPRINTF], [
+if test "$ac_cv_func_snprintf" = "no" ; then
+ AC_CHECK_LIB(snprintf,snprintf)
+ if test "$ac_cv_lib_snprintf_snprintf" = yes ; then
+ unset ac_cv_func_snprintf ac_cv_func_vsnprintf
+ AC_CHECK_HEADERS(snprintf.h)
+ AC_CHECK_FUNCS(snprintf vsnprintf)
+ fi
+fi
+])
+dnl
+dnl
+dnl
+AH_TEMPLATE([SNPRINTF_TERMINATES], [define if snprintf works correctly])
+AC_DEFUN([wi_SNPRINTF_TERMINATES], [
+if test "$ac_cv_func_snprintf" != "no" ; then
+AC_MSG_CHECKING(if snprintf works correctly)
+ if test "$ac_cv_func_snprintf" = "no" ; then
+ AC_CHECK_LIB(snprintf,snprintf)
+ fi
+wi_PREREQ_UNISTD_H([$0])
+AC_TRY_RUN([
+ /* program */
+#if defined(AIX) || defined(_AIX) || defined(__HOS_AIX__)
+# define _ALL_SOURCE 1
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#include <stdio.h>
+#include <string.h>
+#ifdef HAVE_STRINGS_H
+#include <strings.h>
+#endif
+#include <stdlib.h>
+
+main()
+{
+ char s[16];
+ int i, result;
+
+ for (i=0; i<(int)(sizeof(s)/sizeof(char)); i++)
+ s[i] = 'x';
+ result = (int) snprintf(s + 1, 10, "%s %s!", "hello", "world");
+ if (s[10] != '\0')
+ exit(1); /* did not force termination! */
+ if (s[11] != 'x')
+ exit(2); /* overflow! */
+ if (s[0] != 'x')
+ exit(3); /* underflow! */
+ exit(0);
+}
+],[
+ # action if true
+ wi_cv_snprintf_terminates=yes
+ AC_DEFINE(SNPRINTF_TERMINATES)
+ x="yes";
+],[
+ # action if false
+ wi_cv_snprintf_terminates=no
+ x="no";
+],[
+ # action if cross compiling
+ wi_cv_snprintf_terminates=no
+ x="unknown";
+])
+AC_MSG_RESULT($x)
+fi
+])
+dnl
+dnl
+dnl
+AC_DEFUN([wi_SNPRINTF], [
+wi_SPRINTF_RETVAL
+dnl Uncache these -- config.cache doesn't cache it right for this case.
+unset ac_cv_func_snprintf
+unset ac_cv_func_vsnprintf
+
+AC_CHECK_FUNCS(snprintf vsnprintf)
+wi_SNPRINTF_TERMINATES
+wi_LIB_SNPRINTF
+])
+dnl
+dnl
+dnl
+
+AH_TEMPLATE([HAVE_HPSECURITY_H], [define if we have hpsecurity.h])
+AC_DEFUN([wi_HEADER_HPSECURITY_H], [
+AC_MSG_CHECKING(for hpsecurity.h)
+wi_cv_header_hpsecurity_h=no
+if test -f /usr/include/hpsecurity.h ; then
+ wi_cv_header_hpsecurity_h=yes
+ AC_DEFINE(HAVE_HPSECURITY_H)
+fi
+AC_MSG_RESULT($wi_cv_header_hpsecurity_h)
+])
+dnl
+dnl
+dnl
+AH_TEMPLATE([CAN_USE_SYS_SELECT_H], [define if we can use sys/select.h])
+AC_DEFUN([wi_HEADER_SYS_SELECT_H], [
+wi_PREREQ_UNISTD_H([$0])
+# See if <sys/select.h> is includable after <sys/time.h>
+if test "$ac_cv_header_sys_time_h" = no ; then
+ wi_chk_headers="sys/time.h sys/select.h"
+else
+ wi_chk_headers="sys/time.h"
+fi
+AC_CHECK_HEADERS($wi_chk_headers)
+if test "$ac_cv_header_sys_select_h" = yes ; then
+ AC_MSG_CHECKING([if <sys/select.h> is compatible with <sys/time.h>])
+ selecth=yes
+ if test "$ac_cv_header_sys_time_h" = yes ; then
+ AC_TRY_COMPILE([
+#if defined(AIX) || defined(_AIX) || defined(__HOS_AIX__)
+# define _ALL_SOURCE 1
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#include <sys/types.h>
+#include <sys/time.h>
+#include <sys/select.h>],[
+ fd_set a;
+ struct timeval tmval;
+
+ tmval.tv_sec = 0;],selecth=yes,selecth=no)
+ fi
+ if test "$selecth" = yes ; then
+ AC_DEFINE(CAN_USE_SYS_SELECT_H)
+ fi
+ AC_MSG_RESULT($selecth)
+fi
+])
+dnl
+dnl
+dnl
+AC_DEFUN([wi_LIB_44BSD], [
+AC_CHECK_FUNC(strerror,[a=yes],[a=no])
+if test "$a" = no ; then
+ # Not in libc, try lib44bsd.
+ AC_CHECK_LIB(44bsd,strerror)
+fi
+])
+dnl
+dnl
+dnl
+AH_TEMPLATE([HAVE_UNIX_DOMAIN_SOCKETS], [define if UNIX domain sockets are available])
+AC_DEFUN([wi_UNIX_DOMAIN_SOCKETS], [
+if test "x$want_unix_domain_sockets" != xno ; then
+ wi_PREREQ_UNISTD_H([$0])
+ AC_CHECK_HEADERS(sys/un.h)
+ AC_CACHE_CHECK([for UNIX domain sockets], [wi_cv_unix_domain_sockets], [
+ AC_TRY_RUN([
+#if defined(AIX) || defined(_AIX) || defined(__HOS_AIX__)
+# define _ALL_SOURCE 1
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#include <sys/types.h>
+#include <sys/socket.h>
+#ifdef HAVE_SYS_UN_H
+#include <sys/un.h>
+#endif
+
+main()
+{
+ int sfd;
+
+ sfd = socket(AF_UNIX, SOCK_STREAM, 0);
+ if (sfd < 0)
+ exit(1); /* do not have UNIX domain sockets */
+ close(sfd);
+ exit(0); /* do have UNIX domain sockets */
+}],[
+ # action if true
+ wi_cv_unix_domain_sockets=yes
+],[
+ # action if false
+ wi_cv_unix_domain_sockets=no
+],[
+ # action if cross-compiling, guess
+ wi_cv_unix_domain_sockets=yes
+])
+])
+ if test "x$wi_cv_unix_domain_sockets" = xyes ; then
+ AC_DEFINE(HAVE_UNIX_DOMAIN_SOCKETS)
+ fi
+ wi_SOCKADDR_UN_SUN_LEN
+fi
+])
+dnl
+dnl
+dnl
+AC_DEFUN([wi_LIB_NSL], [
+dnl Note: Check for socket lib first, then nsl.
+
+case "$OS" in
+ hpux1[123456789]*)
+ # HP-UX 11 uses NSL for YP services
+ AC_CHECK_LIB(nsl,getpwent)
+ ;;
+
+ *)
+ AC_CHECK_FUNC(gethostbyname,[a=yes],[a=no])
+ if test "$a" = no ; then
+ # Not in libc, try libnsl.
+ AC_CHECK_LIB(nsl,gethostbyname)
+ fi
+ ;;
+esac
+
+])
+dnl
+dnl
+dnl
+AC_DEFUN([wi_LIB_SOCKET], [
+AC_CHECK_FUNC(socket,[a=yes],[a=no])
+if test "$a" = no ; then
+ # Not in libc, try libsocket.
+ AC_CHECK_LIB(socket,socket)
+fi
+])
+dnl
+dnl
+dnl
+AC_DEFUN([wi_LIB_RESOLV], [
+# See if we could access two well-known sites without help of any special
+# libraries, like resolv.
+dnl
+dnl AC_MSG_WARN([the following check may take several minutes if networking is not up. You may want to bring it up now and restart configure, otherwise please be patient.])
+dnl
+AC_CACHE_CHECK([if we need to look for -lresolv], [wi_cv_look_for_resolv], [
+wi_PREREQ_UNISTD_H([$0])
+AC_TRY_RUN([
+#if defined(AIX) || defined(_AIX) || defined(__HOS_AIX__)
+# define _ALL_SOURCE 1
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <netdb.h>
+
+main()
+{
+ struct hostent *hp1, *hp2;
+
+ hp1 = gethostbyname("ftp.ncftp.com");
+ if (hp1 == (struct hostent *) 0) {
+ hp2 = gethostbyname("www.ibm.com");
+ if (hp2 == (struct hostent *) 0)
+ exit(1);
+ }
+ exit(0);
+}],wi_cv_look_for_resolv=no,wi_cv_look_for_resolv=yes,wi_cv_look_for_resolv=yes)
+])
+
+if test "$wi_cv_look_for_resolv" = yes ; then
+AC_CHECK_LIB(resolv,main)
+else
+ ac_cv_lib_resolv=no
+fi
+])
+dnl
+dnl
+dnl
+AC_DEFUN([wi_LIB_TCP_WRAPPERS], [
+wi_PREREQ_UNISTD_H([$0])
+AC_MSG_CHECKING([for tcp wrappers library (libwrap)])
+
+AC_TRY_LINK([
+ /* includes */
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#include <sys/types.h>
+#include <stdio.h>
+
+/* These are needed if libwrap.a was compiled with
+ * PROCESS_OPTIONS defined.
+ */
+int allow_severity = 1; /* arbitrary for this test */
+int deny_severity = 2; /* arbitrary for this test */
+
+],[
+ /* function-body */
+ exit((allow_severity == deny_severity) ? 1 : 0);
+],[
+dnl ...Don't bother defining this symbol...
+dnl ...Check for tcpd.h instead...
+dnl AC_DEFINE(HAVE_LIBWRAP)
+dnl
+dnl ...Don't modify LIBS, instead set WRAPLIB...
+dnl LIBS="-lwrap $LIBS"
+dnl
+ WRAPLIB="-lwrap"
+ wi_cv_lib_wrap_hosts_access=yes
+],[
+ WRAPLIB=""
+ wi_cv_lib_wrap_hosts_access=no
+])
+AC_MSG_RESULT($wi_cv_lib_wrap_hosts_access)
+])
+dnl
+dnl
+dnl
+AC_DEFUN([wi_NET_LIBS], [
+# Mostly for SunOS 4 -- needs to come first because other libs depend on it
+wi_LIB_44BSD
+
+wi_LIB_SOCKET
+
+if test "$SYS" = unixware ; then
+ case "$OS" in
+ unixware2*)
+ # So far, only UnixWare needs this.
+ AC_CHECK_LIB(gen,syslog)
+
+ if test -f /usr/ucblib/libucb.a ; then
+ LDFLAGS="$LDFLAGS -L/usr/ucblib"
+ LIBS="$LIBS -lucb"
+ fi
+ if test -f /usr/include/unistd.h ; then
+ ac_cv_header_unistd_h=yes
+ fi
+
+ # UnixWare 2 needs both lsocket and lnsl, and configure
+ # script won't detect this condition properly because
+ # the libraries are interdependent.
+ #
+ LIBS="$LIBS -lsocket -lnsl"
+
+ # Now look for socket()
+ #
+ # AC_CHECK_FUNC(socket,[a=yes],[a=no])
+ #
+ AC_CHECK_FUNC(socket,[a=yes],[a=no])
+ ;;
+ *)
+ ;;
+ esac
+fi
+
+dnl AC_CHECK_LIB(inet,main)
+
+wi_LIB_NSL
+wi_LIB_RESOLV
+
+if test "$SYS" = dynixptx ; then
+ LIBS="$LIBS -lsocket -lnsl"
+fi
+
+])
+dnl
+dnl
+dnl
+dnl
+AH_TEMPLATE([UNAME], [uname -a output])
+AC_DEFUN([wi_DEFINE_UNAME], [
+# Get first 127 chars of all uname information. Some folks have
+# way too much stuff there, so grab only the first 127.
+unam=`uname -a 2>/dev/null | cut -c1-127 | sed 's-"-\\"-g'`
+if test "$unam" != "" ; then
+ AC_DEFINE_UNQUOTED(UNAME, "$unam")
+fi
+])
+dnl
+dnl
+dnl
+AH_TEMPLATE([HAVE_SIGSETJMP], [define if we have sigsetjmp and siglongjmp])
+AC_DEFUN([wi_FUNC_SIGSETJMP], [
+wi_PREREQ_UNISTD_H([$0])
+AC_CACHE_CHECK([for sigsetjmp and siglongjmp], [wi_cv_func_sigsetjmp], [
+
+AC_TRY_LINK([
+ /* includes */
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#include <sys/types.h>
+#include <stdio.h>
+#include <signal.h>
+#include <setjmp.h>
+],[
+ /* function-body */
+ sigjmp_buf sjb;
+
+ if (sigsetjmp(sjb, 1) != 0)
+ siglongjmp(sjb, 1); /* bogus code, of course. */
+ exit(0);
+],[
+ wi_cv_func_sigsetjmp=yes
+],[
+ wi_cv_func_sigsetjmp=no
+])
+])
+if test "$wi_cv_func_sigsetjmp" = yes ; then
+ AC_DEFINE(HAVE_SIGSETJMP)
+fi
+])
+dnl
+dnl
+dnl
+AH_TEMPLATE([HAVE_UTMP_UT_NAME], [define if struct utmp has the ut_name field])
+AC_DEFUN([wi_UTMP_UT_NAME], [
+AC_MSG_CHECKING([for ut_name field in struct utmp])
+AC_TRY_LINK([
+ /* includes */
+#include <unistd.h>
+#include <sys/types.h>
+#include <utmp.h>
+],[
+struct utmp u;
+
+u.ut_name[0] = '\0';
+exit(((int) &u.ut_name) & 0xff); /* bogus code, of course. */
+],[
+ wi_cv_utmp_ut_name=yes
+ AC_DEFINE(HAVE_UTMP_UT_NAME)
+],[
+ wi_cv_utmp_ut_name=no
+])
+AC_MSG_RESULT($wi_cv_utmp_ut_name)
+])
+dnl
+dnl
+dnl
+AH_TEMPLATE([HAVE_UTMPX_UT_SYSLEN], [define if struct utmpx has the ut_syslen field])
+AC_DEFUN([wi_UTMPX_UT_SYSLEN], [
+AC_MSG_CHECKING([for ut_syslen field in struct utmpx])
+AC_TRY_LINK([
+ /* includes */
+#include <unistd.h>
+#include <sys/types.h>
+#include <utmpx.h>
+],[
+struct utmpx u;
+
+u.ut_syslen = 0;
+exit(((int) &u.ut_syslen) & 0xff); /* bogus code, of course. */
+],[
+ wi_cv_utmpx_ut_syslen=yes
+ AC_DEFINE(HAVE_UTMPX_UT_SYSLEN)
+],[
+ wi_cv_utmpx_ut_syslen=no
+])
+AC_MSG_RESULT($wi_cv_utmpx_ut_syslen)
+])
+dnl
+dnl
+dnl
+AH_TEMPLATE([HAVE_UTMP_UT_USER], [define if struct utmp has the ut_user field])
+AC_DEFUN([wi_UTMP_UT_USER], [
+AC_MSG_CHECKING([for ut_user field in struct utmp])
+AC_TRY_LINK([
+ /* includes */
+#include <unistd.h>
+#include <sys/types.h>
+#include <utmp.h>
+],[
+struct utmp u;
+
+u.ut_user[0] = '\0';
+exit(((int) &u.ut_user) & 0xff); /* bogus code, of course. */
+],[
+ wi_cv_utmp_ut_user=yes
+ AC_DEFINE(HAVE_UTMP_UT_USER)
+],[
+ wi_cv_utmp_ut_user=no
+])
+AC_MSG_RESULT($wi_cv_utmp_ut_user)
+])
+dnl
+dnl
+dnl
+AH_TEMPLATE([HAVE_UTMP_UT_PID], [define if struct utmp has the ut_pid field])
+AC_DEFUN([wi_UTMP_UT_PID], [
+AC_MSG_CHECKING([for ut_pid field in struct utmp])
+AC_TRY_LINK([
+ /* includes */
+#include <unistd.h>
+#include <sys/types.h>
+#include <utmp.h>
+],[
+struct utmp u;
+
+u.ut_pid = 1;
+exit(((int) &u.ut_pid) & 0xff); /* bogus code, of course. */
+],[
+ wi_cv_utmp_ut_pid=yes
+ AC_DEFINE(HAVE_UTMP_UT_PID)
+],[
+ wi_cv_utmp_ut_pid=no
+])
+AC_MSG_RESULT($wi_cv_utmp_ut_pid)
+])
+
+dnl
+dnl
+dnl
+AH_TEMPLATE([HAVE_UTMP_UT_TIME], [define if struct utmp has the ut_time field])
+AC_DEFUN([wi_UTMP_UT_TIME], [
+AC_MSG_CHECKING([for ut_time field in struct utmp])
+AC_TRY_LINK([
+ /* includes */
+#include <unistd.h>
+#include <sys/types.h>
+#include <utmp.h>
+],[
+struct utmp u;
+
+u.ut_time = 1;
+exit(((int) &u.ut_time) & 0xff); /* bogus code, of course. */
+],[
+ wi_cv_utmp_ut_time=yes
+ AC_DEFINE(HAVE_UTMP_UT_TIME)
+],[
+ wi_cv_utmp_ut_time=no
+])
+AC_MSG_RESULT($wi_cv_utmp_ut_time)
+])
+dnl
+dnl
+dnl
+AH_TEMPLATE([HAVE_UTMP_UT_HOST], [define if struct utmp has the ut_host field])
+AC_DEFUN([wi_UTMP_UT_HOST], [
+AC_MSG_CHECKING([for ut_host field in struct utmp])
+AC_TRY_LINK([
+ /* includes */
+#include <unistd.h>
+#include <sys/types.h>
+#include <utmp.h>
+],[
+struct utmp u;
+
+u.ut_host[0] = '\0';
+exit(((int) &u.ut_host) & 0xff); /* bogus code, of course. */
+],[
+ wi_cv_utmp_ut_host=yes
+ AC_DEFINE(HAVE_UTMP_UT_HOST)
+],[
+ wi_cv_utmp_ut_host=no
+])
+AC_MSG_RESULT($wi_cv_utmp_ut_host)
+])
+dnl
+dnl
+dnl
+dnl
+AH_TEMPLATE([HAVE_STRUCT_STAT64], [define if we have struct stat64])
+AC_DEFUN([wi_STRUCT_STAT64], [
+AC_MSG_CHECKING([for struct stat64])
+AC_TRY_LINK([
+ /* includes */
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+],[
+struct stat64 st;
+
+st.st_size = 0;
+exit(((int) &st.st_size) & 0xff); /* bogus code, of course. */
+],[
+ wi_cv_struct_stat64=yes
+ AC_DEFINE(HAVE_STRUCT_STAT64)
+],[
+ wi_cv_struct_stat64=no
+])
+AC_MSG_RESULT($wi_cv_struct_stat64)
+])
+dnl
+dnl
+dnl
+AH_TEMPLATE([HAVE_STRUCT_CMSGDHR], [define if we have struct cmsghdr])
+AC_DEFUN([wi_STRUCT_CMSGHDR], [
+AC_CACHE_CHECK([for struct cmsghdr],[wi_cv_struct_cmsghdr], [
+AC_TRY_LINK([
+ /* includes */
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/uio.h>
+#include <sys/socket.h>
+#include <sys/un.h>
+],[
+struct cmsghdr cm;
+
+cm.cmsg_len = 0;
+cm.cmsg_level = 0;
+cm.cmsg_type = 0;
+exit(((int) &cm.cmsg_type) & 0xff); /* bogus code, of course. */
+],[
+ wi_cv_struct_cmsghdr=yes
+],[
+ wi_cv_struct_cmsghdr=no
+])
+])
+if test "$wi_cv_struct_cmsghdr" = yes ; then
+ AC_DEFINE(HAVE_STRUCT_CMSGDHR)
+fi
+])
+dnl
+dnl
+dnl
+AH_TEMPLATE([HAVE_MSGHDR_CONTROL], [define if struct msghdr has the msg_control field])
+AC_DEFUN([wi_MSGHDR_CONTROL], [
+AC_CACHE_CHECK([for msg_control field in struct msghdr],[wi_cv_msghdr_control], [
+AC_TRY_LINK([
+ /* includes */
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/uio.h>
+#include <sys/socket.h>
+#include <sys/un.h>
+],[
+struct msghdr m;
+
+m.msg_control = &m;
+m.msg_controllen = sizeof(m);
+exit(((int) &m.msg_control) & 0xff); /* bogus code, of course. */
+],[
+ wi_cv_msghdr_control=yes
+],[
+ wi_cv_msghdr_control=no
+])
+])
+if test "$wi_cv_msghdr_control" = yes ; then
+ AC_DEFINE(HAVE_MSGHDR_CONTROL)
+fi
+])
+dnl
+dnl
+dnl
+AH_TEMPLATE([HAVE_MSGHDR_ACCRIGHTS], [define if struct msghdr has the msg_accrights field])
+AC_DEFUN([wi_MSGHDR_ACCRIGHTS], [
+AC_CACHE_CHECK([for msg_accrights field in struct msghdr], [wi_cv_msghdr_accrights], [
+AC_TRY_LINK([
+ /* includes */
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/uio.h>
+#include <sys/socket.h>
+#include <sys/un.h>
+],[
+struct msghdr m;
+
+m.msg_accrights = &m;
+m.msg_accrightslen = sizeof(m);
+exit(((int) &m.msg_accrights) & 0xff); /* bogus code, of course. */
+],[
+ wi_cv_msghdr_accrights=yes
+],[
+ wi_cv_msghdr_accrights=no
+])
+])
+if test "$wi_cv_msghdr_accrights" = yes ; then
+ AC_DEFINE(HAVE_MSGHDR_ACCRIGHTS)
+fi
+])
+dnl
+dnl
+dnl
+AH_TEMPLATE([HAVE_PR_PASSWD_FG_OLDCRYPT], [define if struct pr_passwd has the fg_oldcrypt field])
+AC_DEFUN([wi_PR_PASSWD_FG_OLDCRYPT], [
+AC_MSG_CHECKING([for fg_oldcrypt field in struct pr_passwd])
+AC_TRY_LINK([
+ /* includes */
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <pwd.h>
+#include <grp.h>
+#include <errno.h>
+
+#if defined(HAVE_USERPW_H) && defined(HAVE_GETUSERPW) /* AIX */
+# include <userpw.h>
+#elif defined(HAVE_PWDADJ_H) && defined(HAVE_GETPWANAM) /* SunOS */
+# include <sys/label.h>
+# ifdef HAVE_SYS_AUDIT_H
+# include <sys/audit.h>
+# endif
+# include <pwdadj.h>
+#elif defined(HAVE_GETESPWNAM) /* Digital UNIX 4 */
+# ifdef HAVE_SYS_SECDEFINES_H
+# include <sys/secdefines.h>
+# endif
+# ifdef HAVE_SYS_SECURITY_H
+# include <sys/security.h>
+# endif
+# ifdef HAVE_SYS_AUDIT_H
+# include <sys/audit.h>
+# endif
+# ifdef HAVE_KRB_H
+# include <krb.h>
+# endif
+# ifdef HAVE_PROT_H
+# include <prot.h>
+# endif
+#elif defined(HAVE_GETPRPWNAM) /* SCO Open Server V, Digital UNIX 3, HP-UX 10 */
+# ifdef HAVE_SYS_SECDEFINES_H
+# include <sys/secdefines.h>
+# endif
+# ifdef HAVE_SYS_SECURITY_H
+# include <sys/security.h>
+# endif
+# ifdef HAVE_SYS_AUDIT_H
+# include <sys/audit.h>
+# endif
+# ifdef HAVE_HPSECURITY_H
+# include <hpsecurity.h>
+# endif
+# ifdef HAVE_KRB_H
+# include <krb.h>
+# endif
+# ifdef HAVE_PROT_H
+# include <prot.h>
+# endif
+#endif
+],[
+ struct pr_passwd xu;
+ memset(&xu, 0, sizeof(xu));
+ if (xu.uflg.fg_oldcrypt != 0)
+ xu.uflg.fg_oldcrypt++; /* bogus code, of course */
+ exit(0);
+],[
+ wi_cv_pr_passwd_fg_oldcrypt=yes
+ AC_DEFINE(HAVE_PR_PASSWD_FG_OLDCRYPT)
+],[
+ wi_cv_pr_passwd_fg_oldcrypt=no
+])
+AC_MSG_RESULT($wi_cv_pr_passwd_fg_oldcrypt)
+])
+dnl
+dnl
+dnl
+AH_TEMPLATE([HAVE_SOCKADDR_UN_SUN_LEN], [define if struct sockaddr_un has the sun_len field])
+AC_DEFUN([wi_SOCKADDR_UN_SUN_LEN], [
+AC_CACHE_CHECK([for sun_len field in struct sockaddr_un], [wi_cv_sockaddr_un_sun_len], [
+AC_TRY_LINK([
+ /* includes */
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/uio.h>
+#include <sys/socket.h>
+#include <sys/un.h>
+],[
+struct sockaddr_un uaddr;
+
+uaddr.sun_len = strlen("/tmp/test.sock");
+exit(((int) uaddr.sun_len); /* bogus code, of course. */
+],[
+ wi_cv_sockaddr_un_sun_len=yes
+],[
+ wi_cv_sockaddr_un_sun_len=no
+])
+])
+if test "$wi_cv_sockaddr_un_sun_len" = yes ; then
+ AC_DEFINE(HAVE_SOCKADDR_UN_SUN_LEN)
+fi
+])
+dnl
+dnl
+dnl
+AH_TEMPLATE([HAVE_STATFS_F_BAVAIL], [define if struct statfs has the f_bavail field])
+AC_DEFUN([wi_STATFS_F_BAVAIL], [
+AC_MSG_CHECKING([for f_bavail field in struct statfs])
+AC_TRY_LINK([
+ /* includes */
+#include <unistd.h>
+#include <sys/types.h>
+#ifdef HAVE_SYS_STATFS_H
+# include <sys/statfs.h>
+#elif defined(HAVE_SYS_VFS_H)
+# include <sys/vfs.h>
+#endif
+],[
+struct statfs st;
+
+st.f_bavail = 1;
+exit((int) st.f_bavail); /* bogus code, of course. */
+],[
+ wi_cv_statfs_f_bavail=yes
+ AC_DEFINE(HAVE_STATFS_F_BAVAIL)
+],[
+ wi_cv_statfs_f_bavail=no
+])
+AC_MSG_RESULT($wi_cv_statfs_f_bavail)
+])
+dnl
+dnl
+dnl
+AH_TEMPLATE([HAVE_STATVFS_F_FRSIZE], [define if struct statvfs has the f_frsize field])
+AC_DEFUN([wi_STATVFS_F_FRSIZE], [
+AC_MSG_CHECKING([for f_frsize field in struct statvfs])
+AC_TRY_LINK([
+ /* includes */
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/statvfs.h>
+],[
+struct statvfs st;
+
+st.f_frsize = 1;
+exit((int) st.f_frsize); /* bogus code, of course. */
+],[
+ wi_cv_statfs_f_frsize=yes
+ AC_DEFINE(HAVE_STATVFS_F_FRSIZE)
+],[
+ wi_cv_statfs_f_frsize=no
+])
+AC_MSG_RESULT($wi_cv_statfs_f_frsize)
+])
+dnl
+dnl
+dnl
+AH_TEMPLATE([SPRINTF_RETURNS_PTR], [define if sprintf returns a pointer to the data])
+AC_DEFUN([wi_SPRINTF_RETVAL], [
+AC_MSG_CHECKING([what sprintf() returns])
+AC_TRY_RUN([
+ /* program */
+#include <stdio.h>
+#include <string.h>
+
+main()
+{
+ int result;
+ char s[8];
+
+ result = (int) sprintf(s, "%d", 22);
+ if (result == 2)
+ exit(0);
+ exit(1);
+
+}
+],[
+ # action if true
+ wi_cv_sprintf_returns_ptr=no
+ x="length of data written";
+],[
+ # action if false
+ wi_cv_sprintf_returns_ptr=yes
+ AC_DEFINE(SPRINTF_RETURNS_PTR)
+ x="pointer to data";
+],[
+ # action if cross compiling
+ wi_cv_sprintf_returns_ptr=no
+ x="unknown";
+])
+AC_MSG_RESULT($x)
+])
+dnl
+dnl
+dnl
+AC_DEFUN([wi_LIB_CRYPT], [
+AC_MSG_CHECKING([which library has usable crypt() function])
+ac_save_LIBS="$LIBS"
+crypt_lib=NONE
+
+for lib in "c" "crypt" "descrypt" "des"
+do
+
+if test "$lib" = "c" ; then
+ LIBS="$ac_save_LIBS"
+else
+ LIBS="$ac_save_LIBS -l${lib}"
+fi
+
+wi_PREREQ_UNISTD_H([$0])
+AC_TRY_RUN([
+ /* program */
+#if defined(AIX) || defined(_AIX) || defined(__HOS_AIX__)
+# define _ALL_SOURCE 1
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#include <stdio.h>
+#include <string.h>
+
+extern char *crypt(const char *key, const char *salt);
+
+main()
+{
+ char cleartext[256];
+ char *cp;
+
+ memset(cleartext, 0, sizeof(cleartext));
+ strcpy(cleartext, "password");
+
+ cp = crypt(cleartext, "xx");
+ if ((cp != NULL) && (strcmp(cp, "xxj31ZMTZzkVA") == 0)) {
+ /* printf("PASS\n"); */
+ exit(0);
+ }
+ /* printf("FAIL\n"); */
+ exit(1);
+}
+],[
+ # action if true
+ crypt_lib="$lib"
+],[
+ # action if false
+ :
+],[
+ # action if cross compiling
+ :
+])
+
+
+if test "$crypt_lib" != NONE ; then
+ break
+fi
+
+done
+
+
+LIBS="$ac_save_LIBS"
+
+if test "$crypt_lib" = NONE ; then
+ crypt_lib=c
+ AC_MSG_RESULT([none?])
+else
+ AC_MSG_RESULT([lib${crypt_lib}])
+fi
+if test "$crypt_lib" != c ; then
+ AC_CHECK_LIB(${lib},crypt)
+fi
+])
+dnl
+dnl
+dnl
+AC_DEFUN([wi_TEST], [
+changequote(<^, ^>)dnl
+changequote([, ])dnl
+])
+dnl
+dnl
+dnl
+AH_TEMPLATE([HAVE__RES_DEFDNAME], [define if _res global variable is usable])
+AC_DEFUN([wi__RES_DEFDNAME], [
+AC_MSG_CHECKING([for useable _res global variable])
+AC_TRY_LINK([
+ /* includes */
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/socket.h>
+#include <arpa/inet.h>
+#include <netinet/in.h>
+#ifdef HAVE_ARPA_NAMESER_H
+# include <arpa/nameser.h>
+#endif
+#ifdef HAVE_RESOLV_H
+# include <resolv.h>
+#endif
+],[
+ /* function-body */
+ int len;
+
+ res_init();
+ len = (int) strlen(_res.defdname);
+],[
+ wi_cv__res_defdname=yes
+ AC_DEFINE(HAVE__RES_DEFDNAME)
+],[
+ wi_cv__res_defdname=no
+])
+AC_MSG_RESULT($wi_cv__res_defdname)
+])
+dnl
+dnl
+dnl
+dnl
+AH_TEMPLATE([sig_atomic_t], [type to use for sig_atomic_t])
+AC_DEFUN([wi_TYPE_SIG_ATOMIC_T], [
+wi_PREREQ_UNISTD_H([$0])
+AC_MSG_CHECKING([for sig_atomic_t])
+AC_TRY_LINK([
+ /* includes */
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#include <sys/types.h>
+#include <sys/signal.h>
+#include <signal.h> /* MG: for IRIX */
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+],[
+ /* function-body */
+ sig_atomic_t sample;
+
+ sample = (sig_atomic_t) getpid(); /* bogus code, of course */
+ exit((sample > 0) ? 0 : 1);
+],[
+ ac_cv_type_sig_atomic_t=yes
+],[
+ ac_cv_type_sig_atomic_t=no
+])
+AC_MSG_RESULT($ac_cv_type_sig_atomic_t)
+if test $ac_cv_type_sig_atomic_t = no ; then
+ AC_DEFINE(sig_atomic_t, int)
+fi
+])
+dnl
+dnl
+dnl
+dnl
+AC_DEFUN([wi_LIB_READLINE], [
+AC_MSG_CHECKING([for GNU Readline library, version 2.0 or newer])
+
+wi_cv_lib_readline=no
+wi_cv_lib_readline_result=no
+ac_save_LIBS="$LIBS"
+# Note: $LIBCURSES is permitted to be empty.
+for LIBREADLINE in "-lreadline" "-lreadline $LIBCURSES" "-lreadline -ltermcap" "-lreadline -lncurses" "-lreadline -lcurses"
+do
+ LIBS="$ac_save_LIBS $LIBREADLINE"
+ AC_TRY_RUN([
+ /* program */
+#include <stdio.h>
+#include <stdlib.h>
+
+main(int argc, char **argv)
+{
+ /* Note: don't actually call readline, since it may block;
+ * We just want to see if it (dynamic) linked in okay.
+ */
+ if (argc == 0) /* never true */
+ readline(0);
+ exit(0);
+}
+],[
+ # action if true
+ wi_cv_lib_readline=yes
+],[
+ # action if false
+ wi_cv_lib_readline=no
+],[
+ # action if cross compiling
+ wi_cv_lib_readline=no
+])
+
+ if test "$wi_cv_lib_readline" = yes ; then break ; fi
+done
+
+# Now try it again, to be sure it is recent enough.
+# rl_function_of_keyseq appeared in version 2.0
+#
+dnl AC_CHECK_FUNC(rl_function_of_keyseq, [wi_cv_lib_readline=yes],[
+dnl wi_cv_lib_readline=no;wi_cv_lib_readline_result="no (it is present but too old to use)"
+dnl ])
+ AC_TRY_LINK([
+ /* includes */
+ ],[
+ /* function-body */
+ readline(0);
+ rl_function_of_keyseq(0);
+ ],[
+ wi_cv_lib_readline=yes
+ ],[
+ wi_cv_lib_readline=no
+ wi_cv_lib_readline_result="no (it is present but too old to use)"
+ ])
+
+if test "$wi_cv_lib_readline" = no ; then
+ LIBREADLINE=""
+ # restore LIBS
+ LIBS="$ac_save_LIBS"
+else
+ /bin/rm -f readline.ver
+ touch readline.ver
+
+ AC_TRY_RUN([
+ /* program */
+#include <unistd.h>
+#include <sys/types.h>
+#include <stdio.h>
+
+extern char *rl_library_version;
+
+main()
+{
+ FILE *fp;
+ double d;
+
+ sscanf(rl_library_version, "%lf", &d);
+ fp = fopen("readline.ver", "w");
+ if (fp == NULL) exit(1);
+ if (fprintf(fp, "%s\n", rl_library_version) < 0) exit(1);
+ if (fprintf(fp, "%03d\n", (int) (d * 100.0)) < 0) exit(1);
+ if (fclose(fp) < 0) exit(1);
+ exit(0);
+}
+ ],[
+ # action if true
+ rl_library_version=`sed -n 1,1p readline.ver 2>/dev/null`
+ rlver=`sed -n 2,2p readline.ver 2>/dev/null`
+ /bin/rm -f readline.ver
+ ],[
+ # action if false
+ rl_library_version=''
+ rlver=''
+ /bin/rm -f readline.ver
+ ],[
+ # action if cross compiling
+ rl_library_version=''
+ rlver=''
+ /bin/rm -f readline.ver
+ ])
+
+ case "$rlver" in
+ ???)
+ wi_cv_lib_readline_result="yes, installed version is $rl_library_version"
+ ;;
+ *)
+ # Test using current LIBS.
+ AC_TRY_LINK([
+ /* includes */
+ extern int rl_completion_append_character;
+ ],[
+ /* function-body */
+ readline(0);
+ rl_completion_append_character = 0;
+ ],[
+ rlver="210"
+ ],[
+ rlver="200"
+ ])
+
+ if test "$rlver" = "210" ; then
+ wi_cv_lib_readline_result="yes, version 2.1 or higher"
+ else
+ wi_cv_lib_readline_result="yes, version 2.0"
+ fi
+ ;;
+ esac
+
+ wi_cv_lib_readline=yes
+ # restore LIBS
+ LIBS="$ac_save_LIBS"
+fi
+AC_MSG_RESULT($wi_cv_lib_readline_result)
+AC_SUBST(LIBREADLINE)
+
+if test "$wi_cv_lib_readline" = yes ; then
+ # Now verify that all the headers are installed.
+ #
+ AC_REQUIRE_CPP()
+ unset ac_cv_header_readline_chardefs_h
+ unset ac_cv_header_readline_history_h
+ unset ac_cv_header_readline_keymaps_h
+ unset ac_cv_header_readline_readline_h
+ unset ac_cv_header_readline_tilde_h
+ AC_CHECK_HEADERS([readline/chardefs.h readline/history.h readline/keymaps.h readline/readline.h readline/tilde.h])
+
+ for xxwi in \
+ "$ac_cv_header_readline_chardefs_h" \
+ "$ac_cv_header_readline_history_h" \
+ "$ac_cv_header_readline_keymaps_h" \
+ "$ac_cv_header_readline_readline_h" \
+ "$ac_cv_header_readline_tilde_h"
+ do
+ if test "$xxwi" = no ; then
+ break
+ fi
+ done
+
+ if test "$xxwi" = no ; then
+ AC_MSG_WARN([GNU Readline headers are not installed or could not be found -- GNU Readline will not be used.])
+ wi_cv_lib_readline=no
+ wi_cv_lib_readline_result="no (headers not installed)"
+ else
+ AC_DEFINE_UNQUOTED(HAVE_LIBREADLINE, $rlver)
+ fi
+fi
+])
+dnl
+dnl
+dnl
+AH_TEMPLATE([HAVE_LONG_LONG], [define if we have the long long type])
+AH_TEMPLATE([PRINTF_LONG_LONG], [define if printf supports long long])
+AH_TEMPLATE([SCANF_LONG_LONG], [define if scanf supports long long])
+AH_TEMPLATE([PRINTF_ULONG_LONG], [define if printf supports unsigned long long])
+AH_TEMPLATE([SCANF_ULONG_LONG], [define if scanf supports unsigned long long])
+AH_TEMPLATE([PRINTF_LONG_LONG_QD], [define if using %qd for long long in printf])
+AH_TEMPLATE([SCANF_LONG_LONG_QD], [define if using %qd for long long in scanf])
+AH_TEMPLATE([PRINTF_LONG_LONG_LLD], [define if using %lld for long long in printf])
+AH_TEMPLATE([SCANF_LONG_LONG_LLD], [define if using %lld for long long in scanf])
+AC_DEFUN([wi_USE_LONG_LONG], [
+wi_PREREQ_UNISTD_H([$0])
+AC_MSG_CHECKING([for 64-bit integral type: long long])
+LONGEST_INT="long"
+AC_TRY_RUN([
+ /* program */
+#if defined(AIX) || defined(_AIX) || defined(__HOS_AIX__)
+# define _ALL_SOURCE 1
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#include <sys/types.h>
+#include <stdio.h>
+
+long long hugeNumvar = 1;
+
+main()
+{
+ long long hugeNumtoo = 2;
+
+ if (hugeNumtoo > hugeNumvar)
+ hugeNumvar++;
+ if (sizeof(hugeNumvar) < 8)
+ exit(1);
+ exit(0);
+}
+
+],[
+ # action if true
+ wi_cv_type_long_long=yes
+ LONGEST_INT="long long"
+],[
+ # action if false
+ wi_cv_type_long_long=no
+],[
+ # action if cross compiling
+ wi_cv_type_long_long=no
+])
+AC_MSG_RESULT($wi_cv_type_long_long)
+
+if test "$wi_cv_type_long_long" = yes ; then
+
+AC_MSG_CHECKING([how to print a 64-bit integral type])
+wi_cv_printf_long_long=fail
+
+AC_TRY_RUN([
+ /* program */
+#if defined(AIX) || defined(_AIX) || defined(__HOS_AIX__)
+# define _ALL_SOURCE 1
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#include <sys/types.h>
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+main()
+{
+ char s[80];
+ long long hugeNum;
+
+ hugeNum = (long long) 1000000000;
+ hugeNum = hugeNum * (long long) 99;
+ hugeNum = hugeNum + (long long) 1;
+
+ (void) sprintf(s, "%lld", hugeNum);
+ exit((strcmp(s, "99000000001") == 0) ? 0 : 1);
+}
+],[
+ # action if true
+ wi_cv_printf_long_long="%lld"
+],[
+ # action if false
+ :
+],[
+ # action if cross compiling
+ :
+])
+
+
+if test "$wi_cv_printf_long_long" = fail ; then
+
+AC_TRY_RUN([
+ /* program */
+#if defined(AIX) || defined(_AIX) || defined(__HOS_AIX__)
+# define _ALL_SOURCE 1
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#include <sys/types.h>
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+main()
+{
+ char s[80];
+ long long hugeNum;
+
+ hugeNum = (long long) 1000000000;
+ hugeNum = hugeNum * (long long) 99;
+ hugeNum = hugeNum + (long long) 1;
+
+ (void) sprintf(s, "%qd", hugeNum);
+ exit((strcmp(s, "99000000001") == 0) ? 0 : 1);
+}
+],[
+ # action if true
+ wi_cv_printf_long_long="%qd"
+],[
+ # action if false
+ :
+],[
+ # action if cross compiling
+ :
+])
+fi
+
+if test "$wi_cv_printf_long_long" = fail ; then
+ wi_cv_printf_long_long_msg_result='cannot print'
+else
+ wi_cv_printf_long_long_msg_result="$wi_cv_printf_long_long"
+fi
+
+AC_MSG_RESULT($wi_cv_printf_long_long_msg_result)
+
+
+AC_MSG_CHECKING([how to scan a 64-bit integral type])
+wi_cv_scanf_long_long=fail
+
+AC_TRY_RUN([
+ /* program */
+#if defined(AIX) || defined(_AIX) || defined(__HOS_AIX__)
+# define _ALL_SOURCE 1
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#include <sys/types.h>
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+main()
+{
+ long long hugeNum, justAsHugeNum;
+
+ hugeNum = (long long) 1000000000;
+ hugeNum = hugeNum * (long long) 99;
+ hugeNum = hugeNum + (long long) 1;
+
+ justAsHugeNum = (long long) 0;
+ --justAsHugeNum;
+ sscanf("99000000001", "%lld", &justAsHugeNum);
+ if (memcmp(&hugeNum, &justAsHugeNum, sizeof(hugeNum)) == 0)
+ exit(0);
+ exit(1);
+}
+],[
+ # action if true
+ wi_cv_scanf_long_long="%lld"
+],[
+ # action if false
+ :
+],[
+ # action if cross compiling
+ :
+])
+
+
+if test "$wi_cv_scanf_long_long" = fail ; then
+
+AC_TRY_RUN([
+ /* program */
+#if defined(AIX) || defined(_AIX) || defined(__HOS_AIX__)
+# define _ALL_SOURCE 1
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#include <sys/types.h>
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+main()
+{
+ long long hugeNum, justAsHugeNum;
+
+ hugeNum = (long long) 1000000000;
+ hugeNum = hugeNum * (long long) 99;
+ hugeNum = hugeNum + (long long) 1;
+
+ justAsHugeNum = (long long) 0;
+ --justAsHugeNum;
+ sscanf("99000000001", "%qd", &justAsHugeNum);
+ if (memcmp(&hugeNum, &justAsHugeNum, sizeof(hugeNum)) == 0)
+ exit(0);
+ exit(1);
+}
+],[
+ # action if true
+ wi_cv_scanf_long_long="%qd"
+],[
+ # action if false
+ :
+],[
+ # action if cross compiling
+ :
+])
+fi
+
+if test "$wi_cv_scanf_long_long" = fail ; then
+ wi_cv_scanf_long_long_msg_result='cannot scan'
+else
+ wi_cv_scanf_long_long_msg_result="$wi_cv_scanf_long_long"
+fi
+
+AC_MSG_RESULT($wi_cv_scanf_long_long_msg_result)
+
+fi
+
+AC_MSG_CHECKING([if everything was available to use the 64-bit integral type])
+
+if test "$wi_cv_type_long_long" = no ; then
+ wi_cv_use_long_long_msg_result="no (long long type not available)"
+ wi_cv_use_long_long="no"
+ wi_cv_scanf_long_long="fail"
+ wi_cv_prihtf_long_long="fail"
+ LONGEST_INT="long"
+elif test "$wi_cv_printf_long_long" = fail ; then
+ wi_cv_use_long_long_msg_result="no (libc printf() does not support them)"
+ wi_cv_use_long_long="no"
+ wi_cv_scanf_long_long="fail"
+ wi_cv_prihtf_long_long="fail"
+ LONGEST_INT="long"
+elif test "$wi_cv_scanf_long_long" = fail ; then
+ wi_cv_use_long_long_msg_result="no (libc scanf() does not support them)"
+ wi_cv_use_long_long="no"
+ wi_cv_scanf_long_long="fail"
+ wi_cv_prihtf_long_long="fail"
+ LONGEST_INT="long"
+else
+ AC_DEFINE(HAVE_LONG_LONG)
+ if test "$wi_cv_printf_long_long$wi_cv_scanf_long_long" = "%lld%qd" ; then
+ # FreeBSD 3.2 has %lld and %qd, but we want to
+ # run on 3.1 and 3.0.
+ #
+ wi_cv_printf_long_long="%qd"
+ fi
+ wi_cv_printf_ulong_long=`echo "$wi_cv_printf_long_long" | sed 's/d$/u/;'`
+ wi_cv_scanf_ulong_long=`echo "$wi_cv_scanf_long_long" | sed 's/d$/u/;'`
+ AC_DEFINE_UNQUOTED(PRINTF_LONG_LONG, "$wi_cv_printf_long_long")
+ AC_DEFINE_UNQUOTED(SCANF_LONG_LONG , "$wi_cv_scanf_long_long")
+ AC_DEFINE_UNQUOTED(PRINTF_ULONG_LONG, "$wi_cv_printf_ulong_long")
+ AC_DEFINE_UNQUOTED(SCANF_ULONG_LONG , "$wi_cv_scanf_ulong_long")
+ if test "$wi_cv_printf_long_long" = "%qd" ; then
+ AC_DEFINE(PRINTF_LONG_LONG_QD)
+ else
+ AC_DEFINE(PRINTF_LONG_LONG_LLD)
+ fi
+ if test "$wi_cv_scanf_long_long" = "%qd" ; then
+ AC_DEFINE(SCANF_LONG_LONG_QD)
+ else
+ AC_DEFINE(SCANF_LONG_LONG_LLD)
+ fi
+ wi_cv_use_long_long="yes"
+ wi_cv_use_long_long_msg_result="yes"
+fi
+AC_MSG_RESULT($wi_cv_use_long_long_msg_result)
+])
+dnl
+dnl
+dnl
+AC_DEFUN([wi_REMOVE_UNKNOWN_PREPROCESSING_DIRECTIVES_FROM_FILE], [
+AC_REQUIRE([wi_TEST_DASH_L])
+h_file="$1"
+if test -f "$h_file" && $test_not_L "$h_file" ; then
+ h_tmp=`echo "$h_file" | sed 's/\.h/.tmp/;'`
+
+changequote(<<, >>)dnl
+ remove_cpp_warning=yes
+ if [ "$SYS" = linux ] ; then
+ #
+ # We need to retain #warning on Linux
+ #
+ remove_cpp_warning=no
+ fi
+ if [ "$GCC" = yes ] ; then
+ #
+ # GCC accepts #warning
+ #
+ remove_cpp_warning=no
+ fi
+
+ if [ "$remove_cpp_warning" = yes ] ; then
+ #
+ # Remove "#warning", since compiler will complain about it
+ # not being recognized.
+ #
+ sed 's/^\([\ \ ]*#[\ \ ]*warning.*\)/\/* \1 *\//;' "$h_file" > "$h_tmp"
+ cmp -s "$h_file" "$h_tmp"
+ if test $? -ne 0 ; then
+ mv "$h_tmp" "$h_file"
+ chmod a+r "$h_file"
+ fi
+ /bin/rm -f "$h_tmp"
+ unset h_tmp longest_int_subst
+ fi
+changequote([, ])dnl
+fi
+unset h_file remove_cpp_warning
+])
+dnl
+dnl
+dnl
+AC_DEFUN([wi_SUBST_LONGEST_INT_HEADER], [
+AC_REQUIRE([wi_TEST_DASH_L])
+h_file="$1"
+if test -f "$h_file" && $test_not_L "$h_file" ; then
+ h_tmp=`echo "$h_file" | sed 's/\.h/.tmp/;'`
+dnl
+dnl LONGEST_INT should most often be "long long" if wi_USE_LONG_LONG has been run
+dnl
+ longest_int_subst="${LONGEST_INT-long}"
+dnl
+ if sed 's/^#define longest_int.*/#define longest_int '"$longest_int_subst"'/;s/^#define longest_uint.*/#define longest_uint unsigned '"$longest_int_subst"'/;' "$h_file" > "$h_tmp" ; then
+ cmp -s "$h_file" "$h_tmp"
+ if test $? -ne 0 ; then
+ mv "$h_tmp" "$h_file"
+ chmod a+r "$h_file"
+ fi
+ fi
+ /bin/rm -f "$h_tmp"
+ unset h_tmp longest_int_subst
+fi
+unset h_file
+])
+dnl
+dnl
+dnl
+AC_DEFUN([wi_SUBST_STAT_HEADER], [
+AC_REQUIRE([wi_TEST_DASH_L])
+h_file="$1"
+if test -f "$h_file" && $test_not_L "$h_file" ; then
+ h_tmp=`echo "$h_file" | sed 's/\.h/.tmp/;'`
+dnl
+dnl wi_cv_struct_stat64=yes
+dnl
+ if test "x$wi_cv_struct_stat64" = xyes ; then
+ if sed 's/^#define Stat .*/#define Stat stat64/;s/^#define Lstat .*/#define Lstat lstat64/;s/^#define Fstat .*/#define Fstat fstat64/;' "$h_file" > "$h_tmp" ; then
+ cmp -s "$h_file" "$h_tmp"
+ if test $? -ne 0 ; then
+ mv "$h_tmp" "$h_file"
+ chmod a+r "$h_file"
+ fi
+ fi
+ else
+ if sed 's/^#define Stat .*/#define Stat stat/;s/^#define Lstat .*/#define Lstat lstat/;s/^#define Fstat .*/#define Fstat fstat/;' "$h_file" > "$h_tmp" ; then
+ cmp -s "$h_file" "$h_tmp"
+ if test $? -ne 0 ; then
+ mv "$h_tmp" "$h_file"
+ chmod a+r "$h_file"
+ fi
+ fi
+ fi
+ /bin/rm -f "$h_tmp"
+ unset h_tmp longest_int_subst
+fi
+unset h_file
+])
+dnl
+dnl
+dnl
+dnl
+AC_DEFUN([wi_MANDIR], [
+if test "x$mandir" = 'x${prefix}/man' ; then
+ # Mandir is at default value -- try to see
+ # if $prefix/share/man would be better.
+ #
+
+ # $prefix is probably set to NONE.
+ #
+ p=`cd / ; cd $prefix 2>/dev/null ; pwd`
+ if test "x$p" = "x/" ; then
+ p="/usr/local"
+ fi
+ if test -d "$p/share/man" ; then
+ mandir="$p/share/man"
+ fi
+fi
+])
+dnl
+dnl
+dnl
+dnl
+AC_DEFUN([wi_BEAUTIFY_ENVIRONMENT_VARIABLES], [
+changequote(<<, >>)dnl
+LIBS=`echo "$LIBS" | sed 's/^ *//;s/ *$//;s/ */ /g'`
+LDFLAGS=`echo "$LDFLAGS" | sed 's/^ *//;s/ *$//;s/ */ /g'`
+CPPFLAGS=`echo "$CPPFLAGS" | sed 's/^ *//;s/ *$//;s/ */ /g'`
+CFLAGS=`echo "$CFLAGS $wi_CFLAGS_TO_ADD_LATER" | sed 's/^ *//;s/ *$//;s/ */ /g'`
+DEFS=`echo "$DEFS" | sed 's/^ *//;s/ *$//;s/ */ /g'`
+changequote([, ])dnl
+])
+dnl
+dnl
+dnl
+dnl
+AC_DEFUN([wi_PATH_PWD], [
+AC_PATH_PROG(wi_PWD, "pwd", "pwd")
+])
+dnl
+dnl
+dnl
+dnl
+AC_DEFUN([wi_BASENAME], [
+$1=`echo "[$]$1" | sed -n '
+s-//*-/-g
+s-/*$--
+s-^/$--
+s-^.*/--
+p
+q'`dnl
+])
+dnl
+dnl
+dnl
+dnl
+AC_DEFUN([wi_DIRNAME], [
+changequote({{, }})dnl
+$1=`echo "{{$}}$1" | sed -n '
+s-//*-/-g
+s-/*$--
+/^\/\/*[^/]*$/{
+ c\\
+/
+ p
+ q
+}
+/^[^/]*$/{
+ c\\
+.
+ p
+ q
+}
+/./{
+ s-/[^/]*$--
+ p
+ q
+}'`dnl
+changequote([, ])dnl
+])
+dnl
+dnl
+dnl
+dnl
+AC_DEFUN([wi_RESOLVE_PATH], [
+AC_REQUIRE([wi_PATH_PWD])
+wi_path="$1"
+if test -d "$wi_path" ; then
+ wi_resolved_path=`cd "$wi_path" ; $wi_PWD 2>/dev/null`
+elif test ! -f "$wi_path" ; then
+ wi_resolved_path="$wi_path"
+else
+ wi_parent_dir="$wi_path"
+ wi_file_name="$wi_path"
+ wi_DIRNAME(wi_parent_dir)
+ wi_BASENAME(wi_file_name)
+ wi_resolved_path=`cd "$wi_parent_dir" ; $wi_PWD 2>/dev/null`
+ if test "x$wi_resolved_path" != x ; then
+ wi_resolved_path="$wi_resolved_path/$wi_file_name"
+ fi
+ unset wi_parent_dir wi_file_name
+fi
+if test "x$wi_resolved_path" = x ; then
+ $2="[$]$1"
+else
+ $2="$wi_resolved_path"
+fi
+unset wi_resolved_path wi_path
+])
+dnl
+dnl
+dnl
+dnl
+AC_DEFUN([wi_PATH_MKTEMP], [
+AC_PATH_PROG(MKTEMP, "mktemp", "")
+])
+dnl
+dnl
+dnl
+dnl
+AC_DEFUN([wi_PATH_PERL], [
+AC_PATH_PROG(PERL, "perl", "perl")
+])
+dnl
+dnl
+dnl
+dnl
+AC_DEFUN([wi_PROG_PERL], [
+AC_REQUIRE([wi_PATH_PERL])
+if test "x$PERL" != "x" ; then
+ AC_DEFINE_UNQUOTED(PERL, "$PERL")
+fi
+AC_SUBST(PERL)
+])
+dnl
+dnl
+dnl
+dnl
+AC_DEFUN([wi_CREATE_AC_TMPDIR], [
+AC_REQUIRE([wi_PATH_MKTEMP])
+changequote({{, }})dnl
+wi_tmpdir=""
+if [ "x$MKTEMP" != "x" ] ; then
+ # Ignore error from mktemp, since some old versions of Linux
+ # print an error about not supporting -d.
+ #
+ wi_tmpdir=`"$MKTEMP" -d /tmp/configure.XXXXXXXXXX 2>/dev/null`
+ if [ $? -ne 0 ] ; then
+ wi_tmpdir=""
+ fi
+fi
+if [ "x$wi_tmpdir" = "x" ] ; then
+ for wi_tmpdir in . $TMPDIR $TEMPDIR /tmp ABORT
+ do
+ if [ "$wi_tmpdir" = ABORT ] ; then
+ echo "Cannot create temporary directory."
+ exit 1
+ fi
+ wi_tmpdir="$wi_tmpdir/config_tmp.$$"
+ if [ -d "$wi_tmpdir" ] || [ -f "$wi_tmpdir" ] ; then
+ echo "Will not create temporary directory."
+ exit 1
+ fi
+ mkdir "$wi_tmpdir"
+ if [ $? -eq 0 ] && [ -d "$wi_tmpdir" ] ; then break ; fi
+ done
+fi
+changequote([, ])dnl
+
+# Use the temporary directory here...
+$1
+# Done using the temporary directory here.
+
+/bin/rm -r "$wi_tmpdir"
+unset wi_tmpdir
+])
+dnl
+dnl
+dnl
+dnl
+AH_TEMPLATE([SELECT_TYPE_ARG1], [define this to the type of the first parameter to select()])
+AH_TEMPLATE([SELECT_TYPE_ARG234], [define this to the type of parameters 2, 3, and 4 to select()])
+AH_TEMPLATE([SELECT_TYPE_ARG5], [define this to the type of the fifth parameter to select()])
+AC_DEFUN([wi_FUNC_SELECT_ARGTYPES],
+[
+wi_PREREQ_UNISTD_H([$0])
+AC_MSG_CHECKING([types of arguments for select()])
+ AC_CACHE_VAL(ac_cv_func_select_arg234,dnl
+ [AC_CACHE_VAL(ac_cv_func_select_arg1,dnl
+ [AC_CACHE_VAL(ac_cv_func_select_arg5,dnl
+ [for ac_cv_func_select_arg234 in 'fd_set *' 'int *' 'void *'; do
+ for ac_cv_func_select_arg1 in 'int' 'size_t' 'unsigned long' 'unsigned'; do
+ for ac_cv_func_select_arg5 in 'struct timeval *' 'const struct timeval *'; do
+ AC_TRY_COMPILE(dnl
+[#if defined(AIX) || defined(_AIX) || defined(__HOS_AIX__) /* MG */
+# define _ALL_SOURCE 1 /* MG */
+#endif
+#ifdef HAVE_UNISTD_H /* MG */
+#include <unistd.h>
+#endif /* MG */
+#include <sys/types.h> /* MG: always incl */
+#include <sys/time.h> /* MG: always incl */
+#ifdef HAVE_SYS_SELECT_H
+#include <sys/select.h>
+#endif
+#include <sys/socket.h> /* MG: always incl */
+extern select ($ac_cv_func_select_arg1,$ac_cv_func_select_arg234,$ac_cv_func_select_arg234,$ac_cv_func_select_arg234,$ac_cv_func_select_arg5);],,dnl
+ [ac_not_found=no ; break 3],ac_not_found=yes)
+ done
+ done
+ done
+ ])dnl AC_CACHE_VAL
+ ])dnl AC_CACHE_VAL
+ ])dnl AC_CACHE_VAL
+ if test "$ac_not_found" = yes; then
+ ac_cv_func_select_arg1=int
+ ac_cv_func_select_arg234='int *'
+ ac_cv_func_select_arg5='struct timeval *'
+ fi
+ AC_MSG_RESULT([$ac_cv_func_select_arg1,$ac_cv_func_select_arg234,$ac_cv_func_select_arg5])
+ AC_DEFINE_UNQUOTED(SELECT_TYPE_ARG1,$ac_cv_func_select_arg1)
+ AC_DEFINE_UNQUOTED(SELECT_TYPE_ARG234,($ac_cv_func_select_arg234))
+ AC_DEFINE_UNQUOTED(SELECT_TYPE_ARG5,($ac_cv_func_select_arg5))
+])
+dnl
+dnl
+dnl
+dnl
+AC_DEFUN([wi_CREATE_PRPP_SCRIPT], [
+changequote({{, }})dnl
+cat << 'EOF' > "{{$1}}"
+#!/usr/bin/perl -w
+#
+# prpp.pl
+#
+# Feed the output of your CPP to this to print a list of function prototypes.
+#
+#use strict;
+
+my ($c) = "";
+my ($unputc) = "";
+my ($line) = "";
+my ($lines) = "";
+my ($cline) = "";
+my ($skipping) = 0;
+my ($numclines) = 0;
+
+MAINLOOP: while (1) {
+ if ($unputc ne "") {
+ $c = $unputc;
+ $unputc = "";
+ } else {
+ last unless (read(STDIN, $c, 1) == 1);
+ }
+ if ($c eq "{") {
+ $skipping++;
+ } elsif ($c eq "}") {
+ --$skipping;
+ $unputc = ";";
+ } elsif ($skipping) {
+ next MAINLOOP;
+ } elsif ($c eq ";") {
+ if ($line =~ m/^\s*(\S.*\S)\s*$/s) {
+ $lines .= {{$}}1;
+ $line = "";
+ }
+ if ($lines =~ m/^\s*(extern\s*)?(\S.*\S)\s*$/s) {
+ $cline = {{$}}2;
+ $cline =~ s/\s+/\ /g;
+ if ($cline =~ /^typedef/) {
+ $cline = "";
+ } elsif ($cline =~ /\(.*\)$/) {
+ # found a proto
+ print $cline, ";\n";
+ $numclines++;
+ } else {
+ $cline = "";
+ }
+ }
+ $lines = "";
+ $line = "";
+ } elsif ($c eq "\n") {
+ if ($line =~ m/^\s*(\S.*\S)\s*$/s) {
+ $lines .= {{$}}1 . " ";
+ $line = "";
+ }
+ } elsif (($c eq "#") && ($line eq "")) {
+ # Looks like a preprocessor line, kill it
+ {
+ last MAINLOOP if (read(STDIN, $c, 1) != 1);
+ last if ($c eq "\n");
+ redo;
+ }
+ } elsif ($c =~ /^\s$/) {
+ $line .= " " if ($line ne "");
+ } elsif (! $skipping) {
+ $line .= $c;
+ }
+}
+exit(($numclines == 0) ? 1 : 0);
+EOF
+chmod 755 "{{$1}}"
+changequote([, ])dnl
+])
+dnl
+dnl
+dnl
+dnl
+AH_TEMPLATE([write_return_t], [return type from write])
+AH_TEMPLATE([write_size_t], [size parameter to write])
+AH_TEMPLATE([read_return_t], [return type from read])
+AH_TEMPLATE([read_size_t], [size parameter to read])
+AH_TEMPLATE([send_return_t], [return type from send])
+AH_TEMPLATE([send_size_t], [size parameter to send])
+AH_TEMPLATE([recv_return_t], [return type from recv])
+AH_TEMPLATE([recv_size_t], [size parameter to recv])
+AH_TEMPLATE([sockaddr_size_t], [size parameter to connect])
+AH_TEMPLATE([sockopt_size_t], [size parameter to setsockopt])
+AH_TEMPLATE([listen_backlog_t], [backlog parameter to write])
+AH_TEMPLATE([alarm_time_t], [seconds parameter to alarm])
+AH_TEMPLATE([gethost_addrptr_t], [address parameter to gethostbyaddr])
+AH_TEMPLATE([gethostname_size_t], [size parameter to gethostname])
+AC_DEFUN([wi_UNISTD_FUNC_PARAM_TYPES], [
+AC_REQUIRE([AC_PROG_CPP])
+AC_REQUIRE([wi_PATH_PERL])
+AC_REQUIRE([AC_TYPE_SIZE_T])
+AC_REQUIRE([wi_PATH_MKTEMP])
+wi_PREREQ_UNISTD_H([$0])
+AC_CACHE_CHECK([for return type from write], [wi_cv_write_return_t], [
+used_cache_for_wi_unistd_fpt="no"
+wi_CREATE_AC_TMPDIR([
+wi_CREATE_PRPP_SCRIPT([$wi_tmpdir/prpp.pl])
+
+changequote({{, }})dnl
+cat << 'EOF' > "$wi_tmpdir/unistd.c"
+#include <confdefs.h>
+
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+#include <netdb.h>
+
+main()
+{
+ exit(0);
+}
+EOF
+
+cat << 'EOF' > "$wi_tmpdir/sed.sh"
+#!/bin/sh
+
+if [ {{$}}# -eq 0 ] ; then exit 1 ; fi
+x="{{$}}1"
+
+sed -n 's/extern//;s/static//;
+ /[\ \*]'"$x"'\ *(/{
+ s/^.*'"$x"'\ *(/(/
+ s/)\ *[;,].*$/)/
+ /ssize_t/{
+ c\
+ssize_t
+ }
+ /size_t/{
+ c\
+size_t
+ }
+ /socklen_t/{
+ c\
+socklen_t
+ }
+ /unsigned int/{
+ c\
+unsigned int
+ }
+ /unsigned long/{
+ c\
+unsigned long
+ }
+ /long/{
+ c\
+long
+ }
+ q
+}' | sed 's/int int/int/g'
+EOF
+chmod 755 "$wi_tmpdir/sed.sh"
+
+
+cat << 'EOF' > "$wi_tmpdir/sed2.sh"
+#!/bin/sh
+
+if [ {{$}}# -eq 0 ] ; then exit 1 ; fi
+x="{{$}}1"
+
+sed -n 's/extern//;s/static//;
+ /[\ \*]'"$x"'\ *(/{
+ s/^.*'"$x"'\ *(/(/
+ s/)\ *[;,].*$/)/
+ /const char/{
+ c\
+const char *
+ }
+ /char/{
+ c\
+char *
+ }
+ /const/{
+ c\
+const void
+ }
+ q
+}'
+EOF
+chmod 755 "$wi_tmpdir/sed2.sh"
+
+$CPP "-I${srcdir-.}" "$wi_tmpdir/unistd.c" > "$wi_tmpdir/unistd.i"
+if [ -s "$wi_tmpdir/unistd.i" ] ; then
+ "$PERL" "$wi_tmpdir/prpp.pl" < "$wi_tmpdir/unistd.i" > "$wi_tmpdir/protos.h"
+fi
+if [ -f "$wi_tmpdir/protos.h" ] ; then
+ #
+ # Check the return type of write()
+ #
+ x="write"
+ wi_cv_write_return_t=`sed -n 's/extern//;s/static//;
+ s/__attribute__((__cdecl__))//;
+ /[\ \*]'"$x"'\ *(/{
+ s/'"$x"'\ *(.*//
+ s/^\ *//
+ s/\ *$//
+ p;q
+ }' "$wi_tmpdir/protos.h"`
+ #
+ # Check what type write() expects for the size parameter
+ #
+ x="write"
+ wi_cv_write_size_t=`/bin/sh "$wi_tmpdir/sed.sh" "$x" < "$wi_tmpdir/protos.h"`
+ #
+ # Check the return type of send()
+ #
+ x="send"
+ wi_cv_send_return_t=`sed -n 's/extern//;s/static//;
+ s/__attribute__((__cdecl__))//;
+ /[\ \*]'"$x"'\ *(/{
+ s/'"$x"'\ *(.*//
+ s/^\ *//
+ s/\ *$//
+ p;q
+ }' "$wi_tmpdir/protos.h"`
+ #
+ # Check what type send() expects for the size parameter
+ # Tru64 is one example where send() differs from write() :-(
+ #
+ x="send"
+ wi_cv_send_size_t=`/bin/sh "$wi_tmpdir/sed.sh" "$x" < "$wi_tmpdir/protos.h"`
+ #
+ # Check what type connect() expects for the size parameter
+ #
+ x="connect"
+ wi_cv_sockaddr_size_t=`/bin/sh "$wi_tmpdir/sed.sh" "$x" < "$wi_tmpdir/protos.h"`
+ #
+ # Check what type setsockopt() expects for the size parameter
+ #
+ x="setsockopt"
+ wi_cv_sockopt_size_t=`/bin/sh "$wi_tmpdir/sed.sh" "$x" < "$wi_tmpdir/protos.h"`
+ #
+ # Check what type listen() expects for the backlog parameter
+ #
+ x="listen"
+ wi_cv_listen_backlog_t=`/bin/sh "$wi_tmpdir/sed.sh" "$x" < "$wi_tmpdir/protos.h"`
+ #
+ # Check what type alarm() expects for the seconds parameter
+ #
+ x="alarm"
+ wi_cv_alarm_time_t=`/bin/sh "$wi_tmpdir/sed.sh" "$x" < "$wi_tmpdir/protos.h"`
+ #
+ # Check what type gethostbyaddr() expects for the addr parameter
+ #
+ x="gethostbyaddr"
+ wi_cv_gethost_addrptr_t=`/bin/sh "$wi_tmpdir/sed2.sh" "$x" < "$wi_tmpdir/protos.h"`
+ #
+ # Check what type gethostname() expects for the size parameter
+ #
+ x="gethostname"
+ wi_cv_gethostname_size_t=`/bin/sh "$wi_tmpdir/sed.sh" "$x" < "$wi_tmpdir/protos.h"`
+fi
+if [ "x$wi_cv_write_return_t" = "x" ] ; then
+ wi_cv_write_return_t="int"
+fi
+if [ "x$wi_cv_write_size_t" = "x" ] ; then
+ wi_cv_write_size_t="int"
+fi
+if [ "x$wi_cv_send_return_t" = "x" ] ; then
+ wi_cv_send_return_t="int"
+fi
+if [ "x$wi_cv_send_size_t" = "x" ] ; then
+ wi_cv_send_size_t="int"
+fi
+if [ "x$wi_cv_sockaddr_size_t" = "x" ] ; then
+ wi_cv_sockaddr_size_t="int"
+fi
+if [ "x$wi_cv_sockopt_size_t" = "x" ] ; then
+ wi_cv_sockopt_size_t="int"
+fi
+if [ "x$wi_cv_listen_backlog_t" = "x" ] ; then
+ wi_cv_listen_backlog_t="int"
+fi
+if [ "x$wi_cv_alarm_time_t" = "x" ] ; then
+ wi_cv_alarm_time_t="int"
+fi
+if [ "x$wi_cv_gethost_addrptr_t" = "x" ] ; then
+ wi_cv_gethost_addrptr_t="struct in_addr *"
+fi
+if [ "$wi_cv_gethost_addrptr_t" = "const void" ] ; then
+ wi_cv_gethost_addrptr_t="const struct in_addr *"
+fi
+if [ "x$wi_cv_gethostname_size_t" = "x" ] ; then
+ wi_cv_gethostname_size_t="int"
+fi
+changequote([, ])dnl
+])
+])
+if test "x$used_cache_for_wi_unistd_fpt" = "xno" ; then
+ AC_MSG_CHECKING([for size parameter to write])
+ AC_MSG_RESULT([$wi_cv_write_size_t])
+ AC_MSG_CHECKING([for return type from send])
+ AC_MSG_RESULT([$wi_cv_send_return_t])
+ AC_MSG_CHECKING([for size parameter to send])
+ AC_MSG_RESULT([$wi_cv_send_size_t])
+ AC_MSG_CHECKING([for size parameter to connect])
+ AC_MSG_RESULT([$wi_cv_sockaddr_size_t])
+ AC_MSG_CHECKING([for size parameter to setsockopt])
+ AC_MSG_RESULT([$wi_cv_sockopt_size_t])
+ AC_MSG_CHECKING([for backlog parameter to listen])
+ AC_MSG_RESULT([$wi_cv_listen_backlog_t])
+ AC_MSG_CHECKING([for seconds parameter to alarm])
+ AC_MSG_RESULT([$wi_cv_alarm_time_t])
+ AC_MSG_CHECKING([for address parameter to gethostbyaddr])
+ AC_MSG_RESULT([$wi_cv_gethost_addrptr_t])
+ AC_MSG_CHECKING([for size parameter to gethostname])
+ AC_MSG_RESULT([$wi_cv_gethostname_size_t])
+else
+ AC_CACHE_CHECK([for size parameter to write],[wi_cv_write_size_t],[:])
+ AC_CACHE_CHECK([for return type from send],[wi_cv_send_return_t],[:])
+ AC_CACHE_CHECK([for size parameter to send],[wi_cv_send_size_t],[:])
+ AC_CACHE_CHECK([for size parameter to connect],[wi_cv_sockaddr_size_t],[:])
+ AC_CACHE_CHECK([for size parameter to setsockopt],[wi_cv_sockopt_size_t],[:])
+ AC_CACHE_CHECK([for backlog parameter to listen],[wi_cv_listen_backlog_t],[:])
+ AC_CACHE_CHECK([for seconds parameter to alarm],[wi_cv_alarm_time_t],[:])
+ AC_CACHE_CHECK([for address parameter to gethostbyaddr],[wi_cv_gethost_addrptr_t],[:])
+ AC_CACHE_CHECK([for size parameter to gethostname],[wi_cv_gethostname_size_t],[:])
+fi
+unset used_cache_for_wi_unistd_fpt
+AC_DEFINE_UNQUOTED(write_return_t, $wi_cv_write_return_t)
+AC_DEFINE_UNQUOTED(write_size_t, $wi_cv_write_size_t)
+AC_DEFINE_UNQUOTED(read_return_t, $wi_cv_write_return_t)
+AC_DEFINE_UNQUOTED(read_size_t, $wi_cv_write_size_t)
+AC_DEFINE_UNQUOTED(send_return_t, $wi_cv_send_return_t)
+AC_DEFINE_UNQUOTED(send_size_t, $wi_cv_send_size_t)
+AC_DEFINE_UNQUOTED(recv_return_t, $wi_cv_send_return_t)
+AC_DEFINE_UNQUOTED(recv_size_t, $wi_cv_send_size_t)
+AC_DEFINE_UNQUOTED(sockaddr_size_t, $wi_cv_sockaddr_size_t)
+AC_DEFINE_UNQUOTED(sockopt_size_t, $wi_cv_sockopt_size_t)
+AC_DEFINE_UNQUOTED(listen_backlog_t, $wi_cv_listen_backlog_t)
+AC_DEFINE_UNQUOTED(alarm_time_t, $wi_cv_alarm_time_t)
+AC_DEFINE_UNQUOTED(gethost_addrptr_t, $wi_cv_gethost_addrptr_t)
+AC_DEFINE_UNQUOTED(gethostname_size_t, $wi_cv_gethostname_size_t)
+])
+dnl
+dnl
+dnl
+dnl
+AC_DEFUN([wi_PATH_GNU_TAR_OR_TAR], [
+AC_PATH_PROG(TAR, "gtar", "")
+if test "x$TAR" = "x" ; then
+ unset TAR
+ unset ac_cv_path_TAR
+ AC_PATH_PROG(TAR, "tar", "")
+fi
+])
+dnl
+dnl
+dnl
+dnl
+AH_TEMPLATE([TAR], [define to the tar command being used])
+AC_DEFUN([wi_PROG_TAR], [
+AC_REQUIRE([wi_PATH_GNU_TAR_OR_TAR])
+if test "x$TAR" != "x" ; then
+ AC_DEFINE_UNQUOTED(TAR, "$TAR")
+fi
+AC_SUBST(TAR)
+])
+dnl
+dnl
+dnl
+dnl
+AC_DEFUN([wi_CREATE_TAR_FILES], [
+AC_REQUIRE([wi_PATH_GNU_TAR_OR_TAR])
+AC_MSG_CHECKING([how to create TAR files])
+changequote(<<, >>)dnl
+x=""
+if [ -x /usr/bin/what ] ; then
+ x=`/usr/bin/what "$TAR" 2>&1 | sed -n 's/.*pax.*/pax/g;/pax/p'`
+elif [ -x /bin/what ] ; then
+ x=`/bin/what "$TAR" 2>&1 | sed -n 's/.*pax.*/pax/g;/pax/p'`
+fi
+if [ "x$x" != "xpax" ] ; then
+ # The junk above is because Mac OS X Server's tar freaks out
+ # and does not exit if you do "tar --help".
+ #
+ x=`"$TAR" --help 2>&1 | sed -n 's/.*owner=NAME.*/owner=NAME/g;/owner=NAME/p'`
+fi
+case "$x" in
+ *owner=NAME*)
+ TARFLAGS="-c --owner=root --group=bin --verbose -f"
+ ;;
+ *)
+ TARFLAGS="cvf"
+ ;;
+esac
+changequote([, ])dnl
+AC_SUBST(TARFLAGS)
+AC_MSG_RESULT([$TAR $TARFLAGS])
+])
+dnl
+dnl
+dnl
+dnl
+AC_DEFUN([wi_PROG_CCDV_NO_CREATE], [
+if test "x$use_ccdv" = "xno" ; then
+ AC_MSG_CHECKING([for ccdv])
+ AC_MSG_RESULT([(disabled)])
+else
+ AC_PATH_PROG(CCDV, "CCDV", "")
+ CCDV="$wi_cv_path_ccdv"
+ if test "x$CCDV" != x ; then
+ CCDV="@$CCDV " # trailing space needed
+ fi
+AC_SUBST(CCDV)
+fi
+])
+dnl
+dnl
+dnl
+dnl
+AC_DEFUN([wi_PROG_CCDV], [
+if test "x$use_ccdv" = "xno" ; then
+ AC_MSG_CHECKING([for ccdv])
+ AC_MSG_RESULT([(disabled)])
+else
+unset wi_cv_path_ccdv # can't use cache if it was a temp prog last time
+wi_used_cache_path_ccdv="yes"
+AC_CACHE_CHECK([for ccdv], [wi_cv_path_ccdv], [
+wi_used_cache_path_ccdv="no"
+for CCDV in /usr/bin/ccdv /usr/local/bin/ccdv /usr/ccs/bin/ccdv NONE
+do
+ if test "$CCDV" = NONE ; then CCDV="" ; break ; fi
+ $CCDV >/dev/null 2>&1
+ if test $? -eq 96 ; then
+ break
+ fi
+done
+if test "x$CCDV" = "x" ; then
+ changequote({{, }})dnl
+ cat > ccdv.c << 'EOF'
+/* ccdv.c
+ *
+ * Copyright (C) 2002-2003, by Mike Gleason, NcFTP Software.
+ * All Rights Reserved.
+ *
+ * Licensed under the GNU Public License.
+ */
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/time.h>
+#include <sys/wait.h>
+#include <fcntl.h>
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <errno.h>
+
+#define SETCOLOR_SUCCESS (gANSIEscapes ? "\033\1331;32m" : "")
+#define SETCOLOR_FAILURE (gANSIEscapes ? "\033\1331;31m" : "")
+#define SETCOLOR_WARNING (gANSIEscapes ? "\033\1331;33m" : "")
+#define SETCOLOR_NORMAL (gANSIEscapes ? "\033\1330;39m" : "")
+
+#define TEXT_BLOCK_SIZE 8192
+#define INDENT 2
+
+#define TERMS "vt100:vt102:vt220:vt320:xterm:xterm-color:ansi:linux:scoterm:scoansi:dtterm:cons25:cygwin:screen"
+
+size_t gNBufUsed = 0, gNBufAllocated = 0;
+char *gBuf = NULL;
+int gCCPID;
+char gAction[64] = "";
+char gTarget[64] = "";
+char gAr[32] = "";
+char gArLibraryTarget[64] = "";
+int gDumpCmdArgs = 0;
+char gArgsStr[800];
+int gColumns = 80;
+int gANSIEscapes = 0;
+int gExitStatus = 95;
+
+static void
+DumpFormattedOutput(void)
+{
+ char *cp;
+ char spaces[8 + 1] = " ";
+ char *saved;
+ int curcol;
+ int i;
+
+ curcol = 0;
+ saved = NULL;
+ for (cp = gBuf + ((gDumpCmdArgs == 0) ? strlen(gArgsStr) : 0); ; cp++) {
+ if (*cp == '\0') {
+ if (saved != NULL) {
+ cp = saved;
+ saved = NULL;
+ } else break;
+ }
+ if (*cp == '\r')
+ continue;
+ if (*cp == '\t') {
+ saved = cp + 1;
+ cp = spaces + 8 - (8 - ((curcol - INDENT - 1) % 8));
+ }
+ if (curcol == 0) {
+ for (i = INDENT; --i >= 0; )
+ putchar(' ');
+ curcol = INDENT;
+ }
+ putchar(*cp);
+ if (++curcol == (gColumns - 1)) {
+ putchar('\n');
+ curcol = 0;
+ } else if (*cp == '\n')
+ curcol = 0;
+ }
+ free(gBuf);
+} /* DumpFormattedOutput */
+
+
+
+/* Difftime(), only for timeval structures. */
+static void TimeValSubtract(struct timeval *tdiff, struct timeval *t1, struct timeval *t0)
+{
+ tdiff->tv_sec = t1->tv_sec - t0->tv_sec;
+ tdiff->tv_usec = t1->tv_usec - t0->tv_usec;
+ if (tdiff->tv_usec < 0) {
+ tdiff->tv_sec--;
+ tdiff->tv_usec += 1000000;
+ }
+} /* TimeValSubtract */
+
+
+
+static void
+Wait(void)
+{
+ int pid2, status;
+
+ do {
+ status = 0;
+ pid2 = (int) waitpid(gCCPID, &status, 0);
+ } while (((pid2 >= 0) && (! WIFEXITED(status))) || ((pid2 < 0) && (errno == EINTR)));
+ if (WIFEXITED(status))
+ gExitStatus = WEXITSTATUS(status);
+} /* Wait */
+
+
+
+static int
+SlurpProgress(int fd)
+{
+ char s1[71];
+ char *newbuf;
+ int nready;
+ size_t ntoread;
+ ssize_t nread;
+ struct timeval now, tnext, tleft;
+ fd_set ss;
+ fd_set ss2;
+ const char *trail = "/-\\|", *trailcp;
+
+ trailcp = trail;
+ snprintf(s1, sizeof(s1), "%s%s%s... ", gAction, gTarget[0] ? " " : "", gTarget);
+ printf("\r%-70s%-9s", s1, "");
+ fflush(stdout);
+
+ gettimeofday(&now, NULL);
+ tnext = now;
+ tnext.tv_sec++;
+ tleft.tv_sec = 1;
+ tleft.tv_usec = 0;
+ FD_ZERO(&ss2);
+ FD_SET(fd, &ss2);
+ for(;;) {
+ if (gNBufUsed == (gNBufAllocated - 1)) {
+ if ((newbuf = (char *) realloc(gBuf, gNBufAllocated + TEXT_BLOCK_SIZE)) == NULL) {
+ perror("ccdv: realloc");
+ return (-1);
+ }
+ gNBufAllocated += TEXT_BLOCK_SIZE;
+ gBuf = newbuf;
+ }
+ for (;;) {
+ ss = ss2;
+ nready = select(fd + 1, &ss, NULL, NULL, &tleft);
+ if (nready == 1)
+ break;
+ if (nready < 0) {
+ if (errno != EINTR) {
+ perror("ccdv: select");
+ return (-1);
+ }
+ continue;
+ }
+ gettimeofday(&now, NULL);
+ if ((now.tv_sec > tnext.tv_sec) || ((now.tv_sec == tnext.tv_sec) && (now.tv_usec >= tnext.tv_usec))) {
+ tnext = now;
+ tnext.tv_sec++;
+ tleft.tv_sec = 1;
+ tleft.tv_usec = 0;
+ printf("\r%-71s%c%-7s", s1, *trailcp, "");
+ fflush(stdout);
+ if (*++trailcp == '\0')
+ trailcp = trail;
+ } else {
+ TimeValSubtract(&tleft, &tnext, &now);
+ }
+ }
+ ntoread = (gNBufAllocated - gNBufUsed - 1);
+ nread = read(fd, gBuf + gNBufUsed, ntoread);
+ if (nread < 0) {
+ if (errno == EINTR)
+ continue;
+ perror("ccdv: read");
+ return (-1);
+ } else if (nread == 0) {
+ break;
+ }
+ gNBufUsed += nread;
+ gBuf[gNBufUsed] = '\0';
+ }
+ snprintf(s1, sizeof(s1), "%s%s%s: ", gAction, gTarget[0] ? " " : "", gTarget);
+ Wait();
+ if (gExitStatus == 0) {
+ printf("\r%-70s", s1);
+ printf("[%s%s%s]", ((gNBufUsed - strlen(gArgsStr)) < 4) ? SETCOLOR_SUCCESS : SETCOLOR_WARNING, "OK", SETCOLOR_NORMAL);
+ printf("%-5s\n", " ");
+ } else {
+ printf("\r%-70s", s1);
+ printf("[%s%s%s]", SETCOLOR_FAILURE, "ERROR", SETCOLOR_NORMAL);
+ printf("%-2s\n", " ");
+ gDumpCmdArgs = 1; /* print cmd when there are errors */
+ }
+ fflush(stdout);
+ return (0);
+} /* SlurpProgress */
+
+
+
+static int
+SlurpAll(int fd)
+{
+ char *newbuf;
+ size_t ntoread;
+ ssize_t nread;
+
+ printf("%s%s%s.\n", gAction, gTarget[0] ? " " : "", gTarget);
+ fflush(stdout);
+
+ for(;;) {
+ if (gNBufUsed == (gNBufAllocated - 1)) {
+ if ((newbuf = (char *) realloc(gBuf, gNBufAllocated + TEXT_BLOCK_SIZE)) == NULL) {
+ perror("ccdv: realloc");
+ return (-1);
+ }
+ gNBufAllocated += TEXT_BLOCK_SIZE;
+ gBuf = newbuf;
+ }
+ ntoread = (gNBufAllocated - gNBufUsed - 1);
+ nread = read(fd, gBuf + gNBufUsed, ntoread);
+ if (nread < 0) {
+ if (errno == EINTR)
+ continue;
+ perror("ccdv: read");
+ return (-1);
+ } else if (nread == 0) {
+ break;
+ }
+ gNBufUsed += nread;
+ gBuf[gNBufUsed] = '\0';
+ }
+ Wait();
+ gDumpCmdArgs = (gExitStatus != 0); /* print cmd when there are errors */
+ return (0);
+} /* SlurpAll */
+
+
+
+static const char *
+Basename(const char *path)
+{
+ const char *cp;
+ cp = strrchr(path, '/');
+ if (cp == NULL)
+ return (path);
+ return (cp + 1);
+} /* Basename */
+
+
+
+static const char *
+Extension(const char *path)
+{
+ const char *cp = path;
+ cp = strrchr(path, '.');
+ if (cp == NULL)
+ return ("");
+ return (cp);
+} /* Extension */
+
+
+
+static void
+Usage(void)
+{
+ fprintf(stderr, "Usage: ccdv /path/to/cc CFLAGS...\n\n");
+ fprintf(stderr, "I wrote this to reduce the deluge Make output to make finding actual problems\n");
+ fprintf(stderr, "easier. It is intended to be invoked from Makefiles, like this. Instead of:\n\n");
+ fprintf(stderr, "\t.c.o:\n");
+ fprintf(stderr, "\t\t$(CC) $(CFLAGS) $(DEFS) $(CPPFLAGS) $< -c\n");
+ fprintf(stderr, "\nRewrite your rule so it looks like:\n\n");
+ fprintf(stderr, "\t.c.o:\n");
+ fprintf(stderr, "\t\t@ccdv $(CC) $(CFLAGS) $(DEFS) $(CPPFLAGS) $< -c\n\n");
+ fprintf(stderr, "ccdv 1.1.0 is Free under the GNU Public License. Enjoy!\n");
+ fprintf(stderr, " -- Mike Gleason, NcFTP Software <http://www.ncftp.com>\n");
+ exit(96);
+} /* Usage */
+
+
+
+int
+main(int argc, char **argv)
+{
+ int pipe1[2];
+ int devnull;
+ char emerg[256];
+ int fd;
+ int nread;
+ int i;
+ int cc = 0, pch = 0;
+ const char *quote;
+
+ if (argc < 2)
+ Usage();
+
+ snprintf(gAction, sizeof(gAction), "Running %s", Basename(argv[1]));
+ memset(gArgsStr, 0, sizeof(gArgsStr));
+ for (i = 1; i < argc; i++) {
+ quote = (strchr(argv[i], ' ') != NULL) ? "\"" : "";
+ snprintf(gArgsStr + strlen(gArgsStr), sizeof(gArgsStr) - strlen(gArgsStr), "%s%s%s%s%s", (i == 1) ? "" : " ", quote, argv[i], quote, (i == (argc - 1)) ? "\n" : "");
+ if ((strcmp(argv[i], "-o") == 0) && ((i + 1) < argc)) {
+ if (strcasecmp(Extension(argv[i + 1]), ".o") != 0) {
+ strcpy(gAction, "Linking");
+ snprintf(gTarget, sizeof(gTarget), "%s", Basename(argv[i + 1]));
+ }
+ } else if (strchr("-+/", (int) argv[i][0]) != NULL) {
+ continue;
+ } else if (strncasecmp(Extension(argv[i]), ".c", 2) == 0) {
+ cc++;
+ snprintf(gTarget, sizeof(gTarget), "%s", Basename(argv[i]));
+ } else if ((strncasecmp(Extension(argv[i]), ".h", 2) == 0) && (cc == 0)) {
+ pch++;
+ snprintf(gTarget, sizeof(gTarget), "%s", Basename(argv[i]));
+ } else if ((i == 1) && (strcmp(Basename(argv[i]), "ar") == 0)) {
+ snprintf(gAr, sizeof(gAr), "%s", Basename(argv[i]));
+ } else if ((gArLibraryTarget[0] == '\0') && (strcasecmp(Extension(argv[i]), ".a") == 0)) {
+ snprintf(gArLibraryTarget, sizeof(gArLibraryTarget), "%s", Basename(argv[i]));
+ }
+ }
+ if ((gAr[0] != '\0') && (gArLibraryTarget[0] != '\0')) {
+ strcpy(gAction, "Creating library");
+ snprintf(gTarget, sizeof(gTarget), "%s", gArLibraryTarget);
+ } else if (pch > 0) {
+ strcpy(gAction, "Precompiling");
+ } else if (cc > 0) {
+ strcpy(gAction, "Compiling");
+ }
+
+ if (pipe(pipe1) < 0) {
+ perror("ccdv: pipe");
+ exit(97);
+ }
+
+ (void) close(0);
+ devnull = open("/dev/null", O_RDWR, 00666);
+ if ((devnull != 0) && (dup2(devnull, 0) == 0))
+ close(devnull);
+
+ gCCPID = (int) fork();
+ if (gCCPID < 0) {
+ (void) close(pipe1[0]);
+ (void) close(pipe1[1]);
+ perror("ccdv: fork");
+ exit(98);
+ } else if (gCCPID == 0) {
+ /* Child */
+ (void) close(pipe1[0]); /* close read end */
+ if (pipe1[1] != 1) { /* use write end on stdout */
+ (void) dup2(pipe1[1], 1);
+ (void) close(pipe1[1]);
+ }
+ (void) dup2(1, 2); /* use write end on stderr */
+ execvp(argv[1], argv + 1);
+ perror(argv[1]);
+ exit(99);
+ }
+
+ /* parent */
+ (void) close(pipe1[1]); /* close write end */
+ fd = pipe1[0]; /* use read end */
+
+ gColumns = (getenv("COLUMNS") != NULL) ? atoi(getenv("COLUMNS")) : 80;
+ gANSIEscapes = (getenv("TERM") != NULL) && (strstr(TERMS, getenv("TERM")) != NULL);
+ gBuf = (char *) malloc(TEXT_BLOCK_SIZE);
+ if (gBuf == NULL)
+ goto panic;
+ gNBufUsed = 0;
+ gNBufAllocated = TEXT_BLOCK_SIZE;
+ if (strlen(gArgsStr) < (gNBufAllocated - 1)) {
+ strcpy(gBuf, gArgsStr);
+ gNBufUsed = strlen(gArgsStr);
+ }
+
+ if (isatty(1)) {
+ if (SlurpProgress(fd) < 0)
+ goto panic;
+ } else {
+ if (SlurpAll(fd) < 0)
+ goto panic;
+ }
+ DumpFormattedOutput();
+ exit(gExitStatus);
+
+panic:
+ gDumpCmdArgs = 1; /* print cmd when there are errors */
+ DumpFormattedOutput();
+ while ((nread = read(fd, emerg, (size_t) sizeof(emerg))) > 0)
+ (void) write(2, emerg, (size_t) nread);
+ Wait();
+ exit(gExitStatus);
+} /* main */
+/* eof ccdv.c */
+EOF
+ changequote([, ])dnl
+ ${CC-cc} $DEFS $CPPFLAGS $CFLAGS "ccdv.c" -o "ccdv" >/dev/null 2>&1
+ /bin/rm -f ccdv.c ccdv.o ccdv.c.gz.uu ccdv.c.gz
+ strip ./ccdv >/dev/null 2>&1
+ ./ccdv >/dev/null 2>&1
+ if test $? -eq 96 ; then
+ CCDV="./ccdv"
+ else
+ /bin/rm -f ccdv
+ fi
+fi
+if test "x$CCDV" != x ; then
+ wi_RESOLVE_PATH([$CCDV], [CCDV])
+ wi_cv_path_ccdv="$CCDV"
+ CCDV="@$CCDV " # trailing space needed
+else
+ wi_cv_path_ccdv=""
+fi
+])
+if test "$wi_used_cache_path_ccdv" = yes ; then
+ CCDV="$wi_cv_path_ccdv"
+ if test "x$CCDV" != x ; then
+ CCDV="@$CCDV " # trailing space needed
+ fi
+fi
+AC_SUBST(CCDV)
+fi
+])
+dnl
+dnl
+dnl
+dnl
+AC_DEFUN([wi_HEADER_CURSES], [
+AC_MSG_CHECKING([for curses library headers])
+if test "$wi_cv_ncurses" != "no" ; then
+ AC_CHECK_HEADERS(ncurses.h curses.h termios.h termio.h sgtty.h sys/ioctl.h)
+else
+ AC_CHECK_HEADERS(curses.h termios.h termio.h sgtty.h sys/ioctl.h)
+fi
+dnl needed for Solaris 7
+if test "$ac_cv_header_curses_h" = no ; then
+ if test -f /usr/include/curses.h ; then
+ AC_DEFINE(HAVE_CURSES_H)
+ ac_cv_header_curses_h=yes
+ fi
+fi
+])
+dnl
+dnl
+dnl
+dnl
+AH_TEMPLATE([HAVE_LIBCURSES], [define if linking against libcurses])
+AH_TEMPLATE([HAVE_LIBNCURSES], [define if linking against libncurses])
+AC_DEFUN([wi_LIB_CURSES], [
+wi_HEADER_CURSES
+AC_MSG_CHECKING([for curses library])
+
+wi_cv_lib_curses=no
+wi_cv_lib_curses_result=no
+ac_save_LIBS="$LIBS"
+for LIBCURSES in "-lncurses" "-lcurses" "-lcurses -ltermcap" "-ltermcap -lcurses"
+do
+ if test "x$LIBCURSES-$wi_cv_ncurses" = "x-lncurses-no" ; then
+ # This should never work
+ LIBCURSES="-lkdfjkdjfs"
+ fi
+ LIBS="$ac_save_LIBS $LIBCURSES"
+ AC_TRY_RUN([
+ /* program */
+#include <stdio.h>
+#include <stdlib.h>
+
+#ifdef HAVE_NCURSES_H
+# include <ncurses.h>
+#else
+# include <curses.h>
+#endif
+
+
+main(int argc, char **argv)
+{
+ /* Note: don't actually call curses, since it may block;
+ * We just want to see if it (dynamic) linked in okay.
+ */
+ if (argc == 4)
+ initscr();
+ exit(0);
+}
+],[
+ # action if true
+ wi_cv_lib_curses=yes
+ wi_cv_lib_curses_result="yes"
+],[
+ # action if false
+ wi_cv_lib_curses=no
+],[
+ # action if cross compiling
+ wi_cv_lib_curses=no
+])
+
+ if test "$wi_cv_lib_curses" = yes ; then break ; fi
+done
+
+# restore LIBS
+LIBS="$ac_save_LIBS"
+
+if test "$wi_cv_lib_curses_result" != "no" ; then
+ case "$LIBCURSES" in
+ "-lncurses")
+ AC_DEFINE(HAVE_LIBNCURSES)
+ ;;
+ "-lcurses")
+ AC_DEFINE(HAVE_LIBCURSES)
+ ;;
+ "-lcurses -ltermcap")
+ AC_DEFINE(HAVE_LIBCURSES)
+ ;;
+ "-ltermcap -lcurses")
+ AC_DEFINE(HAVE_LIBCURSES)
+ ;;
+ esac
+else
+ LIBCURSES=''
+fi
+
+AC_SUBST(LIBCURSES)
+AC_MSG_RESULT([$wi_cv_lib_curses_result])
+])
+dnl
+dnl
+dnl
+dnl
+AH_TEMPLATE([waddstr_str_t], [string parameter to waddstr])
+AH_TEMPLATE([WADDSTR_TYPE_ARG1_CONST], [define if first parameter to waddstr is const char *])
+AC_DEFUN([wi_CURSES_FUNC_PARAM_TYPES], [
+AC_REQUIRE([AC_PROG_CPP])
+AC_REQUIRE([wi_PATH_PERL])
+AC_REQUIRE([wi_PATH_MKTEMP])
+wi_PREREQ_UNISTD_H([$0])
+AC_CACHE_CHECK([string parameter to waddstr], [wi_cv_waddstr_str_t], [
+used_cache_for_wi_curses_fpt="no"
+wi_CREATE_AC_TMPDIR([
+wi_CREATE_PRPP_SCRIPT([$wi_tmpdir/prpp.pl])
+
+changequote({{, }})dnl
+cat << 'EOF' > "$wi_tmpdir/curses.c"
+#if defined(AIX) || defined(_AIX) || defined(__HOS_AIX__)
+# define _ALL_SOURCE 1
+#endif
+#include <confdefs.h>
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#include <sys/types.h>
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+#ifdef HAVE_NCURSES_H
+# include <ncurses.h>
+#else
+# include <curses.h>
+#endif
+
+main()
+{
+ exit(0);
+}
+EOF
+
+cat << 'EOF' > "$wi_tmpdir/sed2.sh"
+#!/bin/sh
+
+if [ {{$}}# -eq 0 ] ; then exit 1 ; fi
+x="{{$}}1"
+
+sed -n 's/extern//;s/static//;
+ /[\ \*]'"$x"'\ *(/{
+ s/^.*'"$x"'\ *(/(/
+ s/)\ *[;,].*$/)/
+ /const char/{
+ c\
+const char *
+ }
+ /char/{
+ c\
+char *
+ }
+ /const/{
+ c\
+const void
+ }
+ q
+}'
+EOF
+chmod 755 "$wi_tmpdir/sed2.sh"
+
+$CPP "-I${srcdir-.}" "$wi_tmpdir/curses.c" > "$wi_tmpdir/curses.i"
+if [ -s "$wi_tmpdir/curses.i" ] ; then
+ "$PERL" "$wi_tmpdir/prpp.pl" < "$wi_tmpdir/curses.i" > "$wi_tmpdir/protos.h"
+fi
+if [ -f "$wi_tmpdir/protos.h" ] ; then
+ #
+ # Check what type waddstr() expects for the string parameter
+ #
+ x="waddstr"
+ wi_cv_waddstr_str_t=`/bin/sh "$wi_tmpdir/sed2.sh" "$x" < "$wi_tmpdir/protos.h"`
+fi
+if [ "x$wi_cv_waddstr_str_t" = "x" ] ; then
+ wi_cv_waddstr_str_t="const char *"
+fi
+changequote([, ])dnl
+])
+])
+dnl if test "x$used_cache_for_wi_curses_fpt" = "xno" ; then
+dnl AC_MSG_CHECKING([string parameter to waddstr])
+dnl AC_MSG_RESULT([$wi_cv_waddstr_str_t])
+dnl else
+dnl AC_CACHE_CHECK([string parameter to waddstr],[wi_cv_waddstr_str_t],[:])
+dnl fi
+unset used_cache_for_wi_curses_fpt
+AC_DEFINE_UNQUOTED(waddstr_str_t, $wi_cv_waddstr_str_t)
+if test "$wi_cv_waddstr_str_t" = "const char *" ; then
+ AC_DEFINE(WADDSTR_TYPE_ARG1_CONST)
+fi
+])
+dnl
+dnl
+dnl
+dnl
+AH_TEMPLATE([HAVE_BEEP], [define if curses library has beep() functionality])
+AH_TEMPLATE([HAVE__MAXX], [define if curses structure has maxx or _maxx field])
+AH_TEMPLATE([HAVE_GETCURX], [define if curses library has getcurx() functionality])
+AH_TEMPLATE([HAVE_GETYX], [define if curses library has getyx() functionality])
+AH_TEMPLATE([HAVE_GETMAXX], [define if curses library has getmaxx() functionality])
+AH_TEMPLATE([HAVE_GETMAXYX], [define if curses library has getmaxyx() functionality])
+AH_TEMPLATE([HAVE_GETBEGX], [define if curses library has getbegx() functionality])
+AH_TEMPLATE([HAVE_GETBEGYX], [define if curses library has getbegyx() functionality])
+AH_TEMPLATE([HAVE_TOUCHWIN], [define if curses library has touchwin() functionality])
+AC_DEFUN([wi_CURSES_FEATURES], [
+if test "$wi_cv_lib_curses" = "yes" ; then
+wi_PREREQ_UNISTD_H([$0])
+ # Then $LIBCURSES is a list of curses and support libraries.
+ ac_save_LIBS="$LIBS";
+ LIBS="$LIBS $LIBCURSES";
+
+wi_CURSES_FUNC_PARAM_TYPES
+
+ # maxx or _maxx
+ AC_MSG_CHECKING([whether curses structure has maxx or _maxx field])
+ AC_TRY_COMPILE([
+ /* includes */
+#if defined(AIX) || defined(_AIX) || defined(__HOS_AIX__)
+# define _ALL_SOURCE 1
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#include <sys/types.h>
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+#ifdef HAVE_NCURSES_H
+# include <ncurses.h>
+#else
+# include <curses.h>
+#endif
+],[
+ WINDOW *w;
+
+ w = newwin(10, 10, 1, 1);
+ w->maxx = 0;
+],[
+AC_MSG_RESULT([maxx])
+],[
+AC_DEFINE(HAVE__MAXX)
+AC_MSG_RESULT([_maxx])
+])
+
+ if test "${SYS-hpux}" = hpux ; then
+ AC_CHECK_FUNCS(__getcurx __getcury __getmaxx __getmaxy __getbegx __getbegy)
+ fi
+
+ # getcurx
+ AC_MSG_CHECKING([for getcurx() functionality in curses library])
+ AC_TRY_LINK([
+ /* includes */
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#include <sys/types.h>
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+#ifdef HAVE_NCURSES_H
+# include <ncurses.h>
+#else
+# include <curses.h>
+#endif
+
+],[
+ /* function-body */
+ WINDOW *junk = 0;
+ int mx = 0;
+
+ mx = getcurx(junk);
+ exit(0);
+],[
+ AC_DEFINE(HAVE_GETCURX)
+ AC_MSG_RESULT([yes])
+],[
+ AC_MSG_RESULT([no])
+])
+
+ # getyx
+ AC_MSG_CHECKING([for getyx() functionality in curses library])
+ AC_TRY_LINK([
+ /* includes */
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#include <sys/types.h>
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+#ifdef HAVE_NCURSES_H
+# include <ncurses.h>
+#else
+# include <curses.h>
+#endif
+
+],[
+ /* function-body */
+ WINDOW *junk = 0;
+ int mx = 0, my = 0;
+
+ getyx(junk, my, mx);
+ exit(0);
+],[
+ AC_DEFINE(HAVE_GETYX)
+ AC_MSG_RESULT([yes])
+],[
+ AC_MSG_RESULT([no])
+])
+
+ # getmaxx
+ AC_MSG_CHECKING([for getmaxx() functionality in curses library])
+ AC_TRY_LINK([
+ /* includes */
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#include <sys/types.h>
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+#ifdef HAVE_NCURSES_H
+# include <ncurses.h>
+#else
+# include <curses.h>
+#endif
+],[
+ /* function-body */
+ WINDOW *junk = 0;
+ int mx = 0;
+
+ mx = getmaxx(junk);
+ exit(0);
+],[
+ AC_DEFINE(HAVE_GETMAXX)
+ AC_MSG_RESULT([yes])
+],[
+ AC_MSG_RESULT([no])
+])
+
+ # getmaxyx
+ AC_MSG_CHECKING([for getmaxyx() functionality in curses library])
+ AC_TRY_LINK([
+ /* includes */
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#include <sys/types.h>
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+#ifdef HAVE_NCURSES_H
+# include <ncurses.h>
+#else
+# include <curses.h>
+#endif
+],[
+ /* function-body */
+ WINDOW *junk = 0;
+ int mx = 0, my = 0;
+
+ getmaxyx(junk, my, mx);
+ exit(my < 0 ? my : 0);
+],[
+ AC_DEFINE(HAVE_GETMAXYX)
+ AC_MSG_RESULT([yes])
+],[
+ AC_MSG_RESULT([no])
+])
+
+ # getbegx
+ AC_MSG_CHECKING([for getbegx() functionality in curses library])
+ AC_TRY_LINK([
+ /* includes */
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#include <sys/types.h>
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+#ifdef HAVE_NCURSES_H
+# include <ncurses.h>
+#else
+# include <curses.h>
+#endif
+
+],[
+ /* function-body */
+ WINDOW *junk = 0;
+ int mx = 0;
+
+ mx = getbegx(junk);
+ exit(0);
+],[
+ AC_DEFINE(HAVE_GETBEGX)
+ AC_MSG_RESULT([yes])
+],[
+ AC_MSG_RESULT([no])
+])
+
+ # getbegyx
+ AC_MSG_CHECKING([for getbegyx() functionality in curses library])
+ AC_TRY_LINK([
+ /* includes */
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#include <sys/types.h>
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+#ifdef HAVE_NCURSES_H
+# include <ncurses.h>
+#else
+# include <curses.h>
+#endif
+],[
+ /* function-body */
+ WINDOW *junk = 0;
+ int mx = 0, my = 0;
+
+ getbegyx(junk, my, mx);
+ exit(my < 0 ? my : 0);
+],[
+ AC_DEFINE(HAVE_GETBEGYX)
+ AC_MSG_RESULT([yes])
+],[
+ AC_MSG_RESULT([no])
+])
+
+ # touchwin
+ AC_MSG_CHECKING([for touchwin() functionality in curses library])
+ AC_TRY_LINK([
+ /* includes */
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#include <sys/types.h>
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+#ifdef HAVE_NCURSES_H
+# include <ncurses.h>
+#else
+# include <curses.h>
+#endif
+],[
+ /* function-body */
+ WINDOW *junk = 0;
+ touchwin(junk);
+ exit(0);
+],[
+ AC_DEFINE(HAVE_TOUCHWIN)
+ AC_MSG_RESULT([yes])
+],[
+ AC_MSG_RESULT([no])
+])
+
+ # beep
+ AC_MSG_CHECKING([for beep() functionality in curses library])
+ AC_TRY_LINK([
+ /* includes */
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#include <sys/types.h>
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+#ifdef HAVE_NCURSES_H
+# include <ncurses.h>
+#else
+# include <curses.h>
+#endif
+],[
+ /* function-body */
+ beep();
+ exit(getpid() & 1);
+],[
+ AC_DEFINE(HAVE_BEEP)
+ AC_MSG_RESULT([yes])
+],[
+ AC_MSG_RESULT([no])
+])
+
+ AC_CHECK_FUNCS(keypad nodelay curs_set doupdate wnoutrefresh)
+
+ LIBS="$ac_save_LIBS";
+fi
+])
+dnl
+dnl
+dnl
+AC_DEFUN([wi_SHADOW_FUNCS], [
+AC_CHECK_FUNCS(md5_crypt md5crypt bcrypt getspnam crypt_set_format)
+
+if test "$ac_cv_func_getspnam" = no ; then
+ unset ac_cv_func_getspnam
+ AC_CHECK_LIB(gen,getspnam)
+ if test "$ac_cv_lib_gen_getspnam" = yes ; then
+ AC_CHECK_FUNCS(getspnam)
+ fi
+elif test "$ac_cv_func_getspnam" = yes ; then
+ # Special hack to be sure UnixWare 7.1 uses -lgen for getspnam.
+ # The reason we do this is so that the binary can be used on
+ # SCO 5.0.6 with the UDK compatibility libraries installed,
+ # For some reason, on UW7.1 getspnam is in the standard library and
+ # libgen, but on SCO/UDK it is only in libgen.
+ #
+ case "$OS" in
+ unixware2*)
+ ;;
+ unixware*)
+ AC_CHECK_LIB(gen,getspnam)
+ ;;
+ esac
+fi
+
+# AIX
+#
+case "$SYS" in
+ "aix"|"")
+ AC_CHECK_FUNCS(getuserpw)
+ ;;
+ *)
+ ;;
+esac
+
+# C2: SCO Open Server 5; Digital UNIX
+AC_CHECK_FUNCS(set_auth_parameters bigcrypt)
+
+# C2: Digital UNIX 3.2, 4.0; SCO Open Server 5; HP-UX 11
+AC_CHECK_FUNCS(getprpwnam)
+
+# Digital UNIX 4.0
+AC_CHECK_FUNCS(getespwnam get_num_crypts get_crypt_name)
+
+# Digital Unix 4.0
+AC_CHECK_FUNCS(dispcrypt)
+
+# SunOS
+AC_CHECK_FUNCS(getpwanam)
+])
+dnl
+dnl
+dnl
+AC_DEFUN([wi_SHADOW_HEADERS], [
+AC_CHECK_HEADERS(shadow.h crypt.h)
+
+# AIX
+AC_CHECK_HEADERS(userpw.h)
+
+# SunOS
+AC_CHECK_HEADERS(pwdadj.h)
+
+# HP-UX
+#
+# Bug in header on these version 10 which cause is it not
+# to get detected.
+#
+wi_HEADER_HPSECURITY_H
+
+# SCO Open Server, Digital UNIX
+AC_CHECK_HEADERS(sys/security.h sys/audit.h krb.h prot.h)
+
+# Digital UNIX
+AC_CHECK_HEADERS(sys/secdefines.h)
+
+# Digital UNIX
+wi_PR_PASSWD_FG_OLDCRYPT
+])
+dnl
+dnl
+dnl
+AC_DEFUN([wi_SHADOW_LIBS], [
+check_for_libcrypt=yes
+
+# AIX security library is libs.a
+AC_CHECK_LIB(s,getuserpw)
+if test "$ac_cv_lib_s" = yes ; then
+ check_for_libcrypt=no
+elif test "$ac_cv_lib_s_getuserpw" = yes ; then
+ check_for_libcrypt=no
+fi
+
+# SCO OpenServer 5 stuff for shadow password
+AC_CHECK_LIB(x,nap)
+AC_CHECK_LIB(prot,getprpwnam)
+
+# Digital UNIX
+AC_CHECK_LIB(security,endprpwent)
+
+# HP-UX
+AC_CHECK_LIB(sec,getprpwnam)
+
+if test "$ac_cv_lib_sec_getprpwnam" = no ; then
+ # DYNIX/ptx
+ AC_CHECK_LIB(sec,getspnam)
+fi
+
+if test "$check_for_libcrypt" = yes ; then
+ wi_LIB_CRYPT
+fi
+AC_CHECK_FUNCS(crypt)
+])
+dnl
+dnl
+dnl
+AC_DEFUN([wi_OS_VAR], [
+#
+# Take note if the user is or is not exporting a CFLAGS env var.
+#
+wi_orig_CFLAGS="$CFLAGS"
+wi_CFLAGS_TO_ADD_LATER=""
+changequote(!@, @!)dnl
+if [ -x "$HOME/bin/OS" ] ; then
+ HOME_OS=`$HOME/bin/OS`
+ HOME_OS="$HOME/$HOME_OS"
+fi
+host=`uname -n 2>/dev/null | tr '[A-Z]' '[a-z]'`
+os=`uname -s 2>/dev/null | tr '[A-Z]' '[a-z]'`
+if [ "$os" = "TvoPT" ] ; then os="sunos" ; fi
+dnl work around inability to use $1
+os_v=`uname -v 2>/dev/null | sed 's/^[^0-9.]*//;s/[^0-9.].*$//;' | awk '-F[-/: ]' '{n = 1; print $n; }'`
+os_r=`uname -r 2>/dev/null | sed 's/^[^0-9.]*//;s/[^0-9.].*$//;' | awk '-F[-/: ]' '{n = 1; print $n; }'`
+os_r1=`echo "${os_r}" | cut -c1`
+arch=`uname -m 2>/dev/null | tr '[A-Z]' '[a-z]'`
+archp=`uname -p 2>/dev/null | tr '[A-Z]' '[a-z]'`
+OS=''
+SYS=''
+NDEFS=''
+
+# Special case a few systems where if your CFLAGS appear
+# to want to generate for 32 bit, use that mode rather
+# than 64 bit.
+#
+case "$os,$CFLAGS" in
+ irix64,*-n32*)
+ os=irix
+ # then go to regular "irix" instead of "irix64" below.
+ ;;
+esac
+
+case "$os" in
+ osf1)
+ case "$os_r" in
+ 3*|4*)
+ OS="digitalunix${os_r}-$arch"
+ SYS=digitalunix
+ NDEFS="$NDEFS -DDIGITAL_UNIX=$os_r1"
+ ;;
+ *)
+ OS="tru64unix${os_r}-$arch"
+ SYS=tru64unix
+ NDEFS="$NDEFS -DTRU64UNIX=$os_r1"
+ ;;
+ esac
+ ;;
+ aix)
+ os_lev=`/usr/bin/oslevel 2>/dev/null`
+ if [ "$os_lev" = "" ] ; then
+ if [ "$os_r" = "" ] ; then os_r=0 ; fi
+ OS="aix${os_v}.${os_r}"
+ os_int=`expr $os_v$os_r '*' 10`
+ else
+ os_v=`echo "$os_lev" | cut -d. -f1-3`
+ os_v1=`echo "$os_v" | cut -d. -f1`
+ os_v2=`echo "$os_v" | cut -d. -f2`
+ if [ "$os_v2" = "" ] ; then os_v2=0 ; fi
+ os_v3=`echo "$os_v" | cut -d. -f3`
+ if [ "$os_v3" = "" ] ; then os_v3=0 ; fi
+ os_int=`expr "$os_v1" '*' 100 + "$os_v2" '*' 10 + "$os_v3"`
+ OS="aix${os_v}"
+ fi
+ SYS=aix
+ NDEFS="$NDEFS -DAIX=${os_int}"
+ ;;
+ irix)
+ OS="irix${os_r}"
+ SYS=irix
+ NDEFS="$NDEFS -DIRIX=$os_r1"
+ ;;
+ irix64)
+ OS="irix64_${os_r}"
+ SYS=irix64
+ NDEFS="$NDEFS -DIRIX=$os_r1 -DIRIX64=$os_r1"
+ ;;
+ hp-ux)
+ os_r=`echo "${os_r}" | cut -d. -f2-`
+ os_r1=`echo "$os_r" | cut -d. -f1`
+ os_r2=`echo "${os_r}" | cut -d. -f2`
+ os_int=`expr "$os_r1" '*' 100 + "$os_r2"`
+ OS="hpux${os_r}"
+ SYS=hpux
+ NDEFS="$NDEFS -DHPUX=$os_int"
+ ;;
+ freebsd)
+ OS="freebsd${os_r}-$arch"
+ os_r1=`echo "$os_r" | cut -d. -f1`
+ os_r2=`echo "$os_r" | cut -d. -f2`
+ if [ "$os_r2" = "" ] ; then os_r2=0 ; fi
+ os_r3=`echo "$os_r" | cut -d. -f3`
+ if [ "$os_r3" = "" ] ; then os_r3=0 ; fi
+ os_int=`expr "$os_r1" '*' 100 + "$os_r2" '*' 10 + "$os_r3"`
+ SYS=freebsd
+ NDEFS="$NDEFS -DFREEBSD=$os_int"
+ ;;
+ netbsd)
+ OS="netbsd${os_r}-$arch"
+ os_r1=`echo "$os_r" | cut -d. -f1`
+ os_r2=`echo "$os_r" | cut -d. -f2`
+ if [ "$os_r2" = "" ] ; then os_r2=0 ; fi
+ os_r3=`echo "$os_r" | cut -d. -f3`
+ if [ "$os_r3" = "" ] ; then os_r3=0 ; fi
+ os_int=`expr "$os_r1" '*' 100 + "$os_r2" '*' 10 + "$os_r3"`
+ NDEFS="$NDEFS -DNETBSD=$os_int"
+ SYS=netbsd
+ ;;
+ openbsd)
+ OS="openbsd${os_r}-$arch"
+ os_r1=`echo "$os_r" | cut -d. -f1`
+ os_r2=`echo "$os_r" | cut -d. -f2`
+ if [ "$os_r2" = "" ] ; then os_r2=0 ; fi
+ os_r3=`echo "$os_r" | cut -d. -f3`
+ if [ "$os_r3" = "" ] ; then os_r3=0 ; fi
+ os_int=`expr "$os_r1" '*' 100 + "$os_r2" '*' 10 + "$os_r3"`
+ SYS=openbsd
+ NDEFS="$NDEFS -DOPENBSD=$os_int"
+ ;;
+ sco*)
+ OS=scosv
+ SYS=sco
+ os_v1=`echo "$os_v" | cut -d. -f1`
+ case "$os_v1" in
+ [1-9])
+ os_v2=`echo "$os_v" | cut -d. -f2`
+ if [ "$os_v2" = "" ] ; then os_v2=0 ; fi
+ os_v3=`echo "$os_v" | cut -d. -f3`
+ if [ "$os_v3" = "" ] ; then os_v3=0 ; fi
+ os_int=`expr "$os_v1" '*' 100 + "$os_v2" '*' 10 + "$os_v3"`
+ NDEFS="$NDEFS -DSCO=$os_int"
+ ;;
+ *)
+ NDEFS="$NDEFS -DSCO=1"
+ ;;
+ esac
+ ;;
+ dynix*)
+ OS="dynixptx${os_v}"
+ SYS=dynixptx
+ os_v1=`echo "$os_v" | cut -d. -f1`
+ os_v2=`echo "$os_v" | cut -d. -f2`
+ os_v3=`echo "$os_v" | cut -d. -f3`
+ if [ "$os_v3" = "" ] ; then os_v3=0 ; fi
+ os_int=`expr "$os_v1" '*' 100 + "$os_v2" '*' 10 + "$os_v3"`
+ NDEFS="$NDEFS -DDYNIX=$os_int"
+ ;;
+ linux)
+ case "$arch" in
+ *86)
+ arch=x86
+ ;;
+ esac
+
+ libc=""
+ os_r1=`echo "$os_r" | cut -d. -f1`
+ os_r2=`echo "$os_r" | cut -d. -f2`
+ os_r3=`echo "$os_r" | cut -d- -f1 | cut -d. -f3`
+ os_int=`expr "$os_r1" '*' 10000 + "$os_r2" '*' 1000 + "$os_r3"`
+ NDEFS="$NDEFS -DLINUX=$os_int"
+
+ vertest="./vertest.$$"
+ /bin/rm -f "$vertest" "$vertest.c"
+ cat <<EOF > "$vertest.c"
+#include <stdio.h>
+#include <gnu/libc-version.h>
+
+main()
+{
+ const char *ver = gnu_get_libc_version();
+ const char *rel = gnu_get_libc_release();
+
+ fprintf(stdout, "glibc%s\n", ver);
+ exit(0);
+}
+EOF
+ echo $ac_n "checking version of C library""... $ac_c" 1>&6
+ echo "configure:: checking version of C library" >&5
+ ${CC-cc} $DEFS $CPPFLAGS $CFLAGS "$vertest.c" -o "$vertest" >/dev/null 2>&1
+ if [ -x "$vertest" ] ; then libc=`$vertest` ; fi
+ /bin/rm -f "$vertest" "$vertest.c"
+
+ case "$libc" in
+ glibc*)
+ echo "$libc" 1>&6
+ glibc_r=`echo "$libc" | sed 's/glibc//'`
+ glibc_r1=`echo "$glibc_r" | cut -d. -f1`
+ glibc_r2=`echo "$glibc_r" | cut -d. -f2`
+ glibc_r3=`echo "$glibc_r" | cut -d- -f1 | cut -d. -f3`
+ glibc_int=`expr "$glibc_r1" '*' 10000 + "$glibc_r2" '*' 1000 + "$glibc_r3"`
+ NDEFS="$NDEFS -DLINUX_GLIBC=$glibc_int"
+ libc="glibc${glibc_r1}.${glibc_r2}"
+ OS="linux-$arch"
+ ;;
+ *)
+ if test -f /lib/libc-2.2.2.so ; then
+ NDEFS="$NDEFS -DLINUX_GLIBC=22002"
+ libc="glibc2.2"
+ OS="linux-$arch"
+ elif test -f /lib/libc-2.2.1.so ; then
+ NDEFS="$NDEFS -DLINUX_GLIBC=22001"
+ libc="glibc2.2"
+ OS="linux-$arch"
+ elif test -f /lib/libc-2.2.0.so ; then
+ NDEFS="$NDEFS -DLINUX_GLIBC=22000"
+ libc="glibc2.1"
+ OS="linux-$arch"
+ elif test -f /lib/libc-2.1.3.so ; then
+ NDEFS="$NDEFS -DLINUX_GLIBC=21003"
+ libc="glibc2.1"
+ OS="linux-$arch"
+ elif test -f /lib/libc-2.1.2.so ; then
+ NDEFS="$NDEFS -DLINUX_GLIBC=21002"
+ libc="glibc2.1"
+ OS="linux-$arch"
+ elif test -f /lib/libc-2.1.1.so ; then
+ NDEFS="$NDEFS -DLINUX_GLIBC=21001"
+ libc="glibc2.1"
+ OS="linux-$arch"
+ elif test -f /lib/libc.so.6 ; then
+ NDEFS="$NDEFS -DLINUX_GLIBC=20000"
+ libc="glibc2.0"
+ OS="linux-$arch"
+ elif test -f /lib/libc.so.6.1 ; then
+ NDEFS="$NDEFS -DLINUX_GLIBC=20001"
+ libc="glibc2.0"
+ OS="linux-$arch"
+ else
+ NDEFS="$NDEFS -DLINUX_LIBC=5"
+ libc="libc5"
+ OS="linux-$arch"
+ fi
+ echo "$libc" 1>&6
+ ;;
+ esac
+ SYS=linux
+ ;;
+ bsd/os)
+ OS="bsdos${os_r}"
+ SYS=bsdos
+ NDEFS="$NDEFS -DBSDOS=$os_r1"
+ ;;
+ ultrix)
+ OS="ultrix-$arch"
+ SYS=ultrix
+ NDEFS="$NDEFS -DULTRIX"
+ ;;
+ unixware)
+ OS="unixware${os_v}"
+ SYS=unixware
+ os_v1=`echo "$os_v" | cut -d. -f1`
+ case "$os_v1" in
+ [1-9])
+ os_v2=`echo "$os_v" | cut -d. -f2`
+ os_v3=`echo "$os_v" | cut -d. -f3`
+ if [ "$os_v3" = "" ] ; then os_v3=0 ; fi
+ os_int=`expr "$os_v1" '*' 100 + "$os_v2" '*' 10 + "$os_v3"`
+ NDEFS="$NDEFS -DUNIXWARE=$os_int"
+ ;;
+ *)
+ NDEFS="$NDEFS -DUNIXWARE=1"
+ ;;
+ esac
+ ;;
+ openunix)
+ OS="openunix${os_v}"
+ SYS=openunix
+ os_v1=`echo "$os_v" | cut -d. -f1`
+ os_v2=`echo "$os_v" | cut -d. -f2`
+ os_v3=`echo "$os_v" | cut -d. -f3`
+ if [ "$os_v3" = "" ] ; then os_v3=0 ; fi
+ os_int=`expr "$os_v1" '*' 100 + "$os_v2" '*' 10 + "$os_v3"`
+ NDEFS="$NDEFS -DOPENUNIX=$os_int -DUNIXWARE=$os_int"
+ ;;
+ macos*|darwin|rhapsody)
+ OS="macosx"
+ SYS="macosx"
+ os_v=`perl -e '{open(F, "< /System/Library/CoreServices/SystemVersion.plist") or exit(2); my ($doc) = ""; my ($line); while (defined($line = <F>)) { $doc .= $line; } close(F); $doc =~ s/\s+//gs; if ($doc =~ /<key>ProductVersion<\/key><string>([^<]+)<\/string>/) { print $1, "\n"; exit(0); } exit(1); }' 2>/dev/null`
+ if [ "$os_v" = "" ] && [ -x "$HOME/bin/macosver" ] ; then
+ os_v=`"$HOME/bin/macosver" 2>/dev/null`
+ fi
+ if [ "$os_v" = "" ] ; then
+ cat > "$HOME/macosver.c" <<EOF
+/*
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd">
+<plist version="0.9">
+<dict>
+ <key>ProductBuildVersion</key>
+ <string>5S66</string>
+ <key>ProductName</key>
+ <string>Mac OS X</string>
+ <key>ProductVersion</key>
+ <string>10.1.5</string>
+</dict>
+</plist>
+*/
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <ctype.h>
+
+main()
+{
+ char line[256], *cp, *cp2;
+ FILE *fp;
+
+ fp = fopen("/System/Library/CoreServices/SystemVersion.plist", "r");
+
+ if (fp != NULL) {
+ memset(line, 0, sizeof(line));
+ while (fgets(line, sizeof(line) - 1, fp) != NULL) {
+ cp = strstr(line, "<key>ProductVersion</key>");
+ if (cp != NULL) {
+ memset(line, 0, sizeof(line));
+ if (fgets(line, sizeof(line) - 2, fp) != NULL) {
+ for (cp = line; ((*cp != '\0') && (! isdigit(*cp))); ) cp++;
+ for (cp2 = cp; ((*cp2 != '\0') && (! isspace(*cp2)) && (*cp2 != '<') && (*cp2 != '>')); ) cp2++;
+ cp2[0] = '\0';
+ fclose(fp);
+ fprintf(stdout, "%s\n", cp);
+ exit(0);
+ }
+ }
+ }
+ }
+ fclose(fp);
+ exit(1);
+}
+EOF
+ ${CC-cc} "$HOME/macosver.c" -o "$HOME/macosver" > /dev/null 2>&1
+ os_v=`"$HOME/macosver" 2>/dev/null`
+ /bin/mv "$HOME/macosver" "$HOME/bin/macosver" 2>/dev/null
+ /bin/rm -f "$HOME/macosver.c" "$HOME/macosver"
+ fi
+ if [ "$os_v" != "" ] ; then
+ OS="macosx${os_v}"
+ os_v1=`echo "$os_v" | cut -d. -f1`
+ os_v2=`echo "$os_v" | cut -d. -f2`
+ os_v3=`echo "$os_v" | cut -d. -f3`
+ if [ "$os_v3" = "" ] ; then os_v3=0 ; fi
+ os_int=`expr "$os_v1" '*' 1000 + "$os_v2" '*' 100 + "$os_v3"`
+ NDEFS="$NDEFS -DMACOSX=$os_int"
+ else
+ NDEFS="$NDEFS -DMACOSX"
+ fi
+ ;;
+ sunos)
+ if [ "$arch" = "" ] ; then arch="sparc" ; fi
+ if [ "$archp" = "" ] ; then archp="$arch" ; fi
+ case "$os_r" in
+ 5.[789]*|5.1[0-9][0-9]*)
+ os_r1=`echo "$os_r" | cut -d. -f2`
+ os_r2=`echo "$os_r" | cut -d. -f3`
+ if [ "$os_r2" = "" ] ; then os_r2=0 ; fi
+ os_r3=`echo "$os_r" | cut -d. -f4`
+ if [ "$os_r3" = "" ] ; then os_r3=0 ; fi
+ os_int=`expr "$os_r1" '*' 100 + "$os_r2" '*' 10 + "$os_r3"`
+ os_r=`echo "$os_r" | cut -c3-`
+ OS="solaris${os_r}-$archp"
+ NDEFS="$NDEFS -DSOLARIS=$os_int"
+ SYS=solaris
+ ;;
+ 5.[023456]*|5.1)
+ os_r=`echo "$os_r" | sed 's/^5/2/;'`
+ os_r1=`echo "$os_r" | cut -d. -f1`
+ os_r2=`echo "$os_r" | cut -d. -f2`
+ if [ "$os_r2" = "" ] ; then os_r2=0 ; fi
+ os_r3=`echo "$os_r" | cut -d. -f3`
+ if [ "$os_r3" = "" ] ; then os_r3=0 ; fi
+ os_int=`expr "$os_r1" '*' 100 + "$os_r2" '*' 10 + "$os_r3"`
+ OS="solaris${os_r}-$archp"
+ NDEFS="$NDEFS -DSOLARIS=$os_int"
+ SYS=solaris
+ ;;
+ 4.*)
+ OS="sunos${os_r}-sparc"
+ NDEFS="$NDEFS -DSUNOS=\\\"$os_r\\\""
+ SYS=sunos
+ ;;
+ *)
+ os_r1=`echo "$os_r" | cut -d. -f1`
+ if [ "$os_r1" = "" ] ; then os_r1=0 ; fi
+ os_r2=`echo "$os_r" | cut -d. -f2`
+ if [ "$os_r2" = "" ] ; then os_r2=0 ; fi
+ os_r3=`echo "$os_r" | cut -d. -f3`
+ if [ "$os_r3" = "" ] ; then os_r3=0 ; fi
+ os_int=`expr "$os_r1" '*' 100 + "$os_r2" '*' 10 + "$os_r3"`
+ OS="solaris${os_r}-$archp"
+ NDEFS="$NDEFS -DSOLARIS=$os_int"
+ SYS=solaris
+ ;;
+ esac
+ ;;
+ *)
+ OS="$os"
+ SYS="$os"
+
+ if grep Novell /usr/include/sys/types.h ; then
+ OS="unixware${os_v}"
+ SYS="unixware"
+ fi
+ ;;
+esac
+
+if [ "x$wi_cv_OS" != "x" ] && [ "$wi_cv_OS" != "$OS" ] ; then
+changequote([, ])
+ AC_MSG_ERROR([Your config.cache file is invalid. It was created on $wi_cv_OS, but this machine is running $OS. Remove the config.cache file if you wish to continue.])
+fi
+wi_cv_OS="$OS"
+
+AC_SUBST(NDEFS)
+AC_SUBST(OS)
+AC_SUBST(host)
+AC_SUBST(SYS)
+AC_SUBST(HOME_OS)
+])
+dnl
+dnl
+dnl
+AC_DEFUN([wi_SIZEOF_STRUCT_STAT], [
+AC_MSG_CHECKING(size of struct stat)
+wi_PREREQ_UNISTD_H([$0])
+AC_TRY_RUN([
+ /* program */
+#if defined(AIX) || defined(_AIX) || defined(__HOS_AIX__)
+# define _ALL_SOURCE 1
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+main()
+{
+ struct stat x;
+ FILE *fp;
+
+ fp = fopen("conftest.out", "w");
+ if (fp != NULL) {
+ fprintf(fp, "%u\n", (unsigned int) sizeof(x));
+ fclose(fp);
+ exit(0); /* OK */
+ }
+ exit(1); /* Not OK */
+}
+],[
+ # action if true
+ x=`cat conftest.out`
+ case "$x" in
+changequote(<<, >>)dnl
+ [0-9]*)
+changequote([, ])dnl
+ AC_DEFINE_UNQUOTED(SIZEOF_STRUCT_STAT, $x)
+ ac_cv_sizeof_struct_stat="$x"
+ ;;
+ *)
+ x="failed"
+ ;;
+ esac
+ /bin/rm -f conftest.out
+],[
+ # action if false
+ x="failed";
+ /bin/rm -f conftest.out
+],[
+ # action if cross compiling
+ x="unknown";
+ /bin/rm -f conftest.out
+])
+AC_MSG_RESULT($x)
+])
+dnl
+dnl
+dnl
+AC_DEFUN([wi_SIZEOF_STRUCT_STAT64], [
+AC_MSG_CHECKING(size of struct stat64)
+wi_PREREQ_UNISTD_H([$0])
+AC_TRY_RUN([
+ /* program */
+#if defined(AIX) || defined(_AIX) || defined(__HOS_AIX__)
+# define _ALL_SOURCE 1
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+main()
+{
+ struct stat64 x;
+ FILE *fp;
+
+ fp = fopen("conftest.out", "w");
+ if (fp != NULL) {
+ fprintf(fp, "%u\n", (unsigned int) sizeof(x));
+ fclose(fp);
+ exit(0); /* OK */
+ }
+ exit(1); /* Not OK */
+}
+],[
+ # action if true
+ x=`cat conftest.out`
+ case "$x" in
+changequote(<<, >>)dnl
+ [0-9]*)
+changequote([, ])dnl
+ AC_DEFINE_UNQUOTED(SIZEOF_STRUCT_STAT64, $x)
+ ac_cv_sizeof_struct_stat64="$x"
+ ;;
+ *)
+ x="failed"
+ ;;
+ esac
+ /bin/rm -f conftest.out
+],[
+ # action if false
+ x="failed";
+ /bin/rm -f conftest.out
+],[
+ # action if cross compiling
+ x="unknown";
+ /bin/rm -f conftest.out
+])
+AC_MSG_RESULT($x)
+])