]> ncurses.scripts.mit.edu Git - ncurses.git/blob - aclocal.m4
ncurses 6.2 - patch 20210905
[ncurses.git] / aclocal.m4
1 dnl***************************************************************************
2 dnl Copyright 2018-2020,2021 Thomas E. Dickey                                *
3 dnl Copyright 1998-2017,2018 Free Software Foundation, Inc.                  *
4 dnl                                                                          *
5 dnl Permission is hereby granted, free of charge, to any person obtaining a  *
6 dnl copy of this software and associated documentation files (the            *
7 dnl "Software"), to deal in the Software without restriction, including      *
8 dnl without limitation the rights to use, copy, modify, merge, publish,      *
9 dnl distribute, distribute with modifications, sublicense, and/or sell       *
10 dnl copies of the Software, and to permit persons to whom the Software is    *
11 dnl furnished to do so, subject to the following conditions:                 *
12 dnl                                                                          *
13 dnl The above copyright notice and this permission notice shall be included  *
14 dnl in all copies or substantial portions of the Software.                   *
15 dnl                                                                          *
16 dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
17 dnl OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
18 dnl MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
19 dnl IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
20 dnl DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
21 dnl OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
22 dnl THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
23 dnl                                                                          *
24 dnl Except as contained in this notice, the name(s) of the above copyright   *
25 dnl holders shall not be used in advertising or otherwise to promote the     *
26 dnl sale, use or other dealings in this Software without prior written       *
27 dnl authorization.                                                           *
28 dnl***************************************************************************
29 dnl
30 dnl Author: Thomas E. Dickey 1995-on
31 dnl
32 dnl $Id: aclocal.m4,v 1.977 2021/09/05 21:32:31 tom Exp $
33 dnl Macros used in NCURSES auto-configuration script.
34 dnl
35 dnl These macros are maintained separately from NCURSES.  The copyright on
36 dnl this file applies to the aggregation of macros and does not affect use of
37 dnl these macros in other applications.
38 dnl
39 dnl See these pages for additional information:
40 dnl             https://invisible-island.net/autoconf/
41 dnl             https://invisible-island.net/autoconf/my-autoconf.html
42 dnl
43 dnl ---------------------------------------------------------------------------
44 dnl ---------------------------------------------------------------------------
45 dnl AM_LANGINFO_CODESET version: 6 updated: 2021/01/01 16:53:59
46 dnl -------------------
47 dnl Inserted as requested by gettext 0.10.40
48 dnl File from /usr/share/aclocal
49 dnl codeset.m4
50 dnl ====================
51 dnl serial AM1
52 dnl
53 dnl From Bruno Haible.
54 AC_DEFUN([AM_LANGINFO_CODESET],
55 [
56 AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset,
57         [AC_TRY_LINK([#include <langinfo.h>],
58         [char* cs = nl_langinfo(CODESET); (void)cs],
59         am_cv_langinfo_codeset=yes,
60         am_cv_langinfo_codeset=no)
61         ])
62         if test "$am_cv_langinfo_codeset" = yes; then
63                 AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
64                 [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
65         fi
66 ])dnl
67 dnl ---------------------------------------------------------------------------
68 dnl CF_ABI_DEFAULTS version: 2 updated: 2015/06/06 13:49:58
69 dnl ---------------
70 dnl Provide configure-script defaults for different ncurses ABIs.
71 AC_DEFUN([CF_ABI_DEFAULTS],[
72 AC_REQUIRE([CF_NCURSES_WITH_ABI_VERSION])
73 case x$cf_cv_abi_version in
74 (x[[6789]])
75         cf_dft_ext_colors=yes
76         cf_dft_ext_const=yes
77         cf_dft_ext_mouse=yes
78         cf_dft_ext_putwin=yes
79         cf_dft_ext_spfuncs=yes
80         cf_dft_filter_syms=yes
81         cf_dft_chtype=uint32_t
82         cf_dft_mmask_t=uint32_t
83         cf_dft_interop=yes
84         cf_dft_tparm_arg=intptr_t
85         cf_dft_with_lp64=yes
86         ;;
87 (*)
88         cf_dft_ext_colors=no
89         cf_dft_ext_const=no
90         cf_dft_ext_mouse=no
91         cf_dft_ext_putwin=no
92         cf_dft_ext_spfuncs=no
93         cf_dft_filter_syms=no
94         cf_dft_chtype=auto
95         cf_dft_mmask_t=auto
96         cf_dft_interop=no
97         cf_dft_tparm_arg=long
98         cf_dft_with_lp64=no
99         ;;
100 esac
101 ])dnl
102 dnl ---------------------------------------------------------------------------
103 dnl CF_ACVERSION_CHECK version: 5 updated: 2014/06/04 19:11:49
104 dnl ------------------
105 dnl Conditionally generate script according to whether we're using a given autoconf.
106 dnl
107 dnl $1 = version to compare against
108 dnl $2 = code to use if AC_ACVERSION is at least as high as $1.
109 dnl $3 = code to use if AC_ACVERSION is older than $1.
110 define([CF_ACVERSION_CHECK],
111 [
112 ifdef([AC_ACVERSION], ,[ifdef([AC_AUTOCONF_VERSION],[m4_copy([AC_AUTOCONF_VERSION],[AC_ACVERSION])],[m4_copy([m4_PACKAGE_VERSION],[AC_ACVERSION])])])dnl
113 ifdef([m4_version_compare],
114 [m4_if(m4_version_compare(m4_defn([AC_ACVERSION]), [$1]), -1, [$3], [$2])],
115 [CF_ACVERSION_COMPARE(
116 AC_PREREQ_CANON(AC_PREREQ_SPLIT([$1])),
117 AC_PREREQ_CANON(AC_PREREQ_SPLIT(AC_ACVERSION)), AC_ACVERSION, [$2], [$3])])])dnl
118 dnl ---------------------------------------------------------------------------
119 dnl CF_ACVERSION_COMPARE version: 3 updated: 2012/10/03 18:39:53
120 dnl --------------------
121 dnl CF_ACVERSION_COMPARE(MAJOR1, MINOR1, TERNARY1,
122 dnl                      MAJOR2, MINOR2, TERNARY2,
123 dnl                      PRINTABLE2, not FOUND, FOUND)
124 define([CF_ACVERSION_COMPARE],
125 [ifelse(builtin([eval], [$2 < $5]), 1,
126 [ifelse([$8], , ,[$8])],
127 [ifelse([$9], , ,[$9])])])dnl
128 dnl ---------------------------------------------------------------------------
129 dnl CF_ADA_INCLUDE_DIRS version: 8 updated: 2013/10/14 04:24:07
130 dnl -------------------
131 dnl Construct the list of include-options for the C programs in the Ada95
132 dnl binding.
133 AC_DEFUN([CF_ADA_INCLUDE_DIRS],
134 [
135 ACPPFLAGS="-I. -I../include -I../../include $ACPPFLAGS"
136 if test "$srcdir" != "."; then
137         ACPPFLAGS="-I\${srcdir}/../../include $ACPPFLAGS"
138 fi
139 if test "$GCC" != yes; then
140         ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
141 elif test "$includedir" != "/usr/include"; then
142         if test "$includedir" = '${prefix}/include' ; then
143                 if test x$prefix != x/usr ; then
144                         ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
145                 fi
146         else
147                 ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
148         fi
149 fi
150 AC_SUBST(ACPPFLAGS)
151 ])dnl
152 dnl ---------------------------------------------------------------------------
153 dnl CF_ADD_ADAFLAGS version: 1 updated: 2010/06/19 15:22:18
154 dnl ---------------
155 dnl Add to $ADAFLAGS, which is substituted into makefile and scripts.
156 AC_DEFUN([CF_ADD_ADAFLAGS],[
157         ADAFLAGS="$ADAFLAGS $1"
158         AC_SUBST(ADAFLAGS)
159 ])dnl
160 dnl ---------------------------------------------------------------------------
161 dnl CF_ADD_CFLAGS version: 15 updated: 2020/12/31 10:54:15
162 dnl -------------
163 dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS
164 dnl $1 = flags to add
165 dnl $2 = if given makes this macro verbose.
166 dnl
167 dnl Put any preprocessor definitions that use quoted strings in $EXTRA_CPPFLAGS,
168 dnl to simplify use of $CPPFLAGS in compiler checks, etc., that are easily
169 dnl confused by the quotes (which require backslashes to keep them usable).
170 AC_DEFUN([CF_ADD_CFLAGS],
171 [
172 cf_fix_cppflags=no
173 cf_new_cflags=
174 cf_new_cppflags=
175 cf_new_extra_cppflags=
176
177 for cf_add_cflags in $1
178 do
179 case "$cf_fix_cppflags" in
180 (no)
181         case "$cf_add_cflags" in
182         (-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C)
183                 case "$cf_add_cflags" in
184                 (-D*)
185                         cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^-D[[^=]]*='\''\"[[^"]]*//'`
186
187                         test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
188                                 && test -z "${cf_tst_cflags}" \
189                                 && cf_fix_cppflags=yes
190
191                         if test "$cf_fix_cppflags" = yes ; then
192                                 CF_APPEND_TEXT(cf_new_extra_cppflags,$cf_add_cflags)
193                                 continue
194                         elif test "${cf_tst_cflags}" = "\"'" ; then
195                                 CF_APPEND_TEXT(cf_new_extra_cppflags,$cf_add_cflags)
196                                 continue
197                         fi
198                         ;;
199                 esac
200                 case "$CPPFLAGS" in
201                 (*$cf_add_cflags)
202                         ;;
203                 (*)
204                         case "$cf_add_cflags" in
205                         (-D*)
206                                 cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
207                                 CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,$cf_tst_cppflags)
208                                 ;;
209                         esac
210                         CF_APPEND_TEXT(cf_new_cppflags,$cf_add_cflags)
211                         ;;
212                 esac
213                 ;;
214         (*)
215                 CF_APPEND_TEXT(cf_new_cflags,$cf_add_cflags)
216                 ;;
217         esac
218         ;;
219 (yes)
220         CF_APPEND_TEXT(cf_new_extra_cppflags,$cf_add_cflags)
221
222         cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^[[^"]]*"'\''//'`
223
224         test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
225                 && test -z "${cf_tst_cflags}" \
226                 && cf_fix_cppflags=no
227         ;;
228 esac
229 done
230
231 if test -n "$cf_new_cflags" ; then
232         ifelse([$2],,,[CF_VERBOSE(add to \$CFLAGS $cf_new_cflags)])
233         CF_APPEND_TEXT(CFLAGS,$cf_new_cflags)
234 fi
235
236 if test -n "$cf_new_cppflags" ; then
237         ifelse([$2],,,[CF_VERBOSE(add to \$CPPFLAGS $cf_new_cppflags)])
238         CF_APPEND_TEXT(CPPFLAGS,$cf_new_cppflags)
239 fi
240
241 if test -n "$cf_new_extra_cppflags" ; then
242         ifelse([$2],,,[CF_VERBOSE(add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags)])
243         CF_APPEND_TEXT(EXTRA_CPPFLAGS,$cf_new_extra_cppflags)
244 fi
245
246 AC_SUBST(EXTRA_CPPFLAGS)
247
248 ])dnl
249 dnl ---------------------------------------------------------------------------
250 dnl CF_ADD_CXXFLAGS version: 1 updated: 2020/04/04 16:16:13
251 dnl ---------------
252 dnl Copy non-preprocessor flags to $CXXFLAGS, preprocessor flags to $CPPFLAGS
253 dnl The second parameter if given makes this macro verbose.
254 dnl
255 dnl Put any preprocessor definitions that use quoted strings in $EXTRA_CPPFLAGS,
256 dnl to simplify use of $CPPFLAGS in compiler checks, etc., that are easily
257 dnl confused by the quotes (which require backslashes to keep them usable).
258 AC_DEFUN([CF_ADD_CXXFLAGS],
259 [
260 cf_save_CXXFLAGS="$CFLAGS"
261 CFLAGS="$CXXFLAGS"
262 CF_ADD_CFLAGS($1 ifelse($2,,,[,$2]))
263 CXXFLAGS="$CFLAGS"
264 CFLAGS="$cf_save_CXXFLAGS"
265 ])dnl
266 dnl ---------------------------------------------------------------------------
267 dnl CF_ADD_INCDIR version: 17 updated: 2021/09/04 06:35:04
268 dnl -------------
269 dnl Add an include-directory to $CPPFLAGS.  Don't add /usr/include, since it is
270 dnl redundant.  We don't normally need to add -I/usr/local/include for gcc,
271 dnl but old versions (and some misinstalled ones) need that.  To make things
272 dnl worse, gcc 3.x may give error messages if -I/usr/local/include is added to
273 dnl the include-path).
274 AC_DEFUN([CF_ADD_INCDIR],
275 [
276 if test -n "$1" ; then
277   for cf_add_incdir in $1
278   do
279         while test "$cf_add_incdir" != /usr/include
280         do
281           if test -d "$cf_add_incdir"
282           then
283                 cf_have_incdir=no
284                 if test -n "$CFLAGS$CPPFLAGS" ; then
285                   # a loop is needed to ensure we can add subdirs of existing dirs
286                   for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
287                         if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
288                           cf_have_incdir=yes; break
289                         fi
290                   done
291                 fi
292
293                 if test "$cf_have_incdir" = no ; then
294                   if test "$cf_add_incdir" = /usr/local/include ; then
295                         if test "$GCC" = yes
296                         then
297                           cf_save_CPPFLAGS=$CPPFLAGS
298                           CF_APPEND_TEXT(CPPFLAGS,-I$cf_add_incdir)
299                           AC_TRY_COMPILE([#include <stdio.h>],
300                                   [printf("Hello")],
301                                   [],
302                                   [cf_have_incdir=yes])
303                           CPPFLAGS=$cf_save_CPPFLAGS
304                         fi
305                   fi
306                 fi
307
308                 if test "$cf_have_incdir" = no ; then
309                   CF_VERBOSE(adding $cf_add_incdir to include-path)
310                   ifelse([$2],,CPPFLAGS,[$2])="$ifelse([$2],,CPPFLAGS,[$2]) -I$cf_add_incdir"
311
312                   cf_top_incdir=`echo "$cf_add_incdir" | sed -e 's%/include/.*$%/include%'`
313                   test "$cf_top_incdir" = "$cf_add_incdir" && break
314                   cf_add_incdir="$cf_top_incdir"
315                 else
316                   break
317                 fi
318           else
319                 break
320           fi
321         done
322   done
323 fi
324 ])dnl
325 dnl ---------------------------------------------------------------------------
326 dnl CF_ADD_LIB version: 2 updated: 2010/06/02 05:03:05
327 dnl ----------
328 dnl Add a library, used to enforce consistency.
329 dnl
330 dnl $1 = library to add, without the "-l"
331 dnl $2 = variable to update (default $LIBS)
332 AC_DEFUN([CF_ADD_LIB],[CF_ADD_LIBS(-l$1,ifelse($2,,LIBS,[$2]))])dnl
333 dnl ---------------------------------------------------------------------------
334 dnl CF_ADD_LIBDIR version: 11 updated: 2020/12/31 20:19:42
335 dnl -------------
336 dnl     Adds to the library-path
337 dnl
338 dnl     Some machines have trouble with multiple -L options.
339 dnl
340 dnl $1 is the (list of) directory(s) to add
341 dnl $2 is the optional name of the variable to update (default LDFLAGS)
342 dnl
343 AC_DEFUN([CF_ADD_LIBDIR],
344 [
345 if test -n "$1" ; then
346         for cf_add_libdir in $1
347         do
348                 if test "$cf_add_libdir" = /usr/lib ; then
349                         :
350                 elif test -d "$cf_add_libdir"
351                 then
352                         cf_have_libdir=no
353                         if test -n "$LDFLAGS$LIBS" ; then
354                                 # a loop is needed to ensure we can add subdirs of existing dirs
355                                 for cf_test_libdir in $LDFLAGS $LIBS ; do
356                                         if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
357                                                 cf_have_libdir=yes; break
358                                         fi
359                                 done
360                         fi
361                         if test "$cf_have_libdir" = no ; then
362                                 CF_VERBOSE(adding $cf_add_libdir to library-path)
363                                 ifelse([$2],,LDFLAGS,[$2])="-L$cf_add_libdir $ifelse([$2],,LDFLAGS,[$2])"
364                         fi
365                 fi
366         done
367 fi
368 ])dnl
369 dnl ---------------------------------------------------------------------------
370 dnl CF_ADD_LIBS version: 3 updated: 2019/11/02 16:47:33
371 dnl -----------
372 dnl Add one or more libraries, used to enforce consistency.  Libraries are
373 dnl prepended to an existing list, since their dependencies are assumed to
374 dnl already exist in the list.
375 dnl
376 dnl $1 = libraries to add, with the "-l", etc.
377 dnl $2 = variable to update (default $LIBS)
378 AC_DEFUN([CF_ADD_LIBS],[
379 cf_add_libs="[$]ifelse($2,,LIBS,[$2])"
380 # reverse order
381 cf_add_0lib=
382 for cf_add_1lib in $1; do cf_add_0lib="$cf_add_1lib $cf_add_0lib"; done
383 # filter duplicates
384 for cf_add_1lib in $cf_add_0lib; do
385         for cf_add_2lib in $cf_add_libs; do
386                 if test "x$cf_add_1lib" = "x$cf_add_2lib"; then
387                         cf_add_1lib=
388                         break
389                 fi
390         done
391         test -n "$cf_add_1lib" && cf_add_libs="$cf_add_1lib $cf_add_libs"
392 done
393 ifelse($2,,LIBS,[$2])="$cf_add_libs"
394 ])dnl
395 dnl ---------------------------------------------------------------------------
396 dnl CF_ADD_SUBDIR_PATH version: 5 updated: 2020/12/31 20:19:42
397 dnl ------------------
398 dnl Append to a search-list for a nonstandard header/lib-file
399 dnl     $1 = the variable to return as result
400 dnl     $2 = the package name
401 dnl     $3 = the subdirectory, e.g., bin, include or lib
402 dnl $4 = the directory under which we will test for subdirectories
403 dnl $5 = a directory that we do not want $4 to match
404 AC_DEFUN([CF_ADD_SUBDIR_PATH],
405 [
406 test "x$4" != "x$5" && \
407 test -d "$4" && \
408 ifelse([$5],NONE,,[{ test -z "$5" || test "x$5" = xNONE || test "x$4" != "x$5"; } &&]) {
409         test -n "$verbose" && echo "    ... testing for $3-directories under $4"
410         test -d "$4/$3" &&          $1="[$]$1 $4/$3"
411         test -d "$4/$3/$2" &&       $1="[$]$1 $4/$3/$2"
412         test -d "$4/$3/$2/$3" &&    $1="[$]$1 $4/$3/$2/$3"
413         test -d "$4/$2/$3" &&       $1="[$]$1 $4/$2/$3"
414         test -d "$4/$2/$3/$2" &&    $1="[$]$1 $4/$2/$3/$2"
415 }
416 ])dnl
417 dnl ---------------------------------------------------------------------------
418 dnl CF_APPEND_CFLAGS version: 3 updated: 2021/09/05 17:25:40
419 dnl ----------------
420 dnl Use CF_ADD_CFLAGS after first checking for potential redefinitions.
421 dnl $1 = flags to add
422 dnl $2 = if given makes this macro verbose.
423 define([CF_APPEND_CFLAGS],
424 [
425 for cf_add_cflags in $1
426 do
427         case "x$cf_add_cflags" in
428         (x-[[DU]]*)
429                 CF_REMOVE_CFLAGS($cf_add_cflags,CFLAGS,[$2])
430                 CF_REMOVE_CFLAGS($cf_add_cflags,CPPFLAGS,[$2])
431                 ;;
432         esac
433         CF_ADD_CFLAGS([$cf_add_cflags],[$2])
434 done
435 ])dnl
436 dnl ---------------------------------------------------------------------------
437 dnl CF_APPEND_TEXT version: 1 updated: 2017/02/25 18:58:55
438 dnl --------------
439 dnl use this macro for appending text without introducing an extra blank at
440 dnl the beginning
441 define([CF_APPEND_TEXT],
442 [
443         test -n "[$]$1" && $1="[$]$1 "
444         $1="[$]{$1}$2"
445 ])dnl
446 dnl ---------------------------------------------------------------------------
447 dnl CF_ARG_DISABLE version: 3 updated: 1999/03/30 17:24:31
448 dnl --------------
449 dnl Allow user to disable a normally-on option.
450 AC_DEFUN([CF_ARG_DISABLE],
451 [CF_ARG_OPTION($1,[$2],[$3],[$4],yes)])dnl
452 dnl ---------------------------------------------------------------------------
453 dnl CF_ARG_ENABLE version: 3 updated: 1999/03/30 17:24:31
454 dnl -------------
455 dnl Allow user to enable a normally-off option.
456 AC_DEFUN([CF_ARG_ENABLE],
457 [CF_ARG_OPTION($1,[$2],[$3],[$4],no)])dnl
458 dnl ---------------------------------------------------------------------------
459 dnl CF_ARG_OPTION version: 5 updated: 2015/05/10 19:52:14
460 dnl -------------
461 dnl Restricted form of AC_ARG_ENABLE that ensures user doesn't give bogus
462 dnl values.
463 dnl
464 dnl Parameters:
465 dnl $1 = option name
466 dnl $2 = help-string
467 dnl $3 = action to perform if option is not default
468 dnl $4 = action if perform if option is default
469 dnl $5 = default option value (either 'yes' or 'no')
470 AC_DEFUN([CF_ARG_OPTION],
471 [AC_ARG_ENABLE([$1],[$2],[test "$enableval" != ifelse([$5],no,yes,no) && enableval=ifelse([$5],no,no,yes)
472         if test "$enableval" != "$5" ; then
473 ifelse([$3],,[    :]dnl
474 ,[    $3]) ifelse([$4],,,[
475         else
476                 $4])
477         fi],[enableval=$5 ifelse([$4],,,[
478         $4
479 ])dnl
480 ])])dnl
481 dnl ---------------------------------------------------------------------------
482 dnl CF_AR_FLAGS version: 9 updated: 2021/01/01 13:31:04
483 dnl -----------
484 dnl Check for suitable "ar" (archiver) options for updating an archive.
485 dnl
486 dnl In particular, handle some obsolete cases where the "-" might be omitted,
487 dnl as well as a workaround for breakage of make's archive rules by the GNU
488 dnl binutils "ar" program.
489 AC_DEFUN([CF_AR_FLAGS],[
490 AC_REQUIRE([CF_PROG_AR])
491
492 AC_CACHE_CHECK(for options to update archives, cf_cv_ar_flags,[
493         case "$cf_cv_system_name" in
494         (*-msvc*)
495                 cf_cv_ar_flags=''
496                 cat >mk_static_lib.sh <<-EOF
497                 #!$SHELL
498                 MSVC_BIN="[$]AR"
499                 out="\[$]1"
500                 shift
501                 exec \[$]MSVC_BIN -out:"\[$]out" \[$]@
502                 EOF
503                 chmod +x mk_static_lib.sh
504                 AR=`pwd`/mk_static_lib.sh
505                 ;;
506         (*)
507                 cf_cv_ar_flags=unknown
508                 for cf_ar_flags in -curvU -curv curv -crv crv -cqv cqv -rv rv
509                 do
510
511                         # check if $ARFLAGS already contains this choice
512                         if test "x$ARFLAGS" != "x" ; then
513                                 cf_check_ar_flags=`echo "x$ARFLAGS" | sed -e "s/$cf_ar_flags\$//" -e "s/$cf_ar_flags / /"`
514                                 if test "x$ARFLAGS" != "$cf_check_ar_flags" ; then
515                                         cf_cv_ar_flags=
516                                         break
517                                 fi
518                         fi
519
520                         rm -f "conftest.$ac_cv_objext"
521                         rm -f conftest.a
522
523                         cat >"conftest.$ac_ext" <<EOF
524 #line __oline__ "configure"
525 int     testdata[[3]] = { 123, 456, 789 };
526 EOF
527                         if AC_TRY_EVAL(ac_compile) ; then
528                                 echo "$AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext" >&AC_FD_CC
529                                 $AR $ARFLAGS "$cf_ar_flags" conftest.a "conftest.$ac_cv_objext" 2>&AC_FD_CC 1>/dev/null
530                                 if test -f conftest.a ; then
531                                         cf_cv_ar_flags="$cf_ar_flags"
532                                         break
533                                 fi
534                         else
535                                 CF_VERBOSE(cannot compile test-program)
536                                 break
537                         fi
538                 done
539                 rm -f conftest.a "conftest.$ac_ext" "conftest.$ac_cv_objext"
540                 ;;
541         esac
542 ])
543
544 if test -n "$ARFLAGS" ; then
545         if test -n "$cf_cv_ar_flags" ; then
546                 ARFLAGS="$ARFLAGS $cf_cv_ar_flags"
547         fi
548 else
549         ARFLAGS=$cf_cv_ar_flags
550 fi
551
552 AC_SUBST(ARFLAGS)
553 ])
554 dnl ---------------------------------------------------------------------------
555 dnl CF_AWK_BIG_PRINTF version: 5 updated: 2015/04/17 21:13:04
556 dnl -----------------
557 dnl Check if awk can handle big strings using printf.  Some older versions of
558 dnl awk choke on large strings passed via "%s".
559 dnl
560 dnl $1 = desired string size
561 dnl $2 = variable to set with result
562 AC_DEFUN([CF_AWK_BIG_PRINTF],
563 [
564         case x$AWK in
565         (x)
566                 eval $2=no
567                 ;;
568         (*)
569                 if ( ${AWK} 'BEGIN { xx = "x"; while (length(xx) < $1) { xx = xx "x"; }; printf("%s\n", xx); }' 2>/dev/null \
570                         | $AWK '{ printf "%d\n", length([$]0); }' 2>/dev/null | $AWK 'BEGIN { eqls=0; recs=0; } { recs++; if ([$]0 == 12000) eqls++; } END { if (recs != 1 || eqls != 1) exit 1; }' 2>/dev/null >/dev/null ) ; then
571                         eval $2=yes
572                 else
573                         eval $2=no
574                 fi
575                 ;;
576         esac
577 ])dnl
578 dnl ---------------------------------------------------------------------------
579 dnl CF_BOOL_DECL version: 8 updated: 2004/01/30 15:51:18
580 dnl ------------
581 dnl Test if 'bool' is a builtin type in the configured C++ compiler.  Some
582 dnl older compilers (e.g., gcc 2.5.8) don't support 'bool' directly; gcc
583 dnl 2.6.3 does, in anticipation of the ANSI C++ standard.
584 dnl
585 dnl Treat the configuration-variable specially here, since we're directly
586 dnl substituting its value (i.e., 1/0).
587 dnl
588 dnl $1 is the shell variable to store the result in, if not $cv_cv_builtin_bool
589 AC_DEFUN([CF_BOOL_DECL],
590 [
591 AC_MSG_CHECKING(if we should include stdbool.h)
592
593 AC_CACHE_VAL(cf_cv_header_stdbool_h,[
594         AC_TRY_COMPILE([],[bool foo = false],
595                 [cf_cv_header_stdbool_h=0],
596                 [AC_TRY_COMPILE([
597 #ifndef __BEOS__
598 #include <stdbool.h>
599 #endif
600 ],[bool foo = false],
601                         [cf_cv_header_stdbool_h=1],
602                         [cf_cv_header_stdbool_h=0])])])
603
604 if test "$cf_cv_header_stdbool_h" = 1
605 then    AC_MSG_RESULT(yes)
606 else    AC_MSG_RESULT(no)
607 fi
608
609 AC_MSG_CHECKING([for builtin bool type])
610
611 AC_CACHE_VAL(ifelse($1,,cf_cv_builtin_bool,[$1]),[
612         AC_TRY_COMPILE([
613 #include <stdio.h>
614 #include <sys/types.h>
615 ],[bool x = false],
616                 [ifelse($1,,cf_cv_builtin_bool,[$1])=1],
617                 [ifelse($1,,cf_cv_builtin_bool,[$1])=0])
618         ])
619
620 if test "$ifelse($1,,cf_cv_builtin_bool,[$1])" = 1
621 then    AC_MSG_RESULT(yes)
622 else    AC_MSG_RESULT(no)
623 fi
624 ])dnl
625 dnl ---------------------------------------------------------------------------
626 dnl CF_BOOL_SIZE version: 18 updated: 2021/09/04 06:35:04
627 dnl ------------
628 dnl Test for the size of 'bool' in the configured C++ compiler (e.g., a type).
629 dnl Don't bother looking for bool.h, since it has been deprecated.
630 dnl
631 dnl If the current compiler is C rather than C++, we get the bool definition
632 dnl from <stdbool.h>.
633 AC_DEFUN([CF_BOOL_SIZE],
634 [
635 AC_CHECK_SIZEOF(bool,,[
636 #include <stdlib.h>
637 #include <stdio.h>
638
639 #if defined(__cplusplus)
640
641 #ifdef HAVE_GXX_BUILTIN_H
642 #include <g++/builtin.h>
643 #elif HAVE_GPP_BUILTIN_H
644 #include <gpp/builtin.h>
645 #elif HAVE_BUILTIN_H
646 #include <builtin.h>
647 #endif
648
649 #else
650
651 #if $cf_cv_header_stdbool_h
652 #include <stdbool.h>
653 #endif
654
655 #endif
656 ])
657
658 AC_CACHE_CHECK(for type of bool, cf_cv_type_of_bool,[
659         rm -f cf_test.out
660         AC_TRY_RUN([
661 #include <stdlib.h>
662 #include <stdio.h>
663
664 #if defined(__cplusplus)
665
666 #ifdef HAVE_GXX_BUILTIN_H
667 #include <g++/builtin.h>
668 #elif HAVE_GPP_BUILTIN_H
669 #include <gpp/builtin.h>
670 #elif HAVE_BUILTIN_H
671 #include <builtin.h>
672 #endif
673
674 #else
675
676 #if $cf_cv_header_stdbool_h
677 #include <stdbool.h>
678 #endif
679
680 #endif
681
682 int main(void)
683 {
684         FILE *fp = fopen("cf_test.out", "w");
685         if (fp != 0) {
686                 bool x = true;
687                 if ((bool)(-x) >= 0)
688                         fputs("unsigned ", fp);
689                 if (sizeof(x) == sizeof(int))       fputs("int",  fp);
690                 else if (sizeof(x) == sizeof(char)) fputs("char", fp);
691                 else if (sizeof(x) == sizeof(short))fputs("short",fp);
692                 else if (sizeof(x) == sizeof(long)) fputs("long", fp);
693                 fclose(fp);
694         }
695         ${cf_cv_main_return:-return}(0);
696 }
697                 ],
698                 [cf_cv_type_of_bool=`cat cf_test.out`
699                  if test -z "$cf_cv_type_of_bool"; then
700                    cf_cv_type_of_bool=unknown
701                  fi],
702                 [cf_cv_type_of_bool=unknown],
703                 [
704                 case x$ac_cv_sizeof_bool in
705                 (x1) cf_cv_type_of_bool="unsigned char";;
706                 (x2) cf_cv_type_of_bool="unsigned short";;
707                 (x4) cf_cv_type_of_bool="unsigned int";;
708                 (x8) cf_cv_type_of_bool="unsigned long";;
709                 (*)  cf_cv_type_of_bool=unknown;;
710                 esac
711                 ])
712         rm -f cf_test.out
713 ])
714
715 if test "$cf_cv_type_of_bool" = unknown ; then
716         case .$NCURSES_BOOL in
717         (.auto|.) NCURSES_BOOL=unsigned;;
718         esac
719         AC_MSG_WARN(Assuming $NCURSES_BOOL for type of bool)
720         cf_cv_type_of_bool=$NCURSES_BOOL
721 fi
722 ])dnl
723 dnl ---------------------------------------------------------------------------
724 dnl CF_BUILD_CC version: 9 updated: 2021/01/02 09:31:20
725 dnl -----------
726 dnl If we're cross-compiling, allow the user to override the tools and their
727 dnl options.  The configure script is oriented toward identifying the host
728 dnl compiler, etc., but we need a build compiler to generate parts of the
729 dnl source.
730 dnl
731 dnl $1 = default for $CPPFLAGS
732 dnl $2 = default for $LIBS
733 AC_DEFUN([CF_BUILD_CC],[
734 CF_ACVERSION_CHECK(2.52,,
735         [AC_REQUIRE([CF_PROG_EXT])])
736 if test "$cross_compiling" = yes ; then
737
738         # defaults that we might want to override
739         : ${BUILD_CFLAGS:=''}
740         : ${BUILD_CPPFLAGS:='ifelse([$1],,,[$1])'}
741         : ${BUILD_LDFLAGS:=''}
742         : ${BUILD_LIBS:='ifelse([$2],,,[$2])'}
743         : ${BUILD_EXEEXT:='$x'}
744         : ${BUILD_OBJEXT:='o'}
745
746         AC_ARG_WITH(build-cc,
747                 [  --with-build-cc=XXX     the build C compiler ($BUILD_CC)],
748                 [BUILD_CC="$withval"],
749                 [AC_CHECK_PROGS(BUILD_CC, [gcc clang c99 c89 cc cl],none)])
750         AC_MSG_CHECKING(for native build C compiler)
751         AC_MSG_RESULT($BUILD_CC)
752
753         AC_MSG_CHECKING(for native build C preprocessor)
754         AC_ARG_WITH(build-cpp,
755                 [  --with-build-cpp=XXX    the build C preprocessor ($BUILD_CPP)],
756                 [BUILD_CPP="$withval"],
757                 [BUILD_CPP='${BUILD_CC} -E'])
758         AC_MSG_RESULT($BUILD_CPP)
759
760         AC_MSG_CHECKING(for native build C flags)
761         AC_ARG_WITH(build-cflags,
762                 [  --with-build-cflags=XXX the build C compiler-flags ($BUILD_CFLAGS)],
763                 [BUILD_CFLAGS="$withval"])
764         AC_MSG_RESULT($BUILD_CFLAGS)
765
766         AC_MSG_CHECKING(for native build C preprocessor-flags)
767         AC_ARG_WITH(build-cppflags,
768                 [  --with-build-cppflags=XXX the build C preprocessor-flags ($BUILD_CPPFLAGS)],
769                 [BUILD_CPPFLAGS="$withval"])
770         AC_MSG_RESULT($BUILD_CPPFLAGS)
771
772         AC_MSG_CHECKING(for native build linker-flags)
773         AC_ARG_WITH(build-ldflags,
774                 [  --with-build-ldflags=XXX the build linker-flags ($BUILD_LDFLAGS)],
775                 [BUILD_LDFLAGS="$withval"])
776         AC_MSG_RESULT($BUILD_LDFLAGS)
777
778         AC_MSG_CHECKING(for native build linker-libraries)
779         AC_ARG_WITH(build-libs,
780                 [  --with-build-libs=XXX   the build libraries (${BUILD_LIBS})],
781                 [BUILD_LIBS="$withval"])
782         AC_MSG_RESULT($BUILD_LIBS)
783
784         # this assumes we're on Unix.
785         BUILD_EXEEXT=
786         BUILD_OBJEXT=o
787
788         : ${BUILD_CC:='${CC}'}
789
790         if { test "$BUILD_CC" = "$CC" || test "$BUILD_CC" = '${CC}'; } ; then
791                 AC_MSG_ERROR([Cross-build requires two compilers.
792 Use --with-build-cc to specify the native compiler.])
793         fi
794
795 else
796         : ${BUILD_CC:='${CC}'}
797         : ${BUILD_CPP:='${CPP}'}
798         : ${BUILD_CFLAGS:='${CFLAGS}'}
799         : ${BUILD_CPPFLAGS:='${CPPFLAGS}'}
800         : ${BUILD_LDFLAGS:='${LDFLAGS}'}
801         : ${BUILD_LIBS:='${LIBS}'}
802         : ${BUILD_EXEEXT:='$x'}
803         : ${BUILD_OBJEXT:='o'}
804 fi
805
806 AC_SUBST(BUILD_CC)
807 AC_SUBST(BUILD_CPP)
808 AC_SUBST(BUILD_CFLAGS)
809 AC_SUBST(BUILD_CPPFLAGS)
810 AC_SUBST(BUILD_LDFLAGS)
811 AC_SUBST(BUILD_LIBS)
812 AC_SUBST(BUILD_EXEEXT)
813 AC_SUBST(BUILD_OBJEXT)
814 ])dnl
815 dnl ---------------------------------------------------------------------------
816 dnl CF_C11_NORETURN version: 3 updated: 2021/03/28 11:36:23
817 dnl ---------------
818 AC_DEFUN([CF_C11_NORETURN],
819 [
820 AC_MSG_CHECKING(if you want to use C11 _Noreturn feature)
821 CF_ARG_ENABLE(stdnoreturn,
822         [  --enable-stdnoreturn    enable C11 _Noreturn feature for diagnostics],
823         [enable_stdnoreturn=yes],
824         [enable_stdnoreturn=no])
825 AC_MSG_RESULT($enable_stdnoreturn)
826
827 if test $enable_stdnoreturn = yes; then
828 AC_CACHE_CHECK([for C11 _Noreturn feature], cf_cv_c11_noreturn,
829         [AC_TRY_COMPILE([
830 #include <stdio.h>
831 #include <stdlib.h>
832 #include <stdnoreturn.h>
833 static _Noreturn void giveup(void) { exit(0); }
834         ],
835         [if (feof(stdin)) giveup()],
836         cf_cv_c11_noreturn=yes,
837         cf_cv_c11_noreturn=no)
838         ])
839 else
840         cf_cv_c11_noreturn=no,
841 fi
842
843 if test "$cf_cv_c11_noreturn" = yes; then
844         AC_DEFINE(HAVE_STDNORETURN_H, 1,[Define if <stdnoreturn.h> header is available and working])
845         AC_DEFINE_UNQUOTED(STDC_NORETURN,_Noreturn,[Define if C11 _Noreturn keyword is supported])
846         HAVE_STDNORETURN_H=1
847 else
848         HAVE_STDNORETURN_H=0
849 fi
850
851 AC_SUBST(HAVE_STDNORETURN_H)
852 AC_SUBST(STDC_NORETURN)
853 ])dnl
854 dnl ---------------------------------------------------------------------------
855 dnl CF_CC_ENV_FLAGS version: 10 updated: 2020/12/31 18:40:20
856 dnl ---------------
857 dnl Check for user's environment-breakage by stuffing CFLAGS/CPPFLAGS content
858 dnl into CC.  This will not help with broken scripts that wrap the compiler
859 dnl with options, but eliminates a more common category of user confusion.
860 dnl
861 dnl In particular, it addresses the problem of being able to run the C
862 dnl preprocessor in a consistent manner.
863 dnl
864 dnl Caveat: this also disallows blanks in the pathname for the compiler, but
865 dnl the nuisance of having inconsistent settings for compiler and preprocessor
866 dnl outweighs that limitation.
867 AC_DEFUN([CF_CC_ENV_FLAGS],
868 [
869 # This should have been defined by AC_PROG_CC
870 : "${CC:=cc}"
871
872 AC_MSG_CHECKING(\$CFLAGS variable)
873 case "x$CFLAGS" in
874 (*-[[IUD]]*)
875         AC_MSG_RESULT(broken)
876         AC_MSG_WARN(your environment uses the CFLAGS variable to hold CPPFLAGS options)
877         cf_flags="$CFLAGS"
878         CFLAGS=
879         for cf_arg in $cf_flags
880         do
881                 CF_ADD_CFLAGS($cf_arg)
882         done
883         ;;
884 (*)
885         AC_MSG_RESULT(ok)
886         ;;
887 esac
888
889 AC_MSG_CHECKING(\$CC variable)
890 case "$CC" in
891 (*[[\ \ ]]-*)
892         AC_MSG_RESULT(broken)
893         AC_MSG_WARN(your environment uses the CC variable to hold CFLAGS/CPPFLAGS options)
894         # humor him...
895         cf_prog=`echo "$CC" | sed -e 's/        / /g' -e 's/[[ ]]* / /g' -e 's/[[ ]]*[[ ]]-[[^ ]].*//'`
896         cf_flags=`echo "$CC" | ${AWK:-awk} -v prog="$cf_prog" '{ printf("%s", [substr]([$]0,1+length(prog))); }'`
897         CC="$cf_prog"
898         for cf_arg in $cf_flags
899         do
900                 case "x$cf_arg" in
901                 (x-[[IUDfgOW]]*)
902                         CF_ADD_CFLAGS($cf_arg)
903                         ;;
904                 (*)
905                         CC="$CC $cf_arg"
906                         ;;
907                 esac
908         done
909         CF_VERBOSE(resulting CC: '$CC')
910         CF_VERBOSE(resulting CFLAGS: '$CFLAGS')
911         CF_VERBOSE(resulting CPPFLAGS: '$CPPFLAGS')
912         ;;
913 (*)
914         AC_MSG_RESULT(ok)
915         ;;
916 esac
917 ])dnl
918 dnl ---------------------------------------------------------------------------
919 dnl CF_CFG_DEFAULTS version: 16 updated: 2021/01/04 19:33:05
920 dnl ---------------
921 dnl Determine the default configuration into which we'll install ncurses.  This
922 dnl can be overridden by the user's command-line options.  There's two items to
923 dnl look for:
924 dnl     1. the prefix (e.g., /usr)
925 dnl     2. the header files (e.g., /usr/include/ncurses)
926 dnl We'll look for a previous installation of ncurses and use the same defaults.
927 dnl
928 dnl We don't use AC_PREFIX_DEFAULT, because it gets evaluated too soon, and
929 dnl we don't use AC_PREFIX_PROGRAM, because we cannot distinguish ncurses's
930 dnl programs from a vendor's.
931 AC_DEFUN([CF_CFG_DEFAULTS],
932 [AC_REQUIRE([AC_PROG_FGREP])dnl
933
934 AC_MSG_CHECKING(for prefix)
935 if test "x$prefix" = "xNONE" ; then
936         case "$cf_cv_system_name" in
937                 # non-vendor systems don't have a conflict
938         (openbsd*|freebsd*|mirbsd*|linux*|cygwin*|msys*|k*bsd*-gnu|mingw*)
939                 prefix=/usr
940                 ;;
941         (*)     prefix=$ac_default_prefix
942                 ;;
943         esac
944 fi
945 AC_MSG_RESULT($prefix)
946
947 if test "x$prefix" = "xNONE" ; then
948 AC_MSG_CHECKING(for default include-directory)
949 test -n "$verbose" && echo 1>&AC_FD_MSG
950 for cf_symbol in \
951         "$includedir" \
952         "$includedir/ncurses" \
953         "$prefix/include" \
954         "$prefix/include/ncurses" \
955         /usr/local/include \
956         /usr/local/include/ncurses \
957         /usr/include \
958         /usr/include/ncurses
959 do
960         cf_dir=`eval echo "$cf_symbol"`
961         if test -f "$cf_dir/curses.h" ; then
962         if ( ${FGREP-fgrep} NCURSES_VERSION "$cf_dir/curses.h" >/dev/null 2>&1 ) ; then
963                 includedir="$cf_symbol"
964                 test -n "$verbose"  && echo $ECHO_N "   found " 1>&AC_FD_MSG
965                 break
966         fi
967         fi
968         test -n "$verbose"  && echo "   tested $cf_dir" 1>&AC_FD_MSG
969 done
970 AC_MSG_RESULT($includedir)
971 fi
972 ])dnl
973 dnl ---------------------------------------------------------------------------
974 dnl CF_CGETENT version: 6 updated: 2017/01/21 11:06:25
975 dnl ----------
976 dnl Check if the terminal-capability database functions are available.  If not,
977 dnl ncurses has a much-reduced version.
978 AC_DEFUN([CF_CGETENT],[
979 AC_CACHE_CHECK(for terminal-capability database functions,cf_cv_cgetent,[
980 AC_TRY_LINK([
981 #include <stdlib.h>],[
982         char temp[128];
983         char *buf = temp;
984         char *db_array = temp;
985         cgetent(&buf, &db_array, "vt100");
986         cgetcap(buf, "tc", '=');
987         cgetmatch(buf, "tc");
988         ],
989         [cf_cv_cgetent=yes],
990         [cf_cv_cgetent=no])
991 ])
992
993 if test "$cf_cv_cgetent" = yes
994 then
995         AC_DEFINE(HAVE_BSD_CGETENT,1,[Define to 1 if we have BSD cgetent])
996 AC_CACHE_CHECK(if cgetent uses const parameter,cf_cv_cgetent_const,[
997 AC_TRY_LINK([
998 #pragma GCC diagnostic error "-Wincompatible-pointer-types-discards-qualifiers"
999 #include <stdlib.h>],[
1000         char temp[128];
1001         char *buf = temp;
1002 #ifndef _NETBSD_SOURCE                  /* given, since April 2004 in stdlib.h */
1003         const char *db_array = temp;
1004         cgetent(&buf, &db_array, "vt100");
1005 #endif
1006         cgetcap(buf, "tc", '=');
1007         cgetmatch(buf, "tc");
1008         ],
1009         [cf_cv_cgetent_const=yes],
1010         [cf_cv_cgetent_const=no])
1011 ])
1012         if test "$cf_cv_cgetent_const" = yes
1013         then
1014                 AC_DEFINE_UNQUOTED(CGETENT_CONST,const,[Define to const if needed for some BSD cgetent variations])
1015         fi
1016 fi
1017 ])dnl
1018 dnl ---------------------------------------------------------------------------
1019 dnl CF_CHECK_CACHE version: 13 updated: 2020/12/31 10:54:15
1020 dnl --------------
1021 dnl Check if we're accidentally using a cache from a different machine.
1022 dnl Derive the system name, as a check for reusing the autoconf cache.
1023 dnl
1024 dnl If we've packaged config.guess and config.sub, run that (since it does a
1025 dnl better job than uname).  Normally we'll use AC_CANONICAL_HOST, but allow
1026 dnl an extra parameter that we may override, e.g., for AC_CANONICAL_SYSTEM
1027 dnl which is useful in cross-compiles.
1028 dnl
1029 dnl Note: we would use $ac_config_sub, but that is one of the places where
1030 dnl autoconf 2.5x broke compatibility with autoconf 2.13
1031 AC_DEFUN([CF_CHECK_CACHE],
1032 [
1033 if test -f "$srcdir/config.guess" || test -f "$ac_aux_dir/config.guess" ; then
1034         ifelse([$1],,[AC_CANONICAL_HOST],[$1])
1035         system_name="$host_os"
1036 else
1037         system_name="`(uname -s -r) 2>/dev/null`"
1038         if test -z "$system_name" ; then
1039                 system_name="`(hostname) 2>/dev/null`"
1040         fi
1041 fi
1042 test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name",[Define to the system name.])
1043 AC_CACHE_VAL(cf_cv_system_name,[cf_cv_system_name="$system_name"])
1044
1045 test -z "$system_name" && system_name="$cf_cv_system_name"
1046 test -n "$cf_cv_system_name" && AC_MSG_RESULT(Configuring for $cf_cv_system_name)
1047
1048 if test ".$system_name" != ".$cf_cv_system_name" ; then
1049         AC_MSG_RESULT(Cached system name ($system_name) does not agree with actual ($cf_cv_system_name))
1050         AC_MSG_ERROR("Please remove config.cache and try again.")
1051 fi
1052 ])dnl
1053 dnl ---------------------------------------------------------------------------
1054 dnl CF_CHECK_ENVIRON version: 3 updated: 2010/05/26 16:44:57
1055 dnl ----------------
1056 dnl Check for data that is usually declared in <unistd.h>, e.g., the 'environ'
1057 dnl variable.  Define a DECL_xxx symbol if we must declare it ourselves.
1058 dnl
1059 dnl $1 = the name to check
1060 dnl $2 = the assumed type
1061 AC_DEFUN([CF_CHECK_ENVIRON],
1062 [
1063 AC_CACHE_CHECK(if external $1 is declared, cf_cv_dcl_$1,[
1064     AC_TRY_COMPILE([
1065 #ifdef HAVE_STDLIB_H
1066 #include <stdlib.h>
1067 #endif
1068 #include <unistd.h> ],
1069     ifelse([$2],,int,[$2]) x = (ifelse([$2],,int,[$2])) $1,
1070     [cf_cv_dcl_$1=yes],
1071     [cf_cv_dcl_$1=no])
1072 ])
1073
1074 if test "$cf_cv_dcl_$1" = no ; then
1075     CF_UPPER(cf_result,decl_$1)
1076     AC_DEFINE_UNQUOTED($cf_result)
1077 fi
1078
1079 # It's possible (for near-UNIX clones) that the data doesn't exist
1080 CF_CHECK_EXTERN_DATA($1,ifelse([$2],,int,[$2]))
1081 ])dnl
1082 dnl ---------------------------------------------------------------------------
1083 dnl CF_CHECK_ERRNO version: 13 updated: 2020/03/10 18:53:47
1084 dnl --------------
1085 dnl Check for data that is usually declared in <stdio.h> or <errno.h>, e.g.,
1086 dnl the 'errno' variable.  Define a DECL_xxx symbol if we must declare it
1087 dnl ourselves.
1088 dnl
1089 dnl $1 = the name to check
1090 dnl $2 = the assumed type
1091 AC_DEFUN([CF_CHECK_ERRNO],
1092 [
1093 AC_CACHE_CHECK(if external $1 is declared, cf_cv_dcl_$1,[
1094         AC_TRY_COMPILE([
1095 #ifdef HAVE_STDLIB_H
1096 #include <stdlib.h>
1097 #endif
1098 #include <stdio.h>
1099 #include <sys/types.h>
1100 #include <errno.h> ],
1101         ifelse([$2],,int,[$2]) x = (ifelse([$2],,int,[$2])) $1; (void)x,
1102         [cf_cv_dcl_$1=yes],
1103         [cf_cv_dcl_$1=no])
1104 ])
1105
1106 if test "$cf_cv_dcl_$1" = no ; then
1107         CF_UPPER(cf_result,decl_$1)
1108         AC_DEFINE_UNQUOTED($cf_result)
1109 fi
1110
1111 # It's possible (for near-UNIX clones) that the data doesn't exist
1112 CF_CHECK_EXTERN_DATA($1,ifelse([$2],,int,[$2]))
1113 ])dnl
1114 dnl ---------------------------------------------------------------------------
1115 dnl CF_CHECK_EXTERN_DATA version: 5 updated: 2021/09/04 06:35:04
1116 dnl --------------------
1117 dnl Check for existence of external data in the current set of libraries.  If
1118 dnl we can modify it, it is real enough.
1119 dnl $1 = the name to check
1120 dnl $2 = its type
1121 AC_DEFUN([CF_CHECK_EXTERN_DATA],
1122 [
1123 AC_CACHE_CHECK(if external $1 exists, cf_cv_have_$1,[
1124         AC_TRY_LINK([
1125 #undef $1
1126 extern $2 $1;
1127 ],
1128         [$1 = 2],
1129         [cf_cv_have_$1=yes],
1130         [cf_cv_have_$1=no])
1131 ])
1132
1133 if test "$cf_cv_have_$1" = yes ; then
1134         CF_UPPER(cf_result,have_$1)
1135         AC_DEFINE_UNQUOTED($cf_result)
1136 fi
1137
1138 ])dnl
1139 dnl ---------------------------------------------------------------------------
1140 dnl CF_CHECK_FVISIBILITY version: 2 updated: 2020/04/04 16:16:13
1141 dnl --------------------
1142 dnl Check whether the compiler understands -fvisibility=hidden
1143 dnl
1144 dnl $1 = compiler
1145 dnl $2 = compiler-flags variable name
1146 dnl $3 = cache variable to set
1147 AC_DEFUN([CF_CHECK_FVISIBILITY],[
1148 AC_CACHE_CHECK(if $1 -fvisibility=hidden option works,$3,[
1149     cf_save_cflags="[$]$2"
1150     $2="[$]$2 -fvisibility=hidden"
1151     AC_TRY_LINK([
1152 __attribute__ ((visibility("default"))) int somefunc() {return 42;}
1153         ],[
1154         if (somefunc()) return 1;
1155 ],
1156     [$3=yes],
1157     [$3=no])
1158     $2=$cf_save_cflags
1159 ])
1160 ])dnl
1161 dnl ---------------------------------------------------------------------------
1162 dnl CF_CHECK_GETENV version: 2 updated: 2021/01/02 17:09:14
1163 dnl ---------------
1164 dnl Check if repeated getenv calls return the same pointer, e.g., it does not
1165 dnl discard the previous pointer when returning a new one.
1166 AC_DEFUN([CF_CHECK_GETENV],
1167 [
1168 AC_REQUIRE([CF_CHECK_ENVIRON])
1169 AC_CHECK_FUNC( getenv, ,, AC_MSG_ERROR(getenv not found) )
1170 AC_CHECK_FUNCS( putenv setenv strdup )
1171 AC_CACHE_CHECK(if getenv returns consistent values,cf_cv_consistent_getenv,[
1172 AC_TRY_RUN([
1173 #include <stdlib.h>
1174 #include <unistd.h>
1175 #include <stdio.h>
1176 #include <string.h>
1177 #include <sys/types.h>
1178
1179 #if defined(HAVE_ENVIRON) && defined(DECL_ENVIRON) && !defined(environ)
1180 extern char **environ;  /* POSIX, but some systems are not... */
1181 #endif
1182
1183 #if defined(HAVE_STRDUP)
1184 #define str_alloc(s) strdup(s)
1185 #else
1186 #define str_alloc(s) strcpy(malloc(strlen(s) + 1, s))
1187 #endif
1188
1189 static void set_value(const char *name, const char *value)
1190 {
1191 #if defined(HAVE_SETENV)
1192         setenv(name, value, 1);
1193 #elif defined(HAVE_PUTENV)
1194         char buffer[1024];
1195         sprintf(buffer, "%s=%s", name, value);
1196         putenv(str_alloc(buffer));
1197 #else
1198 #error neither putenv/setenv found
1199 #endif
1200 }
1201 int main(void)
1202 {
1203         int pass;
1204         size_t numenv, limit, j;
1205         char **mynames;
1206         char **myvalues;
1207         char **mypointer;
1208         char *equals;
1209         for (numenv = 0; environ[numenv]; ++numenv) ;
1210         limit = numenv + 10;
1211         mynames = (char **) calloc(limit + 1, sizeof(char *));
1212         myvalues = (char **) calloc(limit + 1, sizeof(char *));
1213         mypointer = (char **) calloc(limit + 1, sizeof(char *));
1214 #if defined(HAVE_ENVIRON)
1215         for (j = 0; environ[j]; ++j) {
1216                 mynames[j] = str_alloc(environ[j]);
1217                 equals = strchr(mynames[j], '=');
1218                 if (equals != 0) {
1219                         *equals++ = '\\0';
1220                         myvalues[j] = str_alloc(equals);
1221                 } else {
1222                         myvalues[j] = str_alloc("");
1223                 }
1224         }
1225 #endif
1226         for (j = numenv; j < limit; ++j) {
1227                 char name[80];
1228                 char value[80];
1229                 size_t found;
1230                 size_t k = 0;
1231                 do {
1232                         size_t jk;
1233                         found = 0;
1234                         sprintf(name, "TERM%lu", (unsigned long) k);
1235                         for (jk = 0; jk < j; ++jk) {
1236                                 if (!strcmp(name, mynames[jk])) {
1237                                         found = 1;
1238                                         ++k;
1239                                         break;
1240                                 }
1241                         }
1242                 } while (found);
1243                 sprintf(value, "%lu:%p", (unsigned long) k, &mynames[j]);
1244                 set_value(name, value);
1245                 mynames[j] = str_alloc(name);
1246                 myvalues[j] = str_alloc(value);
1247         }
1248         for (pass = 0; pass < 3; ++pass) {
1249                 for (j = 0; j < limit; ++j) {
1250                         char *value = getenv(mynames[j]);
1251                         if (pass) {
1252                                 if (value == 0) {
1253                                         fprintf(stderr, "getenv returned null for %s\\n", mynames[j]);
1254                                         ${cf_cv_main_return:-return}(1);
1255                                 } else if (value != mypointer[j]) {
1256                                         fprintf(stderr, "getenv returned different pointer for %s\\n", mynames[j]);
1257                                         ${cf_cv_main_return:-return}(1);
1258                                 } else if (strcmp(value, myvalues[j])) {
1259                                         fprintf(stderr, "getenv returned different value for %s\\n", mynames[j]);
1260                                         ${cf_cv_main_return:-return}(1);
1261                                 }
1262                         } else {
1263                                 size_t k;
1264                                 mypointer[j] = value;
1265                                 for (k = 0; k < j; ++k) {
1266                                         if (mypointer[j] == mypointer[k]) {
1267                                                 fprintf(stderr, "getenv returned same pointer for %s and %s\\n", mynames[j], mynames[k]);
1268                                                 ${cf_cv_main_return:-return}(1);
1269                                         }
1270                                 }
1271                         }
1272                 }
1273         }
1274         ${cf_cv_main_return:-return}(0);
1275 }
1276 ],
1277 [cf_cv_consistent_getenv=yes],
1278 [cf_cv_consistent_getenv=no],
1279 [cf_cv_consistent_getenv=unknown])
1280 ])
1281
1282 if test "x$cf_cv_consistent_getenv" = xno
1283 then
1284         AC_DEFINE(HAVE_CONSISTENT_GETENV,1,[Define to 1 if getenv repeatably returns the same value for a given name])
1285 fi
1286 ])dnl
1287 dnl ---------------------------------------------------------------------------
1288 dnl CF_CHECK_GNAT_VERSION version: 4 updated: 2021/01/01 13:31:04
1289 dnl ---------------------
1290 AC_DEFUN([CF_CHECK_GNAT_VERSION],
1291 [
1292 AC_REQUIRE([CF_GNAT_VERSION])
1293 case "$cf_cv_gnat_version" in
1294 (3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*|[[1-9]][[0-9]].[[0-9]]*|20[[0-9]][[0-9]])
1295         cf_cv_prog_gnat_correct=yes
1296         ;;
1297 (*)
1298         AC_MSG_WARN(Unsupported GNAT version $cf_cv_gnat_version. We require 3.11 or better. Disabling Ada95 binding.)
1299         cf_cv_prog_gnat_correct=no
1300         ;;
1301 esac
1302 ])
1303 dnl ---------------------------------------------------------------------------
1304 dnl CF_CHECK_GPM_WGETCH version: 6 updated: 2021/01/04 18:48:01
1305 dnl -------------------
1306 dnl Check if GPM is already linked with curses.  If so - and if the linkage
1307 dnl is not "weak" - warn about this because it can create problems linking
1308 dnl applications with ncurses.
1309 AC_DEFUN([CF_CHECK_GPM_WGETCH],[
1310 AC_REQUIRE([AC_PROG_EGREP])dnl
1311
1312 AC_CHECK_LIB(gpm,Gpm_Wgetch,[
1313
1314 AC_CACHE_CHECK(if GPM is weakly bound to curses library, cf_cv_check_gpm_wgetch,[
1315 cf_cv_check_gpm_wgetch=unknown
1316 if test "$cross_compiling" != yes ; then
1317
1318 cat >conftest.$ac_ext <<CF_EOF
1319 #include <gpm.h>
1320 int main(void)
1321 {
1322         Gpm_Wgetch();
1323         ${cf_cv_main_return:-return}(0);
1324 }
1325 CF_EOF
1326
1327         cf_save_LIBS="$LIBS"
1328         # This only works if we can look at the symbol table.  If a shared
1329         # library is stripped for install, we cannot use that.  So we're forced
1330         # to rely on the static library, noting that some packagers may not
1331         # include it.
1332         LIBS="-static -lgpm -dynamic $LIBS"
1333         if AC_TRY_EVAL(ac_compile) ; then
1334                 if AC_TRY_EVAL(ac_link) ; then
1335                         cf_cv_check_gpm_wgetch="`nm \"conftest$ac_exeext\" | ${EGREP-egrep} '\<wgetch\>' | ${EGREP-egrep} '\<[[vVwW]]\>'`"
1336                         test -n "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=yes
1337                         test -z "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=no
1338                 fi
1339         fi
1340         rm -rf ./conftest*
1341         LIBS="$cf_save_LIBS"
1342 fi
1343 ])
1344
1345 if test "$cf_cv_check_gpm_wgetch" != yes ; then
1346         AC_MSG_WARN(GPM library is already linked with curses - read the FAQ)
1347 fi
1348 ])])dnl
1349 dnl ---------------------------------------------------------------------------
1350 dnl CF_CHECK_LIBTOOL_VERSION version: 2 updated: 2021/05/01 16:24:34
1351 dnl ------------------------
1352 dnl Show the version of libtool
1353 dnl
1354 dnl Save the version in a cache variable - this is not entirely a good thing,
1355 dnl but the version string from libtool is very ugly, and for bug reports it
1356 dnl might be useful to have the original string.
1357 dnl
1358 dnl There is an imitation in OpenBSD, which has no apparent use other than to
1359 dnl deny that it is GNU libtool.  Just ignore it.
1360 AC_DEFUN([CF_CHECK_LIBTOOL_VERSION],[
1361 if test -n "$LIBTOOL" && test "$LIBTOOL" != none
1362 then
1363         AC_MSG_CHECKING(version of $LIBTOOL)
1364         CF_LIBTOOL_VERSION
1365         AC_MSG_RESULT($cf_cv_libtool_version)
1366         if test -n "$cf_cv_libtool_version"
1367         then
1368                 cf_check_libtool_version=`$LIBTOOL --version 2>&1 | sed -e '/^$/d' -e 's,[[()]],...,g' -e 's,[[ ]],-,g' -e '2,$d'`
1369                 case "x$cf_check_libtool_version" in
1370                 (*...GNU-libtool...*)
1371                         ;;
1372                 (*)
1373                         AC_MSG_ERROR(This is not GNU libtool)
1374                         ;;
1375                 esac
1376         else
1377                 AC_MSG_ERROR(No version found for $LIBTOOL)
1378         fi
1379 else
1380         AC_MSG_ERROR(GNU libtool has not been found)
1381 fi
1382 ])dnl
1383 dnl ---------------------------------------------------------------------------
1384 dnl CF_CHECK_WCHAR_H version: 3 updated: 2021/01/01 13:31:04
1385 dnl ----------------
1386 dnl Check if wchar.h can be used, i.e., without defining _XOPEN_SOURCE_EXTENDED
1387 AC_DEFUN([CF_CHECK_WCHAR_H],[
1388 AC_CHECK_HEADERS( \
1389 wchar.h \
1390 wctype.h \
1391 )
1392 AC_CACHE_CHECK(if wchar.h can be used as is,cf_cv_wchar_h_okay,[
1393 AC_TRY_COMPILE(
1394 [
1395 #include <stdlib.h>
1396 #ifdef HAVE_WCHAR_H
1397 #include <wchar.h>
1398 #endif
1399 #ifdef HAVE_WCTYPE_H
1400 #include <wctype.h>
1401 #endif
1402 ],[
1403         wint_t foo = 0;
1404         int bar = iswpunct(foo)],
1405         [cf_cv_wchar_h_okay=yes],
1406         [cf_cv_wchar_h_okay=no])])
1407
1408 if test "$cf_cv_wchar_h_okay" = no
1409 then
1410         CF_PREDEFINE(_XOPEN_SOURCE_EXTENDED)
1411 fi
1412 ])dnl
1413 dnl ---------------------------------------------------------------------------
1414 dnl CF_CHECK_WCWIDTH_GRAPHICS version: 2 updated: 2021/01/02 17:09:14
1415 dnl -------------------------
1416 dnl Most "modern" terminal emulators are based to some degree on VT100, and
1417 dnl should support line-drawing.  Even with Unicode.  There is a problem.
1418 dnl
1419 dnl While most of the VT100 graphics characters were incorporated into Unicode,
1420 dnl all of those were combined into a page of useful graphics characters.
1421 dnl
1422 dnl So far, so good.
1423 dnl
1424 dnl However, while they are useful, there are other considerations.  CJK
1425 dnl is (because of poor device resolution) often rendered as double-width
1426 dnl characters.  So... for these generally-useful characters, what should
1427 dnl be the width (to make them consistent with adjacent characters)?
1428 dnl
1429 dnl The obvious choice would have been to make this locale-dependent, and use
1430 dnl wcwidth() to tell applications what the actual width is.  That was too
1431 dnl obvious.  Instead, we have a slew of "ambiguous-width" characters.
1432 dnl See for example
1433 dnl             http://www.unicode.org/reports/tr11/tr11-29.html
1434 dnl             http://www.cl.cam.ac.uk/~mgk25/ucs/scw-proposal.html
1435 dnl
1436 dnl The EastAsianWidth-6.2.0.txt file from the Unicode organization lists
1437 dnl more than 22,000 characters, with 1281 of those as ambiguous-width.  For
1438 dnl instance, it lists half (44/96) of the Latin-1 characters as
1439 dnl ambiguous-width.  Also, all of the box-characters at 0x2500 are ambiguous.
1440 dnl
1441 dnl What this means for the implementor is that on some systems wcwidth() can
1442 dnl give bad advice.  On Solaris, some of the ambiguous widths are returned as
1443 dnl 1 (the Latin-1 characters), while others are returned as 2 (line-drawing
1444 dnl characters).  These do not necessarily match the behavior of the terminal
1445 dnl emulator.  xterm, for instance, does an optional startup check to find if
1446 dnl this problem (or similar) exists with the system's locale tables, rejecting
1447 dnl them if they are too unreliable.
1448 AC_DEFUN([CF_CHECK_WCWIDTH_GRAPHICS],[
1449 AC_CACHE_CHECK(if wcwidth agrees graphics are single-width, cf_cv_wcwidth_graphics,[
1450 cat >conftest.in <<CF_EOF
1451 -       VT100 symbols
1452 0x250c  upper left corner
1453 0x2514  lower left corner
1454 0x2510  upper right corner
1455 0x2518  lower right corner
1456 0x251c  tee pointing left
1457 0x2524  tee pointing right
1458 0x2534  tee pointing up
1459 0x252c  tee pointing down
1460 0x2500  horizontal line
1461 0x2502  vertical line
1462 0x253c  large plus or crossover
1463 0x23ba  scan line 1
1464 0x23bd  scan line 9
1465 0x25c6  diamond
1466 0x2592  checker board (stipple)
1467 0x00b0  degree symbol
1468 0x00b1  plus/minus
1469 0x00b7  bullet
1470 -       Teletype 5410v1 symbols
1471 0x2190  arrow pointing left
1472 0x2192  arrow pointing right
1473 0x2193  arrow pointing down
1474 0x2191  arrow pointing up
1475 0x2592  board of squares
1476 0x2603  lantern symbol
1477 0x25ae  solid square block
1478 -       these defaults were invented for ncurses
1479 0x23bb  scan line 3
1480 0x23bc  scan line 7
1481 0x2264  less-than-or-equal-to
1482 0x2265  greater-than-or-equal-to
1483 0x03c0  greek pi
1484 0x2260  not-equal
1485 0x00a3  pound-sterling symbol
1486 -       thick-line-drawing
1487 0x250f  upper left corner
1488 0x2517  lower left corner
1489 0x2513  upper right corner
1490 0x251b  lower right corner
1491 0x2523  tee pointing left
1492 0x252b  tee pointing right
1493 0x253b  tee pointing up
1494 0x2533  tee pointing down
1495 0x2501  horizontal line
1496 0x2503  vertical line
1497 0x254b  large plus or crossover
1498 -       double-line-drawing
1499 0x2554  upper left corner
1500 0x255a  lower left corner
1501 0x2557  upper right corner
1502 0x255d  lower right corner
1503 0x2563  tee pointing left
1504 0x2560  tee pointing right
1505 0x2569  tee pointing up
1506 0x2566  tee pointing down
1507 0x2550  horizontal line
1508 0x2551  vertical line
1509 0x256c  large plus or crossover
1510 CF_EOF
1511 AC_TRY_RUN([
1512 #include <locale.h>
1513 #include <stdio.h>
1514 #include <wchar.h>
1515
1516 #define MY_LEN 80
1517
1518 int
1519 main(void)
1520 {
1521         FILE *fp;
1522         int value;
1523         char buffer[MY_LEN + 1];
1524         char notes[MY_LEN + 1];
1525         int totals = 0;
1526         int passed = 0;
1527
1528         if (setlocale(LC_ALL, "en_US.UTF8") ||
1529                 setlocale(LC_ALL, "en_US.UTF-8") ||
1530                 setlocale(LC_ALL, "en_US.utf8") ||
1531                 setlocale(LC_ALL, "en_US.utf-8")) {
1532                 if ((fp = fopen("conftest.in", "r")) != 0) {
1533                         while (fgets(buffer, MY_LEN, fp) != 0) {
1534                                 if (*buffer == '-') {
1535                                         fprintf(stderr, "\\t%s", buffer);
1536                                 } else if (sscanf(buffer, "%x %s", &value, notes) == 2) {
1537                                         ++totals;
1538                                         if (wcwidth(value) == 1)
1539                                                 ++passed;
1540                                         fprintf(stderr, "%d\\t%s", wcwidth(value), buffer);
1541                                 } else {
1542                                         fprintf(stderr, "?\\t%s", buffer);
1543                                 }
1544                         }
1545                 }
1546         }
1547         fprintf(stderr, "%d/%d passed wcwidth/graphics check\\n", passed, totals);
1548         return (totals == passed) ? 0 : 1;
1549 }
1550 ],
1551 [cf_cv_wcwidth_graphics=yes],
1552 [cf_cv_wcwidth_graphics=no],
1553 [cf_cv_wcwidth_graphics=unknown])
1554 ])
1555 ])dnl
1556 dnl ---------------------------------------------------------------------------
1557 dnl CF_CLANG_COMPILER version: 8 updated: 2021/01/01 13:31:04
1558 dnl -----------------
1559 dnl Check if the given compiler is really clang.  clang's C driver defines
1560 dnl __GNUC__ (fooling the configure script into setting $GCC to yes) but does
1561 dnl not ignore some gcc options.
1562 dnl
1563 dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
1564 dnl ensure that it is not mistaken for gcc/g++.  It is normally invoked from
1565 dnl the wrappers for gcc and g++ warnings.
1566 dnl
1567 dnl $1 = GCC (default) or GXX
1568 dnl $2 = CLANG_COMPILER (default)
1569 dnl $3 = CFLAGS (default) or CXXFLAGS
1570 AC_DEFUN([CF_CLANG_COMPILER],[
1571 ifelse([$2],,CLANG_COMPILER,[$2])=no
1572
1573 if test "$ifelse([$1],,[$1],GCC)" = yes ; then
1574         AC_MSG_CHECKING(if this is really Clang ifelse([$1],GXX,C++,C) compiler)
1575         cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
1576         AC_TRY_COMPILE([],[
1577 #ifdef __clang__
1578 #else
1579 make an error
1580 #endif
1581 ],[ifelse([$2],,CLANG_COMPILER,[$2])=yes
1582 ],[])
1583         ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
1584         AC_MSG_RESULT($ifelse([$2],,CLANG_COMPILER,[$2]))
1585 fi
1586
1587 CLANG_VERSION=none
1588
1589 if test "x$ifelse([$2],,CLANG_COMPILER,[$2])" = "xyes" ; then
1590         case "$CC" in
1591         (c[[1-9]][[0-9]]|*/c[[1-9]][[0-9]])
1592                 AC_MSG_WARN(replacing broken compiler alias $CC)
1593                 CFLAGS="$CFLAGS -std=`echo "$CC" | sed -e 's%.*/%%'`"
1594                 CC=clang
1595                 ;;
1596         esac
1597
1598         AC_MSG_CHECKING(version of $CC)
1599         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.]].*//'`"
1600         test -z "$CLANG_VERSION" && CLANG_VERSION=unknown
1601         AC_MSG_RESULT($CLANG_VERSION)
1602
1603         for cf_clang_opt in \
1604                 -Qunused-arguments \
1605                 -Wno-error=implicit-function-declaration
1606         do
1607                 AC_MSG_CHECKING(if option $cf_clang_opt works)
1608                 cf_save_CFLAGS="$CFLAGS"
1609                 CFLAGS="$CFLAGS $cf_clang_opt"
1610                 AC_TRY_LINK([
1611                         #include <stdio.h>],[
1612                         printf("hello!\\n");],[
1613                         cf_clang_optok=yes],[
1614                         cf_clang_optok=no])
1615                 AC_MSG_RESULT($cf_clang_optok)
1616                 CFLAGS="$cf_save_CFLAGS"
1617                 if test "$cf_clang_optok" = yes; then
1618                         CF_VERBOSE(adding option $cf_clang_opt)
1619                         CF_APPEND_TEXT(CFLAGS,$cf_clang_opt)
1620                 fi
1621         done
1622 fi
1623 ])
1624 dnl ---------------------------------------------------------------------------
1625 dnl CF_CONST_X_STRING version: 7 updated: 2021/06/07 17:39:17
1626 dnl -----------------
1627 dnl The X11R4-X11R6 Xt specification uses an ambiguous String type for most
1628 dnl character-strings.
1629 dnl
1630 dnl It is ambiguous because the specification accommodated the pre-ANSI
1631 dnl compilers bundled by more than one vendor in lieu of providing a standard C
1632 dnl compiler other than by costly add-ons.  Because of this, the specification
1633 dnl did not take into account the use of const for telling the compiler that
1634 dnl string literals would be in readonly memory.
1635 dnl
1636 dnl As a workaround, one could (starting with X11R5) define XTSTRINGDEFINES, to
1637 dnl let the compiler decide how to represent Xt's strings which were #define'd.
1638 dnl That does not solve the problem of using the block of Xt's strings which
1639 dnl are compiled into the library (and is less efficient than one might want).
1640 dnl
1641 dnl Xt specification 7 introduces the _CONST_X_STRING symbol which is used both
1642 dnl when compiling the library and compiling using the library, to tell the
1643 dnl compiler that String is const.
1644 AC_DEFUN([CF_CONST_X_STRING],
1645 [
1646 AC_REQUIRE([AC_PATH_XTRA])
1647
1648 CF_SAVE_XTRA_FLAGS([CF_CONST_X_STRING])
1649
1650 AC_TRY_COMPILE(
1651 [
1652 #include <stdlib.h>
1653 #include <X11/Intrinsic.h>
1654 ],
1655 [String foo = malloc(1); free((void*)foo)],[
1656
1657 AC_CACHE_CHECK(for X11/Xt const-feature,cf_cv_const_x_string,[
1658         AC_TRY_COMPILE(
1659                 [
1660 #define _CONST_X_STRING /* X11R7.8 (perhaps) */
1661 #undef  XTSTRINGDEFINES /* X11R5 and later */
1662 #include <stdlib.h>
1663 #include <X11/Intrinsic.h>
1664                 ],[String foo = malloc(1); *foo = 0],[
1665                         cf_cv_const_x_string=no
1666                 ],[
1667                         cf_cv_const_x_string=yes
1668                 ])
1669 ])
1670
1671 CF_RESTORE_XTRA_FLAGS([CF_CONST_X_STRING])
1672
1673 case "$cf_cv_const_x_string" in
1674 (no)
1675         CF_APPEND_TEXT(CPPFLAGS,-DXTSTRINGDEFINES)
1676         ;;
1677 (*)
1678         CF_APPEND_TEXT(CPPFLAGS,-D_CONST_X_STRING)
1679         ;;
1680 esac
1681
1682 ])
1683 ])dnl
1684 dnl ---------------------------------------------------------------------------
1685 dnl CF_CPP_PARAM_INIT version: 7 updated: 2017/01/21 11:06:25
1686 dnl -----------------
1687 dnl Check if the C++ compiler accepts duplicate parameter initialization.  This
1688 dnl is a late feature for the standard and is not in some recent compilers
1689 dnl (1999/9/11).
1690 AC_DEFUN([CF_CPP_PARAM_INIT],
1691 [
1692 if test -n "$CXX"; then
1693 AC_CACHE_CHECK(if $CXX accepts parameter initialization,cf_cv_cpp_param_init,[
1694         AC_LANG_SAVE
1695         AC_LANG_CPLUSPLUS
1696         AC_TRY_RUN([
1697 class TEST {
1698 private:
1699         int value;
1700 public:
1701         TEST(int x = 1);
1702         ~TEST();
1703 };
1704
1705 TEST::TEST(int x = 1)   // some compilers do not like second initializer
1706 {
1707         value = x;
1708 }
1709 int main(void) { }
1710 ],
1711         [cf_cv_cpp_param_init=yes],
1712         [cf_cv_cpp_param_init=no],
1713         [cf_cv_cpp_param_init=unknown])
1714         AC_LANG_RESTORE
1715 ])
1716 fi
1717 test "$cf_cv_cpp_param_init" = yes && AC_DEFINE(CPP_HAS_PARAM_INIT,1,[Define to 1 if C++ has parameter initialization])
1718 ])dnl
1719 dnl ---------------------------------------------------------------------------
1720 dnl CF_CPP_STATIC_CAST version: 3 updated: 2013/04/13 18:03:21
1721 dnl ------------------
1722 dnl Check if the C++ compiler accepts static_cast in generics.  This appears to
1723 dnl not be supported in g++ before 3.0
1724 AC_DEFUN([CF_CPP_STATIC_CAST],
1725 [
1726 if test -n "$CXX"; then
1727
1728 AC_CACHE_CHECK(if $CXX accepts static_cast,cf_cv_cpp_static_cast,[
1729         AC_LANG_SAVE
1730         AC_LANG_CPLUSPLUS
1731
1732         AC_TRY_COMPILE([
1733 class NCursesPanel
1734 {
1735 public:
1736   NCursesPanel(int nlines,
1737                int ncols,
1738                int begin_y = 0,
1739                int begin_x = 0)
1740   {
1741   }
1742   NCursesPanel();
1743   ~NCursesPanel();
1744 };
1745
1746 template<class T> class NCursesUserPanel : public NCursesPanel
1747 {
1748 public:
1749   NCursesUserPanel (int nlines,
1750                     int ncols,
1751                     int begin_y = 0,
1752                     int begin_x = 0,
1753                     const T* p_UserData = static_cast<T*>(0))
1754     : NCursesPanel (nlines, ncols, begin_y, begin_x)
1755   {
1756   };
1757   NCursesUserPanel(const T* p_UserData = static_cast<T*>(0)) : NCursesPanel()
1758   {
1759   };
1760
1761   virtual ~NCursesUserPanel() {};
1762 };
1763 ],[
1764         const char* p_UserData = static_cast<char*>(0)],
1765         [cf_cv_cpp_static_cast=yes],
1766         [cf_cv_cpp_static_cast=no])
1767
1768         AC_LANG_RESTORE
1769 ])
1770
1771 fi
1772
1773 test "$cf_cv_cpp_static_cast" = yes && AC_DEFINE(CPP_HAS_STATIC_CAST,1,[Define to 1 if C++ has static_cast])
1774 ])dnl
1775 dnl ---------------------------------------------------------------------------
1776 dnl CF_CXX_AR_FLAGS version: 3 updated: 2021/01/01 13:31:04
1777 dnl ---------------
1778 dnl Setup special archiver flags for given compilers.
1779 AC_DEFUN([CF_CXX_AR_FLAGS],[
1780         CXX_AR='$(AR)'
1781         CXX_ARFLAGS='$(ARFLAGS)'
1782         case "$cf_cv_system_name" in
1783         (irix*)
1784             if test "$GXX" != yes ; then
1785                 CXX_AR='$(CXX)'
1786                 CXX_ARFLAGS='-ar -o'
1787             fi
1788             ;;
1789         (sco3.2v5*)
1790             CXXLDFLAGS="-u main"
1791             ;;
1792         (solaris2*)
1793             if test "$GXX" != yes ; then
1794                 CXX_AR='$(CXX)'
1795                 CXX_ARFLAGS='-xar -o'
1796             fi
1797             ;;
1798         esac
1799         AC_SUBST(CXXLDFLAGS)
1800         AC_SUBST(CXX_AR)
1801         AC_SUBST(CXX_ARFLAGS)
1802 ])dnl
1803 dnl ---------------------------------------------------------------------------
1804 dnl CF_CXX_IOSTREAM_NAMESPACE version: 2 updated: 2012/10/06 17:56:13
1805 dnl -------------------------
1806 dnl For c++, check if iostream uses "std::" namespace.
1807 AC_DEFUN([CF_CXX_IOSTREAM_NAMESPACE],[
1808 AC_CHECK_HEADERS(iostream)
1809 if test x"$ac_cv_header_iostream" = xyes ; then
1810         AC_MSG_CHECKING(if iostream uses std-namespace)
1811         AC_TRY_COMPILE([
1812 #include <iostream>
1813 using std::endl;
1814 using std::cerr;],[
1815 cerr << "testing" << endl;
1816 ],[cf_iostream_namespace=yes],[cf_iostream_namespace=no])
1817         AC_MSG_RESULT($cf_iostream_namespace)
1818         if test "$cf_iostream_namespace" = yes ; then
1819                 AC_DEFINE(IOSTREAM_NAMESPACE,1,[Define to 1 if C++ has namespace iostream])
1820         fi
1821 fi
1822 ])dnl
1823 dnl ---------------------------------------------------------------------------
1824 dnl CF_C_INLINE version: 6 updated: 2019/09/07 13:38:36
1825 dnl -----------
1826 dnl Check if the C compiler supports "inline".
1827 dnl $1 is the name of a shell variable to set if inline is supported
1828 dnl $2 is the threshold for gcc 4.x's option controlling maximum inline size
1829 AC_DEFUN([CF_C_INLINE],[
1830 AC_REQUIRE([CF_GCC_VERSION])
1831 AC_C_INLINE
1832 $1=
1833 if test "$ac_cv_c_inline" != no ; then
1834         $1=inline
1835         if test "$INTEL_COMPILER" = yes
1836         then
1837                 :
1838         elif test "$CLANG_COMPILER" = yes
1839         then
1840                 :
1841         elif test "$GCC" = yes
1842         then
1843                 AC_CACHE_CHECK(if $CC supports options to tune inlining,cf_cv_gcc_inline,[
1844                 cf_save_CFLAGS=$CFLAGS
1845                 CFLAGS="$CFLAGS --param max-inline-insns-single=$2"
1846                 AC_TRY_COMPILE([inline int foo(void) { return 1; }],
1847                 [${cf_cv_main_return:-return} foo()],
1848                 [cf_cv_gcc_inline=yes],
1849                 [cf_cv_gcc_inline=no])
1850                 CFLAGS=$cf_save_CFLAGS
1851                 ])
1852                 if test "$cf_cv_gcc_inline" = yes ; then
1853                         CF_ADD_CFLAGS([--param max-inline-insns-single=$2])
1854                 fi
1855         fi
1856 fi
1857 AC_SUBST($1)
1858 ])dnl
1859 dnl ---------------------------------------------------------------------------
1860 dnl CF_DIRNAME version: 5 updated: 2020/12/31 20:19:42
1861 dnl ----------
1862 dnl "dirname" is not portable, so we fake it with a shell script.
1863 AC_DEFUN([CF_DIRNAME],[$1=`echo "$2" | sed -e 's%/[[^/]]*$%%'`])dnl
1864 dnl ---------------------------------------------------------------------------
1865 dnl CF_DIRS_TO_MAKE version: 4 updated: 2021/01/01 13:31:04
1866 dnl ---------------
1867 AC_DEFUN([CF_DIRS_TO_MAKE],
1868 [
1869 DIRS_TO_MAKE="lib"
1870 for cf_item in $cf_list_models
1871 do
1872         CF_OBJ_SUBDIR($cf_item,cf_subdir)
1873         for cf_item2 in $DIRS_TO_MAKE
1874         do
1875                 test "$cf_item2" = "$cf_subdir" && break
1876         done
1877         test ".$cf_item2" != ".$cf_subdir" && DIRS_TO_MAKE="$DIRS_TO_MAKE $cf_subdir"
1878 done
1879 for cf_dir in $DIRS_TO_MAKE
1880 do
1881         test ! -d "$cf_dir" && mkdir "$cf_dir"
1882 done
1883 AC_SUBST(DIRS_TO_MAKE)
1884 ])dnl
1885 dnl ---------------------------------------------------------------------------
1886 dnl CF_DISABLE_ECHO version: 14 updated: 2021/09/04 06:35:04
1887 dnl ---------------
1888 dnl You can always use "make -n" to see the actual options, but it is hard to
1889 dnl pick out/analyze warning messages when the compile-line is long.
1890 dnl
1891 dnl Sets:
1892 dnl     ECHO_LT - symbol to control if libtool is verbose
1893 dnl     ECHO_LD - symbol to prefix "cc -o" lines
1894 dnl     RULE_CC - symbol to put before implicit "cc -c" lines (e.g., .c.o)
1895 dnl     SHOW_CC - symbol to put before explicit "cc -c" lines
1896 dnl     ECHO_CC - symbol to put before any "cc" line
1897 dnl
1898 AC_DEFUN([CF_DISABLE_ECHO],[
1899 AC_MSG_CHECKING(if you want to see long compiling messages)
1900 CF_ARG_DISABLE(echo,
1901         [  --disable-echo          do not display "compiling" commands],
1902         [
1903         ECHO_LT='--silent'
1904         ECHO_LD='@echo linking [$]@;'
1905         RULE_CC='@echo compiling [$]<'
1906         SHOW_CC='@echo compiling [$]@'
1907         ECHO_CC='@'
1908 ],[
1909         ECHO_LT=''
1910         ECHO_LD=''
1911         RULE_CC=''
1912         SHOW_CC=''
1913         ECHO_CC=''
1914 ])
1915 AC_MSG_RESULT($enableval)
1916 AC_SUBST(ECHO_LT)
1917 AC_SUBST(ECHO_LD)
1918 AC_SUBST(RULE_CC)
1919 AC_SUBST(SHOW_CC)
1920 AC_SUBST(ECHO_CC)
1921 ])dnl
1922 dnl ---------------------------------------------------------------------------
1923 dnl CF_DISABLE_GNAT_PROJECTS version: 1 updated: 2014/06/01 11:34:00
1924 dnl ------------------------
1925 AC_DEFUN([CF_DISABLE_GNAT_PROJECTS],[
1926 AC_MSG_CHECKING(if we want to use GNAT projects)
1927 CF_ARG_DISABLE(gnat-projects,
1928         [  --disable-gnat-projects test: disable GNAT projects even if usable],
1929         [enable_gnat_projects=no],
1930         [enable_gnat_projects=yes])
1931 AC_MSG_RESULT($enable_gnat_projects)
1932 ])dnl
1933 dnl ---------------------------------------------------------------------------
1934 dnl CF_DISABLE_LEAKS version: 9 updated: 2021/04/03 16:41:50
1935 dnl ----------------
1936 dnl Combine no-leak checks with the libraries or tools that are used for the
1937 dnl checks.
1938 AC_DEFUN([CF_DISABLE_LEAKS],[
1939
1940 AC_REQUIRE([CF_WITH_DMALLOC])
1941 AC_REQUIRE([CF_WITH_DBMALLOC])
1942 AC_REQUIRE([CF_WITH_VALGRIND])
1943
1944 AC_MSG_CHECKING(if you want to perform memory-leak testing)
1945 AC_ARG_ENABLE(leaks,
1946         [  --disable-leaks         test: free permanent memory, analyze leaks],
1947         [enable_leaks=$enableval],
1948         [enable_leaks=yes])
1949 dnl with_no_leaks is more readable...
1950 if test "x$enable_leaks" = xno; then with_no_leaks=yes; else with_no_leaks=no; fi
1951 AC_MSG_RESULT($with_no_leaks)
1952
1953 if test "$enable_leaks" = no ; then
1954         AC_DEFINE(NO_LEAKS,1,[Define to 1 if you want to perform memory-leak testing.])
1955         AC_DEFINE(YY_NO_LEAKS,1,[Define to 1 if you want to perform memory-leak testing.])
1956 fi
1957 ])dnl
1958 dnl ---------------------------------------------------------------------------
1959 dnl CF_DISABLE_LIBTOOL_VERSION version: 3 updated: 2015/04/17 21:13:04
1960 dnl --------------------------
1961 dnl Check if we should use the libtool 1.5 feature "-version-number" instead of
1962 dnl the older "-version-info" feature.  The newer feature allows us to use
1963 dnl version numbering on shared libraries which make them compatible with
1964 dnl various systems.
1965 AC_DEFUN([CF_DISABLE_LIBTOOL_VERSION],
1966 [
1967 AC_MSG_CHECKING(if libtool -version-number should be used)
1968 CF_ARG_DISABLE(libtool-version,
1969         [  --disable-libtool-version  enable to use libtool's incompatible naming scheme],
1970         [cf_libtool_version=no],
1971         [cf_libtool_version=yes])
1972 AC_MSG_RESULT($cf_libtool_version)
1973
1974 if test "$cf_libtool_version" = yes ; then
1975         LIBTOOL_VERSION="-version-number"
1976 else
1977         LIBTOOL_VERSION="-version-info"
1978         case "x$VERSION" in
1979         (x)
1980                 AC_MSG_WARN(VERSION was not set)
1981                 ;;
1982         (x*.*.*)
1983                 ABI_VERSION="$VERSION"
1984                 CF_VERBOSE(ABI_VERSION: $ABI_VERSION)
1985                 ;;
1986         (x*:*:*)
1987                 ABI_VERSION=`echo "$VERSION" | sed -e 's/:/./g'`
1988                 CF_VERBOSE(ABI_VERSION: $ABI_VERSION)
1989                 ;;
1990         (*)
1991                 AC_MSG_WARN(unexpected VERSION value: $VERSION)
1992                 ;;
1993         esac
1994 fi
1995
1996 AC_SUBST(ABI_VERSION)
1997 AC_SUBST(LIBTOOL_VERSION)
1998 ])dnl
1999 dnl ---------------------------------------------------------------------------
2000 dnl CF_DISABLE_RPATH_HACK version: 3 updated: 2021/01/05 20:14:44
2001 dnl ---------------------
2002 dnl The rpath-hack makes it simpler to build programs, particularly with the
2003 dnl *BSD ports which may have essential libraries in unusual places.  But it
2004 dnl can interfere with building an executable for the base system.  Use this
2005 dnl option in that case.
2006 AC_DEFUN([CF_DISABLE_RPATH_HACK],
2007 [
2008 AC_MSG_CHECKING(if rpath-hack should be disabled)
2009 CF_ARG_DISABLE(rpath-hack,
2010         [  --disable-rpath-hack    don't add rpath options for additional libraries],
2011         [enable_rpath_hack=no],
2012         [enable_rpath_hack=yes])
2013 dnl TODO - drop cf_disable_rpath_hack
2014 if test "x$enable_rpath_hack" = xno; then cf_disable_rpath_hack=yes; else cf_disable_rpath_hack=no; fi
2015 AC_MSG_RESULT($cf_disable_rpath_hack)
2016
2017 if test "$enable_rpath_hack" = yes ; then
2018         CF_RPATH_HACK
2019 fi
2020 ])
2021 dnl ---------------------------------------------------------------------------
2022 dnl CF_ENABLE_BROKEN_LINKER version: 2 updated: 2021/01/02 17:09:14
2023 dnl -----------------------
2024 dnl Some linkers cannot reference a data-only object.  Cygwin used to be one.
2025 dnl This usually follows CF_LINK_DATAONLY, but is not required in case we need
2026 dnl an unconditional feature.
2027 AC_DEFUN([CF_ENABLE_BROKEN_LINKER],[
2028
2029 AC_MSG_CHECKING(if you want broken-linker support code)
2030 AC_ARG_ENABLE(broken_linker,
2031         [  --enable-broken_linker  compile with broken-linker support code],
2032         [with_broken_linker=$enableval],
2033         [with_broken_linker=no])
2034 AC_MSG_RESULT($with_broken_linker)
2035
2036 : "${BROKEN_LINKER:=0}"
2037 if test "x$with_broken_linker" = xyes ; then
2038         AC_DEFINE(BROKEN_LINKER,1,[Define to 1 to work around linkers which cannot link data-only modules])
2039         BROKEN_LINKER=1
2040 fi
2041 AC_SUBST(BROKEN_LINKER)
2042 ])dnl
2043 dnl ---------------------------------------------------------------------------
2044 dnl CF_ENABLE_PC_FILES version: 13 updated: 2015/11/01 05:27:39
2045 dnl ------------------
2046 dnl This is the "--enable-pc-files" option, which is available if there is a
2047 dnl pkg-config configuration on the local machine.
2048 AC_DEFUN([CF_ENABLE_PC_FILES],[
2049 AC_REQUIRE([CF_PKG_CONFIG])
2050 AC_REQUIRE([CF_WITH_PKG_CONFIG_LIBDIR])
2051
2052 if test "x$PKG_CONFIG" != xnone
2053 then
2054         AC_MSG_CHECKING(if we should install .pc files for $PKG_CONFIG)
2055 else
2056         AC_MSG_CHECKING(if we should install .pc files)
2057 fi
2058
2059 AC_ARG_ENABLE(pc-files,
2060         [  --enable-pc-files       generate and install .pc files for pkg-config],
2061         [enable_pc_files=$enableval],
2062         [enable_pc_files=no])
2063 AC_MSG_RESULT($enable_pc_files)
2064
2065 if test "x$enable_pc_files" != xno
2066 then
2067         MAKE_PC_FILES=
2068         case "x$PKG_CONFIG_LIBDIR" in
2069         (xno|xyes)
2070                 AC_MSG_WARN(no PKG_CONFIG_LIBDIR was found)
2071                 ;;
2072         (*)
2073                 CF_PATH_SYNTAX(PKG_CONFIG_LIBDIR)
2074                 ;;
2075         esac
2076 else
2077         MAKE_PC_FILES="#"
2078 fi
2079 AC_SUBST(MAKE_PC_FILES)
2080 ])dnl
2081 dnl ---------------------------------------------------------------------------
2082 dnl CF_ENABLE_RPATH version: 2 updated: 2010/03/27 18:39:42
2083 dnl ---------------
2084 dnl Check if the rpath option should be used, setting cache variable
2085 dnl cf_cv_enable_rpath if so.
2086 AC_DEFUN([CF_ENABLE_RPATH],
2087 [
2088 AC_MSG_CHECKING(if rpath option should be used)
2089 AC_ARG_ENABLE(rpath,
2090 [  --enable-rpath          use rpath option when generating shared libraries],
2091 [cf_cv_enable_rpath=$enableval],
2092 [cf_cv_enable_rpath=no])
2093 AC_MSG_RESULT($cf_cv_enable_rpath)
2094 ])dnl
2095 dnl ---------------------------------------------------------------------------
2096 dnl CF_ENABLE_STRING_HACKS version: 6 updated: 2021/01/05 19:23:48
2097 dnl ----------------------
2098 dnl On a few platforms, the compiler and/or loader nags with untruthful
2099 dnl comments stating that "most" uses of strcat/strcpy/sprintf are incorrect,
2100 dnl and implying that most uses of the recommended alternatives are correct.
2101 dnl
2102 dnl Factually speaking, no one has actually counted the number of uses of these
2103 dnl functions versus the total of incorrect uses.  Samples of a few thousand
2104 dnl instances are meaningless compared to the hundreds of millions of lines of
2105 dnl existing C code.
2106 dnl
2107 dnl strlcat/strlcpy are (as of 2012) non-standard, and are available on some
2108 dnl platforms, in implementations of varying quality.  Likewise, snprintf is
2109 dnl standard - but evolved through phases, and older implementations are likely
2110 dnl to yield surprising results, as documented in manpages on various systems.
2111 AC_DEFUN([CF_ENABLE_STRING_HACKS],
2112 [
2113 AC_MSG_CHECKING(if you want to work around bogus compiler/loader warnings)
2114 AC_ARG_ENABLE(string-hacks,
2115         [  --enable-string-hacks   work around bogus compiler/loader warnings],
2116         [enable_string_hacks=$enableval],
2117         [enable_string_hacks=no])
2118 AC_MSG_RESULT($enable_string_hacks)
2119
2120 if test "x$enable_string_hacks" = "xyes"; then
2121         AC_DEFINE(USE_STRING_HACKS,1,[Define to 1 to work around bogus compiler/loader warnings])
2122         AC_MSG_WARN(enabling string-hacks to work around bogus compiler/loader warnings)
2123         AC_CHECK_FUNC(strlcat,[
2124                 AC_DEFINE(HAVE_STRLCAT,1,[Define to 1 if we have strlcat function])
2125                 ],[
2126                 AC_CHECK_LIB(bsd,strlcat,[
2127                         CF_ADD_LIB(bsd)
2128                         AC_CHECK_HEADERS(bsd/string.h)
2129                         AC_DEFINE(HAVE_STRLCAT,1,[Define to 1 if we have strlcat function])
2130                         ])
2131                 ])
2132         AC_CHECK_FUNCS( strlcpy snprintf )
2133 fi
2134 ])dnl
2135 dnl ---------------------------------------------------------------------------
2136 dnl CF_ENABLE_WARNINGS version: 9 updated: 2021/01/05 19:40:50
2137 dnl ------------------
2138 dnl Configure-option to enable gcc warnings
2139 dnl
2140 dnl $1 = extra options to add, if supported
2141 dnl $2 = option for checking attributes.  By default, this is done when
2142 dnl      warnings are enabled.  For other values:
2143 dnl      yes: always do this, e.g., to use in generated library-headers
2144 dnl      no: never do this
2145 AC_DEFUN([CF_ENABLE_WARNINGS],[
2146 if test "$GCC" = yes || test "$GXX" = yes
2147 then
2148 CF_FIX_WARNINGS(CFLAGS)
2149 CF_FIX_WARNINGS(CPPFLAGS)
2150 CF_FIX_WARNINGS(LDFLAGS)
2151 AC_MSG_CHECKING(if you want to turn on gcc warnings)
2152 CF_ARG_ENABLE(warnings,
2153         [  --enable-warnings       test: turn on gcc compiler warnings],
2154         [enable_warnings=yes],
2155         [enable_warnings=no])
2156 AC_MSG_RESULT($enable_warnings)
2157 if test "$enable_warnings" = "yes"
2158 then
2159         ifelse($2,,[CF_GCC_ATTRIBUTES])
2160         CF_GCC_WARNINGS($1)
2161 fi
2162 ifelse($2,yes,[CF_GCC_ATTRIBUTES])
2163 fi
2164 ])dnl
2165 dnl ---------------------------------------------------------------------------
2166 dnl CF_ERRNO version: 5 updated: 1997/11/30 12:44:39
2167 dnl --------
2168 dnl Check if 'errno' is declared in <errno.h>
2169 AC_DEFUN([CF_ERRNO],
2170 [
2171 CF_CHECK_ERRNO(errno)
2172 ])dnl
2173 dnl ---------------------------------------------------------------------------
2174 dnl CF_ETIP_DEFINES version: 6 updated: 2021/01/02 17:09:14
2175 dnl ---------------
2176 dnl Test for conflicting definitions of exception in gcc 2.8.0, etc., between
2177 dnl math.h and builtin.h, only for ncurses
2178 AC_DEFUN([CF_ETIP_DEFINES],
2179 [
2180 AC_MSG_CHECKING(for special defines needed for etip.h)
2181 cf_save_CXXFLAGS="$CXXFLAGS"
2182 cf_result="none"
2183
2184 # etip.h includes ncurses.h which includes ncurses_dll.h
2185 # But ncurses_dll.h is generated - fix here.
2186 test -d include || mkdir include
2187 test -f include/ncurses_dll.h || sed -e 's/@NCURSES_WRAP_PREFIX@/'$NCURSES_WRAP_PREFIX'/g' "${srcdir}/include/ncurses_dll.h.in" >include/ncurses_dll.h
2188
2189 for cf_math in "" MATH_H
2190 do
2191 for cf_excp in "" MATH_EXCEPTION
2192 do
2193         CXXFLAGS="$cf_save_CXXFLAGS -I${srcdir}/c++ -I${srcdir}/menu -Iinclude -I${srcdir}/include"
2194         test -n "$cf_math" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_math}"
2195         test -n "$cf_excp" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_excp}"
2196 AC_TRY_COMPILE([
2197 #include <etip.h.in>
2198 ],[],[
2199         test -n "$cf_math" && AC_DEFINE_UNQUOTED(ETIP_NEEDS_${cf_math})
2200         test -n "$cf_excp" && AC_DEFINE_UNQUOTED(ETIP_NEEDS_${cf_excp})
2201         cf_result="$cf_math $cf_excp"
2202         break 2
2203 ],[])
2204 done
2205 done
2206 AC_MSG_RESULT($cf_result)
2207 CXXFLAGS="$cf_save_CXXFLAGS"
2208 ])
2209 dnl ---------------------------------------------------------------------------
2210 dnl CF_FIND_LINKAGE version: 22 updated: 2020/12/31 20:19:42
2211 dnl ---------------
2212 dnl Find a library (specifically the linkage used in the code fragment),
2213 dnl searching for it if it is not already in the library path.
2214 dnl See also CF_ADD_SEARCHPATH.
2215 dnl
2216 dnl Parameters (4-on are optional):
2217 dnl     $1 = headers for library entrypoint
2218 dnl     $2 = code fragment for library entrypoint
2219 dnl     $3 = the library name without the "-l" option or ".so" suffix.
2220 dnl     $4 = action to perform if successful (default: update CPPFLAGS, etc)
2221 dnl     $5 = action to perform if not successful
2222 dnl     $6 = module name, if not the same as the library name
2223 dnl     $7 = extra libraries
2224 dnl
2225 dnl Sets these variables:
2226 dnl     $cf_cv_find_linkage_$3 - yes/no according to whether linkage is found
2227 dnl     $cf_cv_header_path_$3 - include-directory if needed
2228 dnl     $cf_cv_library_path_$3 - library-directory if needed
2229 dnl     $cf_cv_library_file_$3 - library-file if needed, e.g., -l$3
2230 AC_DEFUN([CF_FIND_LINKAGE],[
2231
2232 # If the linkage is not already in the $CPPFLAGS/$LDFLAGS configuration, these
2233 # will be set on completion of the AC_TRY_LINK below.
2234 cf_cv_header_path_$3=
2235 cf_cv_library_path_$3=
2236
2237 CF_MSG_LOG([Starting [FIND_LINKAGE]($3,$6)])
2238
2239 cf_save_LIBS="$LIBS"
2240
2241 AC_TRY_LINK([$1],[$2],[
2242         cf_cv_find_linkage_$3=yes
2243         cf_cv_header_path_$3=/usr/include
2244         cf_cv_library_path_$3=/usr/lib
2245 ],[
2246
2247 LIBS="-l$3 $7 $cf_save_LIBS"
2248
2249 AC_TRY_LINK([$1],[$2],[
2250         cf_cv_find_linkage_$3=yes
2251         cf_cv_header_path_$3=/usr/include
2252         cf_cv_library_path_$3=/usr/lib
2253         cf_cv_library_file_$3="-l$3"
2254 ],[
2255         cf_cv_find_linkage_$3=no
2256         LIBS="$cf_save_LIBS"
2257
2258         CF_VERBOSE(find linkage for $3 library)
2259         CF_MSG_LOG([Searching for headers in [FIND_LINKAGE]($3,$6)])
2260
2261         cf_save_CPPFLAGS="$CPPFLAGS"
2262         cf_test_CPPFLAGS="$CPPFLAGS"
2263
2264         CF_HEADER_PATH(cf_search,ifelse([$6],,[$3],[$6]))
2265         for cf_cv_header_path_$3 in $cf_search
2266         do
2267                 if test -d "$cf_cv_header_path_$3" ; then
2268                         CF_VERBOSE(... testing $cf_cv_header_path_$3)
2269                         CPPFLAGS="$cf_save_CPPFLAGS"
2270                         CF_APPEND_TEXT(CPPFLAGS,-I$cf_cv_header_path_$3)
2271                         AC_TRY_COMPILE([$1],[$2],[
2272                                 CF_VERBOSE(... found $3 headers in $cf_cv_header_path_$3)
2273                                 cf_cv_find_linkage_$3=maybe
2274                                 cf_test_CPPFLAGS="$CPPFLAGS"
2275                                 break],[
2276                                 CPPFLAGS="$cf_save_CPPFLAGS"
2277                                 ])
2278                 fi
2279         done
2280
2281         if test "$cf_cv_find_linkage_$3" = maybe ; then
2282
2283                 CF_MSG_LOG([Searching for $3 library in [FIND_LINKAGE]($3,$6)])
2284
2285                 cf_save_LIBS="$LIBS"
2286                 cf_save_LDFLAGS="$LDFLAGS"
2287
2288                 ifelse([$6],,,[
2289                 CPPFLAGS="$cf_test_CPPFLAGS"
2290                 LIBS="-l$3 $7 $cf_save_LIBS"
2291                 AC_TRY_LINK([$1],[$2],[
2292                         CF_VERBOSE(... found $3 library in system)
2293                         cf_cv_find_linkage_$3=yes])
2294                         CPPFLAGS="$cf_save_CPPFLAGS"
2295                         LIBS="$cf_save_LIBS"
2296                         ])
2297
2298                 if test "$cf_cv_find_linkage_$3" != yes ; then
2299                         CF_LIBRARY_PATH(cf_search,$3)
2300                         for cf_cv_library_path_$3 in $cf_search
2301                         do
2302                                 if test -d "$cf_cv_library_path_$3" ; then
2303                                         CF_VERBOSE(... testing $cf_cv_library_path_$3)
2304                                         CPPFLAGS="$cf_test_CPPFLAGS"
2305                                         LIBS="-l$3 $7 $cf_save_LIBS"
2306                                         LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_$3"
2307                                         AC_TRY_LINK([$1],[$2],[
2308                                         CF_VERBOSE(... found $3 library in $cf_cv_library_path_$3)
2309                                         cf_cv_find_linkage_$3=yes
2310                                         cf_cv_library_file_$3="-l$3"
2311                                         break],[
2312                                         CPPFLAGS="$cf_save_CPPFLAGS"
2313                                         LIBS="$cf_save_LIBS"
2314                                         LDFLAGS="$cf_save_LDFLAGS"
2315                                         ])
2316                                 fi
2317                         done
2318                         CPPFLAGS="$cf_save_CPPFLAGS"
2319                         LDFLAGS="$cf_save_LDFLAGS"
2320                 fi
2321
2322         else
2323                 cf_cv_find_linkage_$3=no
2324         fi
2325         ],$7)
2326 ])
2327
2328 LIBS="$cf_save_LIBS"
2329
2330 if test "$cf_cv_find_linkage_$3" = yes ; then
2331 ifelse([$4],,[
2332         CF_ADD_INCDIR($cf_cv_header_path_$3)
2333         CF_ADD_LIBDIR($cf_cv_library_path_$3)
2334         CF_ADD_LIB($3)
2335 ],[$4])
2336 else
2337 ifelse([$5],,AC_MSG_WARN(Cannot find $3 library),[$5])
2338 fi
2339 ])dnl
2340 dnl ---------------------------------------------------------------------------
2341 dnl CF_FIND_SUB_INCDIR version: 3 updated: 2021/01/01 13:31:04
2342 dnl ------------------
2343 dnl Find an include-directory with the given leaf-name.  This is useful for
2344 dnl example with FreeBSD ports, which use this convention to distinguish
2345 dnl different versions of the same port.
2346 AC_DEFUN([CF_FIND_SUB_INCDIR],[
2347         CF_SUBDIR_PATH(cf_search,$1,include)
2348         for cf_item in $cf_search
2349         do
2350                 case "$cf_item" in
2351                 (*/$1)
2352                         CF_ADD_INCDIR($cf_item)
2353                         ;;
2354                 esac
2355         done
2356 ])dnl
2357 dnl ---------------------------------------------------------------------------
2358 dnl CF_FIND_SUB_LIBDIR version: 3 updated: 2021/01/01 13:31:04
2359 dnl ------------------
2360 dnl Find a library-directory with the given leaf-name.  This is useful for
2361 dnl example with FreeBSD ports, which use this convention to distinguish
2362 dnl different versions of the same port.
2363 AC_DEFUN([CF_FIND_SUB_LIBDIR],[
2364         CF_SUBDIR_PATH(cf_search,$1,lib)
2365         for cf_item in $cf_search
2366         do
2367                 case "$cf_item" in
2368                 (*/$1)
2369                         CF_ADD_LIBDIR($cf_item)
2370                         ;;
2371                 esac
2372         done
2373 ])dnl
2374 dnl ---------------------------------------------------------------------------
2375 dnl CF_FIXUP_ADAFLAGS version: 2 updated: 2015/04/17 21:13:04
2376 dnl -----------------
2377 dnl make ADAFLAGS consistent with CFLAGS
2378 AC_DEFUN([CF_FIXUP_ADAFLAGS],[
2379         AC_MSG_CHECKING(optimization options for ADAFLAGS)
2380         case "$CFLAGS" in
2381         (*-g*)
2382                 CF_ADD_ADAFLAGS(-g)
2383                 ;;
2384         esac
2385         case "$CFLAGS" in
2386         (*-O*)
2387                 cf_O_flag=`echo "$CFLAGS" |sed -e 's/^.*-O/-O/' -e 's/[[        ]].*//'`
2388                 CF_ADD_ADAFLAGS($cf_O_flag)
2389                 ;;
2390         esac
2391         AC_MSG_RESULT($ADAFLAGS)
2392 ])dnl
2393 dnl ---------------------------------------------------------------------------
2394 dnl CF_FIX_WARNINGS version: 3 updated: 2020/12/31 18:40:20
2395 dnl ---------------
2396 dnl Warning flags do not belong in CFLAGS, CPPFLAGS, etc.  Any of gcc's
2397 dnl "-Werror" flags can interfere with configure-checks.  Those go into
2398 dnl EXTRA_CFLAGS.
2399 dnl
2400 dnl $1 = variable name to repair
2401 define([CF_FIX_WARNINGS],[
2402 if test "$GCC" = yes || test "$GXX" = yes
2403 then
2404         case [$]$1 in
2405         (*-Werror=*)
2406                 CF_VERBOSE(repairing $1: [$]$1)
2407                 cf_temp_flags=
2408                 for cf_temp_scan in [$]$1
2409                 do
2410                         case "x$cf_temp_scan" in
2411                         (x-Werror=*)
2412                                 CF_APPEND_TEXT(EXTRA_CFLAGS,$cf_temp_scan)
2413                                 ;;
2414                         (*)
2415                                 CF_APPEND_TEXT(cf_temp_flags,$cf_temp_scan)
2416                                 ;;
2417                         esac
2418                 done
2419                 $1="$cf_temp_flags"
2420                 CF_VERBOSE(... fixed [$]$1)
2421                 CF_VERBOSE(... extra $EXTRA_CFLAGS)
2422                 ;;
2423         esac
2424 fi
2425 AC_SUBST(EXTRA_CFLAGS)
2426 ])dnl
2427 dnl ---------------------------------------------------------------------------
2428 dnl CF_FOPEN_BIN_R version: 2 updated: 2019/12/31 08:53:54
2429 dnl --------------
2430 dnl Check if fopen works when the "b" (binary) flag is added to the mode
2431 dnl parameter.  POSIX ignores the "b", which c89 specified.  Some very old
2432 dnl systems do not accept it.
2433 AC_DEFUN([CF_FOPEN_BIN_R],[
2434 AC_CACHE_CHECK(if fopen accepts explicit binary mode,cf_cv_fopen_bin_r,[
2435         AC_TRY_RUN([
2436 #include <stdio.h>
2437 int main(void) {
2438         FILE *fp = fopen("conftest.tmp", "wb");
2439         int rc = 0;
2440         if (fp != 0) {
2441                 int p, q;
2442                 for (p = 0; p < 256; ++p) {
2443                         fputc(p, fp);
2444                 }
2445                 fclose(fp);
2446                 fp = fopen("conftest.tmp", "rb");
2447                 if (fp != 0) {
2448                         for (p = 0; p < 256; ++p) {
2449                                 q = fgetc(fp);
2450                                 if (q != p) {
2451                                         rc = 1;
2452                                         break;
2453                                 }
2454                         }
2455                 } else {
2456                         rc = 1;
2457                 }
2458         } else {
2459                 rc = 1;
2460         }
2461         ${cf_cv_main_return:-return} (rc);
2462 }
2463 ],
2464                 [cf_cv_fopen_bin_r=yes],
2465                 [cf_cv_fopen_bin_r=no],
2466                 [cf_cv_fopen_bin_r=unknown])
2467 ])
2468 test "x$cf_cv_fopen_bin_r" != xno && AC_DEFINE(USE_FOPEN_BIN_R,1,[Define to 1 if fopen accepts explicit binary mode])
2469 ])dnl
2470 dnl ---------------------------------------------------------------------------
2471 dnl CF_FORGET_TOOL version: 1 updated: 2013/04/06 18:03:09
2472 dnl --------------
2473 dnl Forget that we saw the given tool.
2474 AC_DEFUN([CF_FORGET_TOOL],[
2475 unset ac_cv_prog_ac_ct_$1
2476 unset ac_ct_$1
2477 unset $1
2478 ])dnl
2479 dnl ---------------------------------------------------------------------------
2480 dnl CF_FUNC_DLSYM version: 4 updated: 2015/09/12 14:46:44
2481 dnl -------------
2482 dnl Test for dlsym() and related functions, as well as libdl.
2483 dnl
2484 dnl Sets
2485 dnl     $cf_have_dlsym
2486 dnl     $cf_have_libdl
2487 AC_DEFUN([CF_FUNC_DLSYM],[
2488 cf_have_dlsym=no
2489 AC_CHECK_FUNC(dlsym,cf_have_dlsym=yes,[
2490
2491 cf_have_libdl=no
2492 AC_CHECK_LIB(dl,dlsym,[
2493         cf_have_dlsym=yes
2494         cf_have_libdl=yes])])
2495
2496 if test "$cf_have_dlsym" = yes ; then
2497         test "$cf_have_libdl" = yes && { CF_ADD_LIB(dl) }
2498
2499         AC_MSG_CHECKING(whether able to link to dl*() functions)
2500         AC_TRY_LINK([#include <dlfcn.h>],[
2501                 void *obj;
2502                 if ((obj = dlopen("filename", 0)) != 0) {
2503                         if (dlsym(obj, "symbolname") == 0) {
2504                         dlclose(obj);
2505                         }
2506                 }],[
2507                 AC_DEFINE(HAVE_LIBDL,1,[Define to 1 if we have dl library])],[
2508                 AC_MSG_ERROR(Cannot link test program for libdl)])
2509         AC_MSG_RESULT(ok)
2510 else
2511         AC_MSG_ERROR(Cannot find dlsym function)
2512 fi
2513 ])
2514 dnl ---------------------------------------------------------------------------
2515 dnl CF_FUNC_MEMMOVE version: 9 updated: 2017/01/21 11:06:25
2516 dnl ---------------
2517 dnl Check for memmove, or a bcopy that can handle overlapping copy.  If neither
2518 dnl is found, add our own version of memmove to the list of objects.
2519 AC_DEFUN([CF_FUNC_MEMMOVE],
2520 [
2521 AC_CHECK_FUNC(memmove,,[
2522 AC_CHECK_FUNC(bcopy,[
2523         AC_CACHE_CHECK(if bcopy does overlapping moves,cf_cv_good_bcopy,[
2524                 AC_TRY_RUN([
2525 int main(void) {
2526         static char data[] = "abcdefghijklmnopqrstuwwxyz";
2527         char temp[40];
2528         bcopy(data, temp, sizeof(data));
2529         bcopy(temp+10, temp, 15);
2530         bcopy(temp+5, temp+15, 10);
2531         ${cf_cv_main_return:-return} (strcmp(temp, "klmnopqrstuwwxypqrstuwwxyz"));
2532 }
2533                 ],
2534                 [cf_cv_good_bcopy=yes],
2535                 [cf_cv_good_bcopy=no],
2536                 [cf_cv_good_bcopy=unknown])
2537                 ])
2538         ],[cf_cv_good_bcopy=no])
2539         if test "$cf_cv_good_bcopy" = yes ; then
2540                 AC_DEFINE(USE_OK_BCOPY,1,[Define to 1 to use bcopy when memmove is unavailable])
2541         else
2542                 AC_DEFINE(USE_MY_MEMMOVE,1,[Define to 1 to use replacement function when memmove is unavailable])
2543         fi
2544 ])])dnl
2545 dnl ---------------------------------------------------------------------------
2546 dnl CF_FUNC_NANOSLEEP version: 5 updated: 2017/01/21 11:06:25
2547 dnl -----------------
2548 dnl Check for existence of workable nanosleep() function.  Some systems, e.g.,
2549 dnl AIX 4.x, provide a non-working version.
2550 AC_DEFUN([CF_FUNC_NANOSLEEP],[
2551 AC_CACHE_CHECK(if nanosleep really works,cf_cv_func_nanosleep,[
2552 AC_TRY_RUN([
2553 #include <stdio.h>
2554 #include <errno.h>
2555 #include <time.h>
2556
2557 #ifdef HAVE_SYS_TIME_H
2558 #include <sys/time.h>
2559 #endif
2560
2561 int main(void) {
2562         struct timespec ts1, ts2;
2563         int code;
2564         ts1.tv_sec  = 0;
2565         ts1.tv_nsec = 750000000;
2566         ts2.tv_sec  = 0;
2567         ts2.tv_nsec = 0;
2568         errno = 0;
2569         code = nanosleep(&ts1, &ts2); /* on failure errno is ENOSYS. */
2570         ${cf_cv_main_return:-return}(code != 0);
2571 }
2572 ],
2573         [cf_cv_func_nanosleep=yes],
2574         [cf_cv_func_nanosleep=no],
2575         [cf_cv_func_nanosleep=unknown])])
2576
2577 test "$cf_cv_func_nanosleep" = "yes" && AC_DEFINE(HAVE_NANOSLEEP,1,[Define to 1 if we have nanosleep()])
2578 ])
2579 dnl ---------------------------------------------------------------------------
2580 dnl CF_FUNC_OPENPTY version: 6 updated: 2021/01/01 13:31:04
2581 dnl ---------------
2582 dnl Check for openpty() function, along with <pty.h> header.  It may need the
2583 dnl "util" library as well.
2584 AC_DEFUN([CF_FUNC_OPENPTY],
2585 [
2586 AC_CHECK_LIB(util,openpty,cf_cv_lib_util=yes,cf_cv_lib_util=no)
2587 AC_CACHE_CHECK(for openpty header,cf_cv_func_openpty,[
2588         cf_save_LIBS="$LIBS"
2589         test "$cf_cv_lib_util" = yes && { CF_ADD_LIB(util) }
2590         for cf_header in pty.h libutil.h util.h
2591         do
2592         AC_TRY_LINK([
2593 #include <$cf_header>
2594 ],[
2595         int x = openpty((int *)0, (int *)0, (char *)0,
2596                                    (struct termios *)0, (struct winsize *)0);
2597 ],[
2598                 cf_cv_func_openpty=$cf_header
2599                 break
2600 ],[
2601                 cf_cv_func_openpty=no
2602 ])
2603         done
2604         LIBS="$cf_save_LIBS"
2605 ])
2606 ])dnl
2607 dnl ---------------------------------------------------------------------------
2608 dnl CF_FUNC_POLL version: 10 updated: 2021/01/04 19:13:57
2609 dnl ------------
2610 dnl See if the poll function really works.  Some platforms have poll(), but
2611 dnl it does not work for terminals or files.
2612 AC_DEFUN([CF_FUNC_POLL],[
2613 tty >/dev/null 2>&1 || { AC_CHECK_FUNCS(posix_openpt) }
2614 AC_CACHE_CHECK(if poll really works,cf_cv_working_poll,[
2615 AC_TRY_RUN([
2616 #include <stdlib.h>
2617 #include <stdio.h>
2618 #include <unistd.h>
2619 #include <fcntl.h>
2620 #ifdef HAVE_POLL_H
2621 #include <poll.h>
2622 #else
2623 #include <sys/poll.h>
2624 #endif
2625 int main(void) {
2626         struct pollfd myfds;
2627         int ret;
2628
2629         /* check for Darwin bug with respect to "devices" */
2630         myfds.fd = open("/dev/null", 1);        /* O_WRONLY */
2631         if (myfds.fd < 0)
2632                 myfds.fd = 0;
2633         myfds.events = POLLIN;
2634         myfds.revents = 0;
2635
2636         ret = poll(&myfds, 1, 100);
2637
2638         if (ret < 0 || (myfds.revents & POLLNVAL)) {
2639                 ret = -1;
2640         } else {
2641                 int fd = 0;
2642                 if (!isatty(fd)) {
2643                         fd = open("/dev/tty", 2);       /* O_RDWR */
2644                 }
2645 #ifdef HAVE_POSIX_OPENPT
2646                 if (fd < 0) {
2647                         fd = posix_openpt(O_RDWR);
2648                 }
2649 #endif
2650
2651                 if (fd >= 0) {
2652                         /* also check with standard input */
2653                         myfds.fd = fd;
2654                         myfds.events = POLLIN;
2655                         myfds.revents = 0;
2656                         ret = poll(&myfds, 1, 100);
2657                 } else {
2658                         ret = -1;
2659                 }
2660         }
2661         ${cf_cv_main_return:-return}(ret < 0);
2662 }],
2663         [cf_cv_working_poll=yes],
2664         [cf_cv_working_poll=no],
2665         [cf_cv_working_poll=unknown])])
2666 test "$cf_cv_working_poll" = "yes" && AC_DEFINE(HAVE_WORKING_POLL,1,[Define to 1 if the poll function seems to work])
2667 ])dnl
2668 dnl ---------------------------------------------------------------------------
2669 dnl CF_FUNC_TERMIOS version: 3 updated: 2012/10/06 17:56:13
2670 dnl ---------------
2671 dnl Some old/broken variations define tcgetattr() only as a macro in
2672 dnl termio(s).h
2673 AC_DEFUN([CF_FUNC_TERMIOS],[
2674 AC_REQUIRE([CF_STRUCT_TERMIOS])
2675 AC_CACHE_CHECK(for tcgetattr, cf_cv_have_tcgetattr,[
2676 AC_TRY_LINK([
2677 #include <sys/types.h>
2678 #ifdef HAVE_UNISTD_H
2679 #include <unistd.h>
2680 #endif
2681 #ifdef HAVE_TERMIOS_H
2682 #include <termios.h>
2683 #define TTY struct termios
2684 #else
2685 #ifdef HAVE_TERMIO_H
2686 #include <termio.h>
2687 #define TTY struct termio
2688 #endif
2689 #endif
2690 ],[
2691 TTY foo;
2692 tcgetattr(1, &foo);],
2693 [cf_cv_have_tcgetattr=yes],
2694 [cf_cv_have_tcgetattr=no])])
2695 test "$cf_cv_have_tcgetattr" = yes && AC_DEFINE(HAVE_TCGETATTR,1,[Define to 1 if we have tcgetattr])
2696 ])dnl
2697 dnl ---------------------------------------------------------------------------
2698 dnl CF_FUNC_VSSCANF version: 7 updated: 2021/01/01 13:31:04
2699 dnl ---------------
2700 dnl Check for vsscanf() function, which is in c9x but generally not in earlier
2701 dnl versions of C.  It is in the GNU C library, and can often be simulated by
2702 dnl other functions.
2703 AC_DEFUN([CF_FUNC_VSSCANF],
2704 [
2705 AC_CACHE_CHECK(for vsscanf function or workaround,cf_cv_func_vsscanf,[
2706 AC_TRY_LINK([
2707 #include <stdarg.h>
2708 #include <stdio.h>],[
2709         va_list ap;
2710         vsscanf("from", "%d", ap)],[cf_cv_func_vsscanf=vsscanf],[
2711 AC_TRY_LINK([
2712 #include <stdarg.h>
2713 #include <stdio.h>],[
2714         FILE strbuf;
2715         char *str = "from";
2716
2717         strbuf._flag = _IOREAD;
2718         strbuf._ptr = strbuf._base = (unsigned char *) str;
2719         strbuf._cnt = strlen(str);
2720         strbuf._file = _NFILE;
2721         return (vfscanf(&strbuf, "%d", ap))],[cf_cv_func_vsscanf=vfscanf],[
2722 AC_TRY_LINK([
2723 #include <stdarg.h>
2724 #include <stdio.h>],[
2725         FILE strbuf;
2726         char *str = "from";
2727
2728         strbuf._flag = _IOREAD;
2729         strbuf._ptr = strbuf._base = (unsigned char *) str;
2730         strbuf._cnt = strlen(str);
2731         strbuf._file = _NFILE;
2732         return (_doscan(&strbuf, "%d", ap))],[cf_cv_func_vsscanf=_doscan],[
2733 cf_cv_func_vsscanf=no])])])])
2734
2735 case "$cf_cv_func_vsscanf" in
2736 (vsscanf) AC_DEFINE(HAVE_VSSCANF,1,[Define to 1 if we have vsscanf]);;
2737 (vfscanf) AC_DEFINE(HAVE_VFSCANF,1,[Define to 1 if we have vfscanf]);;
2738 (_doscan) AC_DEFINE(HAVE__DOSCAN,1,[Define to 1 if we have _doscan]);;
2739 esac
2740
2741 ])dnl
2742 dnl ---------------------------------------------------------------------------
2743 dnl CF_GCC_ATTRIBUTES version: 24 updated: 2021/03/20 12:00:25
2744 dnl -----------------
2745 dnl Test for availability of useful gcc __attribute__ directives to quiet
2746 dnl compiler warnings.  Though useful, not all are supported -- and contrary
2747 dnl to documentation, unrecognized directives cause older compilers to barf.
2748 AC_DEFUN([CF_GCC_ATTRIBUTES],
2749 [AC_REQUIRE([AC_PROG_FGREP])dnl
2750 AC_REQUIRE([CF_C11_NORETURN])dnl
2751
2752 if test "$GCC" = yes || test "$GXX" = yes
2753 then
2754 cat > conftest.i <<EOF
2755 #ifndef GCC_PRINTF
2756 #define GCC_PRINTF 0
2757 #endif
2758 #ifndef GCC_SCANF
2759 #define GCC_SCANF 0
2760 #endif
2761 #ifndef GCC_NORETURN
2762 #define GCC_NORETURN /* nothing */
2763 #endif
2764 #ifndef GCC_UNUSED
2765 #define GCC_UNUSED /* nothing */
2766 #endif
2767 EOF
2768 if test "$GCC" = yes
2769 then
2770         AC_CHECKING([for $CC __attribute__ directives])
2771 cat > "conftest.$ac_ext" <<EOF
2772 #line __oline__ "${as_me:-configure}"
2773 #include "confdefs.h"
2774 #include "conftest.h"
2775 #include "conftest.i"
2776 #if     GCC_PRINTF
2777 #define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
2778 #else
2779 #define GCC_PRINTFLIKE(fmt,var) /*nothing*/
2780 #endif
2781 #if     GCC_SCANF
2782 #define GCC_SCANFLIKE(fmt,var)  __attribute__((format(scanf,fmt,var)))
2783 #else
2784 #define GCC_SCANFLIKE(fmt,var)  /*nothing*/
2785 #endif
2786 extern void wow(char *,...) GCC_SCANFLIKE(1,2);
2787 extern GCC_NORETURN void oops(char *,...) GCC_PRINTFLIKE(1,2);
2788 extern GCC_NORETURN void foo(void);
2789 int main(int argc GCC_UNUSED, char *argv[[]] GCC_UNUSED) { (void)argc; (void)argv; return 0; }
2790 EOF
2791         cf_printf_attribute=no
2792         cf_scanf_attribute=no
2793         for cf_attribute in scanf printf unused noreturn
2794         do
2795                 CF_UPPER(cf_ATTRIBUTE,$cf_attribute)
2796                 cf_directive="__attribute__(($cf_attribute))"
2797                 echo "checking for $CC $cf_directive" 1>&AC_FD_CC
2798
2799                 case "$cf_attribute" in
2800                 (printf)
2801                         cf_printf_attribute=yes
2802                         cat >conftest.h <<EOF
2803 #define GCC_$cf_ATTRIBUTE 1
2804 EOF
2805                         ;;
2806                 (scanf)
2807                         cf_scanf_attribute=yes
2808                         cat >conftest.h <<EOF
2809 #define GCC_$cf_ATTRIBUTE 1
2810 EOF
2811                         ;;
2812                 (*)
2813                         cat >conftest.h <<EOF
2814 #define GCC_$cf_ATTRIBUTE $cf_directive
2815 EOF
2816                         ;;
2817                 esac
2818
2819                 if AC_TRY_EVAL(ac_compile); then
2820                         test -n "$verbose" && AC_MSG_RESULT(... $cf_attribute)
2821                         cat conftest.h >>confdefs.h
2822                         case "$cf_attribute" in
2823                         (noreturn)
2824                                 AC_DEFINE_UNQUOTED(GCC_NORETURN,$cf_directive,[Define to noreturn-attribute for gcc])
2825                                 ;;
2826                         (printf)
2827                                 cf_value='/* nothing */'
2828                                 if test "$cf_printf_attribute" != no ; then
2829                                         cf_value='__attribute__((format(printf,fmt,var)))'
2830                                         AC_DEFINE(GCC_PRINTF,1,[Define to 1 if the compiler supports gcc-like printf attribute.])
2831                                 fi
2832                                 AC_DEFINE_UNQUOTED(GCC_PRINTFLIKE(fmt,var),$cf_value,[Define to printf-attribute for gcc])
2833                                 ;;
2834                         (scanf)
2835                                 cf_value='/* nothing */'
2836                                 if test "$cf_scanf_attribute" != no ; then
2837                                         cf_value='__attribute__((format(scanf,fmt,var)))'
2838                                         AC_DEFINE(GCC_SCANF,1,[Define to 1 if the compiler supports gcc-like scanf attribute.])
2839                                 fi
2840                                 AC_DEFINE_UNQUOTED(GCC_SCANFLIKE(fmt,var),$cf_value,[Define to sscanf-attribute for gcc])
2841                                 ;;
2842                         (unused)
2843                                 AC_DEFINE_UNQUOTED(GCC_UNUSED,$cf_directive,[Define to unused-attribute for gcc])
2844                                 ;;
2845                         esac
2846                 fi
2847         done
2848 else
2849         ${FGREP-fgrep} define conftest.i >>confdefs.h
2850 fi
2851 rm -rf ./conftest*
2852 fi
2853 ])dnl
2854 dnl ---------------------------------------------------------------------------
2855 dnl CF_GCC_VERSION version: 8 updated: 2019/09/07 13:38:36
2856 dnl --------------
2857 dnl Find version of gcc, and (because icc/clang pretend to be gcc without being
2858 dnl compatible), attempt to determine if icc/clang is actually used.
2859 AC_DEFUN([CF_GCC_VERSION],[
2860 AC_REQUIRE([AC_PROG_CC])
2861 GCC_VERSION=none
2862 if test "$GCC" = yes ; then
2863         AC_MSG_CHECKING(version of $CC)
2864         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.]].*//'`"
2865         test -z "$GCC_VERSION" && GCC_VERSION=unknown
2866         AC_MSG_RESULT($GCC_VERSION)
2867 fi
2868 CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
2869 CF_CLANG_COMPILER(GCC,CLANG_COMPILER,CFLAGS)
2870 ])dnl
2871 dnl ---------------------------------------------------------------------------
2872 dnl CF_GCC_WARNINGS version: 41 updated: 2021/01/01 16:53:59
2873 dnl ---------------
2874 dnl Check if the compiler supports useful warning options.  There's a few that
2875 dnl we don't use, simply because they're too noisy:
2876 dnl
2877 dnl     -Wconversion (useful in older versions of gcc, but not in gcc 2.7.x)
2878 dnl     -Winline (usually not worthwhile)
2879 dnl     -Wredundant-decls (system headers make this too noisy)
2880 dnl     -Wtraditional (combines too many unrelated messages, only a few useful)
2881 dnl     -Wwrite-strings (too noisy, but should review occasionally).  This
2882 dnl             is enabled for ncurses using "--enable-const".
2883 dnl     -pedantic
2884 dnl
2885 dnl Parameter:
2886 dnl     $1 is an optional list of gcc warning flags that a particular
2887 dnl             application might want to use, e.g., "no-unused" for
2888 dnl             -Wno-unused
2889 dnl Special:
2890 dnl     If $with_ext_const is "yes", add a check for -Wwrite-strings
2891 dnl
2892 AC_DEFUN([CF_GCC_WARNINGS],
2893 [
2894 AC_REQUIRE([CF_GCC_VERSION])
2895 if test "x$have_x" = xyes; then CF_CONST_X_STRING fi
2896 cat > "conftest.$ac_ext" <<EOF
2897 #line __oline__ "${as_me:-configure}"
2898 int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
2899 EOF
2900 if test "$INTEL_COMPILER" = yes
2901 then
2902 # The "-wdXXX" options suppress warnings:
2903 # remark #1419: external declaration in primary source file
2904 # remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
2905 # remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
2906 # remark #193: zero used for undefined preprocessing identifier
2907 # remark #593: variable "curs_sb_left_arrow" was set but never used
2908 # remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
2909 # remark #869: parameter "tw" was never referenced
2910 # remark #981: operands are evaluated in unspecified order
2911 # warning #279: controlling expression is constant
2912
2913         AC_CHECKING([for $CC warning options])
2914         cf_save_CFLAGS="$CFLAGS"
2915         EXTRA_CFLAGS="$EXTRA_CFLAGS -Wall"
2916         for cf_opt in \
2917                 wd1419 \
2918                 wd1683 \
2919                 wd1684 \
2920                 wd193 \
2921                 wd593 \
2922                 wd279 \
2923                 wd810 \
2924                 wd869 \
2925                 wd981
2926         do
2927                 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
2928                 if AC_TRY_EVAL(ac_compile); then
2929                         test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
2930                         EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
2931                 fi
2932         done
2933         CFLAGS="$cf_save_CFLAGS"
2934 elif test "$GCC" = yes && test "$GCC_VERSION" != "unknown"
2935 then
2936         AC_CHECKING([for $CC warning options])
2937         cf_save_CFLAGS="$CFLAGS"
2938         cf_warn_CONST=""
2939         test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
2940         cf_gcc_warnings="Wignored-qualifiers Wlogical-op Wvarargs"
2941         test "x$CLANG_COMPILER" = xyes && cf_gcc_warnings=
2942         for cf_opt in W Wall \
2943                 Wbad-function-cast \
2944                 Wcast-align \
2945                 Wcast-qual \
2946                 Wdeclaration-after-statement \
2947                 Wextra \
2948                 Winline \
2949                 Wmissing-declarations \
2950                 Wmissing-prototypes \
2951                 Wnested-externs \
2952                 Wpointer-arith \
2953                 Wshadow \
2954                 Wstrict-prototypes \
2955                 Wundef Wno-inline $cf_gcc_warnings $cf_warn_CONST $1
2956         do
2957                 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
2958                 if AC_TRY_EVAL(ac_compile); then
2959                         test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
2960                         case "$cf_opt" in
2961                         (Winline)
2962                                 case "$GCC_VERSION" in
2963                                 ([[34]].*)
2964                                         CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
2965                                         continue;;
2966                                 esac
2967                                 ;;
2968                         (Wpointer-arith)
2969                                 case "$GCC_VERSION" in
2970                                 ([[12]].*)
2971                                         CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
2972                                         continue;;
2973                                 esac
2974                                 ;;
2975                         esac
2976                         EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
2977                 fi
2978         done
2979         CFLAGS="$cf_save_CFLAGS"
2980 fi
2981 rm -rf ./conftest*
2982
2983 AC_SUBST(EXTRA_CFLAGS)
2984 ])dnl
2985 dnl ---------------------------------------------------------------------------
2986 dnl CF_GETOPT_HEADER version: 8 updated: 2021/06/19 19:16:16
2987 dnl ----------------
2988 dnl Check for getopt's variables which are commonly defined in stdlib.h,
2989 dnl unistd.h or (nonstandard) in getopt.h
2990 AC_DEFUN([CF_GETOPT_HEADER],
2991 [
2992 AC_HAVE_HEADERS(unistd.h getopt.h)
2993 AC_CACHE_CHECK(for header declaring getopt variables,cf_cv_getopt_header,[
2994 cf_cv_getopt_header=none
2995 for cf_header in stdio.h stdlib.h unistd.h getopt.h
2996 do
2997 AC_TRY_COMPILE([
2998 #include <$cf_header>],
2999 [int x = optind; char *y = optarg; (void)x; (void)y],
3000 [cf_cv_getopt_header=$cf_header
3001  break])
3002 done
3003 ])
3004 if test "$cf_cv_getopt_header" != none ; then
3005         AC_DEFINE(HAVE_GETOPT_HEADER,1,[Define to 1 if getopt variables are declared in header])
3006 fi
3007 if test "$cf_cv_getopt_header" = getopt.h ; then
3008         AC_DEFINE(NEED_GETOPT_H,1,[Define to 1 if we must include getopt.h])
3009 fi
3010 ])dnl
3011 dnl ---------------------------------------------------------------------------
3012 dnl CF_GNATPREP_OPT_T version: 1 updated: 2014/08/02 18:37:25
3013 dnl -----------------
3014 AC_DEFUN([CF_GNATPREP_OPT_T],[
3015 AC_CACHE_CHECK(if GNATPREP supports -T option,cf_cv_gnatprep_opt_t,[
3016 cf_cv_gnatprep_opt_t=no
3017 gnatprep -T 2>/dev/null >/dev/null && cf_cv_gnatprep_opt_t=yes
3018 ])
3019 test "$cf_cv_gnatprep_opt_t" = yes && GNATPREP_OPTS="-T $GNATPREP_OPTS"
3020 AC_SUBST(GNATPREP_OPTS)
3021 ])dnl
3022 dnl ---------------------------------------------------------------------------
3023 dnl CF_GNAT_GENERICS version: 7 updated: 2021/01/01 13:31:04
3024 dnl ----------------
3025 AC_DEFUN([CF_GNAT_GENERICS],
3026 [
3027 AC_REQUIRE([CF_GNAT_VERSION])
3028
3029 AC_MSG_CHECKING(if GNAT supports generics)
3030 case "$cf_cv_gnat_version" in
3031 (3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*|[[1-9]][[0-9]].[[0-9]]*|20[[0-9]][[0-9]])
3032         cf_gnat_generics=yes
3033         ;;
3034 (*)
3035         cf_gnat_generics=no
3036         ;;
3037 esac
3038 AC_MSG_RESULT($cf_gnat_generics)
3039
3040 if test "$cf_gnat_generics" = yes
3041 then
3042         cf_compile_generics=generics
3043         cf_generic_objects="\${GENOBJS}"
3044 else
3045         cf_compile_generics=
3046         cf_generic_objects=
3047 fi
3048
3049 AC_SUBST(cf_compile_generics)
3050 AC_SUBST(cf_generic_objects)
3051 ])dnl
3052 dnl ---------------------------------------------------------------------------
3053 dnl CF_GNAT_PROJECTS version: 13 updated: 2021/01/02 17:09:14
3054 dnl ----------------
3055 dnl GNAT projects are configured with ".gpr" project files.
3056 dnl GNAT libraries are a further development, using the project feature.
3057 AC_DEFUN([CF_GNAT_PROJECTS],
3058 [
3059 AC_REQUIRE([CF_GNAT_VERSION])
3060 AC_REQUIRE([CF_DISABLE_GNAT_PROJECTS])
3061
3062 cf_gnat_libraries=no
3063 cf_gnat_projects=no
3064
3065 if test "$enable_gnat_projects" != no ; then
3066 AC_MSG_CHECKING(if GNAT supports project files)
3067 case "$cf_cv_gnat_version" in
3068 (3.[[0-9]]*)
3069         ;;
3070 (*)
3071         case "$cf_cv_system_name" in
3072         (cygwin*|msys*)
3073                 ;;
3074         (*)
3075                 rm -rf ./conftest* ./*~conftest*
3076                 if mkdir conftest.src conftest.bin conftest.lib
3077                 then
3078                         cd conftest.src
3079                         rm -rf ./conftest* ./*~conftest*
3080                         cat >>library.gpr <<CF_EOF
3081 project Library is
3082   Kind := External ("LIB_KIND");
3083   for Library_Name use "ConfTest";
3084   for Object_Dir use ".";
3085   for Library_ALI_Dir use External("LIBRARY_DIR");
3086   for Library_Version use External ("SONAME");
3087   for Library_Kind use Kind;
3088   for Library_Dir use External("BUILD_DIR");
3089   Source_Dir := External ("SOURCE_DIR");
3090   for Source_Dirs use (Source_Dir);
3091 end Library;
3092 CF_EOF
3093                         cat >>confpackage.ads <<CF_EOF
3094 package ConfPackage is
3095    procedure conftest;
3096 end ConfPackage;
3097 CF_EOF
3098                         cat >>confpackage.adb <<CF_EOF
3099 with Text_IO;
3100 package body ConfPackage is
3101    procedure conftest is
3102    begin
3103       Text_IO.Put ("Hello World");
3104       Text_IO.New_Line;
3105    end conftest;
3106 end ConfPackage;
3107 CF_EOF
3108                         if ( "$cf_ada_make" $ADAFLAGS \
3109                                         -Plibrary.gpr \
3110                                         -XBUILD_DIR="`cd ../conftest.bin;pwd`" \
3111                                         -XLIBRARY_DIR="`cd ../conftest.lib;pwd`" \
3112                                         -XSOURCE_DIR="`pwd`" \
3113                                         -XSONAME=libConfTest.so.1 \
3114                                         -XLIB_KIND=static 1>&AC_FD_CC 2>&1 ) ; then
3115                                 cf_gnat_projects=yes
3116                         fi
3117                         cd ..
3118                 fi
3119                 if test -f conftest.lib/confpackage.ali
3120                 then
3121                         cf_gnat_libraries=yes
3122                 fi
3123                 rm -rf ./conftest* ./*~conftest*
3124                 ;;
3125         esac
3126         ;;
3127 esac
3128 AC_MSG_RESULT($cf_gnat_projects)
3129 fi # enable_gnat_projects
3130
3131 if test "$cf_gnat_projects" = yes
3132 then
3133         AC_MSG_CHECKING(if GNAT supports libraries)
3134         AC_MSG_RESULT($cf_gnat_libraries)
3135 fi
3136
3137 USE_OLD_MAKERULES=""
3138 USE_GNAT_PROJECTS="#"
3139 USE_GNAT_MAKE_GPR="#"
3140 USE_GNAT_GPRBUILD="#"
3141
3142 if test "$cf_gnat_projects" = yes
3143 then
3144         USE_OLD_MAKERULES="#"
3145         USE_GNAT_PROJECTS=""
3146         if test "$cf_cv_VERSION_GPRBUILD" != no
3147         then
3148                 USE_GNAT_GPRBUILD=""
3149         elif test "$cf_cv_VERSION_GNATMAKE" != no
3150         then
3151                 USE_GNAT_MAKE_GPR=""
3152         else
3153                 AC_MSG_WARN(use old makefile rules since tools are missing)
3154         fi
3155 fi
3156
3157 if test "$cf_gnat_libraries" = yes
3158 then
3159         USE_GNAT_LIBRARIES=""
3160 else
3161         USE_GNAT_LIBRARIES="#"
3162 fi
3163
3164 AC_SUBST(USE_OLD_MAKERULES)
3165 AC_SUBST(USE_GNAT_PROJECTS)
3166 AC_SUBST(USE_GNAT_LIBRARIES)
3167 AC_SUBST(USE_GNAT_MAKE_GPR)
3168 AC_SUBST(USE_GNAT_GPRBUILD)
3169 ])dnl
3170 dnl ---------------------------------------------------------------------------
3171 dnl CF_GNAT_SIGINT version: 2 updated: 2021/01/01 13:31:04
3172 dnl --------------
3173 dnl Check if gnat supports SIGINT, and presumably tasking.  For the latter, it
3174 dnl is noted that gnat may compile a tasking unit even for configurations which
3175 dnl fail at runtime.
3176 AC_DEFUN([CF_GNAT_SIGINT],[
3177 AC_CACHE_CHECK(if GNAT supports SIGINT,cf_cv_gnat_sigint,[
3178 CF_GNAT_TRY_LINK([with Ada.Interrupts.Names;
3179
3180 package ConfTest is
3181
3182    pragma Warnings (Off);  --  the next pragma exists since 3.11p
3183    pragma Unreserve_All_Interrupts;
3184    pragma Warnings (On);
3185
3186    protected Process is
3187       procedure Stop;
3188       function Continue return Boolean;
3189       pragma Attach_Handler (Stop, Ada.Interrupts.Names.SIGINT);
3190    private
3191       Done : Boolean := False;
3192    end Process;
3193
3194 end ConfTest;],
3195 [package body ConfTest is
3196    protected body Process is
3197       procedure Stop is
3198       begin
3199          Done := True;
3200       end Stop;
3201       function Continue return Boolean is
3202       begin
3203          return not Done;
3204       end Continue;
3205    end Process;
3206 end ConfTest;],
3207         [cf_cv_gnat_sigint=yes],
3208         [cf_cv_gnat_sigint=no])])
3209
3210 if test "$cf_cv_gnat_sigint" = yes ; then
3211         USE_GNAT_SIGINT=""
3212 else
3213         USE_GNAT_SIGINT="#"
3214 fi
3215 AC_SUBST(USE_GNAT_SIGINT)
3216 ])dnl
3217 dnl ---------------------------------------------------------------------------
3218 dnl CF_GNAT_TRY_LINK version: 4 updated: 2021/01/01 13:31:04
3219 dnl ----------------
3220 dnl Verify that a test program compiles/links with GNAT.
3221 dnl $cf_ada_make is set to the program that compiles/links
3222 dnl $ADAFLAGS may be set to the GNAT flags.
3223 dnl
3224 dnl $1 is the text of the spec
3225 dnl $2 is the text of the body
3226 dnl $3 is the shell command to execute if successful
3227 dnl $4 is the shell command to execute if not successful
3228 AC_DEFUN([CF_GNAT_TRY_LINK],
3229 [
3230 rm -rf ./conftest* ./*~conftest*
3231 cat >>conftest.ads <<CF_EOF
3232 $1
3233 CF_EOF
3234 cat >>conftest.adb <<CF_EOF
3235 $2
3236 CF_EOF
3237 if ( "$cf_ada_make" $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
3238 ifelse($3,,      :,[      $3])
3239 ifelse($4,,,[else
3240    $4])
3241 fi
3242 rm -rf ./conftest* ./*~conftest*
3243 ])dnl
3244 dnl ---------------------------------------------------------------------------
3245 dnl CF_GNAT_TRY_RUN version: 6 updated: 2021/01/01 13:31:04
3246 dnl ---------------
3247 dnl Verify that a test program compiles and runs with GNAT
3248 dnl $cf_ada_make is set to the program that compiles/links
3249 dnl $ADAFLAGS may be set to the GNAT flags.
3250 dnl
3251 dnl $1 is the text of the spec
3252 dnl $2 is the text of the body
3253 dnl $3 is the shell command to execute if successful
3254 dnl $4 is the shell command to execute if not successful
3255 AC_DEFUN([CF_GNAT_TRY_RUN],
3256 [
3257 rm -rf ./conftest* ./*~conftest*
3258 cat >>conftest.ads <<CF_EOF
3259 $1
3260 CF_EOF
3261 cat >>conftest.adb <<CF_EOF
3262 $2
3263 CF_EOF
3264 if ( "$cf_ada_make" $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
3265    if ( ./conftest 1>&AC_FD_CC 2>&1 ) ; then
3266 ifelse($3,,      :,[      $3])
3267 ifelse($4,,,[   else
3268       $4])
3269    fi
3270 ifelse($4,,,[else
3271    $4])
3272 fi
3273 rm -rf ./conftest* ./*~conftest*
3274 ])dnl
3275 dnl ---------------------------------------------------------------------------
3276 dnl CF_GNAT_VERSION version: 22 updated: 2019/12/31 08:53:54
3277 dnl ---------------
3278 dnl $1 = cache variable to update
3279 dnl $2 = program name
3280 dnl Verify version of GNAT or related tool
3281 AC_DEFUN([CF_GNAT_VERSION],
3282 [
3283 AC_CACHE_CHECK(for ifelse($2,,gnat,$2) version, cf_cv_gnat_version,[
3284 cf_cv_gnat_version=`ifelse($2,,${cf_ada_make:-gnatmake},$2) --version 2>&1 | \
3285         grep '[[0-9]].[[0-9]][[0-9]]*' |\
3286         sed -e '2,$d' -e 's/[[^0-9 \.]]//g' -e 's/^[[ ]]*//' -e 's/ .*//'`
3287 ])
3288 test -z "$cf_cv_gnat_version" && cf_cv_gnat_version=no
3289 ifelse($1,,,[eval $1=$cf_cv_gnat_version; unset cf_cv_gnat_version])
3290 ])dnl
3291 dnl ---------------------------------------------------------------------------
3292 dnl CF_GNU_SOURCE version: 10 updated: 2018/12/10 20:09:41
3293 dnl -------------
3294 dnl Check if we must define _GNU_SOURCE to get a reasonable value for
3295 dnl _XOPEN_SOURCE, upon which many POSIX definitions depend.  This is a defect
3296 dnl (or misfeature) of glibc2, which breaks portability of many applications,
3297 dnl since it is interwoven with GNU extensions.
3298 dnl
3299 dnl Well, yes we could work around it...
3300 dnl
3301 dnl Parameters:
3302 dnl     $1 is the nominal value for _XOPEN_SOURCE
3303 AC_DEFUN([CF_GNU_SOURCE],
3304 [
3305 cf_gnu_xopen_source=ifelse($1,,500,$1)
3306
3307 AC_CACHE_CHECK(if this is the GNU C library,cf_cv_gnu_library,[
3308 AC_TRY_COMPILE([#include <sys/types.h>],[
3309         #if __GLIBC__ > 0 && __GLIBC_MINOR__ >= 0
3310                 return 0;
3311         #elif __NEWLIB__ > 0 && __NEWLIB_MINOR__ >= 0
3312                 return 0;
3313         #else
3314         #       error not GNU C library
3315         #endif],
3316         [cf_cv_gnu_library=yes],
3317         [cf_cv_gnu_library=no])
3318 ])
3319
3320 if test x$cf_cv_gnu_library = xyes; then
3321
3322         # With glibc 2.19 (13 years after this check was begun), _DEFAULT_SOURCE
3323         # was changed to help a little.  newlib incorporated the change about 4
3324         # years later.
3325         AC_CACHE_CHECK(if _DEFAULT_SOURCE can be used as a basis,cf_cv_gnu_library_219,[
3326                 cf_save="$CPPFLAGS"
3327                 CF_APPEND_TEXT(CPPFLAGS,-D_DEFAULT_SOURCE)
3328                 AC_TRY_COMPILE([#include <sys/types.h>],[
3329                         #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 19) || (__GLIBC__ > 2)
3330                                 return 0;
3331                         #elif (__NEWLIB__ == 2 && __NEWLIB_MINOR__ >= 4) || (__GLIBC__ > 3)
3332                                 return 0;
3333                         #else
3334                         #       error GNU C library __GLIBC__.__GLIBC_MINOR__ is too old
3335                         #endif],
3336                         [cf_cv_gnu_library_219=yes],
3337                         [cf_cv_gnu_library_219=no])
3338                 CPPFLAGS="$cf_save"
3339         ])
3340
3341         if test "x$cf_cv_gnu_library_219" = xyes; then
3342                 cf_save="$CPPFLAGS"
3343                 AC_CACHE_CHECK(if _XOPEN_SOURCE=$cf_gnu_xopen_source works with _DEFAULT_SOURCE,cf_cv_gnu_dftsrc_219,[
3344                         CF_ADD_CFLAGS(-D_DEFAULT_SOURCE -D_XOPEN_SOURCE=$cf_gnu_xopen_source)
3345                         AC_TRY_COMPILE([
3346                                 #include <limits.h>
3347                                 #include <sys/types.h>
3348                                 ],[
3349                                 #if (_XOPEN_SOURCE >= $cf_gnu_xopen_source) && (MB_LEN_MAX > 1)
3350                                         return 0;
3351                                 #else
3352                                 #       error GNU C library is too old
3353                                 #endif],
3354                                 [cf_cv_gnu_dftsrc_219=yes],
3355                                 [cf_cv_gnu_dftsrc_219=no])
3356                         ])
3357                 test "x$cf_cv_gnu_dftsrc_219" = "xyes" || CPPFLAGS="$cf_save"
3358         else
3359                 cf_cv_gnu_dftsrc_219=maybe
3360         fi
3361
3362         if test "x$cf_cv_gnu_dftsrc_219" != xyes; then
3363
3364                 AC_CACHE_CHECK(if we must define _GNU_SOURCE,cf_cv_gnu_source,[
3365                 AC_TRY_COMPILE([#include <sys/types.h>],[
3366                         #ifndef _XOPEN_SOURCE
3367                         #error  expected _XOPEN_SOURCE to be defined
3368                         #endif],
3369                         [cf_cv_gnu_source=no],
3370                         [cf_save="$CPPFLAGS"
3371                          CF_ADD_CFLAGS(-D_GNU_SOURCE)
3372                          AC_TRY_COMPILE([#include <sys/types.h>],[
3373                                 #ifdef _XOPEN_SOURCE
3374                                 #error  expected _XOPEN_SOURCE to be undefined
3375                                 #endif],
3376                                 [cf_cv_gnu_source=no],
3377                                 [cf_cv_gnu_source=yes])
3378                         CPPFLAGS="$cf_save"
3379                         ])
3380                 ])
3381
3382                 if test "$cf_cv_gnu_source" = yes
3383                 then
3384                 AC_CACHE_CHECK(if we should also define _DEFAULT_SOURCE,cf_cv_default_source,[
3385                         CF_APPEND_TEXT(CPPFLAGS,-D_GNU_SOURCE)
3386                         AC_TRY_COMPILE([#include <sys/types.h>],[
3387                                 #ifdef _DEFAULT_SOURCE
3388                                 #error  expected _DEFAULT_SOURCE to be undefined
3389                                 #endif],
3390                                 [cf_cv_default_source=no],
3391                                 [cf_cv_default_source=yes])
3392                         ])
3393                         if test "$cf_cv_default_source" = yes
3394                         then
3395                                 CF_APPEND_TEXT(CPPFLAGS,-D_DEFAULT_SOURCE)
3396                         fi
3397                 fi
3398         fi
3399
3400 fi
3401 ])dnl
3402 dnl ---------------------------------------------------------------------------
3403 dnl CF_GPP_LIBRARY version: 13 updated: 2021/01/01 13:31:04
3404 dnl --------------
3405 dnl If we're trying to use g++, test if libg++ is installed (a rather common
3406 dnl problem :-).  If we have the compiler but no library, we'll be able to
3407 dnl configure, but won't be able to build the c++ demo program.
3408 AC_DEFUN([CF_GPP_LIBRARY],
3409 [
3410 cf_cxx_library=unknown
3411 case "$cf_cv_system_name" in
3412 (os2*)
3413         cf_gpp_libname=gpp
3414         ;;
3415 (*)
3416         cf_gpp_libname=g++
3417         ;;
3418 esac
3419 if test "$GXX" = yes; then
3420         AC_MSG_CHECKING([for lib$cf_gpp_libname])
3421         cf_save="$LIBS"
3422         CF_ADD_LIB($cf_gpp_libname)
3423         AC_TRY_LINK([
3424 #include <$cf_gpp_libname/builtin.h>
3425         ],
3426         [two_arg_error_handler_t foo2 = lib_error_handler],
3427         [cf_cxx_library=yes
3428          CF_ADD_LIB($cf_gpp_libname,CXXLIBS)
3429          if test "$cf_gpp_libname" = cpp ; then
3430             AC_DEFINE(HAVE_GPP_BUILTIN_H,1,[Define to 1 if we have gpp builtin.h])
3431          else
3432             AC_DEFINE(HAVE_GXX_BUILTIN_H,1,[Define to 1 if we have g++ builtin.h])
3433          fi],
3434         [AC_TRY_LINK([
3435 #include <builtin.h>
3436         ],
3437         [two_arg_error_handler_t foo2 = lib_error_handler],
3438         [cf_cxx_library=yes
3439          CF_ADD_LIB($cf_gpp_libname,CXXLIBS)
3440          AC_DEFINE(HAVE_BUILTIN_H,1,[Define to 1 if we have builtin.h])],
3441         [cf_cxx_library=no])])
3442         LIBS="$cf_save"
3443         AC_MSG_RESULT($cf_cxx_library)
3444 fi
3445 ])dnl
3446 dnl ---------------------------------------------------------------------------
3447 dnl CF_GXX_VERSION version: 8 updated: 2017/02/11 14:48:57
3448 dnl --------------
3449 dnl Check for version of g++
3450 AC_DEFUN([CF_GXX_VERSION],[
3451 AC_REQUIRE([AC_PROG_CPP])
3452 GXX_VERSION=none
3453 if test "$GXX" = yes; then
3454         AC_MSG_CHECKING(version of ${CXX:-g++})
3455         GXX_VERSION="`${CXX:-g++} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
3456         if test -z "$GXX_VERSION"
3457         then
3458                 GXX_VERSION=unknown
3459                 GXX=no
3460         fi
3461         AC_MSG_RESULT($GXX_VERSION)
3462 fi
3463 ])dnl
3464 dnl ---------------------------------------------------------------------------
3465 dnl CF_GXX_WARNINGS version: 11 updated: 2021/01/08 16:50:55
3466 dnl ---------------
3467 dnl Check if the compiler supports useful warning options.
3468 dnl
3469 dnl Most of gcc's options apply to g++, except:
3470 dnl     -Wbad-function-cast
3471 dnl     -Wmissing-declarations
3472 dnl     -Wnested-externs
3473 dnl
3474 dnl Omit a few (for now):
3475 dnl     -Winline
3476 dnl
3477 dnl Parameter:
3478 dnl     $1 is an optional list of g++ warning flags that a particular
3479 dnl             application might want to use, e.g., "no-unused" for
3480 dnl             -Wno-unused
3481 dnl Special:
3482 dnl     If $with_ext_const is "yes", add a check for -Wwrite-strings
3483 dnl
3484 AC_DEFUN([CF_GXX_WARNINGS],
3485 [
3486
3487 CF_INTEL_COMPILER(GXX,INTEL_CPLUSPLUS,CXXFLAGS)
3488 CF_CLANG_COMPILER(GXX,CLANG_CPLUSPLUS,CXXFLAGS)
3489
3490 AC_REQUIRE([CF_GXX_VERSION])
3491
3492 AC_LANG_SAVE
3493 AC_LANG_CPLUSPLUS
3494
3495 cat > conftest.$ac_ext <<EOF
3496 #line __oline__ "configure"
3497 int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
3498 EOF
3499
3500 if test "$INTEL_CPLUSPLUS" = yes
3501 then
3502 # The "-wdXXX" options suppress warnings:
3503 # remark #1419: external declaration in primary source file
3504 # remark #1682: implicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
3505 # remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
3506 # remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
3507 # remark #193: zero used for undefined preprocessing identifier
3508 # remark #593: variable "curs_sb_left_arrow" was set but never used
3509 # remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
3510 # remark #869: parameter "tw" was never referenced
3511 # remark #981: operands are evaluated in unspecified order
3512 # warning #269: invalid format string conversion
3513
3514         AC_CHECKING([for $CC warning options])
3515         cf_save_CXXFLAGS="$CXXFLAGS"
3516         EXTRA_CXXFLAGS="-Wall"
3517         for cf_opt in \
3518                 wd1419 \
3519                 wd1682 \
3520                 wd1683 \
3521                 wd1684 \
3522                 wd193 \
3523                 wd279 \
3524                 wd593 \
3525                 wd810 \
3526                 wd869 \
3527                 wd981
3528         do
3529                 CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -$cf_opt"
3530                 if AC_TRY_EVAL(ac_compile); then
3531                         test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
3532                         EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
3533                 fi
3534         done
3535         CXXFLAGS="$cf_save_CXXFLAGS"
3536
3537 elif test "$GXX" = yes
3538 then
3539         AC_CHECKING([for $CXX warning options])
3540         cf_save_CXXFLAGS="$CXXFLAGS"
3541         EXTRA_CXXFLAGS="-W -Wall"
3542         cf_gxx_extra_warnings=""
3543         test "$with_ext_const" = yes && cf_gxx_extra_warnings="Wwrite-strings"
3544         case "$GXX_VERSION" in
3545         ([[1-2]].*)
3546                 ;;
3547         (*)
3548                 cf_gxx_extra_warnings="$cf_gxx_extra_warnings Weffc++"
3549                 ;;
3550         esac
3551         for cf_opt in \
3552                 Wabi \
3553                 fabi-version=0 \
3554                 Wextra \
3555                 Wignored-qualifiers \
3556                 Wlogical-op \
3557                 Woverloaded-virtual \
3558                 Wsign-promo \
3559                 Wsynth \
3560                 Wold-style-cast \
3561                 Wcast-align \
3562                 Wcast-qual \
3563                 Wpointer-arith \
3564                 Wshadow \
3565                 Wundef $cf_gxx_extra_warnings $1
3566         do
3567                 CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -Werror -$cf_opt"
3568                 if AC_TRY_EVAL(ac_compile); then
3569                         test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
3570                         EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
3571                 else
3572                         test -n "$verbose" && AC_MSG_RESULT(... no -$cf_opt)
3573                 fi
3574         done
3575         CXXFLAGS="$cf_save_CXXFLAGS"
3576 fi
3577
3578 rm -rf ./conftest*
3579 AC_LANG_RESTORE
3580 AC_SUBST(EXTRA_CXXFLAGS)
3581 ])dnl
3582 dnl ---------------------------------------------------------------------------
3583 dnl CF_HASHED_DB version: 7 updated: 2015/04/18 08:56:57
3584 dnl ------------
3585 dnl Look for an instance of the Berkeley hashed database.
3586 dnl
3587 dnl $1 = optional parameter, to specify install-prefix for the database.
3588 AC_DEFUN([CF_HASHED_DB],
3589 [
3590 ifelse([$1],,,[
3591 case $1 in
3592 (yes|*able*)
3593         ;;
3594 (*)
3595         if test -d "$1" ; then
3596                 CF_ADD_INCDIR($1/include)
3597                 CF_ADD_LIBDIR($1/lib)
3598         else
3599                 case "$1" in
3600                 (./*|../*|/*)
3601                         AC_MSG_WARN(no such directory $1)
3602                         ;;
3603                 (*)
3604                         CF_FIND_SUB_INCDIR($1)
3605                         CF_FIND_SUB_LIBDIR($1)
3606                         ;;
3607                 esac
3608         fi
3609 esac
3610 ])
3611 AC_CHECK_HEADER(db.h,[
3612 CF_HASHED_DB_VERSION
3613 if test "$cf_cv_hashed_db_version" = unknown ; then
3614         AC_MSG_ERROR(Cannot determine version of db)
3615 else
3616         CF_HASHED_DB_LIBS
3617         if test "$cf_cv_hashed_db_libs" = unknown ; then
3618                 AC_MSG_ERROR(Cannot determine library for db)
3619         elif test "$cf_cv_hashed_db_libs" != default ; then
3620                 CF_ADD_LIB($cf_cv_hashed_db_libs)
3621         fi
3622 fi
3623 ],[
3624         AC_MSG_ERROR(Cannot find db.h)
3625 ])
3626 ])dnl
3627 dnl ---------------------------------------------------------------------------
3628 dnl CF_HASHED_DB_LIBS version: 10 updated: 2021/01/02 17:09:14
3629 dnl -----------------
3630 dnl Given that we have the header and version for hashed database, find the
3631 dnl library information.
3632 AC_DEFUN([CF_HASHED_DB_LIBS],
3633 [
3634 AC_CACHE_CHECK(for db libraries, cf_cv_hashed_db_libs,[
3635 cf_cv_hashed_db_libs=unknown
3636 for cf_db_libs in "" db$cf_cv_hashed_db_version db-$cf_cv_hashed_db_version db ''
3637 do
3638         cf_save_libs="$LIBS"
3639         if test -n "$cf_db_libs"; then
3640                 CF_ADD_LIB($cf_db_libs)
3641         fi
3642         CF_MSG_LOG(checking for library $cf_db_libs)
3643         AC_TRY_LINK([
3644 $ac_includes_default
3645 #include <db.h>
3646 ],[
3647         char *path = "/tmp/foo";
3648 #ifdef DB_VERSION_MAJOR
3649 #if DB_VERSION_MAJOR >= 4
3650         DB *result = 0;
3651         db_create(&result, NULL, 0);
3652         result->open(result,
3653                 NULL,
3654                 path,
3655                 path,
3656                 DB_HASH,
3657                 DB_CREATE,
3658                 0644);
3659 #elif DB_VERSION_MAJOR >= 3
3660         DB *result = 0;
3661         db_create(&result, NULL, 0);
3662         result->open(result,
3663                 path,
3664                 path,
3665                 DB_HASH,
3666                 DB_CREATE,
3667                 0644);
3668 #elif DB_VERSION_MAJOR >= 2
3669         DB *result = 0;
3670         db_open(path,
3671                 DB_HASH,
3672                 DB_CREATE,
3673                 0644,
3674                 (DB_ENV *) 0,
3675                 (DB_INFO *) 0,
3676                 &result);
3677 #endif /* DB_VERSION_MAJOR */
3678 #else
3679         DB *result = dbopen(path,
3680                      2,
3681                      0644,
3682                      DB_HASH,
3683                      0);
3684 #endif
3685         ${cf_cv_main_return:-return}(result != 0)
3686 ],[
3687         if test -n "$cf_db_libs" ; then
3688                 cf_cv_hashed_db_libs=$cf_db_libs
3689         else
3690                 cf_cv_hashed_db_libs=default
3691         fi
3692         LIBS="$cf_save_libs"
3693         break
3694 ])
3695         LIBS="$cf_save_libs"
3696 done
3697 ])
3698 ])dnl
3699 dnl ---------------------------------------------------------------------------
3700 dnl CF_HASHED_DB_VERSION version: 4 updated: 2014/04/12 16:47:01
3701 dnl --------------------
3702 dnl Given that we have the header file for hashed database, find the version
3703 dnl information.
3704 AC_DEFUN([CF_HASHED_DB_VERSION],
3705 [
3706 AC_CACHE_CHECK(for version of db, cf_cv_hashed_db_version,[
3707 cf_cv_hashed_db_version=unknown
3708
3709 for cf_db_version in 1 2 3 4 5 6
3710 do
3711         CF_MSG_LOG(checking for db version $cf_db_version)
3712         AC_TRY_COMPILE([
3713 $ac_includes_default
3714 #include <db.h>
3715
3716 #ifdef DB_VERSION_MAJOR
3717         /* db2 (DB_VERSION_MAJOR=2) has also DB_VERSION_MINOR, tested with 7 */
3718 #if $cf_db_version == DB_VERSION_MAJOR
3719         /* ok */
3720 #else
3721         make an error
3722 #endif
3723 #else
3724 #if $cf_db_version == 1
3725         /* ok: assuming this is DB 1.8.5 */
3726 #else
3727         make an error
3728 #endif
3729 #endif
3730 ],[DBT *foo = 0],[
3731         cf_cv_hashed_db_version=$cf_db_version
3732         break
3733         ])
3734 done
3735 ])
3736 ])dnl
3737 dnl ---------------------------------------------------------------------------
3738 dnl CF_HEADER_PATH version: 15 updated: 2021/01/01 13:31:04
3739 dnl --------------
3740 dnl Construct a search-list of directories for a nonstandard header-file
3741 dnl
3742 dnl Parameters
3743 dnl     $1 = the variable to return as result
3744 dnl     $2 = the package name
3745 AC_DEFUN([CF_HEADER_PATH],
3746 [
3747 $1=
3748
3749 # collect the current set of include-directories from compiler flags
3750 cf_header_path_list=""
3751 if test -n "${CFLAGS}${CPPFLAGS}" ; then
3752         for cf_header_path in $CPPFLAGS $CFLAGS
3753         do
3754                 case "$cf_header_path" in
3755         &n