ncurses 6.0 - patch 20170513
[ncurses.git] / aclocal.m4
index 99cc16f253b13506f1d8349987c35b7ca5b6fe4b..722dbc4c296ebab22daeaacbf8d109d039554c19 100644 (file)
@@ -1,5 +1,5 @@
 dnl***************************************************************************
 dnl***************************************************************************
-dnl Copyright (c) 1998-2014,2015 Free Software Foundation, Inc.              *
+dnl Copyright (c) 1998-2016,2017 Free Software Foundation, Inc.              *
 dnl                                                                          *
 dnl Permission is hereby granted, free of charge, to any person obtaining a  *
 dnl copy of this software and associated documentation files (the            *
 dnl                                                                          *
 dnl Permission is hereby granted, free of charge, to any person obtaining a  *
 dnl copy of this software and associated documentation files (the            *
@@ -28,7 +28,7 @@ dnl***************************************************************************
 dnl
 dnl Author: Thomas E. Dickey 1995-on
 dnl
 dnl
 dnl Author: Thomas E. Dickey 1995-on
 dnl
-dnl $Id: aclocal.m4,v 1.748 2015/05/02 21:22:41 tom Exp $
+dnl $Id: aclocal.m4,v 1.809 2017/04/29 22:41:39 tom Exp $
 dnl Macros used in NCURSES auto-configuration script.
 dnl
 dnl These macros are maintained separately from NCURSES.  The copyright on
 dnl Macros used in NCURSES auto-configuration script.
 dnl
 dnl These macros are maintained separately from NCURSES.  The copyright on
@@ -62,22 +62,24 @@ AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset,
        fi
 ])dnl
 dnl ---------------------------------------------------------------------------
        fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_ABI_DEFAULTS version: 1 updated: 2015/05/02 17:21:13
+dnl CF_ABI_DEFAULTS version: 2 updated: 2015/06/06 13:49:58
 dnl ---------------
 dnl Provide configure-script defaults for different ncurses ABIs.
 AC_DEFUN([CF_ABI_DEFAULTS],[
 dnl ---------------
 dnl Provide configure-script defaults for different ncurses ABIs.
 AC_DEFUN([CF_ABI_DEFAULTS],[
-AC_REQUIRE([CF_WITH_ABI_VERSION])
+AC_REQUIRE([CF_NCURSES_WITH_ABI_VERSION])
 case x$cf_cv_abi_version in
 case x$cf_cv_abi_version in
-(x6)
+(x[[6789]])
        cf_dft_ext_colors=yes
        cf_dft_ext_const=yes
        cf_dft_ext_mouse=yes
        cf_dft_ext_putwin=yes
        cf_dft_ext_spfuncs=yes
        cf_dft_ext_colors=yes
        cf_dft_ext_const=yes
        cf_dft_ext_mouse=yes
        cf_dft_ext_putwin=yes
        cf_dft_ext_spfuncs=yes
+       cf_dft_filter_syms=yes
        cf_dft_chtype=uint32_t
        cf_dft_mmask_t=uint32_t
        cf_dft_interop=yes
        cf_dft_tparm_arg=intptr_t
        cf_dft_chtype=uint32_t
        cf_dft_mmask_t=uint32_t
        cf_dft_interop=yes
        cf_dft_tparm_arg=intptr_t
+       cf_dft_with_lp64=yes
        ;;
 (*)
        cf_dft_ext_colors=no
        ;;
 (*)
        cf_dft_ext_colors=no
@@ -85,10 +87,12 @@ case x$cf_cv_abi_version in
        cf_dft_ext_mouse=no
        cf_dft_ext_putwin=no
        cf_dft_ext_spfuncs=no
        cf_dft_ext_mouse=no
        cf_dft_ext_putwin=no
        cf_dft_ext_spfuncs=no
+       cf_dft_filter_syms=no
        cf_dft_chtype=auto
        cf_dft_mmask_t=auto
        cf_dft_interop=no
        cf_dft_tparm_arg=long
        cf_dft_chtype=auto
        cf_dft_mmask_t=auto
        cf_dft_interop=no
        cf_dft_tparm_arg=long
+       cf_dft_with_lp64=no
        ;;
 esac
 ])dnl
        ;;
 esac
 ])dnl
@@ -151,7 +155,7 @@ AC_DEFUN([CF_ADD_ADAFLAGS],[
        AC_SUBST(ADAFLAGS)
 ])dnl
 dnl ---------------------------------------------------------------------------
        AC_SUBST(ADAFLAGS)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_ADD_CFLAGS version: 12 updated: 2015/04/12 15:39:00
+dnl CF_ADD_CFLAGS version: 13 updated: 2017/02/25 18:57:40
 dnl -------------
 dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS
 dnl The second parameter if given makes this macro verbose.
 dnl -------------
 dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS
 dnl The second parameter if given makes this macro verbose.
@@ -181,10 +185,10 @@ case $cf_fix_cppflags in
                                && cf_fix_cppflags=yes
 
                        if test $cf_fix_cppflags = yes ; then
                                && cf_fix_cppflags=yes
 
                        if test $cf_fix_cppflags = yes ; then
-                               cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+                               CF_APPEND_TEXT(cf_new_extra_cppflags,$cf_add_cflags)
                                continue
                        elif test "${cf_tst_cflags}" = "\"'" ; then
                                continue
                        elif test "${cf_tst_cflags}" = "\"'" ; then
-                               cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+                               CF_APPEND_TEXT(cf_new_extra_cppflags,$cf_add_cflags)
                                continue
                        fi
                        ;;
                                continue
                        fi
                        ;;
@@ -199,17 +203,17 @@ case $cf_fix_cppflags in
                                CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,$cf_tst_cppflags)
                                ;;
                        esac
                                CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,$cf_tst_cppflags)
                                ;;
                        esac
-                       cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
+                       CF_APPEND_TEXT(cf_new_cppflags,$cf_add_cflags)
                        ;;
                esac
                ;;
        (*)
                        ;;
                esac
                ;;
        (*)
-               cf_new_cflags="$cf_new_cflags $cf_add_cflags"
+               CF_APPEND_TEXT(cf_new_cflags,$cf_add_cflags)
                ;;
        esac
        ;;
 (yes)
                ;;
        esac
        ;;
 (yes)
-       cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+       CF_APPEND_TEXT(cf_new_extra_cppflags,$cf_add_cflags)
 
        cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[[^"]]*"'\''//'`
 
 
        cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[[^"]]*"'\''//'`
 
@@ -222,24 +226,24 @@ done
 
 if test -n "$cf_new_cflags" ; then
        ifelse([$2],,,[CF_VERBOSE(add to \$CFLAGS $cf_new_cflags)])
 
 if test -n "$cf_new_cflags" ; then
        ifelse([$2],,,[CF_VERBOSE(add to \$CFLAGS $cf_new_cflags)])
-       CFLAGS="$CFLAGS $cf_new_cflags"
+       CF_APPEND_TEXT(CFLAGS,$cf_new_cflags)
 fi
 
 if test -n "$cf_new_cppflags" ; then
        ifelse([$2],,,[CF_VERBOSE(add to \$CPPFLAGS $cf_new_cppflags)])
 fi
 
 if test -n "$cf_new_cppflags" ; then
        ifelse([$2],,,[CF_VERBOSE(add to \$CPPFLAGS $cf_new_cppflags)])
-       CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
+       CF_APPEND_TEXT(CPPFLAGS,$cf_new_cppflags)
 fi
 
 if test -n "$cf_new_extra_cppflags" ; then
        ifelse([$2],,,[CF_VERBOSE(add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags)])
 fi
 
 if test -n "$cf_new_extra_cppflags" ; then
        ifelse([$2],,,[CF_VERBOSE(add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags)])
-       EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
+       CF_APPEND_TEXT(EXTRA_CPPFLAGS,$cf_new_extra_cppflags)
 fi
 
 AC_SUBST(EXTRA_CPPFLAGS)
 
 ])dnl
 dnl ---------------------------------------------------------------------------
 fi
 
 AC_SUBST(EXTRA_CPPFLAGS)
 
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_ADD_INCDIR version: 13 updated: 2010/05/26 16:44:57
+dnl CF_ADD_INCDIR version: 14 updated: 2015/05/25 20:53:04
 dnl -------------
 dnl Add an include-directory to $CPPFLAGS.  Don't add /usr/include, since it's
 dnl redundant.  We don't normally need to add -I/usr/local/include for gcc,
 dnl -------------
 dnl Add an include-directory to $CPPFLAGS.  Don't add /usr/include, since it's
 dnl redundant.  We don't normally need to add -I/usr/local/include for gcc,
@@ -290,6 +294,8 @@ if test -n "$1" ; then
                else
                  break
                fi
                else
                  break
                fi
+         else
+               break
          fi
        done
   done
          fi
        done
   done
@@ -388,13 +394,29 @@ ifelse([$5],NONE,,[(test -z "$5" || test x$5 = xNONE || test "x$4" != "x$5") &&]
 }
 ])dnl
 dnl ---------------------------------------------------------------------------
 }
 ])dnl
 dnl ---------------------------------------------------------------------------
+dnl CF_APPEND_TEXT version: 1 updated: 2017/02/25 18:58:55
+dnl --------------
+dnl use this macro for appending text without introducing an extra blank at
+dnl the beginning
+define([CF_APPEND_TEXT],
+[
+       test -n "[$]$1" && $1="[$]$1 "
+       $1="[$]{$1}$2"
+])dnl
+dnl ---------------------------------------------------------------------------
 dnl CF_ARG_DISABLE version: 3 updated: 1999/03/30 17:24:31
 dnl --------------
 dnl Allow user to disable a normally-on option.
 AC_DEFUN([CF_ARG_DISABLE],
 [CF_ARG_OPTION($1,[$2],[$3],[$4],yes)])dnl
 dnl ---------------------------------------------------------------------------
 dnl CF_ARG_DISABLE version: 3 updated: 1999/03/30 17:24:31
 dnl --------------
 dnl Allow user to disable a normally-on option.
 AC_DEFUN([CF_ARG_DISABLE],
 [CF_ARG_OPTION($1,[$2],[$3],[$4],yes)])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_ARG_OPTION version: 4 updated: 2010/05/26 05:38:42
+dnl CF_ARG_ENABLE version: 3 updated: 1999/03/30 17:24:31
+dnl -------------
+dnl Allow user to enable a normally-off option.
+AC_DEFUN([CF_ARG_ENABLE],
+[CF_ARG_OPTION($1,[$2],[$3],[$4],no)])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_ARG_OPTION version: 5 updated: 2015/05/10 19:52:14
 dnl -------------
 dnl Restricted form of AC_ARG_ENABLE that ensures user doesn't give bogus
 dnl values.
 dnl -------------
 dnl Restricted form of AC_ARG_ENABLE that ensures user doesn't give bogus
 dnl values.
@@ -407,25 +429,29 @@ dnl $4 = action if perform if option is default
 dnl $5 = default option value (either 'yes' or 'no')
 AC_DEFUN([CF_ARG_OPTION],
 [AC_ARG_ENABLE([$1],[$2],[test "$enableval" != ifelse([$5],no,yes,no) && enableval=ifelse([$5],no,no,yes)
 dnl $5 = default option value (either 'yes' or 'no')
 AC_DEFUN([CF_ARG_OPTION],
 [AC_ARG_ENABLE([$1],[$2],[test "$enableval" != ifelse([$5],no,yes,no) && enableval=ifelse([$5],no,no,yes)
-  if test "$enableval" != "$5" ; then
+       if test "$enableval" != "$5" ; then
 ifelse([$3],,[    :]dnl
 ,[    $3]) ifelse([$4],,,[
 ifelse([$3],,[    :]dnl
 ,[    $3]) ifelse([$4],,,[
-  else
-    $4])
-  fi],[enableval=$5 ifelse([$4],,,[
-  $4
+       else
+               $4])
+       fi],[enableval=$5 ifelse([$4],,,[
+       $4
 ])dnl
 ])dnl
-  ])])dnl
+])])dnl
 dnl ---------------------------------------------------------------------------
 dnl ---------------------------------------------------------------------------
-dnl CF_AR_FLAGS version: 5 updated: 2010/05/20 20:24:29
+dnl CF_AR_FLAGS version: 6 updated: 2015/10/10 15:25:05
 dnl -----------
 dnl Check for suitable "ar" (archiver) options for updating an archive.
 dnl -----------
 dnl Check for suitable "ar" (archiver) options for updating an archive.
+dnl
+dnl In particular, handle some obsolete cases where the "-" might be omitted,
+dnl as well as a workaround for breakage of make's archive rules by the GNU
+dnl binutils "ar" program.
 AC_DEFUN([CF_AR_FLAGS],[
 AC_REQUIRE([CF_PROG_AR])
 
 AC_CACHE_CHECK(for options to update archives, cf_cv_ar_flags,[
        cf_cv_ar_flags=unknown
 AC_DEFUN([CF_AR_FLAGS],[
 AC_REQUIRE([CF_PROG_AR])
 
 AC_CACHE_CHECK(for options to update archives, cf_cv_ar_flags,[
        cf_cv_ar_flags=unknown
-       for cf_ar_flags in -curv curv -crv crv -cqv cqv -rv rv
+       for cf_ar_flags in -curvU -curv curv -crv crv -cqv cqv -rv rv
        do
 
                # check if $ARFLAGS already contains this choice
        do
 
                # check if $ARFLAGS already contains this choice
@@ -541,7 +567,7 @@ else        AC_MSG_RESULT(no)
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_BOOL_SIZE version: 14 updated: 2015/04/17 21:13:04
+dnl CF_BOOL_SIZE version: 15 updated: 2017/01/21 11:06:25
 dnl ------------
 dnl Test for the size of 'bool' in the configured C++ compiler (e.g., a type).
 dnl Don't bother looking for bool.h, since it's been deprecated.
 dnl ------------
 dnl Test for the size of 'bool' in the configured C++ compiler (e.g., a type).
 dnl Don't bother looking for bool.h, since it's been deprecated.
@@ -575,7 +601,7 @@ AC_CACHE_VAL(cf_cv_type_of_bool,[
 
 #endif
 
 
 #endif
 
-int main()
+int main(void)
 {
        FILE *fp = fopen("cf_test.out", "w");
        if (fp != 0) {
 {
        FILE *fp = fopen("cf_test.out", "w");
        if (fp != 0) {
@@ -701,11 +727,18 @@ AC_SUBST(BUILD_EXEEXT)
 AC_SUBST(BUILD_OBJEXT)
 ])dnl
 dnl ---------------------------------------------------------------------------
 AC_SUBST(BUILD_OBJEXT)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_CC_ENV_FLAGS version: 2 updated: 2015/04/12 15:39:00
+dnl CF_CC_ENV_FLAGS version: 7 updated: 2017/02/25 18:57:40
 dnl ---------------
 dnl Check for user's environment-breakage by stuffing CFLAGS/CPPFLAGS content
 dnl ---------------
 dnl Check for user's environment-breakage by stuffing CFLAGS/CPPFLAGS content
-dnl into CC.  This will not help with broken scripts that wrap the compiler with
-dnl options, but eliminates a more common category of user confusion.
+dnl into CC.  This will not help with broken scripts that wrap the compiler
+dnl with options, but eliminates a more common category of user confusion.
+dnl
+dnl In particular, it addresses the problem of being able to run the C
+dnl preprocessor in a consistent manner.
+dnl
+dnl Caveat: this also disallows blanks in the pathname for the compiler, but
+dnl the nuisance of having inconsistent settings for compiler and preprocessor
+dnl outweighs that limitation.
 AC_DEFUN([CF_CC_ENV_FLAGS],
 [
 # This should have been defined by AC_PROG_CC
 AC_DEFUN([CF_CC_ENV_FLAGS],
 [
 # This should have been defined by AC_PROG_CC
@@ -713,13 +746,27 @@ AC_DEFUN([CF_CC_ENV_FLAGS],
 
 AC_MSG_CHECKING(\$CC variable)
 case "$CC" in
 
 AC_MSG_CHECKING(\$CC variable)
 case "$CC" in
-(*[[\ \        ]]-[[IUD]]*)
+(*[[\ \        ]]-*)
        AC_MSG_RESULT(broken)
        AC_MSG_WARN(your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options)
        # humor him...
        AC_MSG_RESULT(broken)
        AC_MSG_WARN(your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options)
        # humor him...
-       cf_flags=`echo "$CC" | sed -e 's/^[[^   ]]*[[   ]]//'`
-       CC=`echo "$CC" | sed -e 's/[[   ]].*//'`
-       CF_ADD_CFLAGS($cf_flags)
+       cf_prog=`echo "$CC" | sed -e 's/        / /g' -e 's/[[ ]]* / /g' -e 's/[[ ]]*[[ ]]-[[^ ]].*//'`
+       cf_flags=`echo "$CC" | ${AWK:-awk} -v prog="$cf_prog" '{ printf("%s", substr([$]0,1+length(prog))); }'`
+       CC="$cf_prog"
+       for cf_arg in $cf_flags
+       do
+               case "x$cf_arg" in
+               (x-[[IUDfgOW]]*)
+                       CF_ADD_CFLAGS($cf_arg)
+                       ;;
+               (*)
+                       CC="$CC $cf_arg"
+                       ;;
+               esac
+       done
+       CF_VERBOSE(resulting CC: '$CC')
+       CF_VERBOSE(resulting CFLAGS: '$CFLAGS')
+       CF_VERBOSE(resulting CPPFLAGS: '$CPPFLAGS')
        ;;
 (*)
        AC_MSG_RESULT(ok)
        ;;
 (*)
        AC_MSG_RESULT(ok)
@@ -781,7 +828,7 @@ AC_MSG_RESULT($includedir)
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_CGETENT version: 5 updated: 2012/10/06 17:56:13
+dnl CF_CGETENT version: 6 updated: 2017/01/21 11:06:25
 dnl ----------
 dnl Check if the terminal-capability database functions are available.  If not,
 dnl ncurses has a much-reduced version.
 dnl ----------
 dnl Check if the terminal-capability database functions are available.  If not,
 dnl ncurses has a much-reduced version.
@@ -805,6 +852,7 @@ then
        AC_DEFINE(HAVE_BSD_CGETENT,1,[Define to 1 if we have BSD cgetent])
 AC_CACHE_CHECK(if cgetent uses const parameter,cf_cv_cgetent_const,[
 AC_TRY_LINK([
        AC_DEFINE(HAVE_BSD_CGETENT,1,[Define to 1 if we have BSD cgetent])
 AC_CACHE_CHECK(if cgetent uses const parameter,cf_cv_cgetent_const,[
 AC_TRY_LINK([
+#pragma GCC diagnostic error "-Wincompatible-pointer-types-discards-qualifiers"
 #include <stdlib.h>],[
        char temp[128];
        char *buf = temp;
 #include <stdlib.h>],[
        char temp[128];
        char *buf = temp;
@@ -917,7 +965,7 @@ fi
 
 ])dnl
 dnl ---------------------------------------------------------------------------
 
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_CHECK_GPM_WGETCH version: 2 updated: 2010/08/14 18:25:37
+dnl CF_CHECK_GPM_WGETCH version: 3 updated: 2017/01/21 11:06:25
 dnl -------------------
 dnl Check if GPM is already linked with curses.  If so - and if the linkage
 dnl is not "weak" - warn about this because it can create problems linking
 dnl -------------------
 dnl Check if GPM is already linked with curses.  If so - and if the linkage
 dnl is not "weak" - warn about this because it can create problems linking
@@ -931,7 +979,7 @@ if test "$cross_compiling" != yes ; then
 
 cat >conftest.$ac_ext <<CF_EOF
 #include <gpm.h>
 
 cat >conftest.$ac_ext <<CF_EOF
 #include <gpm.h>
-int main()
+int main(void)
 {
        Gpm_Wgetch();
        ${cf_cv_main_return:-return}(0);
 {
        Gpm_Wgetch();
        ${cf_cv_main_return:-return}(0);
@@ -982,15 +1030,24 @@ else
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_CHECK_WCHAR_H version: 1 updated: 2011/10/29 15:01:05
+dnl CF_CHECK_WCHAR_H version: 2 updated: 2017/01/21 11:06:25
 dnl ----------------
 dnl Check if wchar.h can be used, i.e., without defining _XOPEN_SOURCE_EXTENDED
 AC_DEFUN([CF_CHECK_WCHAR_H],[
 dnl ----------------
 dnl Check if wchar.h can be used, i.e., without defining _XOPEN_SOURCE_EXTENDED
 AC_DEFUN([CF_CHECK_WCHAR_H],[
+AC_CHECK_HEADERS( \
+wchar.h \
+wctype.h \
+)
 AC_CACHE_CHECK(if wchar.h can be used as is,cf_cv_wchar_h_okay,[
 AC_TRY_COMPILE(
 [
 #include <stdlib.h>
 AC_CACHE_CHECK(if wchar.h can be used as is,cf_cv_wchar_h_okay,[
 AC_TRY_COMPILE(
 [
 #include <stdlib.h>
+#ifdef HAVE_WCHAR_H
 #include <wchar.h>
 #include <wchar.h>
+#endif
+#ifdef HAVE_WCTYPE_H
+#include <wctype.h>
+#endif
 ],[
        wint_t foo = 0;
        int bar = iswpunct(foo)],
 ],[
        wint_t foo = 0;
        int bar = iswpunct(foo)],
@@ -1003,6 +1060,149 @@ then
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
+dnl CF_CHECK_WCWIDTH_GRAPHICS version: 1 updated: 2015/12/19 17:47:56
+dnl -------------------------
+dnl Most "modern" terminal emulators are based to some degree on VT100, and
+dnl should support line-drawing.  Even with Unicode.  There is a problem.
+dnl
+dnl While most of the VT100 graphics characters were incorporated into Unicode,
+dnl all of those were combined into a page of useful graphics characters.
+dnl
+dnl So far, so good.
+dnl
+dnl However, while they are useful, there are other considerations.  CJK
+dnl is (because of poor device resolution) often rendered as double-width
+dnl characters.  So... for these generally-useful characters, what should
+dnl be the width (to make them consistent with adjacent characters)?
+dnl
+dnl The obvious choice would have been to make this locale-dependent, and use
+dnl wcwidth() to tell applications what the actual width is.  That was too
+dnl obvious.  Instead, we have a slew of "ambiguous-width" characters.
+dnl See for example
+dnl            http://www.unicode.org/reports/tr11/tr11-29.html
+dnl            http://www.cl.cam.ac.uk/~mgk25/ucs/scw-proposal.html
+dnl
+dnl The EastAsianWidth-6.2.0.txt file from the Unicode organization lists
+dnl more than 22,000 characters, with 1281 of those as ambiguous-width.  For
+dnl instance, it lists half (44/96) of the Latin-1 characters as
+dnl ambiguous-width.  Also, all of the box-characters at 0x2500 are ambiguous.
+dnl
+dnl What this means for the implementor is that on some systems wcwidth() can
+dnl give bad advice.  On Solaris, some of the ambiguous widths are returned as
+dnl 1 (the Latin-1 characters), while others are returned as 2 (line-drawing
+dnl characters).  These do not necessarily match the behavior of the terminal
+dnl emulator.  xterm, for instance, does an optional startup check to find if
+dnl this problem (or similar) exists with the system's locale tables, rejecting
+dnl them if they are too unreliable.
+AC_DEFUN([CF_CHECK_WCWIDTH_GRAPHICS],[
+AC_CACHE_CHECK(if wcwidth agrees graphics are single-width, cf_cv_wcwidth_graphics,[
+cat >conftest.in <<CF_EOF
+-      VT100 symbols
+0x250c upper left corner
+0x2514 lower left corner
+0x2510 upper right corner
+0x2518 lower right corner
+0x251c tee pointing left
+0x2524 tee pointing right
+0x2534 tee pointing up
+0x252c tee pointing down
+0x2500 horizontal line
+0x2502 vertical line
+0x253c large plus or crossover
+0x23ba scan line 1
+0x23bd scan line 9
+0x25c6 diamond
+0x2592 checker board (stipple)
+0x00b0 degree symbol
+0x00b1 plus/minus
+0x00b7 bullet
+-      Teletype 5410v1 symbols
+0x2190 arrow pointing left
+0x2192 arrow pointing right
+0x2193 arrow pointing down
+0x2191 arrow pointing up
+0x2592 board of squares
+0x2603 lantern symbol
+0x25ae solid square block
+-      these defaults were invented for ncurses
+0x23bb scan line 3
+0x23bc scan line 7
+0x2264 less-than-or-equal-to
+0x2265 greater-than-or-equal-to
+0x03c0 greek pi
+0x2260 not-equal
+0x00a3 pound-sterling symbol
+-      thick-line-drawing
+0x250f upper left corner
+0x2517 lower left corner
+0x2513 upper right corner
+0x251b lower right corner
+0x2523 tee pointing left
+0x252b tee pointing right
+0x253b tee pointing up
+0x2533 tee pointing down
+0x2501 horizontal line
+0x2503 vertical line
+0x254b large plus or crossover
+-      double-line-drawing
+0x2554 upper left corner
+0x255a lower left corner
+0x2557 upper right corner
+0x255d lower right corner
+0x2563 tee pointing left
+0x2560 tee pointing right
+0x2569 tee pointing up
+0x2566 tee pointing down
+0x2550 horizontal line
+0x2551 vertical line
+0x256c large plus or crossover
+CF_EOF
+AC_TRY_RUN([
+#include <locale.h>
+#include <stdio.h>
+#include <wchar.h>
+
+#define MY_LEN 80
+
+int
+main(void)
+{
+       FILE *fp;
+       int value;
+       char buffer[MY_LEN + 1];
+       char notes[MY_LEN + 1];
+       int totals = 0;
+       int passed = 0;
+
+       if (setlocale(LC_ALL, "en_US.UTF8") ||
+               setlocale(LC_ALL, "en_US.UTF-8") ||
+               setlocale(LC_ALL, "en_US.utf8") ||
+               setlocale(LC_ALL, "en_US.utf-8")) {
+               if ((fp = fopen("conftest.in", "r")) != 0) {
+                       while (fgets(buffer, MY_LEN, fp) != 0) {
+                               if (*buffer == '-') {
+                                       fprintf(stderr, "\t%s", buffer);
+                               } else if (sscanf(buffer, "%x %s", &value, notes) == 2) {
+                                       ++totals;
+                                       if (wcwidth(value) == 1)
+                                               ++passed;
+                                       fprintf(stderr, "%d\t%s", wcwidth(value), buffer);
+                               } else {
+                                       fprintf(stderr, "?\t%s", buffer);
+                               }
+                       }
+               }
+       }
+       fprintf(stderr, "%d/%d passed wcwidth/graphics check\n", passed, totals);
+       return (totals == passed) ? 0 : 1;
+}
+],
+[cf_cv_wcwidth_graphics=yes],
+[cf_cv_wcwidth_graphics=no],
+[cf_cv_wcwidth_graphics=unknown])
+])
+])dnl
+dnl ---------------------------------------------------------------------------
 dnl CF_CLANG_COMPILER version: 2 updated: 2013/11/19 19:23:35
 dnl -----------------
 dnl Check if the given compiler is really clang.  clang's C driver defines
 dnl CF_CLANG_COMPILER version: 2 updated: 2013/11/19 19:23:35
 dnl -----------------
 dnl Check if the given compiler is really clang.  clang's C driver defines
@@ -1036,7 +1236,7 @@ cf_save_CFLAGS="$cf_save_CFLAGS -Qunused-arguments"
 fi
 ])
 dnl ---------------------------------------------------------------------------
 fi
 ])
 dnl ---------------------------------------------------------------------------
-dnl CF_CPP_PARAM_INIT version: 6 updated: 2012/10/06 17:56:13
+dnl CF_CPP_PARAM_INIT version: 7 updated: 2017/01/21 11:06:25
 dnl -----------------
 dnl Check if the C++ compiler accepts duplicate parameter initialization.  This
 dnl is a late feature for the standard and is not in some recent compilers
 dnl -----------------
 dnl Check if the C++ compiler accepts duplicate parameter initialization.  This
 dnl is a late feature for the standard and is not in some recent compilers
@@ -1060,7 +1260,7 @@ TEST::TEST(int x = 1)     // some compilers do not like second initializer
 {
        value = x;
 }
 {
        value = x;
 }
-int main() { }
+int main(void) { }
 ],
        [cf_cv_cpp_param_init=yes],
        [cf_cv_cpp_param_init=no],
 ],
        [cf_cv_cpp_param_init=yes],
        [cf_cv_cpp_param_init=no],
@@ -1367,7 +1567,7 @@ if test "$cf_disable_rpath_hack" = no ; then
 fi
 ])
 dnl ---------------------------------------------------------------------------
 fi
 ])
 dnl ---------------------------------------------------------------------------
-dnl CF_ENABLE_PC_FILES version: 12 updated: 2015/04/17 21:13:04
+dnl CF_ENABLE_PC_FILES version: 13 updated: 2015/11/01 05:27:39
 dnl ------------------
 dnl This is the "--enable-pc-files" option, which is available if there is a
 dnl pkg-config configuration on the local machine.
 dnl ------------------
 dnl This is the "--enable-pc-files" option, which is available if there is a
 dnl pkg-config configuration on the local machine.
@@ -1390,14 +1590,13 @@ AC_MSG_RESULT($enable_pc_files)
 
 if test "x$enable_pc_files" != xno
 then
 
 if test "x$enable_pc_files" != xno
 then
+       MAKE_PC_FILES=
        case "x$PKG_CONFIG_LIBDIR" in
        (xno|xyes)
                AC_MSG_WARN(no PKG_CONFIG_LIBDIR was found)
        case "x$PKG_CONFIG_LIBDIR" in
        (xno|xyes)
                AC_MSG_WARN(no PKG_CONFIG_LIBDIR was found)
-               MAKE_PC_FILES="#"
                ;;
        (*)
                CF_PATH_SYNTAX(PKG_CONFIG_LIBDIR)
                ;;
        (*)
                CF_PATH_SYNTAX(PKG_CONFIG_LIBDIR)
-               MAKE_PC_FILES=
                ;;
        esac
 else
                ;;
        esac
 else
@@ -1420,7 +1619,7 @@ AC_ARG_ENABLE(rpath,
 AC_MSG_RESULT($cf_cv_enable_rpath)
 ])dnl
 dnl ---------------------------------------------------------------------------
 AC_MSG_RESULT($cf_cv_enable_rpath)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_ENABLE_STRING_HACKS version: 3 updated: 2013/01/26 16:26:12
+dnl CF_ENABLE_STRING_HACKS version: 5 updated: 2016/10/08 17:34:11
 dnl ----------------------
 dnl On a few platforms, the compiler and/or loader nags with untruthful
 dnl comments stating that "most" uses of strcat/strcpy/sprintf are incorrect,
 dnl ----------------------
 dnl On a few platforms, the compiler and/or loader nags with untruthful
 dnl comments stating that "most" uses of strcat/strcpy/sprintf are incorrect,
@@ -1447,7 +1646,16 @@ AC_MSG_RESULT($with_string_hacks)
 if test "x$with_string_hacks" = "xyes"; then
        AC_DEFINE(USE_STRING_HACKS,1,[Define to 1 to work around bogus compiler/loader warnings])
        AC_MSG_WARN(enabling string-hacks to work around bogus compiler/loader warnings)
 if test "x$with_string_hacks" = "xyes"; then
        AC_DEFINE(USE_STRING_HACKS,1,[Define to 1 to work around bogus compiler/loader warnings])
        AC_MSG_WARN(enabling string-hacks to work around bogus compiler/loader warnings)
-       AC_CHECK_FUNCS( strlcat strlcpy snprintf )
+       AC_CHECK_FUNC(strlcat,[
+               AC_DEFINE(HAVE_STRLCAT,1,[Define to 1 if we have strlcat function])
+               ],[
+               AC_CHECK_LIB(bsd,strlcat,[
+                       CF_ADD_LIB(bsd)
+                       AC_CHECK_HEADERS(bsd/string.h)
+                       AC_DEFINE(HAVE_STRLCAT,1,[Define to 1 if we have strlcat function])
+                       ])
+               ])
+       AC_CHECK_FUNCS( strlcpy snprintf )
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
@@ -1687,7 +1895,7 @@ unset ac_ct_$1
 unset $1
 ])dnl
 dnl ---------------------------------------------------------------------------
 unset $1
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_FUNC_DLSYM version: 3 updated: 2012/10/06 11:17:15
+dnl CF_FUNC_DLSYM version: 4 updated: 2015/09/12 14:46:44
 dnl -------------
 dnl Test for dlsym() and related functions, as well as libdl.
 dnl
 dnl -------------
 dnl Test for dlsym() and related functions, as well as libdl.
 dnl
@@ -1704,7 +1912,7 @@ AC_CHECK_LIB(dl,dlsym,[
        cf_have_libdl=yes])])
 
 if test "$cf_have_dlsym" = yes ; then
        cf_have_libdl=yes])])
 
 if test "$cf_have_dlsym" = yes ; then
-       test "$cf_have_libdl" = yes && CF_ADD_LIB(dl)
+       test "$cf_have_libdl" = yes && { CF_ADD_LIB(dl) }
 
        AC_MSG_CHECKING(whether able to link to dl*() functions)
        AC_TRY_LINK([#include <dlfcn.h>],[
 
        AC_MSG_CHECKING(whether able to link to dl*() functions)
        AC_TRY_LINK([#include <dlfcn.h>],[
@@ -1722,7 +1930,7 @@ else
 fi
 ])
 dnl ---------------------------------------------------------------------------
 fi
 ])
 dnl ---------------------------------------------------------------------------
-dnl CF_FUNC_MEMMOVE version: 8 updated: 2012/10/04 20:12:20
+dnl CF_FUNC_MEMMOVE version: 9 updated: 2017/01/21 11:06:25
 dnl ---------------
 dnl Check for memmove, or a bcopy that can handle overlapping copy.  If neither
 dnl is found, add our own version of memmove to the list of objects.
 dnl ---------------
 dnl Check for memmove, or a bcopy that can handle overlapping copy.  If neither
 dnl is found, add our own version of memmove to the list of objects.
@@ -1732,7 +1940,7 @@ AC_CHECK_FUNC(memmove,,[
 AC_CHECK_FUNC(bcopy,[
        AC_CACHE_CHECK(if bcopy does overlapping moves,cf_cv_good_bcopy,[
                AC_TRY_RUN([
 AC_CHECK_FUNC(bcopy,[
        AC_CACHE_CHECK(if bcopy does overlapping moves,cf_cv_good_bcopy,[
                AC_TRY_RUN([
-int main() {
+int main(void) {
        static char data[] = "abcdefghijklmnopqrstuwwxyz";
        char temp[40];
        bcopy(data, temp, sizeof(data));
        static char data[] = "abcdefghijklmnopqrstuwwxyz";
        char temp[40];
        bcopy(data, temp, sizeof(data));
@@ -1753,7 +1961,7 @@ int main() {
        fi
 ])])dnl
 dnl ---------------------------------------------------------------------------
        fi
 ])])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_FUNC_NANOSLEEP version: 4 updated: 2012/10/06 17:56:13
+dnl CF_FUNC_NANOSLEEP version: 5 updated: 2017/01/21 11:06:25
 dnl -----------------
 dnl Check for existence of workable nanosleep() function.  Some systems, e.g.,
 dnl AIX 4.x, provide a non-working version.
 dnl -----------------
 dnl Check for existence of workable nanosleep() function.  Some systems, e.g.,
 dnl AIX 4.x, provide a non-working version.
@@ -1768,7 +1976,7 @@ AC_TRY_RUN([
 #include <sys/time.h>
 #endif
 
 #include <sys/time.h>
 #endif
 
-int main() {
+int main(void) {
        struct timespec ts1, ts2;
        int code;
        ts1.tv_sec  = 0;
        struct timespec ts1, ts2;
        int code;
        ts1.tv_sec  = 0;
@@ -1787,7 +1995,7 @@ int main() {
 test "$cf_cv_func_nanosleep" = "yes" && AC_DEFINE(HAVE_NANOSLEEP,1,[Define to 1 if we have nanosleep()])
 ])
 dnl ---------------------------------------------------------------------------
 test "$cf_cv_func_nanosleep" = "yes" && AC_DEFINE(HAVE_NANOSLEEP,1,[Define to 1 if we have nanosleep()])
 ])
 dnl ---------------------------------------------------------------------------
-dnl CF_FUNC_OPENPTY version: 4 updated: 2015/04/18 08:56:57
+dnl CF_FUNC_OPENPTY version: 5 updated: 2015/09/12 14:46:50
 dnl ---------------
 dnl Check for openpty() function, along with <pty.h> header.  It may need the
 dnl "util" library as well.
 dnl ---------------
 dnl Check for openpty() function, along with <pty.h> header.  It may need the
 dnl "util" library as well.
@@ -1796,7 +2004,7 @@ AC_DEFUN([CF_FUNC_OPENPTY],
 AC_CHECK_LIB(util,openpty,cf_cv_lib_util=yes,cf_cv_lib_util=no)
 AC_CACHE_CHECK(for openpty header,cf_cv_func_openpty,[
        cf_save_LIBS="$LIBS"
 AC_CHECK_LIB(util,openpty,cf_cv_lib_util=yes,cf_cv_lib_util=no)
 AC_CACHE_CHECK(for openpty header,cf_cv_func_openpty,[
        cf_save_LIBS="$LIBS"
-       test $cf_cv_lib_util = yes && CF_ADD_LIB(util)
+       test $cf_cv_lib_util = yes && { CF_ADD_LIB(util) }
        for cf_header in pty.h libutil.h util.h
        do
        AC_TRY_LINK([
        for cf_header in pty.h libutil.h util.h
        do
        AC_TRY_LINK([
@@ -1815,11 +2023,12 @@ AC_CACHE_CHECK(for openpty header,cf_cv_func_openpty,[
 ])
 ])dnl
 dnl ---------------------------------------------------------------------------
 ])
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_FUNC_POLL version: 8 updated: 2012/10/04 05:24:07
+dnl CF_FUNC_POLL version: 9 updated: 2015/10/10 13:27:32
 dnl ------------
 dnl See if the poll function really works.  Some platforms have poll(), but
 dnl it does not work for terminals or files.
 AC_DEFUN([CF_FUNC_POLL],[
 dnl ------------
 dnl See if the poll function really works.  Some platforms have poll(), but
 dnl it does not work for terminals or files.
 AC_DEFUN([CF_FUNC_POLL],[
+tty 2>&1 >/dev/null || { AC_CHECK_FUNCS(posix_openpt) }
 AC_CACHE_CHECK(if poll really works,cf_cv_working_poll,[
 AC_TRY_RUN([
 #include <stdlib.h>
 AC_CACHE_CHECK(if poll really works,cf_cv_working_poll,[
 AC_TRY_RUN([
 #include <stdlib.h>
@@ -1831,7 +2040,7 @@ AC_TRY_RUN([
 #else
 #include <sys/poll.h>
 #endif
 #else
 #include <sys/poll.h>
 #endif
-int main() {
+int main(void) {
        struct pollfd myfds;
        int ret;
 
        struct pollfd myfds;
        int ret;
 
@@ -1851,6 +2060,11 @@ int main() {
                if (!isatty(fd)) {
                        fd = open("/dev/tty", 2);       /* O_RDWR */
                }
                if (!isatty(fd)) {
                        fd = open("/dev/tty", 2);       /* O_RDWR */
                }
+#ifdef HAVE_POSIX_OPENPT
+               if (fd < 0) {
+                       fd = posix_openpt(O_RDWR);
+               }
+#endif
 
                if (fd >= 0) {
                        /* also check with standard input */
 
                if (fd >= 0) {
                        /* also check with standard input */
@@ -2485,7 +2699,7 @@ case $cf_gnat_version in
 esac
 ])
 dnl ---------------------------------------------------------------------------
 esac
 ])
 dnl ---------------------------------------------------------------------------
-dnl CF_GNU_SOURCE version: 6 updated: 2005/07/09 13:23:07
+dnl CF_GNU_SOURCE version: 7 updated: 2016/08/05 05:15:37
 dnl -------------
 dnl Check if we must define _GNU_SOURCE to get a reasonable value for
 dnl _XOPEN_SOURCE, upon which many POSIX definitions depend.  This is a defect
 dnl -------------
 dnl Check if we must define _GNU_SOURCE to get a reasonable value for
 dnl _XOPEN_SOURCE, upon which many POSIX definitions depend.  This is a defect
@@ -2512,7 +2726,20 @@ make an error
        CPPFLAGS="$cf_save"
        ])
 ])
        CPPFLAGS="$cf_save"
        ])
 ])
-test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
+
+if test "$cf_cv_gnu_source" = yes
+then
+AC_CACHE_CHECK(if we should also define _DEFAULT_SOURCE,cf_cv_default_source,[
+CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
+       AC_TRY_COMPILE([#include <sys/types.h>],[
+#ifdef _DEFAULT_SOURCE
+make an error
+#endif],
+               [cf_cv_default_source=no],
+               [cf_cv_default_source=yes])
+       ])
+test "$cf_cv_default_source" = yes && CPPFLAGS="$CPPFLAGS -D_DEFAULT_SOURCE"
+fi
 ])dnl
 dnl ---------------------------------------------------------------------------
 dnl CF_GPP_LIBRARY version: 12 updated: 2015/04/17 21:13:04
 ])dnl
 dnl ---------------------------------------------------------------------------
 dnl CF_GPP_LIBRARY version: 12 updated: 2015/04/17 21:13:04
@@ -2559,7 +2786,7 @@ if test "$GXX" = yes; then
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_GXX_VERSION version: 7 updated: 2012/06/16 14:55:39
+dnl CF_GXX_VERSION version: 8 updated: 2017/02/11 14:48:57
 dnl --------------
 dnl Check for version of g++
 AC_DEFUN([CF_GXX_VERSION],[
 dnl --------------
 dnl Check for version of g++
 AC_DEFUN([CF_GXX_VERSION],[
@@ -2568,7 +2795,11 @@ GXX_VERSION=none
 if test "$GXX" = yes; then
        AC_MSG_CHECKING(version of ${CXX:-g++})
        GXX_VERSION="`${CXX:-g++} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
 if test "$GXX" = yes; then
        AC_MSG_CHECKING(version of ${CXX:-g++})
        GXX_VERSION="`${CXX:-g++} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
-       test -z "$GXX_VERSION" && GXX_VERSION=unknown
+       if test -z "$GXX_VERSION"
+       then
+               GXX_VERSION=unknown
+               GXX=no
+       fi
        AC_MSG_RESULT($GXX_VERSION)
 fi
 ])dnl
        AC_MSG_RESULT($GXX_VERSION)
 fi
 ])dnl
@@ -2969,7 +3200,7 @@ AC_MSG_RESULT($cf_cv_have_isascii)
 test "$cf_cv_have_isascii" = yes && AC_DEFINE(HAVE_ISASCII,1,[Define to 1 if we have isascii()])
 ])dnl
 dnl ---------------------------------------------------------------------------
 test "$cf_cv_have_isascii" = yes && AC_DEFINE(HAVE_ISASCII,1,[Define to 1 if we have isascii()])
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_LARGEFILE version: 9 updated: 2015/04/18 08:56:57
+dnl CF_LARGEFILE version: 10 updated: 2017/01/21 11:06:25
 dnl ------------
 dnl Add checks for large file support.
 AC_DEFUN([CF_LARGEFILE],[
 dnl ------------
 dnl Add checks for large file support.
 AC_DEFUN([CF_LARGEFILE],[
@@ -2991,6 +3222,7 @@ ifdef([AC_FUNC_FSEEKO],[
 
        AC_CACHE_CHECK(whether to use struct dirent64, cf_cv_struct_dirent64,[
                AC_TRY_COMPILE([
 
        AC_CACHE_CHECK(whether to use struct dirent64, cf_cv_struct_dirent64,[
                AC_TRY_COMPILE([
+#pragma GCC diagnostic error "-Wincompatible-pointer-types"
 #include <sys/types.h>
 #include <dirent.h>
                ],[
 #include <sys/types.h>
 #include <dirent.h>
                ],[
@@ -3110,7 +3342,7 @@ AC_SUBST(LDFLAGS_STATIC)
 AC_SUBST(LDFLAGS_SHARED)
 ])
 dnl ---------------------------------------------------------------------------
 AC_SUBST(LDFLAGS_SHARED)
 ])
 dnl ---------------------------------------------------------------------------
-dnl CF_LD_RPATH_OPT version: 6 updated: 2015/04/12 15:39:00
+dnl CF_LD_RPATH_OPT version: 7 updated: 2016/02/20 18:01:19
 dnl ---------------
 dnl For the given system and compiler, find the compiler flags to pass to the
 dnl loader to use the "rpath" feature.
 dnl ---------------
 dnl For the given system and compiler, find the compiler flags to pass to the
 dnl loader to use the "rpath" feature.
@@ -3128,13 +3360,13 @@ case $cf_cv_system_name in
                LD_RPATH_OPT="-rpath "
        fi
        ;;
                LD_RPATH_OPT="-rpath "
        fi
        ;;
-(linux*|gnu*|k*bsd*-gnu)
+(linux*|gnu*|k*bsd*-gnu|freebsd*)
        LD_RPATH_OPT="-Wl,-rpath,"
        ;;
 (openbsd[[2-9]].*|mirbsd*)
        LD_RPATH_OPT="-Wl,-rpath,"
        ;;
        LD_RPATH_OPT="-Wl,-rpath,"
        ;;
 (openbsd[[2-9]].*|mirbsd*)
        LD_RPATH_OPT="-Wl,-rpath,"
        ;;
-(dragonfly*|freebsd*)
+(dragonfly*)
        LD_RPATH_OPT="-rpath "
        ;;
 (netbsd*)
        LD_RPATH_OPT="-rpath "
        ;;
 (netbsd*)
@@ -3205,7 +3437,7 @@ fi
 test -z "$cf_cv_libtool_version" && unset cf_cv_libtool_version
 ])dnl
 dnl ---------------------------------------------------------------------------
 test -z "$cf_cv_libtool_version" && unset cf_cv_libtool_version
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_LIB_PREFIX version: 11 updated: 2015/04/18 08:56:57
+dnl CF_LIB_PREFIX version: 12 updated: 2015/10/17 19:03:33
 dnl -------------
 dnl Compute the library-prefix for the given host system
 dnl $1 = variable to set
 dnl -------------
 dnl Compute the library-prefix for the given host system
 dnl $1 = variable to set
@@ -3213,7 +3445,11 @@ define([CF_LIB_PREFIX],
 [
        case $cf_cv_system_name in
        (OS/2*|os2*)
 [
        case $cf_cv_system_name in
        (OS/2*|os2*)
-               LIB_PREFIX=''
+               if test "$DFT_LWR_MODEL" = libtool; then
+                       LIB_PREFIX='lib'
+               else
+                       LIB_PREFIX=''
+               fi
                ;;
        (*)     LIB_PREFIX='lib'
                ;;
                ;;
        (*)     LIB_PREFIX='lib'
                ;;
@@ -3222,7 +3458,7 @@ ifelse($1,,,[$1=$LIB_PREFIX])
        AC_SUBST(LIB_PREFIX)
 ])dnl
 dnl ---------------------------------------------------------------------------
        AC_SUBST(LIB_PREFIX)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_LIB_RULES version: 81 updated: 2015/04/30 20:30:18
+dnl CF_LIB_RULES version: 86 updated: 2015/11/07 20:01:34
 dnl ------------
 dnl Append definitions and rules for the given models to the subdirectory
 dnl Makefiles, and the recursion rule for the top-level Makefile.  If the
 dnl ------------
 dnl Append definitions and rules for the given models to the subdirectory
 dnl Makefiles, and the recursion rule for the top-level Makefile.  If the
@@ -3274,27 +3510,35 @@ do
 
                SHARED_LIB=
                Libs_To_Make=
 
                SHARED_LIB=
                Libs_To_Make=
-
-               cf_sed_options=
+               cf_awk_program=
                if test -n "${cf_cv_abi_version}" && test "x${cf_cv_abi_version}" != "x5"
                then
                if test -n "${cf_cv_abi_version}" && test "x${cf_cv_abi_version}" != "x5"
                then
-                       cf_sed_options="$cf_sed_options -e \"s/NCURSES\\([[WT]]\\+\\)\?_/NCURSES\\1${cf_cv_abi_version}_/g\""
+                       cf_awk_program="$cf_awk_program\
+/deprecated in ABI${cf_cv_abi_version}/ { next; }\
+{ sub(\"NCURSES([[WT]]+)?\", \"&${cf_cv_abi_version}\"); }\
+"
                fi
 
                if test "x$WILDCARD_SYMS" = xno
                then
                fi
 
                if test "x$WILDCARD_SYMS" = xno
                then
-                       cf_sed_options="$cf_sed_options -e \"s/_\*;//g\""
+                       cf_awk_program="$cf_awk_program\
+/[[    ]]_\\*;/ { skip=1; next; }\
+"
                fi
 
                fi
 
-               if test "x$cf_sed_options" != "x"
+               if test "x$cf_awk_program" != "x"
                then
                        cat >>$cf_dir/Makefile <<CF_EOF
 
 # Generated by CF_LIB_RULES
 resulting.map: $UNALTERED_SYMS
                then
                        cat >>$cf_dir/Makefile <<CF_EOF
 
 # Generated by CF_LIB_RULES
 resulting.map: $UNALTERED_SYMS
-       sed $cf_sed_options < $UNALTERED_SYMS >\[$]@
+       $AWK 'BEGIN { skip = 1; last=""; } \
+$cf_awk_program \
+{ if ( last != "" && ( skip == 0 || \[$]\[$]0 !~ /}/ ) ) { print last; }\
+ skip = 0; last = \[$]\[$]0; } \
+END { print last; }' < $UNALTERED_SYMS >\[$]@
 
 
-clean::
+distclean::
        rm -f resulting.map
 CF_EOF
                fi
        rm -f resulting.map
 CF_EOF
                fi
@@ -3693,7 +3937,7 @@ rm -f headers.sed headers.sh
 dnl ( generating this script makes the makefiles a little tidier :-)
 echo creating headers.sh
 cat >headers.sh <<CF_EOF
 dnl ( generating this script makes the makefiles a little tidier :-)
 echo creating headers.sh
 cat >headers.sh <<CF_EOF
-#! /bin/sh
+#! $SHELL
 # This shell script is generated by the 'configure' script.  It is invoked in a
 # subdirectory of the build tree.  It generates a sed-script in the parent
 # directory that is used to adjust includes for header files that reside in a
 # This shell script is generated by the 'configure' script.  It is invoked in a
 # subdirectory of the build tree.  It generates a sed-script in the parent
 # directory that is used to adjust includes for header files that reside in a
@@ -3797,7 +4041,7 @@ done
 AC_SUBST(Libs_To_Make)
 ])dnl
 dnl ---------------------------------------------------------------------------
 AC_SUBST(Libs_To_Make)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_LIB_SONAME version: 5 updated: 2010/08/14 18:25:37
+dnl CF_LIB_SONAME version: 6 updated: 2017/01/21 11:06:25
 dnl -------------
 dnl Find the and soname for the given shared library.  Set the cache variable
 dnl cf_cv_$3_soname to this, unless it is not found.  Then set the cache
 dnl -------------
 dnl Find the and soname for the given shared library.  Set the cache variable
 dnl cf_cv_$3_soname to this, unless it is not found.  Then set the cache
@@ -3814,7 +4058,7 @@ cf_cv_$3_soname=unknown
 if test "$cross_compiling" != yes ; then
 cat >conftest.$ac_ext <<CF_EOF
 $1
 if test "$cross_compiling" != yes ; then
 cat >conftest.$ac_ext <<CF_EOF
 $1
-int main()
+int main(void)
 {
 $2
        ${cf_cv_main_return:-return}(0);
 {
 $2
        ${cf_cv_main_return:-return}(0);
@@ -3918,7 +4162,7 @@ AC_DEFUN([CF_LIB_TYPE],
        test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
 ])dnl
 dnl ---------------------------------------------------------------------------
        test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_LINK_DATAONLY version: 10 updated: 2012/10/06 17:41:51
+dnl CF_LINK_DATAONLY version: 11 updated: 2017/01/21 11:06:25
 dnl ----------------
 dnl Some systems have a non-ANSI linker that doesn't pull in modules that have
 dnl only data (i.e., no functions), for example NeXT.  On those systems we'll
 dnl ----------------
 dnl Some systems have a non-ANSI linker that doesn't pull in modules that have
 dnl only data (i.e., no functions), for example NeXT.  On those systems we'll
@@ -3961,7 +4205,7 @@ EOF
        cf_saveLIBS="$LIBS"
        LIBS="conftest.a $LIBS"
        AC_TRY_RUN([
        cf_saveLIBS="$LIBS"
        LIBS="conftest.a $LIBS"
        AC_TRY_RUN([
-       int main()
+       int main(void)
        {
                extern int testfunc();
                ${cf_cv_main_return:-return} (!testfunc());
        {
                extern int testfunc();
                ${cf_cv_main_return:-return} (!testfunc());
@@ -3981,13 +4225,16 @@ fi
 
 ])dnl
 dnl ---------------------------------------------------------------------------
 
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_LINK_FUNCS version: 8 updated: 2012/10/06 17:56:13
+dnl CF_LINK_FUNCS version: 9 updated: 2017/01/21 11:11:02
 dnl -------------
 dnl Most Unix systems have both link and symlink, a few don't have symlink.
 dnl A few non-Unix systems implement symlink, but not link.
 dnl A few non-systems implement neither (or have nonfunctional versions).
 AC_DEFUN([CF_LINK_FUNCS],
 [
 dnl -------------
 dnl Most Unix systems have both link and symlink, a few don't have symlink.
 dnl A few non-Unix systems implement symlink, but not link.
 dnl A few non-systems implement neither (or have nonfunctional versions).
 AC_DEFUN([CF_LINK_FUNCS],
 [
+AC_CHECK_HEADERS( \
+unistd.h \
+)
 AC_CHECK_FUNCS( \
        remove \
        unlink )
 AC_CHECK_FUNCS( \
        remove \
        unlink )
@@ -4006,7 +4253,7 @@ else
 #ifdef HAVE_UNISTD_H
 #include <unistd.h>
 #endif
 #ifdef HAVE_UNISTD_H
 #include <unistd.h>
 #endif
-int main()
+int main(void)
 {
        int fail = 0;
        char *src = "config.log";
 {
        int fail = 0;
        char *src = "config.log";
@@ -4038,7 +4285,7 @@ int main()
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_MAKEFLAGS version: 16 updated: 2015/04/15 19:08:48
+dnl CF_MAKEFLAGS version: 17 updated: 2015/08/05 20:44:28
 dnl ------------
 dnl Some 'make' programs support ${MAKEFLAGS}, some ${MFLAGS}, to pass 'make'
 dnl options to lower-levels.  It's very useful for "make -n" -- if we have it.
 dnl ------------
 dnl Some 'make' programs support ${MAKEFLAGS}, some ${MFLAGS}, to pass 'make'
 dnl options to lower-levels.  It's very useful for "make -n" -- if we have it.
@@ -4051,7 +4298,7 @@ AC_CACHE_CHECK(for makeflags variable, cf_cv_makeflags,[
        for cf_option in '-${MAKEFLAGS}' '${MFLAGS}'
        do
                cat >cf_makeflags.tmp <<CF_EOF
        for cf_option in '-${MAKEFLAGS}' '${MFLAGS}'
        do
                cat >cf_makeflags.tmp <<CF_EOF
-SHELL = /bin/sh
+SHELL = $SHELL
 all :
        @ echo '.$cf_option'
 CF_EOF
 all :
        @ echo '.$cf_option'
 CF_EOF
@@ -4224,7 +4471,7 @@ if test -n "$cf_unknown" ; then
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_MANPAGE_RENAMES version: 9 updated: 2015/04/18 08:56:57
+dnl CF_MANPAGE_RENAMES version: 10 updated: 2015/08/05 20:44:28
 dnl ------------------
 dnl The Debian people have their own naming convention for manpages.  This
 dnl option lets us override the name of the file containing renaming, or
 dnl ------------------
 dnl The Debian people have their own naming convention for manpages.  This
 dnl option lets us override the name of the file containing renaming, or
@@ -4263,7 +4510,7 @@ if test "$MANPAGE_RENAMES" != no ; then
        # Construct a sed-script to perform renaming within man-pages
        if test -n "$MANPAGE_RENAMES" ; then
                test ! -d man && mkdir man
        # Construct a sed-script to perform renaming within man-pages
        if test -n "$MANPAGE_RENAMES" ; then
                test ! -d man && mkdir man
-               sh $srcdir/man/make_sed.sh $MANPAGE_RENAMES >./edit_man.sed
+               $SHELL $srcdir/man/make_sed.sh $MANPAGE_RENAMES >./edit_man.sed
        fi
 fi
 
        fi
 fi
 
@@ -4333,7 +4580,7 @@ AC_ARG_WITH(manpage-tbl,
 AC_MSG_RESULT($MANPAGE_TBL)
 ])dnl
 dnl ---------------------------------------------------------------------------
 AC_MSG_RESULT($MANPAGE_TBL)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_MAN_PAGES version: 45 updated: 2015/04/18 08:56:57
+dnl CF_MAN_PAGES version: 46 updated: 2015/08/05 20:44:28
 dnl ------------
 dnl Try to determine if the man-pages on the system are compressed, and if
 dnl so, what format is used.  Use this information to construct a script that
 dnl ------------
 dnl Try to determine if the man-pages on the system are compressed, and if
 dnl so, what format is used.  Use this information to construct a script that
@@ -4386,7 +4633,7 @@ cf_edit_man=./edit_man.sh
 cf_man_alias=`pwd`/man_alias.sed
 
 cat >$cf_edit_man <<CF_EOF
 cf_man_alias=`pwd`/man_alias.sed
 
 cat >$cf_edit_man <<CF_EOF
-#! /bin/sh
+#! $SHELL
 # this script is generated by the configure-script CF_MAN_PAGES macro.
 
 prefix="$cf_prefix"
 # this script is generated by the configure-script CF_MAN_PAGES macro.
 
 prefix="$cf_prefix"
@@ -4424,7 +4671,7 @@ shift || exit 1
 if test "\$form" = normal ; then
        if test "$cf_format" = yes ; then
        if test "$cf_inboth" = no ; then
 if test "\$form" = normal ; then
        if test "$cf_format" = yes ; then
        if test "$cf_inboth" = no ; then
-               sh \[$]0 format \$verb \$mandir \$srcdir \[$]*
+               $SHELL \[$]0 format \$verb \$mandir \$srcdir \[$]*
                exit $?
        fi
        fi
                exit $?
        fi
        fi
@@ -4665,7 +4912,7 @@ done
 
 if test $cf_inboth = yes ; then
 if test \$form != format ; then
 
 if test $cf_inboth = yes ; then
 if test \$form != format ; then
-       sh \[$]0 format \$verb \$mandir \$srcdir \[$]*
+       $SHELL \[$]0 format \$verb \$mandir \$srcdir \[$]*
 fi
 fi
 
 fi
 fi
 
@@ -4675,7 +4922,7 @@ chmod 755 $cf_edit_man
 
 ])dnl
 dnl ---------------------------------------------------------------------------
 
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_MATH_LIB version: 8 updated: 2010/05/29 16:31:02
+dnl CF_MATH_LIB version: 9 updated: 2017/01/21 11:06:25
 dnl -----------
 dnl Checks for libraries.  At least one UNIX system, Apple Macintosh
 dnl Rhapsody 5.5, does not have -lm.  We cannot use the simpler
 dnl -----------
 dnl Checks for libraries.  At least one UNIX system, Apple Macintosh
 dnl Rhapsody 5.5, does not have -lm.  We cannot use the simpler
@@ -4686,6 +4933,7 @@ AC_CACHE_CHECK(if -lm needed for math functions,
        cf_cv_need_libm,[
        AC_TRY_LINK([
        #include <stdio.h>
        cf_cv_need_libm,[
        AC_TRY_LINK([
        #include <stdio.h>
+       #include <stdlib.h>
        #include <math.h>
        ],
        [double x = rand(); printf("result = %g\n", ]ifelse([$2],,sin(x),$2)[)],
        #include <math.h>
        ],
        [double x = rand(); printf("result = %g\n", ]ifelse([$2],,sin(x),$2)[)],
@@ -4729,20 +4977,26 @@ fi
 test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES,1,[Define to 1 if filesystem supports mixed-case filenames.])
 ])dnl
 dnl ---------------------------------------------------------------------------
 test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES,1,[Define to 1 if filesystem supports mixed-case filenames.])
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_MKSTEMP version: 9 updated: 2012/10/03 04:34:49
+dnl CF_MKSTEMP version: 10 updated: 2017/01/21 11:12:16
 dnl ----------
 dnl Check for a working mkstemp.  This creates two files, checks that they are
 dnl successfully created and distinct (AmigaOS apparently fails on the last).
 AC_DEFUN([CF_MKSTEMP],[
 dnl ----------
 dnl Check for a working mkstemp.  This creates two files, checks that they are
 dnl successfully created and distinct (AmigaOS apparently fails on the last).
 AC_DEFUN([CF_MKSTEMP],[
+AC_CHECK_HEADERS( \
+unistd.h \
+)
 AC_CACHE_CHECK(for working mkstemp, cf_cv_func_mkstemp,[
 rm -rf conftest*
 AC_TRY_RUN([
 #include <sys/types.h>
 AC_CACHE_CHECK(for working mkstemp, cf_cv_func_mkstemp,[
 rm -rf conftest*
 AC_TRY_RUN([
 #include <sys/types.h>
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
 #include <sys/stat.h>
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
 #include <sys/stat.h>
-int main()
+int main(void)
 {
        char *tmpl = "conftestXXXXXX";
        char name[2][80];
 {
        char *tmpl = "conftestXXXXXX";
        char name[2][80];
@@ -4789,7 +5043,7 @@ AC_DEFUN([CF_MSG_LOG],[
 echo "${as_me:-configure}:__oline__: testing $* ..." 1>&AC_FD_CC
 ])dnl
 dnl ---------------------------------------------------------------------------
 echo "${as_me:-configure}:__oline__: testing $* ..." 1>&AC_FD_CC
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_NCURSES_ABI_6 version: 2 updated: 2015/04/17 21:13:04
+dnl CF_NCURSES_ABI_6 version: 3 updated: 2015/06/06 16:10:11
 dnl ----------------
 dnl Set ncurses' ABI to 6 unless overridden by explicit configure option, and
 dnl warn about this.
 dnl ----------------
 dnl Set ncurses' ABI to 6 unless overridden by explicit configure option, and
 dnl warn about this.
@@ -4799,7 +5053,27 @@ if test "${with_abi_version+set}" != set; then
        (5.*)
                cf_cv_rel_version=6.0
                cf_cv_abi_version=6
        (5.*)
                cf_cv_rel_version=6.0
                cf_cv_abi_version=6
-               AC_MSG_WARN(Overriding ABI version to $cf_cv_abi_version)
+               AC_MSG_WARN(overriding ABI version to $cf_cv_abi_version)
+               ;;
+       esac
+fi
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_NCURSES_WITH_ABI_VERSION version: 2 updated: 2015/12/19 17:51:52
+dnl ---------------------------
+dnl Allow ncurses's ABI to be overridden.  Generally this happens when a
+dnl packager has incremented the ABI past that used in the original package,
+dnl and wishes to keep doing this.
+dnl
+dnl $1 is the package name, if any, to derive a corresponding {package}_ABI
+dnl symbol.
+AC_DEFUN([CF_NCURSES_WITH_ABI_VERSION],[
+CF_WITH_ABI_VERSION($1)
+if test "x$cf_cv_abi_version" != "x$with_abi_version"
+then
+       case $cf_cv_rel_version in
+       (5.*)
+               cf_cv_rel_version=$with_abi_version.0
                ;;
        esac
 fi
                ;;
        esac
 fi
@@ -5121,7 +5395,7 @@ CF_ACVERSION_CHECK(2.52,
 CF_CC_ENV_FLAGS
 ])dnl
 dnl ---------------------------------------------------------------------------
 CF_CC_ENV_FLAGS
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_PROG_CC_C_O version: 3 updated: 2010/08/14 18:25:37
+dnl CF_PROG_CC_C_O version: 5 updated: 2017/01/21 11:06:25
 dnl --------------
 dnl Analogous to AC_PROG_CC_C_O, but more useful: tests only $CC, ensures that
 dnl the output file can be renamed, and allows for a shell variable that can
 dnl --------------
 dnl Analogous to AC_PROG_CC_C_O, but more useful: tests only $CC, ensures that
 dnl the output file can be renamed, and allows for a shell variable that can
@@ -5129,21 +5403,23 @@ dnl be used later.  The parameter is either CC or CXX.  The result is the
 dnl cache variable:
 dnl    $cf_cv_prog_CC_c_o
 dnl    $cf_cv_prog_CXX_c_o
 dnl cache variable:
 dnl    $cf_cv_prog_CC_c_o
 dnl    $cf_cv_prog_CXX_c_o
+dnl
+dnl $1 = compiler
+dnl $2 = compiler options, if any
 AC_DEFUN([CF_PROG_CC_C_O],
 [AC_REQUIRE([AC_PROG_CC])dnl
 AC_MSG_CHECKING([whether [$]$1 understands -c and -o together])
 AC_CACHE_VAL(cf_cv_prog_$1_c_o,
 [
 cat > conftest.$ac_ext <<CF_EOF
 AC_DEFUN([CF_PROG_CC_C_O],
 [AC_REQUIRE([AC_PROG_CC])dnl
 AC_MSG_CHECKING([whether [$]$1 understands -c and -o together])
 AC_CACHE_VAL(cf_cv_prog_$1_c_o,
 [
 cat > conftest.$ac_ext <<CF_EOF
-#include <stdio.h>
-int main()
+int main(void)
 {
        ${cf_cv_main_return:-return}(0);
 }
 CF_EOF
 # We do the test twice because some compilers refuse to overwrite an
 # existing .o file with -o, though they will create one.
 {
        ${cf_cv_main_return:-return}(0);
 }
 CF_EOF
 # We do the test twice because some compilers refuse to overwrite an
 # existing .o file with -o, though they will create one.
-ac_try='[$]$1 -c conftest.$ac_ext -o conftest2.$ac_objext >&AC_FD_CC'
+ac_try='[$]$1 $2 -c conftest.$ac_ext -o conftest2.$ac_objext >&AC_FD_CC'
 if AC_TRY_EVAL(ac_try) &&
   test -f conftest2.$ac_objext && AC_TRY_EVAL(ac_try);
 then
 if AC_TRY_EVAL(ac_try) &&
   test -f conftest2.$ac_objext && AC_TRY_EVAL(ac_try);
 then
@@ -5247,11 +5523,11 @@ fi
 AC_SUBST(LDCONFIG)
 ])dnl
 dnl ---------------------------------------------------------------------------
 AC_SUBST(LDCONFIG)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_PROG_LINT version: 2 updated: 2009/08/12 04:43:14
+dnl CF_PROG_LINT version: 3 updated: 2016/05/22 15:25:54
 dnl ------------
 AC_DEFUN([CF_PROG_LINT],
 [
 dnl ------------
 AC_DEFUN([CF_PROG_LINT],
 [
-AC_CHECK_PROGS(LINT, tdlint lint alint splint lclint)
+AC_CHECK_PROGS(LINT, lint cppcheck splint)
 AC_SUBST(LINT_OPTS)
 ])dnl
 dnl ---------------------------------------------------------------------------
 AC_SUBST(LINT_OPTS)
 ])dnl
 dnl ---------------------------------------------------------------------------
@@ -5504,7 +5780,7 @@ CF_VERBOSE(...checked $1 [$]$1)
 AC_SUBST(EXTRA_LDFLAGS)
 ])dnl
 dnl ---------------------------------------------------------------------------
 AC_SUBST(EXTRA_LDFLAGS)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_SHARED_OPTS version: 87 updated: 2015/04/17 21:13:04
+dnl CF_SHARED_OPTS version: 90 updated: 2017/02/11 14:48:57
 dnl --------------
 dnl --------------
 dnl Attempt to determine the appropriate CC/LD options for creating a shared
 dnl --------------
 dnl --------------
 dnl Attempt to determine the appropriate CC/LD options for creating a shared
@@ -5557,11 +5833,12 @@ AC_DEFUN([CF_SHARED_OPTS],
        (yes)
                cf_cv_shlib_version=auto
                ;;
        (yes)
                cf_cv_shlib_version=auto
                ;;
-       (rel|abi|auto|no)
+       (rel|abi|auto)
                cf_cv_shlib_version=$withval
                ;;
        (*)
                cf_cv_shlib_version=$withval
                ;;
        (*)
-               AC_MSG_ERROR([option value must be one of: rel, abi, auto or no])
+               AC_MSG_RESULT($withval)
+               AC_MSG_ERROR([option value must be one of: rel, abi, or auto])
                ;;
        esac
        ],[cf_cv_shlib_version=auto])
                ;;
        esac
        ],[cf_cv_shlib_version=auto])
@@ -5572,7 +5849,20 @@ AC_DEFUN([CF_SHARED_OPTS],
 
        # Some less-capable ports of gcc support only -fpic
        CC_SHARED_OPTS=
 
        # Some less-capable ports of gcc support only -fpic
        CC_SHARED_OPTS=
+
+       cf_try_fPIC=no
        if test "$GCC" = yes
        if test "$GCC" = yes
+       then
+               cf_try_fPIC=yes
+       else
+               case $cf_cv_system_name in
+               (*linux*)       # e.g., PGI compiler
+                       cf_try_fPIC=yes
+                       ;;
+               esac
+       fi
+
+       if test "$cf_try_fPIC" = yes
        then
                AC_MSG_CHECKING(which $CC option to use)
                cf_save_CFLAGS="$CFLAGS"
        then
                AC_MSG_CHECKING(which $CC option to use)
                cf_save_CFLAGS="$CFLAGS"
@@ -5603,14 +5893,14 @@ AC_DEFUN([CF_SHARED_OPTS],
                ;;
        (cygwin*)
                CC_SHARED_OPTS=
                ;;
        (cygwin*)
                CC_SHARED_OPTS=
-               MK_SHARED_LIB='sh '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
+               MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
                RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
                cf_cv_shlib_version=cygdll
                cf_cv_shlib_version_infix=cygdll
                shlibdir=$bindir
                MAKE_DLLS=
                cat >mk_shared_lib.sh <<-CF_EOF
                RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
                cf_cv_shlib_version=cygdll
                cf_cv_shlib_version_infix=cygdll
                shlibdir=$bindir
                MAKE_DLLS=
                cat >mk_shared_lib.sh <<-CF_EOF
-               #!/bin/sh
+               #!$SHELL
                SHARED_LIB=\[$]1
                IMPORT_LIB=\`echo "\[$]1" | sed -e 's/cyg/lib/' -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
                shift
                SHARED_LIB=\[$]1
                IMPORT_LIB=\`echo "\[$]1" | sed -e 's/cyg/lib/' -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
                shift
@@ -5625,14 +5915,14 @@ CF_EOF
                ;;
        (msys*)
                CC_SHARED_OPTS=
                ;;
        (msys*)
                CC_SHARED_OPTS=
-               MK_SHARED_LIB='sh '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
+               MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
                RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
                cf_cv_shlib_version=msysdll
                cf_cv_shlib_version_infix=msysdll
                shlibdir=$bindir
                MAKE_DLLS=
                cat >mk_shared_lib.sh <<-CF_EOF
                RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
                cf_cv_shlib_version=msysdll
                cf_cv_shlib_version_infix=msysdll
                shlibdir=$bindir
                MAKE_DLLS=
                cat >mk_shared_lib.sh <<-CF_EOF
-               #!/bin/sh
+               #!$SHELL
                SHARED_LIB=\[$]1
                IMPORT_LIB=\`echo "\[$]1" | sed -e 's/msys-/lib/' -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
                shift
                SHARED_LIB=\[$]1
                IMPORT_LIB=\`echo "\[$]1" | sed -e 's/msys-/lib/' -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
                shift
@@ -5726,10 +6016,10 @@ CF_EOF
                        EXTRA_LDFLAGS="-Wl,--enable-auto-import $EXTRA_LDFLAGS"
                fi
                CC_SHARED_OPTS=
                        EXTRA_LDFLAGS="-Wl,--enable-auto-import $EXTRA_LDFLAGS"
                fi
                CC_SHARED_OPTS=
-               MK_SHARED_LIB='sh '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
+               MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
                RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
                cat >mk_shared_lib.sh <<-CF_EOF
                RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
                cat >mk_shared_lib.sh <<-CF_EOF
-               #!/bin/sh
+               #!$SHELL
                SHARED_LIB=\[$]1
                IMPORT_LIB=\`echo "\[$]1" | sed -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
                shift
                SHARED_LIB=\[$]1
                IMPORT_LIB=\`echo "\[$]1" | sed -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
                shift
@@ -6239,33 +6529,55 @@ if test -n "$ADA_SUBDIRS"; then
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_STDCPP_LIBRARY version: 8 updated: 2015/04/17 21:13:04
+dnl CF_STDCPP_LIBRARY version: 11 updated: 2015/10/17 19:03:33
 dnl -----------------
 dnl Check for -lstdc++, which is GNU's standard C++ library.
 dnl -----------------
 dnl Check for -lstdc++, which is GNU's standard C++ library.
+dnl If $CXXLIBS is set, add that to the libraries used for test-linking.
+dnl If -lstdc++ was not already added to $LIBS or $CXXLIBS, and is needed,
+dnl add it to $CXXLIBS.
 AC_DEFUN([CF_STDCPP_LIBRARY],
 [
 if test -n "$GXX" ; then
 AC_DEFUN([CF_STDCPP_LIBRARY],
 [
 if test -n "$GXX" ; then
-case $cf_cv_system_name in
-(os2*)
-       cf_stdcpp_libname=stdcpp
-       ;;
-(*)
-       cf_stdcpp_libname=stdc++
-       ;;
-esac
-AC_CACHE_CHECK(for library $cf_stdcpp_libname,cf_cv_libstdcpp,[
+
        cf_save="$LIBS"
        cf_save="$LIBS"
-       CF_ADD_LIB($cf_stdcpp_libname)
-AC_TRY_LINK([
-#include <strstream.h>],[
-char buf[80];
-strstreambuf foo(buf, sizeof(buf))
-],
-       [cf_cv_libstdcpp=yes],
-       [cf_cv_libstdcpp=no])
+       LIBS="$LIBS $CXXLIBS"
+       AC_MSG_CHECKING(if we already have C++ library)
+       AC_TRY_LINK([
+                       #include <iostream>],[
+                       std::cout << "Hello World!" << std::endl;],
+               [cf_have_libstdcpp=yes],
+               [cf_have_libstdcpp=no])
+       AC_MSG_RESULT($cf_have_libstdcpp)
        LIBS="$cf_save"
        LIBS="$cf_save"
-])
-test "$cf_cv_libstdcpp" = yes && CF_ADD_LIB($cf_stdcpp_libname,CXXLIBS)
+
+       if test $cf_have_libstdcpp != yes
+       then
+               case $cf_cv_system_name in
+               (os2*)
+                       if test -z "`g++ -dM -E - < /dev/null | grep __KLIBC__`"; then
+                               cf_stdcpp_libname=stdcpp
+                       else
+                               cf_stdcpp_libname=stdc++
+                       fi
+                       ;;
+               (*)
+                       cf_stdcpp_libname=stdc++
+                       ;;
+               esac
+
+               AC_CACHE_CHECK(for library $cf_stdcpp_libname,cf_cv_libstdcpp,[
+                       cf_save="$LIBS"
+                       LIBS="$LIBS $CXXLIBS"
+                       CF_ADD_LIB($cf_stdcpp_libname)
+               AC_TRY_LINK([
+                               #include <iostream>],[
+                               std::cout << "Hello World!" << std::endl;],
+                       [cf_cv_libstdcpp=yes],
+                       [cf_cv_libstdcpp=no])
+                       LIBS="$cf_save"
+               ])
+               test "$cf_cv_libstdcpp" = yes && { CF_ADD_LIB($cf_stdcpp_libname,CXXLIBS) }
+       fi
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
@@ -6480,7 +6792,7 @@ if test "$cf_cv_xopen_source" != no ; then
 fi
 ])
 dnl ---------------------------------------------------------------------------
 fi
 ])
 dnl ---------------------------------------------------------------------------
-dnl CF_TYPEOF_CHTYPE version: 9 updated: 2012/10/06 17:56:13
+dnl CF_TYPEOF_CHTYPE version: 10 updated: 2017/01/21 11:06:25
 dnl ----------------
 dnl Determine the type we should use for chtype (and attr_t, which is treated
 dnl as the same thing).  We want around 32 bits, so on most machines want a
 dnl ----------------
 dnl Determine the type we should use for chtype (and attr_t, which is treated
 dnl as the same thing).  We want around 32 bits, so on most machines want a
@@ -6493,7 +6805,7 @@ AC_CACHE_VAL(cf_cv_typeof_chtype,[
                AC_TRY_RUN([
 #define WANT_BITS 31
 #include <stdio.h>
                AC_TRY_RUN([
 #define WANT_BITS 31
 #include <stdio.h>
-int main()
+int main(void)
 {
        FILE *fp = fopen("cf_test.out", "w");
        if (fp != 0) {
 {
        FILE *fp = fopen("cf_test.out", "w");
        if (fp != 0) {
@@ -6800,7 +7112,7 @@ weak_symbol(fopen);
 ])
 ])dnl
 dnl ---------------------------------------------------------------------------
 ])
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_WITH_ABI_VERSION version: 1 updated: 2003/09/20 18:12:49
+dnl CF_WITH_ABI_VERSION version: 3 updated: 2015/06/06 16:10:11
 dnl -------------------
 dnl Allow library's ABI to be overridden.  Generally this happens when a
 dnl packager has incremented the ABI past that used in the original package,
 dnl -------------------
 dnl Allow library's ABI to be overridden.  Generally this happens when a
 dnl packager has incremented the ABI past that used in the original package,
@@ -6811,10 +7123,21 @@ dnl symbol.
 AC_DEFUN([CF_WITH_ABI_VERSION],[
 test -z "$cf_cv_abi_version" && cf_cv_abi_version=0
 AC_ARG_WITH(abi-version,
 AC_DEFUN([CF_WITH_ABI_VERSION],[
 test -z "$cf_cv_abi_version" && cf_cv_abi_version=0
 AC_ARG_WITH(abi-version,
-[  --with-abi-version=XXX  override derived ABI version],
-[AC_MSG_WARN(overriding ABI version $cf_cv_abi_version to $withval)
- cf_cv_abi_version=$withval])
- CF_NUMBER_SYNTAX($cf_cv_abi_version,ABI version)
+[  --with-abi-version=XXX  override derived ABI version],[
+       if test "x$cf_cv_abi_version" != "x$withval"
+       then
+               AC_MSG_WARN(overriding ABI version $cf_cv_abi_version to $withval)
+               case $cf_cv_rel_version in
+               (5.*)
+                       cf_cv_rel_version=$withval.0
+                       ;;
+               (6.*)
+                       cf_cv_rel_version=$withval.9    # FIXME: should be 10 as of 6.0 release
+                       ;;
+               esac
+       fi
+       cf_cv_abi_version=$withval])
+       CF_NUMBER_SYNTAX($cf_cv_abi_version,ABI version)
 ifelse($1,,,[
 $1_ABI=$cf_cv_abi_version
 ])
 ifelse($1,,,[
 $1_ABI=$cf_cv_abi_version
 ])
@@ -6945,7 +7268,7 @@ then
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_WITH_GPM version: 8 updated: 2012/10/06 17:56:13
+dnl CF_WITH_GPM version: 10 updated: 2017/04/29 18:32:18
 dnl -----------
 dnl
 dnl The option parameter (if neither yes/no) is assumed to be the name of
 dnl -----------
 dnl
 dnl The option parameter (if neither yes/no) is assumed to be the name of
@@ -6965,12 +7288,17 @@ if test "$with_gpm" != no ; then
                if test "$with_gpm" != yes && test "$with_gpm" != maybe ; then
                        CF_VERBOSE(assuming we really have GPM library)
                        AC_DEFINE(HAVE_LIBGPM,1,[Define to 1 if we have the gpm library])
                if test "$with_gpm" != yes && test "$with_gpm" != maybe ; then
                        CF_VERBOSE(assuming we really have GPM library)
                        AC_DEFINE(HAVE_LIBGPM,1,[Define to 1 if we have the gpm library])
+                       with_gpm=yes
                else
                else
-                       AC_CHECK_LIB(gpm,Gpm_Open,[:],[
-                               AC_MSG_ERROR(Cannot link with GPM library)
+                       AC_CHECK_LIB(gpm,Gpm_Open,[with_gpm=yes],[
+                               if test "$with_gpm" = maybe; then
+                                       AC_MSG_WARN(Cannot link with GPM library)
+                                       with_gpm=no
+                               else
+                                       AC_MSG_ERROR(Cannot link with GPM library)
+                               fi
+                       ])
                fi
                fi
-               with_gpm=yes
-               ])
        ],[
                test "$with_gpm" != maybe && AC_MSG_WARN(Cannot find GPM header)
                with_gpm=no
        ],[
                test "$with_gpm" != maybe && AC_MSG_WARN(Cannot find GPM header)
                with_gpm=no
@@ -6978,7 +7306,7 @@ if test "$with_gpm" != no ; then
 fi
 ])
 dnl ---------------------------------------------------------------------------
 fi
 ])
 dnl ---------------------------------------------------------------------------
-dnl CF_WITH_LIBTOOL version: 32 updated: 2015/04/17 21:13:04
+dnl CF_WITH_LIBTOOL version: 34 updated: 2016/12/31 12:04:57
 dnl ---------------
 dnl Provide a configure option to incorporate libtool.  Define several useful
 dnl symbols for the makefile rules.
 dnl ---------------
 dnl Provide a configure option to incorporate libtool.  Define several useful
 dnl symbols for the makefile rules.
@@ -7061,7 +7389,7 @@ ifdef([AC_PROG_LIBTOOL],[
                AC_MSG_ERROR(Cannot find libtool)
        fi
 ])dnl
                AC_MSG_ERROR(Cannot find libtool)
        fi
 ])dnl
-       LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${DESTDIR}${libdir} ${LIBTOOL_VERSION} `cut -f1 ${top_srcdir}/VERSION` ${LIBTOOL_OPTS} ${LT_UNDEF} $(LIBS) -o'
+       LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${libdir} ${LIBTOOL_VERSION} `cut -f1 ${top_srcdir}/VERSION` ${LIBTOOL_OPTS} ${LT_UNDEF} $(LIBS) -o'
        LIB_OBJECT='${OBJECTS:.o=.lo}'
        LIB_SUFFIX=.la
        LIB_CLEAN='${LIBTOOL} --mode=clean'
        LIB_OBJECT='${OBJECTS:.o=.lo}'
        LIB_SUFFIX=.la
        LIB_CLEAN='${LIBTOOL} --mode=clean'
@@ -7076,7 +7404,7 @@ ifdef([AC_PROG_LIBTOOL],[
        # special hack to add -no-undefined (which libtool should do for itself)
        LT_UNDEF=
        case "$cf_cv_system_name" in
        # special hack to add -no-undefined (which libtool should do for itself)
        LT_UNDEF=
        case "$cf_cv_system_name" in
-       (cygwin*|msys*|mingw32*|uwin*|aix[[4-7]])
+       (cygwin*|msys*|mingw32*|os2*|uwin*|aix[[4-7]])
                LT_UNDEF=-no-undefined
                ;;
        esac
                LT_UNDEF=-no-undefined
                ;;
        esac
@@ -7241,19 +7569,25 @@ AC_SUBST($3)dnl
 
 ])dnl
 dnl ---------------------------------------------------------------------------
 
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_WITH_PKG_CONFIG_LIBDIR version: 7 updated: 2015/04/26 18:06:58
+dnl CF_WITH_PKG_CONFIG_LIBDIR version: 10 updated: 2015/08/22 17:10:56
 dnl -------------------------
 dnl Allow the choice of the pkg-config library directory to be overridden.
 AC_DEFUN([CF_WITH_PKG_CONFIG_LIBDIR],[
 dnl -------------------------
 dnl Allow the choice of the pkg-config library directory to be overridden.
 AC_DEFUN([CF_WITH_PKG_CONFIG_LIBDIR],[
-AC_MSG_CHECKING(for $PKG_CONFIG library directory)
-if test "x$PKG_CONFIG" = xnone ; then
-       PKG_CONFIG_LIBDIR=none
-else
-       AC_ARG_WITH(pkg-config-libdir,
-               [  --with-pkg-config-libdir=XXX use given directory for installing pc-files],
-               [PKG_CONFIG_LIBDIR=$withval],
-               [PKG_CONFIG_LIBDIR=yes])
-fi
+
+case $PKG_CONFIG in
+(no|none|yes)
+       AC_MSG_CHECKING(for pkg-config library directory)
+       ;;
+(*)
+       AC_MSG_CHECKING(for $PKG_CONFIG library directory)
+       ;;
+esac
+
+PKG_CONFIG_LIBDIR=no
+AC_ARG_WITH(pkg-config-libdir,
+       [  --with-pkg-config-libdir=XXX use given directory for installing pc-files],
+       [PKG_CONFIG_LIBDIR=$withval],
+       [test "x$PKG_CONFIG" != xnone && PKG_CONFIG_LIBDIR=yes])
 
 case x$PKG_CONFIG_LIBDIR in
 (x/*)
 
 case x$PKG_CONFIG_LIBDIR in
 (x/*)
@@ -7309,7 +7643,7 @@ case x$PKG_CONFIG_LIBDIR in
        ;;
 esac
 
        ;;
 esac
 
-if test "x$PKG_CONFIG" != xnone ; then
+if test "x$PKG_CONFIG_LIBDIR" != xno ; then
        AC_MSG_RESULT($PKG_CONFIG_LIBDIR)
 fi
 
        AC_MSG_RESULT($PKG_CONFIG_LIBDIR)
 fi
 
@@ -7441,7 +7775,7 @@ CF_NO_LEAKS_OPTION(valgrind,
        [USE_VALGRIND])
 ])dnl
 dnl ---------------------------------------------------------------------------
        [USE_VALGRIND])
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_WITH_VERSIONED_SYMS version: 5 updated: 2015/04/17 21:13:04
+dnl CF_WITH_VERSIONED_SYMS version: 7 updated: 2015/10/24 20:50:26
 dnl ----------------------
 dnl Use this when building shared library with ELF, to markup symbols with the
 dnl version identifier from the given input file.  Generally that identifier is
 dnl ----------------------
 dnl Use this when building shared library with ELF, to markup symbols with the
 dnl version identifier from the given input file.  Generally that identifier is
@@ -7555,8 +7889,8 @@ EOF
                # compile source, make library
                if make -f conftest.mk 2>&AC_FD_CC >/dev/null
                then
                # compile source, make library
                if make -f conftest.mk 2>&AC_FD_CC >/dev/null
                then
-                       # test for missing symbol
-                       cf_missing=`nm -P conftest.so 2>&AC_FD_CC |fgrep _ismissing | egrep '[[         ]]T[[   ]]'`
+                       # test for missing symbol in either Data or Text section
+                       cf_missing=`nm -P conftest.so 2>&AC_FD_CC |fgrep _ismissing | egrep '[[         ]][[DT]][[      ]]'`
                        test -n "$cf_missing" && WILDCARD_SYMS=yes
                fi
                AC_MSG_RESULT($WILDCARD_SYMS)
                        test -n "$cf_missing" && WILDCARD_SYMS=yes
                fi
                AC_MSG_RESULT($WILDCARD_SYMS)
@@ -7568,7 +7902,7 @@ AC_SUBST(VERSIONED_SYMS)
 AC_SUBST(WILDCARD_SYMS)
 ])dnl
 dnl ---------------------------------------------------------------------------
 AC_SUBST(WILDCARD_SYMS)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_XOPEN_SOURCE version: 49 updated: 2015/04/12 15:39:00
+dnl CF_XOPEN_SOURCE version: 52 updated: 2016/08/27 12:21:42
 dnl ---------------
 dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
 dnl or adapt to the vendor's definitions to get equivalent functionality,
 dnl ---------------
 dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
 dnl or adapt to the vendor's definitions to get equivalent functionality,
@@ -7588,7 +7922,7 @@ case $host_os in
 (aix[[4-7]]*)
        cf_xopen_source="-D_ALL_SOURCE"
        ;;
 (aix[[4-7]]*)
        cf_xopen_source="-D_ALL_SOURCE"
        ;;
-(cygwin|msys)
+(msys)
        cf_XOPEN_SOURCE=600
        ;;
 (darwin[[0-8]].*)
        cf_XOPEN_SOURCE=600
        ;;
 (darwin[[0-8]].*)
@@ -7616,7 +7950,7 @@ case $host_os in
        cf_xopen_source="-D_SGI_SOURCE"
        cf_XOPEN_SOURCE=
        ;;
        cf_xopen_source="-D_SGI_SOURCE"
        cf_XOPEN_SOURCE=
        ;;
-(linux*|gnu*|mint*|k*bsd*-gnu)
+(linux*|uclinux*|gnu*|mint*|k*bsd*-gnu|cygwin)
        CF_GNU_SOURCE
        ;;
 (minix*)
        CF_GNU_SOURCE
        ;;
 (minix*)