xref: /freebsd/contrib/dialog/aclocal.m4 (revision 2e3507c25e42292b45a5482e116d278f5515d04d)
1dnl macros used for DIALOG configure script
2dnl $Id: aclocal.m4,v 1.150 2021/01/11 09:03:36 tom Exp $
3dnl ---------------------------------------------------------------------------
4dnl Copyright 1999-2020,2021 -- Thomas E. Dickey
5dnl
6dnl Permission is hereby granted, free of charge, to any person obtaining a
7dnl copy of this software and associated documentation files (the
8dnl "Software"), to deal in the Software without restriction, including
9dnl without limitation the rights to use, copy, modify, merge, publish,
10dnl distribute, distribute with modifications, sublicense, and/or sell
11dnl copies of the Software, and to permit persons to whom the Software is
12dnl furnished to do so, subject to the following conditions:
13dnl
14dnl The above copyright notice and this permission notice shall be included
15dnl in all copies or portions of the Software.
16dnl
17dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
18dnl OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
19dnl MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
20dnl IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
21dnl DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
22dnl OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
23dnl THE USE OR OTHER DEALINGS IN THE SOFTWARE.
24dnl
25dnl Except as contained in this notice, the name(s) of the above copyright
26dnl holders shall not be used in advertising or otherwise to promote the
27dnl sale, use or other dealings in this Software without prior written
28dnl authorization.
29dnl
30dnl see
31dnl https://invisible-island.net/autoconf/
32dnl ---------------------------------------------------------------------------
33dnl ---------------------------------------------------------------------------
34dnl AM_GNU_GETTEXT version: 15 updated: 2021/01/02 09:31:20
35dnl --------------
36dnl Usage: Just like AM_WITH_NLS, which see.
37AC_DEFUN([AM_GNU_GETTEXT],
38  [AC_REQUIRE([AC_PROG_MAKE_SET])dnl
39   AC_REQUIRE([AC_CANONICAL_HOST])dnl
40   AC_REQUIRE([AC_PROG_RANLIB])dnl
41   AC_REQUIRE([AC_HEADER_STDC])dnl
42   AC_REQUIRE([AC_C_INLINE])dnl
43   AC_REQUIRE([AC_TYPE_OFF_T])dnl
44   AC_REQUIRE([AC_TYPE_SIZE_T])dnl
45   AC_REQUIRE([AC_FUNC_ALLOCA])dnl
46   AC_REQUIRE([AC_FUNC_MMAP])dnl
47   AC_REQUIRE([jm_GLIBC21])dnl
48   AC_REQUIRE([CF_PROG_CC])dnl
49
50   AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \
51stdlib.h string.h unistd.h sys/param.h])
52   AC_CHECK_FUNCS([feof_unlocked fgets_unlocked getcwd getegid geteuid \
53getgid getuid mempcpy munmap putenv setenv setlocale stpcpy strchr strcasecmp \
54strdup strtoul tsearch __argz_count __argz_stringify __argz_next])
55
56   AM_ICONV
57   AM_LANGINFO_CODESET
58   AM_LC_MESSAGES
59   AM_WITH_NLS([$1],[$2],[$3],[$4])
60
61   if test "x$CATOBJEXT" != "x"; then
62     if test "x$ALL_LINGUAS" = "x"; then
63       LINGUAS=
64     else
65       AC_MSG_CHECKING(for catalogs to be installed)
66       NEW_LINGUAS=
67       for presentlang in $ALL_LINGUAS; do
68         useit=no
69         for desiredlang in ${LINGUAS-$ALL_LINGUAS}; do
70           # Use the presentlang catalog if desiredlang is
71           #   a. equal to presentlang, or
72           #   b. a variant of presentlang (because in this case,
73           #      presentlang can be used as a fallback for messages
74           #      which are not translated in the desiredlang catalog).
75           case "$desiredlang" in
76             ("$presentlang"*) useit=yes;;
77           esac
78         done
79         if test "$useit" = yes; then
80           NEW_LINGUAS="$NEW_LINGUAS $presentlang"
81         fi
82       done
83       LINGUAS=$NEW_LINGUAS
84       AC_MSG_RESULT($LINGUAS)
85     fi
86
87     dnl Construct list of names of catalog files to be constructed.
88     if test -n "$LINGUAS"; then
89       for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
90     fi
91   fi
92
93   dnl Enable libtool support if the surrounding package wishes it.
94   INTL_LIBTOOL_SUFFIX_PREFIX=ifelse([$1], use-libtool, [l], [])
95   AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX)
96])dnl
97dnl ---------------------------------------------------------------------------
98dnl AM_ICONV version: 12 updated: 2007/07/30 19:12:03
99dnl --------
100dnl Inserted as requested by gettext 0.10.40
101dnl File from /usr/share/aclocal
102dnl iconv.m4
103dnl ====================
104dnl serial AM2
105dnl
106dnl From Bruno Haible.
107dnl
108dnl ====================
109dnl Modified to use CF_FIND_LINKAGE and CF_ADD_SEARCHPATH, to broaden the
110dnl range of locations searched.  Retain the same cache-variable naming to
111dnl allow reuse with the other gettext macros -Thomas E Dickey
112AC_DEFUN([AM_ICONV],
113[
114  dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
115  dnl those with the standalone portable GNU libiconv installed).
116
117  AC_ARG_WITH([libiconv-prefix],
118[  --with-libiconv-prefix=DIR
119                          search for libiconv in DIR/include and DIR/lib], [
120    CF_ADD_OPTIONAL_PATH($withval, libiconv)
121   ])
122
123  AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [
124    CF_FIND_LINKAGE(CF__ICONV_HEAD,
125      CF__ICONV_BODY,
126      iconv,
127      am_cv_func_iconv=yes,
128      am_cv_func_iconv=["no, consider installing GNU libiconv"])])
129
130  if test "$am_cv_func_iconv" = yes; then
131    AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
132
133    AC_CACHE_CHECK([if the declaration of iconv() needs const.],
134		   am_cv_proto_iconv_const,[
135      AC_TRY_COMPILE(CF__ICONV_HEAD [
136extern
137#ifdef __cplusplus
138"C"
139#endif
140#if defined(__STDC__) || defined(__cplusplus)
141size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
142#else
143size_t iconv();
144#endif
145],[], am_cv_proto_iconv_const=no,
146      am_cv_proto_iconv_const=yes)])
147
148    if test "$am_cv_proto_iconv_const" = yes ; then
149      am_cv_proto_iconv_arg1="const"
150    else
151      am_cv_proto_iconv_arg1=""
152    fi
153
154    AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1,
155      [Define as const if the declaration of iconv() needs const.])
156  fi
157
158  LIBICONV=
159  if test "$cf_cv_find_linkage_iconv" = yes; then
160    CF_ADD_INCDIR($cf_cv_header_path_iconv)
161    if test -n "$cf_cv_library_file_iconv" ; then
162      LIBICONV="-liconv"
163      CF_ADD_LIBDIR($cf_cv_library_path_iconv)
164    fi
165  fi
166
167  AC_SUBST(LIBICONV)
168])dnl
169dnl ---------------------------------------------------------------------------
170dnl AM_LANGINFO_CODESET version: 6 updated: 2021/01/01 16:53:59
171dnl -------------------
172dnl Inserted as requested by gettext 0.10.40
173dnl File from /usr/share/aclocal
174dnl codeset.m4
175dnl ====================
176dnl serial AM1
177dnl
178dnl From Bruno Haible.
179AC_DEFUN([AM_LANGINFO_CODESET],
180[
181AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset,
182	[AC_TRY_LINK([#include <langinfo.h>],
183	[char* cs = nl_langinfo(CODESET); (void)cs],
184	am_cv_langinfo_codeset=yes,
185	am_cv_langinfo_codeset=no)
186	])
187	if test "$am_cv_langinfo_codeset" = yes; then
188		AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
189		[Define if you have <langinfo.h> and nl_langinfo(CODESET).])
190	fi
191])dnl
192dnl ---------------------------------------------------------------------------
193dnl AM_LC_MESSAGES version: 6 updated: 2021/01/02 09:31:20
194dnl --------------
195dnl Inserted as requested by gettext 0.10.40
196dnl File from /usr/share/aclocal
197dnl lcmessage.m4
198dnl ====================
199dnl Check whether LC_MESSAGES is available in <locale.h>.
200dnl Ulrich Drepper <drepper@cygnus.com>, 1995.
201dnl
202dnl This file can be copied and used freely without restrictions.  It can
203dnl be used in projects which are not available under the GNU General Public
204dnl License or the GNU Library General Public License but which still want
205dnl to provide support for the GNU gettext functionality.
206dnl Please note that the actual code of the GNU gettext library is covered
207dnl by the GNU Library General Public License, and the rest of the GNU
208dnl gettext package package is covered by the GNU General Public License.
209dnl They are *not* in the public domain.
210dnl
211dnl serial 2
212dnl
213AC_DEFUN([AM_LC_MESSAGES],
214[if test "$ac_cv_header_locale_h" = yes; then
215	AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
216		[AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
217		am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
218	if test "$am_cv_val_LC_MESSAGES" = yes; then
219		AC_DEFINE(HAVE_LC_MESSAGES, 1,
220		[Define if your <locale.h> file defines LC_MESSAGES.])
221	fi
222fi])dnl
223dnl ---------------------------------------------------------------------------
224dnl AM_PATH_PROG_WITH_TEST version: 10 updated: 2021/01/02 09:31:20
225dnl ----------------------
226dnl Inserted as requested by gettext 0.10.40
227dnl File from /usr/share/aclocal
228dnl progtest.m4
229dnl ====================
230dnl Search path for a program which passes the given test.
231dnl Ulrich Drepper <drepper@cygnus.com>, 1996.
232dnl
233dnl This file can be copied and used freely without restrictions.  It can
234dnl be used in projects which are not available under the GNU General Public
235dnl License or the GNU Library General Public License but which still want
236dnl to provide support for the GNU gettext functionality.
237dnl Please note that the actual code of the GNU gettext library is covered
238dnl by the GNU Library General Public License, and the rest of the GNU
239dnl gettext package package is covered by the GNU General Public License.
240dnl They are *not* in the public domain.
241dnl
242dnl serial 2
243dnl
244dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
245dnl   TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
246AC_DEFUN([AM_PATH_PROG_WITH_TEST],
247[# Extract the first word of "$2", so it can be a program name with args.
248AC_REQUIRE([CF_PATHSEP])
249set dummy $2; ac_word=[$]2
250AC_MSG_CHECKING([for $ac_word])
251AC_CACHE_VAL(ac_cv_path_$1,
252[case "[$]$1" in
253  ([[\\/]*|?:[\\/]]*)
254  ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
255  ;;
256  (*)
257  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
258  for ac_dir in ifelse([$5], , $PATH, [$5]); do
259    test -z "$ac_dir" && ac_dir=.
260    if test -f "$ac_dir/$ac_word$ac_exeext" ; then
261      if [$3]; then
262	ac_cv_path_$1="$ac_dir/$ac_word$ac_exeext"
263	break
264      fi
265    fi
266  done
267  IFS="$ac_save_ifs"
268dnl If no 4th arg is given, leave the cache variable unset,
269dnl so AC_PATH_PROGS will keep looking.
270ifelse([$4], , , [  test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
271])dnl
272  ;;
273esac])dnl
274$1="$ac_cv_path_$1"
275if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then
276  AC_MSG_RESULT([$]$1)
277else
278  AC_MSG_RESULT(no)
279fi
280AC_SUBST($1)dnl
281])dnl
282dnl ---------------------------------------------------------------------------
283dnl AM_WITH_NLS version: 31 updated: 2021/01/04 17:48:08
284dnl -----------
285dnl Inserted as requested by gettext 0.10.40
286dnl File from /usr/share/aclocal
287dnl gettext.m4
288dnl ====================
289dnl Macro to add for using GNU gettext.
290dnl Ulrich Drepper <drepper@cygnus.com>, 1995.
291dnl ====================
292dnl Modified to use CF_FIND_LINKAGE and CF_ADD_SEARCHPATH, to broaden the
293dnl range of locations searched.  Retain the same cache-variable naming to
294dnl allow reuse with the other gettext macros -Thomas E Dickey
295dnl ====================
296dnl
297dnl This file can be copied and used freely without restrictions.  It can
298dnl be used in projects which are not available under the GNU General Public
299dnl License or the GNU Library General Public License but which still want
300dnl to provide support for the GNU gettext functionality.
301dnl Please note that the actual code of the GNU gettext library is covered
302dnl by the GNU Library General Public License, and the rest of the GNU
303dnl gettext package package is covered by the GNU General Public License.
304dnl They are *not* in the public domain.
305dnl
306dnl serial 10
307dnl
308dnl Usage: AM_WITH_NLS([TOOLSYMBOL], [NEEDSYMBOL], [LIBDIR], [ENABLED]).
309dnl If TOOLSYMBOL is specified and is 'use-libtool', then a libtool library
310dnl    $(top_builddir)/intl/libintl.la will be created (shared and/or static,
311dnl    depending on --{enable,disable}-{shared,static} and on the presence of
312dnl    AM-DISABLE-SHARED). Otherwise, a static library
313dnl    $(top_builddir)/intl/libintl.a will be created.
314dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext
315dnl    implementations (in libc or libintl) without the ngettext() function
316dnl    will be ignored.
317dnl LIBDIR is used to find the intl libraries.  If empty,
318dnl    the value `$(top_builddir)/intl/' is used.
319dnl ENABLED is used to control the default for the related --enable-nls, since
320dnl    not all application developers want this feature by default, e.g., lynx.
321dnl
322dnl The result of the configuration is one of three cases:
323dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled
324dnl    and used.
325dnl    Catalog format: GNU --> install in $(datadir)
326dnl    Catalog extension: .mo after installation, .gmo in source tree
327dnl 2) GNU gettext has been found in the system's C library.
328dnl    Catalog format: GNU --> install in $(datadir)
329dnl    Catalog extension: .mo after installation, .gmo in source tree
330dnl 3) No internationalization, always use English msgid.
331dnl    Catalog format: none
332dnl    Catalog extension: none
333dnl The use of .gmo is historical (it was needed to avoid overwriting the
334dnl GNU format catalogs when building on a platform with an X/Open gettext),
335dnl but we keep it in order not to force irrelevant filename changes on the
336dnl maintainers.
337dnl
338AC_DEFUN([AM_WITH_NLS],
339[AC_MSG_CHECKING([whether NLS is requested])
340  dnl Default is enabled NLS
341  ifelse([$4],,[
342  AC_ARG_ENABLE(nls,
343    [  --disable-nls           do not use Native Language Support],
344    USE_NLS=$enableval, USE_NLS=yes)],[
345  AC_ARG_ENABLE(nls,
346    [  --enable-nls            use Native Language Support],
347    USE_NLS=$enableval, USE_NLS=no)])
348  AC_MSG_RESULT($USE_NLS)
349  AC_SUBST(USE_NLS)
350
351  BUILD_INCLUDED_LIBINTL=no
352  USE_INCLUDED_LIBINTL=no
353  INTLLIBS=
354
355  dnl If we use NLS figure out what method
356  if test "$USE_NLS" = "yes"; then
357    dnl We need to process the po/ directory.
358    POSUB=po
359    AC_DEFINE(ENABLE_NLS, 1,
360      [Define to 1 if translation of program messages to the user's native language
361 is requested.])
362    AC_MSG_CHECKING([whether included gettext is requested])
363    AC_ARG_WITH(included-gettext,
364      [  --with-included-gettext use the GNU gettext library included here],
365      nls_cv_force_use_gnu_gettext=$withval,
366      nls_cv_force_use_gnu_gettext=no)
367    AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
368
369    nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
370    if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
371      dnl User does not insist on using GNU NLS library.  Figure out what
372      dnl to use.  If GNU gettext is available we use this.  Else we may have
373      dnl to fall back to GNU NLS library.
374      CATOBJEXT=NONE
375
376      dnl Save these (possibly-set) variables for reference.  If the user
377      dnl overrode these to provide full pathnames, then warn if not actually
378      dnl GNU gettext, but do not override their values.  Also, if they were
379      dnl overridden, suppress the part of the library test which prevents it
380      dnl from finding anything other than GNU gettext.  Doing this also
381      dnl suppresses a bogus search for the intl library.
382      cf_save_msgfmt_path="$MSGFMT"
383      cf_save_xgettext_path="$XGETTEXT"
384
385      dnl Search for GNU msgfmt in the PATH.
386      AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
387          ["$ac_dir/$ac_word" --statistics /dev/null >/dev/null 2>&1], :)
388      AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
389      AC_SUBST(MSGFMT)
390
391      dnl Search for GNU xgettext in the PATH.
392      AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
393          ["$ac_dir/$ac_word" --omit-header /dev/null >/dev/null 2>&1], :)
394
395      cf_save_OPTS_1="$CPPFLAGS"
396      if test "x$cf_save_msgfmt_path" = "x$MSGFMT" && \
397         test "x$cf_save_xgettext_path" = "x$XGETTEXT" ; then
398          CF_ADD_CFLAGS(-DIGNORE_MSGFMT_HACK)
399      fi
400
401      cf_save_LIBS_1="$LIBS"
402      CF_ADD_LIBS($LIBICONV)
403
404      CF_FIND_LINKAGE(CF__INTL_HEAD,
405        CF__INTL_BODY($2),
406        intl,
407        cf_cv_func_gettext=yes,
408        cf_cv_func_gettext=no)
409
410      AC_MSG_CHECKING([for libintl.h and gettext()])
411      AC_MSG_RESULT($cf_cv_func_gettext)
412
413      LIBS="$cf_save_LIBS_1"
414      CPPFLAGS="$cf_save_OPTS_1"
415
416      if test "$cf_cv_func_gettext" = yes ; then
417        AC_DEFINE(HAVE_LIBINTL_H,1,[Define to 1 if we have libintl.h])
418
419        dnl If an already present or preinstalled GNU gettext() is found,
420        dnl use it.  But if this macro is used in GNU gettext, and GNU
421        dnl gettext is already preinstalled in libintl, we update this
422        dnl libintl.  (Cf. the install rule in intl/Makefile.in.)
423        if test "$PACKAGE" != gettext; then
424          AC_DEFINE(HAVE_GETTEXT, 1,
425              [Define if the GNU gettext() function is already present or preinstalled.])
426
427          CF_ADD_INCDIR($cf_cv_header_path_intl)
428
429          if test -n "$cf_cv_library_file_intl" ; then
430            dnl If iconv() is in a separate libiconv library, then anyone
431            dnl linking with libintl{.a,.so} also needs to link with
432            dnl libiconv.
433            INTLLIBS="$cf_cv_library_file_intl $LIBICONV"
434            CF_ADD_LIBDIR($cf_cv_library_path_intl,INTLLIBS)
435          fi
436
437          gt_save_LIBS="$LIBS"
438          LIBS="$LIBS $INTLLIBS"
439          AC_CHECK_FUNCS(dcgettext)
440          LIBS="$gt_save_LIBS"
441
442          CATOBJEXT=.gmo
443        fi
444      elif test -z "$MSGFMT" || test -z "$XGETTEXT" ; then
445        AC_MSG_WARN(disabling NLS feature)
446        sed -e /ENABLE_NLS/d confdefs.h >confdefs.tmp
447        mv confdefs.tmp confdefs.h
448        ALL_LINGUAS=
449        CATOBJEXT=.ignored
450        MSGFMT=":"
451        GMSGFMT=":"
452        XGETTEXT=":"
453        POSUB=
454        BUILD_INCLUDED_LIBINTL=no
455        USE_INCLUDED_LIBINTL=no
456        USE_NLS=no
457        nls_cv_use_gnu_gettext=no
458      fi
459
460      if test "$CATOBJEXT" = "NONE"; then
461        dnl GNU gettext is not found in the C library.
462        dnl Fall back on GNU gettext library.
463        nls_cv_use_gnu_gettext=maybe
464      fi
465    fi
466
467    if test "$nls_cv_use_gnu_gettext" != "no"; then
468      CATOBJEXT=.gmo
469      if test -f "$srcdir/intl/libintl.h" ; then
470        dnl Mark actions used to generate GNU NLS library.
471        INTLOBJS="\$(GETTOBJS)"
472        BUILD_INCLUDED_LIBINTL=yes
473        USE_INCLUDED_LIBINTL=yes
474        INTLLIBS="ifelse([$3],[],\$(top_builddir)/intl,[$3])/libintl.ifelse([$1], use-libtool, [l], [])a $LIBICONV"
475        LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
476      elif test "$nls_cv_use_gnu_gettext" = "yes"; then
477        nls_cv_use_gnu_gettext=no
478        AC_MSG_WARN(no NLS library is packaged with this application)
479      fi
480    fi
481
482    dnl Test whether we really found GNU msgfmt.
483    if test "$GMSGFMT" != ":"; then
484      if $GMSGFMT --statistics /dev/null >/dev/null 2>&1; then
485        : ;
486      else
487        AC_MSG_WARN([found msgfmt program is not GNU msgfmt])
488      fi
489    fi
490
491    dnl Test whether we really found GNU xgettext.
492    if test "$XGETTEXT" != ":"; then
493      if $XGETTEXT --omit-header /dev/null >/dev/null 2>&1; then
494        : ;
495      else
496        AC_MSG_WARN([found xgettext program is not GNU xgettext])
497      fi
498    fi
499  fi
500
501  if test "$XGETTEXT" != ":"; then
502    AC_OUTPUT_COMMANDS(
503     [for ac_file in $CONFIG_FILES; do
504
505        # Support "outfile[:infile[:infile...]]"
506        case "$ac_file" in
507          (*:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
508        esac
509
510        # PO directories have a Makefile.in generated from Makefile.inn.
511        case "$ac_file" in
512        (*/[Mm]akefile.in)
513          # Adjust a relative srcdir.
514          ac_dir="`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`"
515          ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
516          ac_dots="`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`"
517          ac_base="`basename $ac_file .in`"
518          # In autoconf-2.13 it is called $ac_given_srcdir.
519          # In autoconf-2.50 it is called $srcdir.
520          test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
521
522          case "$ac_given_srcdir" in
523            (.)  top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
524            (/*) top_srcdir="$ac_given_srcdir" ;;
525            (*)  top_srcdir="$ac_dots$ac_given_srcdir" ;;
526          esac
527
528          if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
529            rm -f "$ac_dir/POTFILES"
530            test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
531            sed -e "/^#/d" -e "/^[ 	]*\$/d" -e "s,.*,     $top_srcdir/& \\\\," -e "\$s/\(.*\) \\\\/\1/" < "$ac_given_srcdir/$ac_dir/POTFILES.in" > "$ac_dir/POTFILES"
532            test -n "$as_me" && echo "$as_me: creating $ac_dir/$ac_base" || echo "creating $ac_dir/$ac_base"
533            sed -e "/POTFILES =/r $ac_dir/POTFILES" "$ac_dir/$ac_base.in" > "$ac_dir/$ac_base"
534          fi
535          ;;
536        esac
537      done])
538
539    dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL
540    dnl to 'yes' because some of the testsuite requires it.
541    if test "$PACKAGE" = gettext; then
542      BUILD_INCLUDED_LIBINTL=yes
543    fi
544
545    dnl intl/plural.c is generated from intl/plural.y. It requires bison,
546    dnl because plural.y uses bison specific features. It requires at least
547    dnl bison-1.26 because earlier versions generate a plural.c that doesn't
548    dnl compile.
549    dnl bison is only needed for the maintainer (who touches plural.y). But in
550    dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put
551    dnl the rule in general Makefile. Now, some people carelessly touch the
552    dnl files or have a broken "make" program, hence the plural.c rule will
553    dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not
554    dnl present or too old.
555    if test "$nls_cv_use_gnu_gettext" = "yes"; then
556      AC_CHECK_PROGS([INTLBISON], [bison])
557      if test -z "$INTLBISON"; then
558        ac_verc_fail=yes
559      else
560        dnl Found it, now check the version.
561        AC_MSG_CHECKING([version of bison])
562changequote(<<,>>)dnl
563        ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
564        case "$ac_prog_version" in
565          ('') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
566          (1.2[6-9]*|1.[3-9][0-9]*|[2-9].*)
567changequote([,])dnl
568             ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
569          (*) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
570        esac
571      AC_MSG_RESULT([$ac_prog_version])
572      fi
573      if test "$ac_verc_fail" = yes; then
574        INTLBISON=:
575      fi
576    fi
577
578    dnl These rules are solely for the distribution goal.  While doing this
579    dnl we only have to keep exactly one list of the available catalogs
580    dnl in configure.in.
581    for lang in $ALL_LINGUAS; do
582      GMOFILES="$GMOFILES $lang.gmo"
583      POFILES="$POFILES $lang.po"
584    done
585  fi
586
587  dnl Make all variables we use known to autoconf.
588  AC_SUBST(BUILD_INCLUDED_LIBINTL)
589  AC_SUBST(USE_INCLUDED_LIBINTL)
590  AC_SUBST(CATALOGS)
591  AC_SUBST(CATOBJEXT)
592  AC_SUBST(GMOFILES)
593  AC_SUBST(INTLLIBS)
594  AC_SUBST(INTLOBJS)
595  AC_SUBST(POFILES)
596  AC_SUBST(POSUB)
597
598  dnl For backward compatibility. Some configure.ins may be using this.
599  nls_cv_header_intl=
600  nls_cv_header_libgt=
601
602  dnl For backward compatibility. Some Makefiles may be using this.
603  DATADIRNAME=share
604  AC_SUBST(DATADIRNAME)
605
606  dnl For backward compatibility. Some Makefiles may be using this.
607  INSTOBJEXT=.mo
608  AC_SUBST(INSTOBJEXT)
609
610  dnl For backward compatibility. Some Makefiles may be using this.
611  GENCAT=gencat
612  AC_SUBST(GENCAT)
613])dnl
614dnl ---------------------------------------------------------------------------
615dnl CF_ACVERSION_CHECK version: 5 updated: 2014/06/04 19:11:49
616dnl ------------------
617dnl Conditionally generate script according to whether we're using a given autoconf.
618dnl
619dnl $1 = version to compare against
620dnl $2 = code to use if AC_ACVERSION is at least as high as $1.
621dnl $3 = code to use if AC_ACVERSION is older than $1.
622define([CF_ACVERSION_CHECK],
623[
624ifdef([AC_ACVERSION], ,[ifdef([AC_AUTOCONF_VERSION],[m4_copy([AC_AUTOCONF_VERSION],[AC_ACVERSION])],[m4_copy([m4_PACKAGE_VERSION],[AC_ACVERSION])])])dnl
625ifdef([m4_version_compare],
626[m4_if(m4_version_compare(m4_defn([AC_ACVERSION]), [$1]), -1, [$3], [$2])],
627[CF_ACVERSION_COMPARE(
628AC_PREREQ_CANON(AC_PREREQ_SPLIT([$1])),
629AC_PREREQ_CANON(AC_PREREQ_SPLIT(AC_ACVERSION)), AC_ACVERSION, [$2], [$3])])])dnl
630dnl ---------------------------------------------------------------------------
631dnl CF_ACVERSION_COMPARE version: 3 updated: 2012/10/03 18:39:53
632dnl --------------------
633dnl CF_ACVERSION_COMPARE(MAJOR1, MINOR1, TERNARY1,
634dnl                      MAJOR2, MINOR2, TERNARY2,
635dnl                      PRINTABLE2, not FOUND, FOUND)
636define([CF_ACVERSION_COMPARE],
637[ifelse(builtin([eval], [$2 < $5]), 1,
638[ifelse([$8], , ,[$8])],
639[ifelse([$9], , ,[$9])])])dnl
640dnl ---------------------------------------------------------------------------
641dnl CF_ADD_CFLAGS version: 15 updated: 2020/12/31 10:54:15
642dnl -------------
643dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS
644dnl $1 = flags to add
645dnl $2 = if given makes this macro verbose.
646dnl
647dnl Put any preprocessor definitions that use quoted strings in $EXTRA_CPPFLAGS,
648dnl to simplify use of $CPPFLAGS in compiler checks, etc., that are easily
649dnl confused by the quotes (which require backslashes to keep them usable).
650AC_DEFUN([CF_ADD_CFLAGS],
651[
652cf_fix_cppflags=no
653cf_new_cflags=
654cf_new_cppflags=
655cf_new_extra_cppflags=
656
657for cf_add_cflags in $1
658do
659case "$cf_fix_cppflags" in
660(no)
661	case "$cf_add_cflags" in
662	(-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C)
663		case "$cf_add_cflags" in
664		(-D*)
665			cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^-D[[^=]]*='\''\"[[^"]]*//'`
666
667			test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
668				&& test -z "${cf_tst_cflags}" \
669				&& cf_fix_cppflags=yes
670
671			if test "$cf_fix_cppflags" = yes ; then
672				CF_APPEND_TEXT(cf_new_extra_cppflags,$cf_add_cflags)
673				continue
674			elif test "${cf_tst_cflags}" = "\"'" ; then
675				CF_APPEND_TEXT(cf_new_extra_cppflags,$cf_add_cflags)
676				continue
677			fi
678			;;
679		esac
680		case "$CPPFLAGS" in
681		(*$cf_add_cflags)
682			;;
683		(*)
684			case "$cf_add_cflags" in
685			(-D*)
686				cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
687				CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,$cf_tst_cppflags)
688				;;
689			esac
690			CF_APPEND_TEXT(cf_new_cppflags,$cf_add_cflags)
691			;;
692		esac
693		;;
694	(*)
695		CF_APPEND_TEXT(cf_new_cflags,$cf_add_cflags)
696		;;
697	esac
698	;;
699(yes)
700	CF_APPEND_TEXT(cf_new_extra_cppflags,$cf_add_cflags)
701
702	cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^[[^"]]*"'\''//'`
703
704	test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
705		&& test -z "${cf_tst_cflags}" \
706		&& cf_fix_cppflags=no
707	;;
708esac
709done
710
711if test -n "$cf_new_cflags" ; then
712	ifelse([$2],,,[CF_VERBOSE(add to \$CFLAGS $cf_new_cflags)])
713	CF_APPEND_TEXT(CFLAGS,$cf_new_cflags)
714fi
715
716if test -n "$cf_new_cppflags" ; then
717	ifelse([$2],,,[CF_VERBOSE(add to \$CPPFLAGS $cf_new_cppflags)])
718	CF_APPEND_TEXT(CPPFLAGS,$cf_new_cppflags)
719fi
720
721if test -n "$cf_new_extra_cppflags" ; then
722	ifelse([$2],,,[CF_VERBOSE(add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags)])
723	CF_APPEND_TEXT(EXTRA_CPPFLAGS,$cf_new_extra_cppflags)
724fi
725
726AC_SUBST(EXTRA_CPPFLAGS)
727
728])dnl
729dnl ---------------------------------------------------------------------------
730dnl CF_ADD_INCDIR version: 16 updated: 2020/12/31 20:19:42
731dnl -------------
732dnl Add an include-directory to $CPPFLAGS.  Don't add /usr/include, since it's
733dnl redundant.  We don't normally need to add -I/usr/local/include for gcc,
734dnl but old versions (and some misinstalled ones) need that.  To make things
735dnl worse, gcc 3.x may give error messages if -I/usr/local/include is added to
736dnl the include-path).
737AC_DEFUN([CF_ADD_INCDIR],
738[
739if test -n "$1" ; then
740  for cf_add_incdir in $1
741  do
742	while test "$cf_add_incdir" != /usr/include
743	do
744	  if test -d "$cf_add_incdir"
745	  then
746		cf_have_incdir=no
747		if test -n "$CFLAGS$CPPFLAGS" ; then
748		  # a loop is needed to ensure we can add subdirs of existing dirs
749		  for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
750			if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
751			  cf_have_incdir=yes; break
752			fi
753		  done
754		fi
755
756		if test "$cf_have_incdir" = no ; then
757		  if test "$cf_add_incdir" = /usr/local/include ; then
758			if test "$GCC" = yes
759			then
760			  cf_save_CPPFLAGS=$CPPFLAGS
761			  CF_APPEND_TEXT(CPPFLAGS,-I$cf_add_incdir)
762			  AC_TRY_COMPILE([#include <stdio.h>],
763				  [printf("Hello")],
764				  [],
765				  [cf_have_incdir=yes])
766			  CPPFLAGS=$cf_save_CPPFLAGS
767			fi
768		  fi
769		fi
770
771		if test "$cf_have_incdir" = no ; then
772		  CF_VERBOSE(adding $cf_add_incdir to include-path)
773		  ifelse([$2],,CPPFLAGS,[$2])="$ifelse([$2],,CPPFLAGS,[$2]) -I$cf_add_incdir"
774
775		  cf_top_incdir=`echo "$cf_add_incdir" | sed -e 's%/include/.*$%/include%'`
776		  test "$cf_top_incdir" = "$cf_add_incdir" && break
777		  cf_add_incdir="$cf_top_incdir"
778		else
779		  break
780		fi
781	  else
782		break
783	  fi
784	done
785  done
786fi
787])dnl
788dnl ---------------------------------------------------------------------------
789dnl CF_ADD_LIB version: 2 updated: 2010/06/02 05:03:05
790dnl ----------
791dnl Add a library, used to enforce consistency.
792dnl
793dnl $1 = library to add, without the "-l"
794dnl $2 = variable to update (default $LIBS)
795AC_DEFUN([CF_ADD_LIB],[CF_ADD_LIBS(-l$1,ifelse($2,,LIBS,[$2]))])dnl
796dnl ---------------------------------------------------------------------------
797dnl CF_ADD_LIBDIR version: 11 updated: 2020/12/31 20:19:42
798dnl -------------
799dnl	Adds to the library-path
800dnl
801dnl	Some machines have trouble with multiple -L options.
802dnl
803dnl $1 is the (list of) directory(s) to add
804dnl $2 is the optional name of the variable to update (default LDFLAGS)
805dnl
806AC_DEFUN([CF_ADD_LIBDIR],
807[
808if test -n "$1" ; then
809	for cf_add_libdir in $1
810	do
811		if test "$cf_add_libdir" = /usr/lib ; then
812			:
813		elif test -d "$cf_add_libdir"
814		then
815			cf_have_libdir=no
816			if test -n "$LDFLAGS$LIBS" ; then
817				# a loop is needed to ensure we can add subdirs of existing dirs
818				for cf_test_libdir in $LDFLAGS $LIBS ; do
819					if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
820						cf_have_libdir=yes; break
821					fi
822				done
823			fi
824			if test "$cf_have_libdir" = no ; then
825				CF_VERBOSE(adding $cf_add_libdir to library-path)
826				ifelse([$2],,LDFLAGS,[$2])="-L$cf_add_libdir $ifelse([$2],,LDFLAGS,[$2])"
827			fi
828		fi
829	done
830fi
831])dnl
832dnl ---------------------------------------------------------------------------
833dnl CF_ADD_LIBS version: 3 updated: 2019/11/02 16:47:33
834dnl -----------
835dnl Add one or more libraries, used to enforce consistency.  Libraries are
836dnl prepended to an existing list, since their dependencies are assumed to
837dnl already exist in the list.
838dnl
839dnl $1 = libraries to add, with the "-l", etc.
840dnl $2 = variable to update (default $LIBS)
841AC_DEFUN([CF_ADD_LIBS],[
842cf_add_libs="[$]ifelse($2,,LIBS,[$2])"
843# reverse order
844cf_add_0lib=
845for cf_add_1lib in $1; do cf_add_0lib="$cf_add_1lib $cf_add_0lib"; done
846# filter duplicates
847for cf_add_1lib in $cf_add_0lib; do
848	for cf_add_2lib in $cf_add_libs; do
849		if test "x$cf_add_1lib" = "x$cf_add_2lib"; then
850			cf_add_1lib=
851			break
852		fi
853	done
854	test -n "$cf_add_1lib" && cf_add_libs="$cf_add_1lib $cf_add_libs"
855done
856ifelse($2,,LIBS,[$2])="$cf_add_libs"
857])dnl
858dnl ---------------------------------------------------------------------------
859dnl CF_ADD_LIB_AFTER version: 3 updated: 2013/07/09 21:27:22
860dnl ----------------
861dnl Add a given library after another, e.g., following the one it satisfies a
862dnl dependency for.
863dnl
864dnl $1 = the first library
865dnl $2 = its dependency
866AC_DEFUN([CF_ADD_LIB_AFTER],[
867CF_VERBOSE(...before $LIBS)
868LIBS=`echo "$LIBS" | sed -e "s/[[ 	]][[ 	]]*/ /g" -e "s%$1 %$1 $2 %" -e 's%  % %g'`
869CF_VERBOSE(...after  $LIBS)
870])dnl
871dnl ---------------------------------------------------------------------------
872dnl CF_ADD_OPTIONAL_PATH version: 3 updated: 2015/05/10 19:52:14
873dnl --------------------
874dnl Add an optional search-path to the compile/link variables.
875dnl See CF_WITH_PATH
876dnl
877dnl $1 = shell variable containing the result of --with-XXX=[DIR]
878dnl $2 = module to look for.
879AC_DEFUN([CF_ADD_OPTIONAL_PATH],[
880case "$1" in
881(no)
882	;;
883(yes)
884	;;
885(*)
886	CF_ADD_SEARCHPATH([$1], [AC_MSG_ERROR(cannot find $2 under $1)])
887	;;
888esac
889])dnl
890dnl ---------------------------------------------------------------------------
891dnl CF_ADD_SEARCHPATH version: 6 updated: 2020/12/31 20:19:42
892dnl -----------------
893dnl Set $CPPFLAGS and $LDFLAGS with the directories given via the parameter.
894dnl They can be either the common root of include- and lib-directories, or the
895dnl lib-directory (to allow for things like lib64 directories).
896dnl See also CF_FIND_LINKAGE.
897dnl
898dnl $1 is the list of colon-separated directory names to search.
899dnl $2 is the action to take if a parameter does not yield a directory.
900AC_DEFUN([CF_ADD_SEARCHPATH],
901[
902AC_REQUIRE([CF_PATHSEP])
903for cf_searchpath in `echo "$1" | tr $PATH_SEPARATOR ' '`; do
904	if test -d "$cf_searchpath/include" ; then
905		CF_ADD_INCDIR($cf_searchpath/include)
906	elif test -d "$cf_searchpath/../include" ; then
907		CF_ADD_INCDIR($cf_searchpath/../include)
908	ifelse([$2],,,[else
909$2])
910	fi
911	if test -d "$cf_searchpath/lib" ; then
912		CF_ADD_LIBDIR($cf_searchpath/lib)
913	elif test -d "$cf_searchpath" ; then
914		CF_ADD_LIBDIR($cf_searchpath)
915	ifelse([$2],,,[else
916$2])
917	fi
918done
919])
920dnl ---------------------------------------------------------------------------
921dnl CF_ADD_SUBDIR_PATH version: 5 updated: 2020/12/31 20:19:42
922dnl ------------------
923dnl Append to a search-list for a nonstandard header/lib-file
924dnl	$1 = the variable to return as result
925dnl	$2 = the package name
926dnl	$3 = the subdirectory, e.g., bin, include or lib
927dnl $4 = the directory under which we will test for subdirectories
928dnl $5 = a directory that we do not want $4 to match
929AC_DEFUN([CF_ADD_SUBDIR_PATH],
930[
931test "x$4" != "x$5" && \
932test -d "$4" && \
933ifelse([$5],NONE,,[{ test -z "$5" || test "x$5" = xNONE || test "x$4" != "x$5"; } &&]) {
934	test -n "$verbose" && echo "	... testing for $3-directories under $4"
935	test -d "$4/$3" &&          $1="[$]$1 $4/$3"
936	test -d "$4/$3/$2" &&       $1="[$]$1 $4/$3/$2"
937	test -d "$4/$3/$2/$3" &&    $1="[$]$1 $4/$3/$2/$3"
938	test -d "$4/$2/$3" &&       $1="[$]$1 $4/$2/$3"
939	test -d "$4/$2/$3/$2" &&    $1="[$]$1 $4/$2/$3/$2"
940}
941])dnl
942dnl ---------------------------------------------------------------------------
943dnl CF_APPEND_TEXT version: 1 updated: 2017/02/25 18:58:55
944dnl --------------
945dnl use this macro for appending text without introducing an extra blank at
946dnl the beginning
947define([CF_APPEND_TEXT],
948[
949	test -n "[$]$1" && $1="[$]$1 "
950	$1="[$]{$1}$2"
951])dnl
952dnl ---------------------------------------------------------------------------
953dnl CF_ARG_DISABLE version: 3 updated: 1999/03/30 17:24:31
954dnl --------------
955dnl Allow user to disable a normally-on option.
956AC_DEFUN([CF_ARG_DISABLE],
957[CF_ARG_OPTION($1,[$2],[$3],[$4],yes)])dnl
958dnl ---------------------------------------------------------------------------
959dnl CF_ARG_ENABLE version: 3 updated: 1999/03/30 17:24:31
960dnl -------------
961dnl Allow user to enable a normally-off option.
962AC_DEFUN([CF_ARG_ENABLE],
963[CF_ARG_OPTION($1,[$2],[$3],[$4],no)])dnl
964dnl ---------------------------------------------------------------------------
965dnl CF_ARG_MSG_ENABLE version: 2 updated: 2000/07/29 19:32:03
966dnl -----------------
967dnl Verbose form of AC_ARG_ENABLE:
968dnl
969dnl Parameters:
970dnl $1 = message
971dnl $2 = option name
972dnl $3 = help-string
973dnl $4 = action to perform if option is enabled
974dnl $5 = action if perform if option is disabled
975dnl $6 = default option value (either 'yes' or 'no')
976AC_DEFUN([CF_ARG_MSG_ENABLE],[
977AC_MSG_CHECKING($1)
978AC_ARG_ENABLE($2,[$3],,enableval=ifelse($6,,no,$6))
979AC_MSG_RESULT($enableval)
980if test "$enableval" != no ; then
981ifelse($4,,[	:],$4)
982else
983ifelse($5,,[	:],$5)
984fi
985])dnl
986dnl ---------------------------------------------------------------------------
987dnl CF_ARG_OPTION version: 5 updated: 2015/05/10 19:52:14
988dnl -------------
989dnl Restricted form of AC_ARG_ENABLE that ensures user doesn't give bogus
990dnl values.
991dnl
992dnl Parameters:
993dnl $1 = option name
994dnl $2 = help-string
995dnl $3 = action to perform if option is not default
996dnl $4 = action if perform if option is default
997dnl $5 = default option value (either 'yes' or 'no')
998AC_DEFUN([CF_ARG_OPTION],
999[AC_ARG_ENABLE([$1],[$2],[test "$enableval" != ifelse([$5],no,yes,no) && enableval=ifelse([$5],no,no,yes)
1000	if test "$enableval" != "$5" ; then
1001ifelse([$3],,[    :]dnl
1002,[    $3]) ifelse([$4],,,[
1003	else
1004		$4])
1005	fi],[enableval=$5 ifelse([$4],,,[
1006	$4
1007])dnl
1008])])dnl
1009dnl ---------------------------------------------------------------------------
1010dnl CF_AR_FLAGS version: 9 updated: 2021/01/01 13:31:04
1011dnl -----------
1012dnl Check for suitable "ar" (archiver) options for updating an archive.
1013dnl
1014dnl In particular, handle some obsolete cases where the "-" might be omitted,
1015dnl as well as a workaround for breakage of make's archive rules by the GNU
1016dnl binutils "ar" program.
1017AC_DEFUN([CF_AR_FLAGS],[
1018AC_REQUIRE([CF_PROG_AR])
1019
1020AC_CACHE_CHECK(for options to update archives, cf_cv_ar_flags,[
1021	case "$cf_cv_system_name" in
1022	(*-msvc*)
1023		cf_cv_ar_flags=''
1024		cat >mk_static_lib.sh <<-EOF
1025		#!$SHELL
1026		MSVC_BIN="[$]AR"
1027		out="\[$]1"
1028		shift
1029		exec \[$]MSVC_BIN -out:"\[$]out" \[$]@
1030		EOF
1031		chmod +x mk_static_lib.sh
1032		AR=`pwd`/mk_static_lib.sh
1033		;;
1034	(*)
1035		cf_cv_ar_flags=unknown
1036		for cf_ar_flags in -curvU -curv curv -crv crv -cqv cqv -rv rv
1037		do
1038
1039			# check if $ARFLAGS already contains this choice
1040			if test "x$ARFLAGS" != "x" ; then
1041				cf_check_ar_flags=`echo "x$ARFLAGS" | sed -e "s/$cf_ar_flags\$//" -e "s/$cf_ar_flags / /"`
1042				if test "x$ARFLAGS" != "$cf_check_ar_flags" ; then
1043					cf_cv_ar_flags=
1044					break
1045				fi
1046			fi
1047
1048			rm -f "conftest.$ac_cv_objext"
1049			rm -f conftest.a
1050
1051			cat >"conftest.$ac_ext" <<EOF
1052#line __oline__ "configure"
1053int	testdata[[3]] = { 123, 456, 789 };
1054EOF
1055			if AC_TRY_EVAL(ac_compile) ; then
1056				echo "$AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext" >&AC_FD_CC
1057				$AR $ARFLAGS "$cf_ar_flags" conftest.a "conftest.$ac_cv_objext" 2>&AC_FD_CC 1>/dev/null
1058				if test -f conftest.a ; then
1059					cf_cv_ar_flags="$cf_ar_flags"
1060					break
1061				fi
1062			else
1063				CF_VERBOSE(cannot compile test-program)
1064				break
1065			fi
1066		done
1067		rm -f conftest.a "conftest.$ac_ext" "conftest.$ac_cv_objext"
1068		;;
1069	esac
1070])
1071
1072if test -n "$ARFLAGS" ; then
1073	if test -n "$cf_cv_ar_flags" ; then
1074		ARFLAGS="$ARFLAGS $cf_cv_ar_flags"
1075	fi
1076else
1077	ARFLAGS=$cf_cv_ar_flags
1078fi
1079
1080AC_SUBST(ARFLAGS)
1081])
1082dnl ---------------------------------------------------------------------------
1083dnl CF_BUNDLED_INTL version: 20 updated: 2021/01/02 09:31:20
1084dnl ---------------
1085dnl Top-level macro for configuring an application with a bundled copy of
1086dnl the intl and po directories for gettext.
1087dnl
1088dnl $1 specifies either Makefile or makefile, defaulting to the former.
1089dnl $2 if nonempty sets the option to --enable-nls rather than to --disable-nls
1090dnl
1091dnl Sets variables which can be used to substitute in makefiles:
1092dnl	GT_YES       - "#" comment unless building intl library, otherwise empty
1093dnl	GT_NO        - "#" comment if building intl library, otherwise empty
1094dnl	INTLDIR_MAKE - to make ./intl directory
1095dnl	MSG_DIR_MAKE - to make ./po directory
1096dnl	SUB_MAKEFILE - list of makefiles in ./intl, ./po directories
1097dnl
1098dnl Defines:
1099dnl	HAVE_LIBGETTEXT_H if we're using ./intl
1100dnl	NLS_TEXTDOMAIN
1101dnl
1102dnl Environment:
1103dnl	ALL_LINGUAS if set, lists the root names of the ".po" files.
1104dnl	CONFIG_H assumed to be "config.h"
1105dnl	PACKAGE must be set, used as default for textdomain
1106dnl	VERSION may be set, otherwise extract from "VERSION" file.
1107dnl
1108AC_DEFUN([CF_BUNDLED_INTL],[
1109cf_makefile=ifelse($1,,Makefile,$1)
1110
1111dnl Set of available languages (based on source distribution).  Note that
1112dnl setting $LINGUAS overrides $ALL_LINGUAS.  Some environments set $LINGUAS
1113dnl rather than $LC_ALL
1114test -z "$ALL_LINGUAS" && ALL_LINGUAS=`test -d "$srcdir/po" && cd "$srcdir/po" && echo *.po|sed -e 's/\.po//g' -e 's/*//'`
1115
1116# Allow override of "config.h" definition:
1117: ${CONFIG_H:=config.h}
1118AC_SUBST(CONFIG_H)
1119
1120if test -z "$PACKAGE" ; then
1121	AC_MSG_ERROR([[CF_BUNDLED_INTL] used without setting [PACKAGE] variable])
1122fi
1123
1124if test -z "$VERSION" ; then
1125if test -f "$srcdir/VERSION" ; then
1126	VERSION=`sed -e '2,$d' "$srcdir/VERSION" |cut -f1`
1127else
1128	VERSION=unknown
1129fi
1130fi
1131AC_SUBST(VERSION)
1132
1133AM_GNU_GETTEXT(,,,[$2])
1134
1135if test "$USE_NLS" = yes ; then
1136	AC_ARG_WITH(textdomain,
1137		[  --with-textdomain=PKG   NLS text-domain (default is package name)],
1138		[NLS_TEXTDOMAIN=$withval],
1139		[NLS_TEXTDOMAIN=$PACKAGE])
1140	AC_DEFINE_UNQUOTED(NLS_TEXTDOMAIN,"$NLS_TEXTDOMAIN",[Define to the nls textdomain value])
1141	AC_SUBST(NLS_TEXTDOMAIN)
1142fi
1143
1144INTLDIR_MAKE=
1145MSG_DIR_MAKE=
1146SUB_MAKEFILE=
1147
1148dnl this updates SUB_MAKEFILE and MSG_DIR_MAKE:
1149CF_OUR_MESSAGES($1)
1150
1151if test "$USE_INCLUDED_LIBINTL" = yes ; then
1152	if test "$nls_cv_force_use_gnu_gettext" = yes ; then
1153		:
1154	elif test "$nls_cv_use_gnu_gettext" = yes ; then
1155		:
1156	else
1157		INTLDIR_MAKE="#"
1158	fi
1159	if test -z "$INTLDIR_MAKE"; then
1160		AC_DEFINE(HAVE_LIBGETTEXT_H,1,[Define to 1 if we have libgettext.h])
1161		for cf_makefile in \
1162			$srcdir/intl/Makefile.in \
1163			$srcdir/intl/makefile.in
1164		do
1165			if test -f "$cf_makefile" ; then
1166				SUB_MAKEFILE="$SUB_MAKEFILE `echo \"${cf_makefile}\"|sed -e 's,^'$srcdir/',,' -e 's/\.in$//'`:${cf_makefile}"
1167				break
1168			fi
1169		done
1170	fi
1171else
1172	INTLDIR_MAKE="#"
1173	if test "$USE_NLS" = yes ; then
1174		AC_CHECK_HEADERS(libintl.h)
1175	fi
1176fi
1177
1178if test -z "$INTLDIR_MAKE" ; then
1179	CF_APPEND_TEXT(CPPFLAGS,-I../intl)
1180fi
1181
1182dnl FIXME:  we use this in lynx (the alternative is a spurious dependency upon
1183dnl GNU make)
1184if test "$BUILD_INCLUDED_LIBINTL" = yes ; then
1185	GT_YES="#"
1186	GT_NO=
1187else
1188	GT_YES=
1189	GT_NO="#"
1190fi
1191
1192AC_SUBST(INTLDIR_MAKE)
1193AC_SUBST(MSG_DIR_MAKE)
1194AC_SUBST(GT_YES)
1195AC_SUBST(GT_NO)
1196
1197dnl FIXME:  the underlying AM_GNU_GETTEXT macro either needs some fixes or a
1198dnl little documentation.  It doesn't define anything so that we can ifdef our
1199dnl own code, except ENABLE_NLS, which is too vague to be of any use.
1200
1201if test "$USE_INCLUDED_LIBINTL" = yes ; then
1202	if test "$nls_cv_force_use_gnu_gettext" = yes ; then
1203		AC_DEFINE(HAVE_GETTEXT,1,[Define to 1 if we have gettext function])
1204	elif test "$nls_cv_use_gnu_gettext" = yes ; then
1205		AC_DEFINE(HAVE_GETTEXT,1,[Define to 1 if we have gettext function])
1206	fi
1207	if test -n "$nls_cv_header_intl" ; then
1208		AC_DEFINE(HAVE_LIBINTL_H,1,[Define to 1 if we have header-file for libintl])
1209	fi
1210fi
1211])dnl
1212dnl ---------------------------------------------------------------------------
1213dnl CF_CC_ENV_FLAGS version: 10 updated: 2020/12/31 18:40:20
1214dnl ---------------
1215dnl Check for user's environment-breakage by stuffing CFLAGS/CPPFLAGS content
1216dnl into CC.  This will not help with broken scripts that wrap the compiler
1217dnl with options, but eliminates a more common category of user confusion.
1218dnl
1219dnl In particular, it addresses the problem of being able to run the C
1220dnl preprocessor in a consistent manner.
1221dnl
1222dnl Caveat: this also disallows blanks in the pathname for the compiler, but
1223dnl the nuisance of having inconsistent settings for compiler and preprocessor
1224dnl outweighs that limitation.
1225AC_DEFUN([CF_CC_ENV_FLAGS],
1226[
1227# This should have been defined by AC_PROG_CC
1228: "${CC:=cc}"
1229
1230AC_MSG_CHECKING(\$CFLAGS variable)
1231case "x$CFLAGS" in
1232(*-[[IUD]]*)
1233	AC_MSG_RESULT(broken)
1234	AC_MSG_WARN(your environment uses the CFLAGS variable to hold CPPFLAGS options)
1235	cf_flags="$CFLAGS"
1236	CFLAGS=
1237	for cf_arg in $cf_flags
1238	do
1239		CF_ADD_CFLAGS($cf_arg)
1240	done
1241	;;
1242(*)
1243	AC_MSG_RESULT(ok)
1244	;;
1245esac
1246
1247AC_MSG_CHECKING(\$CC variable)
1248case "$CC" in
1249(*[[\ \	]]-*)
1250	AC_MSG_RESULT(broken)
1251	AC_MSG_WARN(your environment uses the CC variable to hold CFLAGS/CPPFLAGS options)
1252	# humor him...
1253	cf_prog=`echo "$CC" | sed -e 's/	/ /g' -e 's/[[ ]]* / /g' -e 's/[[ ]]*[[ ]]-[[^ ]].*//'`
1254	cf_flags=`echo "$CC" | ${AWK:-awk} -v prog="$cf_prog" '{ printf("%s", [substr]([$]0,1+length(prog))); }'`
1255	CC="$cf_prog"
1256	for cf_arg in $cf_flags
1257	do
1258		case "x$cf_arg" in
1259		(x-[[IUDfgOW]]*)
1260			CF_ADD_CFLAGS($cf_arg)
1261			;;
1262		(*)
1263			CC="$CC $cf_arg"
1264			;;
1265		esac
1266	done
1267	CF_VERBOSE(resulting CC: '$CC')
1268	CF_VERBOSE(resulting CFLAGS: '$CFLAGS')
1269	CF_VERBOSE(resulting CPPFLAGS: '$CPPFLAGS')
1270	;;
1271(*)
1272	AC_MSG_RESULT(ok)
1273	;;
1274esac
1275])dnl
1276dnl ---------------------------------------------------------------------------
1277dnl CF_CHECK_CACHE version: 13 updated: 2020/12/31 10:54:15
1278dnl --------------
1279dnl Check if we're accidentally using a cache from a different machine.
1280dnl Derive the system name, as a check for reusing the autoconf cache.
1281dnl
1282dnl If we've packaged config.guess and config.sub, run that (since it does a
1283dnl better job than uname).  Normally we'll use AC_CANONICAL_HOST, but allow
1284dnl an extra parameter that we may override, e.g., for AC_CANONICAL_SYSTEM
1285dnl which is useful in cross-compiles.
1286dnl
1287dnl Note: we would use $ac_config_sub, but that is one of the places where
1288dnl autoconf 2.5x broke compatibility with autoconf 2.13
1289AC_DEFUN([CF_CHECK_CACHE],
1290[
1291if test -f "$srcdir/config.guess" || test -f "$ac_aux_dir/config.guess" ; then
1292	ifelse([$1],,[AC_CANONICAL_HOST],[$1])
1293	system_name="$host_os"
1294else
1295	system_name="`(uname -s -r) 2>/dev/null`"
1296	if test -z "$system_name" ; then
1297		system_name="`(hostname) 2>/dev/null`"
1298	fi
1299fi
1300test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name",[Define to the system name.])
1301AC_CACHE_VAL(cf_cv_system_name,[cf_cv_system_name="$system_name"])
1302
1303test -z "$system_name" && system_name="$cf_cv_system_name"
1304test -n "$cf_cv_system_name" && AC_MSG_RESULT(Configuring for $cf_cv_system_name)
1305
1306if test ".$system_name" != ".$cf_cv_system_name" ; then
1307	AC_MSG_RESULT(Cached system name ($system_name) does not agree with actual ($cf_cv_system_name))
1308	AC_MSG_ERROR("Please remove config.cache and try again.")
1309fi
1310])dnl
1311dnl ---------------------------------------------------------------------------
1312dnl CF_CHECK_CFLAGS version: 4 updated: 2021/01/02 19:22:58
1313dnl ---------------
1314dnl Conditionally add to $CFLAGS and $CPPFLAGS values which are derived from
1315dnl a build-configuration such as imake.  These have the pitfall that they
1316dnl often contain compiler-specific options which we cannot use, mixed with
1317dnl preprocessor options that we usually can.
1318AC_DEFUN([CF_CHECK_CFLAGS],
1319[
1320CF_VERBOSE(checking additions to CFLAGS)
1321cf_check_cflags="$CFLAGS"
1322cf_check_cppflags="$CPPFLAGS"
1323CF_ADD_CFLAGS($1,yes)
1324if test "x$cf_check_cflags" != "x$CFLAGS" ; then
1325AC_TRY_LINK([#include <stdio.h>],[printf("Hello world");],,
1326	[CF_VERBOSE(test-compile failed.  Undoing change to \$CFLAGS)
1327	 if test "x$cf_check_cppflags" != "x$CPPFLAGS" ; then
1328		 CF_VERBOSE(but keeping change to \$CPPFLAGS)
1329	 fi
1330	 CFLAGS="$cf_check_cflags"])
1331fi
1332])dnl
1333dnl ---------------------------------------------------------------------------
1334dnl CF_CHECK_LIBTOOL_VERSION version: 1 updated: 2013/04/06 18:03:09
1335dnl ------------------------
1336dnl Show the version of libtool
1337dnl
1338dnl Save the version in a cache variable - this is not entirely a good thing,
1339dnl but the version string from libtool is very ugly, and for bug reports it
1340dnl might be useful to have the original string.
1341AC_DEFUN([CF_CHECK_LIBTOOL_VERSION],[
1342if test -n "$LIBTOOL" && test "$LIBTOOL" != none
1343then
1344	AC_MSG_CHECKING(version of $LIBTOOL)
1345	CF_LIBTOOL_VERSION
1346	AC_MSG_RESULT($cf_cv_libtool_version)
1347	if test -z "$cf_cv_libtool_version" ; then
1348		AC_MSG_ERROR(This is not GNU libtool)
1349	fi
1350else
1351	AC_MSG_ERROR(GNU libtool has not been found)
1352fi
1353])dnl
1354dnl ---------------------------------------------------------------------------
1355dnl CF_CLANG_COMPILER version: 8 updated: 2021/01/01 13:31:04
1356dnl -----------------
1357dnl Check if the given compiler is really clang.  clang's C driver defines
1358dnl __GNUC__ (fooling the configure script into setting $GCC to yes) but does
1359dnl not ignore some gcc options.
1360dnl
1361dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
1362dnl ensure that it is not mistaken for gcc/g++.  It is normally invoked from
1363dnl the wrappers for gcc and g++ warnings.
1364dnl
1365dnl $1 = GCC (default) or GXX
1366dnl $2 = CLANG_COMPILER (default)
1367dnl $3 = CFLAGS (default) or CXXFLAGS
1368AC_DEFUN([CF_CLANG_COMPILER],[
1369ifelse([$2],,CLANG_COMPILER,[$2])=no
1370
1371if test "$ifelse([$1],,[$1],GCC)" = yes ; then
1372	AC_MSG_CHECKING(if this is really Clang ifelse([$1],GXX,C++,C) compiler)
1373	cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
1374	AC_TRY_COMPILE([],[
1375#ifdef __clang__
1376#else
1377make an error
1378#endif
1379],[ifelse([$2],,CLANG_COMPILER,[$2])=yes
1380],[])
1381	ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
1382	AC_MSG_RESULT($ifelse([$2],,CLANG_COMPILER,[$2]))
1383fi
1384
1385CLANG_VERSION=none
1386
1387if test "x$ifelse([$2],,CLANG_COMPILER,[$2])" = "xyes" ; then
1388	case "$CC" in
1389	(c[[1-9]][[0-9]]|*/c[[1-9]][[0-9]])
1390		AC_MSG_WARN(replacing broken compiler alias $CC)
1391		CFLAGS="$CFLAGS -std=`echo "$CC" | sed -e 's%.*/%%'`"
1392		CC=clang
1393		;;
1394	esac
1395
1396	AC_MSG_CHECKING(version of $CC)
1397	CLANG_VERSION="`$CC --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(CLANG[[^)]]*) //' -e 's/^.*(Debian[[^)]]*) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
1398	test -z "$CLANG_VERSION" && CLANG_VERSION=unknown
1399	AC_MSG_RESULT($CLANG_VERSION)
1400
1401	for cf_clang_opt in \
1402		-Qunused-arguments \
1403		-Wno-error=implicit-function-declaration
1404	do
1405		AC_MSG_CHECKING(if option $cf_clang_opt works)
1406		cf_save_CFLAGS="$CFLAGS"
1407		CFLAGS="$CFLAGS $cf_clang_opt"
1408		AC_TRY_LINK([
1409			#include <stdio.h>],[
1410			printf("hello!\\n");],[
1411			cf_clang_optok=yes],[
1412			cf_clang_optok=no])
1413		AC_MSG_RESULT($cf_clang_optok)
1414		CFLAGS="$cf_save_CFLAGS"
1415		if test "$cf_clang_optok" = yes; then
1416			CF_VERBOSE(adding option $cf_clang_opt)
1417			CF_APPEND_TEXT(CFLAGS,$cf_clang_opt)
1418		fi
1419	done
1420fi
1421])
1422dnl ---------------------------------------------------------------------------
1423dnl CF_CONST_X_STRING version: 6 updated: 2021/01/01 13:31:04
1424dnl -----------------
1425dnl The X11R4-X11R6 Xt specification uses an ambiguous String type for most
1426dnl character-strings.
1427dnl
1428dnl It is ambiguous because the specification accommodated the pre-ANSI
1429dnl compilers bundled by more than one vendor in lieu of providing a standard C
1430dnl compiler other than by costly add-ons.  Because of this, the specification
1431dnl did not take into account the use of const for telling the compiler that
1432dnl string literals would be in readonly memory.
1433dnl
1434dnl As a workaround, one could (starting with X11R5) define XTSTRINGDEFINES, to
1435dnl let the compiler decide how to represent Xt's strings which were #define'd.
1436dnl That does not solve the problem of using the block of Xt's strings which
1437dnl are compiled into the library (and is less efficient than one might want).
1438dnl
1439dnl Xt specification 7 introduces the _CONST_X_STRING symbol which is used both
1440dnl when compiling the library and compiling using the library, to tell the
1441dnl compiler that String is const.
1442AC_DEFUN([CF_CONST_X_STRING],
1443[
1444AC_REQUIRE([AC_PATH_XTRA])
1445
1446CF_SAVE_XTRA_FLAGS([CF_CONST_X_STRING])
1447
1448AC_TRY_COMPILE(
1449[
1450#include <stdlib.h>
1451#include <X11/Intrinsic.h>
1452],
1453[String foo = malloc(1); (void)foo],[
1454
1455AC_CACHE_CHECK(for X11/Xt const-feature,cf_cv_const_x_string,[
1456	AC_TRY_COMPILE(
1457		[
1458#define _CONST_X_STRING	/* X11R7.8 (perhaps) */
1459#undef  XTSTRINGDEFINES	/* X11R5 and later */
1460#include <stdlib.h>
1461#include <X11/Intrinsic.h>
1462		],[String foo = malloc(1); *foo = 0],[
1463			cf_cv_const_x_string=no
1464		],[
1465			cf_cv_const_x_string=yes
1466		])
1467])
1468
1469CF_RESTORE_XTRA_FLAGS([CF_CONST_X_STRING])
1470
1471case "$cf_cv_const_x_string" in
1472(no)
1473	CF_APPEND_TEXT(CPPFLAGS,-DXTSTRINGDEFINES)
1474	;;
1475(*)
1476	CF_APPEND_TEXT(CPPFLAGS,-D_CONST_X_STRING)
1477	;;
1478esac
1479
1480])
1481])dnl
1482dnl ---------------------------------------------------------------------------
1483dnl CF_CURSES_CHTYPE version: 11 updated: 2021/01/02 09:31:20
1484dnl ----------------
1485dnl Test if curses defines 'chtype' (usually a 'long' type for SysV curses).
1486AC_DEFUN([CF_CURSES_CHTYPE],
1487[
1488AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
1489AC_CACHE_CHECK(for chtype typedef,cf_cv_chtype_decl,[
1490	AC_TRY_COMPILE([#include <${cf_cv_ncurses_header:-curses.h}>],
1491		[chtype foo; (void)foo],
1492		[cf_cv_chtype_decl=yes],
1493		[cf_cv_chtype_decl=no])])
1494if test "$cf_cv_chtype_decl" = yes ; then
1495	AC_DEFINE(HAVE_TYPE_CHTYPE,1,[Define to 1 if chtype is declared])
1496	AC_CACHE_CHECK(if chtype is scalar or struct,cf_cv_chtype_type,[
1497		AC_TRY_COMPILE([#include <${cf_cv_ncurses_header:-curses.h}>],
1498			[static chtype foo; long x = foo; (void)x],
1499			[cf_cv_chtype_type=scalar],
1500			[cf_cv_chtype_type=struct])])
1501	if test "$cf_cv_chtype_type" = scalar ; then
1502		AC_DEFINE(TYPE_CHTYPE_IS_SCALAR,1,[Define to 1 if chtype is a scaler/integer])
1503	fi
1504fi
1505])dnl
1506dnl ---------------------------------------------------------------------------
1507dnl CF_CURSES_CONFIG version: 2 updated: 2006/10/29 11:06:27
1508dnl ----------------
1509dnl Tie together the configure-script macros for curses.  It may be ncurses,
1510dnl but unless asked, we do not make a special search for ncurses.  However,
1511dnl still check for the ncurses version number, for use in other macros.
1512AC_DEFUN([CF_CURSES_CONFIG],
1513[
1514CF_CURSES_CPPFLAGS
1515CF_NCURSES_VERSION
1516CF_CURSES_LIBS
1517])dnl
1518dnl ---------------------------------------------------------------------------
1519dnl CF_CURSES_CPPFLAGS version: 14 updated: 2021/01/02 09:31:20
1520dnl ------------------
1521dnl Look for the curses headers.
1522AC_DEFUN([CF_CURSES_CPPFLAGS],[
1523
1524AC_CACHE_CHECK(for extra include directories,cf_cv_curses_incdir,[
1525cf_cv_curses_incdir=no
1526case "$host_os" in
1527(hpux10.*)
1528	if test "x$cf_cv_screen" = "xcurses_colr"
1529	then
1530		test -d /usr/include/curses_colr && \
1531		cf_cv_curses_incdir="-I/usr/include/curses_colr"
1532	fi
1533	;;
1534(sunos3*|sunos4*)
1535	if test "x$cf_cv_screen" = "xcurses_5lib"
1536	then
1537		test -d /usr/5lib && \
1538		test -d /usr/5include && \
1539		cf_cv_curses_incdir="-I/usr/5include"
1540	fi
1541	;;
1542esac
1543])
1544if test "$cf_cv_curses_incdir" != no
1545then
1546	CF_APPEND_TEXT(CPPFLAGS,$cf_cv_curses_incdir)
1547fi
1548
1549CF_CURSES_HEADER
1550CF_TERM_HEADER
1551])dnl
1552dnl ---------------------------------------------------------------------------
1553dnl CF_CURSES_EXIT version: 1 updated: 2020/03/26 19:15:16
1554dnl --------------
1555dnl Check for ncurses memory-leak/debug feature.  Starting with ncurses 6.2,
1556dnl the curses_exit() function is always present, simplifying linkage changes
1557dnl when switching to/from a debug-library.
1558AC_DEFUN([CF_CURSES_EXIT],
1559[
1560CF_CURSES_FUNCS(\
1561curses_exit \
1562_nc_free_and_exit \
1563)
1564])dnl
1565dnl ---------------------------------------------------------------------------
1566dnl CF_CURSES_FUNCS version: 20 updated: 2020/12/31 20:19:42
1567dnl ---------------
1568dnl Curses-functions are a little complicated, since a lot of them are macros.
1569AC_DEFUN([CF_CURSES_FUNCS],
1570[
1571AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
1572AC_REQUIRE([CF_XOPEN_CURSES])
1573AC_REQUIRE([CF_CURSES_TERM_H])
1574AC_REQUIRE([CF_CURSES_UNCTRL_H])
1575for cf_func in $1
1576do
1577	CF_UPPER(cf_tr_func,$cf_func)
1578	AC_MSG_CHECKING(for ${cf_func})
1579	CF_MSG_LOG(${cf_func})
1580	AC_CACHE_VAL(cf_cv_func_$cf_func,[
1581		eval cf_result='$ac_cv_func_'$cf_func
1582		if test ".$cf_result" != ".no"; then
1583			AC_TRY_LINK(CF__CURSES_HEAD,
1584			[
1585#ifndef ${cf_func}
1586long foo = (long)(&${cf_func});
1587fprintf(stderr, "testing linkage of $cf_func:%p\\n", (void *)foo);
1588if (foo + 1234L > 5678L)
1589	${cf_cv_main_return:-return}(foo != 0);
1590#endif
1591			],
1592			[cf_result=yes],
1593			[cf_result=no])
1594		fi
1595		eval 'cf_cv_func_'$cf_func'="$cf_result"'
1596	])
1597	# use the computed/retrieved cache-value:
1598	eval 'cf_result=$cf_cv_func_'$cf_func
1599	AC_MSG_RESULT($cf_result)
1600	if test "$cf_result" != no; then
1601		AC_DEFINE_UNQUOTED(HAVE_${cf_tr_func})
1602	fi
1603done
1604])dnl
1605dnl ---------------------------------------------------------------------------
1606dnl CF_CURSES_HEADER version: 5 updated: 2015/04/23 20:35:30
1607dnl ----------------
1608dnl Find a "curses" header file, e.g,. "curses.h", or one of the more common
1609dnl variations of ncurses' installs.
1610dnl
1611dnl $1 = ncurses when looking for ncurses, or is empty
1612AC_DEFUN([CF_CURSES_HEADER],[
1613AC_CACHE_CHECK(if we have identified curses headers,cf_cv_ncurses_header,[
1614cf_cv_ncurses_header=none
1615for cf_header in \
1616	ncurses.h ifelse($1,,,[$1/ncurses.h]) \
1617	curses.h ifelse($1,,,[$1/curses.h]) ifelse($1,,[ncurses/ncurses.h ncurses/curses.h])
1618do
1619AC_TRY_COMPILE([#include <${cf_header}>],
1620	[initscr(); tgoto("?", 0,0)],
1621	[cf_cv_ncurses_header=$cf_header; break],[])
1622done
1623])
1624
1625if test "$cf_cv_ncurses_header" = none ; then
1626	AC_MSG_ERROR(No curses header-files found)
1627fi
1628
1629# cheat, to get the right #define's for HAVE_NCURSES_H, etc.
1630AC_CHECK_HEADERS($cf_cv_ncurses_header)
1631])dnl
1632dnl ---------------------------------------------------------------------------
1633dnl CF_CURSES_LIBS version: 44 updated: 2021/01/02 09:31:20
1634dnl --------------
1635dnl Look for the curses libraries.  Older curses implementations may require
1636dnl termcap/termlib to be linked as well.  Call CF_CURSES_CPPFLAGS first.
1637AC_DEFUN([CF_CURSES_LIBS],[
1638
1639AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
1640AC_MSG_CHECKING(if we have identified curses libraries)
1641AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
1642	[initscr(); tgoto("?", 0,0)],
1643	cf_result=yes,
1644	cf_result=no)
1645AC_MSG_RESULT($cf_result)
1646
1647if test "$cf_result" = no ; then
1648case "$host_os" in
1649(freebsd*)
1650	AC_CHECK_LIB(mytinfo,tgoto,[CF_ADD_LIBS(-lmytinfo)])
1651	;;
1652(hpux10.*)
1653	# Looking at HPUX 10.20, the Hcurses library is the oldest (1997), cur_colr
1654	# next (1998), and xcurses "newer" (2000).  There is no header file for
1655	# Hcurses; the subdirectory curses_colr has the headers (curses.h and
1656	# term.h) for cur_colr
1657	if test "x$cf_cv_screen" = "xcurses_colr"
1658	then
1659		AC_CHECK_LIB(cur_colr,initscr,[
1660			CF_ADD_LIBS(-lcur_colr)
1661			ac_cv_func_initscr=yes
1662			],[
1663		AC_CHECK_LIB(Hcurses,initscr,[
1664			# HP's header uses __HP_CURSES, but user claims _HP_CURSES.
1665			CF_ADD_LIBS(-lHcurses)
1666			CF_APPEND_TEXT(CPPFLAGS,-D__HP_CURSES -D_HP_CURSES)
1667			ac_cv_func_initscr=yes
1668			])])
1669	fi
1670	;;
1671(linux*)
1672	case `arch 2>/dev/null` in
1673	(x86_64)
1674		if test -d /lib64
1675		then
1676			CF_ADD_LIBDIR(/lib64)
1677		else
1678			CF_ADD_LIBDIR(/lib)
1679		fi
1680		;;
1681	(*)
1682		CF_ADD_LIBDIR(/lib)
1683		;;
1684	esac
1685	;;
1686(sunos3*|sunos4*)
1687	if test "x$cf_cv_screen" = "xcurses_5lib"
1688	then
1689		if test -d /usr/5lib ; then
1690			CF_ADD_LIBDIR(/usr/5lib)
1691			CF_ADD_LIBS(-lcurses -ltermcap)
1692		fi
1693	fi
1694	ac_cv_func_initscr=yes
1695	;;
1696esac
1697
1698if test ".$ac_cv_func_initscr" != .yes ; then
1699	cf_save_LIBS="$LIBS"
1700
1701	if test ".${cf_cv_ncurses_version:-no}" != .no
1702	then
1703		cf_check_list="ncurses curses cursesX"
1704	else
1705		cf_check_list="cursesX curses ncurses"
1706	fi
1707
1708	# Check for library containing tgoto.  Do this before curses library
1709	# because it may be needed to link the test-case for initscr.
1710	if test "x$cf_term_lib" = x
1711	then
1712		AC_CHECK_FUNC(tgoto,[cf_term_lib=predefined],[
1713			for cf_term_lib in $cf_check_list otermcap termcap tinfo termlib unknown
1714			do
1715				AC_CHECK_LIB($cf_term_lib,tgoto,[
1716					: "${cf_nculib_root:=$cf_term_lib}"
1717					break
1718				])
1719			done
1720		])
1721	fi
1722
1723	# Check for library containing initscr
1724	test "$cf_term_lib" != predefined && test "$cf_term_lib" != unknown && LIBS="-l$cf_term_lib $cf_save_LIBS"
1725	if test "x$cf_curs_lib" = x
1726	then
1727		for cf_curs_lib in $cf_check_list xcurses jcurses pdcurses unknown
1728		do
1729			LIBS="-l$cf_curs_lib $cf_save_LIBS"
1730			if test "$cf_term_lib" = unknown || test "$cf_term_lib" = "$cf_curs_lib" ; then
1731				AC_MSG_CHECKING(if we can link with $cf_curs_lib library)
1732				AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
1733					[initscr()],
1734					[cf_result=yes],
1735					[cf_result=no])
1736				AC_MSG_RESULT($cf_result)
1737				test "$cf_result" = yes && break
1738			elif test "$cf_curs_lib" = "$cf_term_lib" ; then
1739				cf_result=no
1740			elif test "$cf_term_lib" != predefined ; then
1741				AC_MSG_CHECKING(if we need both $cf_curs_lib and $cf_term_lib libraries)
1742				AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
1743					[initscr(); tgoto((char *)0, 0, 0);],
1744					[cf_result=no],
1745					[
1746					LIBS="-l$cf_curs_lib -l$cf_term_lib $cf_save_LIBS"
1747					AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
1748						[initscr()],
1749						[cf_result=yes],
1750						[cf_result=error])
1751					])
1752				AC_MSG_RESULT($cf_result)
1753				test "$cf_result" != error && break
1754			fi
1755		done
1756	fi
1757	test "$cf_curs_lib" = unknown && AC_MSG_ERROR(no curses library found)
1758fi
1759fi
1760
1761])dnl
1762dnl ---------------------------------------------------------------------------
1763dnl CF_CURSES_TERM_H version: 15 updated: 2021/01/02 09:31:20
1764dnl ----------------
1765dnl SVr4 curses should have term.h as well (where it puts the definitions of
1766dnl the low-level interface).  This may not be true in old/broken implementations,
1767dnl as well as in misconfigured systems (e.g., gcc configured for Solaris 2.4
1768dnl running with Solaris 2.5.1).
1769AC_DEFUN([CF_CURSES_TERM_H],
1770[
1771AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
1772
1773AC_CACHE_CHECK(for term.h, cf_cv_term_header,[
1774
1775# If we found <ncurses/curses.h>, look for <ncurses/term.h>, but always look
1776# for <term.h> if we do not find the variant.
1777
1778cf_header_list="term.h ncurses/term.h ncursesw/term.h"
1779
1780case "${cf_cv_ncurses_header:-curses.h}" in
1781(*/*)
1782	cf_header_item=`echo "${cf_cv_ncurses_header:-curses.h}" | sed -e 's%\..*%%' -e 's%/.*%/%'`term.h
1783	cf_header_list="$cf_header_item $cf_header_list"
1784	;;
1785esac
1786
1787for cf_header in $cf_header_list
1788do
1789	AC_TRY_COMPILE([
1790#include <${cf_cv_ncurses_header:-curses.h}>
1791#include <${cf_header}>],
1792	[WINDOW *x; (void)x],
1793	[cf_cv_term_header=$cf_header
1794	 break],
1795	[cf_cv_term_header=no])
1796done
1797
1798case "$cf_cv_term_header" in
1799(no)
1800	# If curses is ncurses, some packagers still mess it up by trying to make
1801	# us use GNU termcap.  This handles the most common case.
1802	for cf_header in ncurses/term.h ncursesw/term.h
1803	do
1804		AC_TRY_COMPILE([
1805#include <${cf_cv_ncurses_header:-curses.h}>
1806#ifdef NCURSES_VERSION
1807#include <${cf_header}>
1808#else
1809make an error
1810#endif],
1811			[WINDOW *x; (void)x],
1812			[cf_cv_term_header=$cf_header
1813			 break],
1814			[cf_cv_term_header=no])
1815	done
1816	;;
1817esac
1818])
1819
1820case "$cf_cv_term_header" in
1821(term.h)
1822	AC_DEFINE(HAVE_TERM_H,1,[Define to 1 if we have term.h])
1823	;;
1824(ncurses/term.h)
1825	AC_DEFINE(HAVE_NCURSES_TERM_H,1,[Define to 1 if we have ncurses/term.h])
1826	;;
1827(ncursesw/term.h)
1828	AC_DEFINE(HAVE_NCURSESW_TERM_H,1,[Define to 1 if we have ncursesw/term.h])
1829	;;
1830esac
1831])dnl
1832dnl ---------------------------------------------------------------------------
1833dnl CF_CURSES_UNCTRL_H version: 8 updated: 2021/01/02 09:31:20
1834dnl ------------------
1835dnl Any X/Open curses implementation must have unctrl.h, but ncurses packages
1836dnl may put it in a subdirectory (along with ncurses' other headers, of
1837dnl course).  Packages which put the headers in inconsistent locations are
1838dnl broken).
1839AC_DEFUN([CF_CURSES_UNCTRL_H],
1840[
1841AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
1842
1843AC_CACHE_CHECK(for unctrl.h, cf_cv_unctrl_header,[
1844
1845# If we found <ncurses/curses.h>, look for <ncurses/unctrl.h>, but always look
1846# for <unctrl.h> if we do not find the variant.
1847
1848cf_header_list="unctrl.h ncurses/unctrl.h ncursesw/unctrl.h"
1849
1850case "${cf_cv_ncurses_header:-curses.h}" in
1851(*/*)
1852	cf_header_item=`echo "${cf_cv_ncurses_header:-curses.h}" | sed -e 's%\..*%%' -e 's%/.*%/%'`unctrl.h
1853	cf_header_list="$cf_header_item $cf_header_list"
1854	;;
1855esac
1856
1857for cf_header in $cf_header_list
1858do
1859	AC_TRY_COMPILE([
1860#include <${cf_cv_ncurses_header:-curses.h}>
1861#include <${cf_header}>],
1862	[WINDOW *x; (void)x],
1863	[cf_cv_unctrl_header=$cf_header
1864	 break],
1865	[cf_cv_unctrl_header=no])
1866done
1867])
1868
1869case "$cf_cv_unctrl_header" in
1870(no)
1871	AC_MSG_WARN(unctrl.h header not found)
1872	;;
1873esac
1874
1875case "$cf_cv_unctrl_header" in
1876(unctrl.h)
1877	AC_DEFINE(HAVE_UNCTRL_H,1,[Define to 1 if we have unctrl.h])
1878	;;
1879(ncurses/unctrl.h)
1880	AC_DEFINE(HAVE_NCURSES_UNCTRL_H,1,[Define to 1 if we have ncurses/unctrl.h])
1881	;;
1882(ncursesw/unctrl.h)
1883	AC_DEFINE(HAVE_NCURSESW_UNCTRL_H,1,[Define to 1 if we have ncursesw/unctrl.h])
1884	;;
1885esac
1886])dnl
1887dnl ---------------------------------------------------------------------------
1888dnl CF_CURSES_WACS_MAP version: 8 updated: 2021/01/04 19:45:09
1889dnl ------------------
1890dnl Check for likely values of wacs_map[].
1891AC_DEFUN([CF_CURSES_WACS_MAP],
1892[
1893AC_CACHE_CHECK(for wide alternate character set array, cf_cv_curses_wacs_map,[
1894	cf_cv_curses_wacs_map=unknown
1895	for name in wacs_map _wacs_map __wacs_map _nc_wacs _wacs_char
1896	do
1897	AC_TRY_LINK([
1898#ifndef _XOPEN_SOURCE_EXTENDED
1899#define _XOPEN_SOURCE_EXTENDED
1900#endif
1901#include <${cf_cv_ncurses_header:-curses.h}>],
1902	[void *foo = &(${name}['k']); (void)foo],
1903	[cf_cv_curses_wacs_map=$name
1904	 break])
1905	done])
1906
1907test "$cf_cv_curses_wacs_map" != unknown && AC_DEFINE_UNQUOTED(CURSES_WACS_ARRAY,$cf_cv_curses_wacs_map,[Define to name of (n)curses wide-character array])
1908])dnl
1909dnl ---------------------------------------------------------------------------
1910dnl CF_CURSES_WACS_SYMBOLS version: 4 updated: 2021/01/04 19:45:09
1911dnl ----------------------
1912dnl Do a check to see if the WACS_xxx constants are defined compatibly with
1913dnl X/Open Curses.  In particular, NetBSD's implementation of the WACS_xxx
1914dnl constants is broken since those constants do not point to cchar_t's.
1915AC_DEFUN([CF_CURSES_WACS_SYMBOLS],
1916[
1917AC_REQUIRE([CF_CURSES_WACS_MAP])
1918
1919AC_CACHE_CHECK(for wide alternate character constants, cf_cv_curses_wacs_symbols,[
1920cf_cv_curses_wacs_symbols=no
1921if test "$cf_cv_curses_wacs_map" != unknown
1922then
1923	AC_TRY_LINK([
1924#ifndef _XOPEN_SOURCE_EXTENDED
1925#define _XOPEN_SOURCE_EXTENDED
1926#endif
1927#include <${cf_cv_ncurses_header:-curses.h}>],
1928	[cchar_t *foo = WACS_PLUS;
1929	 ${cf_cv_curses_wacs_map}['k'] = *WACS_PLUS; (void)foo],
1930	[cf_cv_curses_wacs_symbols=yes])
1931else
1932	AC_TRY_LINK([
1933#ifndef _XOPEN_SOURCE_EXTENDED
1934#define _XOPEN_SOURCE_EXTENDED
1935#endif
1936#include <${cf_cv_ncurses_header:-curses.h}>],
1937	[cchar_t *foo = WACS_PLUS; (void)foo],
1938	[cf_cv_curses_wacs_symbols=yes])
1939fi
1940])
1941
1942test "$cf_cv_curses_wacs_symbols" != no && AC_DEFINE(CURSES_WACS_SYMBOLS,1,[Define to 1 if (n)curses supports wide-character WACS_ symbols])
1943])dnl
1944dnl ---------------------------------------------------------------------------
1945dnl CF_CURSES_WGETPARENT version: 4 updated: 2020/03/19 20:23:48
1946dnl --------------------
1947dnl Check for curses support for directly determining the parent of a given
1948dnl window.  Some implementations make this difficult, so we provide for
1949dnl defining an application-specific function that gives this functionality.
1950dnl
1951dnl $1 = name of function to use if the feature is missing
1952AC_DEFUN([CF_CURSES_WGETPARENT],[
1953CF_CURSES_FUNCS(wgetparent)
1954if test "x$cf_cv_func_wgetparent" != xyes
1955then
1956	AC_MSG_CHECKING(if WINDOW has _parent member)
1957	AC_TRY_COMPILE([#include <${cf_cv_ncurses_header:-curses.h}>],
1958		[WINDOW *p = stdscr->_parent; (void)p],
1959		[cf_window__parent=yes],
1960		[cf_window__parent=no])
1961	AC_MSG_RESULT($cf_window__parent)
1962	if test "$cf_window__parent" = yes
1963	then
1964		AC_DEFINE(HAVE_WINDOW__PARENT,1,[Define to 1 if WINDOW struct has _parent member])
1965	fi
1966fi
1967])dnl
1968dnl ---------------------------------------------------------------------------
1969dnl CF_DIRNAME version: 5 updated: 2020/12/31 20:19:42
1970dnl ----------
1971dnl "dirname" is not portable, so we fake it with a shell script.
1972AC_DEFUN([CF_DIRNAME],[$1=`echo "$2" | sed -e 's%/[[^/]]*$%%'`])dnl
1973dnl ---------------------------------------------------------------------------
1974dnl CF_DISABLE_ECHO version: 13 updated: 2015/04/18 08:56:57
1975dnl ---------------
1976dnl You can always use "make -n" to see the actual options, but it's hard to
1977dnl pick out/analyze warning messages when the compile-line is long.
1978dnl
1979dnl Sets:
1980dnl	ECHO_LT - symbol to control if libtool is verbose
1981dnl	ECHO_LD - symbol to prefix "cc -o" lines
1982dnl	RULE_CC - symbol to put before implicit "cc -c" lines (e.g., .c.o)
1983dnl	SHOW_CC - symbol to put before explicit "cc -c" lines
1984dnl	ECHO_CC - symbol to put before any "cc" line
1985dnl
1986AC_DEFUN([CF_DISABLE_ECHO],[
1987AC_MSG_CHECKING(if you want to see long compiling messages)
1988CF_ARG_DISABLE(echo,
1989	[  --disable-echo          do not display "compiling" commands],
1990	[
1991	ECHO_LT='--silent'
1992	ECHO_LD='@echo linking [$]@;'
1993	RULE_CC='@echo compiling [$]<'
1994	SHOW_CC='@echo compiling [$]@'
1995	ECHO_CC='@'
1996],[
1997	ECHO_LT=''
1998	ECHO_LD=''
1999	RULE_CC=''
2000	SHOW_CC=''
2001	ECHO_CC=''
2002])
2003AC_MSG_RESULT($enableval)
2004AC_SUBST(ECHO_LT)
2005AC_SUBST(ECHO_LD)
2006AC_SUBST(RULE_CC)
2007AC_SUBST(SHOW_CC)
2008AC_SUBST(ECHO_CC)
2009])dnl
2010dnl ---------------------------------------------------------------------------
2011dnl CF_DISABLE_LIBTOOL_VERSION version: 3 updated: 2015/04/17 21:13:04
2012dnl --------------------------
2013dnl Check if we should use the libtool 1.5 feature "-version-number" instead of
2014dnl the older "-version-info" feature.  The newer feature allows us to use
2015dnl version numbering on shared libraries which make them compatible with
2016dnl various systems.
2017AC_DEFUN([CF_DISABLE_LIBTOOL_VERSION],
2018[
2019AC_MSG_CHECKING(if libtool -version-number should be used)
2020CF_ARG_DISABLE(libtool-version,
2021	[  --disable-libtool-version  enable to use libtool's incompatible naming scheme],
2022	[cf_libtool_version=no],
2023	[cf_libtool_version=yes])
2024AC_MSG_RESULT($cf_libtool_version)
2025
2026if test "$cf_libtool_version" = yes ; then
2027	LIBTOOL_VERSION="-version-number"
2028else
2029	LIBTOOL_VERSION="-version-info"
2030	case "x$VERSION" in
2031	(x)
2032		AC_MSG_WARN(VERSION was not set)
2033		;;
2034	(x*.*.*)
2035		ABI_VERSION="$VERSION"
2036		CF_VERBOSE(ABI_VERSION: $ABI_VERSION)
2037		;;
2038	(x*:*:*)
2039		ABI_VERSION=`echo "$VERSION" | sed -e 's/:/./g'`
2040		CF_VERBOSE(ABI_VERSION: $ABI_VERSION)
2041		;;
2042	(*)
2043		AC_MSG_WARN(unexpected VERSION value: $VERSION)
2044		;;
2045	esac
2046fi
2047
2048AC_SUBST(ABI_VERSION)
2049AC_SUBST(LIBTOOL_VERSION)
2050])dnl
2051dnl ---------------------------------------------------------------------------
2052dnl CF_DISABLE_RPATH_HACK version: 3 updated: 2021/01/05 20:14:44
2053dnl ---------------------
2054dnl The rpath-hack makes it simpler to build programs, particularly with the
2055dnl *BSD ports which may have essential libraries in unusual places.  But it
2056dnl can interfere with building an executable for the base system.  Use this
2057dnl option in that case.
2058AC_DEFUN([CF_DISABLE_RPATH_HACK],
2059[
2060AC_MSG_CHECKING(if rpath-hack should be disabled)
2061CF_ARG_DISABLE(rpath-hack,
2062	[  --disable-rpath-hack    don't add rpath options for additional libraries],
2063	[enable_rpath_hack=no],
2064	[enable_rpath_hack=yes])
2065dnl TODO - drop cf_disable_rpath_hack
2066if test "x$enable_rpath_hack" = xno; then cf_disable_rpath_hack=yes; else cf_disable_rpath_hack=no; fi
2067AC_MSG_RESULT($cf_disable_rpath_hack)
2068
2069if test "$enable_rpath_hack" = yes ; then
2070	CF_RPATH_HACK
2071fi
2072])
2073dnl ---------------------------------------------------------------------------
2074dnl CF_ENABLE_RPATH version: 2 updated: 2010/03/27 18:39:42
2075dnl ---------------
2076dnl Check if the rpath option should be used, setting cache variable
2077dnl cf_cv_enable_rpath if so.
2078AC_DEFUN([CF_ENABLE_RPATH],
2079[
2080AC_MSG_CHECKING(if rpath option should be used)
2081AC_ARG_ENABLE(rpath,
2082[  --enable-rpath          use rpath option when generating shared libraries],
2083[cf_cv_enable_rpath=$enableval],
2084[cf_cv_enable_rpath=no])
2085AC_MSG_RESULT($cf_cv_enable_rpath)
2086])dnl
2087dnl ---------------------------------------------------------------------------
2088dnl CF_ENABLE_WARNINGS version: 9 updated: 2021/01/05 19:40:50
2089dnl ------------------
2090dnl Configure-option to enable gcc warnings
2091dnl
2092dnl $1 = extra options to add, if supported
2093dnl $2 = option for checking attributes.  By default, this is done when
2094dnl      warnings are enabled.  For other values:
2095dnl      yes: always do this, e.g., to use in generated library-headers
2096dnl      no: never do this
2097AC_DEFUN([CF_ENABLE_WARNINGS],[
2098if test "$GCC" = yes || test "$GXX" = yes
2099then
2100CF_FIX_WARNINGS(CFLAGS)
2101CF_FIX_WARNINGS(CPPFLAGS)
2102CF_FIX_WARNINGS(LDFLAGS)
2103AC_MSG_CHECKING(if you want to turn on gcc warnings)
2104CF_ARG_ENABLE(warnings,
2105	[  --enable-warnings       test: turn on gcc compiler warnings],
2106	[enable_warnings=yes],
2107	[enable_warnings=no])
2108AC_MSG_RESULT($enable_warnings)
2109if test "$enable_warnings" = "yes"
2110then
2111	ifelse($2,,[CF_GCC_ATTRIBUTES])
2112	CF_GCC_WARNINGS($1)
2113fi
2114ifelse($2,yes,[CF_GCC_ATTRIBUTES])
2115fi
2116])dnl
2117dnl ---------------------------------------------------------------------------
2118dnl CF_FIND_LIBRARY version: 11 updated: 2021/01/02 09:31:20
2119dnl ---------------
2120dnl Look for a non-standard library, given parameters for AC_TRY_LINK.  We
2121dnl prefer a standard location, and use -L options only if we do not find the
2122dnl library in the standard library location(s).
2123dnl	$1 = library name
2124dnl	$2 = library class, usually the same as library name
2125dnl	$3 = includes
2126dnl	$4 = code fragment to compile/link
2127dnl	$5 = corresponding function-name
2128dnl	$6 = flag, nonnull if failure should not cause an error-exit
2129dnl
2130dnl Sets the variable "$cf_libdir" as a side-effect, so we can see if we had
2131dnl to use a -L option.
2132AC_DEFUN([CF_FIND_LIBRARY],
2133[
2134	eval 'cf_cv_have_lib_'"$1"'=no'
2135	cf_libdir=""
2136	AC_CHECK_FUNC($5,
2137		eval 'cf_cv_have_lib_'"$1"'=yes',[
2138		cf_save_LIBS="$LIBS"
2139		AC_MSG_CHECKING(for $5 in -l$1)
2140		LIBS="-l$1 $LIBS"
2141		AC_TRY_LINK([$3],[$4],
2142			[AC_MSG_RESULT(yes)
2143			 eval 'cf_cv_have_lib_'"$1"'=yes'
2144			],
2145			[AC_MSG_RESULT(no)
2146			CF_LIBRARY_PATH(cf_search,$2)
2147			for cf_libdir in $cf_search
2148			do
2149				AC_MSG_CHECKING(for -l$1 in $cf_libdir)
2150				LIBS="-L$cf_libdir -l$1 $cf_save_LIBS"
2151				AC_TRY_LINK([$3],[$4],
2152					[AC_MSG_RESULT(yes)
2153			 		 eval 'cf_cv_have_lib_'"$1"'=yes'
2154					 break],
2155					[AC_MSG_RESULT(no)
2156					 LIBS="$cf_save_LIBS"])
2157			done
2158			])
2159		])
2160eval 'cf_found_library="[$]cf_cv_have_lib_'"$1"\"
2161ifelse($6,,[
2162if test "$cf_found_library" = no ; then
2163	AC_MSG_ERROR(Cannot link $1 library)
2164fi
2165])
2166])dnl
2167dnl ---------------------------------------------------------------------------
2168dnl CF_FIND_LINKAGE version: 22 updated: 2020/12/31 20:19:42
2169dnl ---------------
2170dnl Find a library (specifically the linkage used in the code fragment),
2171dnl searching for it if it is not already in the library path.
2172dnl See also CF_ADD_SEARCHPATH.
2173dnl
2174dnl Parameters (4-on are optional):
2175dnl     $1 = headers for library entrypoint
2176dnl     $2 = code fragment for library entrypoint
2177dnl     $3 = the library name without the "-l" option or ".so" suffix.
2178dnl     $4 = action to perform if successful (default: update CPPFLAGS, etc)
2179dnl     $5 = action to perform if not successful
2180dnl     $6 = module name, if not the same as the library name
2181dnl     $7 = extra libraries
2182dnl
2183dnl Sets these variables:
2184dnl     $cf_cv_find_linkage_$3 - yes/no according to whether linkage is found
2185dnl     $cf_cv_header_path_$3 - include-directory if needed
2186dnl     $cf_cv_library_path_$3 - library-directory if needed
2187dnl     $cf_cv_library_file_$3 - library-file if needed, e.g., -l$3
2188AC_DEFUN([CF_FIND_LINKAGE],[
2189
2190# If the linkage is not already in the $CPPFLAGS/$LDFLAGS configuration, these
2191# will be set on completion of the AC_TRY_LINK below.
2192cf_cv_header_path_$3=
2193cf_cv_library_path_$3=
2194
2195CF_MSG_LOG([Starting [FIND_LINKAGE]($3,$6)])
2196
2197cf_save_LIBS="$LIBS"
2198
2199AC_TRY_LINK([$1],[$2],[
2200	cf_cv_find_linkage_$3=yes
2201	cf_cv_header_path_$3=/usr/include
2202	cf_cv_library_path_$3=/usr/lib
2203],[
2204
2205LIBS="-l$3 $7 $cf_save_LIBS"
2206
2207AC_TRY_LINK([$1],[$2],[
2208	cf_cv_find_linkage_$3=yes
2209	cf_cv_header_path_$3=/usr/include
2210	cf_cv_library_path_$3=/usr/lib
2211	cf_cv_library_file_$3="-l$3"
2212],[
2213	cf_cv_find_linkage_$3=no
2214	LIBS="$cf_save_LIBS"
2215
2216	CF_VERBOSE(find linkage for $3 library)
2217	CF_MSG_LOG([Searching for headers in [FIND_LINKAGE]($3,$6)])
2218
2219	cf_save_CPPFLAGS="$CPPFLAGS"
2220	cf_test_CPPFLAGS="$CPPFLAGS"
2221
2222	CF_HEADER_PATH(cf_search,ifelse([$6],,[$3],[$6]))
2223	for cf_cv_header_path_$3 in $cf_search
2224	do
2225		if test -d "$cf_cv_header_path_$3" ; then
2226			CF_VERBOSE(... testing $cf_cv_header_path_$3)
2227			CPPFLAGS="$cf_save_CPPFLAGS"
2228			CF_APPEND_TEXT(CPPFLAGS,-I$cf_cv_header_path_$3)
2229			AC_TRY_COMPILE([$1],[$2],[
2230				CF_VERBOSE(... found $3 headers in $cf_cv_header_path_$3)
2231				cf_cv_find_linkage_$3=maybe
2232				cf_test_CPPFLAGS="$CPPFLAGS"
2233				break],[
2234				CPPFLAGS="$cf_save_CPPFLAGS"
2235				])
2236		fi
2237	done
2238
2239	if test "$cf_cv_find_linkage_$3" = maybe ; then
2240
2241		CF_MSG_LOG([Searching for $3 library in [FIND_LINKAGE]($3,$6)])
2242
2243		cf_save_LIBS="$LIBS"
2244		cf_save_LDFLAGS="$LDFLAGS"
2245
2246		ifelse([$6],,,[
2247		CPPFLAGS="$cf_test_CPPFLAGS"
2248		LIBS="-l$3 $7 $cf_save_LIBS"
2249		AC_TRY_LINK([$1],[$2],[
2250			CF_VERBOSE(... found $3 library in system)
2251			cf_cv_find_linkage_$3=yes])
2252			CPPFLAGS="$cf_save_CPPFLAGS"
2253			LIBS="$cf_save_LIBS"
2254			])
2255
2256		if test "$cf_cv_find_linkage_$3" != yes ; then
2257			CF_LIBRARY_PATH(cf_search,$3)
2258			for cf_cv_library_path_$3 in $cf_search
2259			do
2260				if test -d "$cf_cv_library_path_$3" ; then
2261					CF_VERBOSE(... testing $cf_cv_library_path_$3)
2262					CPPFLAGS="$cf_test_CPPFLAGS"
2263					LIBS="-l$3 $7 $cf_save_LIBS"
2264					LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_$3"
2265					AC_TRY_LINK([$1],[$2],[
2266					CF_VERBOSE(... found $3 library in $cf_cv_library_path_$3)
2267					cf_cv_find_linkage_$3=yes
2268					cf_cv_library_file_$3="-l$3"
2269					break],[
2270					CPPFLAGS="$cf_save_CPPFLAGS"
2271					LIBS="$cf_save_LIBS"
2272					LDFLAGS="$cf_save_LDFLAGS"
2273					])
2274				fi
2275			done
2276			CPPFLAGS="$cf_save_CPPFLAGS"
2277			LDFLAGS="$cf_save_LDFLAGS"
2278		fi
2279
2280	else
2281		cf_cv_find_linkage_$3=no
2282	fi
2283	],$7)
2284])
2285
2286LIBS="$cf_save_LIBS"
2287
2288if test "$cf_cv_find_linkage_$3" = yes ; then
2289ifelse([$4],,[
2290	CF_ADD_INCDIR($cf_cv_header_path_$3)
2291	CF_ADD_LIBDIR($cf_cv_library_path_$3)
2292	CF_ADD_LIB($3)
2293],[$4])
2294else
2295ifelse([$5],,AC_MSG_WARN(Cannot find $3 library),[$5])
2296fi
2297])dnl
2298dnl ---------------------------------------------------------------------------
2299dnl CF_FIX_WARNINGS version: 3 updated: 2020/12/31 18:40:20
2300dnl ---------------
2301dnl Warning flags do not belong in CFLAGS, CPPFLAGS, etc.  Any of gcc's
2302dnl "-Werror" flags can interfere with configure-checks.  Those go into
2303dnl EXTRA_CFLAGS.
2304dnl
2305dnl $1 = variable name to repair
2306define([CF_FIX_WARNINGS],[
2307if test "$GCC" = yes || test "$GXX" = yes
2308then
2309	case [$]$1 in
2310	(*-Werror=*)
2311		CF_VERBOSE(repairing $1: [$]$1)
2312		cf_temp_flags=
2313		for cf_temp_scan in [$]$1
2314		do
2315			case "x$cf_temp_scan" in
2316			(x-Werror=*)
2317				CF_APPEND_TEXT(EXTRA_CFLAGS,$cf_temp_scan)
2318				;;
2319			(*)
2320				CF_APPEND_TEXT(cf_temp_flags,$cf_temp_scan)
2321				;;
2322			esac
2323		done
2324		$1="$cf_temp_flags"
2325		CF_VERBOSE(... fixed [$]$1)
2326		CF_VERBOSE(... extra $EXTRA_CFLAGS)
2327		;;
2328	esac
2329fi
2330AC_SUBST(EXTRA_CFLAGS)
2331])dnl
2332dnl ---------------------------------------------------------------------------
2333dnl CF_FORGET_TOOL version: 1 updated: 2013/04/06 18:03:09
2334dnl --------------
2335dnl Forget that we saw the given tool.
2336AC_DEFUN([CF_FORGET_TOOL],[
2337unset ac_cv_prog_ac_ct_$1
2338unset ac_ct_$1
2339unset $1
2340])dnl
2341dnl ---------------------------------------------------------------------------
2342dnl CF_FUNC_WAIT version: 4 updated: 2021/01/02 09:31:20
2343dnl ------------
2344dnl Test for the presence of <sys/wait.h>, 'union wait', arg-type of 'wait()'
2345dnl and/or 'waitpid()'.
2346dnl
2347dnl Note that we cannot simply grep for 'union wait' in the wait.h file,
2348dnl because some Posix systems turn this on only when a BSD variable is
2349dnl defined.
2350dnl
2351dnl I don't use AC_HEADER_SYS_WAIT, because it defines HAVE_SYS_WAIT_H, which
2352dnl would conflict with an attempt to test that header directly.
2353dnl
2354AC_DEFUN([CF_FUNC_WAIT],
2355[
2356AC_REQUIRE([CF_UNION_WAIT])
2357if test "$cf_cv_type_unionwait" = yes; then
2358
2359	AC_MSG_CHECKING(if union wait can be used as wait-arg)
2360	AC_CACHE_VAL(cf_cv_arg_union_wait,[
2361		AC_TRY_COMPILE($cf_wait_headers,
2362 			[union wait x; wait(&x)],
2363			[cf_cv_arg_union_wait=yes],
2364			[cf_cv_arg_union_wait=no])
2365		])
2366	AC_MSG_RESULT($cf_cv_arg_union_wait)
2367	test "$cf_cv_arg_union_wait" = yes && AC_DEFINE(WAIT_USES_UNION,1,[Define to 1 if wait() uses a union parameter])
2368
2369	AC_MSG_CHECKING(if union wait can be used as waitpid-arg)
2370	AC_CACHE_VAL(cf_cv_arg_union_waitpid,[
2371		AC_TRY_COMPILE($cf_wait_headers,
2372 			[union wait x; waitpid(0, &x, 0)],
2373			[cf_cv_arg_union_waitpid=yes],
2374			[cf_cv_arg_union_waitpid=no])
2375		])
2376	AC_MSG_RESULT($cf_cv_arg_union_waitpid)
2377	test "$cf_cv_arg_union_waitpid" = yes && AC_DEFINE(WAITPID_USES_UNION,1,[Define to 1 if waitpid() uses a union parameter])
2378
2379fi
2380])dnl
2381dnl ---------------------------------------------------------------------------
2382dnl CF_GCC_ATTRIBUTES version: 23 updated: 2021/01/03 18:30:50
2383dnl -----------------
2384dnl Test for availability of useful gcc __attribute__ directives to quiet
2385dnl compiler warnings.  Though useful, not all are supported -- and contrary
2386dnl to documentation, unrecognized directives cause older compilers to barf.
2387AC_DEFUN([CF_GCC_ATTRIBUTES],
2388[AC_REQUIRE([AC_PROG_FGREP])dnl
2389
2390if test "$GCC" = yes || test "$GXX" = yes
2391then
2392cat > conftest.i <<EOF
2393#ifndef GCC_PRINTF
2394#define GCC_PRINTF 0
2395#endif
2396#ifndef GCC_SCANF
2397#define GCC_SCANF 0
2398#endif
2399#ifndef GCC_NORETURN
2400#define GCC_NORETURN /* nothing */
2401#endif
2402#ifndef GCC_UNUSED
2403#define GCC_UNUSED /* nothing */
2404#endif
2405EOF
2406if test "$GCC" = yes
2407then
2408	AC_CHECKING([for $CC __attribute__ directives])
2409cat > "conftest.$ac_ext" <<EOF
2410#line __oline__ "${as_me:-configure}"
2411#include "confdefs.h"
2412#include "conftest.h"
2413#include "conftest.i"
2414#if	GCC_PRINTF
2415#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
2416#else
2417#define GCC_PRINTFLIKE(fmt,var) /*nothing*/
2418#endif
2419#if	GCC_SCANF
2420#define GCC_SCANFLIKE(fmt,var)  __attribute__((format(scanf,fmt,var)))
2421#else
2422#define GCC_SCANFLIKE(fmt,var)  /*nothing*/
2423#endif
2424extern void wow(char *,...) GCC_SCANFLIKE(1,2);
2425extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
2426extern void foo(void) GCC_NORETURN;
2427int main(int argc GCC_UNUSED, char *argv[[]] GCC_UNUSED) { (void)argc; (void)argv; return 0; }
2428EOF
2429	cf_printf_attribute=no
2430	cf_scanf_attribute=no
2431	for cf_attribute in scanf printf unused noreturn
2432	do
2433		CF_UPPER(cf_ATTRIBUTE,$cf_attribute)
2434		cf_directive="__attribute__(($cf_attribute))"
2435		echo "checking for $CC $cf_directive" 1>&AC_FD_CC
2436
2437		case "$cf_attribute" in
2438		(printf)
2439			cf_printf_attribute=yes
2440			cat >conftest.h <<EOF
2441#define GCC_$cf_ATTRIBUTE 1
2442EOF
2443			;;
2444		(scanf)
2445			cf_scanf_attribute=yes
2446			cat >conftest.h <<EOF
2447#define GCC_$cf_ATTRIBUTE 1
2448EOF
2449			;;
2450		(*)
2451			cat >conftest.h <<EOF
2452#define GCC_$cf_ATTRIBUTE $cf_directive
2453EOF
2454			;;
2455		esac
2456
2457		if AC_TRY_EVAL(ac_compile); then
2458			test -n "$verbose" && AC_MSG_RESULT(... $cf_attribute)
2459			cat conftest.h >>confdefs.h
2460			case "$cf_attribute" in
2461			(noreturn)
2462				AC_DEFINE_UNQUOTED(GCC_NORETURN,$cf_directive,[Define to noreturn-attribute for gcc])
2463				;;
2464			(printf)
2465				cf_value='/* nothing */'
2466				if test "$cf_printf_attribute" != no ; then
2467					cf_value='__attribute__((format(printf,fmt,var)))'
2468					AC_DEFINE(GCC_PRINTF,1,[Define to 1 if the compiler supports gcc-like printf attribute.])
2469				fi
2470				AC_DEFINE_UNQUOTED(GCC_PRINTFLIKE(fmt,var),$cf_value,[Define to printf-attribute for gcc])
2471				;;
2472			(scanf)
2473				cf_value='/* nothing */'
2474				if test "$cf_scanf_attribute" != no ; then
2475					cf_value='__attribute__((format(scanf,fmt,var)))'
2476					AC_DEFINE(GCC_SCANF,1,[Define to 1 if the compiler supports gcc-like scanf attribute.])
2477				fi
2478				AC_DEFINE_UNQUOTED(GCC_SCANFLIKE(fmt,var),$cf_value,[Define to sscanf-attribute for gcc])
2479				;;
2480			(unused)
2481				AC_DEFINE_UNQUOTED(GCC_UNUSED,$cf_directive,[Define to unused-attribute for gcc])
2482				;;
2483			esac
2484		fi
2485	done
2486else
2487	${FGREP-fgrep} define conftest.i >>confdefs.h
2488fi
2489rm -rf ./conftest*
2490fi
2491])dnl
2492dnl ---------------------------------------------------------------------------
2493dnl CF_GCC_VERSION version: 8 updated: 2019/09/07 13:38:36
2494dnl --------------
2495dnl Find version of gcc, and (because icc/clang pretend to be gcc without being
2496dnl compatible), attempt to determine if icc/clang is actually used.
2497AC_DEFUN([CF_GCC_VERSION],[
2498AC_REQUIRE([AC_PROG_CC])
2499GCC_VERSION=none
2500if test "$GCC" = yes ; then
2501	AC_MSG_CHECKING(version of $CC)
2502	GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(GCC[[^)]]*) //' -e 's/^.*(Debian[[^)]]*) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
2503	test -z "$GCC_VERSION" && GCC_VERSION=unknown
2504	AC_MSG_RESULT($GCC_VERSION)
2505fi
2506CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
2507CF_CLANG_COMPILER(GCC,CLANG_COMPILER,CFLAGS)
2508])dnl
2509dnl ---------------------------------------------------------------------------
2510dnl CF_GCC_WARNINGS version: 41 updated: 2021/01/01 16:53:59
2511dnl ---------------
2512dnl Check if the compiler supports useful warning options.  There's a few that
2513dnl we don't use, simply because they're too noisy:
2514dnl
2515dnl	-Wconversion (useful in older versions of gcc, but not in gcc 2.7.x)
2516dnl	-Winline (usually not worthwhile)
2517dnl	-Wredundant-decls (system headers make this too noisy)
2518dnl	-Wtraditional (combines too many unrelated messages, only a few useful)
2519dnl	-Wwrite-strings (too noisy, but should review occasionally).  This
2520dnl		is enabled for ncurses using "--enable-const".
2521dnl	-pedantic
2522dnl
2523dnl Parameter:
2524dnl	$1 is an optional list of gcc warning flags that a particular
2525dnl		application might want to use, e.g., "no-unused" for
2526dnl		-Wno-unused
2527dnl Special:
2528dnl	If $with_ext_const is "yes", add a check for -Wwrite-strings
2529dnl
2530AC_DEFUN([CF_GCC_WARNINGS],
2531[
2532AC_REQUIRE([CF_GCC_VERSION])
2533if test "x$have_x" = xyes; then CF_CONST_X_STRING fi
2534cat > "conftest.$ac_ext" <<EOF
2535#line __oline__ "${as_me:-configure}"
2536int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
2537EOF
2538if test "$INTEL_COMPILER" = yes
2539then
2540# The "-wdXXX" options suppress warnings:
2541# remark #1419: external declaration in primary source file
2542# remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
2543# remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
2544# remark #193: zero used for undefined preprocessing identifier
2545# remark #593: variable "curs_sb_left_arrow" was set but never used
2546# remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
2547# remark #869: parameter "tw" was never referenced
2548# remark #981: operands are evaluated in unspecified order
2549# warning #279: controlling expression is constant
2550
2551	AC_CHECKING([for $CC warning options])
2552	cf_save_CFLAGS="$CFLAGS"
2553	EXTRA_CFLAGS="$EXTRA_CFLAGS -Wall"
2554	for cf_opt in \
2555		wd1419 \
2556		wd1683 \
2557		wd1684 \
2558		wd193 \
2559		wd593 \
2560		wd279 \
2561		wd810 \
2562		wd869 \
2563		wd981
2564	do
2565		CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
2566		if AC_TRY_EVAL(ac_compile); then
2567			test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
2568			EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
2569		fi
2570	done
2571	CFLAGS="$cf_save_CFLAGS"
2572elif test "$GCC" = yes && test "$GCC_VERSION" != "unknown"
2573then
2574	AC_CHECKING([for $CC warning options])
2575	cf_save_CFLAGS="$CFLAGS"
2576	cf_warn_CONST=""
2577	test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
2578	cf_gcc_warnings="Wignored-qualifiers Wlogical-op Wvarargs"
2579	test "x$CLANG_COMPILER" = xyes && cf_gcc_warnings=
2580	for cf_opt in W Wall \
2581		Wbad-function-cast \
2582		Wcast-align \
2583		Wcast-qual \
2584		Wdeclaration-after-statement \
2585		Wextra \
2586		Winline \
2587		Wmissing-declarations \
2588		Wmissing-prototypes \
2589		Wnested-externs \
2590		Wpointer-arith \
2591		Wshadow \
2592		Wstrict-prototypes \
2593		Wundef Wno-inline $cf_gcc_warnings $cf_warn_CONST $1
2594	do
2595		CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
2596		if AC_TRY_EVAL(ac_compile); then
2597			test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
2598			case "$cf_opt" in
2599			(Winline)
2600				case "$GCC_VERSION" in
2601				([[34]].*)
2602					CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
2603					continue;;
2604				esac
2605				;;
2606			(Wpointer-arith)
2607				case "$GCC_VERSION" in
2608				([[12]].*)
2609					CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
2610					continue;;
2611				esac
2612				;;
2613			esac
2614			EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
2615		fi
2616	done
2617	CFLAGS="$cf_save_CFLAGS"
2618fi
2619rm -rf ./conftest*
2620
2621AC_SUBST(EXTRA_CFLAGS)
2622])dnl
2623dnl ---------------------------------------------------------------------------
2624dnl CF_GNU_SOURCE version: 10 updated: 2018/12/10 20:09:41
2625dnl -------------
2626dnl Check if we must define _GNU_SOURCE to get a reasonable value for
2627dnl _XOPEN_SOURCE, upon which many POSIX definitions depend.  This is a defect
2628dnl (or misfeature) of glibc2, which breaks portability of many applications,
2629dnl since it is interwoven with GNU extensions.
2630dnl
2631dnl Well, yes we could work around it...
2632dnl
2633dnl Parameters:
2634dnl	$1 is the nominal value for _XOPEN_SOURCE
2635AC_DEFUN([CF_GNU_SOURCE],
2636[
2637cf_gnu_xopen_source=ifelse($1,,500,$1)
2638
2639AC_CACHE_CHECK(if this is the GNU C library,cf_cv_gnu_library,[
2640AC_TRY_COMPILE([#include <sys/types.h>],[
2641	#if __GLIBC__ > 0 && __GLIBC_MINOR__ >= 0
2642		return 0;
2643	#elif __NEWLIB__ > 0 && __NEWLIB_MINOR__ >= 0
2644		return 0;
2645	#else
2646	#	error not GNU C library
2647	#endif],
2648	[cf_cv_gnu_library=yes],
2649	[cf_cv_gnu_library=no])
2650])
2651
2652if test x$cf_cv_gnu_library = xyes; then
2653
2654	# With glibc 2.19 (13 years after this check was begun), _DEFAULT_SOURCE
2655	# was changed to help a little.  newlib incorporated the change about 4
2656	# years later.
2657	AC_CACHE_CHECK(if _DEFAULT_SOURCE can be used as a basis,cf_cv_gnu_library_219,[
2658		cf_save="$CPPFLAGS"
2659		CF_APPEND_TEXT(CPPFLAGS,-D_DEFAULT_SOURCE)
2660		AC_TRY_COMPILE([#include <sys/types.h>],[
2661			#if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 19) || (__GLIBC__ > 2)
2662				return 0;
2663			#elif (__NEWLIB__ == 2 && __NEWLIB_MINOR__ >= 4) || (__GLIBC__ > 3)
2664				return 0;
2665			#else
2666			#	error GNU C library __GLIBC__.__GLIBC_MINOR__ is too old
2667			#endif],
2668			[cf_cv_gnu_library_219=yes],
2669			[cf_cv_gnu_library_219=no])
2670		CPPFLAGS="$cf_save"
2671	])
2672
2673	if test "x$cf_cv_gnu_library_219" = xyes; then
2674		cf_save="$CPPFLAGS"
2675		AC_CACHE_CHECK(if _XOPEN_SOURCE=$cf_gnu_xopen_source works with _DEFAULT_SOURCE,cf_cv_gnu_dftsrc_219,[
2676			CF_ADD_CFLAGS(-D_DEFAULT_SOURCE -D_XOPEN_SOURCE=$cf_gnu_xopen_source)
2677			AC_TRY_COMPILE([
2678				#include <limits.h>
2679				#include <sys/types.h>
2680				],[
2681				#if (_XOPEN_SOURCE >= $cf_gnu_xopen_source) && (MB_LEN_MAX > 1)
2682					return 0;
2683				#else
2684				#	error GNU C library is too old
2685				#endif],
2686				[cf_cv_gnu_dftsrc_219=yes],
2687				[cf_cv_gnu_dftsrc_219=no])
2688			])
2689		test "x$cf_cv_gnu_dftsrc_219" = "xyes" || CPPFLAGS="$cf_save"
2690	else
2691		cf_cv_gnu_dftsrc_219=maybe
2692	fi
2693
2694	if test "x$cf_cv_gnu_dftsrc_219" != xyes; then
2695
2696		AC_CACHE_CHECK(if we must define _GNU_SOURCE,cf_cv_gnu_source,[
2697		AC_TRY_COMPILE([#include <sys/types.h>],[
2698			#ifndef _XOPEN_SOURCE
2699			#error	expected _XOPEN_SOURCE to be defined
2700			#endif],
2701			[cf_cv_gnu_source=no],
2702			[cf_save="$CPPFLAGS"
2703			 CF_ADD_CFLAGS(-D_GNU_SOURCE)
2704			 AC_TRY_COMPILE([#include <sys/types.h>],[
2705				#ifdef _XOPEN_SOURCE
2706				#error	expected _XOPEN_SOURCE to be undefined
2707				#endif],
2708				[cf_cv_gnu_source=no],
2709				[cf_cv_gnu_source=yes])
2710			CPPFLAGS="$cf_save"
2711			])
2712		])
2713
2714		if test "$cf_cv_gnu_source" = yes
2715		then
2716		AC_CACHE_CHECK(if we should also define _DEFAULT_SOURCE,cf_cv_default_source,[
2717			CF_APPEND_TEXT(CPPFLAGS,-D_GNU_SOURCE)
2718			AC_TRY_COMPILE([#include <sys/types.h>],[
2719				#ifdef _DEFAULT_SOURCE
2720				#error	expected _DEFAULT_SOURCE to be undefined
2721				#endif],
2722				[cf_cv_default_source=no],
2723				[cf_cv_default_source=yes])
2724			])
2725			if test "$cf_cv_default_source" = yes
2726			then
2727				CF_APPEND_TEXT(CPPFLAGS,-D_DEFAULT_SOURCE)
2728			fi
2729		fi
2730	fi
2731
2732fi
2733])dnl
2734dnl ---------------------------------------------------------------------------
2735dnl CF_HEADERS_SH version: 1 updated: 2007/07/04 15:37:05
2736dnl -------------
2737dnl Setup variables needed to construct headers-sh
2738AC_DEFUN([CF_HEADERS_SH],[
2739PACKAGE_PREFIX=$1
2740PACKAGE_CONFIG=$2
2741AC_SUBST(PACKAGE_PREFIX)
2742AC_SUBST(PACKAGE_CONFIG)
2743EXTRA_OUTPUT="$EXTRA_OUTPUT headers-sh:$srcdir/headers-sh.in"
2744])
2745dnl ---------------------------------------------------------------------------
2746dnl CF_HEADER_PATH version: 15 updated: 2021/01/01 13:31:04
2747dnl --------------
2748dnl Construct a search-list of directories for a nonstandard header-file
2749dnl
2750dnl Parameters
2751dnl	$1 = the variable to return as result
2752dnl	$2 = the package name
2753AC_DEFUN([CF_HEADER_PATH],
2754[
2755$1=
2756
2757# collect the current set of include-directories from compiler flags
2758cf_header_path_list=""
2759if test -n "${CFLAGS}${CPPFLAGS}" ; then
2760	for cf_header_path in $CPPFLAGS $CFLAGS
2761	do
2762		case "$cf_header_path" in
2763		(-I*)
2764			cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'`
2765			CF_ADD_SUBDIR_PATH($1,$2,include,$cf_header_path,NONE)
2766			cf_header_path_list="$cf_header_path_list [$]$1"
2767			;;
2768		esac
2769	done
2770fi
2771
2772# add the variations for the package we are looking for
2773CF_SUBDIR_PATH($1,$2,include)
2774
2775test "$includedir" != NONE && \
2776test "$includedir" != "/usr/include" && \
2777test -d "$includedir" && {
2778	test -d "$includedir" &&    $1="[$]$1 $includedir"
2779	test -d "$includedir/$2" && $1="[$]$1 $includedir/$2"
2780}
2781
2782test "$oldincludedir" != NONE && \
2783test "$oldincludedir" != "/usr/include" && \
2784test -d "$oldincludedir" && {
2785	test -d "$oldincludedir"    && $1="[$]$1 $oldincludedir"
2786	test -d "$oldincludedir/$2" && $1="[$]$1 $oldincludedir/$2"
2787}
2788
2789$1="[$]$1 $cf_header_path_list"
2790])dnl
2791dnl ---------------------------------------------------------------------------
2792dnl CF_INTEL_COMPILER version: 8 updated: 2021/01/01 16:53:59
2793dnl -----------------
2794dnl Check if the given compiler is really the Intel compiler for Linux.  It
2795dnl tries to imitate gcc, but does not return an error when it finds a mismatch
2796dnl between prototypes, e.g., as exercised by CF_MISSING_CHECK.
2797dnl
2798dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
2799dnl ensure that it is not mistaken for gcc/g++.  It is normally invoked from
2800dnl the wrappers for gcc and g++ warnings.
2801dnl
2802dnl $1 = GCC (default) or GXX
2803dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS
2804dnl $3 = CFLAGS (default) or CXXFLAGS
2805AC_DEFUN([CF_INTEL_COMPILER],[
2806AC_REQUIRE([AC_CANONICAL_HOST])
2807ifelse([$2],,INTEL_COMPILER,[$2])=no
2808
2809if test "$ifelse([$1],,[$1],GCC)" = yes ; then
2810	case "$host_os" in
2811	(linux*|gnu*)
2812		AC_MSG_CHECKING(if this is really Intel ifelse([$1],GXX,C++,C) compiler)
2813		cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
2814		ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -no-gcc"
2815		AC_TRY_COMPILE([],[
2816#ifdef __INTEL_COMPILER
2817#else
2818make an error
2819#endif
2820],[ifelse([$2],,INTEL_COMPILER,[$2])=yes
2821cf_save_CFLAGS="$cf_save_CFLAGS -we147"
2822],[])
2823		ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
2824		AC_MSG_RESULT($ifelse([$2],,INTEL_COMPILER,[$2]))
2825		;;
2826	esac
2827fi
2828])dnl
2829dnl ---------------------------------------------------------------------------
2830dnl CF_LARGEFILE version: 12 updated: 2020/03/19 20:23:48
2831dnl ------------
2832dnl Add checks for large file support.
2833AC_DEFUN([CF_LARGEFILE],[
2834ifdef([AC_FUNC_FSEEKO],[
2835	AC_SYS_LARGEFILE
2836	if test "$enable_largefile" != no ; then
2837	AC_FUNC_FSEEKO
2838
2839	# Normally we would collect these definitions in the config.h,
2840	# but (like _XOPEN_SOURCE), some environments rely on having these
2841	# defined before any of the system headers are included.  Another
2842	# case comes up with C++, e.g., on AIX the compiler compiles the
2843	# header files by themselves before looking at the body files it is
2844	# told to compile.  For ncurses, those header files do not include
2845	# the config.h
2846	if test "$ac_cv_sys_large_files" != no
2847	then
2848		CF_APPEND_TEXT(CPPFLAGS,-D_LARGE_FILES)
2849	fi
2850	if test "$ac_cv_sys_largefile_source" != no
2851	then
2852		CF_APPEND_TEXT(CPPFLAGS,-D_LARGEFILE_SOURCE)
2853	fi
2854	if test "$ac_cv_sys_file_offset_bits" != no
2855	then
2856		CF_APPEND_TEXT(CPPFLAGS,-D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits)
2857	fi
2858
2859	AC_CACHE_CHECK(whether to use struct dirent64, cf_cv_struct_dirent64,[
2860		AC_TRY_COMPILE([
2861#pragma GCC diagnostic error "-Wincompatible-pointer-types"
2862#include <sys/types.h>
2863#include <dirent.h>
2864		],[
2865		/* if transitional largefile support is setup, this is true */
2866		extern struct dirent64 * readdir(DIR *);
2867		struct dirent64 *x = readdir((DIR *)0);
2868		struct dirent *y = readdir((DIR *)0);
2869		int z = x - y;
2870		(void)z;
2871		],
2872		[cf_cv_struct_dirent64=yes],
2873		[cf_cv_struct_dirent64=no])
2874	])
2875	test "$cf_cv_struct_dirent64" = yes && AC_DEFINE(HAVE_STRUCT_DIRENT64,1,[Define to 1 if we have struct dirent64])
2876	fi
2877])
2878])
2879dnl ---------------------------------------------------------------------------
2880dnl CF_LD_RPATH_OPT version: 9 updated: 2021/01/01 13:31:04
2881dnl ---------------
2882dnl For the given system and compiler, find the compiler flags to pass to the
2883dnl loader to use the "rpath" feature.
2884AC_DEFUN([CF_LD_RPATH_OPT],
2885[
2886AC_REQUIRE([CF_CHECK_CACHE])
2887
2888LD_RPATH_OPT=
2889if test "x$cf_cv_enable_rpath" != xno
2890then
2891	AC_MSG_CHECKING(for an rpath option)
2892	case "$cf_cv_system_name" in
2893	(irix*)
2894		if test "$GCC" = yes; then
2895			LD_RPATH_OPT="-Wl,-rpath,"
2896		else
2897			LD_RPATH_OPT="-rpath "
2898		fi
2899		;;
2900	(linux*|gnu*|k*bsd*-gnu|freebsd*)
2901		LD_RPATH_OPT="-Wl,-rpath,"
2902		;;
2903	(openbsd[[2-9]].*|mirbsd*)
2904		LD_RPATH_OPT="-Wl,-rpath,"
2905		;;
2906	(dragonfly*)
2907		LD_RPATH_OPT="-rpath "
2908		;;
2909	(netbsd*)
2910		LD_RPATH_OPT="-Wl,-rpath,"
2911		;;
2912	(osf*|mls+*)
2913		LD_RPATH_OPT="-rpath "
2914		;;
2915	(solaris2*)
2916		LD_RPATH_OPT="-R"
2917		;;
2918	(*)
2919		;;
2920	esac
2921	AC_MSG_RESULT($LD_RPATH_OPT)
2922
2923	case "x$LD_RPATH_OPT" in
2924	(x-R*)
2925		AC_MSG_CHECKING(if we need a space after rpath option)
2926		cf_save_LIBS="$LIBS"
2927		CF_ADD_LIBS(${LD_RPATH_OPT}$libdir)
2928		AC_TRY_LINK(, , cf_rpath_space=no, cf_rpath_space=yes)
2929		LIBS="$cf_save_LIBS"
2930		AC_MSG_RESULT($cf_rpath_space)
2931		test "$cf_rpath_space" = yes && LD_RPATH_OPT="$LD_RPATH_OPT "
2932		;;
2933	esac
2934fi
2935])dnl
2936dnl ---------------------------------------------------------------------------
2937dnl CF_LD_SEARCHPATH version: 2 updated: 2019/09/26 20:34:14
2938dnl ----------------
2939dnl Try to obtain the linker's search-path, for use in scripts.
2940dnl
2941dnl Ignore LD_LIBRARY_PATH, etc.
2942AC_DEFUN([CF_LD_SEARCHPATH],[
2943AC_CACHE_CHECK(for linker search path,cf_cv_ld_searchpath,[
2944
2945if test "$cross_compiling" != yes ; then
2946
2947# GNU binutils' ld does not involve permissions which may stop ldconfig.
2948cf_pathlist=`ld --verbose 2>/dev/null | grep SEARCH_DIR | sed -e 's,SEARCH_DIR[[("=]][[("=]]*,,g' -e 's/"[[)]];//gp' | sort -u`
2949
2950# The -NX options tell newer versions of Linux ldconfig to not attempt to
2951# update the cache, which makes it run faster.
2952test -z "$cf_pathlist" && \
2953	cf_pathlist=`ldconfig -NX -v 2>/dev/null | sed -e '/^[[ 	]]/d' -e 's/:$//' | sort -u`
2954
2955test -z "$cf_pathlist" &&
2956	cf_pathlist=`ldconfig -v 2>/dev/null | sed -n -e '/^[[ 	]]/d' -e 's/:$//p' | sort -u`
2957
2958# This works with OpenBSD 6.5, which lists only filenames
2959test -z "$cf_pathlist" &&
2960	cf_pathlist=`ldconfig -v 2>/dev/null | sed -n -e 's,^Adding \(.*\)/.*[$],\1,p' | sort -u`
2961
2962if test -z "$cf_pathlist"
2963then
2964	# dyld default path with MacOS
2965	if test -f /usr/bin/otool && test "x`uname -s`" = xDarwin
2966	then
2967		# do this to bypass check
2968		cf_cv_ld_searchpath='$HOME/lib'
2969		cf_pathlist="/usr/local/lib /lib /usr/lib"
2970	fi
2971fi
2972
2973if test -z "$cf_pathlist"
2974then
2975	# Solaris is hardcoded
2976	if test -d /opt/SUNWspro/lib
2977	then
2978		cf_pathlist="/opt/SUNWspro/lib /usr/ccs/lib /usr/lib"
2979	elif test -d /usr/ccs/lib
2980	then
2981		cf_pathlist="/usr/ccs/lib /usr/lib"
2982	fi
2983fi
2984
2985fi
2986
2987# If nothing else, assume it is conventional
2988test -z "$cf_pathlist" && cf_pathlist="/usr/lib /lib"
2989
2990# Finally, check that this is only directories
2991for cf_path in [$]0 $cf_pathlist
2992do
2993	if test -d "$cf_path"; then
2994		test -n "$cf_cv_ld_searchpath" && cf_cv_ld_searchpath="${cf_cv_ld_searchpath} "
2995		cf_cv_ld_searchpath="${cf_cv_ld_searchpath}${cf_path}"
2996	fi
2997done
2998
2999# Ensure that it is nonempty
3000test -z "$cf_cv_ld_searchpath" && cf_cv_ld_searchpath=/usr/lib
3001])
3002
3003LD_SEARCHPATH=`echo "$cf_cv_ld_searchpath"|sed -e 's/ /|/g'`
3004AC_SUBST(LD_SEARCHPATH)
3005])dnl
3006dnl ---------------------------------------------------------------------------
3007dnl CF_LIBRARY_PATH version: 11 updated: 2021/01/01 13:31:04
3008dnl ---------------
3009dnl Construct a search-list of directories for a nonstandard library-file
3010dnl
3011dnl Parameters
3012dnl	$1 = the variable to return as result
3013dnl	$2 = the package name
3014AC_DEFUN([CF_LIBRARY_PATH],
3015[
3016$1=
3017cf_library_path_list=""
3018if test -n "${LDFLAGS}${LIBS}" ; then
3019	for cf_library_path in $LDFLAGS $LIBS
3020	do
3021		case "$cf_library_path" in
3022		(-L*)
3023			cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'`
3024			CF_ADD_SUBDIR_PATH($1,$2,lib,$cf_library_path,NONE)
3025			cf_library_path_list="$cf_library_path_list [$]$1"
3026			;;
3027		esac
3028	done
3029fi
3030
3031CF_SUBDIR_PATH($1,$2,lib)
3032
3033$1="$cf_library_path_list [$]$1"
3034])dnl
3035dnl ---------------------------------------------------------------------------
3036dnl CF_LIBTOOL_VERSION version: 1 updated: 2013/04/06 18:03:09
3037dnl ------------------
3038AC_DEFUN([CF_LIBTOOL_VERSION],[
3039if test -n "$LIBTOOL" && test "$LIBTOOL" != none
3040then
3041	cf_cv_libtool_version=`$LIBTOOL --version 2>&1 | sed -e '/^$/d' |sed -e '2,$d' -e 's/([[^)]]*)//g' -e 's/^[[^1-9]]*//' -e 's/[[^0-9.]].*//'`
3042else
3043	cf_cv_libtool_version=
3044fi
3045test -z "$cf_cv_libtool_version" && unset cf_cv_libtool_version
3046])dnl
3047dnl ---------------------------------------------------------------------------
3048dnl CF_LIB_PREFIX version: 14 updated: 2021/01/01 13:31:04
3049dnl -------------
3050dnl Compute the library-prefix for the given host system
3051dnl $1 = variable to set
3052define([CF_LIB_PREFIX],
3053[
3054	case "$cf_cv_system_name" in
3055	(OS/2*|os2*)
3056		if test "$DFT_LWR_MODEL" = libtool; then
3057			LIB_PREFIX='lib'
3058		else
3059			LIB_PREFIX=''
3060		fi
3061		;;
3062	(*-msvc*)
3063		LIB_PREFIX=''
3064		;;
3065	(*)	LIB_PREFIX='lib'
3066		;;
3067	esac
3068ifelse($1,,,[$1=$LIB_PREFIX])
3069	AC_SUBST(LIB_PREFIX)
3070])dnl
3071dnl ---------------------------------------------------------------------------
3072dnl CF_LIB_SUFFIX version: 28 updated: 2021/01/01 16:53:59
3073dnl -------------
3074dnl Compute the library file-suffix from the given model name
3075dnl $1 = model name
3076dnl $2 = variable to set (the nominal library suffix)
3077dnl $3 = dependency variable to set (actual filename)
3078dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
3079AC_DEFUN([CF_LIB_SUFFIX],
3080[
3081	case X$1 in
3082	(Xlibtool)
3083		$2='.la'
3084		$3=[$]$2
3085		;;
3086	(Xdebug)
3087		case "$cf_cv_system_name" in
3088		(*-msvc*)
3089			$2='_g.lib'
3090			;;
3091		(*)
3092			$2='_g.a'
3093			;;
3094		esac
3095		$3=[$]$2
3096		;;
3097	(Xprofile)
3098		case "$cf_cv_system_name" in
3099		(*-msvc*)
3100			$2='_p.lib'
3101			;;
3102		(*)
3103			$2='_p.a'
3104			;;
3105		esac
3106		$3=[$]$2
3107		;;
3108	(Xshared)
3109		case "$cf_cv_system_name" in
3110		(aix[[5-7]]*)
3111			$2='.so'
3112			$3=[$]$2
3113			;;
3114		(*-msvc*)
3115			$2='.dll'
3116			$3='.dll.lib'
3117			;;
3118		(cygwin*|msys*|mingw*)
3119			$2='.dll'
3120			$3='.dll.a'
3121			;;
3122		(darwin*)
3123			$2='.dylib'
3124			$3=[$]$2
3125			;;
3126		(hpux*)
3127			case "$target" in
3128			(ia64*)
3129				$2='.so'
3130				$3=[$]$2
3131				;;
3132			(*)
3133				$2='.sl'
3134				$3=[$]$2
3135				;;
3136			esac
3137			;;
3138		(*)
3139			$2='.so'
3140			$3=[$]$2
3141			;;
3142		esac
3143		;;
3144	(*)
3145		case "$target" in
3146		(*-msvc*)
3147			$2='.lib'
3148			;;
3149		(*)
3150			$2='.a'
3151			;;
3152		esac
3153		$3=[$]$2
3154		;;
3155	esac
3156	if test -n "${LIB_SUFFIX}${EXTRA_SUFFIX}"
3157	then
3158		$2="${LIB_SUFFIX}${EXTRA_SUFFIX}[$]{$2}"
3159		$3="${LIB_SUFFIX}${EXTRA_SUFFIX}[$]{$3}"
3160	fi
3161])dnl
3162dnl ---------------------------------------------------------------------------
3163dnl CF_MAKEFLAGS version: 20 updated: 2021/01/03 19:29:49
3164dnl ------------
3165dnl Some 'make' programs support ${MAKEFLAGS}, some ${MFLAGS}, to pass 'make'
3166dnl options to lower-levels.  It's very useful for "make -n" -- if we have it.
3167dnl (GNU 'make' does both, something POSIX 'make', which happens to make the
3168dnl ${MAKEFLAGS} variable incompatible because it adds the assignments :-)
3169AC_DEFUN([CF_MAKEFLAGS],
3170[AC_REQUIRE([AC_PROG_FGREP])dnl
3171
3172AC_CACHE_CHECK(for makeflags variable, cf_cv_makeflags,[
3173	cf_cv_makeflags=''
3174	for cf_option in '-${MAKEFLAGS}' '${MFLAGS}'
3175	do
3176		cat >cf_makeflags.tmp <<CF_EOF
3177SHELL = $SHELL
3178all :
3179	@ echo '.$cf_option'
3180CF_EOF
3181		cf_result=`${MAKE:-make} -k -f cf_makeflags.tmp 2>/dev/null | ${FGREP-fgrep} -v "ing directory" | sed -e 's,[[ 	]]*$,,'`
3182		case "$cf_result" in
3183		(.*k|.*kw)
3184			cf_result="`${MAKE:-make} -k -f cf_makeflags.tmp CC=cc 2>/dev/null`"
3185			case "$cf_result" in
3186			(.*CC=*)	cf_cv_makeflags=
3187				;;
3188			(*)	cf_cv_makeflags=$cf_option
3189				;;
3190			esac
3191			break
3192			;;
3193		(.-)
3194			;;
3195		(*)
3196			CF_MSG_LOG(given option \"$cf_option\", no match \"$cf_result\")
3197			;;
3198		esac
3199	done
3200	rm -f cf_makeflags.tmp
3201])
3202
3203AC_SUBST(cf_cv_makeflags)
3204])dnl
3205dnl ---------------------------------------------------------------------------
3206dnl CF_MAKE_TAGS version: 6 updated: 2010/10/23 15:52:32
3207dnl ------------
3208dnl Generate tags/TAGS targets for makefiles.  Do not generate TAGS if we have
3209dnl a monocase filesystem.
3210AC_DEFUN([CF_MAKE_TAGS],[
3211AC_REQUIRE([CF_MIXEDCASE_FILENAMES])
3212
3213AC_CHECK_PROGS(CTAGS, exctags ctags)
3214AC_CHECK_PROGS(ETAGS, exetags etags)
3215
3216AC_CHECK_PROG(MAKE_LOWER_TAGS, ${CTAGS:-ctags}, yes, no)
3217
3218if test "$cf_cv_mixedcase" = yes ; then
3219	AC_CHECK_PROG(MAKE_UPPER_TAGS, ${ETAGS:-etags}, yes, no)
3220else
3221	MAKE_UPPER_TAGS=no
3222fi
3223
3224if test "$MAKE_UPPER_TAGS" = yes ; then
3225	MAKE_UPPER_TAGS=
3226else
3227	MAKE_UPPER_TAGS="#"
3228fi
3229
3230if test "$MAKE_LOWER_TAGS" = yes ; then
3231	MAKE_LOWER_TAGS=
3232else
3233	MAKE_LOWER_TAGS="#"
3234fi
3235
3236AC_SUBST(CTAGS)
3237AC_SUBST(ETAGS)
3238
3239AC_SUBST(MAKE_UPPER_TAGS)
3240AC_SUBST(MAKE_LOWER_TAGS)
3241])dnl
3242dnl ---------------------------------------------------------------------------
3243dnl CF_MATH_LIB version: 10 updated: 2020/12/31 18:40:20
3244dnl -----------
3245dnl Checks for libraries.  At least one UNIX system, Apple Macintosh
3246dnl Rhapsody 5.5, does not have -lm.  We cannot use the simpler
3247dnl AC_CHECK_LIB(m,sin), because that fails for C++.
3248AC_DEFUN([CF_MATH_LIB],
3249[
3250AC_CACHE_CHECK(if -lm needed for math functions,
3251	cf_cv_need_libm,[
3252	AC_TRY_LINK([
3253	#include <stdio.h>
3254	#include <stdlib.h>
3255	#include <math.h>
3256	],
3257	[double x = rand(); printf("result = %g\\n", ]ifelse([$2],,sin(x),$2)[)],
3258	[cf_cv_need_libm=no],
3259	[cf_cv_need_libm=yes])])
3260if test "$cf_cv_need_libm" = yes
3261then
3262ifelse($1,,[
3263	CF_ADD_LIB(m)
3264],[$1=-lm])
3265fi
3266])
3267dnl ---------------------------------------------------------------------------
3268dnl CF_MBSTATE_T version: 5 updated: 2020/03/19 20:23:48
3269dnl ------------
3270dnl Check if mbstate_t is declared, and if so, which header file.
3271dnl This (including wchar.h) is needed on Tru64 5.0 to declare mbstate_t,
3272dnl as well as include stdio.h to work around a misuse of varargs in wchar.h
3273AC_DEFUN([CF_MBSTATE_T],
3274[
3275AC_CACHE_CHECK(if we must include wchar.h to declare mbstate_t,cf_cv_mbstate_t,[
3276AC_TRY_COMPILE([
3277#include <stdlib.h>
3278#include <stdio.h>
3279#ifdef HAVE_LIBUTF8_H
3280#include <libutf8.h>
3281#endif],
3282	[mbstate_t state; (void)state],
3283	[cf_cv_mbstate_t=no],
3284	[AC_TRY_COMPILE([
3285#include <stdlib.h>
3286#include <stdio.h>
3287#include <wchar.h>
3288#ifdef HAVE_LIBUTF8_H
3289#include <libutf8.h>
3290#endif],
3291	[mbstate_t value; (void)value],
3292	[cf_cv_mbstate_t=yes],
3293	[cf_cv_mbstate_t=unknown])])])
3294
3295if test "$cf_cv_mbstate_t" = yes ; then
3296	AC_DEFINE(NEED_WCHAR_H,1,[Define to 1 if we must include wchar.h])
3297fi
3298
3299if test "$cf_cv_mbstate_t" != unknown ; then
3300	AC_DEFINE(HAVE_MBSTATE_T,1,[Define to 1 if mbstate_t is declared])
3301fi
3302])dnl
3303dnl ---------------------------------------------------------------------------
3304dnl CF_MERGE_EXTRA_CFLAGS version: 2 updated: 2021/01/02 09:31:20
3305dnl ---------------------
3306dnl CF_FIX_WARNINGS moves problematic flags into EXTRA_CFLAGS, but some scripts
3307dnl may depend on being able to override that variable at build-time.  Move it
3308dnl all back.
3309define([CF_MERGE_EXTRA_CFLAGS],[
3310if test "$GCC" = yes || test "$GXX" = yes
3311then
3312	CF_APPEND_TEXT(CFLAGS,$EXTRA_CFLAGS)
3313	EXTRA_CFLAGS=
3314fi
3315])
3316dnl ---------------------------------------------------------------------------
3317dnl CF_MIXEDCASE_FILENAMES version: 9 updated: 2021/01/01 16:53:59
3318dnl ----------------------
3319dnl Check if the file-system supports mixed-case filenames.  If we're able to
3320dnl create a lowercase name and see it as uppercase, it doesn't support that.
3321AC_DEFUN([CF_MIXEDCASE_FILENAMES],
3322[
3323AC_CACHE_CHECK(if filesystem supports mixed-case filenames,cf_cv_mixedcase,[
3324if test "$cross_compiling" = yes ; then
3325	case "$target_alias" in
3326	(*-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-msys*|*-mingw*|*-uwin*|darwin*)
3327		cf_cv_mixedcase=no
3328		;;
3329	(*)
3330		cf_cv_mixedcase=yes
3331		;;
3332	esac
3333else
3334	rm -f conftest CONFTEST
3335	echo test >conftest
3336	if test -f CONFTEST ; then
3337		cf_cv_mixedcase=no
3338	else
3339		cf_cv_mixedcase=yes
3340	fi
3341	rm -f conftest CONFTEST
3342fi
3343])
3344test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES,1,[Define to 1 if filesystem supports mixed-case filenames.])
3345])dnl
3346dnl ---------------------------------------------------------------------------
3347dnl CF_MSG_LOG version: 5 updated: 2010/10/23 15:52:32
3348dnl ----------
3349dnl Write a debug message to config.log, along with the line number in the
3350dnl configure script.
3351AC_DEFUN([CF_MSG_LOG],[
3352echo "${as_me:-configure}:__oline__: testing $* ..." 1>&AC_FD_CC
3353])dnl
3354dnl ---------------------------------------------------------------------------
3355dnl CF_NCURSES_CC_CHECK version: 5 updated: 2020/12/31 20:19:42
3356dnl -------------------
3357dnl Check if we can compile with ncurses' header file
3358dnl $1 is the cache variable to set
3359dnl $2 is the header-file to include
3360dnl $3 is the root name (ncurses or ncursesw)
3361AC_DEFUN([CF_NCURSES_CC_CHECK],[
3362	AC_TRY_COMPILE([
3363]ifelse($3,ncursesw,[
3364#define _XOPEN_SOURCE_EXTENDED
3365#undef  HAVE_LIBUTF8_H	/* in case we used CF_UTF8_LIB */
3366#define HAVE_LIBUTF8_H	/* to force ncurses' header file to use cchar_t */
3367])[
3368#include <$2>],[
3369#ifdef NCURSES_VERSION
3370]ifelse($3,ncursesw,[
3371#ifndef WACS_BSSB
3372	make an error
3373#endif
3374])[
3375printf("%s\\n", NCURSES_VERSION);
3376#else
3377#ifdef __NCURSES_H
3378printf("old\\n");
3379#else
3380	make an error
3381#endif
3382#endif
3383	]
3384	,[$1=$2]
3385	,[$1=no])
3386])dnl
3387dnl ---------------------------------------------------------------------------
3388dnl CF_NCURSES_CONFIG version: 26 updated: 2021/01/03 08:05:37
3389dnl -----------------
3390dnl Tie together the configure-script macros for ncurses, preferring these in
3391dnl order:
3392dnl a) ".pc" files for pkg-config, using $NCURSES_CONFIG_PKG
3393dnl b) the "-config" script from ncurses, using $NCURSES_CONFIG
3394dnl c) just plain libraries
3395dnl
3396dnl $1 is the root library name (default: "ncurses")
3397AC_DEFUN([CF_NCURSES_CONFIG],[
3398AC_REQUIRE([CF_PKG_CONFIG])
3399cf_ncuconfig_root=ifelse($1,,ncurses,$1)
3400cf_have_ncuconfig=no
3401
3402if test "x${PKG_CONFIG:=none}" != xnone; then
3403	AC_MSG_CHECKING(pkg-config for $cf_ncuconfig_root)
3404	if "$PKG_CONFIG" --exists $cf_ncuconfig_root ; then
3405		AC_MSG_RESULT(yes)
3406
3407		AC_MSG_CHECKING(if the $cf_ncuconfig_root package files work)
3408		cf_have_ncuconfig=unknown
3409
3410		cf_save_CFLAGS="$CFLAGS"
3411		cf_save_CPPFLAGS="$CPPFLAGS"
3412		cf_save_LIBS="$LIBS"
3413
3414		cf_pkg_cflags="`$PKG_CONFIG --cflags $cf_ncuconfig_root`"
3415		cf_pkg_libs="`$PKG_CONFIG --libs $cf_ncuconfig_root`"
3416
3417		# while -W for passing linker flags is prevalent, it is not "standard".
3418		# At least one wrapper for c89/c99 (in Apple's xcode) has its own
3419		# incompatible _and_ non-standard -W option which gives an error.  Work
3420		# around that pitfall.
3421		case "x${CC}@@${cf_pkg_libs}@${cf_pkg_cflags}" in
3422		(x*c[[89]]9@@*-W*)
3423			CF_ADD_CFLAGS($cf_pkg_cflags)
3424			CF_ADD_LIBS($cf_pkg_libs)
3425
3426			AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
3427				[initscr(); mousemask(0,0); tigetstr((char *)0);],
3428				[AC_TRY_RUN([#include <${cf_cv_ncurses_header:-curses.h}>
3429					int main(void)
3430					{ char *xx = curses_version(); return (xx == 0); }],
3431					[cf_test_ncuconfig=yes],
3432					[cf_test_ncuconfig=no],
3433					[cf_test_ncuconfig=maybe])],
3434				[cf_test_ncuconfig=no])
3435
3436			CFLAGS="$cf_save_CFLAGS"
3437			CPPFLAGS="$cf_save_CPPFLAGS"
3438			LIBS="$cf_save_LIBS"
3439
3440			if test "x$cf_test_ncuconfig" != xyes; then
3441				cf_temp=`echo "x$cf_pkg_cflags" | sed -e s/^x// -e 's/-W[[^ 	]]*//g'`
3442				cf_pkg_cflags="$cf_temp"
3443				cf_temp=`echo "x$cf_pkg_libs" | sed -e s/^x// -e 's/-W[[^ 	]]*//g'`
3444				cf_pkg_libs="$cf_temp"
3445			fi
3446			;;
3447		esac
3448
3449		CF_ADD_CFLAGS($cf_pkg_cflags)
3450		CF_ADD_LIBS($cf_pkg_libs)
3451
3452		AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
3453			[initscr(); mousemask(0,0); tigetstr((char *)0);],
3454			[AC_TRY_RUN([#include <${cf_cv_ncurses_header:-curses.h}>
3455				int main(void)
3456				{ char *xx = curses_version(); return (xx == 0); }],
3457				[cf_have_ncuconfig=yes],
3458				[cf_have_ncuconfig=no],
3459				[cf_have_ncuconfig=maybe])],
3460			[cf_have_ncuconfig=no])
3461		AC_MSG_RESULT($cf_have_ncuconfig)
3462		test "$cf_have_ncuconfig" = maybe && cf_have_ncuconfig=yes
3463		if test "$cf_have_ncuconfig" != "yes"
3464		then
3465			CPPFLAGS="$cf_save_CPPFLAGS"
3466			LIBS="$cf_save_LIBS"
3467			NCURSES_CONFIG_PKG=none
3468		else
3469			AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
3470			NCURSES_CONFIG_PKG=$cf_ncuconfig_root
3471			CF_TERM_HEADER
3472		fi
3473
3474	else
3475		AC_MSG_RESULT(no)
3476		NCURSES_CONFIG_PKG=none
3477	fi
3478else
3479	NCURSES_CONFIG_PKG=none
3480fi
3481
3482if test "x$cf_have_ncuconfig" = "xno"; then
3483	cf_ncurses_config="${cf_ncuconfig_root}${NCURSES_CONFIG_SUFFIX}-config"; echo "Looking for ${cf_ncurses_config}"
3484
3485	CF_ACVERSION_CHECK(2.52,
3486		[AC_CHECK_TOOLS(NCURSES_CONFIG, ${cf_ncurses_config} ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config, none)],
3487		[AC_PATH_PROGS(NCURSES_CONFIG,  ${cf_ncurses_config} ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config, none)])
3488
3489	if test "$NCURSES_CONFIG" != none ; then
3490
3491		CF_ADD_CFLAGS(`$NCURSES_CONFIG --cflags`)
3492		CF_ADD_LIBS(`$NCURSES_CONFIG --libs`)
3493
3494		# even with config script, some packages use no-override for curses.h
3495		CF_CURSES_HEADER(ifelse($1,,ncurses,$1))
3496
3497		dnl like CF_NCURSES_CPPFLAGS
3498		AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
3499
3500		dnl like CF_NCURSES_LIBS
3501		CF_UPPER(cf_nculib_ROOT,HAVE_LIB$cf_ncuconfig_root)
3502		AC_DEFINE_UNQUOTED($cf_nculib_ROOT)
3503
3504		dnl like CF_NCURSES_VERSION
3505		cf_cv_ncurses_version="`$NCURSES_CONFIG --version`"
3506
3507	else
3508
3509		CF_NCURSES_CPPFLAGS(ifelse($1,,ncurses,$1))
3510		CF_NCURSES_LIBS(ifelse($1,,ncurses,$1))
3511
3512	fi
3513else
3514	NCURSES_CONFIG=none
3515fi
3516])dnl
3517dnl ---------------------------------------------------------------------------
3518dnl CF_NCURSES_CPPFLAGS version: 22 updated: 2021/01/02 09:31:20
3519dnl -------------------
3520dnl Look for the SVr4 curses clone 'ncurses' in the standard places, adjusting
3521dnl the CPPFLAGS variable so we can include its header.
3522dnl
3523dnl The header files may be installed as either curses.h, or ncurses.h (would
3524dnl be obsolete, except that some packagers prefer this name to distinguish it
3525dnl from a "native" curses implementation).  If not installed for overwrite,
3526dnl the curses.h file would be in an ncurses subdirectory (e.g.,
3527dnl /usr/include/ncurses), but someone may have installed overwriting the
3528dnl vendor's curses.  Only very old versions (pre-1.9.2d, the first autoconf'd
3529dnl version) of ncurses don't define either __NCURSES_H or NCURSES_VERSION in
3530dnl the header.
3531dnl
3532dnl If the installer has set $CFLAGS or $CPPFLAGS so that the ncurses header
3533dnl is already in the include-path, don't even bother with this, since we cannot
3534dnl easily determine which file it is.  In this case, it has to be <curses.h>.
3535dnl
3536dnl The optional parameter gives the root name of the library, in case it is
3537dnl not installed as the default curses library.  That is how the
3538dnl wide-character version of ncurses is installed.
3539AC_DEFUN([CF_NCURSES_CPPFLAGS],
3540[AC_REQUIRE([CF_WITH_CURSES_DIR])
3541
3542AC_PROVIDE([CF_CURSES_CPPFLAGS])dnl
3543cf_ncuhdr_root=ifelse($1,,ncurses,$1)
3544
3545test -n "$cf_cv_curses_dir" && \
3546test "$cf_cv_curses_dir" != "no" && { \
3547  CF_ADD_INCDIR($cf_cv_curses_dir/include/$cf_ncuhdr_root)
3548}
3549
3550AC_CACHE_CHECK(for $cf_ncuhdr_root header in include-path, cf_cv_ncurses_h,[
3551	cf_header_list="$cf_ncuhdr_root/curses.h $cf_ncuhdr_root/ncurses.h"
3552	{ test "$cf_ncuhdr_root" = ncurses || test "$cf_ncuhdr_root" = ncursesw; } && cf_header_list="$cf_header_list curses.h ncurses.h"
3553	for cf_header in $cf_header_list
3554	do
3555		CF_NCURSES_CC_CHECK(cf_cv_ncurses_h,$cf_header,$1)
3556		test "$cf_cv_ncurses_h" != no && break
3557	done
3558])
3559
3560CF_NCURSES_HEADER
3561CF_TERM_HEADER
3562
3563# some applications need this, but should check for NCURSES_VERSION
3564AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
3565
3566CF_NCURSES_VERSION
3567])dnl
3568dnl ---------------------------------------------------------------------------
3569dnl CF_NCURSES_HEADER version: 7 updated: 2021/01/04 19:33:05
3570dnl -----------------
3571dnl Find a "curses" header file, e.g,. "curses.h", or one of the more common
3572dnl variations of ncurses' installs.
3573dnl
3574dnl See also CF_CURSES_HEADER, which sets the same cache variable.
3575AC_DEFUN([CF_NCURSES_HEADER],[
3576
3577if test "$cf_cv_ncurses_h" != no ; then
3578	cf_cv_ncurses_header=$cf_cv_ncurses_h
3579else
3580
3581AC_CACHE_CHECK(for $cf_ncuhdr_root include-path, cf_cv_ncurses_h2,[
3582	test -n "$verbose" && echo
3583	CF_HEADER_PATH(cf_search,$cf_ncuhdr_root)
3584	test -n "$verbose" && echo "search path $cf_search"
3585	cf_save2_CPPFLAGS="$CPPFLAGS"
3586	for cf_incdir in $cf_search
3587	do
3588		CF_ADD_INCDIR($cf_incdir)
3589		for cf_header in \
3590			ncurses.h \
3591			curses.h
3592		do
3593			CF_NCURSES_CC_CHECK(cf_cv_ncurses_h2,$cf_header,$1)
3594			if test "$cf_cv_ncurses_h2" != no ; then
3595				cf_cv_ncurses_h2=$cf_incdir/$cf_header
3596				test -n "$verbose" && echo $ECHO_N "	... found $ECHO_C" 1>&AC_FD_MSG
3597				break
3598			fi
3599			test -n "$verbose" && echo "	... tested $cf_incdir/$cf_header" 1>&AC_FD_MSG
3600		done
3601		CPPFLAGS="$cf_save2_CPPFLAGS"
3602		test "$cf_cv_ncurses_h2" != no && break
3603	done
3604	test "$cf_cv_ncurses_h2" = no && AC_MSG_ERROR(not found)
3605	])
3606
3607	CF_DIRNAME(cf_1st_incdir,$cf_cv_ncurses_h2)
3608	cf_cv_ncurses_header="`basename "$cf_cv_ncurses_h2"`"
3609	if test "`basename "$cf_1st_incdir"`" = "$cf_ncuhdr_root" ; then
3610		cf_cv_ncurses_header="$cf_ncuhdr_root/$cf_cv_ncurses_header"
3611	fi
3612	CF_ADD_INCDIR($cf_1st_incdir)
3613
3614fi
3615
3616# Set definitions to allow ifdef'ing for ncurses.h
3617
3618case "$cf_cv_ncurses_header" in
3619(*ncurses.h)
3620	AC_DEFINE(HAVE_NCURSES_H,1,[Define to 1 if we have ncurses.h])
3621	;;
3622esac
3623
3624case "$cf_cv_ncurses_header" in
3625(ncurses/curses.h|ncurses/ncurses.h)
3626	AC_DEFINE(HAVE_NCURSES_NCURSES_H,1,[Define to 1 if we have ncurses/ncurses.h])
3627	;;
3628(ncursesw/curses.h|ncursesw/ncurses.h)
3629	AC_DEFINE(HAVE_NCURSESW_NCURSES_H,1,[Define to 1 if we have ncursesw/ncurses.h])
3630	;;
3631esac
3632
3633])dnl
3634dnl ---------------------------------------------------------------------------
3635dnl CF_NCURSES_LIBS version: 20 updated: 2021/01/03 08:05:37
3636dnl ---------------
3637dnl Look for the ncurses library.  This is a little complicated on Linux,
3638dnl because it may be linked with the gpm (general purpose mouse) library.
3639dnl Some distributions have gpm linked with (bsd) curses, which makes it
3640dnl unusable with ncurses.  However, we don't want to link with gpm unless
3641dnl ncurses has a dependency, since gpm is normally set up as a shared library,
3642dnl and the linker will record a dependency.
3643dnl
3644dnl The optional parameter gives the root name of the library, in case it is
3645dnl not installed as the default curses library.  That is how the
3646dnl wide-character version of ncurses is installed.
3647AC_DEFUN([CF_NCURSES_LIBS],
3648[AC_REQUIRE([CF_NCURSES_CPPFLAGS])
3649
3650cf_nculib_root=ifelse($1,,ncurses,$1)
3651	# This works, except for the special case where we find gpm, but
3652	# ncurses is in a nonstandard location via $LIBS, and we really want
3653	# to link gpm.
3654cf_ncurses_LIBS=""
3655cf_ncurses_SAVE="$LIBS"
3656AC_CHECK_LIB(gpm,Gpm_Open,
3657	[AC_CHECK_LIB(gpm,initscr,
3658		[LIBS="$cf_ncurses_SAVE"],
3659		[cf_ncurses_LIBS="-lgpm"])])
3660
3661case "$host_os" in
3662(freebsd*)
3663	# This is only necessary if you are linking against an obsolete
3664	# version of ncurses (but it should do no harm, since it's static).
3665	if test "$cf_nculib_root" = ncurses ; then
3666		AC_CHECK_LIB(mytinfo,tgoto,[cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"])
3667	fi
3668	;;
3669esac
3670
3671CF_ADD_LIBS($cf_ncurses_LIBS)
3672
3673if test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no"
3674then
3675	CF_ADD_LIBS(-l$cf_nculib_root)
3676else
3677	CF_FIND_LIBRARY($cf_nculib_root,$cf_nculib_root,
3678		[#include <${cf_cv_ncurses_header:-curses.h}>],
3679		[initscr()],
3680		initscr)
3681fi
3682
3683if test -n "$cf_ncurses_LIBS" ; then
3684	AC_MSG_CHECKING(if we can link $cf_nculib_root without $cf_ncurses_LIBS)
3685	cf_ncurses_SAVE="$LIBS"
3686	for p in $cf_ncurses_LIBS ; do
3687		q=`echo "$LIBS" | sed -e "s%$p %%" -e "s%$p$%%"`
3688		if test "$q" != "$LIBS" ; then
3689			LIBS="$q"
3690		fi
3691	done
3692	AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
3693		[initscr(); mousemask(0,0); tigetstr((char *)0);],
3694		[AC_MSG_RESULT(yes)],
3695		[AC_MSG_RESULT(no)
3696		 LIBS="$cf_ncurses_SAVE"])
3697fi
3698
3699CF_UPPER(cf_nculib_ROOT,HAVE_LIB$cf_nculib_root)
3700AC_DEFINE_UNQUOTED($cf_nculib_ROOT)
3701])dnl
3702dnl ---------------------------------------------------------------------------
3703dnl CF_NCURSES_PTHREADS version: 2 updated: 2016/04/22 05:07:41
3704dnl -------------------
3705dnl Use this followup check to ensure that we link with pthreads if ncurses
3706dnl uses it.
3707AC_DEFUN([CF_NCURSES_PTHREADS],[
3708: ${cf_nculib_root:=ifelse($1,,ncurses,$1)}
3709AC_CHECK_LIB($cf_nculib_root,_nc_init_pthreads,
3710	cf_cv_ncurses_pthreads=yes,
3711	cf_cv_ncurses_pthreads=no)
3712if test "$cf_cv_ncurses_pthreads" = yes
3713then
3714	CF_ADD_LIBS(-lpthread)
3715fi
3716])dnl
3717dnl ---------------------------------------------------------------------------
3718dnl CF_NCURSES_VERSION version: 16 updated: 2020/12/31 20:19:42
3719dnl ------------------
3720dnl Check for the version of ncurses, to aid in reporting bugs, etc.
3721dnl Call CF_CURSES_CPPFLAGS first, or CF_NCURSES_CPPFLAGS.  We don't use
3722dnl AC_REQUIRE since that does not work with the shell's if/then/else/fi.
3723AC_DEFUN([CF_NCURSES_VERSION],
3724[
3725AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
3726AC_CACHE_CHECK(for ncurses version, cf_cv_ncurses_version,[
3727	cf_cv_ncurses_version=no
3728	cf_tempfile=out$$
3729	rm -f "$cf_tempfile"
3730	AC_TRY_RUN([
3731#include <${cf_cv_ncurses_header:-curses.h}>
3732#include <stdio.h>
3733int main(void)
3734{
3735	FILE *fp = fopen("$cf_tempfile", "w");
3736#ifdef NCURSES_VERSION
3737# ifdef NCURSES_VERSION_PATCH
3738	fprintf(fp, "%s.%d\\n", NCURSES_VERSION, NCURSES_VERSION_PATCH);
3739# else
3740	fprintf(fp, "%s\\n", NCURSES_VERSION);
3741# endif
3742#else
3743# ifdef __NCURSES_H
3744	fprintf(fp, "old\\n");
3745# else
3746	make an error
3747# endif
3748#endif
3749	${cf_cv_main_return:-return}(0);
3750}],[
3751	cf_cv_ncurses_version=`cat $cf_tempfile`],,[
3752
3753	# This will not work if the preprocessor splits the line after the
3754	# Autoconf token.  The 'unproto' program does that.
3755	cat > "conftest.$ac_ext" <<EOF
3756#include <${cf_cv_ncurses_header:-curses.h}>
3757#undef Autoconf
3758#ifdef NCURSES_VERSION
3759Autoconf NCURSES_VERSION
3760#else
3761#ifdef __NCURSES_H
3762Autoconf "old"
3763#endif
3764;
3765#endif
3766EOF
3767	cf_try="$ac_cpp conftest.$ac_ext 2>&AC_FD_CC | grep '^Autoconf ' >conftest.out"
3768	AC_TRY_EVAL(cf_try)
3769	if test -f conftest.out ; then
3770		cf_out=`sed -e 's%^Autoconf %%' -e 's%^[[^"]]*"%%' -e 's%".*%%' conftest.out`
3771		test -n "$cf_out" && cf_cv_ncurses_version="$cf_out"
3772		rm -f conftest.out
3773	fi
3774])
3775	rm -f "$cf_tempfile"
3776])
3777test "$cf_cv_ncurses_version" = no || AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
3778])dnl
3779dnl ---------------------------------------------------------------------------
3780dnl CF_NL_LANGINFO_1STDAY version: 3 updated: 2020/03/19 20:23:48
3781dnl ---------------------
3782dnl glibc locale support has runtime extensions which might be implemented in
3783dnl other systems.
3784AC_DEFUN([CF_NL_LANGINFO_1STDAY],[
3785AC_CACHE_CHECK(if runtime has nl_langinfo support for first weekday,
3786	cf_nl_langinfo_1stday,[
3787	AC_TRY_COMPILE([
3788#include <langinfo.h>
3789#include <locale.h>
3790],[
3791	int first_weekday = nl_langinfo (_NL_TIME_FIRST_WEEKDAY)[0];
3792	long week_1stday_l = (long) nl_langinfo (_NL_TIME_WEEK_1STDAY);
3793	(void) first_weekday;
3794	(void) week_1stday_l;
3795],[cf_nl_langinfo_1stday=yes
3796],[cf_nl_langinfo_1stday=no
3797])
3798])
3799test "x$cf_nl_langinfo_1stday" = xyes && AC_DEFINE(HAVE_NL_LANGINFO_1STDAY,1,[Define to 1 if runtime has nl_langinfo support for first weekday])
3800])dnl
3801dnl ---------------------------------------------------------------------------
3802dnl CF_NO_LEAKS_OPTION version: 8 updated: 2021/01/05 20:05:09
3803dnl ------------------
3804dnl see CF_WITH_NO_LEAKS
3805AC_DEFUN([CF_NO_LEAKS_OPTION],[
3806AC_MSG_CHECKING(if you want to use $1 for testing)
3807AC_ARG_WITH($1,
3808	[$2],
3809	[AC_DEFINE_UNQUOTED($3,1,"Define to 1 if you want to use $1 for testing.")ifelse([$4],,[
3810	 $4
3811])
3812	: "${with_cflags:=-g}"
3813	: "${enable_leaks:=no}"
3814	 with_$1=yes],
3815	[with_$1=])
3816AC_MSG_RESULT(${with_$1:-no})
3817
3818case ".$with_cflags" in
3819(.*-g*)
3820	case .$CFLAGS in
3821	(.*-g*)
3822		;;
3823	(*)
3824		CF_ADD_CFLAGS([-g])
3825		;;
3826	esac
3827	;;
3828esac
3829])dnl
3830dnl ---------------------------------------------------------------------------
3831dnl CF_NUMBER_SYNTAX version: 2 updated: 2015/04/17 21:13:04
3832dnl ----------------
3833dnl Check if the given variable is a number.  If not, report an error.
3834dnl $1 is the variable
3835dnl $2 is the message
3836AC_DEFUN([CF_NUMBER_SYNTAX],[
3837if test -n "$1" ; then
3838  case $1 in
3839  ([[0-9]]*)
3840 	;;
3841  (*)
3842	AC_MSG_ERROR($2 is not a number: $1)
3843 	;;
3844  esac
3845else
3846  AC_MSG_ERROR($2 value is empty)
3847fi
3848])dnl
3849dnl ---------------------------------------------------------------------------
3850dnl CF_OUR_MESSAGES version: 8 updated: 2021/01/02 09:31:20
3851dnl ---------------
3852dnl Check if we use the messages included with this program
3853dnl
3854dnl $1 specifies either Makefile or makefile, defaulting to the former.
3855dnl
3856dnl Sets variables which can be used to substitute in makefiles:
3857dnl	MSG_DIR_MAKE - to make ./po directory
3858dnl	SUB_MAKEFILE - makefile in ./po directory (see CF_BUNDLED_INTL)
3859dnl
3860AC_DEFUN([CF_OUR_MESSAGES],
3861[
3862cf_makefile=ifelse($1,,Makefile,$1)
3863
3864use_our_messages=no
3865if test "$USE_NLS" = yes ; then
3866if test -d "$srcdir/po" ; then
3867AC_MSG_CHECKING(if we should use included message-library)
3868	AC_ARG_ENABLE(included-msgs,
3869	[  --disable-included-msgs use included messages, for i18n support],
3870	[use_our_messages=$enableval],
3871	[use_our_messages=yes])
3872fi
3873AC_MSG_RESULT($use_our_messages)
3874fi
3875
3876MSG_DIR_MAKE="#"
3877if test "$use_our_messages" = yes
3878then
3879	SUB_MAKEFILE="$SUB_MAKEFILE po/$cf_makefile.in:$srcdir/po/$cf_makefile.inn"
3880	MSG_DIR_MAKE=
3881fi
3882
3883AC_SUBST(MSG_DIR_MAKE)
3884AC_SUBST(SUB_MAKEFILE)
3885])dnl
3886dnl ---------------------------------------------------------------------------
3887dnl CF_PATHSEP version: 8 updated: 2021/01/01 13:31:04
3888dnl ----------
3889dnl Provide a value for the $PATH and similar separator (or amend the value
3890dnl as provided in autoconf 2.5x).
3891AC_DEFUN([CF_PATHSEP],
3892[
3893	AC_MSG_CHECKING(for PATH separator)
3894	case "$cf_cv_system_name" in
3895	(os2*)	PATH_SEPARATOR=';'  ;;
3896	(*)	${PATH_SEPARATOR:=':'}  ;;
3897	esac
3898ifelse([$1],,,[$1=$PATH_SEPARATOR])
3899	AC_SUBST(PATH_SEPARATOR)
3900	AC_MSG_RESULT($PATH_SEPARATOR)
3901])dnl
3902dnl ---------------------------------------------------------------------------
3903dnl CF_PATH_SYNTAX version: 18 updated: 2020/12/31 18:40:20
3904dnl --------------
3905dnl Check the argument to see that it looks like a pathname.  Rewrite it if it
3906dnl begins with one of the prefix/exec_prefix variables, and then again if the
3907dnl result begins with 'NONE'.  This is necessary to work around autoconf's
3908dnl delayed evaluation of those symbols.
3909AC_DEFUN([CF_PATH_SYNTAX],[
3910if test "x$prefix" != xNONE; then
3911	cf_path_syntax="$prefix"
3912else
3913	cf_path_syntax="$ac_default_prefix"
3914fi
3915
3916case ".[$]$1" in
3917(.\[$]\(*\)*|.\'*\'*)
3918	;;
3919(..|./*|.\\*)
3920	;;
3921(.[[a-zA-Z]]:[[\\/]]*) # OS/2 EMX
3922	;;
3923(.\[$]\{*prefix\}*|.\[$]\{*dir\}*)
3924	eval $1="[$]$1"
3925	case ".[$]$1" in
3926	(.NONE/*)
3927		$1=`echo "[$]$1" | sed -e s%NONE%$cf_path_syntax%`
3928		;;
3929	esac
3930	;;
3931(.no|.NONE/*)
3932	$1=`echo "[$]$1" | sed -e s%NONE%$cf_path_syntax%`
3933	;;
3934(*)
3935	ifelse([$2],,[AC_MSG_ERROR([expected a pathname, not \"[$]$1\"])],$2)
3936	;;
3937esac
3938])dnl
3939dnl ---------------------------------------------------------------------------
3940dnl CF_PDCURSES_X11 version: 15 updated: 2021/01/02 09:31:20
3941dnl ---------------
3942dnl Configure for PDCurses' X11 library
3943AC_DEFUN([CF_PDCURSES_X11],[
3944AC_REQUIRE([CF_X_ATHENA])
3945
3946CF_ACVERSION_CHECK(2.52,
3947	[AC_CHECK_TOOLS(XCURSES_CONFIG, xcurses-config, none)],
3948	[AC_PATH_PROGS(XCURSES_CONFIG, xcurses-config, none)])
3949
3950if test "$XCURSES_CONFIG" != none ; then
3951
3952CF_ADD_CFLAGS(`$XCURSES_CONFIG --cflags`)
3953CF_ADD_LIBS(`$XCURSES_CONFIG --libs`)
3954
3955cf_cv_lib_XCurses=yes
3956
3957else
3958
3959LDFLAGS="$LDFLAGS $X_LIBS"
3960CF_CHECK_CFLAGS($X_CFLAGS)
3961AC_CHECK_LIB(X11,XOpenDisplay,
3962	[CF_ADD_LIBS(-lX11)],,
3963	[$X_PRE_LIBS $LIBS $X_EXTRA_LIBS])
3964AC_CACHE_CHECK(for XCurses library,cf_cv_lib_XCurses,[
3965CF_ADD_LIBS(-lXCurses)
3966AC_TRY_LINK([
3967#include <xcurses.h>
3968char *XCursesProgramName = "test";
3969],[XCursesExit();],
3970[cf_cv_lib_XCurses=yes],
3971[cf_cv_lib_XCurses=no])
3972])
3973
3974fi
3975
3976if test "$cf_cv_lib_XCurses" = yes ; then
3977	AC_DEFINE(UNIX,1,[Define to 1 if using PDCurses on Unix])
3978	AC_DEFINE(XCURSES,1,[Define to 1 if using PDCurses on Unix])
3979	AC_CHECK_HEADER(xcurses.h, AC_DEFINE(HAVE_XCURSES,1,[Define to 1 if using PDCurses on Unix]))
3980else
3981	AC_MSG_ERROR(Cannot link with XCurses)
3982fi
3983])dnl
3984dnl ---------------------------------------------------------------------------
3985dnl CF_PKG_CONFIG version: 11 updated: 2021/01/01 13:31:04
3986dnl -------------
3987dnl Check for the package-config program, unless disabled by command-line.
3988AC_DEFUN([CF_PKG_CONFIG],
3989[
3990AC_MSG_CHECKING(if you want to use pkg-config)
3991AC_ARG_WITH(pkg-config,
3992	[  --with-pkg-config{=path} enable/disable use of pkg-config],
3993	[cf_pkg_config=$withval],
3994	[cf_pkg_config=yes])
3995AC_MSG_RESULT($cf_pkg_config)
3996
3997case "$cf_pkg_config" in
3998(no)
3999	PKG_CONFIG=none
4000	;;
4001(yes)
4002	CF_ACVERSION_CHECK(2.52,
4003		[AC_PATH_TOOL(PKG_CONFIG, pkg-config, none)],
4004		[AC_PATH_PROG(PKG_CONFIG, pkg-config, none)])
4005	;;
4006(*)
4007	PKG_CONFIG=$withval
4008	;;
4009esac
4010
4011test -z "$PKG_CONFIG" && PKG_CONFIG=none
4012if test "$PKG_CONFIG" != none ; then
4013	CF_PATH_SYNTAX(PKG_CONFIG)
4014elif test "x$cf_pkg_config" != xno ; then
4015	AC_MSG_WARN(pkg-config is not installed)
4016fi
4017
4018AC_SUBST(PKG_CONFIG)
4019])dnl
4020dnl ---------------------------------------------------------------------------
4021dnl CF_POSIX_C_SOURCE version: 11 updated: 2018/12/31 20:46:17
4022dnl -----------------
4023dnl Define _POSIX_C_SOURCE to the given level, and _POSIX_SOURCE if needed.
4024dnl
4025dnl	POSIX.1-1990				_POSIX_SOURCE
4026dnl	POSIX.1-1990 and			_POSIX_SOURCE and
4027dnl		POSIX.2-1992 C-Language			_POSIX_C_SOURCE=2
4028dnl		Bindings Option
4029dnl	POSIX.1b-1993				_POSIX_C_SOURCE=199309L
4030dnl	POSIX.1c-1996				_POSIX_C_SOURCE=199506L
4031dnl	X/Open 2000				_POSIX_C_SOURCE=200112L
4032dnl
4033dnl Parameters:
4034dnl	$1 is the nominal value for _POSIX_C_SOURCE
4035AC_DEFUN([CF_POSIX_C_SOURCE],
4036[AC_REQUIRE([CF_POSIX_VISIBLE])dnl
4037
4038if test "$cf_cv_posix_visible" = no; then
4039
4040cf_POSIX_C_SOURCE=ifelse([$1],,199506L,[$1])
4041
4042cf_save_CFLAGS="$CFLAGS"
4043cf_save_CPPFLAGS="$CPPFLAGS"
4044
4045CF_REMOVE_DEFINE(cf_trim_CFLAGS,$cf_save_CFLAGS,_POSIX_C_SOURCE)
4046CF_REMOVE_DEFINE(cf_trim_CPPFLAGS,$cf_save_CPPFLAGS,_POSIX_C_SOURCE)
4047
4048AC_CACHE_CHECK(if we should define _POSIX_C_SOURCE,cf_cv_posix_c_source,[
4049	CF_MSG_LOG(if the symbol is already defined go no further)
4050	AC_TRY_COMPILE([#include <sys/types.h>],[
4051#ifndef _POSIX_C_SOURCE
4052make an error
4053#endif],
4054	[cf_cv_posix_c_source=no],
4055	[cf_want_posix_source=no
4056	 case .$cf_POSIX_C_SOURCE in
4057	 (.[[12]]??*)
4058		cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
4059		;;
4060	 (.2)
4061		cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
4062		cf_want_posix_source=yes
4063		;;
4064	 (.*)
4065		cf_want_posix_source=yes
4066		;;
4067	 esac
4068	 if test "$cf_want_posix_source" = yes ; then
4069		AC_TRY_COMPILE([#include <sys/types.h>],[
4070#ifdef _POSIX_SOURCE
4071make an error
4072#endif],[],
4073		cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE")
4074	 fi
4075	 CF_MSG_LOG(ifdef from value $cf_POSIX_C_SOURCE)
4076	 CFLAGS="$cf_trim_CFLAGS"
4077	 CPPFLAGS="$cf_trim_CPPFLAGS"
4078	 CF_APPEND_TEXT(CPPFLAGS,$cf_cv_posix_c_source)
4079	 CF_MSG_LOG(if the second compile does not leave our definition intact error)
4080	 AC_TRY_COMPILE([#include <sys/types.h>],[
4081#ifndef _POSIX_C_SOURCE
4082make an error
4083#endif],,
4084	 [cf_cv_posix_c_source=no])
4085	 CFLAGS="$cf_save_CFLAGS"
4086	 CPPFLAGS="$cf_save_CPPFLAGS"
4087	])
4088])
4089
4090if test "$cf_cv_posix_c_source" != no ; then
4091	CFLAGS="$cf_trim_CFLAGS"
4092	CPPFLAGS="$cf_trim_CPPFLAGS"
4093	CF_ADD_CFLAGS($cf_cv_posix_c_source)
4094fi
4095
4096fi # cf_cv_posix_visible
4097
4098])dnl
4099dnl ---------------------------------------------------------------------------
4100dnl CF_POSIX_VISIBLE version: 1 updated: 2018/12/31 20:46:17
4101dnl ----------------
4102dnl POSIX documents test-macros which an application may set before any system
4103dnl headers are included to make features available.
4104dnl
4105dnl Some BSD platforms (originally FreeBSD, but copied by a few others)
4106dnl diverged from POSIX in 2002 by setting symbols which make all of the most
4107dnl recent features visible in the system header files unless the application
4108dnl overrides the corresponding test-macros.  Doing that introduces portability
4109dnl problems.
4110dnl
4111dnl This macro makes a special check for the symbols used for this, to avoid a
4112dnl conflicting definition.
4113AC_DEFUN([CF_POSIX_VISIBLE],
4114[
4115AC_CACHE_CHECK(if the POSIX test-macros are already defined,cf_cv_posix_visible,[
4116AC_TRY_COMPILE([#include <stdio.h>],[
4117#if defined(__POSIX_VISIBLE) && ((__POSIX_VISIBLE - 0L) > 0) \
4118	&& defined(__XSI_VISIBLE) && ((__XSI_VISIBLE - 0L) > 0) \
4119	&& defined(__BSD_VISIBLE) && ((__BSD_VISIBLE - 0L) > 0) \
4120	&& defined(__ISO_C_VISIBLE) && ((__ISO_C_VISIBLE - 0L) > 0)
4121#error conflicting symbols found
4122#endif
4123],[cf_cv_posix_visible=no],[cf_cv_posix_visible=yes])
4124])
4125])dnl
4126dnl ---------------------------------------------------------------------------
4127dnl CF_PROG_AR version: 1 updated: 2009/01/01 20:15:22
4128dnl ----------
4129dnl Check for archiver "ar".
4130AC_DEFUN([CF_PROG_AR],[
4131AC_CHECK_TOOL(AR, ar, ar)
4132])
4133dnl ---------------------------------------------------------------------------
4134dnl CF_PROG_CC version: 5 updated: 2019/12/31 08:53:54
4135dnl ----------
4136dnl standard check for CC, plus followup sanity checks
4137dnl $1 = optional parameter to pass to AC_PROG_CC to specify compiler name
4138AC_DEFUN([CF_PROG_CC],[
4139CF_ACVERSION_CHECK(2.53,
4140	[AC_MSG_WARN(this will incorrectly handle gnatgcc choice)
4141	 AC_REQUIRE([AC_PROG_CC])],
4142	[])
4143ifelse($1,,[AC_PROG_CC],[AC_PROG_CC($1)])
4144CF_GCC_VERSION
4145CF_ACVERSION_CHECK(2.52,
4146	[AC_PROG_CC_STDC],
4147	[CF_ANSI_CC_REQD])
4148CF_CC_ENV_FLAGS
4149])dnl
4150dnl ---------------------------------------------------------------------------
4151dnl CF_PROG_EXT version: 15 updated: 2021/01/02 09:31:20
4152dnl -----------
4153dnl Compute $PROG_EXT, used for non-Unix ports, such as OS/2 EMX.
4154AC_DEFUN([CF_PROG_EXT],
4155[
4156AC_REQUIRE([CF_CHECK_CACHE])
4157case "$cf_cv_system_name" in
4158(os2*)
4159	CFLAGS="$CFLAGS -Zmt"
4160	CF_APPEND_TEXT(CPPFLAGS,-D__ST_MT_ERRNO__)
4161	CXXFLAGS="$CXXFLAGS -Zmt"
4162	# autoconf's macro sets -Zexe and suffix both, which conflict:w
4163	LDFLAGS="$LDFLAGS -Zmt -Zcrtdll"
4164	ac_cv_exeext=.exe
4165	;;
4166esac
4167
4168AC_EXEEXT
4169AC_OBJEXT
4170
4171PROG_EXT="$EXEEXT"
4172AC_SUBST(PROG_EXT)
4173test -n "$PROG_EXT" && AC_DEFINE_UNQUOTED(PROG_EXT,"$PROG_EXT",[Define to the program extension (normally blank)])
4174])dnl
4175dnl ---------------------------------------------------------------------------
4176dnl CF_PROG_GROFF version: 3 updated: 2018/01/07 13:16:19
4177dnl -------------
4178dnl Check if groff is available, for cases (such as html output) where nroff
4179dnl is not enough.
4180AC_DEFUN([CF_PROG_GROFF],[
4181AC_PATH_PROG(GROFF_PATH,groff,no)
4182AC_PATH_PROGS(NROFF_PATH,nroff mandoc,no)
4183AC_PATH_PROG(TBL_PATH,tbl,cat)
4184if test "x$GROFF_PATH" = xno
4185then
4186	NROFF_NOTE=
4187	GROFF_NOTE="#"
4188else
4189	NROFF_NOTE="#"
4190	GROFF_NOTE=
4191fi
4192AC_SUBST(GROFF_NOTE)
4193AC_SUBST(NROFF_NOTE)
4194])dnl
4195dnl ---------------------------------------------------------------------------
4196dnl CF_PROG_LINT version: 4 updated: 2019/11/20 18:55:37
4197dnl ------------
4198AC_DEFUN([CF_PROG_LINT],
4199[
4200AC_CHECK_PROGS(LINT, lint cppcheck splint)
4201case "x$LINT" in
4202(xcppcheck|x*/cppcheck)
4203	test -z "$LINT_OPTS" && LINT_OPTS="--enable=all"
4204	;;
4205esac
4206AC_SUBST(LINT_OPTS)
4207])dnl
4208dnl ---------------------------------------------------------------------------
4209dnl CF_PROG_LN_S version: 2 updated: 2010/08/14 18:25:37
4210dnl ------------
4211dnl Combine checks for "ln -s" and "ln -sf", updating $LN_S to include "-f"
4212dnl option if it is supported.
4213AC_DEFUN([CF_PROG_LN_S],[
4214AC_PROG_LN_S
4215AC_MSG_CHECKING(if $LN_S -f options work)
4216
4217rm -f conf$$.src conf$$dst
4218echo >conf$$.dst
4219echo first >conf$$.src
4220if $LN_S -f conf$$.src conf$$.dst 2>/dev/null; then
4221	cf_prog_ln_sf=yes
4222else
4223	cf_prog_ln_sf=no
4224fi
4225rm -f conf$$.dst conf$$src
4226AC_MSG_RESULT($cf_prog_ln_sf)
4227
4228test "$cf_prog_ln_sf" = yes && LN_S="$LN_S -f"
4229])dnl
4230dnl ---------------------------------------------------------------------------
4231dnl CF_REMOVE_DEFINE version: 3 updated: 2010/01/09 11:05:50
4232dnl ----------------
4233dnl Remove all -U and -D options that refer to the given symbol from a list
4234dnl of C compiler options.  This works around the problem that not all
4235dnl compilers process -U and -D options from left-to-right, so a -U option
4236dnl cannot be used to cancel the effect of a preceding -D option.
4237dnl
4238dnl $1 = target (which could be the same as the source variable)
4239dnl $2 = source (including '$')
4240dnl $3 = symbol to remove
4241define([CF_REMOVE_DEFINE],
4242[
4243$1=`echo "$2" | \
4244	sed	-e 's/-[[UD]]'"$3"'\(=[[^ 	]]*\)\?[[ 	]]/ /g' \
4245		-e 's/-[[UD]]'"$3"'\(=[[^ 	]]*\)\?[$]//g'`
4246])dnl
4247dnl ---------------------------------------------------------------------------
4248dnl CF_RESTORE_XTRA_FLAGS version: 1 updated: 2020/01/11 16:47:45
4249dnl ---------------------
4250dnl Restore flags saved in CF_SAVE_XTRA_FLAGS
4251dnl $1 = name of current macro
4252define([CF_RESTORE_XTRA_FLAGS],
4253[
4254LIBS="$cf_save_LIBS_$1"
4255CFLAGS="$cf_save_CFLAGS_$1"
4256CPPFLAGS="$cf_save_CPPFLAGS_$1"
4257])dnl
4258dnl ---------------------------------------------------------------------------
4259dnl CF_RPATH_HACK version: 13 updated: 2021/01/03 18:30:50
4260dnl -------------
4261AC_DEFUN([CF_RPATH_HACK],
4262[AC_REQUIRE([AC_PROG_FGREP])dnl
4263AC_REQUIRE([CF_LD_RPATH_OPT])dnl
4264
4265AC_MSG_CHECKING(for updated LDFLAGS)
4266if test -n "$LD_RPATH_OPT" ; then
4267	AC_MSG_RESULT(maybe)
4268
4269	AC_CHECK_PROGS(cf_ldd_prog,ldd,no)
4270	cf_rpath_list="/usr/lib /lib"
4271	if test "$cf_ldd_prog" != no
4272	then
4273		cf_rpath_oops=
4274
4275AC_TRY_LINK([#include <stdio.h>],
4276		[printf("Hello");],
4277		[cf_rpath_oops=`"$cf_ldd_prog" "conftest$ac_exeext" | ${FGREP-fgrep} ' not found' | sed -e 's% =>.*$%%' |sort | uniq`
4278		 cf_rpath_list=`"$cf_ldd_prog" "conftest$ac_exeext" | ${FGREP-fgrep} / | sed -e 's%^.*[[ 	]]/%/%' -e 's%/[[^/]][[^/]]*$%%' |sort | uniq`])
4279
4280		# If we passed the link-test, but get a "not found" on a given library,
4281		# this could be due to inept reconfiguration of gcc to make it only
4282		# partly honor /usr/local/lib (or whatever).  Sometimes this behavior
4283		# is intentional, e.g., installing gcc in /usr/bin and suppressing the
4284		# /usr/local libraries.
4285		if test -n "$cf_rpath_oops"
4286		then
4287			for cf_rpath_src in $cf_rpath_oops
4288			do
4289				for cf_rpath_dir in \
4290					/usr/local \
4291					/usr/pkg \
4292					/opt/sfw
4293				do
4294					if test -f "$cf_rpath_dir/lib/$cf_rpath_src"
4295					then
4296						CF_VERBOSE(...adding -L$cf_rpath_dir/lib to LDFLAGS for $cf_rpath_src)
4297						LDFLAGS="$LDFLAGS -L$cf_rpath_dir/lib"
4298						break
4299					fi
4300				done
4301			done
4302		fi
4303	fi
4304
4305	CF_VERBOSE(...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS)
4306
4307	CF_RPATH_HACK_2(LDFLAGS)
4308	CF_RPATH_HACK_2(LIBS)
4309
4310	CF_VERBOSE(...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS)
4311else
4312	AC_MSG_RESULT(no)
4313fi
4314AC_SUBST(EXTRA_LDFLAGS)
4315])dnl
4316dnl ---------------------------------------------------------------------------
4317dnl CF_RPATH_HACK_2 version: 8 updated: 2021/01/01 13:31:04
4318dnl ---------------
4319dnl Do one set of substitutions for CF_RPATH_HACK, adding an rpath option to
4320dnl EXTRA_LDFLAGS for each -L option found.
4321dnl
4322dnl $cf_rpath_list contains a list of directories to ignore.
4323dnl
4324dnl $1 = variable name to update.  The LDFLAGS variable should be the only one,
4325dnl      but LIBS often has misplaced -L options.
4326AC_DEFUN([CF_RPATH_HACK_2],
4327[
4328CF_VERBOSE(...checking $1 [$]$1)
4329
4330cf_rpath_dst=
4331for cf_rpath_src in [$]$1
4332do
4333	case "$cf_rpath_src" in
4334	(-L*)
4335
4336		# check if this refers to a directory which we will ignore
4337		cf_rpath_skip=no
4338		if test -n "$cf_rpath_list"
4339		then
4340			for cf_rpath_item in $cf_rpath_list
4341			do
4342				if test "x$cf_rpath_src" = "x-L$cf_rpath_item"
4343				then
4344					cf_rpath_skip=yes
4345					break
4346				fi
4347			done
4348		fi
4349
4350		if test "$cf_rpath_skip" = no
4351		then
4352			# transform the option
4353			if test "$LD_RPATH_OPT" = "-R " ; then
4354				cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%-R %"`
4355			else
4356				cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%$LD_RPATH_OPT%"`
4357			fi
4358
4359			# if we have not already added this, add it now
4360			cf_rpath_tst=`echo "$EXTRA_LDFLAGS" | sed -e "s%$cf_rpath_tmp %%"`
4361			if test "x$cf_rpath_tst" = "x$EXTRA_LDFLAGS"
4362			then
4363				CF_VERBOSE(...Filter $cf_rpath_src ->$cf_rpath_tmp)
4364				EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS"
4365			fi
4366		fi
4367		;;
4368	esac
4369	cf_rpath_dst="$cf_rpath_dst $cf_rpath_src"
4370done
4371$1=$cf_rpath_dst
4372
4373CF_VERBOSE(...checked $1 [$]$1)
4374AC_SUBST(EXTRA_LDFLAGS)
4375])dnl
4376dnl ---------------------------------------------------------------------------
4377dnl CF_SAVE_XTRA_FLAGS version: 1 updated: 2020/01/11 16:46:44
4378dnl ------------------
4379dnl Use this macro to save CFLAGS/CPPFLAGS/LIBS before checks against X headers
4380dnl and libraries which do not update those variables.
4381dnl
4382dnl $1 = name of current macro
4383define([CF_SAVE_XTRA_FLAGS],
4384[
4385cf_save_LIBS_$1="$LIBS"
4386cf_save_CFLAGS_$1="$CFLAGS"
4387cf_save_CPPFLAGS_$1="$CPPFLAGS"
4388LIBS="$LIBS ${X_PRE_LIBS} ${X_LIBS} ${X_EXTRA_LIBS}"
4389for cf_X_CFLAGS in $X_CFLAGS
4390do
4391	case "x$cf_X_CFLAGS" in
4392	x-[[IUD]]*)
4393		CPPFLAGS="$CPPFLAGS $cf_X_CFLAGS"
4394		;;
4395	*)
4396		CFLAGS="$CFLAGS $cf_X_CFLAGS"
4397		;;
4398	esac
4399done
4400])dnl
4401dnl ---------------------------------------------------------------------------
4402dnl CF_SHARED_OPTS version: 105 updated: 2021/01/02 17:09:14
4403dnl --------------
4404dnl --------------
4405dnl Attempt to determine the appropriate CC/LD options for creating a shared
4406dnl library.
4407dnl
4408dnl Notes:
4409dnl a) ${LOCAL_LDFLAGS} is used to link executables that will run within
4410dnl the build-tree, i.e., by making use of the libraries that are compiled in
4411dnl $rel_builddir/lib We avoid compiling-in a $rel_builddir/lib path for the
4412dnl shared library since that can lead to unexpected results at runtime.
4413dnl b) ${LOCAL_LDFLAGS2} has the same intention but assumes that the shared
4414dnl libraries are compiled in ../../lib
4415dnl
4416dnl The variable 'cf_cv_do_symlinks' is used to control whether we configure
4417dnl to install symbolic links to the rel/abi versions of shared libraries.
4418dnl
4419dnl The variable 'cf_cv_shlib_version' controls whether we use the rel or abi
4420dnl version when making symbolic links.
4421dnl
4422dnl The variable 'cf_cv_shlib_version_infix' controls whether shared library
4423dnl version numbers are infix (ex: libncurses.<ver>.dylib) or postfix
4424dnl (ex: libncurses.so.<ver>).
4425dnl
4426dnl Some loaders leave 'so_locations' lying around.  It's nice to clean up.
4427AC_DEFUN([CF_SHARED_OPTS],
4428[
4429	AC_REQUIRE([CF_LD_RPATH_OPT])
4430
4431	RM_SHARED_OPTS=
4432	LOCAL_LDFLAGS=
4433	LOCAL_LDFLAGS2=
4434	LD_SHARED_OPTS=
4435	INSTALL_LIB="-m 644"
4436	: ${rel_builddir:=.}
4437
4438	shlibdir=$libdir
4439	AC_SUBST(shlibdir)
4440
4441	MAKE_DLLS="#"
4442	AC_SUBST(MAKE_DLLS)
4443
4444	cf_cv_do_symlinks=no
4445	cf_ld_rpath_opt=
4446	test "$cf_cv_enable_rpath" = yes && cf_ld_rpath_opt="$LD_RPATH_OPT"
4447
4448	AC_MSG_CHECKING(if release/abi version should be used for shared libs)
4449	AC_ARG_WITH(shlib-version,
4450	[  --with-shlib-version=X  Specify rel or abi version for shared libs],
4451	[test -z "$withval" && withval=auto
4452	case "$withval" in
4453	(yes)
4454		cf_cv_shlib_version=auto
4455		;;
4456	(rel|abi|auto)
4457		cf_cv_shlib_version=$withval
4458		;;
4459	(*)
4460		AC_MSG_RESULT($withval)
4461		AC_MSG_ERROR([option value must be one of: rel, abi, or auto])
4462		;;
4463	esac
4464	],[cf_cv_shlib_version=auto])
4465	AC_MSG_RESULT($cf_cv_shlib_version)
4466
4467	cf_cv_rm_so_locs=no
4468	cf_try_cflags=
4469
4470	# Some less-capable ports of gcc support only -fpic
4471	CC_SHARED_OPTS=
4472
4473	cf_try_fPIC=no
4474	if test "$GCC" = yes
4475	then
4476		cf_try_fPIC=yes
4477	else
4478		case "$cf_cv_system_name" in
4479		(*linux*)	# e.g., PGI compiler
4480			cf_try_fPIC=yes
4481			;;
4482		esac
4483	fi
4484
4485	if test "$cf_try_fPIC" = yes
4486	then
4487		AC_MSG_CHECKING(which $CC option to use)
4488		cf_save_CFLAGS="$CFLAGS"
4489		for CC_SHARED_OPTS in -fPIC -fpic ''
4490		do
4491			CFLAGS="$cf_save_CFLAGS $CC_SHARED_OPTS"
4492			AC_TRY_COMPILE([#include <stdio.h>],[int x = 1],[break],[])
4493		done
4494		AC_MSG_RESULT($CC_SHARED_OPTS)
4495		CFLAGS="$cf_save_CFLAGS"
4496	fi
4497
4498	cf_cv_shlib_version_infix=no
4499
4500	case "$cf_cv_system_name" in
4501	(aix4.[3-9]*|aix[[5-7]]*)
4502		if test "$GCC" = yes; then
4503			CC_SHARED_OPTS='-Wl,-brtl'
4504			MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o [$]@'
4505		else
4506			CC_SHARED_OPTS='-brtl'
4507			# as well as '-qpic=large -G' or perhaps "-bM:SRE -bnoentry -bexpall"
4508			MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -G -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o [$]@'
4509		fi
4510		;;
4511	(beos*)
4512		MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -o $[@] -Xlinker -soname=`basename $[@]` -nostart -e 0'
4513		;;
4514	(cygwin*)
4515		CC_SHARED_OPTS=
4516		MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
4517		RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
4518		cf_cv_shlib_version=cygdll
4519		cf_cv_shlib_version_infix=cygdll
4520		shlibdir=$bindir
4521		MAKE_DLLS=
4522		cat >mk_shared_lib.sh <<-CF_EOF
4523		#!$SHELL
4524		SHARED_LIB=\[$]1
4525		IMPORT_LIB=\`echo "\[$]1" | sed -e 's/cyg/lib/' -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
4526		shift
4527		cat <<-EOF
4528		Linking shared library
4529		** SHARED_LIB \[$]SHARED_LIB
4530		** IMPORT_LIB \[$]IMPORT_LIB
4531EOF
4532		exec \[$]* ${LDFLAGS} -shared -Wl,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB}
4533CF_EOF
4534		chmod +x mk_shared_lib.sh
4535		;;
4536	(msys*)
4537		CC_SHARED_OPTS=
4538		MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
4539		RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
4540		cf_cv_shlib_version=msysdll
4541		cf_cv_shlib_version_infix=msysdll
4542		shlibdir=$bindir
4543		MAKE_DLLS=
4544		cat >mk_shared_lib.sh <<-CF_EOF
4545		#!$SHELL
4546		SHARED_LIB=\[$]1
4547		IMPORT_LIB=\`echo "\[$]1" | sed -e 's/msys-/lib/' -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
4548		shift
4549		cat <<-EOF
4550		Linking shared library
4551		** SHARED_LIB \[$]SHARED_LIB
4552		** IMPORT_LIB \[$]IMPORT_LIB
4553EOF
4554		exec \[$]* ${LDFLAGS} -shared -Wl,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB}
4555CF_EOF
4556		chmod +x mk_shared_lib.sh
4557		;;
4558	(darwin*)
4559		cf_try_cflags="no-cpp-precomp"
4560		CC_SHARED_OPTS="-dynamic"
4561		MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -dynamiclib -install_name ${libdir}/`basename $[@]` -compatibility_version ${ABI_VERSION} -current_version ${ABI_VERSION} -o $[@]'
4562		test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi
4563		cf_cv_shlib_version_infix=yes
4564		AC_CACHE_CHECK([if ld -search_paths_first works], cf_cv_ldflags_search_paths_first, [
4565			cf_save_LDFLAGS=$LDFLAGS
4566			LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
4567			AC_TRY_LINK(, [int i;], cf_cv_ldflags_search_paths_first=yes, cf_cv_ldflags_search_paths_first=no)
4568				LDFLAGS=$cf_save_LDFLAGS])
4569		if test "$cf_cv_ldflags_search_paths_first" = yes; then
4570			LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
4571		fi
4572		;;
4573	(hpux[[7-8]]*)
4574		# HP-UX 8.07 ld lacks "+b" option used for libdir search-list
4575		if test "$GCC" != yes; then
4576			CC_SHARED_OPTS='+Z'
4577		fi
4578		MK_SHARED_LIB='${LD} ${LDFLAGS} -b -o $[@]'
4579		INSTALL_LIB="-m 555"
4580		;;
4581	(hpux*)
4582		# (tested with gcc 2.7.2 -- I don't have c89)
4583		if test "$GCC" = yes; then
4584			LD_SHARED_OPTS='-Xlinker +b -Xlinker ${libdir}'
4585		else
4586			CC_SHARED_OPTS='+Z'
4587			LD_SHARED_OPTS='-Wl,+b,${libdir}'
4588		fi
4589		MK_SHARED_LIB='${LD} ${LDFLAGS} +b ${libdir} -b -o $[@]'
4590		# HP-UX shared libraries must be executable, and should be
4591		# readonly to exploit a quirk in the memory manager.
4592		INSTALL_LIB="-m 555"
4593		;;
4594	(interix*)
4595		test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
4596		if test "$cf_cv_shlib_version" = rel; then
4597			cf_shared_soname='`basename $[@] .${REL_VERSION}`.${ABI_VERSION}'
4598		else
4599			cf_shared_soname='`basename $[@]`'
4600		fi
4601		CC_SHARED_OPTS=
4602		MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-rpath,${RPATH_LIST} -Wl,-h,'$cf_shared_soname' -o $[@]'
4603		;;
4604	(irix*)
4605		if test "$cf_cv_enable_rpath" = yes ; then
4606			EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
4607		fi
4608		# tested with IRIX 5.2 and 'cc'.
4609		if test "$GCC" != yes; then
4610			CC_SHARED_OPTS='-KPIC'
4611			MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -rdata_shared -soname `basename $[@]` -o $[@]'
4612		else
4613			MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,`basename $[@]` -o $[@]'
4614		fi
4615		cf_cv_rm_so_locs=yes
4616		;;
4617	(linux*|gnu*|k*bsd*-gnu)
4618		if test "$DFT_LWR_MODEL" = "shared" && test -n "$LD_RPATH_OPT" ; then
4619			LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
4620			LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4621		fi
4622		if test "$cf_cv_enable_rpath" = yes ; then
4623			EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
4624		fi
4625		CF_SHARED_SONAME
4626		MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
4627		;;
4628	(mingw*msvc*)
4629		cf_cv_shlib_version=msvcdll
4630		cf_cv_shlib_version_infix=msvcdll
4631		shlibdir=$bindir
4632		MAKE_DLLS=
4633		if test "$DFT_LWR_MODEL" = "shared" ; then
4634			LOCAL_LDFLAGS="-link -dll"
4635			LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4636			EXTRA_LDFLAGS="-link -dll $EXTRA_LDFLAGS"
4637		fi
4638		CC_SHARED_OPTS=
4639		MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ ${LD} [$]{CFLAGS}'
4640		RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.lib"
4641		cat >mk_shared_lib.sh <<-CF_EOF
4642		#!$SHELL
4643		SHARED_LIB=\[$]1
4644		IMPORT_LIB=\`echo "\[$]1" | sed -e 's/[[0-9]]*\.dll[$]/.dll.lib/'\`
4645		shift
4646		my_ld=\[$]1
4647		shift
4648		cat <<-EOF
4649		Linking shared library
4650		** SHARED LIB \$SHARED_LIB
4651		** IMPORT_LIB \$IMPORT_LIB
4652EOF
4653		args=\$(echo \[$]* | sed -E "s#-l(\w*)#\1.dll.lib#g" | sed -E "s#-L(\w*)#-LIBPATH:\1#g")
4654		exec \$my_ld -DLL -IMPLIB:"\${IMPORT_LIB}" -OUT:"\${SHARED_LIB}" ${LDFLAGS} \$args
4655		mv "\${IMPORT_LIB}" "\${IMPORT_LIB}"
4656CF_EOF
4657		chmod +x mk_shared_lib.sh
4658		cat >mk_prog.sh <<-CF_EOF
4659		#!$SHELL
4660		shift
4661		# Ignore first argument (compiler) and use LD (link.exe) unconditionally
4662		LD="[$]LD"
4663		clopts=()
4664		ldopts=("/subsystem:console")
4665		libs=()
4666		isdll=0
4667		while test \[$]# -gt 0; do
4668			case "\[$]1" in
4669				-link)
4670					# ignore -link argument
4671					;;
4672				-M[[TD]] | -M[[TD]]d)
4673					# ignore runtime-library option
4674					;;
4675				-dll)
4676					isdll=1
4677					;;
4678				-W* | -w*)
4679					# ignore warnings
4680					;;
4681				-D*)
4682					clopts+=("\[$]1")
4683					;;
4684				-I*)
4685					clopts+=("\[$]1")
4686					;;
4687				-l*)
4688					libs+=("\`echo \"\[$]1\" | sed \"s/^-l//\"\`")
4689					;;
4690				-L*)
4691					ldopts+=("\`echo \"\[$]1\" | sed \"s/^-L/-LIBPATH:/\"\`")
4692					;;
4693				*.obj | *.o)
4694					ldopts+=("\[$]1")
4695					;;
4696				-Wl,*)
4697					for linkarg in \`echo '\[$]1' | sed -e 's/-Wl,//' -e 's/,/ /'\`; do
4698						ldopts+=("\[$]{linkarg}")
4699					done
4700					;;
4701				*.lib)
4702					ldopts+=("\[$]1")
4703					;;
4704				-o)
4705					shift
4706					ldopts+=("-out:\[$]1")
4707					;;
4708				*)
4709					clopts+=("\[$]1")
4710					ldopts+=("\[$]1")
4711					;;
4712			esac
4713			shift
4714		done
4715		if [[ "\$isdll" -ne 0 ]]; then
4716			for lib in \[$]{libs[[*]]}; do
4717				ldopts+=("\[$]lib.dll.lib")
4718			done
4719		else
4720			for lib in \[$]{libs[[*]]}; do
4721				ldopts+=("\[$]lib.lib")
4722			done
4723		fi
4724		cat <<-EOF
4725		Creating program
4726		** ld options:   "\[$]{ldopts[[@]]}"
4727EOF
4728		exec \[$]LD \[$]{ldopts[[@]]}
4729CF_EOF
4730		chmod +x mk_prog.sh
4731		LINK_PROGS="$SHELL ${rel_builddir}/mk_prog.sh"
4732		LINK_TESTS="$SHELL ${rel_builddir}/mk_prog.sh"
4733		;;
4734	(mingw*)
4735		cf_cv_shlib_version=mingw
4736		cf_cv_shlib_version_infix=mingw
4737		shlibdir=$bindir
4738		MAKE_DLLS=
4739		if test "$DFT_LWR_MODEL" = "shared" ; then
4740			LOCAL_LDFLAGS="-Wl,--enable-auto-import"
4741			LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4742			EXTRA_LDFLAGS="-Wl,--enable-auto-import $EXTRA_LDFLAGS"
4743		fi
4744		CC_SHARED_OPTS=
4745		MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
4746		RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
4747		cat >mk_shared_lib.sh <<-CF_EOF
4748		#!$SHELL
4749		SHARED_LIB=\[$]1
4750		IMPORT_LIB=\`echo "\[$]1" | sed -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
4751		shift
4752		cat <<-EOF
4753		Linking shared library
4754		** SHARED_LIB \[$]SHARED_LIB
4755		** IMPORT_LIB \[$]IMPORT_LIB
4756EOF
4757		exec \[$]* ${LDFLAGS} -shared -Wl,--enable-auto-import,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB}
4758CF_EOF
4759		chmod +x mk_shared_lib.sh
4760		;;
4761	(openbsd[[2-9]].*|mirbsd*)
4762		if test "$DFT_LWR_MODEL" = "shared" && test -n "$LD_RPATH_OPT" ; then
4763			LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
4764			LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4765		fi
4766		if test "$cf_cv_enable_rpath" = yes ; then
4767			EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
4768		fi
4769		CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
4770		CF_SHARED_SONAME
4771		MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-Bshareable,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
4772		;;
4773	(nskJ*)
4774		CC_SHARED_OPTS=
4775		MK_SHARED_LIB='${LD} -Wshared -Weld=-export_all -o $[@]'
4776		;;
4777	(nskL*)
4778		CC_SHARED_OPTS=
4779		MK_SHARED_LIB='${LD} -Wshared -Wxld=-export_all -o $[@]'
4780		;;
4781	(nto-qnx*|openbsd*|freebsd[[12]].*)
4782		CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
4783		MK_SHARED_LIB='${LD} ${LDFLAGS} -Bshareable -o $[@]'
4784		test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
4785		;;
4786	(dragonfly*|freebsd*)
4787		CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
4788		if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then
4789			LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)"
4790			LOCAL_LDFLAGS2="${cf_ld_rpath_opt}\${RPATH_LIST} $LOCAL_LDFLAGS"
4791			EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
4792		fi
4793		CF_SHARED_SONAME
4794		MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
4795		;;
4796	(netbsd*)
4797		CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
4798		if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then
4799			LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)"
4800			LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4801			EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
4802			if test "$cf_cv_shlib_version" = auto; then
4803			if test -f /usr/libexec/ld.elf_so; then
4804				cf_cv_shlib_version=abi
4805			else
4806				cf_cv_shlib_version=rel
4807			fi
4808			fi
4809			CF_SHARED_SONAME
4810			MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname' -o $[@]'
4811		else
4812			MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -o $[@]'
4813		fi
4814		;;
4815	(osf*|mls+*)
4816		# tested with OSF/1 V3.2 and 'cc'
4817		# tested with OSF/1 V3.2 and gcc 2.6.3 (but the c++ demo didn't
4818		# link with shared libs).
4819		MK_SHARED_LIB='${LD} ${LDFLAGS} -set_version ${REL_VERSION}:${ABI_VERSION} -expect_unresolved "*" -shared -soname `basename $[@]`'
4820		case "$host_os" in
4821		(osf4*)
4822			MK_SHARED_LIB="${MK_SHARED_LIB} -msym"
4823			;;
4824		esac
4825		MK_SHARED_LIB="${MK_SHARED_LIB}"' -o $[@]'
4826		if test "$DFT_LWR_MODEL" = "shared" && test -n "$LD_RPATH_OPT" ; then
4827			LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
4828			LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4829		fi
4830		cf_cv_rm_so_locs=yes
4831		;;
4832	(sco3.2v5*)  # also uw2* and UW7: hops 13-Apr-98
4833		# tested with osr5.0.5
4834		if test "$GCC" != yes; then
4835			CC_SHARED_OPTS='-belf -KPIC'
4836		fi
4837		MK_SHARED_LIB='${LD} ${LDFLAGS} -dy -G -h `basename $[@] .${REL_VERSION}`.${ABI_VERSION} -o [$]@'
4838		if test "$cf_cv_enable_rpath" = yes ; then
4839			# only way is to set LD_RUN_PATH but no switch for it
4840			RUN_PATH=$libdir
4841		fi
4842		test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
4843		LINK_PROGS='LD_RUN_PATH=${libdir}'
4844		LINK_TESTS='Pwd=`pwd`;LD_RUN_PATH=`dirname $${Pwd}`/lib'
4845		;;
4846	(sunos4*)
4847		# tested with SunOS 4.1.1 and gcc 2.7.0
4848		if test "$GCC" != yes; then
4849			CC_SHARED_OPTS='-KPIC'
4850		fi
4851		MK_SHARED_LIB='${LD} ${LDFLAGS} -assert pure-text -o $[@]'
4852		test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
4853		;;
4854	(solaris2*)
4855		# tested with SunOS 5.5.1 (solaris 2.5.1) and gcc 2.7.2
4856		# tested with SunOS 5.10 (solaris 10) and gcc 3.4.3
4857		if test "$DFT_LWR_MODEL" = "shared" ; then
4858			LOCAL_LDFLAGS="-R \$(LOCAL_LIBDIR):\${libdir}"
4859			LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4860		fi
4861		if test "$cf_cv_enable_rpath" = yes ; then
4862			EXTRA_LDFLAGS="-R \${libdir} $EXTRA_LDFLAGS"
4863		fi
4864		CF_SHARED_SONAME
4865		if test "$GCC" != yes; then
4866			cf_save_CFLAGS="$CFLAGS"
4867			for cf_shared_opts in -xcode=pic32 -xcode=pic13 -KPIC -Kpic -O
4868			do
4869				CFLAGS="$cf_shared_opts $cf_save_CFLAGS"
4870				AC_TRY_COMPILE([#include <stdio.h>],[printf("Hello\\n");],[break])
4871			done
4872			CFLAGS="$cf_save_CFLAGS"
4873			CC_SHARED_OPTS=$cf_shared_opts
4874			MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -dy -G -h '$cf_cv_shared_soname' -o $[@]'
4875		else
4876			MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -dy -G -h '$cf_cv_shared_soname' -o $[@]'
4877		fi
4878		;;
4879	(sysv5uw7*|unix_sv*)
4880		# tested with UnixWare 7.1.0 (gcc 2.95.2 and cc)
4881		if test "$GCC" != yes; then
4882			CC_SHARED_OPTS='-KPIC'
4883		fi
4884		MK_SHARED_LIB='${LD} ${LDFLAGS} -d y -G -o [$]@'
4885		;;
4886	(*)
4887		CC_SHARED_OPTS='unknown'
4888		MK_SHARED_LIB='echo unknown'
4889		;;
4890	esac
4891
4892	# This works if the last tokens in $MK_SHARED_LIB are the -o target.
4893	case "$cf_cv_shlib_version" in
4894	(rel|abi)
4895		case "$MK_SHARED_LIB" in
4896		(*'-o $[@]')
4897			test "$cf_cv_do_symlinks" = no && cf_cv_do_symlinks=yes
4898			;;
4899		(*)
4900			AC_MSG_WARN(ignored --with-shlib-version)
4901			;;
4902		esac
4903		;;
4904	esac
4905
4906	if test -n "$cf_try_cflags"
4907	then
4908cat > conftest.$ac_ext <<EOF
4909#line __oline__ "${as_me:-configure}"
4910#include <stdio.h>
4911int main(int argc, char *argv[[]])
4912{
4913	printf("hello\\n");
4914	return (argv[[argc-1]] == 0) ;
4915}
4916EOF
4917		cf_save_CFLAGS="$CFLAGS"
4918		for cf_opt in $cf_try_cflags
4919		do
4920			CFLAGS="$cf_save_CFLAGS -$cf_opt"
4921			AC_MSG_CHECKING(if CFLAGS option -$cf_opt works)
4922			if AC_TRY_EVAL(ac_compile); then
4923				AC_MSG_RESULT(yes)
4924				cf_save_CFLAGS="$CFLAGS"
4925			else
4926				AC_MSG_RESULT(no)
4927			fi
4928		done
4929		CFLAGS="$cf_save_CFLAGS"
4930	fi
4931
4932
4933	# RPATH_LIST is a colon-separated list of directories
4934	test -n "$cf_ld_rpath_opt" && MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${RPATH_LIST}"
4935	test -z "$RPATH_LIST" && RPATH_LIST="\${libdir}"
4936
4937	test "$cf_cv_rm_so_locs" = yes && RM_SHARED_OPTS="$RM_SHARED_OPTS so_locations"
4938
4939	CF_VERBOSE(CC_SHARED_OPTS: $CC_SHARED_OPTS)
4940	CF_VERBOSE(MK_SHARED_LIB:  $MK_SHARED_LIB)
4941
4942	AC_SUBST(CC_SHARED_OPTS)
4943	AC_SUBST(LD_RPATH_OPT)
4944	AC_SUBST(LD_SHARED_OPTS)
4945	AC_SUBST(MK_SHARED_LIB)
4946	AC_SUBST(RM_SHARED_OPTS)
4947
4948	AC_SUBST(LINK_PROGS)
4949	AC_SUBST(LINK_TESTS)
4950
4951	AC_SUBST(EXTRA_LDFLAGS)
4952	AC_SUBST(LOCAL_LDFLAGS)
4953	AC_SUBST(LOCAL_LDFLAGS2)
4954
4955	AC_SUBST(INSTALL_LIB)
4956	AC_SUBST(RPATH_LIST)
4957])dnl
4958dnl ---------------------------------------------------------------------------
4959dnl CF_SHARED_SONAME version: 3 updated: 2008/09/08 18:34:43
4960dnl ----------------
4961dnl utility macro for CF_SHARED_OPTS, constructs "$cf_cv_shared_soname" for
4962dnl substitution into MK_SHARED_LIB string for the "-soname" (or similar)
4963dnl option.
4964dnl
4965dnl $1 is the default that should be used for "$cf_cv_shlib_version".
4966dnl If missing, use "rel".
4967define([CF_SHARED_SONAME],
4968[
4969	test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=ifelse($1,,rel,$1)
4970	if test "$cf_cv_shlib_version" = rel; then
4971		cf_cv_shared_soname='`basename $[@] .${REL_VERSION}`.${ABI_VERSION}'
4972	else
4973		cf_cv_shared_soname='`basename $[@]`'
4974	fi
4975])
4976dnl ---------------------------------------------------------------------------
4977dnl CF_SIZECHANGE version: 17 updated: 2021/01/01 13:31:04
4978dnl -------------
4979dnl Check for definitions & structures needed for window size-changing
4980dnl
4981dnl https://stackoverflow.com/questions/18878141/difference-between-structures-ttysize-and-winsize/50769952#50769952
4982AC_DEFUN([CF_SIZECHANGE],
4983[
4984AC_REQUIRE([CF_STRUCT_TERMIOS])
4985AC_CACHE_CHECK(declaration of size-change, cf_cv_sizechange,[
4986	cf_cv_sizechange=unknown
4987	cf_save_CPPFLAGS="$CPPFLAGS"
4988
4989for cf_opts in "" "NEED_PTEM_H"
4990do
4991
4992	CPPFLAGS="$cf_save_CPPFLAGS"
4993	if test -n "$cf_opts"
4994	then
4995		CF_APPEND_TEXT(CPPFLAGS,-D$cf_opts)
4996	fi
4997	AC_TRY_COMPILE([#include <sys/types.h>
4998#ifdef HAVE_TERMIOS_H
4999#include <termios.h>
5000#else
5001#ifdef HAVE_TERMIO_H
5002#include <termio.h>
5003#endif
5004#endif
5005
5006#ifdef NEED_PTEM_H
5007/* This is a workaround for SCO:  they neglected to define struct winsize in
5008 * termios.h -- it's only in termio.h and ptem.h
5009 */
5010#include <sys/stream.h>
5011#include <sys/ptem.h>
5012#endif
5013
5014#ifdef HAVE_SYS_IOCTL_H
5015#include <sys/ioctl.h>
5016#endif
5017],[
5018#ifdef TIOCGSIZE
5019	struct ttysize win;	/* SunOS 3.0... */
5020	int y = win.ts_lines = 2;
5021	int x = win.ts_cols = 1;
5022	(void)y;
5023	(void)x;
5024#else
5025#ifdef TIOCGWINSZ
5026	struct winsize win;	/* everything else */
5027	int y = win.ws_row = 2;
5028	int x = win.ws_col = 1;
5029	(void)y;
5030	(void)x;
5031#else
5032	no TIOCGSIZE or TIOCGWINSZ
5033#endif /* TIOCGWINSZ */
5034#endif /* TIOCGSIZE */
5035	],
5036	[cf_cv_sizechange=yes],
5037	[cf_cv_sizechange=no])
5038
5039	CPPFLAGS="$cf_save_CPPFLAGS"
5040	if test "$cf_cv_sizechange" = yes ; then
5041		echo "size-change succeeded ($cf_opts)" >&AC_FD_CC
5042		test -n "$cf_opts" && cf_cv_sizechange="$cf_opts"
5043		break
5044	fi
5045done
5046])
5047if test "$cf_cv_sizechange" != no ; then
5048	AC_DEFINE(HAVE_SIZECHANGE,1,[Define to 1 if sizechange declarations are provided])
5049	case "$cf_cv_sizechange" in
5050	(NEED*)
5051		AC_DEFINE_UNQUOTED($cf_cv_sizechange )
5052		;;
5053	esac
5054fi
5055])dnl
5056dnl ---------------------------------------------------------------------------
5057dnl CF_STRUCT_TERMIOS version: 11 updated: 2020/03/19 20:46:13
5058dnl -----------------
5059dnl Some machines require _POSIX_SOURCE to completely define struct termios.
5060AC_DEFUN([CF_STRUCT_TERMIOS],[
5061AC_REQUIRE([CF_XOPEN_SOURCE])
5062
5063AC_CHECK_HEADERS( \
5064termio.h \
5065termios.h \
5066unistd.h \
5067sys/ioctl.h \
5068sys/termio.h \
5069)
5070
5071if test "$ac_cv_header_termios_h" = yes ; then
5072	case "$CFLAGS $CPPFLAGS" in
5073	(*-D_POSIX_SOURCE*)
5074		termios_bad=dunno ;;
5075	(*)	termios_bad=maybe ;;
5076	esac
5077	if test "$termios_bad" = maybe ; then
5078	AC_MSG_CHECKING(whether termios.h needs _POSIX_SOURCE)
5079	AC_TRY_COMPILE([#include <termios.h>],
5080		[struct termios foo; int x = foo.c_iflag = 1; (void)x],
5081		termios_bad=no, [
5082		AC_TRY_COMPILE([
5083#define _POSIX_SOURCE
5084#include <termios.h>],
5085			[struct termios foo; int x = foo.c_iflag = 2; (void)x],
5086			termios_bad=unknown,
5087			termios_bad=yes AC_DEFINE(_POSIX_SOURCE,1,[Define to 1 if we must define _POSIX_SOURCE]))
5088			])
5089	AC_MSG_RESULT($termios_bad)
5090	fi
5091fi
5092])dnl
5093dnl ---------------------------------------------------------------------------
5094dnl CF_SUBDIR_PATH version: 7 updated: 2014/12/04 04:33:06
5095dnl --------------
5096dnl Construct a search-list for a nonstandard header/lib-file
5097dnl	$1 = the variable to return as result
5098dnl	$2 = the package name
5099dnl	$3 = the subdirectory, e.g., bin, include or lib
5100AC_DEFUN([CF_SUBDIR_PATH],
5101[
5102$1=
5103
5104CF_ADD_SUBDIR_PATH($1,$2,$3,$prefix,NONE)
5105
5106for cf_subdir_prefix in \
5107	/usr \
5108	/usr/local \
5109	/usr/pkg \
5110	/opt \
5111	/opt/local \
5112	[$]HOME
5113do
5114	CF_ADD_SUBDIR_PATH($1,$2,$3,$cf_subdir_prefix,$prefix)
5115done
5116])dnl
5117dnl ---------------------------------------------------------------------------
5118dnl CF_TERM_HEADER version: 6 updated: 2021/01/02 09:31:20
5119dnl --------------
5120dnl Look for term.h, which is part of X/Open curses.  It defines the interface
5121dnl to terminfo database.  Usually it is in the same include-path as curses.h,
5122dnl but some packagers change this, breaking various applications.
5123AC_DEFUN([CF_TERM_HEADER],[
5124AC_CACHE_CHECK(for terminfo header, cf_cv_term_header,[
5125case "${cf_cv_ncurses_header}" in
5126(*/ncurses.h|*/ncursesw.h)
5127	cf_term_header=`echo "$cf_cv_ncurses_header" | sed -e 's%ncurses[[^.]]*\.h$%term.h%'`
5128	;;
5129(*)
5130	cf_term_header=term.h
5131	;;
5132esac
5133
5134for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
5135do
5136AC_TRY_COMPILE([#include <stdio.h>
5137#include <${cf_cv_ncurses_header:-curses.h}>
5138#include <$cf_test>
5139],[int x = auto_left_margin; (void)x],[
5140	cf_cv_term_header="$cf_test"],[
5141	cf_cv_term_header=unknown
5142	])
5143	test "$cf_cv_term_header" != unknown && break
5144done
5145])
5146
5147# Set definitions to allow ifdef'ing to accommodate subdirectories
5148
5149case "$cf_cv_term_header" in
5150(*term.h)
5151	AC_DEFINE(HAVE_TERM_H,1,[Define to 1 if we have term.h])
5152	;;
5153esac
5154
5155case "$cf_cv_term_header" in
5156(ncurses/term.h)
5157	AC_DEFINE(HAVE_NCURSES_TERM_H,1,[Define to 1 if we have ncurses/term.h])
5158	;;
5159(ncursesw/term.h)
5160	AC_DEFINE(HAVE_NCURSESW_TERM_H,1,[Define to 1 if we have ncursesw/term.h])
5161	;;
5162esac
5163])dnl
5164dnl ---------------------------------------------------------------------------
5165dnl CF_TRIM_X_LIBS version: 3 updated: 2015/04/12 15:39:00
5166dnl --------------
5167dnl Trim extra base X libraries added as a workaround for inconsistent library
5168dnl dependencies returned by "new" pkg-config files.
5169AC_DEFUN([CF_TRIM_X_LIBS],[
5170	for cf_trim_lib in Xmu Xt X11
5171	do
5172		case "$LIBS" in
5173		(*-l$cf_trim_lib\ *-l$cf_trim_lib*)
5174			LIBS=`echo "$LIBS " | sed -e 's/  / /g' -e 's%-l'"$cf_trim_lib"' %%' -e 's/ $//'`
5175			CF_VERBOSE(..trimmed $LIBS)
5176			;;
5177		esac
5178	done
5179])
5180dnl ---------------------------------------------------------------------------
5181dnl CF_TRY_PKG_CONFIG version: 6 updated: 2020/12/31 10:54:15
5182dnl -----------------
5183dnl This is a simple wrapper to use for pkg-config, for libraries which may be
5184dnl available in that form.
5185dnl
5186dnl $1 = package name, which may be a shell variable
5187dnl $2 = extra logic to use, if any, after updating CFLAGS and LIBS
5188dnl $3 = logic to use if pkg-config does not have the package
5189AC_DEFUN([CF_TRY_PKG_CONFIG],[
5190AC_REQUIRE([CF_PKG_CONFIG])
5191
5192if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists "$1"; then
5193	CF_VERBOSE(found package $1)
5194	cf_pkgconfig_incs="`$PKG_CONFIG --cflags "$1" 2>/dev/null`"
5195	cf_pkgconfig_libs="`$PKG_CONFIG --libs   "$1" 2>/dev/null`"
5196	CF_VERBOSE(package $1 CFLAGS: $cf_pkgconfig_incs)
5197	CF_VERBOSE(package $1 LIBS: $cf_pkgconfig_libs)
5198	CF_ADD_CFLAGS($cf_pkgconfig_incs)
5199	CF_ADD_LIBS($cf_pkgconfig_libs)
5200	ifelse([$2],,:,[$2])
5201else
5202	cf_pkgconfig_incs=
5203	cf_pkgconfig_libs=
5204	ifelse([$3],,:,[$3])
5205fi
5206])
5207dnl ---------------------------------------------------------------------------
5208dnl CF_TRY_XOPEN_SOURCE version: 2 updated: 2018/06/20 20:23:13
5209dnl -------------------
5210dnl If _XOPEN_SOURCE is not defined in the compile environment, check if we
5211dnl can define it successfully.
5212AC_DEFUN([CF_TRY_XOPEN_SOURCE],[
5213AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[
5214	AC_TRY_COMPILE([
5215#include <stdlib.h>
5216#include <string.h>
5217#include <sys/types.h>
5218],[
5219#ifndef _XOPEN_SOURCE
5220make an error
5221#endif],
5222	[cf_cv_xopen_source=no],
5223	[cf_save="$CPPFLAGS"
5224	 CF_APPEND_TEXT(CPPFLAGS,-D_XOPEN_SOURCE=$cf_XOPEN_SOURCE)
5225	 AC_TRY_COMPILE([
5226#include <stdlib.h>
5227#include <string.h>
5228#include <sys/types.h>
5229],[
5230#ifdef _XOPEN_SOURCE
5231make an error
5232#endif],
5233	[cf_cv_xopen_source=no],
5234	[cf_cv_xopen_source=$cf_XOPEN_SOURCE])
5235	CPPFLAGS="$cf_save"
5236	])
5237])
5238
5239if test "$cf_cv_xopen_source" != no ; then
5240	CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE)
5241	CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE)
5242	cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
5243	CF_ADD_CFLAGS($cf_temp_xopen_source)
5244fi
5245])
5246dnl ---------------------------------------------------------------------------
5247dnl CF_UNION_WAIT version: 8 updated: 2021/01/02 09:31:20
5248dnl -------------
5249dnl Check to see if the BSD-style union wait is declared.  Some platforms may
5250dnl use this, though it is deprecated in favor of the 'int' type in Posix.
5251dnl Some vendors provide a bogus implementation that declares union wait, but
5252dnl uses the 'int' type instead; we try to spot these by checking for the
5253dnl associated macros.
5254dnl
5255dnl Ahem.  Some implementers cast the status value to an int*, as an attempt to
5256dnl use the macros for either union wait or int.  So we do a check compile to
5257dnl see if the macros are defined and apply to an int.
5258dnl
5259dnl Sets: $cf_cv_type_unionwait
5260dnl Defines: HAVE_TYPE_UNIONWAIT
5261AC_DEFUN([CF_UNION_WAIT],
5262[
5263AC_REQUIRE([CF_WAIT_HEADERS])
5264AC_MSG_CHECKING([for union wait])
5265AC_CACHE_VAL(cf_cv_type_unionwait,[
5266	AC_TRY_LINK($cf_wait_headers,
5267	[int x;
5268	 int y = WEXITSTATUS(x);
5269	 int z = WTERMSIG(x);
5270	 wait(&x);
5271	 (void)x;
5272	 (void)y;
5273	 (void)z;
5274	],
5275	[cf_cv_type_unionwait=no
5276	 echo compiles ok w/o union wait 1>&AC_FD_CC
5277	],[
5278	AC_TRY_LINK($cf_wait_headers,
5279	[union wait x;
5280#ifdef WEXITSTATUS
5281	 int y = WEXITSTATUS(x);
5282#endif
5283#ifdef WTERMSIG
5284	 int z = WTERMSIG(x);
5285#endif
5286	 wait(&x);
5287	 (void)x;
5288#ifdef WEXITSTATUS
5289	 (void)y;
5290#endif
5291#ifdef WTERMSIG
5292	 (void)z;
5293#endif
5294	],
5295	[cf_cv_type_unionwait=yes
5296	 echo compiles ok with union wait and possibly macros too 1>&AC_FD_CC
5297	],
5298	[cf_cv_type_unionwait=no])])])
5299AC_MSG_RESULT($cf_cv_type_unionwait)
5300test "$cf_cv_type_unionwait" = yes && AC_DEFINE(HAVE_TYPE_UNIONWAIT,1,[Define to 1 if type unionwait is declared])
5301])dnl
5302dnl ---------------------------------------------------------------------------
5303dnl CF_UPPER version: 5 updated: 2001/01/29 23:40:59
5304dnl --------
5305dnl Make an uppercase version of a variable
5306dnl $1=uppercase($2)
5307AC_DEFUN([CF_UPPER],
5308[
5309$1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
5310])dnl
5311dnl ---------------------------------------------------------------------------
5312dnl CF_UTF8_LIB version: 8 updated: 2012/10/06 08:57:51
5313dnl -----------
5314dnl Check for multibyte support, and if not found, utf8 compatibility library
5315AC_DEFUN([CF_UTF8_LIB],
5316[
5317AC_CACHE_CHECK(for multibyte character support,cf_cv_utf8_lib,[
5318	cf_save_LIBS="$LIBS"
5319	AC_TRY_LINK([
5320#include <stdlib.h>],[putwc(0,0);],
5321	[cf_cv_utf8_lib=yes],
5322	[CF_FIND_LINKAGE([
5323#include <libutf8.h>],[putwc(0,0);],utf8,
5324		[cf_cv_utf8_lib=add-on],
5325		[cf_cv_utf8_lib=no])
5326])])
5327
5328# HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
5329# ncurses/ncursesw:
5330if test "$cf_cv_utf8_lib" = "add-on" ; then
5331	AC_DEFINE(HAVE_LIBUTF8_H,1,[Define to 1 if we should include libutf8.h])
5332	CF_ADD_INCDIR($cf_cv_header_path_utf8)
5333	CF_ADD_LIBDIR($cf_cv_library_path_utf8)
5334	CF_ADD_LIBS($cf_cv_library_file_utf8)
5335fi
5336])dnl
5337dnl ---------------------------------------------------------------------------
5338dnl CF_VERBOSE version: 3 updated: 2007/07/29 09:55:12
5339dnl ----------
5340dnl Use AC_VERBOSE w/o the warnings
5341AC_DEFUN([CF_VERBOSE],
5342[test -n "$verbose" && echo "	$1" 1>&AC_FD_MSG
5343CF_MSG_LOG([$1])
5344])dnl
5345dnl ---------------------------------------------------------------------------
5346dnl CF_VERSION_INFO version: 8 updated: 2021/01/01 13:31:04
5347dnl ---------------
5348dnl Define several useful symbols derived from the VERSION file.  A separate
5349dnl file is preferred to embedding the version numbers in various scripts.
5350dnl (automake is a textbook-example of why the latter is a bad idea, but there
5351dnl are others).
5352dnl
5353dnl The file contents are:
5354dnl	libtool-version	release-version	patch-version
5355dnl or
5356dnl	release-version
5357dnl where
5358dnl	libtool-version (see ?) consists of 3 integers separated by '.'
5359dnl	release-version consists of a major version and minor version
5360dnl		separated by '.', optionally followed by a patch-version
5361dnl		separated by '-'.  The minor version need not be an
5362dnl		integer (but it is preferred).
5363dnl	patch-version is an integer in the form yyyymmdd, so ifdef's and
5364dnl		scripts can easily compare versions.
5365dnl
5366dnl If libtool is used, the first form is required, since CF_WITH_LIBTOOL
5367dnl simply extracts the first field using 'cut -f1'.
5368dnl
5369dnl Optional parameters:
5370dnl $1 = internal name for package
5371dnl $2 = external name for package
5372AC_DEFUN([CF_VERSION_INFO],
5373[
5374if test -f "$srcdir/VERSION" ; then
5375	AC_MSG_CHECKING(for package version)
5376
5377	# if there are not enough fields, cut returns the last one...
5378	cf_field1=`sed -e '2,$d' "$srcdir/VERSION" |cut -f1`
5379	cf_field2=`sed -e '2,$d' "$srcdir/VERSION" |cut -f2`
5380	cf_field3=`sed -e '2,$d' "$srcdir/VERSION" |cut -f3`
5381
5382	# this is how CF_BUNDLED_INTL uses $VERSION:
5383	VERSION="$cf_field1"
5384
5385	VERSION_MAJOR=`echo "$cf_field2" | sed -e 's/\..*//'`
5386	test -z "$VERSION_MAJOR" && AC_MSG_ERROR(missing major-version)
5387
5388	VERSION_MINOR=`echo "$cf_field2" | sed -e 's/^[[^.]]*\.//' -e 's/-.*//'`
5389	test -z "$VERSION_MINOR" && AC_MSG_ERROR(missing minor-version)
5390
5391	AC_MSG_RESULT(${VERSION_MAJOR}.${VERSION_MINOR})
5392
5393	AC_MSG_CHECKING(for package patch date)
5394	VERSION_PATCH=`echo "$cf_field3" | sed -e 's/^[[^-]]*-//'`
5395	case .$VERSION_PATCH in
5396	(.)
5397		AC_MSG_ERROR(missing patch-date $VERSION_PATCH)
5398		;;
5399	(.[[0-9]][[0-9]][[0-9]][[0-9]][[0-9]][[0-9]][[0-9]][[0-9]])
5400		;;
5401	(*)
5402		AC_MSG_ERROR(illegal patch-date $VERSION_PATCH)
5403		;;
5404	esac
5405	AC_MSG_RESULT($VERSION_PATCH)
5406else
5407	AC_MSG_ERROR(did not find $srcdir/VERSION)
5408fi
5409
5410# show the actual data that we have for versions:
5411CF_VERBOSE(ABI VERSION $VERSION)
5412CF_VERBOSE(VERSION_MAJOR $VERSION_MAJOR)
5413CF_VERBOSE(VERSION_MINOR $VERSION_MINOR)
5414CF_VERBOSE(VERSION_PATCH $VERSION_PATCH)
5415
5416AC_SUBST(VERSION)
5417AC_SUBST(VERSION_MAJOR)
5418AC_SUBST(VERSION_MINOR)
5419AC_SUBST(VERSION_PATCH)
5420
5421dnl if a package name is given, define its corresponding version info.  We
5422dnl need the package name to ensure that the defined symbols are unique.
5423ifelse($1,,,[
5424	cf_PACKAGE=$1
5425	PACKAGE=ifelse($2,,$1,$2)
5426	AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE",[Define to the package-name])
5427	AC_SUBST(PACKAGE)
5428	CF_UPPER(cf_PACKAGE,$cf_PACKAGE)
5429	AC_DEFINE_UNQUOTED(${cf_PACKAGE}_VERSION,"${VERSION_MAJOR}.${VERSION_MINOR}")
5430	AC_DEFINE_UNQUOTED(${cf_PACKAGE}_PATCHDATE,${VERSION_PATCH})
5431])
5432])dnl
5433dnl ---------------------------------------------------------------------------
5434dnl CF_WAIT_HEADERS version: 3 updated: 2021/01/02 09:31:20
5435dnl ---------------
5436dnl Build up an expression $cf_wait_headers with the header files needed to
5437dnl compile against the prototypes for 'wait()', 'waitpid()', etc.  Assume it's
5438dnl Posix, which uses <sys/types.h> and <sys/wait.h>, but allow SVr4 variation
5439dnl with <wait.h>.
5440AC_DEFUN([CF_WAIT_HEADERS],
5441[
5442AC_HAVE_HEADERS(sys/wait.h)
5443cf_wait_headers="#include <sys/types.h>
5444"
5445if test "$ac_cv_header_sys_wait_h" = yes; then
5446cf_wait_headers="$cf_wait_headers
5447#include <sys/wait.h>
5448"
5449else
5450AC_HAVE_HEADERS(wait.h)
5451AC_HAVE_HEADERS(waitstatus.h)
5452if test "$ac_cv_header_wait_h" = yes; then
5453cf_wait_headers="$cf_wait_headers
5454#include <wait.h>
5455"
5456fi
5457if test "$ac_cv_header_waitstatus_h" = yes; then
5458cf_wait_headers="$cf_wait_headers
5459#include <waitstatus.h>
5460"
5461fi
5462fi
5463])dnl
5464dnl ---------------------------------------------------------------------------
5465dnl CF_WIDEC_CURSES version: 6 updated: 2020/03/19 20:23:48
5466dnl ---------------
5467dnl Check for curses implementations that can handle wide-characters
5468AC_DEFUN([CF_WIDEC_CURSES],
5469[
5470AC_CACHE_CHECK(if curses supports wide characters,cf_cv_widec_curses,[
5471AC_TRY_LINK([
5472#include <stdlib.h>
5473#include <${cf_cv_ncurses_header:-curses.h}>],[
5474    wchar_t temp[2];
5475    wchar_t wch = 'A';
5476    temp[0] = wch;
5477    waddnwstr(stdscr, temp, 1);
5478],
5479[cf_cv_widec_curses=yes],
5480[cf_cv_widec_curses=no])
5481])
5482
5483if test "$cf_cv_widec_curses" = yes ; then
5484	AC_DEFINE(WIDEC_CURSES,1,[Define to 1 if curses supports wide characters])
5485
5486	# This is needed on Tru64 5.0 to declare mbstate_t
5487	AC_CACHE_CHECK(if we must include wchar.h to declare mbstate_t,cf_cv_widec_mbstate,[
5488	AC_TRY_COMPILE([
5489#include <stdlib.h>
5490#include <${cf_cv_ncurses_header:-curses.h}>],
5491[mbstate_t state; (void)state],
5492[cf_cv_widec_mbstate=no],
5493[AC_TRY_COMPILE([
5494#include <stdlib.h>
5495#include <wchar.h>
5496#include <${cf_cv_ncurses_header:-curses.h}>],
5497[mbstate_t state; (void)state],
5498[cf_cv_widec_mbstate=yes],
5499[cf_cv_widec_mbstate=unknown])])])
5500
5501if test "$cf_cv_widec_mbstate" = yes ; then
5502	AC_DEFINE(NEED_WCHAR_H,1,[Define to 1 if we must include wchar.h])
5503fi
5504
5505if test "$cf_cv_widec_mbstate" != unknown ; then
5506	AC_DEFINE(HAVE_MBSTATE_T,1,[Define to 1 if we have mbstate_t type])
5507fi
5508
5509fi
5510])dnl
5511dnl ---------------------------------------------------------------------------
5512dnl CF_WITH_ABI_VERSION version: 4 updated: 2021/01/01 13:31:04
5513dnl -------------------
5514dnl Allow library's ABI to be overridden.  Generally this happens when a
5515dnl packager has incremented the ABI past that used in the original package,
5516dnl and wishes to keep doing this.
5517dnl
5518dnl $1 is the package name, if any, to derive a corresponding {package}_ABI
5519dnl symbol.
5520AC_DEFUN([CF_WITH_ABI_VERSION],[
5521test -z "$cf_cv_abi_version" && cf_cv_abi_version=0
5522AC_ARG_WITH(abi-version,
5523[  --with-abi-version=XXX  override derived ABI version],[
5524	if test "x$cf_cv_abi_version" != "x$withval"
5525	then
5526		AC_MSG_WARN(overriding ABI version $cf_cv_abi_version to $withval)
5527		case "$cf_cv_rel_version" in
5528		(5.*)
5529			cf_cv_rel_version=$withval.0
5530			;;
5531		(6.*)
5532			cf_cv_rel_version=$withval.9	# FIXME: should be 10 as of 6.0 release
5533			;;
5534		esac
5535	fi
5536	cf_cv_abi_version=$withval])
5537	CF_NUMBER_SYNTAX($cf_cv_abi_version,ABI version)
5538ifelse($1,,,[
5539$1_ABI=$cf_cv_abi_version
5540])
5541])dnl
5542dnl ---------------------------------------------------------------------------
5543dnl CF_WITH_CURSES_DIR version: 4 updated: 2021/01/02 19:22:58
5544dnl ------------------
5545dnl Wrapper for AC_ARG_WITH to specify directory under which to look for curses
5546dnl libraries.
5547AC_DEFUN([CF_WITH_CURSES_DIR],[
5548
5549AC_MSG_CHECKING(for specific curses-directory)
5550AC_ARG_WITH(curses-dir,
5551	[  --with-curses-dir=DIR   directory in which (n)curses is installed],
5552	[cf_cv_curses_dir=$withval],
5553	[cf_cv_curses_dir=no])
5554AC_MSG_RESULT($cf_cv_curses_dir)
5555
5556if test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no"
5557then
5558	CF_PATH_SYNTAX(withval)
5559	if test -d "$cf_cv_curses_dir"
5560	then
5561		CF_ADD_INCDIR($cf_cv_curses_dir/include)
5562		CF_ADD_LIBDIR($cf_cv_curses_dir/lib)
5563	fi
5564fi
5565])dnl
5566dnl ---------------------------------------------------------------------------
5567dnl CF_WITH_DBMALLOC version: 7 updated: 2010/06/21 17:26:47
5568dnl ----------------
5569dnl Configure-option for dbmalloc.  The optional parameter is used to override
5570dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
5571AC_DEFUN([CF_WITH_DBMALLOC],[
5572CF_NO_LEAKS_OPTION(dbmalloc,
5573	[  --with-dbmalloc         test: use Conor Cahill's dbmalloc library],
5574	[USE_DBMALLOC])
5575
5576if test "$with_dbmalloc" = yes ; then
5577	AC_CHECK_HEADER(dbmalloc.h,
5578		[AC_CHECK_LIB(dbmalloc,[debug_malloc]ifelse([$1],,[],[,$1]))])
5579fi
5580])dnl
5581dnl ---------------------------------------------------------------------------
5582dnl CF_WITH_DMALLOC version: 7 updated: 2010/06/21 17:26:47
5583dnl ---------------
5584dnl Configure-option for dmalloc.  The optional parameter is used to override
5585dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
5586AC_DEFUN([CF_WITH_DMALLOC],[
5587CF_NO_LEAKS_OPTION(dmalloc,
5588	[  --with-dmalloc          test: use Gray Watson's dmalloc library],
5589	[USE_DMALLOC])
5590
5591if test "$with_dmalloc" = yes ; then
5592	AC_CHECK_HEADER(dmalloc.h,
5593		[AC_CHECK_LIB(dmalloc,[dmalloc_debug]ifelse([$1],,[],[,$1]))])
5594fi
5595])dnl
5596dnl ---------------------------------------------------------------------------
5597dnl CF_WITH_EXPORT_SYMS version: 3 updated: 2014/12/20 19:16:08
5598dnl -------------------
5599dnl Use this with libtool to specify the list of symbols that may be exported.
5600dnl The input file contains one symbol per line; comments work with "#".
5601dnl
5602dnl $1 = basename of the ".sym" file (default $PACKAGE)
5603AC_DEFUN([CF_WITH_EXPORT_SYMS],
5604[
5605AC_MSG_CHECKING(if exported-symbols file should be used)
5606AC_ARG_WITH(export-syms,
5607	[  --with-export-syms=XXX  limit exported symbols using libtool],
5608	[with_export_syms=$withval],
5609	[with_export_syms=no])
5610if test "x$with_export_syms" = xyes
5611then
5612	with_export_syms='${top_srcdir}/package/ifelse($1,,${PACKAGE},[$1]).sym'
5613	AC_SUBST(PACKAGE)
5614fi
5615AC_MSG_RESULT($with_export_syms)
5616if test "x$with_export_syms" != xno
5617then
5618	EXPORT_SYMS="-export-symbols $with_export_syms"
5619	AC_SUBST(EXPORT_SYMS)
5620fi
5621])dnl
5622dnl ---------------------------------------------------------------------------
5623dnl CF_WITH_INSTALL_PREFIX version: 4 updated: 2010/10/23 15:52:32
5624dnl ----------------------
5625dnl Configure-script option to give a default value for the poorly-chosen name
5626dnl $(DESTDIR).
5627AC_DEFUN([CF_WITH_INSTALL_PREFIX],
5628[
5629AC_MSG_CHECKING(for install-prefix)
5630AC_ARG_WITH(install-prefix,
5631	[  --with-install-prefix=XXX sets DESTDIR, useful for packaging],
5632	[cf_opt_with_install_prefix=$withval],
5633	[cf_opt_with_install_prefix=${DESTDIR:-no}])
5634AC_MSG_RESULT($cf_opt_with_install_prefix)
5635if test "$cf_opt_with_install_prefix" != no ; then
5636	CF_PATH_SYNTAX(cf_opt_with_install_prefix)
5637	DESTDIR=$cf_opt_with_install_prefix
5638fi
5639AC_SUBST(DESTDIR)
5640])dnl
5641dnl ---------------------------------------------------------------------------
5642dnl CF_WITH_LIBTOOL version: 36 updated: 2021/01/01 13:31:04
5643dnl ---------------
5644dnl Provide a configure option to incorporate libtool.  Define several useful
5645dnl symbols for the makefile rules.
5646dnl
5647dnl The reference to AC_PROG_LIBTOOL does not normally work, since it uses
5648dnl macros from libtool.m4 which is in the aclocal directory of automake.
5649dnl Following is a simple script which turns on the AC_PROG_LIBTOOL macro.
5650dnl But that still does not work properly since the macro is expanded outside
5651dnl the CF_WITH_LIBTOOL macro:
5652dnl
5653dnl	#!/bin/sh
5654dnl	ACLOCAL=`aclocal --print-ac-dir`
5655dnl	if test -z "$ACLOCAL" ; then
5656dnl		echo cannot find aclocal directory
5657dnl		exit 1
5658dnl	elif test ! -f $ACLOCAL/libtool.m4 ; then
5659dnl		echo cannot find libtool.m4 file
5660dnl		exit 1
5661dnl	fi
5662dnl
5663dnl	LOCAL=aclocal.m4
5664dnl	ORIG=aclocal.m4.orig
5665dnl
5666dnl	trap "mv $ORIG $LOCAL" 0 1 2 3 15
5667dnl	rm -f $ORIG
5668dnl	mv $LOCAL $ORIG
5669dnl
5670dnl	# sed the LIBTOOL= assignment to omit the current directory?
5671dnl	sed -e 's/^LIBTOOL=.*/LIBTOOL=${LIBTOOL:-libtool}/' $ACLOCAL/libtool.m4 >>$LOCAL
5672dnl	cat $ORIG >>$LOCAL
5673dnl
5674dnl	autoconf-257 $*
5675dnl
5676AC_DEFUN([CF_WITH_LIBTOOL],
5677[
5678AC_REQUIRE([CF_DISABLE_LIBTOOL_VERSION])
5679ifdef([AC_PROG_LIBTOOL],,[
5680LIBTOOL=
5681])
5682# common library maintenance symbols that are convenient for libtool scripts:
5683LIB_CREATE='${AR} -cr'
5684LIB_OBJECT='${OBJECTS}'
5685LIB_SUFFIX=.a
5686LIB_PREP="$RANLIB"
5687
5688# symbols used to prop libtool up to enable it to determine what it should be
5689# doing:
5690LIB_CLEAN=
5691LIB_COMPILE=
5692LIB_LINK='${CC}'
5693LIB_INSTALL=
5694LIB_UNINSTALL=
5695
5696AC_MSG_CHECKING(if you want to build libraries with libtool)
5697AC_ARG_WITH(libtool,
5698	[  --with-libtool          generate libraries with libtool],
5699	[with_libtool=$withval],
5700	[with_libtool=no])
5701AC_MSG_RESULT($with_libtool)
5702if test "$with_libtool" != "no"; then
5703ifdef([AC_PROG_LIBTOOL],[
5704	# missing_content_AC_PROG_LIBTOOL{{
5705	AC_PROG_LIBTOOL
5706	# missing_content_AC_PROG_LIBTOOL}}
5707],[
5708	if test "$with_libtool" != "yes" ; then
5709		CF_PATH_SYNTAX(with_libtool)
5710		LIBTOOL=$with_libtool
5711	else
5712		AC_CHECK_TOOLS(LIBTOOL,[libtool glibtool],none)
5713		CF_LIBTOOL_VERSION
5714		if test -z "$cf_cv_libtool_version" && test "$LIBTOOL" = libtool
5715		then
5716			CF_FORGET_TOOL(LIBTOOL)
5717			AC_CHECK_TOOLS(LIBTOOL,[glibtool],none)
5718			CF_LIBTOOL_VERSION
5719		fi
5720	fi
5721	if test -z "$LIBTOOL" ; then
5722		AC_MSG_ERROR(Cannot find libtool)
5723	fi
5724])dnl
5725	LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${libdir} ${LIBTOOL_VERSION} `cut -f1 ${top_srcdir}/VERSION` ${LIBTOOL_OPTS} ${LT_UNDEF} $(LIBS) -o'
5726	LIB_OBJECT='${OBJECTS:.o=.lo}'
5727	LIB_SUFFIX=.la
5728	LIB_CLEAN='${LIBTOOL} --mode=clean'
5729	LIB_COMPILE='${LIBTOOL} --mode=compile'
5730	LIB_LINK='${LIBTOOL} --mode=link ${CC} ${LIBTOOL_OPTS}'
5731	LIB_INSTALL='${LIBTOOL} --mode=install'
5732	LIB_UNINSTALL='${LIBTOOL} --mode=uninstall'
5733	LIB_PREP=:
5734
5735	CF_CHECK_LIBTOOL_VERSION
5736
5737	# special hack to add -no-undefined (which libtool should do for itself)
5738	LT_UNDEF=
5739	case "$cf_cv_system_name" in
5740	(cygwin*|msys*|mingw32*|os2*|uwin*|aix[[4-7]])
5741		LT_UNDEF=-no-undefined
5742		;;
5743	esac
5744	AC_SUBST([LT_UNDEF])
5745
5746	# special hack to add --tag option for C++ compiler
5747	case "$cf_cv_libtool_version" in
5748	(1.[[5-9]]*|[[2-9]].[[0-9.a-z]]*)
5749		LIBTOOL_CXX="$LIBTOOL --tag=CXX"
5750		LIBTOOL="$LIBTOOL --tag=CC"
5751		;;
5752	(*)
5753		LIBTOOL_CXX="$LIBTOOL"
5754		;;
5755	esac
5756else
5757	LIBTOOL=""
5758	LIBTOOL_CXX=""
5759fi
5760
5761test -z "$LIBTOOL" && ECHO_LT=
5762
5763AC_SUBST(LIBTOOL)
5764AC_SUBST(LIBTOOL_CXX)
5765AC_SUBST(LIBTOOL_OPTS)
5766
5767AC_SUBST(LIB_CREATE)
5768AC_SUBST(LIB_OBJECT)
5769AC_SUBST(LIB_SUFFIX)
5770AC_SUBST(LIB_PREP)
5771
5772AC_SUBST(LIB_CLEAN)
5773AC_SUBST(LIB_COMPILE)
5774AC_SUBST(LIB_LINK)
5775AC_SUBST(LIB_INSTALL)
5776AC_SUBST(LIB_UNINSTALL)
5777
5778])dnl
5779dnl ---------------------------------------------------------------------------
5780dnl CF_WITH_LIBTOOL_OPTS version: 4 updated: 2015/04/17 21:13:04
5781dnl --------------------
5782dnl Allow user to pass additional libtool options into the library creation
5783dnl and link steps.  The main use for this is to do something like
5784dnl	./configure --with-libtool-opts=-static
5785dnl to get the same behavior as automake-flavored
5786dnl	./configure --enable-static
5787AC_DEFUN([CF_WITH_LIBTOOL_OPTS],[
5788AC_MSG_CHECKING(for additional libtool options)
5789AC_ARG_WITH(libtool-opts,
5790	[  --with-libtool-opts=XXX specify additional libtool options],
5791	[with_libtool_opts=$withval],
5792	[with_libtool_opts=no])
5793AC_MSG_RESULT($with_libtool_opts)
5794
5795case .$with_libtool_opts in
5796(.yes|.no|.)
5797	;;
5798(*)
5799	LIBTOOL_OPTS="$LIBTOOL_OPTS $with_libtool_opts"
5800	;;
5801esac
5802
5803AC_SUBST(LIBTOOL_OPTS)
5804])dnl
5805dnl ---------------------------------------------------------------------------
5806dnl CF_WITH_MAN2HTML version: 12 updated: 2021/01/03 18:30:50
5807dnl ----------------
5808dnl Check for man2html and groff.  Prefer man2html over groff, but use groff
5809dnl as a fallback.  See
5810dnl
5811dnl		http://invisible-island.net/scripts/man2html.html
5812dnl
5813dnl Generate a shell script which hides the differences between the two.
5814dnl
5815dnl We name that "man2html.tmp".
5816dnl
5817dnl The shell script can be removed later, e.g., using "make distclean".
5818AC_DEFUN([CF_WITH_MAN2HTML],[
5819AC_REQUIRE([CF_PROG_GROFF])dnl
5820AC_REQUIRE([AC_PROG_FGREP])dnl
5821
5822case "x${with_man2html}" in
5823(xno)
5824	cf_man2html=no
5825	;;
5826(x|xyes)
5827	AC_PATH_PROG(cf_man2html,man2html,no)
5828	case "x$cf_man2html" in
5829	(x/*)
5830		AC_MSG_CHECKING(for the modified Earl Hood script)
5831		if ( $cf_man2html -help 2>&1 | grep 'Make an index of headers at the end' >/dev/null )
5832		then
5833			cf_man2html_ok=yes
5834		else
5835			cf_man2html=no
5836			cf_man2html_ok=no
5837		fi
5838		AC_MSG_RESULT($cf_man2html_ok)
5839		;;
5840	(*)
5841		cf_man2html=no
5842		;;
5843	esac
5844esac
5845
5846AC_MSG_CHECKING(for program to convert manpage to html)
5847AC_ARG_WITH(man2html,
5848	[  --with-man2html=XXX     use XXX rather than groff],
5849	[cf_man2html=$withval],
5850	[cf_man2html=$cf_man2html])
5851
5852cf_with_groff=no
5853
5854case $cf_man2html in
5855(yes)
5856	AC_MSG_RESULT(man2html)
5857	AC_PATH_PROG(cf_man2html,man2html,no)
5858	;;
5859(no|groff|*/groff*)
5860	cf_with_groff=yes
5861	cf_man2html=$GROFF_PATH
5862	AC_MSG_RESULT($cf_man2html)
5863	;;
5864(*)
5865	AC_MSG_RESULT($cf_man2html)
5866	;;
5867esac
5868
5869MAN2HTML_TEMP="man2html.tmp"
5870	cat >$MAN2HTML_TEMP <<CF_EOF
5871#!$SHELL
5872# Temporary script generated by CF_WITH_MAN2HTML
5873# Convert inputs to html, sending result to standard output.
5874#
5875# Parameters:
5876# \${1} = rootname of file to convert
5877# \${2} = suffix of file to convert, e.g., "1"
5878# \${3} = macros to use, e.g., "man"
5879#
5880ROOT=\[$]1
5881TYPE=\[$]2
5882MACS=\[$]3
5883
5884unset LANG
5885unset LC_ALL
5886unset LC_CTYPE
5887unset LANGUAGE
5888GROFF_NO_SGR=stupid
5889export GROFF_NO_SGR
5890
5891CF_EOF
5892
5893NROFF_OPTS=
5894if test "x$cf_with_groff" = xyes
5895then
5896	MAN2HTML_NOTE="$GROFF_NOTE"
5897	MAN2HTML_PATH="$GROFF_PATH"
5898	cat >>$MAN2HTML_TEMP <<CF_EOF
5899$SHELL -c "$TBL_PATH \${ROOT}.\${TYPE} | $GROFF_PATH -P -o0 -I\${ROOT}_ -Thtml -\${MACS}"
5900CF_EOF
5901else
5902	# disable hyphenation if this is groff
5903	if test "x$GROFF_PATH" != xno
5904	then
5905		AC_MSG_CHECKING(if nroff is really groff)
5906		cf_check_groff="`$NROFF_PATH --version 2>/dev/null | grep groff`"
5907		test -n "$cf_check_groff" && cf_check_groff=yes
5908		test -n "$cf_check_groff" || cf_check_groff=no
5909		AC_MSG_RESULT($cf_check_groff)
5910		test "x$cf_check_groff" = xyes && NROFF_OPTS="-rHY=0"
5911	fi
5912	MAN2HTML_NOTE=""
5913	CF_PATH_SYNTAX(cf_man2html)
5914	MAN2HTML_PATH="$cf_man2html"
5915	AC_MSG_CHECKING(for $cf_man2html top/bottom margins)
5916
5917	# for this example, expect 3 lines of content, the remainder is head/foot
5918	cat >conftest.in <<CF_EOF
5919.TH HEAD1 HEAD2 HEAD3 HEAD4 HEAD5
5920.SH SECTION
5921MARKER
5922CF_EOF
5923
5924	LC_ALL=C LC_CTYPE=C LANG=C LANGUAGE=C $NROFF_PATH -man conftest.in >conftest.out
5925
5926	cf_man2html_1st="`${FGREP-fgrep} -n MARKER conftest.out |sed -e 's/^[[^0-9]]*://' -e 's/:.*//'`"
5927	cf_man2html_top=`expr "$cf_man2html_1st" - 2`
5928	cf_man2html_bot="`wc -l conftest.out |sed -e 's/[[^0-9]]//g'`"
5929	cf_man2html_bot=`expr "$cf_man2html_bot" - 2 - "$cf_man2html_top"`
5930	cf_man2html_top_bot="-topm=$cf_man2html_top -botm=$cf_man2html_bot"
5931
5932	AC_MSG_RESULT($cf_man2html_top_bot)
5933
5934	AC_MSG_CHECKING(for pagesize to use)
5935	for cf_block in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
5936	do
5937	cat >>conftest.in <<CF_EOF
5938.nf
59390
59401
59412
59423
59434
59445
59456
59467
59478
59489
5949CF_EOF
5950	done
5951
5952	LC_ALL=C LC_CTYPE=C LANG=C LANGUAGE=C $NROFF_PATH -man conftest.in >conftest.out
5953	cf_man2html_page="`${FGREP-fgrep} -n HEAD1 conftest.out |sed -n '$p' |sed -e 's/^[[^0-9]]*://' -e 's/:.*//'`"
5954	test -z "$cf_man2html_page" && cf_man2html_page=99999
5955	test "$cf_man2html_page" -gt 100 && cf_man2html_page=99999
5956
5957	rm -rf conftest*
5958	AC_MSG_RESULT($cf_man2html_page)
5959
5960	cat >>$MAN2HTML_TEMP <<CF_EOF
5961: \${MAN2HTML_PATH=$MAN2HTML_PATH}
5962MAN2HTML_OPTS="\$MAN2HTML_OPTS -index -title=\"\$ROOT(\$TYPE)\" -compress -pgsize $cf_man2html_page"
5963case \${TYPE} in
5964(ms)
5965	$TBL_PATH \${ROOT}.\${TYPE} | $NROFF_PATH $NROFF_OPTS -\${MACS} | \$MAN2HTML_PATH -topm=0 -botm=0 \$MAN2HTML_OPTS
5966	;;
5967(*)
5968	$TBL_PATH \${ROOT}.\${TYPE} | $NROFF_PATH $NROFF_OPTS -\${MACS} | \$MAN2HTML_PATH $cf_man2html_top_bot \$MAN2HTML_OPTS
5969	;;
5970esac
5971CF_EOF
5972fi
5973
5974chmod 700 $MAN2HTML_TEMP
5975
5976AC_SUBST(MAN2HTML_NOTE)
5977AC_SUBST(MAN2HTML_PATH)
5978AC_SUBST(MAN2HTML_TEMP)
5979])dnl
5980dnl ---------------------------------------------------------------------------
5981dnl CF_WITH_NCURSES_ETC version: 5 updated: 2016/02/20 19:23:20
5982dnl -------------------
5983dnl Use this macro for programs which use any variant of "curses", e.g.,
5984dnl "ncurses", and "PDCurses".  Programs that can use curses and some unrelated
5985dnl library (such as slang) should use a "--with-screen=XXX" option.
5986dnl
5987dnl This does not use AC_DEFUN, because that would tell autoconf to run each
5988dnl of the macros inside this one - before this macro.
5989define([CF_WITH_NCURSES_ETC],[
5990CF_WITH_CURSES_DIR
5991
5992cf_cv_screen=curses
5993
5994AC_MSG_CHECKING(for specified curses library type)
5995AC_ARG_WITH(screen,
5996	[  --with-screen=XXX       use specified curses-libraries],
5997	[cf_cv_screen=$withval],[
5998
5999AC_ARG_WITH(ncursesw,
6000	[  --with-ncursesw         use wide ncurses-libraries],
6001	[cf_cv_screen=ncursesw],[
6002
6003AC_ARG_WITH(ncurses,
6004	[  --with-ncurses          use ncurses-libraries],
6005	[cf_cv_screen=ncurses],[
6006
6007AC_ARG_WITH(pdcurses,
6008	[  --with-pdcurses         compile/link with pdcurses X11 library],
6009	[cf_cv_screen=pdcurses],[
6010
6011AC_ARG_WITH(curses-colr,
6012	[  --with-curses-colr      compile/link with HPUX 10.x color-curses],
6013	[cf_cv_screen=curses_colr],[
6014
6015AC_ARG_WITH(curses-5lib,
6016	[  --with-curses-5lib      compile/link with SunOS 5lib curses],
6017	[cf_cv_screen=curses_5lib])])])])])])
6018
6019AC_MSG_RESULT($cf_cv_screen)
6020
6021case $cf_cv_screen in
6022(curses|curses_*)
6023	CF_CURSES_CONFIG
6024	;;
6025(ncursesw*)
6026	CF_UTF8_LIB
6027	CF_NCURSES_CONFIG($cf_cv_screen)
6028	;;
6029(ncurses*)
6030	CF_NCURSES_CONFIG($cf_cv_screen)
6031	;;
6032(pdcurses)
6033	CF_PDCURSES_X11
6034	;;
6035(*)
6036	AC_MSG_ERROR(unexpected screen-value: $cf_cv_screen)
6037	;;
6038esac
6039
6040CF_NCURSES_PTHREADS($cf_cv_screen)
6041
6042])dnl
6043dnl ---------------------------------------------------------------------------
6044dnl CF_WITH_NO_LEAKS version: 4 updated: 2021/01/05 20:08:11
6045dnl ----------------
6046AC_DEFUN([CF_WITH_NO_LEAKS],[
6047
6048AC_REQUIRE([CF_WITH_DMALLOC])
6049AC_REQUIRE([CF_WITH_DBMALLOC])
6050AC_REQUIRE([CF_WITH_PURIFY])
6051AC_REQUIRE([CF_WITH_VALGRIND])
6052
6053AC_MSG_CHECKING(if you want to perform memory-leak testing)
6054AC_ARG_WITH(no-leaks,
6055	[  --with-no-leaks         test: free permanent memory, analyze leaks],
6056	[AC_DEFINE(NO_LEAKS,1,[Define to 1 to enable leak-checking])
6057	 cf_doalloc=".${with_dmalloc}${with_dbmalloc}${with_purify}${with_valgrind}"
6058	 case ${cf_doalloc} in
6059	 (*yes*) ;;
6060	 (*) AC_DEFINE(DOALLOC,10000,[Define to size of malloc-array]) ;;
6061	 esac
6062	 enable_leaks=no],
6063	[enable_leaks=yes])
6064dnl TODO - drop with_no_leaks
6065if test "x$enable_leaks" = xno; then with_no_leaks=yes; else with_no_leaks=no; fi
6066AC_MSG_RESULT($with_no_leaks)
6067])dnl
6068dnl ---------------------------------------------------------------------------
6069dnl CF_WITH_PURIFY version: 2 updated: 2006/12/14 18:43:43
6070dnl --------------
6071AC_DEFUN([CF_WITH_PURIFY],[
6072CF_NO_LEAKS_OPTION(purify,
6073	[  --with-purify           test: use Purify],
6074	[USE_PURIFY],
6075	[LINK_PREFIX="$LINK_PREFIX purify"])
6076AC_SUBST(LINK_PREFIX)
6077])dnl
6078dnl ---------------------------------------------------------------------------
6079dnl CF_WITH_REL_VERSION version: 1 updated: 2003/09/20 18:12:49
6080dnl -------------------
6081dnl Allow library's release-version to be overridden.  Generally this happens when a
6082dnl packager has incremented the release-version past that used in the original package,
6083dnl and wishes to keep doing this.
6084dnl
6085dnl $1 is the package name, if any, to derive corresponding {package}_MAJOR
6086dnl and {package}_MINOR symbols
6087dnl symbol.
6088AC_DEFUN([CF_WITH_REL_VERSION],[
6089test -z "$cf_cv_rel_version" && cf_cv_rel_version=0.0
6090AC_ARG_WITH(rel-version,
6091[  --with-rel-version=XXX  override derived release version],
6092[AC_MSG_WARN(overriding release version $cf_cv_rel_version to $withval)
6093 cf_cv_rel_version=$withval])
6094ifelse($1,,[
6095 CF_NUMBER_SYNTAX($cf_cv_rel_version,Release version)
6096],[
6097 $1_MAJOR=`echo "$cf_cv_rel_version" | sed -e 's/\..*//'`
6098 $1_MINOR=`echo "$cf_cv_rel_version" | sed -e 's/^[[^.]]*//' -e 's/^\.//' -e 's/\..*//'`
6099 CF_NUMBER_SYNTAX([$]$1_MAJOR,Release major-version)
6100 CF_NUMBER_SYNTAX([$]$1_MINOR,Release minor-version)
6101])
6102])dnl
6103dnl ---------------------------------------------------------------------------
6104dnl CF_WITH_SCREEN_PDCURSES version: 1 updated: 2020/08/28 16:56:27
6105dnl -----------------------
6106dnl Call this macro before CF_ENABLE_WARNINGS for configure scripts which use
6107dnl the "--with-screen=pdcurses" selection.  Doing that allows the configure
6108dnl script to search for the X11/Xt header files to declare (or not) the
6109dnl symbol needed to enable "const" in those header files.  If that configure
6110dnl option is not used, then those checks are unnecessary.
6111AC_DEFUN([CF_WITH_SCREEN_PDCURSES],[
6112AC_PROVIDE([AC_PATH_XTRA])
6113AC_PROVIDE([AC_PATH_X])
6114if test -n "$with_screen" && test "x$with_screen" = "xpdcurses"
6115then
6116	AC_PATH_X
6117	AC_PATH_XTRA
6118fi
6119])dnl
6120dnl ---------------------------------------------------------------------------
6121dnl CF_WITH_SHARED_OR_LIBTOOL version: 7 updated: 2014/11/02 16:11:49
6122dnl -------------------------
6123dnl Provide shared libraries using either autoconf macros (--with-shared) or
6124dnl using the external libtool script (--with-libtool).
6125dnl
6126dnl $1 = program name (all caps preferred)
6127dnl $1 = release version
6128dnl $2 = ABI version
6129define([CF_WITH_SHARED_OR_LIBTOOL],[
6130
6131REL_VERSION=$2
6132ABI_VERSION=$3
6133cf_cv_rel_version=$REL_VERSION
6134AC_SUBST(ABI_VERSION)
6135AC_SUBST(REL_VERSION)
6136
6137CF_WITH_REL_VERSION($1)
6138CF_WITH_ABI_VERSION
6139
6140LIB_MODEL=static
6141DFT_LWR_MODEL=$LIB_MODEL
6142LIBTOOL_MAKE="#"
6143
6144# use to comment-out makefile lines
6145MAKE_NORMAL=
6146MAKE_STATIC=
6147MAKE_SHARED="#"
6148MAKE_DLLS="#"
6149
6150shlibdir=$libdir
6151AC_SUBST(shlibdir)
6152
6153CF_WITH_LIBTOOL
6154
6155LIB_CREATE="$LIB_CREATE \[$]@"
6156
6157if test "$with_libtool" = "yes" ; then
6158	OBJEXT="lo"
6159	LIB_MODEL=libtool
6160	DFT_LWR_MODEL=$LIB_MODEL
6161	LIBTOOL_MAKE=
6162	CF_WITH_LIBTOOL_OPTS
6163	CF_WITH_EXPORT_SYMS
6164	MAKE_NORMAL="#"
6165	MAKE_STATIC="#"
6166	MAKE_SHARED=
6167else
6168	AC_MSG_CHECKING(if you want to build shared libraries)
6169	AC_ARG_WITH(shared,
6170		[  --with-shared           generate shared-libraries],
6171		[with_shared=$withval],
6172		[with_shared=no])
6173	AC_MSG_RESULT($with_shared)
6174	if test "$with_shared" = "yes" ; then
6175		LIB_MODEL=shared
6176		DFT_LWR_MODEL=$LIB_MODEL
6177		CF_SHARED_OPTS
6178		CF_WITH_VERSIONED_SYMS
6179		LIB_PREP=:
6180		LIB_CREATE="[$]MK_SHARED_LIB"
6181		CFLAGS="$CFLAGS $CC_SHARED_OPTS"
6182		MAKE_NORMAL="#"
6183		MAKE_STATIC="#"
6184		MAKE_SHARED=
6185	fi
6186fi
6187
6188LIB_SUFFIX=
6189CF_LIB_SUFFIX($LIB_MODEL, DFT_LIB_SUFFIX, DFT_DEP_SUFFIX)
6190LIB_SUFFIX=$DFT_LIB_SUFFIX
6191
6192AC_SUBST(DFT_LWR_MODEL)
6193AC_SUBST(DFT_LIB_SUFFIX)
6194AC_SUBST(DFT_DEP_SUFFIX)
6195AC_SUBST(LIB_MODEL)
6196
6197AC_SUBST(LIBTOOL_MAKE)
6198
6199AC_SUBST(MAKE_DLLS)
6200AC_SUBST(MAKE_NORMAL)
6201AC_SUBST(MAKE_SHARED)
6202AC_SUBST(MAKE_STATIC)
6203])dnl
6204dnl ---------------------------------------------------------------------------
6205dnl CF_WITH_VALGRIND version: 1 updated: 2006/12/14 18:00:21
6206dnl ----------------
6207AC_DEFUN([CF_WITH_VALGRIND],[
6208CF_NO_LEAKS_OPTION(valgrind,
6209	[  --with-valgrind         test: use valgrind],
6210	[USE_VALGRIND])
6211])dnl
6212dnl ---------------------------------------------------------------------------
6213dnl CF_WITH_VERSIONED_SYMS version: 10 updated: 2021/01/04 18:48:01
6214dnl ----------------------
6215dnl Use this when building shared library with ELF, to markup symbols with the
6216dnl version identifier from the given input file.  Generally that identifier is
6217dnl the same as the SONAME at which the symbol was first introduced.
6218dnl
6219dnl $1 = basename of the ".map" file (default $PACKAGE)
6220AC_DEFUN([CF_WITH_VERSIONED_SYMS],
6221[AC_REQUIRE([AC_PROG_FGREP])dnl
6222AC_REQUIRE([AC_PROG_EGREP])dnl
6223
6224AC_MSG_CHECKING(if versioned-symbols file should be used)
6225AC_ARG_WITH(versioned-syms,
6226	[  --with-versioned-syms=X markup versioned symbols using ld],
6227	[with_versioned_syms=$withval],
6228	[with_versioned_syms=no])
6229case "x$with_versioned_syms" in
6230(xyes)
6231	with_versioned_syms='${top_srcdir}/package/ifelse($1,,${PACKAGE},[$1]).map'
6232	AC_SUBST(PACKAGE)
6233	;;
6234(xno)
6235	;;
6236(x/*)
6237	test -f "$with_versioned_syms" || AC_MSG_ERROR(expected a filename: $with_versioned_syms)
6238	;;
6239(*)
6240	test -f "$with_versioned_syms" || AC_MSG_ERROR(expected a filename: $with_versioned_syms)
6241	with_versioned_syms=`pwd`/"$with_versioned_syms"
6242	;;
6243esac
6244AC_MSG_RESULT($with_versioned_syms)
6245
6246RESULTING_SYMS=
6247VERSIONED_SYMS=
6248WILDCARD_SYMS=
6249
6250if test "x$with_versioned_syms" != xno
6251then
6252	RESULTING_SYMS=$with_versioned_syms
6253	case "x$MK_SHARED_LIB" in
6254	(*-Wl,*)
6255		VERSIONED_SYMS="-Wl,--version-script,\${RESULTING_SYMS}"
6256		MK_SHARED_LIB=`echo "$MK_SHARED_LIB" | sed -e "s%-Wl,%\\[$]{VERSIONED_SYMS} -Wl,%"`
6257		CF_VERBOSE(MK_SHARED_LIB:  $MK_SHARED_LIB)
6258		;;
6259	(*-dy\ *)
6260		VERSIONED_SYMS="-Wl,-M,\${RESULTING_SYMS}"
6261		MK_SHARED_LIB=`echo "$MK_SHARED_LIB" | sed -e "s%-dy%\\[$]{VERSIONED_SYMS} -dy%"`
6262		CF_VERBOSE(MK_SHARED_LIB:  $MK_SHARED_LIB)
6263		;;
6264	(*)
6265		AC_MSG_WARN(this system does not support versioned-symbols)
6266		;;
6267	esac
6268
6269	# Linux ld can selectively override scope, e.g., of symbols beginning with
6270	# "_" by first declaring some as global, and then using a wildcard to
6271	# declare the others as local.  Some other loaders cannot do this.  Check
6272	# by constructing a (very) simple shared library and inspecting its
6273	# symbols.
6274	if test "x$VERSIONED_SYMS" != "x"
6275	then
6276		AC_MSG_CHECKING(if wildcards can be used to selectively omit symbols)
6277		WILDCARD_SYMS=no
6278
6279		# make sources
6280		rm -f conftest.*
6281
6282		cat >conftest.ver <<EOF
6283module_1.0 {
6284global:
6285	globalf1;
6286local:
6287	localf1;
6288};
6289module_2.0 {
6290global:
6291	globalf2;
6292local:
6293	localf2;
6294	_*;
6295} module_1.0;
6296submodule_1.0 {
6297global:
6298	subglobalf1;
6299	_ismissing;
6300local:
6301	sublocalf1;
6302};
6303submodule_2.0 {
6304global:
6305	subglobalf2;
6306local:
6307	sublocalf2;
6308	_*;
6309} submodule_1.0;
6310EOF
6311		cat >conftest.$ac_ext <<EOF
6312#line __oline__ "configure"
6313int	_ismissing(void) { return 1; }
6314int	_localf1(void) { return 1; }
6315int	_localf2(void) { return 2; }
6316int	globalf1(void) { return 1; }
6317int	globalf2(void) { return 2; }
6318int	_sublocalf1(void) { return 1; }
6319int	_sublocalf2(void) { return 2; }
6320int	subglobalf1(void) { return 1; }
6321int	subglobalf2(void) { return 2; }
6322EOF
6323		cat >conftest.mk <<EOF
6324CC=${CC}
6325CFLAGS=${CFLAGS}
6326CPPFLAGS=${CPPFLAGS}
6327LDFLAGS=${LDFLAGS}
6328LIBS=${LIBS}
6329VERSIONED_SYMS=${VERSIONED_SYMS}
6330RESULTING_SYMS=conftest.ver
6331MK_SHARED_LIB=${MK_SHARED_LIB}
6332conftest.so: conftest.$ac_cv_objext
6333		\$(MK_SHARED_LIB) conftest.$ac_cv_objext
6334EOF
6335
6336		# compile source, make library
6337		if make -f conftest.mk 2>&AC_FD_CC >/dev/null
6338		then
6339			# test for missing symbol in either Data or Text section
6340			cf_missing="`nm -P conftest.so 2>&AC_FD_CC |${FGREP-fgrep} _ismissing | ${EGREP-egrep} '[[ 	]][[DT]][[ 	]]'`"
6341			test -n "$cf_missing" && WILDCARD_SYMS=yes
6342		fi
6343		AC_MSG_RESULT($WILDCARD_SYMS)
6344		rm -f conftest.*
6345	fi
6346fi
6347AC_SUBST(RESULTING_SYMS)
6348AC_SUBST(VERSIONED_SYMS)
6349AC_SUBST(WILDCARD_SYMS)
6350])dnl
6351dnl ---------------------------------------------------------------------------
6352dnl CF_XOPEN_CURSES version: 16 updated: 2021/01/02 09:31:20
6353dnl ---------------
6354dnl Test if we should define X/Open source for curses, needed on Digital Unix
6355dnl 4.x, to see the extended functions, but breaks on IRIX 6.x.
6356dnl
6357dnl The getbegyx() check is needed for HPUX, which omits legacy macros such
6358dnl as getbegy().  The latter is better design, but the former is standard.
6359AC_DEFUN([CF_XOPEN_CURSES],
6360[
6361AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
6362AC_CACHE_CHECK(definition to turn on extended curses functions,cf_cv_need_xopen_extension,[
6363cf_cv_need_xopen_extension=unknown
6364AC_TRY_LINK([
6365#include <stdlib.h>
6366#include <${cf_cv_ncurses_header:-curses.h}>],[
6367#if defined(NCURSES_VERSION_PATCH)
6368#if (NCURSES_VERSION_PATCH < 20100501) && (NCURSES_VERSION_PATCH >= 20100403)
6369	make an error
6370#endif
6371#endif
6372#ifdef NCURSES_VERSION
6373	cchar_t check;
6374	int check2 = curs_set((int)sizeof(check));
6375#endif
6376	long x = winnstr(stdscr, "", 0);
6377	int x1, y1;
6378#ifdef NCURSES_VERSION
6379	(void)check2;
6380#endif
6381	getbegyx(stdscr, y1, x1);
6382	(void)x;
6383	(void)y1;
6384	(void)x1;
6385	],
6386	[cf_cv_need_xopen_extension=none],
6387	[
6388	for cf_try_xopen_extension in _XOPEN_SOURCE_EXTENDED NCURSES_WIDECHAR
6389	do
6390		AC_TRY_LINK([
6391#define $cf_try_xopen_extension 1
6392#include <stdlib.h>
6393#include <${cf_cv_ncurses_header:-curses.h}>],[
6394#ifdef NCURSES_VERSION
6395		cchar_t check;
6396		int check2 = curs_set((int)sizeof(check));
6397#endif
6398		long x = winnstr(stdscr, "", 0);
6399		int x1, y1;
6400		getbegyx(stdscr, y1, x1);
6401#ifdef NCURSES_VERSION
6402		(void)check2;
6403#endif
6404		(void)x;
6405		(void)y1;
6406		(void)x1;
6407		],
6408		[cf_cv_need_xopen_extension=$cf_try_xopen_extension; break])
6409	done
6410	])
6411])
6412
6413case "$cf_cv_need_xopen_extension" in
6414(*_*)
6415	CF_APPEND_TEXT(CPPFLAGS,-D$cf_cv_need_xopen_extension)
6416	;;
6417esac
6418
6419])dnl
6420dnl ---------------------------------------------------------------------------
6421dnl CF_XOPEN_SOURCE version: 57 updated: 2021/01/01 16:53:59
6422dnl ---------------
6423dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
6424dnl or adapt to the vendor's definitions to get equivalent functionality,
6425dnl without losing the common non-POSIX features.
6426dnl
6427dnl Parameters:
6428dnl	$1 is the nominal value for _XOPEN_SOURCE
6429dnl	$2 is the nominal value for _POSIX_C_SOURCE
6430AC_DEFUN([CF_XOPEN_SOURCE],[
6431AC_REQUIRE([AC_CANONICAL_HOST])
6432AC_REQUIRE([CF_POSIX_VISIBLE])
6433
6434if test "$cf_cv_posix_visible" = no; then
6435
6436cf_XOPEN_SOURCE=ifelse([$1],,500,[$1])
6437cf_POSIX_C_SOURCE=ifelse([$2],,199506L,[$2])
6438cf_xopen_source=
6439
6440case "$host_os" in
6441(aix[[4-7]]*)
6442	cf_xopen_source="-D_ALL_SOURCE"
6443	;;
6444(msys)
6445	cf_XOPEN_SOURCE=600
6446	;;
6447(darwin[[0-8]].*)
6448	cf_xopen_source="-D_APPLE_C_SOURCE"
6449	;;
6450(darwin*)
6451	cf_xopen_source="-D_DARWIN_C_SOURCE"
6452	cf_XOPEN_SOURCE=
6453	;;
6454(freebsd*|dragonfly*|midnightbsd*)
6455	# 5.x headers associate
6456	#	_XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L
6457	#	_XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L
6458	cf_POSIX_C_SOURCE=200112L
6459	cf_XOPEN_SOURCE=600
6460	cf_xopen_source="-D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
6461	;;
6462(hpux11*)
6463	cf_xopen_source="-D_HPUX_SOURCE -D_XOPEN_SOURCE=500"
6464	;;
6465(hpux*)
6466	cf_xopen_source="-D_HPUX_SOURCE"
6467	;;
6468(irix[[56]].*)
6469	cf_xopen_source="-D_SGI_SOURCE"
6470	cf_XOPEN_SOURCE=
6471	;;
6472(linux*|uclinux*|gnu*|mint*|k*bsd*-gnu|cygwin)
6473	CF_GNU_SOURCE($cf_XOPEN_SOURCE)
6474	;;
6475(minix*)
6476	cf_xopen_source="-D_NETBSD_SOURCE" # POSIX.1-2001 features are ifdef'd with this...
6477	;;
6478(mirbsd*)
6479	# setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <sys/select.h> and other headers which use u_int / u_short types
6480	cf_XOPEN_SOURCE=
6481	CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
6482	;;
6483(netbsd*)
6484	cf_xopen_source="-D_NETBSD_SOURCE" # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
6485	;;
6486(openbsd[[4-9]]*)
6487	# setting _XOPEN_SOURCE lower than 500 breaks g++ compile with wchar.h, needed for ncursesw
6488	cf_xopen_source="-D_BSD_SOURCE"
6489	cf_XOPEN_SOURCE=600
6490	;;
6491(openbsd*)
6492	# setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
6493	;;
6494(osf[[45]]*)
6495	cf_xopen_source="-D_OSF_SOURCE"
6496	;;
6497(nto-qnx*)
6498	cf_xopen_source="-D_QNX_SOURCE"
6499	;;
6500(sco*)
6501	# setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
6502	;;
6503(solaris2.*)
6504	cf_xopen_source="-D__EXTENSIONS__"
6505	cf_cv_xopen_source=broken
6506	;;
6507(sysv4.2uw2.*) # Novell/SCO UnixWare 2.x (tested on 2.1.2)
6508	cf_XOPEN_SOURCE=
6509	cf_POSIX_C_SOURCE=
6510	;;
6511(*)
6512	CF_TRY_XOPEN_SOURCE
6513	CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
6514	;;
6515esac
6516
6517if test -n "$cf_xopen_source" ; then
6518	CF_ADD_CFLAGS($cf_xopen_source,true)
6519fi
6520
6521dnl In anything but the default case, we may have system-specific setting
6522dnl which is still not guaranteed to provide all of the entrypoints that
6523dnl _XOPEN_SOURCE would yield.
6524if test -n "$cf_XOPEN_SOURCE" && test -z "$cf_cv_xopen_source" ; then
6525	AC_MSG_CHECKING(if _XOPEN_SOURCE really is set)
6526	AC_TRY_COMPILE([#include <stdlib.h>],[
6527#ifndef _XOPEN_SOURCE
6528make an error
6529#endif],
6530	[cf_XOPEN_SOURCE_set=yes],
6531	[cf_XOPEN_SOURCE_set=no])
6532	AC_MSG_RESULT($cf_XOPEN_SOURCE_set)
6533	if test "$cf_XOPEN_SOURCE_set" = yes
6534	then
6535		AC_TRY_COMPILE([#include <stdlib.h>],[
6536#if (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE
6537make an error
6538#endif],
6539		[cf_XOPEN_SOURCE_set_ok=yes],
6540		[cf_XOPEN_SOURCE_set_ok=no])
6541		if test "$cf_XOPEN_SOURCE_set_ok" = no
6542		then
6543			AC_MSG_WARN(_XOPEN_SOURCE is lower than requested)
6544		fi
6545	else
6546		CF_TRY_XOPEN_SOURCE
6547	fi
6548fi
6549fi # cf_cv_posix_visible
6550])
6551dnl ---------------------------------------------------------------------------
6552dnl CF_X_ATHENA version: 24 updated: 2020/03/10 18:53:47
6553dnl -----------
6554dnl Check for Xaw (Athena) libraries
6555dnl
6556dnl Sets $cf_x_athena according to the flavor of Xaw which is used.
6557AC_DEFUN([CF_X_ATHENA],
6558[
6559cf_x_athena=${cf_x_athena:-Xaw}
6560
6561AC_MSG_CHECKING(if you want to link with Xaw 3d library)
6562withval=
6563AC_ARG_WITH(Xaw3d,
6564	[  --with-Xaw3d            link with Xaw 3d library])
6565if test "$withval" = yes ; then
6566	cf_x_athena=Xaw3d
6567	AC_MSG_RESULT(yes)
6568else
6569	AC_MSG_RESULT(no)
6570fi
6571
6572AC_MSG_CHECKING(if you want to link with Xaw 3d xft library)
6573withval=
6574AC_ARG_WITH(Xaw3dxft,
6575	[  --with-Xaw3dxft         link with Xaw 3d xft library])
6576if test "$withval" = yes ; then
6577	cf_x_athena=Xaw3dxft
6578	AC_MSG_RESULT(yes)
6579else
6580	AC_MSG_RESULT(no)
6581fi
6582
6583AC_MSG_CHECKING(if you want to link with neXT Athena library)
6584withval=
6585AC_ARG_WITH(neXtaw,
6586	[  --with-neXtaw           link with neXT Athena library])
6587if test "$withval" = yes ; then
6588	cf_x_athena=neXtaw
6589	AC_MSG_RESULT(yes)
6590else
6591	AC_MSG_RESULT(no)
6592fi
6593
6594AC_MSG_CHECKING(if you want to link with Athena-Plus library)
6595withval=
6596AC_ARG_WITH(XawPlus,
6597	[  --with-XawPlus          link with Athena-Plus library])
6598if test "$withval" = yes ; then
6599	cf_x_athena=XawPlus
6600	AC_MSG_RESULT(yes)
6601else
6602	AC_MSG_RESULT(no)
6603fi
6604
6605cf_x_athena_lib=""
6606
6607if test "$PKG_CONFIG" != none ; then
6608	cf_athena_list=
6609	test "$cf_x_athena" = Xaw && cf_athena_list="xaw8 xaw7 xaw6"
6610	for cf_athena_pkg in \
6611		$cf_athena_list \
6612		${cf_x_athena} \
6613		${cf_x_athena}-devel \
6614		lib${cf_x_athena} \
6615		lib${cf_x_athena}-devel
6616	do
6617		CF_TRY_PKG_CONFIG($cf_athena_pkg,[
6618			cf_x_athena_lib="$cf_pkgconfig_libs"
6619			CF_UPPER(cf_x_athena_LIBS,HAVE_LIB_$cf_x_athena)
6620			AC_DEFINE_UNQUOTED($cf_x_athena_LIBS)
6621
6622			CF_TRIM_X_LIBS
6623
6624AC_CACHE_CHECK(for usable $cf_x_athena/Xmu package,cf_cv_xaw_compat,[
6625AC_TRY_LINK([
6626#include <X11/Xmu/CharSet.h>
6627],[
6628int check = XmuCompareISOLatin1("big", "small");
6629(void)check;
6630],[cf_cv_xaw_compat=yes],[cf_cv_xaw_compat=no])])
6631
6632			if test "$cf_cv_xaw_compat" = no
6633			then
6634				# workaround for broken ".pc" files...
6635				case "$cf_x_athena_lib" in
6636				(*-lXmu*)
6637					;;
6638				(*)
6639					CF_VERBOSE(work around broken package)
6640					cf_save_xmu="$LIBS"
6641					cf_first_lib=`echo "$cf_save_xmu" | sed -e 's/^[ ][ ]*//' -e 's/ .*//'`
6642					CF_TRY_PKG_CONFIG(xmu,[
6643							LIBS="$cf_save_xmu"
6644							CF_ADD_LIB_AFTER($cf_first_lib,$cf_pkgconfig_libs)
6645						],[
6646							CF_ADD_LIB_AFTER($cf_first_lib,-lXmu)
6647						])
6648					CF_TRIM_X_LIBS
6649					;;
6650				esac
6651			fi
6652
6653			break])
6654	done
6655fi
6656
6657if test -z "$cf_x_athena_lib" ; then
6658	CF_X_EXT
6659	CF_X_TOOLKIT
6660	CF_X_ATHENA_CPPFLAGS($cf_x_athena)
6661	CF_X_ATHENA_LIBS($cf_x_athena)
6662fi
6663])dnl
6664dnl ---------------------------------------------------------------------------
6665dnl CF_X_ATHENA_CPPFLAGS version: 9 updated: 2020/12/31 10:54:15
6666dnl --------------------
6667dnl Normally invoked by CF_X_ATHENA, with $1 set to the appropriate flavor of
6668dnl the Athena widgets, e.g., Xaw, Xaw3d, neXtaw.
6669AC_DEFUN([CF_X_ATHENA_CPPFLAGS],
6670[
6671AC_REQUIRE([AC_PATH_XTRA])
6672cf_x_athena_root=ifelse([$1],,Xaw,[$1])
6673cf_x_athena_inc=""
6674
6675for cf_path in default \
6676	/usr/contrib/X11R6 \
6677	/usr/contrib/X11R5 \
6678	/usr/lib/X11R5 \
6679	/usr/local
6680do
6681	if test -z "$cf_x_athena_inc" ; then
6682		CF_SAVE_XTRA_FLAGS([CF_X_ATHENA_CPPFLAGS])
6683		cf_test=X11/$cf_x_athena_root/SimpleMenu.h
6684		if test "$cf_path" != default ; then
6685			CF_APPEND_TEXT(CPPFLAGS,-I$cf_path/include)
6686			AC_MSG_CHECKING(for $cf_test in $cf_path)
6687		else
6688			AC_MSG_CHECKING(for $cf_test)
6689		fi
6690		AC_TRY_COMPILE([
6691#include <X11/Intrinsic.h>
6692#include <$cf_test>],[],
6693			[cf_result=yes],
6694			[cf_result=no])
6695		AC_MSG_RESULT($cf_result)
6696		CF_RESTORE_XTRA_FLAGS([CF_X_ATHENA_CPPFLAGS])
6697		if test "$cf_result" = yes ; then
6698			test "$cf_path"  = default && cf_x_athena_inc=default
6699			test "$cf_path" != default && cf_x_athena_inc="$cf_path/include"
6700			break
6701		fi
6702	fi
6703done
6704
6705if test -z "$cf_x_athena_inc" ; then
6706	AC_MSG_WARN([Unable to find Athena header files])
6707elif test "$cf_x_athena_inc" != default ; then
6708	CF_APPEND_TEXT(CPPFLAGS,-I$cf_x_athena_inc)
6709fi
6710])
6711dnl ---------------------------------------------------------------------------
6712dnl CF_X_ATHENA_LIBS version: 13 updated: 2020/01/11 18:16:10
6713dnl ----------------
6714dnl Normally invoked by CF_X_ATHENA, with $1 set to the appropriate flavor of
6715dnl the Athena widgets, e.g., Xaw, Xaw3d, neXtaw.
6716AC_DEFUN([CF_X_ATHENA_LIBS],
6717[AC_REQUIRE([CF_X_TOOLKIT])
6718cf_x_athena_root=ifelse([$1],,Xaw,[$1])
6719cf_x_athena_lib=""
6720
6721for cf_path in default \
6722	/usr/contrib/X11R6 \
6723	/usr/contrib/X11R5 \
6724	/usr/lib/X11R5 \
6725	/usr/local
6726do
6727	for cf_lib in \
6728		${cf_x_athena_root} \
6729		${cf_x_athena_root}7 \
6730		${cf_x_athena_root}6
6731	do
6732	for cf_libs in \
6733		"-l$cf_lib -lXmu" \
6734		"-l$cf_lib -lXpm -lXmu" \
6735		"-l${cf_lib}_s -lXmu_s"
6736	do
6737		test -n "$cf_x_athena_lib" && break
6738
6739		CF_SAVE_XTRA_FLAGS([CF_X_ATHENA_LIBS])
6740		cf_test=XawSimpleMenuAddGlobalActions
6741		test "$cf_path" != default && cf_libs="-L$cf_path/lib $cf_libs"
6742		CF_ADD_LIBS($cf_libs)
6743		AC_MSG_CHECKING(for $cf_test in $cf_libs)
6744		AC_TRY_LINK([
6745#include <X11/Intrinsic.h>
6746#include <X11/$cf_x_athena_root/SimpleMenu.h>
6747],[
6748$cf_test((XtAppContext) 0)],
6749			[cf_result=yes],
6750			[cf_result=no])
6751		AC_MSG_RESULT($cf_result)
6752		CF_RESTORE_XTRA_FLAGS([CF_X_ATHENA_LIBS])
6753
6754		if test "$cf_result" = yes ; then
6755			cf_x_athena_lib="$cf_libs"
6756			break
6757		fi
6758	done # cf_libs
6759		test -n "$cf_x_athena_lib" && break
6760	done # cf_lib
6761done
6762
6763if test -z "$cf_x_athena_lib" ; then
6764	AC_MSG_ERROR(
6765[Unable to successfully link Athena library (-l$cf_x_athena_root) with test program])
6766fi
6767
6768CF_ADD_LIBS($cf_x_athena_lib)
6769CF_UPPER(cf_x_athena_LIBS,HAVE_LIB_$cf_x_athena)
6770AC_DEFINE_UNQUOTED($cf_x_athena_LIBS)
6771])
6772dnl ---------------------------------------------------------------------------
6773dnl CF_X_EXT version: 3 updated: 2010/06/02 05:03:05
6774dnl --------
6775AC_DEFUN([CF_X_EXT],[
6776CF_TRY_PKG_CONFIG(Xext,,[
6777	AC_CHECK_LIB(Xext,XextCreateExtension,
6778		[CF_ADD_LIB(Xext)])])
6779])dnl
6780dnl ---------------------------------------------------------------------------
6781dnl CF_X_TOOLKIT version: 26 updated: 2021/01/02 09:31:20
6782dnl ------------
6783dnl Check for X Toolkit libraries
6784AC_DEFUN([CF_X_TOOLKIT],
6785[
6786AC_REQUIRE([AC_PATH_XTRA])
6787AC_REQUIRE([CF_CHECK_CACHE])
6788
6789# OSX is schizoid about who owns /usr/X11 (old) versus /opt/X11 (new) (and
6790# in some cases has installed dummy files in the former, other cases replaced
6791# it with a link to the new location).  This complicates the configure script.
6792# Check for that pitfall, and recover using pkg-config
6793#
6794# If none of these are set, the configuration is almost certainly broken.
6795if test -z "${X_CFLAGS}${X_PRE_LIBS}${X_LIBS}${X_EXTRA_LIBS}"
6796then
6797	CF_TRY_PKG_CONFIG(x11,,[AC_MSG_WARN(unable to find X11 library)])
6798	CF_TRY_PKG_CONFIG(ice,,[AC_MSG_WARN(unable to find ICE library)])
6799	CF_TRY_PKG_CONFIG(sm,,[AC_MSG_WARN(unable to find SM library)])
6800	CF_TRY_PKG_CONFIG(xt,,[AC_MSG_WARN(unable to find Xt library)])
6801else
6802	LIBS="$X_PRE_LIBS $LIBS $X_EXTRA_LIBS"
6803fi
6804
6805cf_have_X_LIBS=no
6806
6807CF_TRY_PKG_CONFIG(xt,[
6808
6809	case "x$LIBS" in
6810	(*-lX11*)
6811		;;
6812	(*)
6813# we have an "xt" package, but it may omit Xt's dependency on X11
6814AC_CACHE_CHECK(for usable X dependency,cf_cv_xt_x11_compat,[
6815AC_TRY_LINK([
6816#include <X11/Xlib.h>
6817],[
6818	int rc1 = XDrawLine((Display*) 0, (Drawable) 0, (GC) 0, 0, 0, 0, 0);
6819	int rc2 = XClearWindow((Display*) 0, (Window) 0);
6820	int rc3 = XMoveWindow((Display*) 0, (Window) 0, 0, 0);
6821	int rc4 = XMoveResizeWindow((Display*)0, (Window)0, 0, 0, 0, 0);
6822],[cf_cv_xt_x11_compat=yes],[cf_cv_xt_x11_compat=no])])
6823		if test "$cf_cv_xt_x11_compat" = no
6824		then
6825			CF_VERBOSE(work around broken X11 dependency)
6826			# 2010/11/19 - good enough until a working Xt on Xcb is delivered.
6827			CF_TRY_PKG_CONFIG(x11,,[CF_ADD_LIB_AFTER(-lXt,-lX11)])
6828		fi
6829		;;
6830	esac
6831
6832AC_CACHE_CHECK(for usable X Toolkit package,cf_cv_xt_ice_compat,[
6833AC_TRY_LINK([
6834#include <X11/Shell.h>
6835],[int num = IceConnectionNumber(0); (void) num
6836],[cf_cv_xt_ice_compat=yes],[cf_cv_xt_ice_compat=no])])
6837
6838	if test "$cf_cv_xt_ice_compat" = no
6839	then
6840		# workaround for broken ".pc" files used for X Toolkit.
6841		case "x$X_PRE_LIBS" in
6842		(*-lICE*)
6843			case "x$LIBS" in
6844			(*-lICE*)
6845				;;
6846			(*)
6847				CF_VERBOSE(work around broken ICE dependency)
6848				CF_TRY_PKG_CONFIG(ice,
6849					[CF_TRY_PKG_CONFIG(sm)],
6850					[CF_ADD_LIB_AFTER(-lXt,$X_PRE_LIBS)])
6851				;;
6852			esac
6853			;;
6854		esac
6855	fi
6856
6857	cf_have_X_LIBS=yes
6858],[
6859
6860	LDFLAGS="$X_LIBS $LDFLAGS"
6861	CF_CHECK_CFLAGS($X_CFLAGS)
6862
6863	AC_CHECK_FUNC(XOpenDisplay,,[
6864	AC_CHECK_LIB(X11,XOpenDisplay,
6865		[CF_ADD_LIB(X11)])])
6866
6867	AC_CHECK_FUNC(XtAppInitialize,,[
6868	AC_CHECK_LIB(Xt, XtAppInitialize,
6869		[AC_DEFINE(HAVE_LIBXT,1,[Define to 1 if we can compile with the Xt library])
6870		 cf_have_X_LIBS=Xt
6871		 LIBS="-lXt $LIBS"])])
6872])
6873
6874if test "$cf_have_X_LIBS" = no ; then
6875	AC_MSG_WARN(
6876[Unable to successfully link X Toolkit library (-lXt) with
6877test program.  You will have to check and add the proper libraries by hand
6878to makefile.])
6879fi
6880])dnl
6881dnl ---------------------------------------------------------------------------
6882dnl CF__ADD_SHLIB_RULES version: 6 updated: 2016/04/21 21:07:50
6883dnl -------------------
6884dnl Append rules for creating, installing, uninstalling and cleaning library.
6885dnl In particular, this is needed for shared libraries since there are symbolic
6886dnl links which depend on configuration choices.
6887dnl
6888dnl The logic is controlled by these cache variables:
6889dnl $cf_cv_do_symlinks
6890dnl $cf_cv_shlib_version
6891dnl
6892dnl The macro uses variables set by CF__DEFINE_SHLIB_VARS
6893dnl
6894dnl $1 = makefile to append to
6895dnl $2 = model (static, shared, libtool)
6896dnl $3 = objects (dependencies)
6897dnl $4 = additional libraries needed to link the shared library
6898define([CF__ADD_SHLIB_RULES],[
6899
6900CF__DEFINE_LIB_TARGET
6901
6902case x$2 in
6903(xlibtool|xshared)
6904	cf_libdeps="ifelse($4,,,[$4])"
6905	;;
6906(x*)
6907	cf_libdeps=
6908	;;
6909esac
6910
6911cat >>$1 <<CF_EOF
6912
6913# generated by CF__ADD_SHLIB_RULES
6914# libmodel: $2
6915# symlinks: $cf_cv_do_symlinks
6916# shlibver: $cf_cv_shlib_version
6917
6918CF_EOF
6919
6920cat >>$1 <<CF_EOF
6921$cf_libname :: \\
6922CF_EOF
6923
6924cat >>$1 <<CF_EOF
6925		$3
6926	@echo linking \[$]@
6927	\$(LIBTOOL_CREATE) $3 $cf_libdeps
6928CF_EOF
6929
6930if test "x$cf_cv_do_symlinks" = xyes
6931then
6932cat >>$1 <<CF_EOF
6933	\$(LN_S) $cf_libname $cf_liblink
6934	\$(LN_S) $cf_liblink $cf_libroot
6935CF_EOF
6936fi
6937
6938cat >>$1 <<CF_EOF
6939
6940install \\
6941install.libs :: \$(DESTDIR)\$(libdir)/$cf_libname
6942
6943\$(DESTDIR)\$(libdir)/$cf_libname :: \\
6944		\$(DESTDIR)\$(libdir) \\
6945		$3
6946	@echo linking \[$]@
6947	\$(LIBTOOL_CREATE) $3 $cf_libdeps
6948CF_EOF
6949
6950if test "x$cf_cv_do_symlinks" = xyes
6951then
6952cat >>$1 <<CF_EOF
6953	cd \$(DESTDIR)\$(libdir) && (\$(LN_S) $cf_libname $cf_liblink; \$(LN_S) $cf_liblink $cf_libroot; )
6954CF_EOF
6955fi
6956
6957if test x$2 = xshared
6958then
6959cat >>$1 <<CF_EOF
6960	- \$(SHELL) -c "if test -z "\$(DESTDIR)" ; then /sbin/ldconfig; fi"
6961CF_EOF
6962fi
6963
6964cat >>$1 <<CF_EOF
6965
6966uninstall \\
6967uninstall.libs ::
6968	@echo uninstalling \$(DESTDIR)\$(libdir)/$cf_libname
6969CF_EOF
6970
6971if test "x$cf_cv_do_symlinks" = xyes
6972then
6973cat >>$1 <<CF_EOF
6974	-rm -f \$(DESTDIR)\$(libdir)/$cf_libroot
6975	-rm -f \$(DESTDIR)\$(libdir)/$cf_liblink
6976CF_EOF
6977fi
6978
6979cat >>$1 <<CF_EOF
6980	-rm -f \$(DESTDIR)\$(libdir)/$cf_libname
6981
6982clean \\
6983clean.libs ::
6984CF_EOF
6985
6986if test "x$cf_cv_do_symlinks" = xyes
6987then
6988cat >>$1 <<CF_EOF
6989	-rm -f $cf_libroot
6990	-rm -f $cf_liblink
6991CF_EOF
6992fi
6993
6994cat >>$1 <<CF_EOF
6995	-rm -f $cf_libname
6996
6997mostlyclean::
6998	-rm -f $3
6999# end generated by CF__ADD_SHLIB_RULES
7000CF_EOF
7001])dnl
7002dnl ---------------------------------------------------------------------------
7003dnl CF__CURSES_HEAD version: 2 updated: 2010/10/23 15:54:49
7004dnl ---------------
7005dnl Define a reusable chunk which includes <curses.h> and <term.h> when they
7006dnl are both available.
7007define([CF__CURSES_HEAD],[
7008#ifdef HAVE_XCURSES
7009#include <xcurses.h>
7010char * XCursesProgramName = "test";
7011#else
7012#include <${cf_cv_ncurses_header:-curses.h}>
7013#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H)
7014#include <ncursesw/term.h>
7015#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H)
7016#include <ncurses/term.h>
7017#elif defined(HAVE_TERM_H)
7018#include <term.h>
7019#endif
7020#endif
7021])
7022dnl ---------------------------------------------------------------------------
7023dnl CF__DEFINE_LIB_TARGET version: 2 updated: 2015/05/10 19:52:14
7024dnl ---------------------
7025define([CF__DEFINE_LIB_TARGET],[
7026cf_libname=\${LIB_BASENAME}
7027cf_liblink=$cf_libname
7028cf_libroot=$cf_libname
7029
7030if test "x$cf_cv_do_symlinks" = xyes
7031then
7032	case "x$cf_cv_shlib_version" in
7033	(xrel)
7034		cf_liblink="\${LIB_ABI_NAME}"
7035		cf_libname="\${LIB_REL_NAME}"
7036		;;
7037	(xabi)
7038		cf_liblink="\${LIB_REL_NAME}"
7039		cf_libname="\${LIB_ABI_NAME}"
7040		;;
7041	esac
7042fi
7043LIB_TARGET=$cf_libname
7044])dnl
7045dnl ---------------------------------------------------------------------------
7046dnl CF__DEFINE_SHLIB_VARS version: 4 updated: 2015/09/28 17:49:10
7047dnl ---------------------
7048dnl Substitute makefile variables useful for CF__ADD_SHLIB_RULES.
7049dnl
7050dnl The substitution requires these variables:
7051dnl		LIB_PREFIX - "lib"
7052dnl		LIB_ROOTNAME - "foo"
7053dnl		LIB_SUFFIX - ".so"
7054dnl		REL_VERSION - "5.0"
7055dnl		ABI_VERSION - "4.2.4"
7056define([CF__DEFINE_SHLIB_VARS],[
7057CF__DEFINE_LIB_TARGET
7058SET_SHLIB_VARS="# begin CF__DEFINE_SHLIB_VARS\\
7059LIB_BASENAME	= \${LIB_PREFIX}\${LIB_ROOTNAME}\${LIB_SUFFIX}\\
7060LIB_REL_NAME	= \${LIB_BASENAME}.\${REL_VERSION}\\
7061LIB_ABI_NAME	= \${LIB_BASENAME}.\${ABI_VERSION}\\
7062LIB_TARGET	= $LIB_TARGET\\
7063RM_SHARED_OPTS	= $RM_SHARED_OPTS\\
7064# end CF__DEFINE_SHLIB_VARS"
7065AC_SUBST(SET_SHLIB_VARS)
7066AC_SUBST(LIB_TARGET)
7067])dnl
7068dnl ---------------------------------------------------------------------------
7069dnl CF__ICONV_BODY version: 2 updated: 2007/07/26 17:35:47
7070dnl --------------
7071dnl Test-code needed for iconv compile-checks
7072define([CF__ICONV_BODY],[
7073	iconv_t cd = iconv_open("","");
7074	iconv(cd,NULL,NULL,NULL,NULL);
7075	iconv_close(cd);]
7076)dnl
7077dnl ---------------------------------------------------------------------------
7078dnl CF__ICONV_HEAD version: 1 updated: 2007/07/26 15:57:03
7079dnl --------------
7080dnl Header-files needed for iconv compile-checks
7081define([CF__ICONV_HEAD],[
7082#include <stdlib.h>
7083#include <iconv.h>]
7084)dnl
7085dnl ---------------------------------------------------------------------------
7086dnl CF__INIT_SHLIB_RULES version: 2 updated: 2013/07/27 17:38:32
7087dnl --------------------
7088dnl The third parameter to AC_OUTPUT, used to pass variables needed for
7089dnl CF__ADD_SHLIB_RULES.
7090define([CF__INIT_SHLIB_RULES],[
7091ABI_VERSION="$ABI_VERSION"
7092REL_VERSION="$REL_VERSION"
7093LIB_MODEL="$LIB_MODEL"
7094LIB_PREFIX="$LIB_PREFIX"
7095LIB_ROOTNAME="$LIB_ROOTNAME"
7096DFT_DEP_SUFFIX="$DFT_DEP_SUFFIX"
7097RM_SHARED_OPTS="$RM_SHARED_OPTS"
7098cf_cv_do_symlinks="$cf_cv_do_symlinks"
7099cf_cv_shlib_version="$cf_cv_shlib_version"
7100])
7101dnl ---------------------------------------------------------------------------
7102dnl CF__INTL_BODY version: 3 updated: 2017/07/10 20:13:33
7103dnl -------------
7104dnl Test-code needed for libintl compile-checks
7105dnl $1 = parameter 2 from AM_WITH_NLS
7106define([CF__INTL_BODY],[
7107	bindtextdomain ("", "");
7108	return (int) gettext ("")
7109			ifelse([$1], need-ngettext, [ + (int) ngettext ("", "", 0)], [])
7110#ifndef IGNORE_MSGFMT_HACK
7111			[ + _nl_msg_cat_cntr]
7112#endif
7113])
7114dnl ---------------------------------------------------------------------------
7115dnl CF__INTL_HEAD version: 1 updated: 2007/07/26 17:35:47
7116dnl -------------
7117dnl Header-files needed for libintl compile-checks
7118define([CF__INTL_HEAD],[
7119#include <libintl.h>
7120extern int _nl_msg_cat_cntr;
7121])dnl
7122dnl ---------------------------------------------------------------------------
7123dnl jm_GLIBC21 version: 4 updated: 2015/05/10 19:52:14
7124dnl ----------
7125dnl Inserted as requested by gettext 0.10.40
7126dnl File from /usr/share/aclocal
7127dnl glibc21.m4
7128dnl ====================
7129dnl serial 2
7130dnl
7131dnl Test for the GNU C Library, version 2.1 or newer.
7132dnl From Bruno Haible.
7133AC_DEFUN([jm_GLIBC21],
7134[
7135AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer,
7136	ac_cv_gnu_library_2_1,
7137	[AC_EGREP_CPP([Lucky GNU user],
7138	[
7139#include <features.h>
7140#ifdef __GNU_LIBRARY__
7141 #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
7142  Lucky GNU user
7143 #endif
7144#endif
7145	],
7146	ac_cv_gnu_library_2_1=yes,
7147	ac_cv_gnu_library_2_1=no)])
7148	AC_SUBST(GLIBC21)
7149	GLIBC21="$ac_cv_gnu_library_2_1"
7150])
7151