]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - configure.in
ncurses 6.1 - patch 20181125
[ncurses.git] / configure.in
index 8016c3ac7b524e4747627a25b8978d2ac469bd1b..b2a55082be132fad024c432133c53eb2695d8010 100644 (file)
@@ -1,5 +1,5 @@
 dnl***************************************************************************
 dnl***************************************************************************
-dnl Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+dnl Copyright (c) 1998-2017,2018 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,45 +28,51 @@ dnl***************************************************************************
 dnl
 dnl Author: Thomas E. Dickey 1995-on
 dnl
 dnl
 dnl Author: Thomas E. Dickey 1995-on
 dnl
-dnl $Id: configure.in,v 1.393 2007/02/03 19:26:12 tom Exp $
+dnl $Id: configure.in,v 1.672 2018/11/24 22:37:01 tom Exp $
 dnl Process this file with autoconf to produce a configure script.
 dnl
 dnl Process this file with autoconf to produce a configure script.
 dnl
-dnl See http://invisible-island.net/autoconf/ for additional information.
+dnl See https://invisible-island.net/autoconf/ for additional information.
 dnl
 dnl ---------------------------------------------------------------------------
 dnl
 dnl ---------------------------------------------------------------------------
-AC_PREREQ(2.13.20020210)
-AC_REVISION($Revision: 1.393 $)
+AC_PREREQ(2.52.20170501)
+AC_REVISION($Revision: 1.672 $)
 AC_INIT(ncurses/base/lib_initscr.c)
 AC_CONFIG_HEADER(include/ncurses_cfg.h:include/ncurses_cfg.hin)
 
 CF_TOP_BUILDDIR
 CF_SUBST_NCURSES_VERSION
 AC_INIT(ncurses/base/lib_initscr.c)
 AC_CONFIG_HEADER(include/ncurses_cfg.h:include/ncurses_cfg.hin)
 
 CF_TOP_BUILDDIR
 CF_SUBST_NCURSES_VERSION
+CF_VERSION_INFO(NCURSES,ncurses)
 
 CF_WITH_REL_VERSION(NCURSES)
 
 CF_WITH_REL_VERSION(NCURSES)
-CF_WITH_ABI_VERSION
+CF_NCURSES_WITH_ABI_VERSION
 
 
-CF_CHECK_CACHE([AC_CANONICAL_SYSTEM])
-AC_ARG_WITH(system-type,
-[  --with-system-type=XXX  test: override derived host system-type],
-[AC_MSG_WARN(overriding system type to $withval)
- cf_cv_system_name=$withval])
+CF_WITH_SYSTYPE
 
 ###    Save the given $CFLAGS to allow user-override.
 cf_user_CFLAGS="$CFLAGS"
 
 ###    Default install-location
 CF_CFG_DEFAULTS
 
 ###    Save the given $CFLAGS to allow user-override.
 cf_user_CFLAGS="$CFLAGS"
 
 ###    Default install-location
 CF_CFG_DEFAULTS
+### Defaults for ncurses ABI
+CF_ABI_DEFAULTS
 
 ###    Checks for programs.
 
 ###    Checks for programs.
-AC_PROG_CC
-CF_GCC_VERSION
+AC_ARG_WITH(ada,
+       [  --without-ada           suppress check for Ada95, don't build demo],
+       [cf_with_ada=$withval],
+       [cf_with_ada=yes])
+
+if test "x$cf_with_ada" = xyes
+then
+       cf_prog_cc="gnatgcc gcc cc"
+else
+       cf_prog_cc="gcc cc"
+fi
+CF_PROG_CC($cf_prog_cc)
 
 AC_PROG_CPP
 AC_PROG_GCC_TRADITIONAL
 
 AC_PROG_CPP
 AC_PROG_GCC_TRADITIONAL
-CF_PROG_CC_C_O(CC)
-AC_ISC_POSIX
-CF_ANSI_CC_REQD
-CF_PROG_EXT
+CF_PROG_CC_C_O(CC,[$CFLAGS $CPPFLAGS])
 CF_PROG_LDCONFIG
 
 dnl DEFECT in autoconf 2.12:   an attempt to set policy, this breaks the
 CF_PROG_LDCONFIG
 
 dnl DEFECT in autoconf 2.12:   an attempt to set policy, this breaks the
@@ -89,19 +95,52 @@ else
                cf_with_cxx=no; CXX=""; GXX="";])dnl
        AC_PROG_CXX
        popdef([AC_MSG_ERROR])dnl
                cf_with_cxx=no; CXX=""; GXX="";])dnl
        AC_PROG_CXX
        popdef([AC_MSG_ERROR])dnl
-       # autoconf 2.5x removed the error - by hardcoding it to g++.
+
+       AC_LANG_PUSH(C++)
+       if test "x$cf_with_cxx" != xno
+       then
+               # Several of the C++ configurations do not work, particularly when
+               # cross-compiling (20140913 -TD)
+               AC_MSG_CHECKING(if $CXX works)
+
+               save_CPPFLAGS="$CPPFLAGS"
+               eval cf_includedir=${includedir}
+               CPPFLAGS="$CPPFLAGS -I${cf_includedir}"
+               AC_TRY_COMPILE([
+#include <stdlib.h>
+#include <stdio.h>
+],
+               [
+               printf("Hello world!\n")
+               ],
+               [cf_cxx_works=yes],
+               [cf_cxx_works=no])
+               CPPFLAGS="$save_CPPFLAGS"
+
+               AC_MSG_RESULT($cf_cxx_works)
+               if test "x$cf_cxx_works" = xno
+               then
+                       AC_MSG_WARN([Ignore $CXX, since it cannot compile hello-world.])
+                       cf_with_cxx=no; CXX=""; GXX="";
+               fi
+       fi
+       AC_LANG_POP
+
+       # autoconf 2.5x removed the error (hardcoding it to g++, or just blank)
        if test "$CXX" = "g++" ; then
                AC_PATH_PROG(CXX,g++)
        fi
        if test "$CXX" = "g++" ; then
                AC_PATH_PROG(CXX,g++)
        fi
-       if test "$CXX" = "g++" ; then
-               AC_MSG_WARN(ignoring hardcoded g++)
+       case "x$CXX" in
+       (x|xg++)
+               AC_MSG_WARN([You don't have any C++ compiler, too bad])
                cf_with_cxx=no; CXX=""; GXX="";
                cf_with_cxx=no; CXX=""; GXX="";
-       fi
+               ;;
+       esac
 fi
 
 CF_GXX_VERSION
 case $GXX_VERSION in
 fi
 
 CF_GXX_VERSION
 case $GXX_VERSION in
-1*|2.[[0-6]]*)
+(1*|2.[[0-6]]*)
        # GXX=""; CXX=""; ac_cv_prog_gxx=no
        # cf_cxx_library=no
        AC_MSG_WARN(templates do not work)
        # GXX=""; CXX=""; ac_cv_prog_gxx=no
        # cf_cxx_library=no
        AC_MSG_WARN(templates do not work)
@@ -116,19 +155,52 @@ AC_ARG_WITH(cxx-binding,
 AC_MSG_RESULT($cf_with_cxx_binding)
 
 AC_MSG_CHECKING(if you want to build with Ada95)
 AC_MSG_RESULT($cf_with_cxx_binding)
 
 AC_MSG_CHECKING(if you want to build with Ada95)
-AC_ARG_WITH(ada,
-       [  --without-ada           suppress check for Ada95, don't build demo],
-       [cf_with_ada=$withval],
-       [cf_with_ada=yes])
 AC_MSG_RESULT($cf_with_ada)
 
 AC_MSG_RESULT($cf_with_ada)
 
+AC_MSG_CHECKING(if you want to install terminal database)
+AC_ARG_ENABLE(db-install,
+       [  --disable-db-install    suppress install of terminal database],
+       [cf_with_db_install=$enableval],
+       [cf_with_db_install=yes])
+AC_MSG_RESULT($cf_with_db_install)
+
+AC_MSG_CHECKING(if you want to install manpages)
+AC_ARG_WITH(manpages,
+       [  --without-manpages      suppress install of manpages],
+       [cf_with_manpages=$withval],
+       [cf_with_manpages=yes])
+AC_MSG_RESULT($cf_with_manpages)
+
 AC_MSG_CHECKING(if you want to build programs such as tic)
 AC_ARG_WITH(progs,
 AC_MSG_CHECKING(if you want to build programs such as tic)
 AC_ARG_WITH(progs,
-       [  --without-progs         suppress build with programs (e.g., tic)],
+       [  --without-progs         suppress build/install with programs (e.g., tic)],
        [cf_with_progs=$withval],
        [cf_with_progs=yes])
 AC_MSG_RESULT($cf_with_progs)
 
        [cf_with_progs=$withval],
        [cf_with_progs=yes])
 AC_MSG_RESULT($cf_with_progs)
 
+if test -f $srcdir/tack/tack.h; then
+       if test "x$cross_compiling" = xyes ; then
+               CF_VERBOSE(ignoring tack because we are cross-compiling)
+               cf_with_tack=no
+       else
+               AC_MSG_CHECKING(if you want to build the tack program)
+               AC_ARG_WITH(tack,
+                       [  --without-tack          suppress build/install with tack program],
+                       [cf_with_tack=$withval],
+                       [cf_with_tack=$cf_with_progs])
+               AC_MSG_RESULT($cf_with_tack)
+       fi
+else
+       cf_with_tack=no
+fi
+
+AC_MSG_CHECKING(if you want to build test-programs)
+AC_ARG_WITH(tests,
+       [  --without-tests         suppress build/install with test-programs],
+       [cf_with_tests=$withval],
+       [cf_with_tests=yes])
+AC_MSG_RESULT($cf_with_tests)
+
 AC_MSG_CHECKING(if you wish to install curses.h)
 AC_ARG_WITH(curses-h,
        [  --without-curses-h      install curses.h as ncurses.h only],
 AC_MSG_CHECKING(if you wish to install curses.h)
 AC_ARG_WITH(curses-h,
        [  --without-curses-h      install curses.h as ncurses.h only],
@@ -137,9 +209,8 @@ AC_ARG_WITH(curses-h,
 AC_MSG_RESULT($with_curses_h)
 
 modules_to_build="ncurses"
 AC_MSG_RESULT($with_curses_h)
 
 modules_to_build="ncurses"
-if test "X$cf_with_progs" != Xno ; then
-modules_to_build="$modules_to_build progs tack"
-fi
+test "X$cf_with_progs" != Xno && modules_to_build="$modules_to_build progs"
+test "X$cf_with_tack"  != Xno && modules_to_build="$modules_to_build tack"
 modules_to_build="$modules_to_build panel menu form"
 
 AC_ARG_PROGRAM
 modules_to_build="$modules_to_build panel menu form"
 
 AC_ARG_PROGRAM
@@ -148,20 +219,72 @@ CF_PROG_AWK
 CF_PROG_EGREP
 CF_PROG_INSTALL
 CF_PROG_LINT
 CF_PROG_EGREP
 CF_PROG_INSTALL
 CF_PROG_LINT
-AC_PROG_LN_S
+CF_PROG_LN_S
+
+AC_SYS_LONG_FILE_NAMES
 
 
+# Provide for renaming "ncurses5-config" to "ncurses5X-config", etc., in case
+# of package conflict.
+cf_config_suffix=
+AC_ARG_WITH(config-suffix,
+       [  --with-config-suffix=X  suffixes ncursesXX-config file],
+       [case "x$withval" in
+       (xyes|xno)
+               AC_MSG_WARN(expected a value for config-suffix option)
+               ;;
+       (*)     cf_config_suffix="$withval"
+               ;;
+       esac])
+AC_SUBST(cf_config_suffix)
+
+# If we find pkg-config, check if we should install the ".pc" files.
+CF_PKG_CONFIG
+CF_WITH_PKG_CONFIG_LIBDIR
+CF_ENABLE_PC_FILES
+if test -z "$MAKE_PC_FILES"
+then
+       AC_MSG_CHECKING(for suffix to add to pc-files)
+AC_ARG_WITH(pc-suffix,
+       [  --with-pc-suffix        suffixes pc-files],
+       [case "x$withval" in
+       (xyes|xno)
+               PC_MODULE_SUFFIX=
+               ;;
+       (*)     PC_MODULE_SUFFIX="$withval"
+               ;;
+       esac])
+       test -z "$PC_MODULE_SUFFIX" && PC_MODULE_SUFFIX=none
+       AC_MSG_RESULT($PC_MODULE_SUFFIX)
+       test "$PC_MODULE_SUFFIX" = none && PC_MODULE_SUFFIX=
+       AC_SUBST(PC_MODULE_SUFFIX)
+fi
+
+AC_MSG_CHECKING(if we should assume mixed-case filenames)
+AC_ARG_ENABLE(mixed-case,
+       [  --enable-mixed-case     tic should assume mixed-case filenames],
+       [enable_mixedcase=$enableval],
+       [enable_mixedcase=auto])
+AC_MSG_RESULT($enable_mixedcase)
+if test "$enable_mixedcase" = "auto" ; then
+       CF_MIXEDCASE_FILENAMES
+else
+       cf_cv_mixedcase=$enable_mixedcase
+       if test "x$enable_mixedcase" = "xyes" ; then
+               AC_DEFINE(MIXEDCASE_FILENAMES,1,[Define to 1 if tic should assume mixed-case filenames])
+       fi
+fi
+
+# do this after mixed-case option (tags/TAGS is not as important as tic).
 AC_PROG_MAKE_SET
 CF_MAKE_TAGS
 CF_MAKEFLAGS
 
 AC_PROG_MAKE_SET
 CF_MAKE_TAGS
 CF_MAKEFLAGS
 
-AC_SYS_LONG_FILE_NAMES
-CF_MIXEDCASE_FILENAMES
-
 dnl These are standard among *NIX systems, but not when cross-compiling
 AC_CHECK_TOOL(RANLIB, ranlib, ':')
 AC_CHECK_TOOL(LD, ld, ld)
 AC_CHECK_TOOL(AR, ar, ar)
 dnl These are standard among *NIX systems, but not when cross-compiling
 AC_CHECK_TOOL(RANLIB, ranlib, ':')
 AC_CHECK_TOOL(LD, ld, ld)
 AC_CHECK_TOOL(AR, ar, ar)
-CF_SUBST(archiver options,AR_OPTS,rv)
+AC_CHECK_TOOL(NM, nm, nm)
+CF_AR_FLAGS
 
 dnl Special option for use by system-builders: the install-prefix is used to
 dnl adjust the location into which the actual install is done, so that an
 
 dnl Special option for use by system-builders: the install-prefix is used to
 dnl adjust the location into which the actual install is done, so that an
@@ -169,10 +292,10 @@ dnl archive can be built without modifying the host system's configuration.
 AC_MSG_CHECKING(if you have specified an install-prefix)
 AC_ARG_WITH(install-prefix,
        [  --with-install-prefix   prefixes actual install-location ($DESTDIR)],
 AC_MSG_CHECKING(if you have specified an install-prefix)
 AC_ARG_WITH(install-prefix,
        [  --with-install-prefix   prefixes actual install-location ($DESTDIR)],
-       [case "$withval" in #(vi
-       yes|no) #(vi
+       [case "x$withval" in
+       (xyes|xno)
                ;;
                ;;
-       *)      DESTDIR="$withval"
+       (*)     DESTDIR="$withval"
                ;;
        esac])
 AC_MSG_RESULT($DESTDIR)
                ;;
        esac])
 AC_MSG_RESULT($DESTDIR)
@@ -207,7 +330,7 @@ AC_ARG_WITH(shared,
        [with_shared=$withval],
        [with_shared=no])
 AC_MSG_RESULT($with_shared)
        [with_shared=$withval],
        [with_shared=no])
 AC_MSG_RESULT($with_shared)
-test "$with_shared" = "yes" && cf_list_models="$cf_list_models shared"
+test "x$with_shared" = "xyes" && cf_list_models="$cf_list_models shared"
 
 AC_MSG_CHECKING(if you want to build static libraries)
 AC_ARG_WITH(normal,
 
 AC_MSG_CHECKING(if you want to build static libraries)
 AC_ARG_WITH(normal,
@@ -215,7 +338,7 @@ AC_ARG_WITH(normal,
        [with_normal=$withval],
        [with_normal=yes])
 AC_MSG_RESULT($with_normal)
        [with_normal=$withval],
        [with_normal=yes])
 AC_MSG_RESULT($with_normal)
-test "$with_normal" = "yes" && cf_list_models="$cf_list_models normal"
+test "x$with_normal" = "xyes" && cf_list_models="$cf_list_models normal"
 
 AC_MSG_CHECKING(if you want to build debug libraries)
 AC_ARG_WITH(debug,
 
 AC_MSG_CHECKING(if you want to build debug libraries)
 AC_ARG_WITH(debug,
@@ -223,7 +346,7 @@ AC_ARG_WITH(debug,
        [with_debug=$withval],
        [with_debug=yes])
 AC_MSG_RESULT($with_debug)
        [with_debug=$withval],
        [with_debug=yes])
 AC_MSG_RESULT($with_debug)
-test "$with_debug" = "yes" && cf_list_models="$cf_list_models debug"
+test "x$with_debug" = "xyes" && cf_list_models="$cf_list_models debug"
 
 AC_MSG_CHECKING(if you want to build profiling libraries)
 AC_ARG_WITH(profile,
 
 AC_MSG_CHECKING(if you want to build profiling libraries)
 AC_ARG_WITH(profile,
@@ -231,8 +354,19 @@ AC_ARG_WITH(profile,
        [with_profile=$withval],
        [with_profile=no])
 AC_MSG_RESULT($with_profile)
        [with_profile=$withval],
        [with_profile=no])
 AC_MSG_RESULT($with_profile)
-test "$with_profile" = "yes" && cf_list_models="$cf_list_models profile"
+test "x$with_profile" = "xyes" && cf_list_models="$cf_list_models profile"
+
+fi
 
 
+if test "X$cf_with_cxx_binding" != Xno; then
+if test "x$with_shared" = "xyes"; then
+AC_MSG_CHECKING(if you want to build C++ shared libraries)
+AC_ARG_WITH(cxx-shared,
+       [  --with-cxx-shared       generate C++ shared-libraries],
+       [with_shared_cxx=$withval],
+       [with_shared_cxx=no])
+AC_MSG_RESULT($with_shared_cxx)
+fi
 fi
 
 ###############################################################################
 fi
 
 ###############################################################################
@@ -267,12 +401,11 @@ AC_SUBST(LIB_NAME)
 LIB_DIR=../lib
 LIB_2ND=../../lib
 
 LIB_DIR=../lib
 LIB_2ND=../../lib
 
-CF_LIB_PREFIX(cf_prefix)
-LIB_PREFIX=$cf_prefix
-AC_SUBST(LIB_PREFIX)
+CF_WITH_LIB_PREFIX(cf_prefix)
 
 LIB_SUFFIX=
 AC_SUBST(LIB_SUFFIX)
 
 LIB_SUFFIX=
 AC_SUBST(LIB_SUFFIX)
+CF_PATHSEP
 
 ###############################################################################
 
 
 ###############################################################################
 
@@ -290,89 +423,147 @@ AC_ARG_WITH(ticlib,
        [with_ticlib=no])
 AC_MSG_RESULT($with_ticlib)
 
        [with_ticlib=no])
 AC_MSG_RESULT($with_ticlib)
 
-### Checks for special libraries, must be done up-front.
-SHLIB_LIST=""
-CF_WITH_GPM
-if test "$with_gpm" != no ; then
-       AC_MSG_CHECKING(if you want to load GPM dynamically)
-       AC_ARG_WITH(dlsym,
-               [  --without-dlsym         do not use dlsym() to load GPM dynamically],
-               [with_dlsym=$withval],
-               [with_dlsym=yes])
-       AC_MSG_RESULT($with_dlsym)
-       if test "$with_dlsym" = yes ; then
-               CF_FUNC_DLSYM
-               if test "$with_gpm" != yes ; then
-                       CF_VERBOSE(assuming soname for gpm is $with_gpm)
-                       cf_cv_gpm_soname="$with_gpm"
-               else
-                       CF_LIB_SONAME([#include <gpm.h>],[if (Gpm_Open(0,0)) Gpm_Close();],gpm)
-               fi
-               test "$cf_cv_gpm_soname" != "unknown" && AC_DEFINE_UNQUOTED(LIBGPM_SONAME,"$cf_cv_gpm_soname")
-               SHLIB_LIST="-ldl $SHLIB_LIST"
-       else
-               SHLIB_LIST="-lgpm $SHLIB_LIST"
-       fi
-       AC_DEFINE(HAVE_LIBGPM)
-       AC_CHECK_LIB(gpm,Gpm_Wgetch,[
-               AC_MSG_WARN(GPM library is already linked with curses - read the FAQ)
-       ])
-fi
-
-CF_WITH_SYSMOUSE
-
 dnl Not all ports of gcc support the -g option
 
 if test X"$CC_G_OPT" = X"" ; then
        CC_G_OPT='-g'
 dnl Not all ports of gcc support the -g option
 
 if test X"$CC_G_OPT" = X"" ; then
        CC_G_OPT='-g'
-       test -n "$GCC" && test "${ac_cv_prog_cc_g}" != yes && CC_G_OPT=''
+       test -n "$GCC" && test "x${ac_cv_prog_cc_g}" != xyes && CC_G_OPT=''
 fi
 AC_SUBST(CC_G_OPT)
 
 if test X"$CXX_G_OPT" = X"" ; then
        CXX_G_OPT='-g'
 fi
 AC_SUBST(CC_G_OPT)
 
 if test X"$CXX_G_OPT" = X"" ; then
        CXX_G_OPT='-g'
-       test -n "$GXX" && test "${ac_cv_prog_cxx_g}" != yes && CXX_G_OPT=''
+       test -n "$GXX" && test "x${ac_cv_prog_cxx_g}" != xyes && CXX_G_OPT=''
 fi
 AC_SUBST(CXX_G_OPT)
 
 AC_MSG_CHECKING(for default loader flags)
 case $DFT_LWR_MODEL in
 fi
 AC_SUBST(CXX_G_OPT)
 
 AC_MSG_CHECKING(for default loader flags)
 case $DFT_LWR_MODEL in
-libtool) LD_MODEL=''   ;;
-normal)  LD_MODEL=''   ;;
-debug)   LD_MODEL=$CC_G_OPT ;;
-profile) LD_MODEL='-pg';;
-shared)  LD_MODEL=''   ;;
+(libtool) LD_MODEL=''   ;;
+(normal)  LD_MODEL=''   ;;
+(debug)   LD_MODEL=$CC_G_OPT ;;
+(profile) LD_MODEL='-pg';;
+(shared)  LD_MODEL=''   ;;
 esac
 AC_SUBST(LD_MODEL)dnl          the type of link (e.g., -g or -pg)
 AC_MSG_RESULT($LD_MODEL)
 
 case $DFT_LWR_MODEL in
 esac
 AC_SUBST(LD_MODEL)dnl          the type of link (e.g., -g or -pg)
 AC_MSG_RESULT($LD_MODEL)
 
 case $DFT_LWR_MODEL in
-shared)
-AC_MSG_CHECKING(if rpath option should be used)
-AC_ARG_ENABLE(rpath,
-[  --enable-rpath          use rpath option when generating shared libraries],
-[cf_cv_ld_rpath=$enableval],
-[cf_cv_ld_rpath=no])
-AC_MSG_RESULT($cf_cv_ld_rpath)
+(shared)
+CF_ENABLE_RPATH
+AC_MSG_CHECKING(if shared libraries should be relinked during install)
+AC_ARG_ENABLE(relink,
+[  --disable-relink        relink shared libraries during install],
+[cf_cv_do_relink=$enableval],
+[cf_cv_do_relink=yes])
+AC_MSG_RESULT($cf_cv_do_relink)
        ;;
 esac
 
        ;;
 esac
 
+# we will build libraries one-level down.
+rel_builddir=..
 CF_SHARED_OPTS
 CF_SHARED_OPTS
-if test "$CC_SHARED_OPTS" = "unknown"; then
-       for model in $cf_list_models; do
-               if test "$model" = "shared"; then
+for model in $cf_list_models; do
+       case $model in
+       (libtool)
+               CF_WITH_LIBTOOL_OPTS
+               CF_WITH_EXPORT_SYMS
+               ;;
+       (shared)
+               if test "$CC_SHARED_OPTS" = "unknown"; then
                        AC_ERROR(Shared libraries are not supported in this version)
                fi
                        AC_ERROR(Shared libraries are not supported in this version)
                fi
-       done
+               # workaround for inept transition to PIE vs PIC...
+               AC_MSG_CHECKING(if current CFLAGS link properly)
+               AC_TRY_LINK(
+                       [#include <stdio.h>],
+                       [printf("Hello work\n");],
+                       [cf_cflags_work=yes],
+                       [cf_cflags_work=no])
+               AC_MSG_RESULT($cf_cflags_work)
+               if test "$cf_cflags_work" = no
+               then
+                       CF_VERBOSE(try to work around by appending shared-options)
+                       CFLAGS="$CFLAGS $CC_SHARED_OPTS"
+               fi
+               CF_WITH_VERSIONED_SYMS
+               ;;
+       esac
+done
+
+### Checks for special libraries, must be done up-front.
+SHLIB_LIST=""
+CF_WITH_GPM
+if test "$with_gpm" != no ; then
+       AC_MSG_CHECKING(if you want to load GPM dynamically)
+       AC_ARG_WITH(dlsym,
+               [  --without-dlsym         do not use dlsym() to load GPM dynamically],
+               [with_dlsym=$withval],
+               [with_dlsym=yes])
+       AC_MSG_RESULT($with_dlsym)
+       if test "x$with_dlsym" = xyes ; then
+               CF_FUNC_DLSYM
+               if test "x$with_gpm" != xyes ; then
+                       CF_VERBOSE(assuming soname for gpm is $with_gpm)
+                       cf_cv_gpm_soname="$with_gpm"
+               else
+                       CF_LIB_SONAME([#include <gpm.h>],[if (Gpm_Open(0,0)) Gpm_Close();],gpm)
+               fi
+               test "$cf_cv_gpm_soname" != "unknown" && AC_DEFINE_UNQUOTED(LIBGPM_SONAME,"$cf_cv_gpm_soname",[Define as needed to set the gpm share library soname])
+               SHLIB_LIST="-ldl $SHLIB_LIST"
+               CF_ADD_LIB(dl,PRIVATE_LIBS)
+       else
+               SHLIB_LIST="-lgpm $SHLIB_LIST"
+               CF_ADD_LIB(gpm,TEST_LIBS)
+               CF_ADD_LIB(gpm,PRIVATE_LIBS)
+       fi
+       AC_DEFINE(HAVE_LIBGPM,1,[Define to 1 if we have the gpm library])
+       CF_CHECK_GPM_WGETCH
+fi
+
+CF_WITH_PCRE2
+CF_WITH_SYSMOUSE
+
+# pretend that ncurses==ncursesw==ncursest
+AC_MSG_CHECKING(if you want to disable library suffixes)
+CF_ARG_DISABLE(lib-suffixes,
+       [  --disable-lib-suffixes  disable library suffixes],
+       [disable_lib_suffixes=yes],
+       [disable_lib_suffixes=no],
+       no)
+AC_MSG_RESULT($disable_lib_suffixes)
+
+### If we're building with rpath, try to link non-standard libs that way too.
+if test "$DFT_LWR_MODEL" = "shared" && test "x$cf_cv_enable_rpath" != xno; then
+       CF_DISABLE_RPATH_HACK
 fi
 
 ###############################################################################
 CF_HELP_MESSAGE(Fine-Tuning Your Configuration:)
 
 fi
 
 ###############################################################################
 CF_HELP_MESSAGE(Fine-Tuning Your Configuration:)
 
+###    use option --with-extra-suffix to append suffix to headers and libraries
+AC_MSG_CHECKING(if you wish to append extra suffix to header/library paths)
+EXTRA_SUFFIX=
+AC_ARG_WITH(extra-suffix,
+       [  --with-extra-suffix=X   append extra suffix to header/library paths],
+       [case x$withval in
+       (no)
+               ;;
+       (xyes|x)
+               EXTRA_SUFFIX=$cf_cv_abi_version
+               ;;
+       (*)
+               EXTRA_SUFFIX=$withval
+               ;;
+       esac
+       ])
+AC_MSG_RESULT($EXTRA_SUFFIX)
+AC_SUBST(EXTRA_SUFFIX)
+
 ###    use option --disable-overwrite to leave out the link to -lcurses
 AC_MSG_CHECKING(if you wish to install ncurses overwriting curses)
 AC_ARG_ENABLE(overwrite,
 ###    use option --disable-overwrite to leave out the link to -lcurses
 AC_MSG_CHECKING(if you wish to install ncurses overwriting curses)
 AC_ARG_ENABLE(overwrite,
-       [  --disable-overwrite     leave out the link to -lcurses],
+       [  --disable-overwrite     put headers in subdir, omit link to -lcurses],
        [with_overwrite=$enableval],
        [if test "$prefix" = "/usr" ; then with_overwrite=yes; else with_overwrite=no; fi])
 AC_MSG_RESULT($with_overwrite)
        [with_overwrite=$enableval],
        [if test "$prefix" = "/usr" ; then with_overwrite=yes; else with_overwrite=no; fi])
 AC_MSG_RESULT($with_overwrite)
@@ -384,22 +575,22 @@ AC_ARG_ENABLE(database,
        [use_database=yes])
 AC_MSG_RESULT($use_database)
 
        [use_database=yes])
 AC_MSG_RESULT($use_database)
 
-case $host_os in #(vi
-os2*) #(vi
+case $host_os in
+(os2*)
        TERMINFO_SRC='${top_srcdir}/misc/emx.src'
        ;;
        TERMINFO_SRC='${top_srcdir}/misc/emx.src'
        ;;
-*) #(vi
+(*)
        TERMINFO_SRC='${top_srcdir}/misc/terminfo.src'
        ;;
 esac
 AC_SUBST(TERMINFO_SRC)
 
        TERMINFO_SRC='${top_srcdir}/misc/terminfo.src'
        ;;
 esac
 AC_SUBST(TERMINFO_SRC)
 
-CF_PATHSEP
+NCURSES_USE_DATABASE=0
 if test "$use_database" != no ; then
 if test "$use_database" != no ; then
-       AC_DEFINE(USE_DATABASE)
+       NCURSES_USE_DATABASE=1
 
        AC_MSG_CHECKING(which terminfo source-file will be installed)
 
        AC_MSG_CHECKING(which terminfo source-file will be installed)
-       AC_ARG_ENABLE(database,
+       AC_ARG_WITH(database,
                [  --with-database=XXX     specify terminfo source to install],
                [TERMINFO_SRC=$withval])
        AC_MSG_RESULT($TERMINFO_SRC)
                [  --with-database=XXX     specify terminfo source to install],
                [TERMINFO_SRC=$withval])
        AC_MSG_RESULT($TERMINFO_SRC)
@@ -409,7 +600,10 @@ if test "$use_database" != no ; then
                [  --with-hashed-db        specify hashed-database library],,
                [with_hashed_db=no])
        AC_MSG_RESULT($with_hashed_db)
                [  --with-hashed-db        specify hashed-database library],,
                [with_hashed_db=no])
        AC_MSG_RESULT($with_hashed_db)
+else
+       with_hashed_db=no
 fi
 fi
+AC_SUBST(NCURSES_USE_DATABASE)
 
 AC_MSG_CHECKING(for list of fallback descriptions)
 AC_ARG_WITH(fallbacks,
 
 AC_MSG_CHECKING(for list of fallback descriptions)
 AC_ARG_WITH(fallbacks,
@@ -417,8 +611,23 @@ AC_ARG_WITH(fallbacks,
        [with_fallback=$withval],
        [with_fallback=])
 AC_MSG_RESULT($with_fallback)
        [with_fallback=$withval],
        [with_fallback=])
 AC_MSG_RESULT($with_fallback)
-FALLBACK_LIST=`echo "$with_fallback" | sed -e 's/,/ /g'`
+
+case ".$with_fallback" in
+(.|.no)
+       FALLBACK_LIST=
+       ;;
+(.yes)
+       AC_MSG_WARN(expected a list of terminal descriptions)
+       ;;
+(*)
+       FALLBACK_LIST=`echo "$with_fallback" | sed -e 's/,/ /g'`
+       ;;
+esac
+
+USE_FALLBACKS=
+test -z "$FALLBACK_LIST" && USE_FALLBACKS="#"
 AC_SUBST(FALLBACK_LIST)
 AC_SUBST(FALLBACK_LIST)
+AC_SUBST(USE_FALLBACKS)
 
 AC_MSG_CHECKING(if you want modern xterm or antique)
 AC_ARG_WITH(xterm-new,
 
 AC_MSG_CHECKING(if you want modern xterm or antique)
 AC_ARG_WITH(xterm-new,
@@ -426,13 +635,33 @@ AC_ARG_WITH(xterm-new,
        [with_xterm_new=$withval],
        [with_xterm_new=yes])
 case $with_xterm_new in
        [with_xterm_new=$withval],
        [with_xterm_new=yes])
 case $with_xterm_new in
-no)    with_xterm_new=xterm-old;;
-*)     with_xterm_new=xterm-new;;
+(no) with_xterm_new=xterm-old;;
+(*)     with_xterm_new=xterm-new;;
 esac
 AC_MSG_RESULT($with_xterm_new)
 WHICH_XTERM=$with_xterm_new
 AC_SUBST(WHICH_XTERM)
 
 esac
 AC_MSG_RESULT($with_xterm_new)
 WHICH_XTERM=$with_xterm_new
 AC_SUBST(WHICH_XTERM)
 
+AC_MSG_CHECKING(if xterm backspace sends BS or DEL)
+AC_ARG_WITH(xterm-kbs,
+       [  --with-xterm-kbs=XXX    specify if xterm backspace sends BS or DEL],
+       [with_xterm_kbs=$withval],
+       [with_xterm_kbs=BS])
+case x$with_xterm_kbs in
+(xyes|xno|xBS|xbs|x8)
+       with_xterm_kbs=BS
+       ;;
+(xDEL|xdel|x127)
+       with_xterm_kbs=DEL
+       ;;
+(*)
+       with_xterm_kbs=$withval
+       ;;
+esac
+AC_MSG_RESULT($with_xterm_kbs)
+XTERM_KBS=$with_xterm_kbs
+AC_SUBST(XTERM_KBS)
+
 MAKE_TERMINFO=
 if test "$use_database" = no ; then
        TERMINFO="${datadir}/terminfo"
 MAKE_TERMINFO=
 if test "$use_database" = no ; then
        TERMINFO="${datadir}/terminfo"
@@ -446,7 +675,14 @@ CF_WITH_PATHLIST(terminfo-dirs,
        DATADIR/terminfo,
        ${datadir}/terminfo)
 AC_MSG_RESULT($TERMINFO_DIRS)
        DATADIR/terminfo,
        ${datadir}/terminfo)
 AC_MSG_RESULT($TERMINFO_DIRS)
-test -n "$TERMINFO_DIRS" && AC_DEFINE_UNQUOTED(TERMINFO_DIRS,"$TERMINFO_DIRS")
+test -n "$TERMINFO_DIRS" && AC_DEFINE_UNQUOTED(TERMINFO_DIRS,"$TERMINFO_DIRS",[Define as needed to predefine the TERMINFO_DIR searchlist])
+
+case "x$TERMINFO" in
+x???:*)
+       AC_MSG_WARN(ignoring non-directory/file TERMINFO value)
+       unset TERMINFO
+       ;;
+esac
 
 AC_MSG_CHECKING(for default terminfo directory)
 CF_WITH_PATH(default-terminfo-dir,
 
 AC_MSG_CHECKING(for default terminfo directory)
 CF_WITH_PATH(default-terminfo-dir,
@@ -455,7 +691,7 @@ CF_WITH_PATH(default-terminfo-dir,
        DATADIR/terminfo,
        ${datadir}/terminfo)
 AC_MSG_RESULT($TERMINFO)
        DATADIR/terminfo,
        ${datadir}/terminfo)
 AC_MSG_RESULT($TERMINFO)
-AC_DEFINE_UNQUOTED(TERMINFO,"$TERMINFO")
+AC_DEFINE_UNQUOTED(TERMINFO,"$TERMINFO",[Define to set the default terminal database path])
 
 fi
 
 
 fi
 
@@ -482,7 +718,21 @@ int main() {
        [with_big_core=no],
        [with_big_core=no])])
 AC_MSG_RESULT($with_big_core)
        [with_big_core=no],
        [with_big_core=no])])
 AC_MSG_RESULT($with_big_core)
-test "$with_big_core" = "yes" && AC_DEFINE(HAVE_BIG_CORE)
+test "x$with_big_core" = "xyes" && AC_DEFINE(HAVE_BIG_CORE,1,[Define to 1 if machine has ample memory for tic])
+
+### ISO C only guarantees 512-char strings, we have tables which load faster
+### when constructed using "big" strings.  More than the C compiler, the awk
+### program is a limit on most vendor UNIX systems.  Check that we can build.
+AC_MSG_CHECKING(if big-strings option selected)
+AC_ARG_ENABLE(big-strings,
+       [  --disable-big-strings   assume compiler has only standard-size strings],
+       [with_big_strings=$enableval],
+       [CF_AWK_BIG_PRINTF(12000,with_big_strings)])
+AC_MSG_RESULT($with_big_strings)
+
+USE_BIG_STRINGS=0
+test "x$with_big_strings" = "xyes" && USE_BIG_STRINGS=1
+AC_SUBST(USE_BIG_STRINGS)
 
 ###    use option --enable-termcap to compile in the termcap fallback support
 AC_MSG_CHECKING(if you want termcap-fallback support)
 
 ###    use option --enable-termcap to compile in the termcap fallback support
 AC_MSG_CHECKING(if you want termcap-fallback support)
@@ -492,46 +742,48 @@ AC_ARG_ENABLE(termcap,
        [with_termcap=no])
 AC_MSG_RESULT($with_termcap)
 
        [with_termcap=no])
 AC_MSG_RESULT($with_termcap)
 
-if test "$with_termcap" != "yes" ; then
+NCURSES_USE_TERMCAP=0
+if test "x$with_termcap" != "xyes" ; then
        if test "$use_database" = no ; then
                if test -z "$with_fallback" ; then
                        AC_ERROR(You have disabled the database w/o specifying fallbacks)
                fi
        fi
        if test "$use_database" = no ; then
                if test -z "$with_fallback" ; then
                        AC_ERROR(You have disabled the database w/o specifying fallbacks)
                fi
        fi
-       AC_DEFINE(PURE_TERMINFO)
+       AC_DEFINE(PURE_TERMINFO,1,[Define to 1 if we should support only terminfo])
 else
 
 else
 
-if test "$with_ticlib" != no ; then
-       AC_ERROR(Options --with-ticlib and --enable-termcap cannot be combined)
-fi
-
-AC_DEFINE(USE_TERMCAP)
-AC_MSG_CHECKING(for list of termcap files)
-CF_WITH_PATHLIST(termpath,
-       [  --with-termpath=XXX     specify list of termcap files],
-       TERMPATH,
-       /etc/termcap:/usr/share/misc/termcap)
-AC_MSG_RESULT($TERMPATH)
-test -n "$TERMPATH" && AC_DEFINE_UNQUOTED(TERMPATH,"$TERMPATH")
-
-###    use option --enable-getcap to use a hacked getcap for reading termcaps
-AC_MSG_CHECKING(if fast termcap-loader is needed)
-AC_ARG_ENABLE(getcap,
-       [  --enable-getcap         fast termcap load, no xrefs to terminfo],
-       [with_getcap=$enableval],
-       [with_getcap=no])
-AC_MSG_RESULT($with_getcap)
-test "$with_getcap" = "yes" && AC_DEFINE(USE_GETCAP)
+       if test "$with_ticlib" != no ; then
+               AC_ERROR(Options --with-ticlib and --enable-termcap cannot be combined)
+       fi
 
 
-AC_MSG_CHECKING(if translated termcaps will be cached in ~/.terminfo)
-AC_ARG_ENABLE(getcap-cache,
-       [  --enable-getcap-cache   cache translated termcaps in ~/.terminfo],
-       [with_getcap_cache=$enableval],
-       [with_getcap_cache=no])
-AC_MSG_RESULT($with_getcap_cache)
-test "$with_getcap_cache" = "yes" && AC_DEFINE(USE_GETCAP_CACHE)
+       NCURSES_USE_TERMCAP=1
+       AC_MSG_CHECKING(for list of termcap files)
+       CF_WITH_PATHLIST(termpath,
+               [  --with-termpath=XXX     specify list of termcap files],
+               TERMPATH,
+               /etc/termcap:/usr/share/misc/termcap)
+       AC_MSG_RESULT($TERMPATH)
+       test -n "$TERMPATH" && AC_DEFINE_UNQUOTED(TERMPATH,"$TERMPATH",[Define to set the termcap searchlist])
+
+       ###     use option --enable-getcap to use a hacked getcap for reading termcaps
+       AC_MSG_CHECKING(if fast termcap-loader is needed)
+       AC_ARG_ENABLE(getcap,
+               [  --enable-getcap         fast termcap load, no xrefs to terminfo],
+               [with_getcap=$enableval],
+               [with_getcap=no])
+       AC_MSG_RESULT($with_getcap)
+       test "x$with_getcap" = "xyes" && AC_DEFINE(USE_GETCAP,1,[Define to 1 to use fast termcap-loader])
+
+       AC_MSG_CHECKING(if translated termcaps will be cached in ~/.terminfo)
+       AC_ARG_ENABLE(getcap-cache,
+               [  --enable-getcap-cache   cache translated termcaps in ~/.terminfo],
+               [with_getcap_cache=$enableval],
+               [with_getcap_cache=no])
+       AC_MSG_RESULT($with_getcap_cache)
+       test "x$with_getcap_cache" = "xyes" && AC_DEFINE(USE_GETCAP_CACHE,1,[Define to 1 if translated termcap should be stored in $HOME/.terminfo])
 
 fi
 
 fi
+AC_SUBST(NCURSES_USE_TERMCAP)
 
 ###   Use option --disable-home-terminfo to completely remove ~/.terminfo
 AC_MSG_CHECKING(if ~/.terminfo is wanted)
 
 ###   Use option --disable-home-terminfo to completely remove ~/.terminfo
 AC_MSG_CHECKING(if ~/.terminfo is wanted)
@@ -540,7 +792,7 @@ AC_ARG_ENABLE(home-terminfo,
        [with_home_terminfo=$enableval],
        [with_home_terminfo=yes])
 AC_MSG_RESULT($with_home_terminfo)
        [with_home_terminfo=$enableval],
        [with_home_terminfo=yes])
 AC_MSG_RESULT($with_home_terminfo)
-test "$with_home_terminfo" = "yes" && AC_DEFINE(USE_HOME_TERMINFO)
+test "x$with_home_terminfo" = "xyes" && AC_DEFINE(USE_HOME_TERMINFO,1,[Define to 1 if $HOME/.terminfo feature is wanted])
 
 AC_MSG_CHECKING(if you want to use restricted environment when running as root)
 AC_ARG_ENABLE(root-environ,
 
 AC_MSG_CHECKING(if you want to use restricted environment when running as root)
 AC_ARG_ENABLE(root-environ,
@@ -548,7 +800,7 @@ AC_ARG_ENABLE(root-environ,
        [with_root_environ=$enableval],
        [with_root_environ=yes])
 AC_MSG_RESULT($with_root_environ)
        [with_root_environ=$enableval],
        [with_root_environ=yes])
 AC_MSG_RESULT($with_root_environ)
-test "$with_root_environ" = yes && AC_DEFINE(USE_ROOT_ENVIRON)
+test "x$with_root_environ" = xyes && AC_DEFINE(USE_ROOT_ENVIRON,1,[Define to 1 if environment should be restricted for root user])
 
 ###   Use option --enable-symlinks to make tic use symlinks, not hard links
 ###   to reduce storage requirements for the terminfo database.
 
 ###   Use option --enable-symlinks to make tic use symlinks, not hard links
 ###   to reduce storage requirements for the terminfo database.
@@ -559,46 +811,46 @@ with_symlinks=no
 
 # soft links (symbolic links) are useful for some systems where hard links do
 # not work, or to make it simpler to copy terminfo trees around.
 
 # soft links (symbolic links) are useful for some systems where hard links do
 # not work, or to make it simpler to copy terminfo trees around.
-if test "$ac_cv_func_symlink" = yes ; then
-    AC_MSG_CHECKING(if tic should use symbolic links)
-    AC_ARG_ENABLE(symlinks,
+if test "x$ac_cv_func_symlink" = xyes ; then
+       AC_MSG_CHECKING(if tic should use symbolic links)
+       AC_ARG_ENABLE(symlinks,
        [  --enable-symlinks       make tic use symbolic links not hard links],
        [with_symlinks=$enableval],
        [with_symlinks=no])
        [  --enable-symlinks       make tic use symbolic links not hard links],
        [with_symlinks=$enableval],
        [with_symlinks=no])
-    AC_MSG_RESULT($with_symlinks)
+       AC_MSG_RESULT($with_symlinks)
 fi
 
 # If we have hard links and did not choose to use soft links instead, there is
 # no reason to make this choice optional - use the hard links.
 if test "$with_symlinks" = no ; then
 fi
 
 # If we have hard links and did not choose to use soft links instead, there is
 # no reason to make this choice optional - use the hard links.
 if test "$with_symlinks" = no ; then
-    AC_MSG_CHECKING(if tic should use hard links)
-    if test "$ac_cv_func_link" = yes ; then
-       with_links=yes
-    else
-       with_links=no
-    fi
-    AC_MSG_RESULT($with_links)
+       AC_MSG_CHECKING(if tic should use hard links)
+       if test "x$ac_cv_func_link" = xyes ; then
+               with_links=yes
+       else
+               with_links=no
+       fi
+       AC_MSG_RESULT($with_links)
 fi
 
 fi
 
-test "$with_links" = yes && AC_DEFINE(USE_LINKS)
-test "$with_symlinks" = yes && AC_DEFINE(USE_SYMLINKS)
+test "x$with_links" = xyes && AC_DEFINE(USE_LINKS,1,[Define to 1 if hardlinks should be used in terminfo database])
+test "x$with_symlinks" = xyes && AC_DEFINE(USE_SYMLINKS,1,[Define to 1 if symbolic links should be used in terminfo database])
 
 ###   use option --enable-broken-linker to force on use of broken-linker support
 AC_MSG_CHECKING(if you want broken-linker support code)
 AC_ARG_ENABLE(broken_linker,
        [  --enable-broken_linker  compile with broken-linker support code],
        [with_broken_linker=$enableval],
 
 ###   use option --enable-broken-linker to force on use of broken-linker support
 AC_MSG_CHECKING(if you want broken-linker support code)
 AC_ARG_ENABLE(broken_linker,
        [  --enable-broken_linker  compile with broken-linker support code],
        [with_broken_linker=$enableval],
-       [with_broken_linker=${BROKEN_LINKER-no}])
+       [with_broken_linker=${BROKEN_LINKER:-no}])
 AC_MSG_RESULT($with_broken_linker)
 
 BROKEN_LINKER=0
 AC_MSG_RESULT($with_broken_linker)
 
 BROKEN_LINKER=0
-if test "$with_broken_linker" = yes ; then
-       AC_DEFINE(BROKEN_LINKER)
+if test "x$with_broken_linker" = xyes ; then
+       AC_DEFINE(BROKEN_LINKER,1,[Define to 1 to work around linkers which cannot link data-only modules])
        BROKEN_LINKER=1
 elif test "$DFT_LWR_MODEL" = shared ; then
        BROKEN_LINKER=1
 elif test "$DFT_LWR_MODEL" = shared ; then
-       case $cf_cv_system_name in #(vi
-       cygwin*)
-               AC_DEFINE(BROKEN_LINKER)
+       case $cf_cv_system_name in
+       (cygwin*)
+               AC_DEFINE(BROKEN_LINKER,1,[Define to 1 to work around linkers which cannot link data-only modules])
                BROKEN_LINKER=1
                CF_VERBOSE(cygwin linker is broken anyway)
                ;;
                BROKEN_LINKER=1
                CF_VERBOSE(cygwin linker is broken anyway)
                ;;
@@ -613,7 +865,7 @@ AC_ARG_ENABLE(bsdpad,
        [with_bsdpad=$enableval],
        [with_bsdpad=no])
 AC_MSG_RESULT($with_bsdpad)
        [with_bsdpad=$enableval],
        [with_bsdpad=no])
 AC_MSG_RESULT($with_bsdpad)
-test "$with_bsdpad" = yes && AC_DEFINE(BSD_TPUTS)
+test "x$with_bsdpad" = xyes && AC_DEFINE(BSD_TPUTS,1,[Define to 1 to recognize BSD-style prefix padding])
 
 ###   use option --enable-widec to turn on use of wide-character support
 NCURSES_CH_T=chtype
 
 ###   use option --enable-widec to turn on use of wide-character support
 NCURSES_CH_T=chtype
@@ -625,7 +877,9 @@ NCURSES_WCHAR_T=0
 NCURSES_WINT_T=0
 
 # Check to define _XOPEN_SOURCE "automatically"
 NCURSES_WINT_T=0
 
 # Check to define _XOPEN_SOURCE "automatically"
-CF_XOPEN_SOURCE
+CPPFLAGS_before_XOPEN="$CPPFLAGS"
+CF_XOPEN_SOURCE(600)
+CPPFLAGS_after_XOPEN="$CPPFLAGS"
 
 # Work around breakage on OS X
 CF_SIGWINCH
 
 # Work around breakage on OS X
 CF_SIGWINCH
@@ -643,16 +897,27 @@ AC_ARG_ENABLE(widec,
        [with_widec=$enableval],
        [with_widec=no])
 AC_MSG_RESULT($with_widec)
        [with_widec=$enableval],
        [with_widec=no])
 AC_MSG_RESULT($with_widec)
-if test "$with_widec" = yes ; then
-       LIB_SUFFIX="w${LIB_SUFFIX}"
-       AC_DEFINE(USE_WIDEC_SUPPORT)
-       CF_PREDEFINE(_XOPEN_SOURCE_EXTENDED)
+
+NCURSES_WCWIDTH_GRAPHICS=1
+AC_SUBST(NCURSES_WCWIDTH_GRAPHICS)
+
+if test "x$with_widec" = xyes ; then
+       if test "x$disable_lib_suffixes" = xno ; then
+               LIB_SUFFIX="w${LIB_SUFFIX}"
+       fi
+       AC_DEFINE(USE_WIDEC_SUPPORT,1,[Define to 1 to compile with wide-char/UTF-8 code])
+       AC_DEFINE(NCURSES_WIDECHAR,1,[Define to 1 to compile with wide-char/UTF-8 code])
+
+       CF_CHECK_WCHAR_H
+       CF_CHECK_WCWIDTH_GRAPHICS
+       test "$cf_cv_wcwidth_graphics" = no && NCURSES_WCWIDTH_GRAPHICS=0
+
        # with_overwrite=no
        NCURSES_CH_T=cchar_t
        # with_overwrite=no
        NCURSES_CH_T=cchar_t
-       AC_CHECK_FUNCS(putwc btowc wctob mbtowc wctomb mblen mbrlen mbrtowc)
-       if test "$ac_cv_func_putwc" != yes ; then
-               CF_LIBUTF8
-               if test "$cf_cv_libutf8" = yes ; then
+       AC_CHECK_FUNCS(putwc btowc wctob mbtowc wctomb mblen mbrlen mbrtowc wcsrtombs mbsrtowcs wcstombs mbstowcs)
+       if test "x$ac_cv_func_putwc" != xyes ; then
+               CF_UTF8_LIB
+               if test "$cf_cv_utf8_lib" != no ; then
                        NCURSES_LIBUTF8=1
                fi
        fi
                        NCURSES_LIBUTF8=1
                fi
        fi
@@ -661,7 +926,7 @@ if test "$with_widec" = yes ; then
        CF_WCHAR_TYPE(wint_t,    NCURSES_WINT_T,    NCURSES_OK_WINT_T)
 
        if test "$NCURSES_MBSTATE_T" != 0; then
        CF_WCHAR_TYPE(wint_t,    NCURSES_WINT_T,    NCURSES_OK_WINT_T)
 
        if test "$NCURSES_MBSTATE_T" != 0; then
-               AC_DEFINE(NEED_MBSTATE_T_DEF)
+               AC_DEFINE(NEED_MBSTATE_T_DEF,1,[Define to 1 if we must declare mbstate_t])
        fi
 fi
 AC_SUBST(NCURSES_CH_T)
        fi
 fi
 AC_SUBST(NCURSES_CH_T)
@@ -676,23 +941,14 @@ AC_SUBST(NCURSES_OK_WCHAR_T)
 AC_SUBST(NCURSES_OK_WINT_T)
 
 ###   use option --disable-lp64 to allow long chtype
 AC_SUBST(NCURSES_OK_WINT_T)
 
 ###   use option --disable-lp64 to allow long chtype
-case $cf_cv_abi_version in
-[[345]]*)
-       default_with_lp64=no
-       ;;
-*)
-       default_with_lp64=yes
-       ;;
-esac
-
 AC_MSG_CHECKING(whether to enable _LP64 definition in curses.h)
 AC_ARG_ENABLE(lp64,
        [  --disable-lp64          allow chtype to be long (ignore _LP64)],
        [with_lp64=$enableval],
 AC_MSG_CHECKING(whether to enable _LP64 definition in curses.h)
 AC_ARG_ENABLE(lp64,
        [  --disable-lp64          allow chtype to be long (ignore _LP64)],
        [with_lp64=$enableval],
-       [with_lp64=$default_with_lp64])
+       [with_lp64=$cf_dft_with_lp64])
 AC_MSG_RESULT($with_lp64)
 
 AC_MSG_RESULT($with_lp64)
 
-if test "$with_lp64" = yes ; then
+if test "x$with_lp64" = xyes ; then
        cf_cv_enable_lp64=1
 else
        cf_cv_enable_lp64=0
        cf_cv_enable_lp64=1
 else
        cf_cv_enable_lp64=0
@@ -709,9 +965,38 @@ AC_ARG_ENABLE(tparm-varargs,
        [with_tparm_varargs=yes])
 AC_MSG_RESULT($with_tparm_varargs)
 NCURSES_TPARM_VARARGS=0
        [with_tparm_varargs=yes])
 AC_MSG_RESULT($with_tparm_varargs)
 NCURSES_TPARM_VARARGS=0
-test "$with_tparm_varargs" = yes && NCURSES_TPARM_VARARGS=1
+test "x$with_tparm_varargs" = xyes && NCURSES_TPARM_VARARGS=1
 AC_SUBST(NCURSES_TPARM_VARARGS)
 
 AC_SUBST(NCURSES_TPARM_VARARGS)
 
+###   use option --disable-tic-depends to make libtic not explicitly depend on ncurses/ncursesw
+if test "$with_ticlib" != no ; then
+AC_MSG_CHECKING(if you want tic library to use explicit dependency on ncurses$LIB_SUFFIX library)
+AC_ARG_ENABLE(tic-depends,
+       [  --disable-tic-depends   link tic library without explicit dependency on ncurses library],
+       [with_tic_depends=$enableval],
+       [with_tic_depends=yes])
+AC_MSG_RESULT($with_tic_depends)
+else
+       with_tic_depends=no
+fi
+
+###   use option --disable-wattr-macros to suppress wattr* macros from curses.h
+AC_MSG_CHECKING(if you want to suppress wattr* macros to help with ncurses5/ncurses6 transition)
+AC_ARG_ENABLE(wattr-macros,
+       [  --disable-wattr-macros  suppress wattr* macros to help with ncurses5/ncurses6 transition],
+       [with_wattr_macros=$enableval],
+       [with_wattr_macros=yes])
+if [[ "x$with_wattr_macros" != xyes ]]; then
+       NCURSES_WATTR_MACROS=0
+       AC_MSG_RESULT(yes)
+else
+       NCURSES_WATTR_MACROS=1
+       AC_MSG_RESULT(no)
+fi
+AC_SUBST(NCURSES_WATTR_MACROS)
+
+CF_WITH_X11_RGB
+
 ###   use option --with-bool to override bool's type
 AC_MSG_CHECKING(for type of bool)
 AC_ARG_WITH(bool,
 ###   use option --with-bool to override bool's type
 AC_MSG_CHECKING(for type of bool)
 AC_ARG_WITH(bool,
@@ -735,7 +1020,7 @@ AC_MSG_CHECKING(for type of chtype)
 AC_ARG_WITH(chtype,
        [  --with-chtype=TYPE      override type of chtype],
        [NCURSES_CHTYPE="$withval"],
 AC_ARG_WITH(chtype,
        [  --with-chtype=TYPE      override type of chtype],
        [NCURSES_CHTYPE="$withval"],
-       [NCURSES_CHTYPE=auto])
+       [NCURSES_CHTYPE=$cf_dft_chtype])
 AC_MSG_RESULT($NCURSES_CHTYPE)
 
 ###   use option --with-ospeed to override ospeed's type
 AC_MSG_RESULT($NCURSES_CHTYPE)
 
 ###   use option --with-ospeed to override ospeed's type
@@ -752,9 +1037,42 @@ AC_MSG_CHECKING(for type of mmask_t)
 AC_ARG_WITH(mmask-t,
        [  --with-mmask-t=TYPE     override type of mmask_t],
        [NCURSES_MMASK_T="$withval"],
 AC_ARG_WITH(mmask-t,
        [  --with-mmask-t=TYPE     override type of mmask_t],
        [NCURSES_MMASK_T="$withval"],
-       [NCURSES_MMASK_T=auto])
+       [NCURSES_MMASK_T=$cf_dft_mmask_t])
 AC_MSG_RESULT($NCURSES_MMASK_T)
 
 AC_MSG_RESULT($NCURSES_MMASK_T)
 
+###   use option --with-ccharw-max to override CCHARW_MAX size
+AC_MSG_CHECKING(for size CCHARW_MAX)
+AC_ARG_WITH(ccharw-max,
+       [  --with-ccharw-max=XXX   override size CCHARW_MAX],
+       [NCURSES_CCHARW_MAX="$withval"],
+       [NCURSES_CCHARW_MAX=5])
+AC_MSG_RESULT($NCURSES_CCHARW_MAX)
+AC_SUBST(NCURSES_CCHARW_MAX)
+
+AC_CHECK_SIZEOF([signed char], 0)
+if test "$ac_cv_sizeof_signed_char" = 1 ; then
+       NCURSES_SBOOL="signed char"
+else
+       NCURSES_SBOOL="char"
+fi
+AC_MSG_CHECKING(if you want to use signed Boolean array in term.h)
+AC_ARG_ENABLE(signed-char,
+       [  --enable-signed-char    compile using signed Boolean's in term.h],
+       [with_signed_char=$enableval],
+       [with_signed_char=no])
+AC_MSG_RESULT($with_signed_char)
+test "x$with_signed_char" != xyes && NCURSES_SBOOL="char"
+AC_SUBST(NCURSES_SBOOL)
+
+###   use option --with-tparm-arg to override tparm's argument type
+AC_MSG_CHECKING(for type of tparm args)
+AC_ARG_WITH(tparm-arg,
+       [  --with-tparm-arg=TYPE   override parameter type of tparm],
+       [NCURSES_TPARM_ARG="$withval"],
+       [NCURSES_TPARM_ARG=$cf_dft_tparm_arg])
+AC_MSG_RESULT($NCURSES_TPARM_ARG)
+AC_SUBST(NCURSES_TPARM_ARG)
+
 ### Enable compiling-in rcs id's
 AC_MSG_CHECKING(if RCS identifiers should be compiled-in)
 AC_ARG_WITH(rcs-ids,
 ### Enable compiling-in rcs id's
 AC_MSG_CHECKING(if RCS identifiers should be compiled-in)
 AC_ARG_WITH(rcs-ids,
@@ -762,10 +1080,10 @@ AC_ARG_WITH(rcs-ids,
        [with_rcs_ids=$withval],
        [with_rcs_ids=no])
 AC_MSG_RESULT($with_rcs_ids)
        [with_rcs_ids=$withval],
        [with_rcs_ids=no])
 AC_MSG_RESULT($with_rcs_ids)
-test "$with_rcs_ids" = yes && AC_DEFINE(USE_RCS_IDS)
+test "x$with_rcs_ids" = xyes && AC_DEFINE(USE_RCS_IDS,1,[Define to 1 to compile-in RCS identifiers])
 
 ###############################################################################
 
 ###############################################################################
-CF_MAN_PAGES([ captoinfo clear infocmp infotocap tic toe tput ])
+CF_MAN_PAGES([ captoinfo clear infocmp infotocap reset tabs tic toe tput tset ])
 
 ###############################################################################
 CF_HELP_MESSAGE(Extensions:)
 
 ###############################################################################
 CF_HELP_MESSAGE(Extensions:)
@@ -777,55 +1095,131 @@ AC_ARG_ENABLE(ext-funcs,
        [with_ext_funcs=$enableval],
        [with_ext_funcs=yes])
 AC_MSG_RESULT($with_ext_funcs)
        [with_ext_funcs=$enableval],
        [with_ext_funcs=yes])
 AC_MSG_RESULT($with_ext_funcs)
-if test "$with_ext_funcs" = yes ; then
+if test "x$with_ext_funcs" = xyes ; then
        NCURSES_EXT_FUNCS=1
        NCURSES_EXT_FUNCS=1
-       AC_DEFINE(HAVE_CURSES_VERSION)
-       AC_DEFINE(HAVE_HAS_KEY)
-       AC_DEFINE(HAVE_RESIZETERM)
-       AC_DEFINE(HAVE_RESIZE_TERM)
-       AC_DEFINE(HAVE_USE_DEFAULT_COLORS)
-       AC_DEFINE(HAVE_WRESIZE)
-       AC_DEFINE(NCURSES_EXT_FUNCS)
+       AC_DEFINE(NCURSES_EXT_FUNCS,1,[Define to 1 to enable ncurses extended functions])
+       AC_DEFINE(HAVE_ASSUME_DEFAULT_COLORS,1,[Define to 1 to enable assume_default_colors() function in test-programs])
+       AC_DEFINE(HAVE_CURSES_VERSION,1,[Define to 1 to enable curses_version() function in test-programs])
+       AC_DEFINE(HAVE_HAS_KEY,1,[Define to 1 to enable has_key() function in test-programs])
+       AC_DEFINE(HAVE_RESIZETERM,1,[Define to 1 to enable resizeterm() function in test-programs])
+       AC_DEFINE(HAVE_RESIZE_TERM,1,[Define to 1 to enable resize_term() function in test-programs])
+       AC_DEFINE(HAVE_TERM_ENTRY_H,1,[Define to 1 to enable term_entry() function in test-programs])
+       AC_DEFINE(HAVE_USE_DEFAULT_COLORS,1,[Define to 1 to enable use_default_colors() function in test-programs])
+       AC_DEFINE(HAVE_USE_EXTENDED_NAMES,1,[Define to 1 to enable use_extended_names() function in test-programs])
+       AC_DEFINE(HAVE_USE_SCREEN,1,[Define to 1 to enable use_screen() function in test-programs])
+       AC_DEFINE(HAVE_USE_WINDOW,1,[Define to 1 to enable use_window() function in test-programs])
+       AC_DEFINE(HAVE_WRESIZE,1,[Define to 1 to enable wresize() function in test-programs])
+       GENERATED_EXT_FUNCS=generated
+       test "x$with_ext_funcs" = xyes || cf_dft_ext_spfuncs=no
 else
        NCURSES_EXT_FUNCS=0
 else
        NCURSES_EXT_FUNCS=0
+       GENERATED_EXT_FUNCS=
 fi
 AC_SUBST(NCURSES_EXT_FUNCS)
 fi
 AC_SUBST(NCURSES_EXT_FUNCS)
+AC_SUBST(GENERATED_EXT_FUNCS)
+
+AC_MSG_CHECKING(if you want to build with SCREEN extensions)
+AC_ARG_ENABLE(sp-funcs,
+       [  --enable-sp-funcs       enable SCREEN-extensions],
+       [with_sp_funcs=$enableval],
+       [with_sp_funcs=$cf_dft_ext_spfuncs])
+AC_MSG_RESULT($with_sp_funcs)
+if test "x$with_sp_funcs" = xyes ; then
+       NCURSES_SP_FUNCS=1
+       AC_DEFINE(NCURSES_SP_FUNCS,1,[Define to 1 to enable SCREEN-extensions])
+       AC_DEFINE(HAVE_TPUTS_SP,1,[Define to 1 to enable tputs_sp() function in test-programs])
+       GENERATED_SP_FUNCS=generated
+else
+       NCURSES_SP_FUNCS=0
+       GENERATED_SP_FUNCS=
+fi
+AC_SUBST(NCURSES_SP_FUNCS)
+AC_SUBST(GENERATED_SP_FUNCS)
+
+AC_MSG_CHECKING(if you want to build with terminal-driver)
+AC_ARG_ENABLE(term-driver,
+       [  --enable-term-driver    enable terminal-driver],
+       [with_term_driver=$enableval],
+       [with_term_driver=no])
+AC_MSG_RESULT($with_term_driver)
+if test "x$with_term_driver" = xyes ; then
+       AC_DEFINE(USE_TERM_DRIVER,1,[Define to 1 to enable terminal-driver])
+       if test "x$with_termlib" != xno ; then
+               AC_MSG_ERROR(The term-driver option conflicts with the termlib option)
+       fi
+       if test "x$with_sp_funcs" != xyes ; then
+               AC_MSG_ERROR(The term-driver option relies upon sp-funcs)
+       fi
+fi
 
 ###   use option --enable-const to turn on use of const beyond that in XSI.
 AC_MSG_CHECKING(for extended use of const keyword)
 AC_ARG_ENABLE(const,
        [  --enable-const          compile with extra/non-standard const],
        [with_ext_const=$enableval],
 
 ###   use option --enable-const to turn on use of const beyond that in XSI.
 AC_MSG_CHECKING(for extended use of const keyword)
 AC_ARG_ENABLE(const,
        [  --enable-const          compile with extra/non-standard const],
        [with_ext_const=$enableval],
-       [with_ext_const=no])
+       [with_ext_const=$cf_dft_ext_const])
 AC_MSG_RESULT($with_ext_const)
 NCURSES_CONST='/*nothing*/'
 AC_MSG_RESULT($with_ext_const)
 NCURSES_CONST='/*nothing*/'
-if test "$with_ext_const" = yes ; then
+if test "x$with_ext_const" = xyes ; then
        NCURSES_CONST=const
 fi
 AC_SUBST(NCURSES_CONST)
 
        NCURSES_CONST=const
 fi
 AC_SUBST(NCURSES_CONST)
 
+###   use option --enable-ext-colors to turn on use of colors beyond 16.
+AC_MSG_CHECKING(if you want to use extended colors)
+AC_ARG_ENABLE(ext-colors,
+       [  --enable-ext-colors     compile for 256-color support],
+       [with_ext_colors=$enableval],
+       [with_ext_colors=$cf_dft_ext_colors])
+AC_MSG_RESULT($with_ext_colors)
+NCURSES_EXT_COLORS=0
+if test "x$with_ext_colors" = xyes ; then
+       if test "x$with_widec" != xyes ; then
+               AC_MSG_WARN(This option applies only to wide-character library)
+       else
+               # cannot be ABI 5 since it changes sizeof(cchar_t)
+               CF_NCURSES_ABI_6
+               NCURSES_EXT_COLORS=1
+               AC_DEFINE(NCURSES_EXT_COLORS,1,[Define to 1 to compile for 256-color support])
+               AC_DEFINE(HAVE_ALLOC_PAIR,1,[Define to 1 to enable alloc_pair() function])
+               AC_DEFINE(HAVE_INIT_EXTENDED_COLOR,1,[Define to 1 to enable init_extended_color() function in test-programs])
+               AC_DEFINE(HAVE_RESET_COLOR_PAIRS,1,[Define to 1 to enable reset_color_pairs() function in test-programs])
+       fi
+fi
+AC_SUBST(NCURSES_EXT_COLORS)
+
+###   use option --enable-ext-mouse to modify coding to support 5-button mice
+AC_MSG_CHECKING(if you want to use extended mouse encoding)
+AC_ARG_ENABLE(ext-mouse,
+       [  --enable-ext-mouse      compile for extended mouse-encoding],
+       [with_ext_mouse=$enableval],
+       [with_ext_mouse=$cf_dft_ext_mouse])
+AC_MSG_RESULT($with_ext_mouse)
+NCURSES_MOUSE_VERSION=1
+if test "x$with_ext_mouse" = xyes ; then
+       NCURSES_MOUSE_VERSION=2
+       CF_NCURSES_ABI_6
+fi
+AC_SUBST(NCURSES_MOUSE_VERSION)
+
+###   use option --enable-ext-putwin to turn on extended screendumps
+AC_MSG_CHECKING(if you want to use extended putwin/screendump)
+AC_ARG_ENABLE(ext-putwin,
+       [  --enable-ext-putwin     compile with extended putwin/screendump],
+       [with_ext_putwin=$enableval],
+       [with_ext_putwin=$cf_dft_ext_putwin])
+AC_MSG_RESULT($with_ext_putwin)
+if test "x$with_ext_putwin" = xyes ; then
+       AC_DEFINE(NCURSES_EXT_PUTWIN,1,[Define to 1 to compile with extended putwin/screendump])
+fi
+
 AC_MSG_CHECKING(if you want \$NCURSES_NO_PADDING code)
 AC_ARG_ENABLE(no-padding,
        [  --enable-no-padding     compile with $NCURSES_NO_PADDING code],
        [with_no_padding=$enableval],
        [with_no_padding=$with_ext_funcs])
 AC_MSG_RESULT($with_no_padding)
 AC_MSG_CHECKING(if you want \$NCURSES_NO_PADDING code)
 AC_ARG_ENABLE(no-padding,
        [  --enable-no-padding     compile with $NCURSES_NO_PADDING code],
        [with_no_padding=$enableval],
        [with_no_padding=$with_ext_funcs])
 AC_MSG_RESULT($with_no_padding)
-test "$with_no_padding" = yes && AC_DEFINE(NCURSES_NO_PADDING)
-
-AC_CHECK_SIZEOF([signed char], 0)
-if test "$ac_cv_sizeof_signed_char" = 1 ; then
-       NCURSES_SBOOL="signed char"
-else
-       NCURSES_SBOOL="char"
-fi
-AC_MSG_CHECKING(if you want to use signed Boolean array in term.h)
-AC_ARG_ENABLE(signed-char,
-       [  --enable-signed-char    compile with SIGWINCH handler],
-       [with_signed_char=$enableval],
-       [with_signed_char=no])
-AC_MSG_RESULT($with_signed_char)
-test "$with_signed_char" != yes && NCURSES_SBOOL="char"
-AC_SUBST(NCURSES_SBOOL)
+test "x$with_no_padding" = xyes && AC_DEFINE(NCURSES_NO_PADDING,1,[Define to 1 to compile with $NCURSES_NO_PADDING code])
 
 ###   use option --enable-sigwinch to turn on use of SIGWINCH logic
 AC_MSG_CHECKING(if you want SIGWINCH handler)
 
 ###   use option --enable-sigwinch to turn on use of SIGWINCH logic
 AC_MSG_CHECKING(if you want SIGWINCH handler)
@@ -834,7 +1228,7 @@ AC_ARG_ENABLE(sigwinch,
        [with_sigwinch=$enableval],
        [with_sigwinch=$with_ext_funcs])
 AC_MSG_RESULT($with_sigwinch)
        [with_sigwinch=$enableval],
        [with_sigwinch=$with_ext_funcs])
 AC_MSG_RESULT($with_sigwinch)
-test "$with_sigwinch" = yes && AC_DEFINE(USE_SIGWINCH)
+test "x$with_sigwinch" = xyes && AC_DEFINE(USE_SIGWINCH,1,[Define to 1 to compile with SIGWINCH handler])
 
 ###   use option --enable-tcap-names to allow user to define new capabilities
 AC_MSG_CHECKING(if you want user-definable terminal capabilities like termcap)
 
 ###   use option --enable-tcap-names to allow user to define new capabilities
 AC_MSG_CHECKING(if you want user-definable terminal capabilities like termcap)
@@ -844,9 +1238,158 @@ AC_ARG_ENABLE(tcap-names,
        [with_tcap_names=$with_ext_funcs])
 AC_MSG_RESULT($with_tcap_names)
 NCURSES_XNAMES=0
        [with_tcap_names=$with_ext_funcs])
 AC_MSG_RESULT($with_tcap_names)
 NCURSES_XNAMES=0
-test "$with_tcap_names" = yes && NCURSES_XNAMES=1
+test "x$with_tcap_names" = xyes && NCURSES_XNAMES=1
 AC_SUBST(NCURSES_XNAMES)
 
 AC_SUBST(NCURSES_XNAMES)
 
+##############################################################################
+CF_HELP_MESSAGE(Reentrant Code:)
+CF_WITH_PTHREAD
+
+if test "x$with_pthread" != xno; then
+       AC_CHECK_FUNC(pthread_kill,[
+               AC_MSG_CHECKING(if you want to allow EINTR in wgetch with pthreads)
+               AC_ARG_ENABLE(pthreads-eintr,
+                       [  --enable-pthreads-eintr enable EINTR in wgetch with pthreads],
+                       [use_pthreads_eintr=$enableval],
+                       [use_pthreads_eintr=no])
+               AC_MSG_RESULT($use_pthreads_eintr)
+               if test "x$use_pthreads_eintr" = xyes ; then
+                       AC_DEFINE(USE_PTHREADS_EINTR,1,[Define to 1 to enable EINTR in wgetch with pthreads])
+               fi])
+
+       AC_MSG_CHECKING(if you want to use weak-symbols for pthreads)
+       AC_ARG_ENABLE(weak-symbols,
+               [  --enable-weak-symbols   enable weak-symbols for pthreads],
+               [use_weak_symbols=$enableval],
+               [use_weak_symbols=no])
+       AC_MSG_RESULT($use_weak_symbols)
+       if test "x$use_weak_symbols" = xyes ; then
+               CF_WEAK_SYMBOLS
+       else
+               cf_cv_weak_symbols=no
+       fi
+
+       if test "x$cf_cv_weak_symbols" = xyes ; then
+               AC_DEFINE(USE_WEAK_SYMBOLS,1,[Define to 1 to enable weak-symbols for pthreads])
+       fi
+fi
+
+PTHREAD=
+if test "x$with_pthread" = "xyes" ; then
+       AC_DEFINE(USE_PTHREADS,1,[Define to 1 to use pthreads feature])
+       enable_reentrant=yes
+       if test "x$cf_cv_weak_symbols" = xyes ; then
+               PTHREAD=-lpthread
+               CF_ADD_LIB(pthread,PRIVATE_LIBS)
+       fi
+fi
+AC_SUBST(PTHREAD)
+
+# Reentrant code has to be opaque; there's little advantage to making ncurses
+# opaque outside of that, so there is no --enable-opaque option.  We can use
+# this option without --with-pthreads, but this will be always set for
+# pthreads.
+AC_MSG_CHECKING(if you want reentrant code)
+AC_ARG_ENABLE(reentrant,
+       [  --enable-reentrant      compile with reentrant code],
+       [with_reentrant=$enableval],
+       [with_reentrant=no])
+AC_MSG_RESULT($with_reentrant)
+if test "x$with_reentrant" = xyes ; then
+       cf_cv_enable_reentrant=1
+       cf_cv_enable_opaque="NCURSES_INTERNALS"
+       NCURSES_SIZE_T=int
+       if test "x$cf_cv_weak_symbols" = xyes ; then
+               CF_REMOVE_LIB(LIBS,$LIBS,pthread)
+               CF_ADD_LIB(pthread,TEST_LIBS)
+               CF_ADD_LIB(pthread,TEST_LIBS2)
+               CF_ADD_LIB(pthread,PRIVATE_LIBS)
+       else
+               # when not using weak symbols but with_reentrant,
+               # add 't' to the library suffix on all platforms
+               # except cygwin, where we only do that if ALSO
+               # compiling with full thread support.
+               case "$host" in
+               (*cygwin* | *msys*)
+                       if test "$with_pthread" = "yes" ; then
+                               if test "x$disable_lib_suffixes" = "xno" ; then
+                                       LIB_SUFFIX="t${LIB_SUFFIX}"
+                               fi
+                       fi ;;
+               (*)
+                       if test "x$disable_lib_suffixes" = "xno" ; then
+                               LIB_SUFFIX="t${LIB_SUFFIX}"
+                       fi
+                       ;;
+               esac
+       fi
+       AC_DEFINE(USE_REENTRANT,1,[Define to 1 to use reentrant feature])
+       CF_NCURSES_ABI_6
+else
+       cf_cv_enable_reentrant=0
+       cf_cv_enable_opaque="NCURSES_OPAQUE"
+       NCURSES_SIZE_T=short
+fi
+AC_SUBST(cf_cv_enable_reentrant)
+AC_SUBST(cf_cv_enable_opaque)
+
+AC_SUBST(NCURSES_SIZE_T)
+
+AC_MSG_CHECKING(if you want opaque curses-library structures)
+CF_ARG_ENABLE(opaque-curses,
+       [  --enable-opaque-curses  make curses WINDOW, etc., "opaque"],
+       [enable_opaque_curses=yes],[
+        test "$cf_cv_enable_reentrant" = 1 && enable_opaque_curses=yes
+        test "$cf_cv_enable_reentrant" = 1 || enable_opaque_curses=no
+       ])
+AC_MSG_RESULT($enable_opaque_curses)
+
+test "$cf_cv_enable_reentrant" = 1 && \
+test "$enable_opaque_curses" = no && \
+AC_MSG_ERROR(reentrant configuration requires opaque library)
+
+AC_MSG_CHECKING(if you want opaque form-library structures)
+AC_ARG_ENABLE(opaque-form,
+       [  --enable-opaque-form    make form-library structures "opaque"],
+       [enable_opaque_form=yes],[enable_opaque_form=no])
+AC_MSG_RESULT($enable_opaque_form)
+
+AC_MSG_CHECKING(if you want opaque menu-library structures)
+AC_ARG_ENABLE(opaque-menu,
+       [  --enable-opaque-menu    make menu-library structures "opaque"],
+       [enable_opaque_menu=yes],[enable_opaque_menu=no])
+AC_MSG_RESULT($enable_opaque_menu)
+
+AC_MSG_CHECKING(if you want opaque panel-library structures)
+AC_ARG_ENABLE(opaque-panel,
+       [  --enable-opaque-panel   make panel-library structures "opaque"],
+       [enable_opaque_panel=yes],[enable_opaque_panel=no])
+AC_MSG_RESULT($enable_opaque_panel)
+
+NCURSES_OPAQUE=0;              test "$enable_opaque_curses" = yes && NCURSES_OPAQUE=1
+NCURSES_OPAQUE_FORM=0; test "$enable_opaque_form"   = yes && NCURSES_OPAQUE_FORM=1
+NCURSES_OPAQUE_MENU=0; test "$enable_opaque_menu"   = yes && NCURSES_OPAQUE_MENU=1
+NCURSES_OPAQUE_PANEL=0;        test "$enable_opaque_panel"  = yes && NCURSES_OPAQUE_PANEL=1
+
+AC_SUBST(NCURSES_OPAQUE)
+AC_SUBST(NCURSES_OPAQUE_FORM)
+AC_SUBST(NCURSES_OPAQUE_MENU)
+AC_SUBST(NCURSES_OPAQUE_PANEL)
+
+### Allow using a different wrap-prefix
+if test "$cf_cv_enable_reentrant" != 0 || test "$BROKEN_LINKER" = 1 ; then
+       AC_MSG_CHECKING(for prefix used to wrap public variables)
+       AC_ARG_WITH(wrap-prefix,
+               [  --with-wrap-prefix=XXX  override prefix used for public variables],
+               [NCURSES_WRAP_PREFIX=$withval],
+               [NCURSES_WRAP_PREFIX=_nc_])
+       AC_MSG_RESULT($NCURSES_WRAP_PREFIX)
+else
+       NCURSES_WRAP_PREFIX=_nc_
+fi
+AC_SUBST(NCURSES_WRAP_PREFIX)
+AC_DEFINE_UNQUOTED(NCURSES_WRAP_PREFIX,"$NCURSES_WRAP_PREFIX",[Define to override _nc_ prefix])
+
 ###############################################################################
 # These options are relatively safe to experiment with.
 CF_HELP_MESSAGE(Development Code:)
 ###############################################################################
 # These options are relatively safe to experiment with.
 CF_HELP_MESSAGE(Development Code:)
@@ -863,7 +1406,7 @@ AC_ARG_ENABLE(hard-tabs,
        [  --enable-hard-tabs      compile with hard-tabs code],,
        [enable_hard_tabs=$with_develop])
 AC_MSG_RESULT($enable_hard_tabs)
        [  --enable-hard-tabs      compile with hard-tabs code],,
        [enable_hard_tabs=$with_develop])
 AC_MSG_RESULT($enable_hard_tabs)
-test "$enable_hard_tabs" = yes && AC_DEFINE(USE_HARD_TABS)
+test "x$enable_hard_tabs" = xyes && AC_DEFINE(USE_HARD_TABS,1,[Define to 1 to compile with hard-tabs code])
 
 ###   use option --enable-xmc-glitch to turn on use of magic-cookie optimize
 AC_MSG_CHECKING(if you want limited support for xmc)
 
 ###   use option --enable-xmc-glitch to turn on use of magic-cookie optimize
 AC_MSG_CHECKING(if you want limited support for xmc)
@@ -871,7 +1414,7 @@ AC_ARG_ENABLE(xmc-glitch,
        [  --enable-xmc-glitch     compile with support for xmc (magic-cookie)],,
        [enable_xmc_glitch=$with_develop])
 AC_MSG_RESULT($enable_xmc_glitch)
        [  --enable-xmc-glitch     compile with support for xmc (magic-cookie)],,
        [enable_xmc_glitch=$with_develop])
 AC_MSG_RESULT($enable_xmc_glitch)
-test "$enable_xmc_glitch" = yes && AC_DEFINE(USE_XMC_SUPPORT)
+test "x$enable_xmc_glitch" = xyes && AC_DEFINE(USE_XMC_SUPPORT,1,[Define to 1 to compile with support for xmc (magic-cookie)])
 
 ###############################################################################
 # These are just experimental, probably should not be in a package:
 
 ###############################################################################
 # These are just experimental, probably should not be in a package:
@@ -883,7 +1426,7 @@ AC_ARG_ENABLE(assumed-color,
        [with_assumed_color=$enableval],
        [with_assumed_color=yes])
 AC_MSG_RESULT($with_assumed_color)
        [with_assumed_color=$enableval],
        [with_assumed_color=yes])
 AC_MSG_RESULT($with_assumed_color)
-test "$with_assumed_color" = yes && AC_DEFINE(USE_ASSUMED_COLOR)
+test "x$with_assumed_color" = xyes && AC_DEFINE(USE_ASSUMED_COLOR,1,[Define to 1 to assume things about default-colors])
 
 ###   use option --enable-hashmap to turn on use of hashmap scrolling logic
 AC_MSG_CHECKING(if you want hashmap scrolling-optimization code)
 
 ###   use option --enable-hashmap to turn on use of hashmap scrolling logic
 AC_MSG_CHECKING(if you want hashmap scrolling-optimization code)
@@ -892,50 +1435,29 @@ AC_ARG_ENABLE(hashmap,
        [with_hashmap=$enableval],
        [with_hashmap=yes])
 AC_MSG_RESULT($with_hashmap)
        [with_hashmap=$enableval],
        [with_hashmap=yes])
 AC_MSG_RESULT($with_hashmap)
-test "$with_hashmap" = yes && AC_DEFINE(USE_HASHMAP)
+test "x$with_hashmap" = xyes && AC_DEFINE(USE_HASHMAP,1,[Define to 1 to compile with hashmap scrolling-optimization])
 
 ###   use option --enable-colorfgbg to turn on use of $COLORFGBG environment
 AC_MSG_CHECKING(if you want colorfgbg code)
 AC_ARG_ENABLE(colorfgbg,
 
 ###   use option --enable-colorfgbg to turn on use of $COLORFGBG environment
 AC_MSG_CHECKING(if you want colorfgbg code)
 AC_ARG_ENABLE(colorfgbg,
-       [  --enable-colorfgbg      compile with $COLORFGBG code],
+       [  --enable-colorfgbg      compile-in experimental $COLORFGBG code],
        [with_colorfgbg=$enableval],
        [with_colorfgbg=no])
 AC_MSG_RESULT($with_colorfgbg)
        [with_colorfgbg=$enableval],
        [with_colorfgbg=no])
 AC_MSG_RESULT($with_colorfgbg)
-test "$with_colorfgbg" = yes && AC_DEFINE(USE_COLORFGBG)
+test "x$with_colorfgbg" = xyes && AC_DEFINE(USE_COLORFGBG,1,[Define to 1 to compile-in experimental $COLORFGBG code])
 
 
-###   use option --enable-ext-colors to turn on use of colors beyond 16.
-AC_MSG_CHECKING(if you want to use experimental extended colors)
-AC_ARG_ENABLE(ext-colors,
-       [  --enable-ext-colors     compile for experimental 256-color support],
-       [with_ext_colors=$enableval],
-       [with_ext_colors=no])
-AC_MSG_RESULT($with_ext_colors)
-NCURSES_EXT_COLORS=0
-if test "$with_ext_colors" = yes ; then
-       if test "$with_widec" != yes ; then
-               AC_MSG_WARN(This option applies only to wide-character library)
-       else
-               # cannot be ABI 5 since it changes sizeof(cchar_t)
-               CF_NCURSES_ABI_6
-       fi
-       NCURSES_EXT_COLORS=1
-       AC_DEFINE(NCURSES_EXT_COLORS)
-fi
-AC_SUBST(NCURSES_EXT_COLORS)
+###   use option --enable-interop to turn on use of bindings used for interop
+AC_MSG_CHECKING(if you want interop bindings)
+AC_ARG_ENABLE(interop,
+       [  --enable-interop        compile-in interop bindings],
+       [with_exp_interop=$enableval],
+       [with_exp_interop=$cf_dft_interop])
+AC_MSG_RESULT($with_exp_interop)
+
+NCURSES_INTEROP_FUNCS=0
+test "x$with_exp_interop" = xyes && NCURSES_INTEROP_FUNCS=1
+AC_SUBST(NCURSES_INTEROP_FUNCS)
 
 
-###   use option --enable-ext-mouse to modify coding to support 5-button mice
-AC_MSG_CHECKING(if you want to use experimental extended mouse encoding)
-AC_ARG_ENABLE(ext-mouse,
-       [  --enable-ext-mouse      compile for experimental mouse-encoding],
-       [with_ext_mouse=$enableval],
-       [with_ext_mouse=no])
-AC_MSG_RESULT($with_ext_mouse)
-NCURSES_MOUSE_VERSION=1
-if test "$with_ext_mouse" = yes ; then
-       NCURSES_MOUSE_VERSION=2
-       CF_NCURSES_ABI_6
-fi
-AC_SUBST(NCURSES_MOUSE_VERSION)
 
 AC_MSG_CHECKING(if you want experimental safe-sprintf code)
 AC_ARG_ENABLE(safe-sprintf,
 
 AC_MSG_CHECKING(if you want experimental safe-sprintf code)
 AC_ARG_ENABLE(safe-sprintf,
@@ -943,7 +1465,6 @@ AC_ARG_ENABLE(safe-sprintf,
        [with_safe_sprintf=$enableval],
        [with_safe_sprintf=no])
 AC_MSG_RESULT($with_safe_sprintf)
        [with_safe_sprintf=$enableval],
        [with_safe_sprintf=no])
 AC_MSG_RESULT($with_safe_sprintf)
-test "$with_safe_sprintf" = yes && AC_DEFINE(USE_SAFE_SPRINTF)
 
 ###   use option --disable-scroll-hints to turn off use of scroll-hints scrolling logic
 # when hashmap is used scroll hints are useless
 
 ###   use option --disable-scroll-hints to turn off use of scroll-hints scrolling logic
 # when hashmap is used scroll hints are useless
@@ -954,35 +1475,49 @@ AC_ARG_ENABLE(scroll-hints,
        [with_scroll_hints=$enableval],
        [with_scroll_hints=yes])
 AC_MSG_RESULT($with_scroll_hints)
        [with_scroll_hints=$enableval],
        [with_scroll_hints=yes])
 AC_MSG_RESULT($with_scroll_hints)
-test "$with_scroll_hints" = yes && AC_DEFINE(USE_SCROLL_HINTS)
+test "x$with_scroll_hints" = xyes && AC_DEFINE(USE_SCROLL_HINTS,1,[Define to 1 to compile without scroll-hints code])
 fi
 
 fi
 
-AC_MSG_CHECKING(if you want experimental wgetch-events code)
+AC_MSG_CHECKING(if you want wgetch-events code)
 AC_ARG_ENABLE(wgetch-events,
 AC_ARG_ENABLE(wgetch-events,
-       [  --enable-wgetch-events  compile with experimental wgetch-events code],
+       [  --enable-wgetch-events  compile with wgetch-events code],
        [with_wgetch_events=$enableval],
        [with_wgetch_events=no])
 AC_MSG_RESULT($with_wgetch_events)
        [with_wgetch_events=$enableval],
        [with_wgetch_events=no])
 AC_MSG_RESULT($with_wgetch_events)
-test "$with_wgetch_events" = yes && AC_DEFINE(NCURSES_WGETCH_EVENTS)
+test "x$with_wgetch_events" = xyes && AC_DEFINE(NCURSES_WGETCH_EVENTS,1,[Define to 1 to compile with wgetch-events code])
 
 ###############################################################################
 CF_HELP_MESSAGE(Testing/development Options:)
 
 ###    use option --disable-echo to suppress full display compiling commands
 
 ###############################################################################
 CF_HELP_MESSAGE(Testing/development Options:)
 
 ###    use option --disable-echo to suppress full display compiling commands
-AC_MSG_CHECKING(if you want to display full commands during build)
-AC_ARG_ENABLE(echo,
-       [  --enable-echo           build: display "compiling" commands (default)],
-       [with_echo=$enableval],
-       [with_echo=yes])
-if test "$with_echo" = yes; then
+CF_DISABLE_ECHO
+if test "x$enable_echo" = xyes; then
        ECHO_LINK=
 else
        ECHO_LINK='@ echo linking $@ ... ;'
        test -n "$LIBTOOL" && LIBTOOL="$LIBTOOL --silent"
        ECHO_LINK=
 else
        ECHO_LINK='@ echo linking $@ ... ;'
        test -n "$LIBTOOL" && LIBTOOL="$LIBTOOL --silent"
+       test -n "$LIBTOOL_CXX" && LIBTOOL_CXX="$LIBTOOL_CXX --silent"
 fi
 fi
-AC_MSG_RESULT($with_echo)
 AC_SUBST(ECHO_LINK)
 
 AC_SUBST(ECHO_LINK)
 
+# --disable-stripping is used for debugging
+CF_INSTALL_OPTS
+
+# If we're avoiding relinking of shared libraries during install, that is to
+# avoid modifying the build-tree.  For the same reason, avoid doing ranlib if
+# the install program has "-p" (for preserving timestamps).
+cf_cv_do_reranlib=yes
+if test "x$cf_cv_install_p" = xyes
+then
+       if test "x$cf_cv_do_relink" != xyes
+       then
+               cf_cv_do_reranlib=no
+               INSTALL_OPT_P="-p"
+               INSTALL_LIB="$INSTALL_LIB $INSTALL_OPT_P"
+       fi
+fi
+AC_SUBST(INSTALL_OPT_P)
+
 ###    use option --enable-warnings to turn on all gcc warnings
 AC_MSG_CHECKING(if you want to see compiler warnings)
 AC_ARG_ENABLE(warnings,
 ###    use option --enable-warnings to turn on all gcc warnings
 AC_MSG_CHECKING(if you want to see compiler warnings)
 AC_ARG_ENABLE(warnings,
@@ -990,14 +1525,15 @@ AC_ARG_ENABLE(warnings,
        [with_warnings=$enableval])
 AC_MSG_RESULT($with_warnings)
 
        [with_warnings=$enableval])
 AC_MSG_RESULT($with_warnings)
 
-if test -n "$with_warnings"; then
-       ADAFLAGS="$ADAFLAGS -gnatg"
-       CF_GCC_WARNINGS
-       if test "$cf_with_cxx" = yes ; then
+if test "x$with_warnings" = "xyes"; then
+       CF_ADD_ADAFLAGS(-gnatg)
+       CF_GCC_WARNINGS(Wno-unknown-pragmas Wswitch-enum)
+       if test "x$cf_with_cxx" = xyes ; then
                CF_GXX_WARNINGS(Wno-unused)
        fi
 fi
 CF_GCC_ATTRIBUTES
                CF_GXX_WARNINGS(Wno-unused)
        fi
 fi
 CF_GCC_ATTRIBUTES
+CF_ENABLE_STRING_HACKS
 
 ###    use option --enable-assertions to turn on generation of assertion code
 AC_MSG_CHECKING(if you want to enable runtime assertions)
 
 ###    use option --enable-assertions to turn on generation of assertion code
 AC_MSG_CHECKING(if you want to enable runtime assertions)
@@ -1010,32 +1546,31 @@ if test -n "$GCC"
 then
        if test "$with_assertions" = no
        then
 then
        if test "$with_assertions" = no
        then
-               AC_DEFINE(NDEBUG)
                CPPFLAGS="$CPPFLAGS -DNDEBUG"
        else
                CPPFLAGS="$CPPFLAGS -DNDEBUG"
        else
-               ADAFLAGS="$ADAFLAGS -gnata"
+               CF_ADD_ADAFLAGS(-gnata)
        fi
 fi
 
 ###    use option --disable-leaks to suppress "permanent" leaks, for testing
 CF_DISABLE_LEAKS
        fi
 fi
 
 ###    use option --disable-leaks to suppress "permanent" leaks, for testing
 CF_DISABLE_LEAKS
-AC_DEFINE(HAVE_NC_ALLOC_H)
+AC_DEFINE(HAVE_NC_ALLOC_H,1,[Define to 1 if we have nc_alloc.h header])
 
 ###    use option --enable-expanded to generate certain macros as functions
 AC_ARG_ENABLE(expanded,
        [  --enable-expanded       test: generate functions for certain macros],
 
 ###    use option --enable-expanded to generate certain macros as functions
 AC_ARG_ENABLE(expanded,
        [  --enable-expanded       test: generate functions for certain macros],
-       [test "$enableval" = yes && AC_DEFINE(NCURSES_EXPANDED)])
+       [test "x$enableval" = xyes && AC_DEFINE(NCURSES_EXPANDED,1,[Define to 1 to generate functions for certain macros])])
 
 ###    use option --disable-macros to suppress macros in favor of functions
 AC_ARG_ENABLE(macros,
        [  --disable-macros        test: use functions rather than macros],
 
 ###    use option --disable-macros to suppress macros in favor of functions
 AC_ARG_ENABLE(macros,
        [  --disable-macros        test: use functions rather than macros],
-       [test "$enableval" = no && AC_DEFINE(NCURSES_NOMACROS)])
+       [test "$enableval" = no && AC_DEFINE(NCURSES_NOMACROS,1,[Define to 1 to use functions rather than macros])])
 
 # Normally we only add trace() to the debug-library.  Allow this to be
 # extended to all models of the ncurses library:
 cf_all_traces=no
 case "$CFLAGS $CPPFLAGS" in
 
 # Normally we only add trace() to the debug-library.  Allow this to be
 # extended to all models of the ncurses library:
 cf_all_traces=no
 case "$CFLAGS $CPPFLAGS" in
-*-DTRACE*)
+(*-DTRACE*)
        cf_all_traces=yes
        ;;
 esac
        cf_all_traces=yes
        ;;
 esac
@@ -1047,10 +1582,11 @@ AC_ARG_WITH(trace,
 [cf_with_trace=$cf_all_traces])
 AC_MSG_RESULT($cf_with_trace)
 
 [cf_with_trace=$cf_all_traces])
 AC_MSG_RESULT($cf_with_trace)
 
-if test "$cf_with_trace" = yes ; then
+if test "x$cf_with_trace" = xyes ; then
        LIB_TRACING=all
        ADA_TRACE=TRUE
        CF_ADD_CFLAGS(-DTRACE)
        LIB_TRACING=all
        ADA_TRACE=TRUE
        CF_ADD_CFLAGS(-DTRACE)
+       AC_DEFINE(HAVE__TRACEF,1,[Define to 1 if we have _tracef function])
 else
        LIB_TRACING=DEBUG
        ADA_TRACE=FALSE
 else
        LIB_TRACING=DEBUG
        ADA_TRACE=FALSE
@@ -1058,15 +1594,25 @@ fi
 
 AC_SUBST(ADA_TRACE)
 
 
 AC_SUBST(ADA_TRACE)
 
+CF_DISABLE_GNAT_PROJECTS
+
 ###    Checks for libraries.
 ###    Checks for libraries.
+case $cf_cv_system_name in
+(*mingw32*|*mingw64*)
+       CPPFLAGS="$CPPFLAGS -DWINVER=0x0501 -DWIN32_LEAN_AND_MEAN"
+       LIBS=" -lpsapi $LIBS"
+       ;;
+(*)
 AC_CHECK_FUNC(gettimeofday,
 AC_CHECK_FUNC(gettimeofday,
-       AC_DEFINE(HAVE_GETTIMEOFDAY),[
+       AC_DEFINE(HAVE_GETTIMEOFDAY,1,[Define to 1 if we have gettimeofday function]),[
 
 AC_CHECK_LIB(bsd, gettimeofday,
 
 AC_CHECK_LIB(bsd, gettimeofday,
-       AC_DEFINE(HAVE_GETTIMEOFDAY)
-       LIBS="$LIBS -lbsd")])dnl CLIX: bzero, select, gettimeofday
+       AC_DEFINE(HAVE_GETTIMEOFDAY,1,[Define to 1 if we have gettimeofday function])
+       CF_ADD_LIB(bsd))])dnl CLIX: bzero, select, gettimeofday
+       ;;
+esac
 
 
-CF_MATH_LIB(MATH_LIB,sin(x))
+CF_MATH_LIB(MATH_LIB,pow(sin(x),x))
 AC_SUBST(MATH_LIB)
 
 ###    Checks for header files.
 AC_SUBST(MATH_LIB)
 
 ###    Checks for header files.
@@ -1081,6 +1627,7 @@ fcntl.h \
 getopt.h \
 limits.h \
 locale.h \
 getopt.h \
 limits.h \
 locale.h \
+math.h \
 poll.h \
 sys/bsdtypes.h \
 sys/ioctl.h \
 poll.h \
 sys/bsdtypes.h \
 sys/ioctl.h \
@@ -1094,11 +1641,13 @@ unistd.h \
 wctype.h \
 )
 
 wctype.h \
 )
 
+CF_GETOPT_HEADER
+
 # check for ISC (this may also define _POSIX_SOURCE)
 # Note: even non-Posix ISC needs <sys/bsdtypes.h> to declare fd_set
 # check for ISC (this may also define _POSIX_SOURCE)
 # Note: even non-Posix ISC needs <sys/bsdtypes.h> to declare fd_set
-if test "$ISC" = yes ; then
+if test "x$ISC" = xyes ; then
        AC_CHECK_LIB(cposix,main)
        AC_CHECK_LIB(cposix,main)
-       AC_CHECK_LIB(inet,bzero,LIBS="$LIBS -linet")dnl also 'select()'
+       AC_CHECK_LIB(inet,bzero,CF_ADD_LIB(inet))dnl also 'select()'
 fi
 
 CF_SYS_TIME_SELECT
 fi
 
 CF_SYS_TIME_SELECT
@@ -1106,26 +1655,21 @@ CF_SYS_TIME_SELECT
 ###    checks for compiler characteristics
 AC_LANG_C
 AC_C_CONST
 ###    checks for compiler characteristics
 AC_LANG_C
 AC_C_CONST
-AC_C_INLINE
-
-NCURSES_INLINE=
-if test "$ac_cv_c_inline" != no ; then
-       AC_DEFINE(CC_HAS_INLINE_FUNCS)
-       NCURSES_INLINE=inline
-fi
-AC_SUBST(NCURSES_INLINE)
+CF_C_INLINE(NCURSES_INLINE,1200)
+CF_SIG_ATOMIC_T
 
 if test $NCURSES_CHTYPE = auto ; then
        CF_TYPEOF_CHTYPE
 else
        cf_cv_typeof_chtype=$NCURSES_CHTYPE
 fi
 
 if test $NCURSES_CHTYPE = auto ; then
        CF_TYPEOF_CHTYPE
 else
        cf_cv_typeof_chtype=$NCURSES_CHTYPE
 fi
+test "$cf_cv_typeof_chtype" = unsigned && cf_cv_typeof_chtype=""
 AC_SUBST(cf_cv_typeof_chtype)
 
 CF_UNSIGNED_LITERALS
 cf_cv_1UL="1"
 AC_SUBST(cf_cv_typeof_chtype)
 
 CF_UNSIGNED_LITERALS
 cf_cv_1UL="1"
-test "$cf_cv_unsigned_literals" = yes && cf_cv_1UL="${cf_cv_1UL}U"
-test "$cf_cv_typeof_chtype"    = long && cf_cv_1UL="${cf_cv_1UL}L"
+test ".$cf_cv_unsigned_literals" = .yes && cf_cv_1UL="${cf_cv_1UL}U"
+test ".$cf_cv_typeof_chtype"    = .long && cf_cv_1UL="${cf_cv_1UL}L"
 AC_SUBST(cf_cv_1UL)
 
 if test $NCURSES_MMASK_T = auto ; then
 AC_SUBST(cf_cv_1UL)
 
 if test $NCURSES_MMASK_T = auto ; then
@@ -1133,6 +1677,7 @@ if test $NCURSES_MMASK_T = auto ; then
 else
        cf_cv_typeof_mmask_t=$NCURSES_MMASK_T
 fi
 else
        cf_cv_typeof_mmask_t=$NCURSES_MMASK_T
 fi
+test "$cf_cv_typeof_mmask_t" = unsigned && cf_cv_typeof_mmask_t=""
 AC_SUBST(cf_cv_typeof_mmask_t)
 
 ###    Checks for external-data
 AC_SUBST(cf_cv_typeof_mmask_t)
 
 ###    Checks for external-data
@@ -1144,23 +1689,45 @@ AC_CHECK_FUNCS( \
 getcwd \
 getegid \
 geteuid \
 getcwd \
 getegid \
 geteuid \
+getopt \
 getttynam \
 issetugid \
 poll \
 getttynam \
 issetugid \
 poll \
+putenv \
 remove \
 select \
 setbuf \
 setbuffer \
 remove \
 select \
 setbuf \
 setbuffer \
+setenv \
 setvbuf \
 sigaction \
 sigvec \
 strdup \
 strstr \
 setvbuf \
 sigaction \
 sigvec \
 strdup \
 strstr \
+sysconf \
 tcgetpgrp \
 tcgetpgrp \
+tdestroy \
 times \
 times \
+tsearch \
 vsnprintf \
 )
 vsnprintf \
 )
-if test "$with_getcap" = "yes" ; then
+
+if test "x$ac_cv_func_getopt" = xno && \
+   test "x$cf_with_progs$cf_with_tests" != xnono; then
+       AC_MSG_ERROR(getopt is required for building programs)
+fi
+
+if test "x$with_safe_sprintf" = xyes
+then
+       if test "x$ac_cv_func_vsnprintf" = xyes
+       then
+               AC_MSG_WARN(will use vsnprintf instead of safe-sprintf option)
+       else
+               AC_DEFINE(USE_SAFE_SPRINTF,1,[Define to 1 to compile with experimental safe-sprintf code])
+       fi
+fi
+
+if test "x$with_getcap" = "xyes" ; then
        CF_CGETENT
 fi
 
        CF_CGETENT
 fi
 
@@ -1175,20 +1742,35 @@ CF_MKSTEMP
 CF_SUBST_IF(["$cf_cv_func_vsscanf" = vsscanf], HAVE_VSSCANF, 1, 0)
 
 dnl FIXME (may need this) AC_SYS_RESTARTABLE_SYSCALLS
 CF_SUBST_IF(["$cf_cv_func_vsscanf" = vsscanf], HAVE_VSSCANF, 1, 0)
 
 dnl FIXME (may need this) AC_SYS_RESTARTABLE_SYSCALLS
-if test "$cross_compiling" = yes ; then
+if test "x$cross_compiling" = xyes ; then
        AC_MSG_WARN(cross compiling: assume setvbuf params not reversed)
 else
        AC_FUNC_SETVBUF_REVERSED
 fi
        AC_MSG_WARN(cross compiling: assume setvbuf params not reversed)
 else
        AC_FUNC_SETVBUF_REVERSED
 fi
-AC_TYPE_SIGNAL
+AC_CHECK_TYPE(intptr_t, long)
+AC_CHECK_TYPE(ssize_t, int)
 CF_TYPE_SIGACTION
 CF_SIZECHANGE
 CF_FUNC_MEMMOVE
 CF_FUNC_POLL
 CF_TYPE_SIGACTION
 CF_SIZECHANGE
 CF_FUNC_MEMMOVE
 CF_FUNC_POLL
+CF_VA_COPY
+AC_FUNC_VFORK
+
+# special check for test/ditto.c
+CF_FUNC_OPENPTY
+if test "$cf_cv_func_openpty" != no ; then
+       AC_DEFINE_UNQUOTED(USE_OPENPTY_HEADER,<$cf_cv_func_openpty>,[Define to actual header for openpty function])
+       AC_DEFINE(USE_XTERM_PTY,1,[Define to 1 if we should assume xterm pseudoterminal interface])
+       if test "x$cf_cv_lib_util" = xyes ; then
+               CF_ADD_LIB(util,TEST_LIBS)
+       fi
+fi
+AC_SUBST(TEST_LIBS)
+AC_SUBST(TEST_LIBS2)
 
 if test "$with_hashed_db" != no ; then
 
 if test "$with_hashed_db" != no ; then
-       AC_DEFINE(USE_HASHED_DB)
-       CF_HASHED_DB
+       AC_DEFINE(USE_HASHED_DB,1,[Define to 1 if we should build terminfo in hashed database])
+       CF_HASHED_DB($with_hashed_db)
 fi
 
 dnl We'll do our own -g libraries, unless the user's overridden via $CFLAGS
 fi
 
 dnl We'll do our own -g libraries, unless the user's overridden via $CFLAGS
@@ -1204,50 +1786,28 @@ CF_BOOL_DECL(cf_cv_cc_bool_type)
 if test -n "$CXX" ; then
        AC_LANG_CPLUSPLUS
        CF_STDCPP_LIBRARY
 if test -n "$CXX" ; then
        AC_LANG_CPLUSPLUS
        CF_STDCPP_LIBRARY
-       CF_PROG_CC_C_O(CXX)
+       CF_PROG_CC_C_O(CXX,[$CXXFLAGS $CPPFLAGS])
 
        case $GXX_VERSION in
 
        case $GXX_VERSION in
-       1*|2.[0-6]*)
+       (1*|2.[0-6]*)
                cf_cxx_library=yes
                ;;
                cf_cxx_library=yes
                ;;
-       *-2.7*|2.7*)
+       (*-2.7*|2.7*)
                CF_GPP_LIBRARY
                ;;
                CF_GPP_LIBRARY
                ;;
-       *)
+       (*)
                cf_cxx_library=no
                ;;
        esac
 
        AC_CHECK_HEADERS(typeinfo)
                cf_cxx_library=no
                ;;
        esac
 
        AC_CHECK_HEADERS(typeinfo)
-
+       CF_CXX_IOSTREAM_NAMESPACE
        CF_BOOL_DECL
        CF_BOOL_SIZE
        CF_ETIP_DEFINES
        CF_CPP_PARAM_INIT
        CF_CPP_STATIC_CAST
        CF_BOOL_DECL
        CF_BOOL_SIZE
        CF_ETIP_DEFINES
        CF_CPP_PARAM_INIT
        CF_CPP_STATIC_CAST
-
-       CXX_AR='$(AR)'
-       CXX_AR_OPTS='$(AR_OPTS)'
-       case $cf_cv_system_name in #(vi
-       irix*) #(vi
-           if test "$GXX" != yes ; then
-               CXX_AR='$(CXX)'
-               CXX_AR_OPTS='-ar -o'
-           fi
-           ;;
-       sco3.2v5*) #(vi
-           CXXLDFLAGS="-u main"
-           ;;
-       solaris2*)
-           if test "$GXX" != yes ; then
-               CXX_AR='$(CXX)'
-               CXX_AR_OPTS='-xar -o'
-           fi
-           ;;
-       esac
-       AC_SUBST(CXXLDFLAGS)
-       AC_SUBST(CXX_AR)
-       AC_SUBST(CXX_AR_OPTS)
+       CF_CXX_AR_FLAGS
 else
        cf_cxx_library=no
        cf_cv_builtin_bool=1
 else
        cf_cxx_library=no
        cf_cv_builtin_bool=1
@@ -1269,9 +1829,9 @@ else
                        CF_BOOL_SIZE
                else
                        AC_MSG_CHECKING(for fallback type of bool)
                        CF_BOOL_SIZE
                else
                        AC_MSG_CHECKING(for fallback type of bool)
-                       case "$host_cpu" in #(vi
-                       i?86)   cf_cv_type_of_bool=char ;; #(vi
-                       *)      cf_cv_type_of_bool=int  ;;
+                       case "$host_cpu" in
+                       (i?86)  cf_cv_type_of_bool=char ;;
+                       (*)     cf_cv_type_of_bool=int  ;;
                        esac
                        AC_MSG_RESULT($cf_cv_type_of_bool)
                fi
                        esac
                        AC_MSG_RESULT($cf_cv_type_of_bool)
                fi
@@ -1301,91 +1861,51 @@ AC_SUBST(USE_CXX_BOOL)
 
 CF_HELP_MESSAGE(Ada95 Binding Options:)
 
 
 CF_HELP_MESSAGE(Ada95 Binding Options:)
 
+dnl If the Ada95 source-tree is present, add that to the build unless it will
+dnl not work, or was not requested.
+if test -f "${srcdir}/Ada95/Makefile.in" ; then
+
+dnl libtool does not know anything about GNAT, though a change made in 1998
+dnl provided for it "someday".  Disable the ada subtree if we are using
+dnl libtool -TD 20070714
+       if test "$cf_with_ada" != "no" ; then
+               if test "$with_libtool" != "no"; then
+                       AC_MSG_WARN(libtool does not support Ada - disabling feature)
+                       cf_with_ada=no
+               fi
+       fi
+
 dnl Check for availability of GNU Ada Translator (GNAT).
 dnl At the moment we support no other Ada95 compiler.
 dnl Check for availability of GNU Ada Translator (GNAT).
 dnl At the moment we support no other Ada95 compiler.
-if test -f "${srcdir}/Ada95/Makefile.in" ; then
-if test "$cf_with_ada" != "no" ; then
-cf_ada_make=gnatmake
-AC_CHECK_PROG(gnat_exists, $cf_ada_make, yes, no)
-if test "$ac_cv_prog_gnat_exists" = no; then
-   cf_ada_make=
-else
-   CF_GNAT_VERSION
-   AC_CHECK_PROG(M4_exists, m4, yes, no)
-   if test "$ac_cv_prog_M4_exists" = no; then
-      cf_cv_prog_gnat_correct=no
-      echo Ada95 binding required program m4 not found. Ada95 binding disabled.
-   fi
-   if test "$cf_cv_prog_gnat_correct" = yes; then
-      AC_MSG_CHECKING(if GNAT works)
-      CF_GNAT_TRY_RUN([procedure conftest;],
-[with Text_IO;
-with GNAT.OS_Lib;
-procedure conftest is
-begin
-   Text_IO.Put ("Hello World");
-   Text_IO.New_Line;
-   GNAT.OS_Lib.OS_Exit (0);
-end conftest;],[cf_cv_prog_gnat_correct=yes],[cf_cv_prog_gnat_correct=no])
-      AC_MSG_RESULT($cf_cv_prog_gnat_correct)
-   fi
-fi
-if test        "$cf_cv_prog_gnat_correct" = yes; then
-   ADAFLAGS="-O3 -gnatpn $ADAFLAGS"
-
-   AC_MSG_CHECKING(if GNAT pragma Unreferenced works)
-   CF_GNAT_TRY_LINK([procedure conftest;],
-[with Text_IO;
-with GNAT.OS_Lib;
-procedure conftest is
-   test : Integer;
-   pragma Unreferenced (test);
-begin
-   test := 1;
-   Text_IO.Put ("Hello World");
-   Text_IO.New_Line;
-   GNAT.OS_Lib.OS_Exit (0);
-end conftest;],[cf_cv_pragma_unreferenced=yes],[cf_cv_pragma_unreferenced=no])
-   AC_MSG_RESULT($cf_cv_pragma_unreferenced)
-
-   # if the pragma is supported, use it (needed in the Trace code).
-   if test $cf_cv_pragma_unreferenced = yes ; then
-      PRAGMA_UNREF=TRUE
-   else
-      PRAGMA_UNREF=FALSE
-   fi
-
-   AC_ARG_WITH(ada-compiler,
-       [  --with-ada-compiler=CMD specify Ada95 compiler command (default gnatmake)],
-       [cf_ada_compiler=$withval],
-       [cf_ada_compiler=gnatmake])
-
-   cf_ada_package=terminal_interface
-
-   AC_SUBST(cf_ada_make)
-   AC_SUBST(cf_ada_compiler)
-   AC_SUBST(cf_ada_package)
-   AC_SUBST(ADAFLAGS)
-   AC_SUBST(cf_compile_generics)
-   AC_SUBST(cf_generic_objects)
-   AC_SUBST(PRAGMA_UNREF)
-
-   CF_WITH_PATH(ada-include,
-       [  --with-ada-include=DIR  Ada includes are in DIR],
-       ADA_INCLUDE,
-       PREFIX/lib/ada/adainclude,
-       [$]prefix/lib/ada/adainclude)
-   AC_SUBST(ADA_INCLUDE)
-
-   CF_WITH_PATH(ada-objects,
-       [  --with-ada-objects=DIR  Ada objects are in DIR],
-       ADA_OBJECTS,
-       PREFIX/lib/ada/adalib,
-       [$]prefix/lib/ada/adalib)
-   AC_SUBST(ADA_OBJECTS)
+       if test "$cf_with_ada" != "no" ; then
+               CF_PROG_GNAT
+               if test "x$cf_cv_prog_gnat_correct" = xyes; then
+                       CF_ADD_ADAFLAGS(-gnatpn)
+                       CF_FIXUP_ADAFLAGS
 
 
+                       CF_GNATPREP_OPT_T
+
+                       CF_GNAT_GENERICS
+                       CF_GNAT_SIGINT
+                       CF_GNAT_PROJECTS
+
+                       CF_WITH_ADA_COMPILER
+
+                       cf_ada_package=terminal_interface
+                       AC_SUBST(cf_ada_package)
+
+                       CF_WITH_ADA_INCLUDE
+                       CF_WITH_ADA_OBJECTS
+                       CF_WITH_ADA_SHAREDLIB
+               fi
+       fi
+else
+       cf_with_ada=no
 fi
 fi
-fi
+
+# do this "late" to avoid conflict with header-checks
+if test "x$with_widec" = xyes ; then
+       AC_CHECK_SIZEOF(wchar_t)
 fi
 
 ### Construct the ncurses library-subsets, if any, from this set of keywords:
 fi
 
 ### Construct the ncurses library-subsets, if any, from this set of keywords:
@@ -1401,15 +1921,18 @@ fi
 AC_MSG_CHECKING(for library subsets)
 LIB_SUBSETS=
 
 AC_MSG_CHECKING(for library subsets)
 LIB_SUBSETS=
 
-test "$cf_with_progs"  = yes && LIB_SUBSETS="${LIB_SUBSETS}ticlib"
-if test "$with_ticlib" != no ; then
-       LIB_SUBSETS="${LIB_SUBSETS} "
-else
-       LIB_SUBSETS="${LIB_SUBSETS}+"
+if test "x$cf_with_progs" = xyes || test "$with_ticlib" != no || test "$with_termcap" != no; then
+       LIB_SUBSETS="${LIB_SUBSETS}ticlib"
+       if test "$with_ticlib" != no ; then
+               LIB_SUBSETS="${LIB_SUBSETS} "
+       else
+               LIB_SUBSETS="${LIB_SUBSETS}+"
+       fi
 fi
 
 LIB_SUBSETS="${LIB_SUBSETS}termlib"
 fi
 
 LIB_SUBSETS="${LIB_SUBSETS}termlib"
-test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_tinfo"
+test "x$with_ext_funcs" = xyes && LIB_SUBSETS="${LIB_SUBSETS}+ext_tinfo"
+
 if test "$with_termlib" != no ; then
        LIB_SUBSETS="${LIB_SUBSETS} "
 else
 if test "$with_termlib" != no ; then
        LIB_SUBSETS="${LIB_SUBSETS} "
 else
@@ -1417,8 +1940,24 @@ else
 fi
 
 LIB_SUBSETS="${LIB_SUBSETS}base"
 fi
 
 LIB_SUBSETS="${LIB_SUBSETS}base"
-test "$with_widec"     = yes && LIB_SUBSETS="${LIB_SUBSETS}+widechar"
-test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_funcs"
+
+# Most term-driver calls are to tinfo, but some like init_pair are to the
+# base library (so it resides in base).
+if test "$with_term_driver" != no ; then
+       LIB_SUBSETS="${LIB_SUBSETS}+port_drivers"
+       case $cf_cv_system_name in
+       (*mingw32*|*mingw64*)
+               LIB_SUBSETS="${LIB_SUBSETS}+port_tinfo+port_win32con"
+               CPPFLAGS="$CPPFLAGS -DUSE_WIN32CON_DRIVER"
+               ;;
+       (*)
+               LIB_SUBSETS="${LIB_SUBSETS}+port_tinfo"
+               ;;
+       esac
+fi
+
+test "x$with_widec"     = xyes && LIB_SUBSETS="${LIB_SUBSETS}+widechar"
+test "x$with_ext_funcs" = xyes && LIB_SUBSETS="${LIB_SUBSETS}+ext_funcs"
 
 AC_MSG_RESULT($LIB_SUBSETS)
 
 
 AC_MSG_RESULT($LIB_SUBSETS)
 
@@ -1433,14 +1972,7 @@ AC_SUBST(DFT_ARG_SUFFIX)dnl the string to append to "-lncurses" ("")
 AC_MSG_RESULT($DFT_ARG_SUFFIX)
 
 AC_MSG_CHECKING(default library-dependency suffix)
 AC_MSG_RESULT($DFT_ARG_SUFFIX)
 
 AC_MSG_CHECKING(default library-dependency suffix)
-CF_LIB_SUFFIX($DFT_LWR_MODEL,DFT_DEP_SUFFIX)dnl
-if test $DFT_LWR_MODEL = shared ; then
-       case $cf_cv_system_name in #(vi
-       cygwin*)
-               DFT_DEP_SUFFIX=".dll.a"
-               ;;
-       esac
-fi
+CF_LIB_SUFFIX($DFT_LWR_MODEL,DFT_LIB_SUFFIX,DFT_DEP_SUFFIX)dnl
 AC_SUBST(DFT_DEP_SUFFIX)dnl the corresponding library-suffix (".a")
 AC_MSG_RESULT($DFT_DEP_SUFFIX)
 
 AC_SUBST(DFT_DEP_SUFFIX)dnl the corresponding library-suffix (".a")
 AC_MSG_RESULT($DFT_DEP_SUFFIX)
 
@@ -1449,56 +1981,89 @@ CF_OBJ_SUBDIR($DFT_LWR_MODEL,DFT_OBJ_SUBDIR)dnl
 AC_SUBST(DFT_OBJ_SUBDIR)dnl the default object-directory ("obj")
 AC_MSG_RESULT($DFT_OBJ_SUBDIR)
 
 AC_SUBST(DFT_OBJ_SUBDIR)dnl the default object-directory ("obj")
 AC_MSG_RESULT($DFT_OBJ_SUBDIR)
 
-# libtool thinks it can make c++ shared libraries (perhaps only g++)
-if test "$cf_with_cxx" = yes ; then
+if test "x$cf_with_cxx" = xyes ; then
 AC_MSG_CHECKING(c++ library-dependency suffix)
 if test "$with_libtool" != "no"; then
 AC_MSG_CHECKING(c++ library-dependency suffix)
 if test "$with_libtool" != "no"; then
+       # libtool thinks it can make c++ shared libraries (perhaps only g++)
+       CXX_LIB_SUFFIX=$DFT_DEP_SUFFIX
+elif test "$with_shared_cxx" != "no"; then
+       # also for g++ users...
        CXX_LIB_SUFFIX=$DFT_DEP_SUFFIX
 else
        CXX_LIB_SUFFIX=$DFT_DEP_SUFFIX
 else
-       CF_LIB_SUFFIX(normal,CXX_LIB_SUFFIX)dnl we normally make a static library
+       # we normally make a static library because C/C++ library rules differ
+       CF_LIB_SUFFIX(normal,CXX_LIB_SUFFIX,CXX_DEP_SUFFIX)
 fi
 AC_MSG_RESULT($CXX_LIB_SUFFIX)
 AC_SUBST(CXX_LIB_SUFFIX)
 fi
 
 fi
 AC_MSG_RESULT($CXX_LIB_SUFFIX)
 AC_SUBST(CXX_LIB_SUFFIX)
 fi
 
+# do not want -ldl in build except as needed for -lncurses dependency
+if test "x$with_dlsym" = xyes ; then
+if test $DFT_LWR_MODEL = shared || \
+   test $DFT_LWR_MODEL = libtool ; then
+       CF_REMOVE_LIB(LIBS,$LIBS,dl)
+fi
+fi
 ### Set up low-level terminfo dependencies for makefiles.
 
 ### Set up low-level terminfo dependencies for makefiles.
 
-# TICS_LIST and TINFO_LIST are needed to build the libtic.so and libterm.so
-TICS_LIST="$SHLIB_LIST"
-TINFO_LIST="$SHLIB_LIST"
+# TICS_LIST and TINFO_LIST are needed to build libtic.so and libterm.so, but
+# do not need libdl
+TICS_LIST=
+if test "x$with_dlsym" = xyes ; then
+       CF_REMOVE_LIB(TINFO_LIST,$SHLIB_LIST,dl)
+fi
+
+USE_ARG_SUFFIX="${DFT_ARG_SUFFIX}${EXTRA_SUFFIX}"
+USE_LIB_SUFFIX="${LIB_SUFFIX}${EXTRA_SUFFIX}"
+USE_CFG_SUFFIX=${DFT_ARG_SUFFIX}${cf_cv_abi_version}
+if test -n "$EXTRA_SUFFIX" && test "x$EXTRA_SUFFIX" != "x${cf_cv_abi_version}"
+then
+       USE_CFG_SUFFIX="${USE_CFG_SUFFIX}${EXTRA_SUFFIX}"
+fi
+AC_SUBST(USE_ARG_SUFFIX)
+AC_SUBST(USE_CFG_SUFFIX)
+AC_SUBST(USE_LIB_SUFFIX)
 
 if test "$with_ticlib" != no ; then
 
 
 if test "$with_ticlib" != no ; then
 
-       if test "$with_ticlib" != yes ; then
+       if test "x$with_ticlib" != xyes ; then
                TICS_NAME=$with_ticlib
                TICS_NAME=$with_ticlib
-               TICS_ARG_SUFFIX="${with_ticlib}`echo ${DFT_ARG_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
+               TICS_SUFFIX="`echo ${DFT_LIB_SUFFIX}|sed -e "s/^${USE_LIB_SUFFIX}//"`"
+               TICS_ARG_SUFFIX="${with_ticlib}`echo ${USE_ARG_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
                TICS_DEP_SUFFIX="${with_ticlib}`echo ${DFT_DEP_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
                TICS_LIB_SUFFIX="${with_ticlib}"
        else
                TICS_DEP_SUFFIX="${with_ticlib}`echo ${DFT_DEP_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
                TICS_LIB_SUFFIX="${with_ticlib}"
        else
-               TICS_ARG_SUFFIX="${TICS_NAME}${DFT_ARG_SUFFIX}"
+               TICS_SUFFIX=${DFT_LIB_SUFFIX}
+               TICS_ARG_SUFFIX="${TICS_NAME}${USE_ARG_SUFFIX}"
                TICS_DEP_SUFFIX="${TICS_NAME}${DFT_DEP_SUFFIX}"
                TICS_DEP_SUFFIX="${TICS_NAME}${DFT_DEP_SUFFIX}"
-               TICS_LIB_SUFFIX="${TICS_NAME}${LIB_SUFFIX}"
+               TICS_LIB_SUFFIX="${TICS_NAME}${USE_LIB_SUFFIX}"
        fi
        fi
-       TICS_ARGS="-L${LIB_DIR} -l${TICS_LIB_SUFFIX}"
+       TICS_LDFLAGS="-L${LIB_DIR}"
+       TICS_LIBS="-l${TICS_ARG_SUFFIX}"
 else
 else
-       TICS_ARGS="-L${LIB_DIR} -l${LIB_NAME}${DFT_ARG_SUFFIX}"
+       TICS_SUFFIX=${DFT_LIB_SUFFIX}
+       TICS_LDFLAGS="-L${LIB_DIR}"
+       TICS_LIBS="-l${LIB_NAME}${USE_ARG_SUFFIX}"
 fi
 AC_SUBST(TICS_ARG_SUFFIX)
 AC_SUBST(TICS_DEP_SUFFIX)
 AC_SUBST(TICS_LIB_SUFFIX)
 fi
 AC_SUBST(TICS_ARG_SUFFIX)
 AC_SUBST(TICS_DEP_SUFFIX)
 AC_SUBST(TICS_LIB_SUFFIX)
-AC_SUBST(TICS_ARGS)
+AC_SUBST(TICS_LDFLAGS)
+AC_SUBST(TICS_LIBS)
 
 if test "$with_termlib" != no ; then
 
 
 if test "$with_termlib" != no ; then
 
-       if test "$with_termlib" != yes ; then
+       if test "x$with_termlib" != xyes ; then
                TINFO_NAME=$with_termlib
                TINFO_NAME=$with_termlib
-               TINFO_ARG_SUFFIX="${with_termlib}`echo ${DFT_ARG_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
+               TINFO_SUFFIX="`echo ${DFT_LIB_SUFFIX}|sed -e "s/^${USE_LIB_SUFFIX}//"`"
+               TINFO_ARG_SUFFIX="${with_termlib}`echo ${USE_ARG_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
                TINFO_DEP_SUFFIX="${with_termlib}`echo ${DFT_DEP_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
                TINFO_LIB_SUFFIX="${with_termlib}"
        else
                TINFO_DEP_SUFFIX="${with_termlib}`echo ${DFT_DEP_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
                TINFO_LIB_SUFFIX="${with_termlib}"
        else
-               TINFO_ARG_SUFFIX="${TINFO_NAME}${DFT_ARG_SUFFIX}"
+               TINFO_SUFFIX=${DFT_LIB_SUFFIX}
+               TINFO_ARG_SUFFIX="${TINFO_NAME}${USE_ARG_SUFFIX}"
                TINFO_DEP_SUFFIX="${TINFO_NAME}${DFT_DEP_SUFFIX}"
                TINFO_DEP_SUFFIX="${TINFO_NAME}${DFT_DEP_SUFFIX}"
-               TINFO_LIB_SUFFIX="${TINFO_NAME}${LIB_SUFFIX}"
+               TINFO_LIB_SUFFIX="${TINFO_NAME}${USE_LIB_SUFFIX}"
        fi
 
        TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${TINFO_DEP_SUFFIX}"
        fi
 
        TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${TINFO_DEP_SUFFIX}"
@@ -1506,30 +2071,82 @@ if test "$with_termlib" != no ; then
        if test "$DFT_LWR_MODEL" = "libtool"; then
                TEST_ARGS="${TEST_DEPS}"
                TEST_ARG2="${TEST_DEP2}"
        if test "$DFT_LWR_MODEL" = "libtool"; then
                TEST_ARGS="${TEST_DEPS}"
                TEST_ARG2="${TEST_DEP2}"
-               TINFO_ARGS="-L${LIB_DIR} $TEST_ARGS"
+               TINFO_LDFLAGS="-L${LIB_DIR}"
+               TINFO_LIBS="$TEST_ARGS"
+               TICS_LIST="$SHLIB_LIST $TEST_ARGS"
+               SHLIB_LIST="${SHLIB_LIST} $TEST_ARGS"
        else
                TEST_ARGS="-l${TINFO_ARG_SUFFIX}"
                TEST_ARG2="-l${TINFO_ARG_SUFFIX}"
        else
                TEST_ARGS="-l${TINFO_ARG_SUFFIX}"
                TEST_ARG2="-l${TINFO_ARG_SUFFIX}"
-               TINFO_ARGS="-L${LIB_DIR} $TEST_ARGS"
+               if test "x$with_term_driver" != xno ; then
+                       TICS_LIST="$SHLIB_LIST -l${LIB_NAME}${USE_ARG_SUFFIX}"
+                       TICS_LIBS="$TICS_LIBS -l${LIB_NAME}${USE_ARG_SUFFIX}"
+                       TINFO_LIBS="-l${LIB_NAME}${USE_ARG_SUFFIX} $TEST_ARGS"
+               else
+                       TICS_LIST="$SHLIB_LIST -l${TINFO_LIB_SUFFIX}"
+                       TINFO_LIBS="$TEST_ARGS"
+               fi
+               TINFO_LDFLAGS="-L${LIB_DIR}"
                SHLIB_LIST="$SHLIB_LIST -l${TINFO_LIB_SUFFIX}"
        fi
 else
                SHLIB_LIST="$SHLIB_LIST -l${TINFO_LIB_SUFFIX}"
        fi
 else
-       TINFO_ARGS="-L${LIB_DIR} -l${LIB_NAME}${DFT_ARG_SUFFIX}"
+       # the next lines are needed for linking libtic over libncurses
+       TINFO_NAME=${LIB_NAME}
+       TINFO_SUFFIX=${DFT_LIB_SUFFIX}
+       TINFO_ARG_SUFFIX=${LIB_NAME}${USE_ARG_SUFFIX}
+       if test "x$with_tic_depends" = xyes ; then
+               TICS_LIST="$SHLIB_LIST -l${LIB_NAME}${USE_ARG_SUFFIX}"
+       else
+               TICS_LIST="$SHLIB_LIST"
+       fi
+
+       TINFO_LDFLAGS="-L${LIB_DIR}"
+       TINFO_LIBS="-l${LIB_NAME}${USE_ARG_SUFFIX}"
 fi
 fi
+
+if test "$DFT_LWR_MODEL" = shared ; then
+       case $cf_cv_system_name in
+       (cygwin*|msys*)
+               # "lib" files have ".dll.a" suffix, "cyg"or "msys-" files have ".dll"
+               TINFO_SUFFIX=.dll
+               ;;
+       esac
+fi
+
 AC_SUBST(TINFO_ARG_SUFFIX)
 AC_SUBST(TINFO_DEP_SUFFIX)
 AC_SUBST(TINFO_LIB_SUFFIX)
 AC_SUBST(TINFO_ARG_SUFFIX)
 AC_SUBST(TINFO_DEP_SUFFIX)
 AC_SUBST(TINFO_LIB_SUFFIX)
-AC_SUBST(TINFO_ARGS)
+AC_SUBST(TINFO_LDFLAGS)
+AC_SUBST(TINFO_LIBS)
+
+if test "x$with_dlsym" = xyes ; then
+       CF_REMOVE_LIB(TICS_LIST,$TICS_LIST,dl)
+fi
+
+if test "$DFT_LWR_MODEL" = "libtool"; then
+       OBJEXT=lo
+fi
 
 # needed for Ada95
 
 # needed for Ada95
-TINFO_ARGS2=`echo "$TINFO_ARGS" | sed -e 's,-L\.\./,-L../../,'`
-AC_SUBST(TINFO_ARGS2)
+TINFO_LDFLAGS2=`echo "$TINFO_LDFLAGS" | sed -e 's,-L\.\./,-L../../,'`
+AC_SUBST(TINFO_LDFLAGS2)
+
+case $DFT_LWR_MODEL in
+(normal|debug|profile)
+       CF_LDFLAGS_STATIC
+       ;;
+esac
 
 AC_MSG_CHECKING(where we will install curses.h)
 
 AC_MSG_CHECKING(where we will install curses.h)
-test "$with_overwrite" = no && \
-test "x$includedir" = 'x${prefix}/include' && \
-       includedir='${prefix}/include/ncurses'${LIB_SUFFIX}
-AC_MSG_RESULT($includedir)
+AC_SUBST(includesubdir)
+includesubdir=
+if test "$with_overwrite" = no && \
+ ( test "x$includedir" = 'x${prefix}/include' || \
+   test "x$includedir" = "x${prefix}/include" )
+then
+       includesubdir="/ncurses${USE_LIB_SUFFIX}"
+fi
+AC_MSG_RESULT(${includedir}${includesubdir})
 
 ### Resolve a conflict between normal and wide-curses by forcing applications
 ### that will need libutf8 to add it to their configure script.
 
 ### Resolve a conflict between normal and wide-curses by forcing applications
 ### that will need libutf8 to add it to their configure script.
@@ -1539,8 +2156,10 @@ if test "$NCURSES_LIBUTF8" = 1 ; then
        AC_MSG_WARN(Wide-character applications must define HAVE_LIBUTF8_H to include curses.h)
 fi
 fi
        AC_MSG_WARN(Wide-character applications must define HAVE_LIBUTF8_H to include curses.h)
 fi
 fi
+WITH_OVERWRITE=$with_overwrite
 
 AC_SUBST(WITH_OVERWRITE)
 
 AC_SUBST(WITH_OVERWRITE)
+AC_SUBST(TICS_LIST)
 AC_SUBST(TINFO_LIST)
 AC_SUBST(SHLIB_LIST)
 
 AC_SUBST(TINFO_LIST)
 AC_SUBST(SHLIB_LIST)
 
@@ -1549,51 +2168,244 @@ NCURSES_TREE=
 AC_SUBST(NCURSES_TREE)
 
 ### predefined stuff for the test programs
 AC_SUBST(NCURSES_TREE)
 
 ### predefined stuff for the test programs
-AC_DEFINE(HAVE_SLK_COLOR)
+AC_DEFINE(HAVE_SLK_COLOR,1,[Define to 1 if we have slk_color for test-programs])
 
 ### Construct the list of subdirectories for which we'll customize makefiles
 ### with the appropriate compile-rules.
 
 CF_SRC_MODULES($modules_to_build)
 
 ### Construct the list of subdirectories for which we'll customize makefiles
 ### with the appropriate compile-rules.
 
 CF_SRC_MODULES($modules_to_build)
+
+if test "x$cf_with_ada" = "xyes" && test "x$cf_cv_prog_gnat_correct" = "xyes"; then
+   SUB_MAKEFILES="$SUB_MAKEFILES Ada95/gen/adacurses${USE_CFG_SUFFIX}-config:Ada95/gen/adacurses-config.in"
+   SUB_MAKEFILES="$SUB_MAKEFILES man/adacurses${USE_CFG_SUFFIX}-config.1:man/MKada_config.in"
+fi
+
 CF_DIRS_TO_MAKE
 
 CF_DIRS_TO_MAKE
 
-AC_DEFINE_UNQUOTED(NCURSES_PATHSEP,'$PATHSEP')
+# symbols that differ when compiling Ada95 by itself.
+NCURSES_SHLIB2=$SHELL' $(top_srcdir)/misc/shlib'
+AC_SUBST(NCURSES_SHLIB2)
+
+# values to use as strings
+AC_DEFINE_UNQUOTED(NCURSES_PATHSEP,'$PATH_SEPARATOR',[Define to override ':' as library path-separator])
 
 
-AC_DEFINE_UNQUOTED(NCURSES_VERSION_STRING, "${NCURSES_MAJOR}.${NCURSES_MINOR}.${NCURSES_PATCH}")
+AC_DEFINE_UNQUOTED(NCURSES_VERSION_STRING, "${NCURSES_MAJOR}.${NCURSES_MINOR}.${NCURSES_PATCH}",[Define to 1 if machine has ample memory for tic])
 
 ### Now that we're done running tests, add the compiler-warnings, if any
 CF_ADD_CFLAGS($EXTRA_CFLAGS)
 
 ### Define substitutions for header files to avoid name-pollution
 
 ### Now that we're done running tests, add the compiler-warnings, if any
 CF_ADD_CFLAGS($EXTRA_CFLAGS)
 
 ### Define substitutions for header files to avoid name-pollution
-CF_SUBST_IF(["$cf_cv_have_tcgetattr" = yes], HAVE_TCGETATTR, 1, 0)
-CF_SUBST_IF(["$ac_cv_header_termio_h" = yes], HAVE_TERMIO_H, 1, 0)
-CF_SUBST_IF(["$ac_cv_header_termios_h" = yes], HAVE_TERMIOS_H, 1, 0)
+CF_SUBST_IF(["x$cf_cv_have_tcgetattr" = xyes], HAVE_TCGETATTR, 1, 0)
+CF_SUBST_IF(["x$ac_cv_header_stdint_h" = xyes], HAVE_STDINT_H, 1, 0)
+CF_SUBST_IF(["x$ac_cv_header_termio_h" = xyes], HAVE_TERMIO_H, 1, 0)
+CF_SUBST_IF(["x$ac_cv_header_termios_h" = xyes], HAVE_TERMIOS_H, 1, 0)
 
 ################################################################################
 
 ################################################################################
-test "$use_database" = yes && SUB_MAKEFILES="$SUB_MAKEFILES misc/run_tic.sh:misc/run_tic.in"
+test "x$use_database" = xyes && \
+SUB_MAKEFILES="$SUB_MAKEFILES misc/run_tic.sh:misc/run_tic.in"
+
 SUB_MAKEFILES="$SUB_MAKEFILES misc/ncurses-config:misc/ncurses-config.in"
 SUB_MAKEFILES="$SUB_MAKEFILES misc/ncurses-config:misc/ncurses-config.in"
+SUB_MAKEFILES="$SUB_MAKEFILES man/ncurses${USE_CFG_SUFFIX}-config.1:man/MKncu_config.in"
+
+if test "x$enable_pc_files" = xyes && test -z "$MAKE_PC_FILES" ; then
+SUB_MAKEFILES="$SUB_MAKEFILES misc/gen-pkgconfig:misc/gen-pkgconfig.in"
+fi
+AC_SUBST(cross_compiling)
+
+AC_PATH_PROG(TIC_PATH,tic,unknown,$PATH:/usr/local/ncurses/bin)
+if test -n "$FALLBACK_LIST"
+then
+       if test "$TIC_PATH" = unknown
+       then
+               AC_MSG_WARN(no tic program found for fallbacks)
+       fi
+fi
+AC_SUBST(TIC_PATH)
+
+if test "x$cf_with_tests" != xno ; then
+       MAKE_TESTS=
+else
+       MAKE_TESTS="#"
+fi
+AC_SUBST(MAKE_TESTS)
+
+ADAHTML_DIR=../../doc/html/ada
+AC_SUBST(ADAHTML_DIR)
+
+# these could be configurable, but are not currently
+PANEL_NAME=panel
+MENU_NAME=menu
+FORM_NAME=form
+CXX_NAME=ncurses++
+
+AC_SUBST(PANEL_NAME)
+AC_SUBST(MENU_NAME)
+AC_SUBST(FORM_NAME)
+AC_SUBST(CXX_NAME)
+
+# workaround for OS/2 (20151017)
+case $cf_cv_system_name in
+(os2*)
+       LIBTOOL_OPTS_CXX="-os2dllname ncurs++"
+       ;;
+(*)
+       LIBTOOL_OPTS_CXX=
+       ;;
+esac
+AC_SUBST(LIBTOOL_OPTS_CXX)
+
+# workaround for g++ versus Solaris (20131116)
+case $cf_cv_system_name in
+(solaris2*)
+       case "x$CPPFLAGS" in
+       (*-D_XOPEN_SOURCE_EXTENDED*)
+               CF_VERBOSE(moving _XOPEN_SOURCE_EXTENDED to work around g++ problem)
+               CFLAGS="$CFLAGS -D_XOPEN_SOURCE_EXTENDED"
+               CPPFLAGS=`echo "x$CPPFLAGS" | sed -e  's/^.//' -e 's/-D_XOPEN_SOURCE_EXTENDED//'`
+               ;;
+       esac
+       ;;
+esac
+
+# Help to automatically enable the extended curses features when using either
+# the *-config or the ".pc" files by adding defines.
+AC_MSG_CHECKING(for defines to add to ncurses${USE_CFG_SUFFIX}-config script)
+PKG_CFLAGS=
+for cf_loop1 in $CPPFLAGS_after_XOPEN
+do
+       cf_found=no
+       for cf_loop2 in $CPPFLAGS_before_XOPEN
+       do
+               if test "x$cf_loop1" = "x$cf_loop2"
+               then
+                       cf_found=yes
+                       break
+               fi
+       done
+       test "$cf_found" = no && PKG_CFLAGS="$PKG_CFLAGS $cf_loop1"
+done
+AC_MSG_RESULT($PKG_CFLAGS)
+AC_SUBST(PKG_CFLAGS)
+
+# AC_CHECK_SIZEOF demands a literal parameter, no variables.  So we do this.
+case "x$NCURSES_OSPEED" in
+(*short*)
+       cf_compatible=1
+       ;;
+(*)
+       cf_compatible=0
+       ;;
+esac
+AC_DEFINE_UNQUOTED(NCURSES_OSPEED_COMPAT,$cf_compatible,[Define to 1 if termcap variable ospeed is short])
+
+case "x$cf_cv_typeof_chtype" in
+(xshort|xint|xlong)
+       cf_cv_typeof_chtype="unsigned $cf_cv_typeof_chtype"
+       ;;
+esac
+
+case "x$cf_cv_typeof_mmask_t" in
+(xshort|xint|xlong)
+       cf_cv_typeof_mmask_t="unsigned $cf_cv_typeof_mmask_t"
+       ;;
+esac
+
+# substitute into misc/Makefile to suppress
+# (un)install.data from the
+# (un)install rules.
+if test "x$cf_with_db_install" = "xno"; then
+       MISC_INSTALL_DATA=
+       MISC_UNINSTALL_DATA=
+else
+       MISC_INSTALL_DATA=install.data
+       MISC_UNINSTALL_DATA=uninstall.data
+fi
+AC_SUBST(MISC_INSTALL_DATA)
+AC_SUBST(MISC_UNINSTALL_DATA)
+
+SUB_SCRIPTS=
+
+dnl Override the package used for exported symbols
+if test -n "$PACKAGE"
+then
+       PACKAGE="${PACKAGE}${DFT_ARG_SUFFIX}"
+       export PACKAGE
+       echo "package: $PACKAGE"
+fi
+
+UNALTERED_SYMS=
+cf_filter_syms=no
+
+if test -n "$RESULTING_SYMS"
+then
+       cf_filter_syms=$cf_dft_filter_syms
+       CF_VERBOSE(will map symbols to ABI=$cf_cv_abi_version)
+fi
+
+if test "x$WILDCARD_SYMS" = xno
+then
+       cf_filter_syms=yes
+fi
+
+test "x$cf_with_trace" = xyes && NCURSES_INLINE=
+
+UNALTERED_SYMS=`echo "$RESULTING_SYMS" | sed -e 's/\\$/\\\\$/g'`
+if test $cf_filter_syms = yes
+then
+       RESULTING_SYMS=resulting.map
+fi
+AC_SUBST(UNALTERED_SYMS)
+
+if test "x$cross_compiling" = xyes ; then
+       ADAGEN_LDFLAGS='$(CROSS_LDFLAGS)'
+       CHECK_BUILD="#"
+else
+       ADAGEN_LDFLAGS='$(NATIVE_LDFLAGS)'
+       CHECK_BUILD=
+fi
+AC_SUBST(ADAGEN_LDFLAGS)
+AC_SUBST(CHECK_BUILD)
+AC_SUBST(PRIVATE_LIBS)
+
+AC_DEFINE(HAVE_CURSES_DATA_BOOLNAMES,1,[definition needed for in-tree build of tack])
+
 AC_OUTPUT( \
        include/MKterm.h.awk \
        include/curses.head:include/curses.h.in \
 AC_OUTPUT( \
        include/MKterm.h.awk \
        include/curses.head:include/curses.h.in \
+       include/ncurses_dll.h \
        include/termcap.h \
        include/unctrl.h \
        include/termcap.h \
        include/unctrl.h \
+       $SUB_SCRIPTS \
        $SUB_MAKEFILES \
        Makefile,[
        $SUB_MAKEFILES \
        Makefile,[
-CF_PRG_RULES([$srcdir/test/mk-test.awk ECHO_LINK="$ECHO_LINK"], test)
+if test "x$cf_with_tests" != xno ; then
+       CF_PRG_RULES([$srcdir/test/mk-test.awk INSTALL=no ECHO_LINK="$ECHO_LD"], test)
+fi
 CF_LIB_RULES($SRC_SUBDIRS)
 CF_LIB_RULES($SRC_SUBDIRS)
+
+if test "x$cf_with_ada" = "xyes" && test "x$cf_cv_prog_gnat_correct" = "xyes"; then
+if test -z "$USE_OLD_MAKERULES" ; then
+       $AWK -f $srcdir/Ada95/mk-1st.awk <$srcdir/Ada95/src/modules >>Ada95/src/Makefile
+fi
+fi
 ],[
 ### Special initialization commands, used to pass information from the
 ### configuration-run into config.status
 
 AWK="$AWK"
 ],[
 ### Special initialization commands, used to pass information from the
 ### configuration-run into config.status
 
 AWK="$AWK"
+ALTERNATE_SYMS="$ALTERNATE_SYMS"
 DFT_ARG_SUFFIX="$DFT_ARG_SUFFIX"
 DFT_LWR_MODEL="$DFT_LWR_MODEL"
 DFT_ARG_SUFFIX="$DFT_ARG_SUFFIX"
 DFT_LWR_MODEL="$DFT_LWR_MODEL"
-ECHO_LINK="$ECHO_LINK"
+ECHO_LD="$ECHO_LD"
+EXTRA_SUFFIX="$EXTRA_SUFFIX"
 LDCONFIG="$LDCONFIG"
 LDCONFIG="$LDCONFIG"
+LIBTOOL_VERSION="$LIBTOOL_VERSION"
 LIB_NAME="$LIB_NAME"
 LIB_NAME="$LIB_NAME"
+LIB_PREFIX="$LIB_PREFIX"
 LIB_SUBSETS="$LIB_SUBSETS"
 LIB_SUFFIX="$LIB_SUFFIX"
 LIB_TRACING="$LIB_TRACING"
 LIB_SUBSETS="$LIB_SUBSETS"
 LIB_SUFFIX="$LIB_SUFFIX"
 LIB_TRACING="$LIB_TRACING"
+LN_S="$LN_S"
 MAKE_TERMINFO="$MAKE_TERMINFO"
 NCURSES_MAJOR="$NCURSES_MAJOR"
 NCURSES_MINOR="$NCURSES_MINOR"
 MAKE_TERMINFO="$MAKE_TERMINFO"
 NCURSES_MAJOR="$NCURSES_MAJOR"
 NCURSES_MINOR="$NCURSES_MINOR"
@@ -1601,29 +2413,49 @@ NCURSES_OSPEED="$NCURSES_OSPEED"
 NCURSES_PATCH="$NCURSES_PATCH"
 SRC_SUBDIRS="$SRC_SUBDIRS"
 TERMINFO="$TERMINFO"
 NCURSES_PATCH="$NCURSES_PATCH"
 SRC_SUBDIRS="$SRC_SUBDIRS"
 TERMINFO="$TERMINFO"
-TINFO_ARG_SUFFIX="$TINFO_ARG_SUFFIX"
-TINFO_LIB_SUFFIX="$TINFO_LIB_SUFFIX"
-TINFO_NAME="$TINFO_NAME"
 TICS_ARG_SUFFIX="$TICS_ARG_SUFFIX"
 TICS_LIB_SUFFIX="$TICS_LIB_SUFFIX"
 TICS_NAME="$TICS_NAME"
 TICS_ARG_SUFFIX="$TICS_ARG_SUFFIX"
 TICS_LIB_SUFFIX="$TICS_LIB_SUFFIX"
 TICS_NAME="$TICS_NAME"
+TICS_SUFFIX="$TICS_SUFFIX"
+TIC_PATH="$TIC_PATH"
+TINFO_ARG_SUFFIX="$TINFO_ARG_SUFFIX"
+TINFO_LIB_SUFFIX="$TINFO_LIB_SUFFIX"
+TINFO_NAME="$TINFO_NAME"
+TINFO_SUFFIX="$TINFO_SUFFIX"
+UNALTERED_SYMS="$UNALTERED_SYMS"
+USE_ARG_SUFFIX="$USE_ARG_SUFFIX"
+USE_CFG_SUFFIX="$USE_CFG_SUFFIX"
+USE_LIB_SUFFIX="$USE_LIB_SUFFIX"
+USE_OLD_MAKERULES="$USE_OLD_MAKERULES"
+WILDCARD_SYMS="$WILDCARD_SYMS"
 WITH_CURSES_H="$with_curses_h"
 WITH_CURSES_H="$with_curses_h"
-WITH_ECHO="$with_echo"
+WITH_ECHO="${enable_echo:=yes}"
 WITH_OVERWRITE="$with_overwrite"
 cf_LIST_MODELS="$cf_list_models"
 cf_cv_abi_version="$cf_cv_abi_version"
 WITH_OVERWRITE="$with_overwrite"
 cf_LIST_MODELS="$cf_list_models"
 cf_cv_abi_version="$cf_cv_abi_version"
+cf_cv_do_relink="$cf_cv_do_relink"
+cf_cv_do_reranlib="$cf_cv_do_reranlib"
 cf_cv_do_symlinks="$cf_cv_do_symlinks"
 cf_cv_enable_lp64="$cf_cv_enable_lp64"
 cf_cv_do_symlinks="$cf_cv_do_symlinks"
 cf_cv_enable_lp64="$cf_cv_enable_lp64"
+cf_cv_enable_opaque="$cf_cv_enable_opaque"
 cf_cv_prog_CC_c_o=$cf_cv_prog_CC_c_o
 cf_cv_prog_CXX_c_o=$cf_cv_prog_CXX_c_o
 cf_cv_prog_CC_c_o=$cf_cv_prog_CC_c_o
 cf_cv_prog_CXX_c_o=$cf_cv_prog_CXX_c_o
+cf_cv_prog_gnat_correct=$cf_cv_prog_gnat_correct
 cf_cv_rel_version="$cf_cv_rel_version"
 cf_cv_rm_so_locs="$cf_cv_rm_so_locs"
 cf_cv_rel_version="$cf_cv_rel_version"
 cf_cv_rm_so_locs="$cf_cv_rm_so_locs"
+cf_cv_shared_soname='$cf_cv_shared_soname'
 cf_cv_shlib_version="$cf_cv_shlib_version"
 cf_cv_shlib_version_infix="$cf_cv_shlib_version_infix"
 cf_cv_system_name="$cf_cv_system_name"
 cf_cv_shlib_version="$cf_cv_shlib_version"
 cf_cv_shlib_version_infix="$cf_cv_shlib_version_infix"
 cf_cv_system_name="$cf_cv_system_name"
+cf_cv_term_driver="$with_term_driver"
+cf_with_ada="$cf_with_ada"
 cf_with_cxx_binding="$cf_with_cxx_binding"
 cf_with_cxx_binding="$cf_with_cxx_binding"
+cf_with_db_install="$cf_with_db_install"
+cf_with_manpages="$cf_with_manpages"
+cf_with_tests="$cf_with_tests"
 host="$host"
 target="$target"
 host="$host"
 target="$target"
+with_shared_cxx="$with_shared_cxx"
 
 ],cat)dnl
 
 ],cat)dnl
-${MAKE-make} preinstall
+${MAKE:-make} preinstall