]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - Ada95/aclocal.m4
ncurses 6.2 - patch 20201010
[ncurses.git] / Ada95 / aclocal.m4
index 32450408ff609e528b10d9e4c3ae91b791e7d06c..225dc220881f97a8ccc52d0635eb0439ff3a9be8 100644 (file)
@@ -1,5 +1,6 @@
 dnl***************************************************************************
-dnl Copyright (c) 2010-2018,2019 Free Software Foundation, Inc.              *
+dnl Copyright 2018-2019,2020 Thomas E. Dickey                                *
+dnl Copyright 2010-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            *
@@ -28,14 +29,16 @@ dnl***************************************************************************
 dnl
 dnl Author: Thomas E. Dickey
 dnl
-dnl $Id: aclocal.m4,v 1.147 2019/11/02 20:56:52 tom Exp $
+dnl $Id: aclocal.m4,v 1.162 2020/09/26 23:08:42 tom Exp $
 dnl Macros used in NCURSES Ada95 auto-configuration script.
 dnl
 dnl These macros are maintained separately from NCURSES.  The copyright on
 dnl this file applies to the aggregation of macros and does not affect use of
 dnl these macros in other applications.
 dnl
-dnl See https://invisible-island.net/autoconf/ for additional information.
+dnl See these pages for additional information:
+dnl            https://invisible-island.net/autoconf/
+dnl            https://invisible-island.net/autoconf/my-autoconf.html
 dnl
 dnl ---------------------------------------------------------------------------
 dnl ---------------------------------------------------------------------------
@@ -97,10 +100,11 @@ AC_DEFUN([CF_ADD_ADAFLAGS],[
        AC_SUBST(ADAFLAGS)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_ADD_CFLAGS version: 13 updated: 2017/02/25 18:57:40
+dnl CF_ADD_CFLAGS version: 14 updated: 2020/04/04 16:16:13
 dnl -------------
 dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS
-dnl The second parameter if given makes this macro verbose.
+dnl $1 = flags to add
+dnl $2 = if given makes this macro verbose.
 dnl
 dnl Put any preprocessor definitions that use quoted strings in $EXTRA_CPPFLAGS,
 dnl to simplify use of $CPPFLAGS in compiler checks, etc., that are easily
@@ -352,6 +356,12 @@ dnl Allow user to disable a normally-on option.
 AC_DEFUN([CF_ARG_DISABLE],
 [CF_ARG_OPTION($1,[$2],[$3],[$4],yes)])dnl
 dnl ---------------------------------------------------------------------------
+dnl CF_ARG_ENABLE version: 3 updated: 1999/03/30 17:24:31
+dnl -------------
+dnl Allow user to enable a normally-off option.
+AC_DEFUN([CF_ARG_ENABLE],
+[CF_ARG_OPTION($1,[$2],[$3],[$4],no)])dnl
+dnl ---------------------------------------------------------------------------
 dnl CF_ARG_OPTION version: 5 updated: 2015/05/10 19:52:14
 dnl -------------
 dnl Restricted form of AC_ARG_ENABLE that ensures user doesn't give bogus
@@ -375,7 +385,7 @@ ifelse([$3],,[    :]dnl
 ])dnl
 ])])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_AR_FLAGS version: 6 updated: 2015/10/10 15:25:05
+dnl CF_AR_FLAGS version: 7 updated: 2020/04/04 11:37:29
 dnl -----------
 dnl Check for suitable "ar" (archiver) options for updating an archive.
 dnl
@@ -386,39 +396,55 @@ AC_DEFUN([CF_AR_FLAGS],[
 AC_REQUIRE([CF_PROG_AR])
 
 AC_CACHE_CHECK(for options to update archives, cf_cv_ar_flags,[
-       cf_cv_ar_flags=unknown
-       for cf_ar_flags in -curvU -curv curv -crv crv -cqv cqv -rv rv
-       do
+       case $cf_cv_system_name in
+       (*-msvc*)
+               cf_cv_ar_flags=''
+               cat >mk_static_lib.sh <<-EOF
+               #!$SHELL
+               MSVC_BIN="[$]AR"
+               out="\[$]1"
+               shift
+               exec \[$]MSVC_BIN -out:"\[$]out" \[$]@
+               EOF
+               chmod +x mk_static_lib.sh
+               AR=`pwd`/mk_static_lib.sh
+               ;;
+       (*)
+               cf_cv_ar_flags=unknown
+               for cf_ar_flags in -curvU -curv curv -crv crv -cqv cqv -rv rv
+               do
 
-               # check if $ARFLAGS already contains this choice
-               if test "x$ARFLAGS" != "x" ; then
-                       cf_check_ar_flags=`echo "x$ARFLAGS" | sed -e "s/$cf_ar_flags\$//" -e "s/$cf_ar_flags / /"`
-                       if test "x$ARFLAGS" != "$cf_check_ar_flags" ; then
-                               cf_cv_ar_flags=
-                               break
+                       # check if $ARFLAGS already contains this choice
+                       if test "x$ARFLAGS" != "x" ; then
+                               cf_check_ar_flags=`echo "x$ARFLAGS" | sed -e "s/$cf_ar_flags\$//" -e "s/$cf_ar_flags / /"`
+                               if test "x$ARFLAGS" != "$cf_check_ar_flags" ; then
+                                       cf_cv_ar_flags=
+                                       break
+                               fi
                        fi
-               fi
 
-               rm -f conftest.$ac_cv_objext
-               rm -f conftest.a
+                       rm -f conftest.$ac_cv_objext
+                       rm -f conftest.a
 
-               cat >conftest.$ac_ext <<EOF
+                       cat >conftest.$ac_ext <<EOF
 #line __oline__ "configure"
 int    testdata[[3]] = { 123, 456, 789 };
 EOF
-               if AC_TRY_EVAL(ac_compile) ; then
-                       echo "$AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext" >&AC_FD_CC
-                       $AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext 2>&AC_FD_CC 1>/dev/null
-                       if test -f conftest.a ; then
-                               cf_cv_ar_flags=$cf_ar_flags
+                       if AC_TRY_EVAL(ac_compile) ; then
+                               echo "$AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext" >&AC_FD_CC
+                               $AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext 2>&AC_FD_CC 1>/dev/null
+                               if test -f conftest.a ; then
+                                       cf_cv_ar_flags=$cf_ar_flags
+                                       break
+                               fi
+                       else
+                               CF_VERBOSE(cannot compile test-program)
                                break
                        fi
-               else
-                       CF_VERBOSE(cannot compile test-program)
-                       break
-               fi
-       done
-       rm -f conftest.a conftest.$ac_ext conftest.$ac_cv_objext
+               done
+               rm -f conftest.a conftest.$ac_ext conftest.$ac_cv_objext
+               ;;
+       esac
 ])
 
 if test -n "$ARFLAGS" ; then
@@ -677,23 +703,23 @@ if test ".$system_name" != ".$cf_cv_system_name" ; then
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_CHECK_GNAT_VERSION version: 1 updated: 2019/09/21 18:08:42
+dnl CF_CHECK_GNAT_VERSION version: 3 updated: 2020/05/23 19:39:36
 dnl ---------------------
 AC_DEFUN([CF_CHECK_GNAT_VERSION],
 [
 AC_REQUIRE([CF_GNAT_VERSION])
-case $cf_gnat_version in
-(3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*|20[[0-9]][[0-9]])
+case $cf_cv_gnat_version in
+(3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*|[[1-9]][[0-9]].[[0-9]]*|20[[0-9]][[0-9]])
        cf_cv_prog_gnat_correct=yes
        ;;
 (*)
-       AC_MSG_WARN(Unsupported GNAT version $cf_gnat_version. We require 3.11 or better. Disabling Ada95 binding.)
+       AC_MSG_WARN(Unsupported GNAT version $cf_cv_gnat_version. We require 3.11 or better. Disabling Ada95 binding.)
        cf_cv_prog_gnat_correct=no
        ;;
 esac
 ])
 dnl ---------------------------------------------------------------------------
-dnl CF_CLANG_COMPILER version: 2 updated: 2013/11/19 19:23:35
+dnl CF_CLANG_COMPILER version: 3 updated: 2020/08/28 04:10:22
 dnl -----------------
 dnl Check if the given compiler is really clang.  clang's C driver defines
 dnl __GNUC__ (fooling the configure script into setting $GCC to yes) but does
@@ -724,9 +750,13 @@ cf_save_CFLAGS="$cf_save_CFLAGS -Qunused-arguments"
        ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
        AC_MSG_RESULT($ifelse([$2],,CLANG_COMPILER,[$2]))
 fi
+
+if test "x$CLANG_COMPILER" = "xyes" ; then
+       CF_APPEND_TEXT(CFLAGS,-Wno-error=implicit-function-declaration)
+fi
 ])
 dnl ---------------------------------------------------------------------------
-dnl CF_CONST_X_STRING version: 1 updated: 2019/04/08 17:50:29
+dnl CF_CONST_X_STRING version: 4 updated: 2020/03/10 18:53:47
 dnl -----------------
 dnl The X11R4-X11R6 Xt specification uses an ambiguous String type for most
 dnl character-strings.
@@ -747,12 +777,16 @@ dnl when compiling the library and compiling using the library, to tell the
 dnl compiler that String is const.
 AC_DEFUN([CF_CONST_X_STRING],
 [
+AC_REQUIRE([AC_PATH_XTRA])
+
+CF_SAVE_XTRA_FLAGS([CF_CONST_X_STRING])
+
 AC_TRY_COMPILE(
 [
 #include <stdlib.h>
 #include <X11/Intrinsic.h>
 ],
-[String foo = malloc(1)],[
+[String foo = malloc(1); (void)foo],[
 
 AC_CACHE_CHECK(for X11/Xt const-feature,cf_cv_const_x_string,[
        AC_TRY_COMPILE(
@@ -768,6 +802,68 @@ AC_CACHE_CHECK(for X11/Xt const-feature,cf_cv_const_x_string,[
                ])
 ])
 
+CF_RESTORE_XTRA_FLAGS([CF_CONST_X_STRING])
+
+case $cf_cv_const_x_string in
+(no)
+       CF_APPEND_TEXT(CPPFLAGS,-DXTSTRINGDEFINES)
+       ;;
+(*)
+       CF_APPEND_TEXT(CPPFLAGS,-D_CONST_X_STRING)
+       ;;
+esac
+
+])
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_CONST_X_STRING version: 4 updated: 2020/03/10 18:53:47
+dnl -----------------
+dnl The X11R4-X11R6 Xt specification uses an ambiguous String type for most
+dnl character-strings.
+dnl
+dnl It is ambiguous because the specification accommodated the pre-ANSI
+dnl compilers bundled by more than one vendor in lieu of providing a standard C
+dnl compiler other than by costly add-ons.  Because of this, the specification
+dnl did not take into account the use of const for telling the compiler that
+dnl string literals would be in readonly memory.
+dnl
+dnl As a workaround, one could (starting with X11R5) define XTSTRINGDEFINES, to
+dnl let the compiler decide how to represent Xt's strings which were #define'd. 
+dnl That does not solve the problem of using the block of Xt's strings which
+dnl are compiled into the library (and is less efficient than one might want).
+dnl
+dnl Xt specification 7 introduces the _CONST_X_STRING symbol which is used both
+dnl when compiling the library and compiling using the library, to tell the
+dnl compiler that String is const.
+AC_DEFUN([CF_CONST_X_STRING],
+[
+AC_REQUIRE([AC_PATH_XTRA])
+
+CF_SAVE_XTRA_FLAGS([CF_CONST_X_STRING])
+
+AC_TRY_COMPILE(
+[
+#include <stdlib.h>
+#include <X11/Intrinsic.h>
+],
+[String foo = malloc(1); (void)foo],[
+
+AC_CACHE_CHECK(for X11/Xt const-feature,cf_cv_const_x_string,[
+       AC_TRY_COMPILE(
+               [
+#define _CONST_X_STRING        /* X11R7.8 (perhaps) */
+#undef  XTSTRINGDEFINES        /* X11R5 and later */
+#include <stdlib.h>
+#include <X11/Intrinsic.h>
+               ],[String foo = malloc(1); *foo = 0],[
+                       cf_cv_const_x_string=no
+               ],[
+                       cf_cv_const_x_string=yes
+               ])
+])
+
+CF_RESTORE_XTRA_FLAGS([CF_CONST_X_STRING])
+
 case $cf_cv_const_x_string in
 (no)
        CF_APPEND_TEXT(CPPFLAGS,-DXTSTRINGDEFINES)
@@ -860,6 +956,58 @@ CF_ARG_DISABLE(gnat-projects,
 AC_MSG_RESULT($enable_gnat_projects)
 ])dnl
 dnl ---------------------------------------------------------------------------
+dnl CF_ENABLE_BROKEN_LINKER version: 1 updated: 2020/02/08 15:59:30
+dnl -----------------------
+dnl Some linkers cannot reference a data-only object.  Cygwin used to be one.
+dnl This usually follows CF_LINK_DATAONLY, but is not required in case we need
+dnl an unconditional feature.
+AC_DEFUN([CF_ENABLE_BROKEN_LINKER],[
+
+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=no])
+AC_MSG_RESULT($with_broken_linker)
+
+: ${BROKEN_LINKER:=0}
+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
+fi
+AC_SUBST(BROKEN_LINKER)
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_ENABLE_WARNINGS version: 7 updated: 2020/08/29 09:05:21
+dnl ------------------
+dnl Configure-option to enable gcc warnings
+dnl
+dnl $1 = extra options to add, if supported
+dnl $2 = option for checking attributes.  By default, this is done when
+dnl      warnings are enabled.  For other values:
+dnl      yes: always do this, e.g., to use in generated library-headers
+dnl      no: never do this
+AC_DEFUN([CF_ENABLE_WARNINGS],[
+if ( test "$GCC" = yes || test "$GXX" = yes )
+then
+CF_FIX_WARNINGS(CFLAGS)
+CF_FIX_WARNINGS(CPPFLAGS)
+CF_FIX_WARNINGS(LDFLAGS)
+AC_MSG_CHECKING(if you want to turn on gcc warnings)
+CF_ARG_ENABLE(warnings,
+       [  --enable-warnings       test: turn on gcc compiler warnings],
+       [with_warnings=yes],
+       [with_warnings=no])
+AC_MSG_RESULT($with_warnings)
+if test "$with_warnings" = "yes"
+then
+       ifelse($2,,[CF_GCC_ATTRIBUTES])
+       CF_GCC_WARNINGS($1)
+fi
+ifelse($2,yes,[CF_GCC_ATTRIBUTES])
+fi
+])dnl
+dnl ---------------------------------------------------------------------------
 dnl CF_FIND_LIBRARY version: 9 updated: 2008/03/23 14:48:54
 dnl ---------------
 dnl Look for a non-standard library, given parameters for AC_TRY_LINK.  We
@@ -1060,14 +1208,48 @@ AC_DEFUN([CF_FIXUP_ADAFLAGS],[
        AC_MSG_RESULT($ADAFLAGS)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_GCC_ATTRIBUTES version: 17 updated: 2015/04/12 15:39:00
+dnl CF_FIX_WARNINGS version: 2 updated: 2020/08/28 15:08:28
+dnl ---------------
+dnl Warning flags do not belong in CFLAGS, CPPFLAGS, etc.  Any of gcc's
+dnl "-Werror" flags can interfere with configure-checks.  Those go into
+dnl EXTRA_CFLAGS.
+dnl
+dnl $1 = variable name to repair
+define([CF_FIX_WARNINGS],[
+if ( test "$GCC" = yes || test "$GXX" = yes )
+then
+       case [$]$1 in
+       (*-Werror=*)
+               CF_VERBOSE(repairing $1: [$]$1)
+               cf_temp_flags=
+               for cf_temp_scan in [$]$1
+               do
+                       case "x$cf_temp_scan" in
+                       (x-Werror=*)
+                               CF_APPEND_TEXT(EXTRA_CFLAGS,"$cf_temp_scan")
+                               ;;
+                       (*)
+                               CF_APPEND_TEXT(cf_temp_flags,"$cf_temp_scan")
+                               ;;
+                       esac
+               done
+               $1="$cf_temp_flags"
+               CF_VERBOSE(... fixed [$]$1)
+               CF_VERBOSE(... extra $EXTRA_CFLAGS)
+               ;;
+       esac
+fi
+AC_SUBST(EXTRA_CFLAGS)
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_GCC_ATTRIBUTES version: 19 updated: 2020/08/29 09:05:21
 dnl -----------------
 dnl Test for availability of useful gcc __attribute__ directives to quiet
 dnl compiler warnings.  Though useful, not all are supported -- and contrary
 dnl to documentation, unrecognized directives cause older compilers to barf.
 AC_DEFUN([CF_GCC_ATTRIBUTES],
 [
-if test "$GCC" = yes
+if ( test "$GCC" = yes || test "$GXX" = yes )
 then
 cat > conftest.i <<EOF
 #ifndef GCC_PRINTF
@@ -1104,7 +1286,7 @@ cat > conftest.$ac_ext <<EOF
 extern void wow(char *,...) GCC_SCANFLIKE(1,2);
 extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
 extern void foo(void) GCC_NORETURN;
-int main(int argc GCC_UNUSED, char *argv[[]] GCC_UNUSED) { return 0; }
+int main(int argc GCC_UNUSED, char *argv[[]] GCC_UNUSED) { (void)argc; (void)argv; return 0; }
 EOF
        cf_printf_attribute=no
        cf_scanf_attribute=no
@@ -1187,12 +1369,13 @@ CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
 CF_CLANG_COMPILER(GCC,CLANG_COMPILER,CFLAGS)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_GCC_WARNINGS version: 36 updated: 2019/09/07 13:38:36
+dnl CF_GCC_WARNINGS version: 38 updated: 2020/08/28 15:08:28
 dnl ---------------
 dnl Check if the compiler supports useful warning options.  There's a few that
 dnl we don't use, simply because they're too noisy:
 dnl
 dnl    -Wconversion (useful in older versions of gcc, but not in gcc 2.7.x)
+dnl    -Winline (usually not worthwhile)
 dnl    -Wredundant-decls (system headers make this too noisy)
 dnl    -Wtraditional (combines too many unrelated messages, only a few useful)
 dnl    -Wwrite-strings (too noisy, but should review occasionally).  This
@@ -1229,7 +1412,7 @@ then
 
        AC_CHECKING([for $CC warning options])
        cf_save_CFLAGS="$CFLAGS"
-       EXTRA_CFLAGS="-Wall"
+       EXTRA_CFLAGS="$EXTRA_CFLAGS -Wall"
        for cf_opt in \
                wd1419 \
                wd1683 \
@@ -1248,11 +1431,10 @@ then
                fi
        done
        CFLAGS="$cf_save_CFLAGS"
-elif test "$GCC" = yes
+elif test "$GCC" = yes && test "$GCC_VERSION" != "unknown"
 then
        AC_CHECKING([for $CC warning options])
        cf_save_CFLAGS="$CFLAGS"
-       EXTRA_CFLAGS=
        cf_warn_CONST=""
        test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
        cf_gcc_warnings="Wignored-qualifiers Wlogical-op Wvarargs"
@@ -1270,7 +1452,7 @@ then
                Wpointer-arith \
                Wshadow \
                Wstrict-prototypes \
-               Wundef $cf_gcc_warnings $cf_warn_CONST $1
+               Wundef Wno-inline $cf_gcc_warnings $cf_warn_CONST $1
        do
                CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
                if AC_TRY_EVAL(ac_compile); then
@@ -1312,15 +1494,15 @@ test "$cf_cv_gnatprep_opt_t" = yes && GNATPREP_OPTS="-T $GNATPREP_OPTS"
 AC_SUBST(GNATPREP_OPTS)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_GNAT_GENERICS version: 3 updated: 2015/04/17 21:13:04
+dnl CF_GNAT_GENERICS version: 6 updated: 2020/07/04 19:30:27
 dnl ----------------
 AC_DEFUN([CF_GNAT_GENERICS],
 [
 AC_REQUIRE([CF_GNAT_VERSION])
 
 AC_MSG_CHECKING(if GNAT supports generics)
-case $cf_gnat_version in
-(3.[[1-9]]*|[[4-9]].*)
+case $cf_cv_gnat_version in
+(3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*|[[1-9]][[0-9]].[[0-9]]*|20[[0-9]][[0-9]])
        cf_gnat_generics=yes
        ;;
 (*)
@@ -1342,7 +1524,7 @@ AC_SUBST(cf_compile_generics)
 AC_SUBST(cf_generic_objects)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_GNAT_PROJECTS version: 9 updated: 2018/01/14 15:46:09
+dnl CF_GNAT_PROJECTS version: 10 updated: 2019/12/31 08:53:54
 dnl ----------------
 dnl GNAT projects are configured with ".gpr" project files.
 dnl GNAT libraries are a further development, using the project feature.
@@ -1356,7 +1538,7 @@ cf_gnat_projects=no
 
 if test "$enable_gnat_projects" != no ; then
 AC_MSG_CHECKING(if GNAT supports project files)
-case $cf_gnat_version in
+case $cf_cv_gnat_version in
 (3.[[0-9]]*)
        ;;
 (*)
@@ -1552,20 +1734,20 @@ fi
 rm -rf conftest* *~conftest*
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_GNAT_VERSION version: 21 updated: 2019/09/21 18:08:42
+dnl CF_GNAT_VERSION version: 22 updated: 2019/12/31 08:53:54
 dnl ---------------
 dnl $1 = cache variable to update
 dnl $2 = program name
 dnl Verify version of GNAT or related tool
 AC_DEFUN([CF_GNAT_VERSION],
 [
-AC_CACHE_CHECK(for ifelse($2,,gnat,$2) version, cf_gnat_version,[
-cf_gnat_version=`ifelse($2,,${cf_ada_make:-gnatmake},$2) --version 2>&1 | \
+AC_CACHE_CHECK(for ifelse($2,,gnat,$2) version, cf_cv_gnat_version,[
+cf_cv_gnat_version=`ifelse($2,,${cf_ada_make:-gnatmake},$2) --version 2>&1 | \
        grep '[[0-9]].[[0-9]][[0-9]]*' |\
        sed -e '2,$d' -e 's/[[^0-9 \.]]//g' -e 's/^[[ ]]*//' -e 's/ .*//'`
 ])
-test -z "$cf_gnat_version" && cf_gnat_version=no
-ifelse($1,,,[eval $1=$cf_gnat_version; unset cf_gnat_version])
+test -z "$cf_cv_gnat_version" && cf_cv_gnat_version=no
+ifelse($1,,,[eval $1=$cf_cv_gnat_version; unset cf_cv_gnat_version])
 ])dnl
 dnl ---------------------------------------------------------------------------
 dnl CF_GNU_SOURCE version: 10 updated: 2018/12/10 20:09:41
@@ -1725,11 +1907,12 @@ test -d "$oldincludedir" && {
 $1="[$]$1 $cf_header_path_list"
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_HELP_MESSAGE version: 3 updated: 1998/01/14 10:56:23
+dnl CF_HELP_MESSAGE version: 4 updated: 2019/12/31 08:53:54
 dnl ---------------
 dnl Insert text into the help-message, for readability, from AC_ARG_WITH.
 AC_DEFUN([CF_HELP_MESSAGE],
-[AC_DIVERT_HELP([$1])dnl
+[CF_ACVERSION_CHECK(2.53,[],[
+AC_DIVERT_HELP($1)])dnl
 ])dnl
 dnl ---------------------------------------------------------------------------
 dnl CF_INCLUDE_DIRS version: 10 updated: 2014/09/19 20:58:42
@@ -1881,7 +2064,7 @@ cf_save_CFLAGS="$cf_save_CFLAGS -we147"
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_LARGEFILE version: 11 updated: 2018/06/20 20:23:13
+dnl CF_LARGEFILE version: 12 updated: 2020/03/19 20:23:48
 dnl ------------
 dnl Add checks for large file support.
 AC_DEFUN([CF_LARGEFILE],[
@@ -1921,6 +2104,7 @@ ifdef([AC_FUNC_FSEEKO],[
                struct dirent64 *x = readdir((DIR *)0);
                struct dirent *y = readdir((DIR *)0);
                int z = x - y;
+               (void)z;
                ],
                [cf_cv_struct_dirent64=yes],
                [cf_cv_struct_dirent64=no])
@@ -2016,7 +2200,7 @@ CF_SUBDIR_PATH($1,$2,lib)
 $1="$cf_library_path_list [$]$1"
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_LIB_PREFIX version: 12 updated: 2015/10/17 19:03:33
+dnl CF_LIB_PREFIX version: 13 updated: 2020/04/04 10:11:47
 dnl -------------
 dnl Compute the library-prefix for the given host system
 dnl $1 = variable to set
@@ -2030,6 +2214,9 @@ define([CF_LIB_PREFIX],
                        LIB_PREFIX=''
                fi
                ;;
+       (*-msvc*)
+               LIB_PREFIX=''
+               ;;
        (*)     LIB_PREFIX='lib'
                ;;
        esac
@@ -2037,7 +2224,7 @@ ifelse($1,,,[$1=$LIB_PREFIX])
        AC_SUBST(LIB_PREFIX)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_LIB_SUFFIX version: 25 updated: 2015/04/17 21:13:04
+dnl CF_LIB_SUFFIX version: 26 updated: 2020/04/04 10:11:47
 dnl -------------
 dnl Compute the library file-suffix from the given model name
 dnl $1 = model name
@@ -2052,11 +2239,25 @@ AC_DEFUN([CF_LIB_SUFFIX],
                $3=[$]$2
                ;;
        (Xdebug)
-               $2='_g.a'
+               case $cf_cv_system_name in
+               (*-msvc*)
+                       $2='_g.lib'
+                       ;;
+               (*)
+                       $2='_g.a'
+                       ;;
+               esac
                $3=[$]$2
                ;;
        (Xprofile)
-               $2='_p.a'
+               case $cf_cv_system_name in
+               (*-msvc*)
+                       $2='_p.lib'
+                       ;;
+               (*)
+                       $2='_p.a'
+                       ;;
+               esac
                $3=[$]$2
                ;;
        (Xshared)
@@ -2065,6 +2266,10 @@ AC_DEFUN([CF_LIB_SUFFIX],
                        $2='.so'
                        $3=[$]$2
                        ;;
+               (*-msvc*)
+                       $2='.dll'
+                       $3='.dll.lib'
+                       ;;
                (cygwin*|msys*|mingw*)
                        $2='.dll'
                        $3='.dll.a'
@@ -2092,7 +2297,14 @@ AC_DEFUN([CF_LIB_SUFFIX],
                esac
                ;;
        (*)
-               $2='.a'
+               case $target in
+               (*-msvc*)
+                       $2='.lib'
+                       ;;
+               (*)
+                       $2='.a'
+                       ;;
+               esac
                $3=[$]$2
                ;;
        esac
@@ -2121,7 +2333,7 @@ AC_DEFUN([CF_LIB_TYPE],
        test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_LINK_DATAONLY version: 12 updated: 2017/07/23 17:46:07
+dnl CF_LINK_DATAONLY version: 13 updated: 2020/02/08 15:59:30
 dnl ----------------
 dnl Some systems have a non-ANSI linker that doesn't pull in modules that have
 dnl only data (i.e., no functions), for example NeXT.  On those systems we'll
@@ -2181,6 +2393,7 @@ if test "$cf_cv_link_dataonly" = no ; then
        AC_DEFINE(BROKEN_LINKER,1,[if data-only library module does not link])
        BROKEN_LINKER=1
 fi
+AC_SUBST(BROKEN_LINKER)
 
 ])dnl
 dnl ---------------------------------------------------------------------------
@@ -2482,7 +2695,7 @@ printf("old\n");
        ,[$1=no])
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_NCURSES_CONFIG version: 21 updated: 2018/06/20 20:23:13
+dnl CF_NCURSES_CONFIG version: 23 updated: 2020/02/27 05:21:59
 dnl -----------------
 dnl Tie together the configure-script macros for ncurses, preferring these in
 dnl order:
@@ -2504,11 +2717,47 @@ if test "x${PKG_CONFIG:=none}" != xnone; then
                AC_MSG_CHECKING(if the $cf_ncuconfig_root package files work)
                cf_have_ncuconfig=unknown
 
+               cf_save_CFLAGS="$CFLAGS"
                cf_save_CPPFLAGS="$CPPFLAGS"
                cf_save_LIBS="$LIBS"
 
-               CF_ADD_CFLAGS(`$PKG_CONFIG --cflags $cf_ncuconfig_root`)
-               CF_ADD_LIBS(`$PKG_CONFIG --libs $cf_ncuconfig_root`)
+               cf_pkg_cflags=`$PKG_CONFIG --cflags $cf_ncuconfig_root`
+               cf_pkg_libs=`$PKG_CONFIG --libs $cf_ncuconfig_root`
+
+               # while -W for passing linker flags is prevalent, it is not "standard". 
+               # At least one wrapper for c89/c99 (in Apple's xcode) has its own
+               # incompatible _and_ non-standard -W option which gives an error.  Work
+               # around that pitfall.
+               case "x${CC}@@${cf_pkg_libs}@${cf_pkg_cflags}" in
+               (x*c[[89]]9@@*-W*)
+                       CF_ADD_CFLAGS($cf_pkg_cflags)
+                       CF_ADD_LIBS($cf_pkg_libs)
+
+                       AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
+                               [initscr(); mousemask(0,0); tgoto((char *)0, 0, 0);],
+                               [AC_TRY_RUN([#include <${cf_cv_ncurses_header:-curses.h}>
+                                       int main(void)
+                                       { char *xx = curses_version(); return (xx == 0); }],
+                                       [cf_test_ncuconfig=yes],
+                                       [cf_test_ncuconfig=no],
+                                       [cf_test_ncuconfig=maybe])],
+                               [cf_test_ncuconfig=no])
+
+                       CFLAGS="$cf_save_CFLAGS"
+                       CPPFLAGS="$cf_save_CPPFLAGS"
+                       LIBS="$cf_save_LIBS"
+
+                       if test "x$cf_test_ncuconfig" != xyes; then
+                               cf_temp=`echo "x$cf_pkg_cflags" | sed -e s/^x// -e 's/-W[[^     ]]*//g'`
+                               cf_pkg_cflags="$cf_temp"
+                               cf_temp=`echo "x$cf_pkg_libs" | sed -e s/^x// -e 's/-W[[^       ]]*//g'`
+                               cf_pkg_libs="$cf_temp"
+                       fi
+                       ;;
+               esac
+
+               CF_ADD_CFLAGS($cf_pkg_cflags)
+               CF_ADD_LIBS($cf_pkg_libs)
 
                AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
                        [initscr(); mousemask(0,0); tgoto((char *)0, 0, 0);],
@@ -3054,11 +3303,15 @@ AC_PROG_AWK
 test -z "$AWK" && AC_MSG_ERROR(No awk program found)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_PROG_CC version: 4 updated: 2014/07/12 18:57:58
+dnl CF_PROG_CC version: 5 updated: 2019/12/31 08:53:54
 dnl ----------
 dnl standard check for CC, plus followup sanity checks
 dnl $1 = optional parameter to pass to AC_PROG_CC to specify compiler name
 AC_DEFUN([CF_PROG_CC],[
+CF_ACVERSION_CHECK(2.53,
+       [AC_MSG_WARN(this will incorrectly handle gnatgcc choice)
+        AC_REQUIRE([AC_PROG_CC])],
+       [])
 ifelse($1,,[AC_PROG_CC],[AC_PROG_CC($1)])
 CF_GCC_VERSION
 CF_ACVERSION_CHECK(2.52,
@@ -3148,7 +3401,7 @@ AC_SUBST(PROG_EXT)
 test -n "$PROG_EXT" && AC_DEFINE_UNQUOTED(PROG_EXT,"$PROG_EXT",[Define to the program extension (normally blank)])
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_PROG_GNAT version: 9 updated: 2019/09/21 18:08:42
+dnl CF_PROG_GNAT version: 10 updated: 2019/12/31 08:53:54
 dnl ------------
 dnl Check for gnat/gnatmake/etc, ensure that the toolset is complete.
 AC_DEFUN([CF_PROG_GNAT],[
@@ -3162,14 +3415,14 @@ do
        eval cf_cv_PATH_$cf_upper_prog_gnat=[$]ac_cv_path_cf_TEMP_gnat
 
        if test "x$cf_TEMP_gnat" != xno; then
-               unset cf_gnat_version
+               unset cf_cv_gnat_version
                unset cf_TEMP_gnat
                CF_GNAT_VERSION(cf_TEMP_gnat,$cf_prog_gnat)
        fi
        eval cf_cv_VERSION_$cf_upper_prog_gnat=[$]cf_TEMP_gnat
 
        unset cf_TEMP_gnat
-       unset cf_gnat_version
+       unset cf_cv_gnat_version
        unset ac_cv_path_cf_TEMP_gnat
 done
 
@@ -3323,7 +3576,43 @@ define([CF_REMOVE_LIB],
 $1=`echo "$2" | sed -e 's/-l$3[[       ]]//g' -e 's/-l$3[$]//'`
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_SHARED_OPTS version: 93 updated: 2018/08/18 16:36:35
+dnl CF_RESTORE_XTRA_FLAGS version: 1 updated: 2020/01/11 16:47:45
+dnl ---------------------
+dnl Restore flags saved in CF_SAVE_XTRA_FLAGS
+dnl $1 = name of current macro
+define([CF_RESTORE_XTRA_FLAGS],
+[
+LIBS="$cf_save_LIBS_$1"
+CFLAGS="$cf_save_CFLAGS_$1"
+CPPFLAGS="$cf_save_CPPFLAGS_$1"
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_SAVE_XTRA_FLAGS version: 1 updated: 2020/01/11 16:46:44
+dnl ------------------
+dnl Use this macro to save CFLAGS/CPPFLAGS/LIBS before checks against X headers
+dnl and libraries which do not update those variables.
+dnl
+dnl $1 = name of current macro
+define([CF_SAVE_XTRA_FLAGS],
+[
+cf_save_LIBS_$1="$LIBS"
+cf_save_CFLAGS_$1="$CFLAGS"
+cf_save_CPPFLAGS_$1="$CPPFLAGS"
+LIBS="$LIBS ${X_PRE_LIBS} ${X_LIBS} ${X_EXTRA_LIBS}"
+for cf_X_CFLAGS in $X_CFLAGS
+do
+       case "x$cf_X_CFLAGS" in
+       x-[[IUD]]*)
+               CPPFLAGS="$CPPFLAGS $cf_X_CFLAGS"
+               ;;
+       *)
+               CFLAGS="$CFLAGS $cf_X_CFLAGS"
+               ;;
+       esac
+done
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_SHARED_OPTS version: 102 updated: 2020/08/22 18:17:19
 dnl --------------
 dnl --------------
 dnl Attempt to determine the appropriate CC/LD options for creating a shared
@@ -3549,6 +3838,112 @@ CF_EOF
                CF_SHARED_SONAME
                MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
                ;;
+       (mingw*msvc*)
+               cf_cv_shlib_version=msvcdll
+               cf_cv_shlib_version_infix=msvcdll
+               shlibdir=$bindir
+               MAKE_DLLS=
+               if test "$DFT_LWR_MODEL" = "shared" ; then
+                       LOCAL_LDFLAGS="-link -dll"
+                       LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
+                       EXTRA_LDFLAGS="-link -dll $EXTRA_LDFLAGS"
+               fi
+               CC_SHARED_OPTS=
+               MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ ${LD} [$]{CFLAGS}'
+               RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.lib"
+               cat >mk_shared_lib.sh <<-CF_EOF
+               #!$SHELL
+               SHARED_LIB=\[$]1
+               IMPORT_LIB=\`echo "\[$]1" | sed -e 's/[[0-9]]*\.dll[$]/.dll.lib/'\`
+               shift
+               my_ld=\[$]1
+               shift
+               cat <<-EOF
+               Linking shared library
+               ** SHARED LIB \$SHARED_LIB
+               ** IMPORT_LIB \$IMPORT_LIB
+EOF
+               args=\$(echo \[$]* | sed -E "s#-l(\w*)#\1.dll.lib#g" | sed -E "s#-L(\w*)#-LIBPATH:\1#g")
+               exec \$my_ld -DLL -IMPLIB:"\${IMPORT_LIB}" -OUT:"\${SHARED_LIB}" ${LDFLAGS} \$args
+               mv "\${IMPORT_LIB}" "\${IMPORT_LIB}"
+CF_EOF
+               chmod +x mk_shared_lib.sh
+               cat >mk_prog.sh <<-CF_EOF
+               #!$SHELL
+               shift
+               # Ignore first argument (compiler) and use LD (link.exe) unconditionally
+               LD="[$]LD"
+               clopts=()
+               ldopts=("/subsystem:console")
+               libs=()
+               isdll=0
+               while test \[$]# -gt 0; do
+                       case "\[$]1" in
+                               -link)
+                                       # ignore -link argument
+                                       ;;
+                               -M[[TD]] | -M[[TD]]d)
+                                       # ignore runtime-library option
+                                       ;;
+                               -dll)
+                                       isdll=1
+                                       ;;
+                               -W* | -w*)
+                                       # ignore warnings
+                                       ;;
+                               -D*)
+                                       clopts+=("\[$]1")
+                                       ;;
+                               -I*)
+                                       clopts+=("\[$]1")
+                                       ;;
+                               -l*)
+                                       libs+=("\`echo \"\[$]1\" | sed \"s/^-l//\"\`")
+                                       ;;
+                               -L*)
+                                       ldopts+=("\`echo \"\[$]1\" | sed \"s/^-L/-LIBPATH:/\"\`")
+                                       ;;
+                               *.obj | *.o)
+                                       ldopts+=("\[$]1")
+                                       ;;
+                               -Wl,*)
+                                       for linkarg in \`echo '\[$]1' | sed -e 's/-Wl,//' -e 's/,/ /'\`; do
+                                               ldopts+=("\[$]{linkarg}")
+                                       done
+                                       ;;
+                               *.lib)
+                                       ldopts+=("\[$]1")
+                                       ;;
+                               -o)
+                                       shift
+                                       ldopts+=("-out:\[$]1")
+                                       ;;
+                               *)
+                                       clopts+=("\[$]1")
+                                       ldopts+=("\[$]1")
+                                       ;;
+                       esac
+                       shift
+               done
+               if [[ "\$isdll" -ne 0 ]]; then
+                       for lib in \[$]{libs[[*]]}; do
+                               ldopts+=("\[$]lib.dll.lib")
+                       done
+               else
+                       for lib in \[$]{libs[[*]]}; do
+                               ldopts+=("\[$]lib.lib")
+                       done
+               fi
+               cat <<-EOF
+               Creating program
+               ** ld options:   "\[$]{ldopts[[@]]}"
+EOF
+               exec \[$]LD \[$]{ldopts[[@]]}
+CF_EOF
+               chmod +x mk_prog.sh
+               LINK_PROGS="$SHELL ${rel_builddir}/mk_prog.sh"
+               LINK_TESTS="$SHELL ${rel_builddir}/mk_prog.sh"
+               ;;
        (mingw*)
                cf_cv_shlib_version=mingw
                cf_cv_shlib_version_infix=mingw
@@ -3588,6 +3983,14 @@ CF_EOF
                CF_SHARED_SONAME
                MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-Bshareable,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
                ;;
+       (nskJ*)
+               CC_SHARED_OPTS=
+               MK_SHARED_LIB='${LD} -Wshared -Weld=-export_all -o $[@]'
+               ;;
+       (nskL*)
+               CC_SHARED_OPTS=
+               MK_SHARED_LIB='${LD} -Wshared -Wxld=-export_all -o $[@]'
+               ;;
        (nto-qnx*|openbsd*|freebsd[[12]].*)
                CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
                MK_SHARED_LIB='${LD} ${LDFLAGS} -Bshareable -o $[@]'
@@ -3619,7 +4022,7 @@ CF_EOF
                        CF_SHARED_SONAME
                        MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname' -o $[@]'
                else
-                       MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -Wl,-shared -Wl,-Bshareable -o $[@]'
+                       MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -o $[@]'
                fi
                ;;
        (osf*|mls+*)
@@ -3814,7 +4217,7 @@ do
 done
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_TERM_HEADER version: 4 updated: 2015/04/15 19:08:48
+dnl CF_TERM_HEADER version: 5 updated: 2020/03/19 20:23:48
 dnl --------------
 dnl Look for term.h, which is part of X/Open curses.  It defines the interface
 dnl to terminfo database.  Usually it is in the same include-path as curses.h,
@@ -3835,7 +4238,7 @@ do
 AC_TRY_COMPILE([#include <stdio.h>
 #include <${cf_cv_ncurses_header:-curses.h}>
 #include <$cf_test>
-],[int x = auto_left_margin],[
+],[int x = auto_left_margin; (void)x],[
        cf_cv_term_header="$cf_test"],[
        cf_cv_term_header=unknown
        ])