]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - aclocal.m4
ncurses 6.1 - patch 20200111
[ncurses.git] / aclocal.m4
index 6f7f6da594d5aeac4d7d8a49e33fec4b50052feb..84975a6c5690d8f2257a1272dfc5e60e6a3100a9 100644 (file)
@@ -1,5 +1,5 @@
 dnl***************************************************************************
-dnl Copyright (c) 1998-2017,2018 Free Software Foundation, Inc.              *
+dnl Copyright (c) 1998-2019,2020 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 +28,16 @@ dnl***************************************************************************
 dnl
 dnl Author: Thomas E. Dickey 1995-on
 dnl
-dnl $Id: aclocal.m4,v 1.861 2019/01/01 01:49:46 tom Exp $
+dnl $Id: aclocal.m4,v 1.892 2020/01/12 00:10:43 tom Exp $
 dnl Macros used in NCURSES 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 ---------------------------------------------------------------------------
@@ -346,7 +348,7 @@ if test -n "$1" ; then
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_ADD_LIBS version: 2 updated: 2014/07/13 14:33:27
+dnl CF_ADD_LIBS version: 3 updated: 2019/11/02 16:47:33
 dnl -----------
 dnl Add one or more libraries, used to enforce consistency.  Libraries are
 dnl prepended to an existing list, since their dependencies are assumed to
@@ -355,19 +357,19 @@ dnl
 dnl $1 = libraries to add, with the "-l", etc.
 dnl $2 = variable to update (default $LIBS)
 AC_DEFUN([CF_ADD_LIBS],[
-cf_add_libs="$1"
-# Filter out duplicates - this happens with badly-designed ".pc" files...
-for cf_add_1lib in [$]ifelse($2,,LIBS,[$2])
-do
-       for cf_add_2lib in $cf_add_libs
-       do
-               if test "x$cf_add_1lib" = "x$cf_add_2lib"
-               then
+cf_add_libs="[$]ifelse($2,,LIBS,[$2])"
+# reverse order
+cf_add_0lib=
+for cf_add_1lib in $1; do cf_add_0lib="$cf_add_1lib $cf_add_0lib"; done
+# filter duplicates
+for cf_add_1lib in $cf_add_0lib; do
+       for cf_add_2lib in $cf_add_libs; do
+               if test "x$cf_add_1lib" = "x$cf_add_2lib"; then
                        cf_add_1lib=
                        break
                fi
        done
-       test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
+       test -n "$cf_add_1lib" && cf_add_libs="$cf_add_1lib $cf_add_libs"
 done
 ifelse($2,,LIBS,[$2])="$cf_add_libs"
 ])dnl
@@ -925,6 +927,35 @@ if test ".$system_name" != ".$cf_cv_system_name" ; then
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
+dnl CF_CHECK_ENVIRON version: 3 updated: 2010/05/26 16:44:57
+dnl ----------------
+dnl Check for data that is usually declared in <unistd.h>, e.g., the 'environ'
+dnl variable.  Define a DECL_xxx symbol if we must declare it ourselves.
+dnl
+dnl $1 = the name to check
+dnl $2 = the assumed type
+AC_DEFUN([CF_CHECK_ENVIRON],
+[
+AC_CACHE_CHECK(if external $1 is declared, cf_cv_dcl_$1,[
+    AC_TRY_COMPILE([
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+#include <unistd.h> ],
+    ifelse([$2],,int,[$2]) x = (ifelse([$2],,int,[$2])) $1,
+    [cf_cv_dcl_$1=yes],
+    [cf_cv_dcl_$1=no])
+])
+
+if test "$cf_cv_dcl_$1" = no ; then
+    CF_UPPER(cf_result,decl_$1)
+    AC_DEFINE_UNQUOTED($cf_result)
+fi
+
+# It's possible (for near-UNIX clones) that the data doesn't exist
+CF_CHECK_EXTERN_DATA($1,ifelse([$2],,int,[$2]))
+])dnl
+dnl ---------------------------------------------------------------------------
 dnl CF_CHECK_ERRNO version: 12 updated: 2015/04/18 08:56:57
 dnl --------------
 dnl Check for data that is usually declared in <stdio.h> or <errno.h>, e.g.,
@@ -982,6 +1013,148 @@ fi
 
 ])dnl
 dnl ---------------------------------------------------------------------------
+dnl CF_CHECK_GETENV version: 1 updated: 2019/06/23 15:28:15
+dnl ---------------
+dnl Check if repeated getenv calls return the same pointer, e.g., it does not
+dnl discard the previous pointer when returning a new one.
+AC_DEFUN([CF_CHECK_GETENV],
+[
+AC_REQUIRE([CF_CHECK_ENVIRON])
+AC_CHECK_FUNC( getenv, ,, AC_MSG_ERROR(getenv not found) )
+AC_CHECK_FUNCS( putenv setenv strdup )
+AC_CACHE_CHECK(if getenv returns consistent values,cf_cv_consistent_getenv,[
+AC_TRY_RUN([
+#include <stdlib.h>
+#include <unistd.h>
+#include <stdio.h>
+#include <string.h>
+#include <sys/types.h>
+
+#if defined(HAVE_ENVIRON) && defined(DECL_ENVIRON) && !defined(environ)
+extern char **environ; /* POSIX, but some systems are not... */
+#endif
+
+#if defined(HAVE_STRDUP)
+#define str_alloc(s) strdup(s)
+#else
+#define str_alloc(s) strcpy(malloc(strlen(s) + 1, s))
+#endif
+
+static void set_value(const char *name, const char *value)
+{
+#if defined(HAVE_SETENV)
+       setenv(name, value, 1);
+#elif defined(HAVE_PUTENV)
+       char buffer[1024];
+       sprintf(buffer, "%s=%s", name, value);
+       putenv(str_alloc(buffer));
+#else
+#error neither putenv/setenv found
+#endif
+}
+int main(void)
+{
+       int pass;
+       size_t numenv, limit, j;
+       char **mynames;
+       char **myvalues;
+       char **mypointer;
+       char *equals;
+       for (numenv = 0; environ[numenv]; ++numenv) ;
+       limit = numenv + 10;
+       mynames = (char **) calloc(limit + 1, sizeof(char *));
+       myvalues = (char **) calloc(limit + 1, sizeof(char *));
+       mypointer = (char **) calloc(limit + 1, sizeof(char *));
+#if defined(HAVE_ENVIRON)
+       for (j = 0; environ[j]; ++j) {
+               mynames[j] = str_alloc(environ[j]);
+               equals = strchr(mynames[j], '=');
+               if (equals != 0) {
+                       *equals++ = '\0';
+                       myvalues[j] = str_alloc(equals);
+               } else {
+                       myvalues[j] = str_alloc("");
+               }
+       }
+#endif
+       for (j = numenv; j < limit; ++j) {
+               char name[80];
+               char value[80];
+               size_t found;
+               size_t k = 0;
+               do {
+                       size_t jk;
+                       found = 0;
+                       sprintf(name, "TERM%lu", (unsigned long) k);
+                       for (jk = 0; jk < j; ++jk) {
+                               if (!strcmp(name, mynames[jk])) {
+                                       found = 1;
+                                       ++k;
+                                       break;
+                               }
+                       }
+               } while (found);
+               sprintf(value, "%lu:%p", (unsigned long) k, &mynames[j]);
+               set_value(name, value);
+               mynames[j] = str_alloc(name);
+               myvalues[j] = str_alloc(value);
+       }
+       for (pass = 0; pass < 3; ++pass) {
+               for (j = 0; j < limit; ++j) {
+                       char *value = getenv(mynames[j]);
+                       if (pass) {
+                               if (value == 0) {
+                                       fprintf(stderr, "getenv returned null for %s\n", mynames[j]);
+                                       ${cf_cv_main_return:-return}(1);
+                               } else if (value != mypointer[j]) {
+                                       fprintf(stderr, "getenv returned different pointer for %s\n", mynames[j]);
+                                       ${cf_cv_main_return:-return}(1);
+                               } else if (strcmp(value, myvalues[j])) {
+                                       fprintf(stderr, "getenv returned different value for %s\n", mynames[j]);
+                                       ${cf_cv_main_return:-return}(1);
+                               }
+                       } else {
+                               size_t k;
+                               mypointer[j] = value;
+                               for (k = 0; k < j; ++k) {
+                                       if (mypointer[j] == mypointer[k]) {
+                                               fprintf(stderr, "getenv returned same pointer for %s and %s\n", mynames[j], mynames[k]);
+                                               ${cf_cv_main_return:-return}(1);
+                                       }
+                               }
+                       }
+               }
+       }
+       ${cf_cv_main_return:-return}(0);
+}
+],
+[cf_cv_consistent_getenv=yes],
+[cf_cv_consistent_getenv=no],
+[cf_cv_consistent_getenv=unknown])
+])
+
+if test "x$cf_cv_consistent_getenv" = xno
+then
+       AC_DEFINE(HAVE_CONSISTENT_GETENV,1,[Define to 1 if getenv repeatably returns the same value for a given name])
+fi
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_CHECK_GNAT_VERSION version: 2 updated: 2019/12/31 08:53:54
+dnl ---------------------
+AC_DEFUN([CF_CHECK_GNAT_VERSION],
+[
+AC_REQUIRE([CF_GNAT_VERSION])
+case $cf_cv_gnat_version in
+(3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*|20[[0-9]][[0-9]])
+       cf_cv_prog_gnat_correct=yes
+       ;;
+(*)
+       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_CHECK_GPM_WGETCH version: 3 updated: 2017/01/21 11:06:25
 dnl -------------------
 dnl Check if GPM is already linked with curses.  If so - and if the linkage
@@ -1253,6 +1426,66 @@ cf_save_CFLAGS="$cf_save_CFLAGS -Qunused-arguments"
 fi
 ])
 dnl ---------------------------------------------------------------------------
+dnl CF_CONST_X_STRING version: 3 updated: 2020/01/11 18:39:22
+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)],[
+
+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)
+       ;;
+(*)
+       CF_APPEND_TEXT(CPPFLAGS,-D_CONST_X_STRING)
+       ;;
+esac
+
+])
+])dnl
+dnl ---------------------------------------------------------------------------
 dnl CF_CPP_PARAM_INIT version: 7 updated: 2017/01/21 11:06:25
 dnl -----------------
 dnl Check if the C++ compiler accepts duplicate parameter initialization.  This
@@ -1392,12 +1625,13 @@ cerr << "testing" << endl;
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_C_INLINE version: 5 updated: 2015/04/18 08:56:57
+dnl CF_C_INLINE version: 6 updated: 2019/09/07 13:38:36
 dnl -----------
 dnl Check if the C compiler supports "inline".
 dnl $1 is the name of a shell variable to set if inline is supported
 dnl $2 is the threshold for gcc 4.x's option controlling maximum inline size
 AC_DEFUN([CF_C_INLINE],[
+AC_REQUIRE([CF_GCC_VERSION])
 AC_C_INLINE
 $1=
 if test "$ac_cv_c_inline" != no ; then
@@ -1904,6 +2138,49 @@ AC_DEFUN([CF_FIXUP_ADAFLAGS],[
        AC_MSG_RESULT($ADAFLAGS)
 ])dnl
 dnl ---------------------------------------------------------------------------
+dnl CF_FOPEN_BIN_R version: 2 updated: 2019/12/31 08:53:54
+dnl --------------
+dnl Check if fopen works when the "b" (binary) flag is added to the mode
+dnl parameter.  POSIX ignores the "b", which c89 specified.  Some very old
+dnl systems do not accept it.
+AC_DEFUN([CF_FOPEN_BIN_R],[
+AC_CACHE_CHECK(if fopen accepts explicit binary mode,cf_cv_fopen_bin_r,[
+       AC_TRY_RUN([
+#include <stdio.h>
+int main(void) {
+       FILE *fp = fopen("conftest.tmp", "wb");
+       int rc = 0;
+       if (fp != 0) {
+               int p, q;
+               for (p = 0; p < 256; ++p) {
+                       fputc(p, fp);
+               }
+               fclose(fp);
+               fp = fopen("conftest.tmp", "rb");
+               if (fp != 0) {
+                       for (p = 0; p < 256; ++p) {
+                               q = fgetc(fp);
+                               if (q != p) {
+                                       rc = 1;
+                                       break;
+                               }
+                       }
+               } else {
+                       rc = 1;
+               }
+       } else {
+               rc = 1;
+       }
+       ${cf_cv_main_return:-return} (rc);
+}
+],
+               [cf_cv_fopen_bin_r=yes],
+               [cf_cv_fopen_bin_r=no],
+               [cf_cv_fopen_bin_r=unknown])
+])
+test "x$cf_cv_fopen_bin_r" != xno && AC_DEFINE(USE_FOPEN_BIN_R,1,[Define to 1 if fopen accepts explicit binary mode])
+])dnl
+dnl ---------------------------------------------------------------------------
 dnl CF_FORGET_TOOL version: 1 updated: 2013/04/06 18:03:09
 dnl --------------
 dnl Forget that we saw the given tool.
@@ -2286,9 +2563,10 @@ rm -rf conftest*
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_GCC_VERSION version: 7 updated: 2012/10/18 06:46:33
+dnl CF_GCC_VERSION version: 8 updated: 2019/09/07 13:38:36
 dnl --------------
-dnl Find version of gcc
+dnl Find version of gcc, and (because icc/clang pretend to be gcc without being
+dnl compatible), attempt to determine if icc/clang is actually used.
 AC_DEFUN([CF_GCC_VERSION],[
 AC_REQUIRE([AC_PROG_CC])
 GCC_VERSION=none
@@ -2298,14 +2576,17 @@ if test "$GCC" = yes ; then
        test -z "$GCC_VERSION" && GCC_VERSION=unknown
        AC_MSG_RESULT($GCC_VERSION)
 fi
+CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
+CF_CLANG_COMPILER(GCC,CLANG_COMPILER,CFLAGS)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_GCC_WARNINGS version: 33 updated: 2018/06/20 20:23:13
+dnl CF_GCC_WARNINGS version: 37 updated: 2020/01/05 20:04:12
 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
@@ -2322,14 +2603,11 @@ dnl
 AC_DEFUN([CF_GCC_WARNINGS],
 [
 AC_REQUIRE([CF_GCC_VERSION])
-CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
-CF_CLANG_COMPILER(GCC,CLANG_COMPILER,CFLAGS)
-
+if test "x$have_x" = xyes; then CF_CONST_X_STRING fi
 cat > conftest.$ac_ext <<EOF
 #line __oline__ "${as_me:-configure}"
 int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
 EOF
-
 if test "$INTEL_COMPILER" = yes
 then
 # The "-wdXXX" options suppress warnings:
@@ -2364,8 +2642,7 @@ 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"
@@ -2387,15 +2664,12 @@ 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
                        test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
                        case $cf_opt in
-                       (Wcast-qual)
-                               CF_APPEND_TEXT(CPPFLAGS,-DXTSTRINGDEFINES)
-                               ;;
                        (Winline)
                                case $GCC_VERSION in
                                ([[34]].*)
@@ -2458,14 +2732,14 @@ 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: 4 updated: 2019/12/31 08:53:54
 dnl ----------------
 AC_DEFUN([CF_GNAT_GENERICS],
 [
 AC_REQUIRE([CF_GNAT_VERSION])
 
 AC_MSG_CHECKING(if GNAT supports generics)
-case $cf_gnat_version in
+case $cf_cv_gnat_version in
 (3.[[1-9]]*|[[4-9]].*)
        cf_gnat_generics=yes
        ;;
@@ -2488,7 +2762,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.
@@ -2502,7 +2776,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]]*)
        ;;
 (*)
@@ -2698,27 +2972,21 @@ fi
 rm -rf conftest* *~conftest*
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_GNAT_VERSION version: 20 updated: 2015/04/18 08:56:57
+dnl CF_GNAT_VERSION version: 22 updated: 2019/12/31 08:53:54
 dnl ---------------
-dnl Verify version of GNAT.
+dnl $1 = cache variable to update
+dnl $2 = program name
+dnl Verify version of GNAT or related tool
 AC_DEFUN([CF_GNAT_VERSION],
 [
-AC_MSG_CHECKING(for gnat version)
-cf_gnat_version=`${cf_ada_make:-gnatmake} -v 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/ .*//'`
-AC_MSG_RESULT($cf_gnat_version)
-
-case $cf_gnat_version in
-(3.1[[1-9]]*|3.[[2-9]]*|[[4-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.)
-       cf_cv_prog_gnat_correct=no
-       ;;
-esac
 ])
+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
 dnl -------------
@@ -3212,11 +3480,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
@@ -3591,6 +3860,76 @@ then
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
+dnl CF_LD_SEARCHPATH version: 2 updated: 2019/09/26 20:34:14
+dnl ----------------
+dnl Try to obtain the linker's search-path, for use in scripts.
+dnl
+dnl Ignore LD_LIBRARY_PATH, etc.
+AC_DEFUN([CF_LD_SEARCHPATH],[
+AC_CACHE_CHECK(for linker search path,cf_cv_ld_searchpath,[
+
+if test "$cross_compiling" != yes ; then
+
+# GNU binutils' ld does not involve permissions which may stop ldconfig.
+cf_pathlist=`ld --verbose 2>/dev/null | grep SEARCH_DIR | sed -e 's,SEARCH_DIR[[("=]][[("=]]*,,g' -e 's/"[[)]];//gp' | sort -u`
+
+# The -NX options tell newer versions of Linux ldconfig to not attempt to
+# update the cache, which makes it run faster.
+test -z "$cf_pathlist" && \
+       cf_pathlist=`ldconfig -NX -v 2>/dev/null | sed -e '/^[[         ]]/d' -e 's/:$//' | sort -u`
+
+test -z "$cf_pathlist" &&
+       cf_pathlist=`ldconfig -v 2>/dev/null | sed -n -e '/^[[  ]]/d' -e 's/:$//p' | sort -u`
+
+# This works with OpenBSD 6.5, which lists only filenames
+test -z "$cf_pathlist" &&
+       cf_pathlist=`ldconfig -v 2>/dev/null | sed -n -e 's,^Adding \(.*\)/.*[$],\1,p' | sort -u`
+
+if test -z "$cf_pathlist"
+then
+       # dyld default path with MacOS
+       if test -f /usr/bin/otool && test "x`uname -s`" = xDarwin
+       then
+               # do this to bypass check
+               cf_cv_ld_searchpath='$HOME/lib'
+               cf_pathlist="/usr/local/lib /lib /usr/lib"
+       fi
+fi
+
+if test -z "$cf_pathlist"
+then
+       # Solaris is hardcoded
+       if test -d /opt/SUNWspro/lib
+       then
+               cf_pathlist="/opt/SUNWspro/lib /usr/ccs/lib /usr/lib"
+       elif test -d /usr/ccs/lib
+       then
+               cf_pathlist="/usr/ccs/lib /usr/lib"
+       fi
+fi
+
+fi
+
+# If nothing else, assume it is conventional
+test -z "$cf_pathlist" && cf_pathlist="/usr/lib /lib"
+
+# Finally, check that this is only directories
+for cf_path in [$]0 $cf_pathlist
+do
+       if test -d "$cf_path"; then
+               test -n "$cf_cv_ld_searchpath" && cf_cv_ld_searchpath="${cf_cv_ld_searchpath} "
+               cf_cv_ld_searchpath="${cf_cv_ld_searchpath}${cf_path}"
+       fi
+done
+
+# Ensure that it is nonempty
+test -z "$cf_cv_ld_searchpath" && cf_cv_ld_searchpath=/usr/lib
+])
+
+LD_SEARCHPATH=`echo "$cf_cv_ld_searchpath"|sed -e 's/ /|/g'`
+AC_SUBST(LD_SEARCHPATH)
+])dnl
+dnl ---------------------------------------------------------------------------
 dnl CF_LIBRARY_PATH version: 10 updated: 2015/04/15 19:08:48
 dnl ---------------
 dnl Construct a search-list of directories for a nonstandard library-file
@@ -5359,6 +5698,51 @@ ifelse([$1],,,[$1=$PATH_SEPARATOR])
        AC_MSG_RESULT($PATH_SEPARATOR)
 ])dnl
 dnl ---------------------------------------------------------------------------
+dnl CF_PATH_PROG version: 10 updated: 2019/06/30 19:44:43
+dnl ------------
+dnl Check for a given program, defining corresponding symbol.
+dnl    $1 = environment variable, which is suffixed by "_PATH" in the #define.
+dnl    $2 = program name to find.
+dnl    $3 = optional list of additional program names to test.
+dnl $4 = $PATH
+dnl
+dnl If there is more than one token in the result, #define the remaining tokens
+dnl to $1_ARGS.  We need this for 'install' in particular.
+dnl
+dnl FIXME: we should allow this to be overridden by environment variables
+dnl
+AC_DEFUN([CF_PATH_PROG],[
+AC_REQUIRE([CF_PATHSEP])
+test -z "[$]$1" && $1=$2
+AC_PATH_PROGS($1,[$]$1 $2 ifelse($3,,,$3),[$]$1, ifelse($4,,,$4))
+
+cf_path_prog=""
+cf_path_args=""
+IFS="${IFS:-   }"; cf_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR"
+for cf_temp in $ac_cv_path_$1
+do
+       if test -z "$cf_path_prog" ; then
+               if test "$with_full_paths" = yes ; then
+                       CF_PATH_SYNTAX(cf_temp,break)
+                       cf_path_prog="$cf_temp"
+               else
+                       cf_path_prog="`basename $cf_temp`"
+               fi
+       elif test -z "$cf_path_args" ; then
+               cf_path_args="$cf_temp"
+       else
+               cf_path_args="$cf_path_args $cf_temp"
+       fi
+done
+IFS="$cf_save_ifs"
+
+if test -n "$cf_path_prog" ; then
+       CF_MSG_LOG(defining path for ${cf_path_prog})
+       AC_DEFINE_UNQUOTED($1_PATH,"$cf_path_prog",Define to pathname $1)
+       test -n "$cf_path_args" && AC_DEFINE_UNQUOTED($1_ARGS,"$cf_path_args",Define to provide args for $1)
+fi
+])dnl
+dnl ---------------------------------------------------------------------------
 dnl CF_PATH_SYNTAX version: 16 updated: 2015/04/18 08:56:57
 dnl --------------
 dnl Check the argument to see that it looks like a pathname.  Rewrite it if it
@@ -5611,11 +5995,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,
@@ -5680,20 +6068,40 @@ AC_DEFUN([CF_PROG_EGREP],
        test -z "$EGREP" && AC_MSG_ERROR(No egrep program found)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_PROG_GNAT version: 8 updated: 2018/11/10 19:47:04
+dnl CF_PROG_GNAT version: 10 updated: 2019/12/31 08:53:54
 dnl ------------
-dnl Check for gnatmake, ensure that it is complete.
+dnl Check for gnat/gnatmake/etc, ensure that the toolset is complete.
 AC_DEFUN([CF_PROG_GNAT],[
-cf_ada_make=gnatmake
-cf_ada_config="#"
-AC_CHECK_PROG(gnatmake_exists, $cf_ada_make, yes, no)
-if test "$ac_cv_prog_gnatmake_exists" = no; then
+for cf_prog_gnat in gnat gnatmake gprconfig gprbuild
+do
+       CF_UPPER(cf_upper_prog_gnat,${cf_prog_gnat})
+
+       unset ac_cv_path_cf_TEMP_gnat
+       unset cf_TEMP_gnat
+       AC_PATH_PROG(cf_TEMP_gnat,$cf_prog_gnat,no)
+       eval cf_cv_PATH_$cf_upper_prog_gnat=[$]ac_cv_path_cf_TEMP_gnat
+
+       if test "x$cf_TEMP_gnat" != xno; then
+               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_cv_gnat_version
+       unset ac_cv_path_cf_TEMP_gnat
+done
+
+if test "x$cf_cv_VERSION_GNATMAKE" = "xno"; then
        cf_ada_make=
        cf_cv_prog_gnat_correct=no
 else
-       AC_CHECK_PROG(gprconfig_exists, gprconfig, yes, no)
-       if test "$ac_cv_prog_gprconfig_exists" = yes
-       then
+       cf_ada_make=gnatmake
+       if test "x$cf_cv_VERSION_GPRCONFIG" = "xno"; then
+               # gprconfig is newer than gnatmake; we can continue...
+               cf_ada_config="##"
+       else
                rm -rf conftest* *~conftest*
                if mkdir conftest.src
                then
@@ -5729,17 +6137,15 @@ else
                        cd ..
                        rm -rf conftest* *~conftest*
                fi
-       else
-               # gprconfig is newer than gnatmake; we can continue...
-               cf_ada_config="##"
        fi
        if test "x$cf_ada_config" != "x#"
        then
                CF_GNAT_VERSION
+               CF_CHECK_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.
+                       AC_MSG_WARN(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)
@@ -5751,7 +6157,9 @@ 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])
+end conftest;],
+[cf_cv_prog_gnat_correct=yes],
+[cf_cv_prog_gnat_correct=no])
                        AC_MSG_RESULT($cf_cv_prog_gnat_correct)
                fi
        else
@@ -5803,11 +6211,16 @@ fi
 AC_SUBST(LDCONFIG)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_PROG_LINT version: 3 updated: 2016/05/22 15:25:54
+dnl CF_PROG_LINT version: 4 updated: 2019/11/20 18:55:37
 dnl ------------
 AC_DEFUN([CF_PROG_LINT],
 [
 AC_CHECK_PROGS(LINT, lint cppcheck splint)
+case "x$LINT" in
+(xcppcheck|x*/cppcheck)
+       test -z "$LINT_OPTS" && LINT_OPTS="--enable=all"
+       ;;
+esac
 AC_SUBST(LINT_OPTS)
 ])dnl
 dnl ---------------------------------------------------------------------------
@@ -5943,6 +6356,17 @@ define([CF_REMOVE_LIB],
 $1=`echo "$2" | sed -e 's/-l$3[[       ]]//g' -e 's/-l$3[$]//'`
 ])dnl
 dnl ---------------------------------------------------------------------------
+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_RPATH_HACK version: 11 updated: 2013/09/01 13:02:00
 dnl -------------
 AC_DEFUN([CF_RPATH_HACK],
@@ -6060,6 +6484,31 @@ CF_VERBOSE(...checked $1 [$]$1)
 AC_SUBST(EXTRA_LDFLAGS)
 ])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: 93 updated: 2018/08/18 16:36:35
 dnl --------------
 dnl --------------
@@ -6521,12 +6970,12 @@ define([CF_SHARED_SONAME],
        fi
 ])
 dnl ---------------------------------------------------------------------------
-dnl CF_SIGWINCH version: 1 updated: 2006/04/02 16:41:09
+dnl CF_SIGWINCH version: 2 updated: 2019/03/23 19:54:44
 dnl -----------
 dnl Use this macro after CF_XOPEN_SOURCE, but do not require it (not all
 dnl programs need this test).
 dnl
-dnl This is really a MacOS X 10.4.3 workaround.  Defining _POSIX_C_SOURCE
+dnl This is really a Mac OS X 10.4.3 workaround.  Defining _POSIX_C_SOURCE
 dnl forces SIGWINCH to be undefined (breaks xterm, ncurses).  Oddly, the struct
 dnl winsize declaration is left alone - we may revisit this if Apple choose to
 dnl break that part of the interface as well.
@@ -6691,7 +7140,7 @@ if test "$cf_cv_sizechange" != no ; then
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_SRC_MODULES version: 30 updated: 2017/07/26 17:08:35
+dnl CF_SRC_MODULES version: 31 updated: 2019/09/21 18:08:42
 dnl --------------
 dnl For each parameter, test if the source-directory exists, and if it contains
 dnl a 'modules' file.  If so, add to the list $cf_cv_src_modules which we'll
@@ -6701,6 +7150,7 @@ dnl This uses the configured value to make the lists SRC_SUBDIRS and
 dnl SUB_MAKEFILES which are used in the makefile-generation scheme.
 AC_DEFUN([CF_SRC_MODULES],
 [
+AC_REQUIRE([CF_CHECK_GNAT_VERSION])
 AC_MSG_CHECKING(for src modules)
 
 # dependencies and linker-arguments for test-programs
@@ -7538,6 +7988,27 @@ AC_SUBST(ADA_INCLUDE)
 AC_MSG_RESULT($ADA_INCLUDE)
 ])dnl
 dnl ---------------------------------------------------------------------------
+dnl CF_WITH_ADA_LIBNAME version: 1 updated: 2019/09/07 18:59:41
+dnl -------------------
+dnl CF_WITH_ADA_LIBNAME
+dnl -------------------
+dnl Command-line option to specify how to name the resulting Ada library.
+dnl $1 = default value
+AC_DEFUN([CF_WITH_ADA_LIBNAME],[
+AC_MSG_CHECKING(for ada-libname)
+AC_ARG_WITH(ada-libname,
+   [  --with-ada-libname=XXX  override default Ada library-name],
+   ADA_LIBNAME=[$]withval,
+   ADA_LIBNAME=$1)
+case "x$ADA_LIBNAME" in
+(x|xyes|xno)
+       ADA_LIBNAME=$1
+       ;;
+esac
+AC_SUBST(ADA_LIBNAME)
+AC_MSG_RESULT($ADA_LIBNAME)
+])dnl
+dnl ---------------------------------------------------------------------------
 dnl CF_WITH_ADA_OBJECTS version: 2 updated: 2010/06/26 17:35:58
 dnl -------------------
 dnl Command-line option to specify where Ada objects will install.
@@ -7947,6 +8418,32 @@ AC_SUBST($3)dnl
 
 ])dnl
 dnl ---------------------------------------------------------------------------
+dnl CF_WITH_PATH_PROG version: 1 updated: 2019/06/30 19:44:43
+dnl -----------------
+dnl Check for a given program, like CF_PATH_PROG, but allow override using a
+dnl "--with-xxx" option.
+dnl
+dnl Parameters:
+dnl            $1 = environment variable to set/update
+dnl            $2 = program name
+dnl            $3 = help-text
+dnl            $4 = $PATH
+AC_DEFUN([CF_WITH_PATH_PROG],[
+AC_ARG_WITH($2-path,
+       [  --with-$2-path=XXX     specify path of $2 ifelse($3,,,$3)],
+       [AC_MSG_CHECKING(for $2 program ifelse($3,,,$3))
+               $1=$withval
+               AC_MSG_RESULT([$]$1)
+               CF_PATH_SYNTAX($1)
+       ],
+       [CF_PATH_PROG($1,$2,,ifelse($4,,,$4))
+               if test -z "[$]$1"
+               then
+                       AC_MSG_WARN(no $2 program found ifelse($3,,,$3))
+               fi
+       ])
+])
+dnl ---------------------------------------------------------------------------
 dnl CF_WITH_PCRE2 version: 2 updated: 2018/07/14 16:47:56
 dnl -------------
 dnl Add PCRE2 (Perl-compatible regular expressions v2) to the build if it is
@@ -8332,7 +8829,7 @@ AC_SUBST(VERSIONED_SYMS)
 AC_SUBST(WILDCARD_SYMS)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_WITH_X11_RGB version: 1 updated: 2017/11/25 17:32:16
+dnl CF_WITH_X11_RGB version: 2 updated: 2019/12/31 08:53:54
 dnl ---------------
 dnl Handle configure option "--with-x11-rgb", setting these shell
 dnl variables:
@@ -8408,7 +8905,7 @@ fi
 
 AC_MSG_RESULT($RGB_PATH)
 AC_SUBST(RGB_PATH)
-AC_DEFINE_UNQUOTED(RGB_PATH,"$cf_path")
+AC_DEFINE_UNQUOTED(RGB_PATH,"$cf_path",[Define to the full pathname of rgb.txt])
 
 no_x11_rgb=
 if test "$RGB_PATH" = no