]> ncurses.scripts.mit.edu Git - ncurses.git/blob - aclocal.m4
ncurses 6.3 - patch 20220910
[ncurses.git] / aclocal.m4
1 dnl***************************************************************************
2 dnl Copyright 2018-2021,2022 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.1011 2022/09/10 19:23:45 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: 3 updated: 2022/01/22 19:13:38
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
74 # ABI 5 defaults:
75 cf_dft_ccharw_max=5
76 cf_dft_chtype=auto
77 cf_dft_ext_colors=no
78 cf_dft_ext_const=no
79 cf_dft_ext_mouse=no
80 cf_dft_ext_putwin=no
81 cf_dft_ext_spfuncs=no
82 cf_dft_filter_syms=no
83 cf_dft_interop=no
84 cf_dft_mmask_t=auto
85 cf_dft_opaque_curses=no
86 cf_dft_ordinate_type=short
87 cf_dft_signed_char=no
88 cf_dft_tparm_arg=long
89 cf_dft_with_lp64=no
90
91 # ABI 6 defaults:
92 case x$cf_cv_abi_version in
93 (x[[6789]])
94         cf_dft_chtype=uint32_t
95         cf_dft_ext_colors=yes
96         cf_dft_ext_const=yes
97         cf_dft_ext_mouse=yes
98         cf_dft_ext_putwin=yes
99         cf_dft_ext_spfuncs=yes
100         cf_dft_filter_syms=yes
101         cf_dft_interop=yes
102         cf_dft_mmask_t=uint32_t
103         cf_dft_tparm_arg=intptr_t
104         cf_dft_with_lp64=yes
105         ;;
106 esac
107
108 # ABI 7 defaults:
109 case x$cf_cv_abi_version in
110 (x[[789]])
111         cf_dft_ccharw_max=6
112         cf_dft_mmask_t=uint64_t
113         cf_dft_opaque_curses=yes
114         cf_dft_ordinate_type=int
115         cf_dft_signed_char=yes
116         # also: remove the wgetch-events feature in ABI 7
117         ;;
118 esac
119 ])dnl
120 dnl ---------------------------------------------------------------------------
121 dnl CF_ACVERSION_CHECK version: 5 updated: 2014/06/04 19:11:49
122 dnl ------------------
123 dnl Conditionally generate script according to whether we're using a given autoconf.
124 dnl
125 dnl $1 = version to compare against
126 dnl $2 = code to use if AC_ACVERSION is at least as high as $1.
127 dnl $3 = code to use if AC_ACVERSION is older than $1.
128 define([CF_ACVERSION_CHECK],
129 [
130 ifdef([AC_ACVERSION], ,[ifdef([AC_AUTOCONF_VERSION],[m4_copy([AC_AUTOCONF_VERSION],[AC_ACVERSION])],[m4_copy([m4_PACKAGE_VERSION],[AC_ACVERSION])])])dnl
131 ifdef([m4_version_compare],
132 [m4_if(m4_version_compare(m4_defn([AC_ACVERSION]), [$1]), -1, [$3], [$2])],
133 [CF_ACVERSION_COMPARE(
134 AC_PREREQ_CANON(AC_PREREQ_SPLIT([$1])),
135 AC_PREREQ_CANON(AC_PREREQ_SPLIT(AC_ACVERSION)), AC_ACVERSION, [$2], [$3])])])dnl
136 dnl ---------------------------------------------------------------------------
137 dnl CF_ACVERSION_COMPARE version: 3 updated: 2012/10/03 18:39:53
138 dnl --------------------
139 dnl CF_ACVERSION_COMPARE(MAJOR1, MINOR1, TERNARY1,
140 dnl                      MAJOR2, MINOR2, TERNARY2,
141 dnl                      PRINTABLE2, not FOUND, FOUND)
142 define([CF_ACVERSION_COMPARE],
143 [ifelse(builtin([eval], [$2 < $5]), 1,
144 [ifelse([$8], , ,[$8])],
145 [ifelse([$9], , ,[$9])])])dnl
146 dnl ---------------------------------------------------------------------------
147 dnl CF_ADA_INCLUDE_DIRS version: 8 updated: 2013/10/14 04:24:07
148 dnl -------------------
149 dnl Construct the list of include-options for the C programs in the Ada95
150 dnl binding.
151 AC_DEFUN([CF_ADA_INCLUDE_DIRS],
152 [
153 ACPPFLAGS="-I. -I../include -I../../include $ACPPFLAGS"
154 if test "$srcdir" != "."; then
155         ACPPFLAGS="-I\${srcdir}/../../include $ACPPFLAGS"
156 fi
157 if test "$GCC" != yes; then
158         ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
159 elif test "$includedir" != "/usr/include"; then
160         if test "$includedir" = '${prefix}/include' ; then
161                 if test x$prefix != x/usr ; then
162                         ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
163                 fi
164         else
165                 ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
166         fi
167 fi
168 AC_SUBST(ACPPFLAGS)
169 ])dnl
170 dnl ---------------------------------------------------------------------------
171 dnl CF_ADD_ADAFLAGS version: 1 updated: 2010/06/19 15:22:18
172 dnl ---------------
173 dnl Add to $ADAFLAGS, which is substituted into makefile and scripts.
174 AC_DEFUN([CF_ADD_ADAFLAGS],[
175         ADAFLAGS="$ADAFLAGS $1"
176         AC_SUBST(ADAFLAGS)
177 ])dnl
178 dnl ---------------------------------------------------------------------------
179 dnl CF_ADD_CFLAGS version: 15 updated: 2020/12/31 10:54:15
180 dnl -------------
181 dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS
182 dnl $1 = flags to add
183 dnl $2 = if given makes this macro verbose.
184 dnl
185 dnl Put any preprocessor definitions that use quoted strings in $EXTRA_CPPFLAGS,
186 dnl to simplify use of $CPPFLAGS in compiler checks, etc., that are easily
187 dnl confused by the quotes (which require backslashes to keep them usable).
188 AC_DEFUN([CF_ADD_CFLAGS],
189 [
190 cf_fix_cppflags=no
191 cf_new_cflags=
192 cf_new_cppflags=
193 cf_new_extra_cppflags=
194
195 for cf_add_cflags in $1
196 do
197 case "$cf_fix_cppflags" in
198 (no)
199         case "$cf_add_cflags" in
200         (-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C)
201                 case "$cf_add_cflags" in
202                 (-D*)
203                         cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^-D[[^=]]*='\''\"[[^"]]*//'`
204
205                         test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
206                                 && test -z "${cf_tst_cflags}" \
207                                 && cf_fix_cppflags=yes
208
209                         if test "$cf_fix_cppflags" = yes ; then
210                                 CF_APPEND_TEXT(cf_new_extra_cppflags,$cf_add_cflags)
211                                 continue
212                         elif test "${cf_tst_cflags}" = "\"'" ; then
213                                 CF_APPEND_TEXT(cf_new_extra_cppflags,$cf_add_cflags)
214                                 continue
215                         fi
216                         ;;
217                 esac
218                 case "$CPPFLAGS" in
219                 (*$cf_add_cflags)
220                         ;;
221                 (*)
222                         case "$cf_add_cflags" in
223                         (-D*)
224                                 cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
225                                 CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,$cf_tst_cppflags)
226                                 ;;
227                         esac
228                         CF_APPEND_TEXT(cf_new_cppflags,$cf_add_cflags)
229                         ;;
230                 esac
231                 ;;
232         (*)
233                 CF_APPEND_TEXT(cf_new_cflags,$cf_add_cflags)
234                 ;;
235         esac
236         ;;
237 (yes)
238         CF_APPEND_TEXT(cf_new_extra_cppflags,$cf_add_cflags)
239
240         cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^[[^"]]*"'\''//'`
241
242         test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
243                 && test -z "${cf_tst_cflags}" \
244                 && cf_fix_cppflags=no
245         ;;
246 esac
247 done
248
249 if test -n "$cf_new_cflags" ; then
250         ifelse([$2],,,[CF_VERBOSE(add to \$CFLAGS $cf_new_cflags)])
251         CF_APPEND_TEXT(CFLAGS,$cf_new_cflags)
252 fi
253
254 if test -n "$cf_new_cppflags" ; then
255         ifelse([$2],,,[CF_VERBOSE(add to \$CPPFLAGS $cf_new_cppflags)])
256         CF_APPEND_TEXT(CPPFLAGS,$cf_new_cppflags)
257 fi
258
259 if test -n "$cf_new_extra_cppflags" ; then
260         ifelse([$2],,,[CF_VERBOSE(add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags)])
261         CF_APPEND_TEXT(EXTRA_CPPFLAGS,$cf_new_extra_cppflags)
262 fi
263
264 AC_SUBST(EXTRA_CPPFLAGS)
265
266 ])dnl
267 dnl ---------------------------------------------------------------------------
268 dnl CF_ADD_CXXFLAGS version: 1 updated: 2020/04/04 16:16:13
269 dnl ---------------
270 dnl Copy non-preprocessor flags to $CXXFLAGS, preprocessor flags to $CPPFLAGS
271 dnl The second parameter if given makes this macro verbose.
272 dnl
273 dnl Put any preprocessor definitions that use quoted strings in $EXTRA_CPPFLAGS,
274 dnl to simplify use of $CPPFLAGS in compiler checks, etc., that are easily
275 dnl confused by the quotes (which require backslashes to keep them usable).
276 AC_DEFUN([CF_ADD_CXXFLAGS],
277 [
278 cf_save_CXXFLAGS="$CFLAGS"
279 CFLAGS="$CXXFLAGS"
280 CF_ADD_CFLAGS($1 ifelse($2,,,[,$2]))
281 CXXFLAGS="$CFLAGS"
282 CFLAGS="$cf_save_CXXFLAGS"
283 ])dnl
284 dnl ---------------------------------------------------------------------------
285 dnl CF_ADD_INCDIR version: 17 updated: 2021/09/04 06:35:04
286 dnl -------------
287 dnl Add an include-directory to $CPPFLAGS.  Don't add /usr/include, since it is
288 dnl redundant.  We don't normally need to add -I/usr/local/include for gcc,
289 dnl but old versions (and some misinstalled ones) need that.  To make things
290 dnl worse, gcc 3.x may give error messages if -I/usr/local/include is added to
291 dnl the include-path).
292 AC_DEFUN([CF_ADD_INCDIR],
293 [
294 if test -n "$1" ; then
295   for cf_add_incdir in $1
296   do
297         while test "$cf_add_incdir" != /usr/include
298         do
299           if test -d "$cf_add_incdir"
300           then
301                 cf_have_incdir=no
302                 if test -n "$CFLAGS$CPPFLAGS" ; then
303                   # a loop is needed to ensure we can add subdirs of existing dirs
304                   for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
305                         if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
306                           cf_have_incdir=yes; break
307                         fi
308                   done
309                 fi
310
311                 if test "$cf_have_incdir" = no ; then
312                   if test "$cf_add_incdir" = /usr/local/include ; then
313                         if test "$GCC" = yes
314                         then
315                           cf_save_CPPFLAGS=$CPPFLAGS
316                           CF_APPEND_TEXT(CPPFLAGS,-I$cf_add_incdir)
317                           AC_TRY_COMPILE([#include <stdio.h>],
318                                   [printf("Hello")],
319                                   [],
320                                   [cf_have_incdir=yes])
321                           CPPFLAGS=$cf_save_CPPFLAGS
322                         fi
323                   fi
324                 fi
325
326                 if test "$cf_have_incdir" = no ; then
327                   CF_VERBOSE(adding $cf_add_incdir to include-path)
328                   ifelse([$2],,CPPFLAGS,[$2])="$ifelse([$2],,CPPFLAGS,[$2]) -I$cf_add_incdir"
329
330                   cf_top_incdir=`echo "$cf_add_incdir" | sed -e 's%/include/.*$%/include%'`
331                   test "$cf_top_incdir" = "$cf_add_incdir" && break
332                   cf_add_incdir="$cf_top_incdir"
333                 else
334                   break
335                 fi
336           else
337                 break
338           fi
339         done
340   done
341 fi
342 ])dnl
343 dnl ---------------------------------------------------------------------------
344 dnl CF_ADD_LIB version: 2 updated: 2010/06/02 05:03:05
345 dnl ----------
346 dnl Add a library, used to enforce consistency.
347 dnl
348 dnl $1 = library to add, without the "-l"
349 dnl $2 = variable to update (default $LIBS)
350 AC_DEFUN([CF_ADD_LIB],[CF_ADD_LIBS(-l$1,ifelse($2,,LIBS,[$2]))])dnl
351 dnl ---------------------------------------------------------------------------
352 dnl CF_ADD_LIBDIR version: 11 updated: 2020/12/31 20:19:42
353 dnl -------------
354 dnl     Adds to the library-path
355 dnl
356 dnl     Some machines have trouble with multiple -L options.
357 dnl
358 dnl $1 is the (list of) directory(s) to add
359 dnl $2 is the optional name of the variable to update (default LDFLAGS)
360 dnl
361 AC_DEFUN([CF_ADD_LIBDIR],
362 [
363 if test -n "$1" ; then
364         for cf_add_libdir in $1
365         do
366                 if test "$cf_add_libdir" = /usr/lib ; then
367                         :
368                 elif test -d "$cf_add_libdir"
369                 then
370                         cf_have_libdir=no
371                         if test -n "$LDFLAGS$LIBS" ; then
372                                 # a loop is needed to ensure we can add subdirs of existing dirs
373                                 for cf_test_libdir in $LDFLAGS $LIBS ; do
374                                         if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
375                                                 cf_have_libdir=yes; break
376                                         fi
377                                 done
378                         fi
379                         if test "$cf_have_libdir" = no ; then
380                                 CF_VERBOSE(adding $cf_add_libdir to library-path)
381                                 ifelse([$2],,LDFLAGS,[$2])="-L$cf_add_libdir $ifelse([$2],,LDFLAGS,[$2])"
382                         fi
383                 fi
384         done
385 fi
386 ])dnl
387 dnl ---------------------------------------------------------------------------
388 dnl CF_ADD_LIBS version: 3 updated: 2019/11/02 16:47:33
389 dnl -----------
390 dnl Add one or more libraries, used to enforce consistency.  Libraries are
391 dnl prepended to an existing list, since their dependencies are assumed to
392 dnl already exist in the list.
393 dnl
394 dnl $1 = libraries to add, with the "-l", etc.
395 dnl $2 = variable to update (default $LIBS)
396 AC_DEFUN([CF_ADD_LIBS],[
397 cf_add_libs="[$]ifelse($2,,LIBS,[$2])"
398 # reverse order
399 cf_add_0lib=
400 for cf_add_1lib in $1; do cf_add_0lib="$cf_add_1lib $cf_add_0lib"; done
401 # filter duplicates
402 for cf_add_1lib in $cf_add_0lib; do
403         for cf_add_2lib in $cf_add_libs; do
404                 if test "x$cf_add_1lib" = "x$cf_add_2lib"; then
405                         cf_add_1lib=
406                         break
407                 fi
408         done
409         test -n "$cf_add_1lib" && cf_add_libs="$cf_add_1lib $cf_add_libs"
410 done
411 ifelse($2,,LIBS,[$2])="$cf_add_libs"
412 ])dnl
413 dnl ---------------------------------------------------------------------------
414 dnl CF_ADD_SUBDIR_PATH version: 5 updated: 2020/12/31 20:19:42
415 dnl ------------------
416 dnl Append to a search-list for a nonstandard header/lib-file
417 dnl     $1 = the variable to return as result
418 dnl     $2 = the package name
419 dnl     $3 = the subdirectory, e.g., bin, include or lib
420 dnl $4 = the directory under which we will test for subdirectories
421 dnl $5 = a directory that we do not want $4 to match
422 AC_DEFUN([CF_ADD_SUBDIR_PATH],
423 [
424 test "x$4" != "x$5" && \
425 test -d "$4" && \
426 ifelse([$5],NONE,,[{ test -z "$5" || test "x$5" = xNONE || test "x$4" != "x$5"; } &&]) {
427         test -n "$verbose" && echo "    ... testing for $3-directories under $4"
428         test -d "$4/$3" &&          $1="[$]$1 $4/$3"
429         test -d "$4/$3/$2" &&       $1="[$]$1 $4/$3/$2"
430         test -d "$4/$3/$2/$3" &&    $1="[$]$1 $4/$3/$2/$3"
431         test -d "$4/$2/$3" &&       $1="[$]$1 $4/$2/$3"
432         test -d "$4/$2/$3/$2" &&    $1="[$]$1 $4/$2/$3/$2"
433 }
434 ])dnl
435 dnl ---------------------------------------------------------------------------
436 dnl CF_APPEND_CFLAGS version: 3 updated: 2021/09/05 17:25:40
437 dnl ----------------
438 dnl Use CF_ADD_CFLAGS after first checking for potential redefinitions.
439 dnl $1 = flags to add
440 dnl $2 = if given makes this macro verbose.
441 define([CF_APPEND_CFLAGS],
442 [
443 for cf_add_cflags in $1
444 do
445         case "x$cf_add_cflags" in
446         (x-[[DU]]*)
447                 CF_REMOVE_CFLAGS($cf_add_cflags,CFLAGS,[$2])
448                 CF_REMOVE_CFLAGS($cf_add_cflags,CPPFLAGS,[$2])
449                 ;;
450         esac
451         CF_ADD_CFLAGS([$cf_add_cflags],[$2])
452 done
453 ])dnl
454 dnl ---------------------------------------------------------------------------
455 dnl CF_APPEND_TEXT version: 1 updated: 2017/02/25 18:58:55
456 dnl --------------
457 dnl use this macro for appending text without introducing an extra blank at
458 dnl the beginning
459 define([CF_APPEND_TEXT],
460 [
461         test -n "[$]$1" && $1="[$]$1 "
462         $1="[$]{$1}$2"
463 ])dnl
464 dnl ---------------------------------------------------------------------------
465 dnl CF_ARG_DISABLE version: 3 updated: 1999/03/30 17:24:31
466 dnl --------------
467 dnl Allow user to disable a normally-on option.
468 AC_DEFUN([CF_ARG_DISABLE],
469 [CF_ARG_OPTION($1,[$2],[$3],[$4],yes)])dnl
470 dnl ---------------------------------------------------------------------------
471 dnl CF_ARG_ENABLE version: 3 updated: 1999/03/30 17:24:31
472 dnl -------------
473 dnl Allow user to enable a normally-off option.
474 AC_DEFUN([CF_ARG_ENABLE],
475 [CF_ARG_OPTION($1,[$2],[$3],[$4],no)])dnl
476 dnl ---------------------------------------------------------------------------
477 dnl CF_ARG_OPTION version: 5 updated: 2015/05/10 19:52:14
478 dnl -------------
479 dnl Restricted form of AC_ARG_ENABLE that ensures user doesn't give bogus
480 dnl values.
481 dnl
482 dnl Parameters:
483 dnl $1 = option name
484 dnl $2 = help-string
485 dnl $3 = action to perform if option is not default
486 dnl $4 = action if perform if option is default
487 dnl $5 = default option value (either 'yes' or 'no')
488 AC_DEFUN([CF_ARG_OPTION],
489 [AC_ARG_ENABLE([$1],[$2],[test "$enableval" != ifelse([$5],no,yes,no) && enableval=ifelse([$5],no,no,yes)
490         if test "$enableval" != "$5" ; then
491 ifelse([$3],,[    :]dnl
492 ,[    $3]) ifelse([$4],,,[
493         else
494                 $4])
495         fi],[enableval=$5 ifelse([$4],,,[
496         $4
497 ])dnl
498 ])])dnl
499 dnl ---------------------------------------------------------------------------
500 dnl CF_AR_FLAGS version: 9 updated: 2021/01/01 13:31:04
501 dnl -----------
502 dnl Check for suitable "ar" (archiver) options for updating an archive.
503 dnl
504 dnl In particular, handle some obsolete cases where the "-" might be omitted,
505 dnl as well as a workaround for breakage of make's archive rules by the GNU
506 dnl binutils "ar" program.
507 AC_DEFUN([CF_AR_FLAGS],[
508 AC_REQUIRE([CF_PROG_AR])
509
510 AC_CACHE_CHECK(for options to update archives, cf_cv_ar_flags,[
511         case "$cf_cv_system_name" in
512         (*-msvc*)
513                 cf_cv_ar_flags=''
514                 cat >mk_static_lib.sh <<-EOF
515                 #!$SHELL
516                 MSVC_BIN="[$]AR"
517                 out="\[$]1"
518                 shift
519                 exec \[$]MSVC_BIN -out:"\[$]out" \[$]@
520                 EOF
521                 chmod +x mk_static_lib.sh
522                 AR=`pwd`/mk_static_lib.sh
523                 ;;
524         (*)
525                 cf_cv_ar_flags=unknown
526                 for cf_ar_flags in -curvU -curv curv -crv crv -cqv cqv -rv rv
527                 do
528
529                         # check if $ARFLAGS already contains this choice
530                         if test "x$ARFLAGS" != "x" ; then
531                                 cf_check_ar_flags=`echo "x$ARFLAGS" | sed -e "s/$cf_ar_flags\$//" -e "s/$cf_ar_flags / /"`
532                                 if test "x$ARFLAGS" != "$cf_check_ar_flags" ; then
533                                         cf_cv_ar_flags=
534                                         break
535                                 fi
536                         fi
537
538                         rm -f "conftest.$ac_cv_objext"
539                         rm -f conftest.a
540
541                         cat >"conftest.$ac_ext" <<EOF
542 #line __oline__ "configure"
543 int     testdata[[3]] = { 123, 456, 789 };
544 EOF
545                         if AC_TRY_EVAL(ac_compile) ; then
546                                 echo "$AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext" >&AC_FD_CC
547                                 $AR $ARFLAGS "$cf_ar_flags" conftest.a "conftest.$ac_cv_objext" 2>&AC_FD_CC 1>/dev/null
548                                 if test -f conftest.a ; then
549                                         cf_cv_ar_flags="$cf_ar_flags"
550                                         break
551                                 fi
552                         else
553                                 CF_VERBOSE(cannot compile test-program)
554                                 break
555                         fi
556                 done
557                 rm -f conftest.a "conftest.$ac_ext" "conftest.$ac_cv_objext"
558                 ;;
559         esac
560 ])
561
562 if test -n "$ARFLAGS" ; then
563         if test -n "$cf_cv_ar_flags" ; then
564                 ARFLAGS="$ARFLAGS $cf_cv_ar_flags"
565         fi
566 else
567         ARFLAGS=$cf_cv_ar_flags
568 fi
569
570 AC_SUBST(ARFLAGS)
571 ])
572 dnl ---------------------------------------------------------------------------
573 dnl CF_AWK_BIG_PRINTF version: 5 updated: 2015/04/17 21:13:04
574 dnl -----------------
575 dnl Check if awk can handle big strings using printf.  Some older versions of
576 dnl awk choke on large strings passed via "%s".
577 dnl
578 dnl $1 = desired string size
579 dnl $2 = variable to set with result
580 AC_DEFUN([CF_AWK_BIG_PRINTF],
581 [
582         case x$AWK in
583         (x)
584                 eval $2=no
585                 ;;
586         (*)
587                 if ( ${AWK} 'BEGIN { xx = "x"; while (length(xx) < $1) { xx = xx "x"; }; printf("%s\n", xx); }' 2>/dev/null \
588                         | $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
589                         eval $2=yes
590                 else
591                         eval $2=no
592                 fi
593                 ;;
594         esac
595 ])dnl
596 dnl ---------------------------------------------------------------------------
597 dnl CF_BOOL_DECL version: 8 updated: 2004/01/30 15:51:18
598 dnl ------------
599 dnl Test if 'bool' is a builtin type in the configured C++ compiler.  Some
600 dnl older compilers (e.g., gcc 2.5.8) don't support 'bool' directly; gcc
601 dnl 2.6.3 does, in anticipation of the ANSI C++ standard.
602 dnl
603 dnl Treat the configuration-variable specially here, since we're directly
604 dnl substituting its value (i.e., 1/0).
605 dnl
606 dnl $1 is the shell variable to store the result in, if not $cv_cv_builtin_bool
607 AC_DEFUN([CF_BOOL_DECL],
608 [
609 AC_MSG_CHECKING(if we should include stdbool.h)
610
611 AC_CACHE_VAL(cf_cv_header_stdbool_h,[
612         AC_TRY_COMPILE([],[bool foo = false],
613                 [cf_cv_header_stdbool_h=0],
614                 [AC_TRY_COMPILE([
615 #ifndef __BEOS__
616 #include <stdbool.h>
617 #endif
618 ],[bool foo = false],
619                         [cf_cv_header_stdbool_h=1],
620                         [cf_cv_header_stdbool_h=0])])])
621
622 if test "$cf_cv_header_stdbool_h" = 1
623 then    AC_MSG_RESULT(yes)
624 else    AC_MSG_RESULT(no)
625 fi
626
627 AC_MSG_CHECKING([for builtin bool type])
628
629 AC_CACHE_VAL(ifelse($1,,cf_cv_builtin_bool,[$1]),[
630         AC_TRY_COMPILE([
631 #include <stdio.h>
632 #include <sys/types.h>
633 ],[bool x = false],
634                 [ifelse($1,,cf_cv_builtin_bool,[$1])=1],
635                 [ifelse($1,,cf_cv_builtin_bool,[$1])=0])
636         ])
637
638 if test "$ifelse($1,,cf_cv_builtin_bool,[$1])" = 1
639 then    AC_MSG_RESULT(yes)
640 else    AC_MSG_RESULT(no)
641 fi
642 ])dnl
643 dnl ---------------------------------------------------------------------------
644 dnl CF_BOOL_SIZE version: 18 updated: 2021/09/04 06:35:04
645 dnl ------------
646 dnl Test for the size of 'bool' in the configured C++ compiler (e.g., a type).
647 dnl Don't bother looking for bool.h, since it has been deprecated.
648 dnl
649 dnl If the current compiler is C rather than C++, we get the bool definition
650 dnl from <stdbool.h>.
651 AC_DEFUN([CF_BOOL_SIZE],
652 [
653 AC_CHECK_SIZEOF(bool,,[
654 #include <stdlib.h>
655 #include <stdio.h>
656
657 #if defined(__cplusplus)
658
659 #ifdef HAVE_GXX_BUILTIN_H
660 #include <g++/builtin.h>
661 #elif HAVE_GPP_BUILTIN_H
662 #include <gpp/builtin.h>
663 #elif HAVE_BUILTIN_H
664 #include <builtin.h>
665 #endif
666
667 #else
668
669 #if $cf_cv_header_stdbool_h
670 #include <stdbool.h>
671 #endif
672
673 #endif
674 ])
675
676 AC_CACHE_CHECK(for type of bool, cf_cv_type_of_bool,[
677         rm -f cf_test.out
678         AC_TRY_RUN([
679 #include <stdlib.h>
680 #include <stdio.h>
681
682 #if defined(__cplusplus)
683
684 #ifdef HAVE_GXX_BUILTIN_H
685 #include <g++/builtin.h>
686 #elif HAVE_GPP_BUILTIN_H
687 #include <gpp/builtin.h>
688 #elif HAVE_BUILTIN_H
689 #include <builtin.h>
690 #endif
691
692 #else
693
694 #if $cf_cv_header_stdbool_h
695 #include <stdbool.h>
696 #endif
697
698 #endif
699
700 int main(void)
701 {
702         FILE *fp = fopen("cf_test.out", "w");
703         if (fp != 0) {
704                 bool x = true;
705                 if ((bool)(-x) >= 0)
706                         fputs("unsigned ", fp);
707                 if (sizeof(x) == sizeof(int))       fputs("int",  fp);
708                 else if (sizeof(x) == sizeof(char)) fputs("char", fp);
709                 else if (sizeof(x) == sizeof(short))fputs("short",fp);
710                 else if (sizeof(x) == sizeof(long)) fputs("long", fp);
711                 fclose(fp);
712         }
713         ${cf_cv_main_return:-return}(0);
714 }
715                 ],
716                 [cf_cv_type_of_bool=`cat cf_test.out`
717                  if test -z "$cf_cv_type_of_bool"; then
718                    cf_cv_type_of_bool=unknown
719                  fi],
720                 [cf_cv_type_of_bool=unknown],
721                 [
722                 case x$ac_cv_sizeof_bool in
723                 (x1) cf_cv_type_of_bool="unsigned char";;
724                 (x2) cf_cv_type_of_bool="unsigned short";;
725                 (x4) cf_cv_type_of_bool="unsigned int";;
726                 (x8) cf_cv_type_of_bool="unsigned long";;
727                 (*)  cf_cv_type_of_bool=unknown;;
728                 esac
729                 ])
730         rm -f cf_test.out
731 ])
732
733 if test "$cf_cv_type_of_bool" = unknown ; then
734         case .$NCURSES_BOOL in
735         (.auto|.) NCURSES_BOOL=unsigned;;
736         esac
737         AC_MSG_WARN(Assuming $NCURSES_BOOL for type of bool)
738         cf_cv_type_of_bool=$NCURSES_BOOL
739 fi
740 ])dnl
741 dnl ---------------------------------------------------------------------------
742 dnl CF_BUILD_CC version: 9 updated: 2021/01/02 09:31:20
743 dnl -----------
744 dnl If we're cross-compiling, allow the user to override the tools and their
745 dnl options.  The configure script is oriented toward identifying the host
746 dnl compiler, etc., but we need a build compiler to generate parts of the
747 dnl source.
748 dnl
749 dnl $1 = default for $CPPFLAGS
750 dnl $2 = default for $LIBS
751 AC_DEFUN([CF_BUILD_CC],[
752 CF_ACVERSION_CHECK(2.52,,
753         [AC_REQUIRE([CF_PROG_EXT])])
754 if test "$cross_compiling" = yes ; then
755
756         # defaults that we might want to override
757         : ${BUILD_CFLAGS:=''}
758         : ${BUILD_CPPFLAGS:='ifelse([$1],,,[$1])'}
759         : ${BUILD_LDFLAGS:=''}
760         : ${BUILD_LIBS:='ifelse([$2],,,[$2])'}
761         : ${BUILD_EXEEXT:='$x'}
762         : ${BUILD_OBJEXT:='o'}
763
764         AC_ARG_WITH(build-cc,
765                 [  --with-build-cc=XXX     the build C compiler ($BUILD_CC)],
766                 [BUILD_CC="$withval"],
767                 [AC_CHECK_PROGS(BUILD_CC, [gcc clang c99 c89 cc cl],none)])
768         AC_MSG_CHECKING(for native build C compiler)
769         AC_MSG_RESULT($BUILD_CC)
770
771         AC_MSG_CHECKING(for native build C preprocessor)
772         AC_ARG_WITH(build-cpp,
773                 [  --with-build-cpp=XXX    the build C preprocessor ($BUILD_CPP)],
774                 [BUILD_CPP="$withval"],
775                 [BUILD_CPP='${BUILD_CC} -E'])
776         AC_MSG_RESULT($BUILD_CPP)
777
778         AC_MSG_CHECKING(for native build C flags)
779         AC_ARG_WITH(build-cflags,
780                 [  --with-build-cflags=XXX the build C compiler-flags ($BUILD_CFLAGS)],
781                 [BUILD_CFLAGS="$withval"])
782         AC_MSG_RESULT($BUILD_CFLAGS)
783
784         AC_MSG_CHECKING(for native build C preprocessor-flags)
785         AC_ARG_WITH(build-cppflags,
786                 [  --with-build-cppflags=XXX the build C preprocessor-flags ($BUILD_CPPFLAGS)],
787                 [BUILD_CPPFLAGS="$withval"])
788         AC_MSG_RESULT($BUILD_CPPFLAGS)
789
790         AC_MSG_CHECKING(for native build linker-flags)
791         AC_ARG_WITH(build-ldflags,
792                 [  --with-build-ldflags=XXX the build linker-flags ($BUILD_LDFLAGS)],
793                 [BUILD_LDFLAGS="$withval"])
794         AC_MSG_RESULT($BUILD_LDFLAGS)
795
796         AC_MSG_CHECKING(for native build linker-libraries)
797         AC_ARG_WITH(build-libs,
798                 [  --with-build-libs=XXX   the build libraries (${BUILD_LIBS})],
799                 [BUILD_LIBS="$withval"])
800         AC_MSG_RESULT($BUILD_LIBS)
801
802         # this assumes we're on Unix.
803         BUILD_EXEEXT=
804         BUILD_OBJEXT=o
805
806         : ${BUILD_CC:='${CC}'}
807
808         if { test "$BUILD_CC" = "$CC" || test "$BUILD_CC" = '${CC}'; } ; then
809                 AC_MSG_ERROR([Cross-build requires two compilers.
810 Use --with-build-cc to specify the native compiler.])
811         fi
812
813 else
814         : ${BUILD_CC:='${CC}'}
815         : ${BUILD_CPP:='${CPP}'}
816         : ${BUILD_CFLAGS:='${CFLAGS}'}
817         : ${BUILD_CPPFLAGS:='${CPPFLAGS}'}
818         : ${BUILD_LDFLAGS:='${LDFLAGS}'}
819         : ${BUILD_LIBS:='${LIBS}'}
820         : ${BUILD_EXEEXT:='$x'}
821         : ${BUILD_OBJEXT:='o'}
822 fi
823
824 AC_SUBST(BUILD_CC)
825 AC_SUBST(BUILD_CPP)
826 AC_SUBST(BUILD_CFLAGS)
827 AC_SUBST(BUILD_CPPFLAGS)
828 AC_SUBST(BUILD_LDFLAGS)
829 AC_SUBST(BUILD_LIBS)
830 AC_SUBST(BUILD_EXEEXT)
831 AC_SUBST(BUILD_OBJEXT)
832 ])dnl
833 dnl ---------------------------------------------------------------------------
834 dnl CF_C11_NORETURN version: 3 updated: 2021/03/28 11:36:23
835 dnl ---------------
836 AC_DEFUN([CF_C11_NORETURN],
837 [
838 AC_MSG_CHECKING(if you want to use C11 _Noreturn feature)
839 CF_ARG_ENABLE(stdnoreturn,
840         [  --enable-stdnoreturn    enable C11 _Noreturn feature for diagnostics],
841         [enable_stdnoreturn=yes],
842         [enable_stdnoreturn=no])
843 AC_MSG_RESULT($enable_stdnoreturn)
844
845 if test $enable_stdnoreturn = yes; then
846 AC_CACHE_CHECK([for C11 _Noreturn feature], cf_cv_c11_noreturn,
847         [AC_TRY_COMPILE([
848 #include <stdio.h>
849 #include <stdlib.h>
850 #include <stdnoreturn.h>
851 static _Noreturn void giveup(void) { exit(0); }
852         ],
853         [if (feof(stdin)) giveup()],
854         cf_cv_c11_noreturn=yes,
855         cf_cv_c11_noreturn=no)
856         ])
857 else
858         cf_cv_c11_noreturn=no,
859 fi
860
861 if test "$cf_cv_c11_noreturn" = yes; then
862         AC_DEFINE(HAVE_STDNORETURN_H, 1,[Define if <stdnoreturn.h> header is available and working])
863         AC_DEFINE_UNQUOTED(STDC_NORETURN,_Noreturn,[Define if C11 _Noreturn keyword is supported])
864         HAVE_STDNORETURN_H=1
865 else
866         HAVE_STDNORETURN_H=0
867 fi
868
869 AC_SUBST(HAVE_STDNORETURN_H)
870 AC_SUBST(STDC_NORETURN)
871 ])dnl
872 dnl ---------------------------------------------------------------------------
873 dnl CF_CC_ENV_FLAGS version: 10 updated: 2020/12/31 18:40:20
874 dnl ---------------
875 dnl Check for user's environment-breakage by stuffing CFLAGS/CPPFLAGS content
876 dnl into CC.  This will not help with broken scripts that wrap the compiler
877 dnl with options, but eliminates a more common category of user confusion.
878 dnl
879 dnl In particular, it addresses the problem of being able to run the C
880 dnl preprocessor in a consistent manner.
881 dnl
882 dnl Caveat: this also disallows blanks in the pathname for the compiler, but
883 dnl the nuisance of having inconsistent settings for compiler and preprocessor
884 dnl outweighs that limitation.
885 AC_DEFUN([CF_CC_ENV_FLAGS],
886 [
887 # This should have been defined by AC_PROG_CC
888 : "${CC:=cc}"
889
890 AC_MSG_CHECKING(\$CFLAGS variable)
891 case "x$CFLAGS" in
892 (*-[[IUD]]*)
893         AC_MSG_RESULT(broken)
894         AC_MSG_WARN(your environment uses the CFLAGS variable to hold CPPFLAGS options)
895         cf_flags="$CFLAGS"
896         CFLAGS=
897         for cf_arg in $cf_flags
898         do
899                 CF_ADD_CFLAGS($cf_arg)
900         done
901         ;;
902 (*)
903         AC_MSG_RESULT(ok)
904         ;;
905 esac
906
907 AC_MSG_CHECKING(\$CC variable)
908 case "$CC" in
909 (*[[\ \ ]]-*)
910         AC_MSG_RESULT(broken)
911         AC_MSG_WARN(your environment uses the CC variable to hold CFLAGS/CPPFLAGS options)
912         # humor him...
913         cf_prog=`echo "$CC" | sed -e 's/        / /g' -e 's/[[ ]]* / /g' -e 's/[[ ]]*[[ ]]-[[^ ]].*//'`
914         cf_flags=`echo "$CC" | ${AWK:-awk} -v prog="$cf_prog" '{ printf("%s", [substr]([$]0,1+length(prog))); }'`
915         CC="$cf_prog"
916         for cf_arg in $cf_flags
917         do
918                 case "x$cf_arg" in
919                 (x-[[IUDfgOW]]*)
920                         CF_ADD_CFLAGS($cf_arg)
921                         ;;
922                 (*)
923                         CC="$CC $cf_arg"
924                         ;;
925                 esac
926         done
927         CF_VERBOSE(resulting CC: '$CC')
928         CF_VERBOSE(resulting CFLAGS: '$CFLAGS')
929         CF_VERBOSE(resulting CPPFLAGS: '$CPPFLAGS')
930         ;;
931 (*)
932         AC_MSG_RESULT(ok)
933         ;;
934 esac
935 ])dnl
936 dnl ---------------------------------------------------------------------------
937 dnl CF_CFG_DEFAULTS version: 16 updated: 2021/01/04 19:33:05
938 dnl ---------------
939 dnl Determine the default configuration into which we'll install ncurses.  This
940 dnl can be overridden by the user's command-line options.  There's two items to
941 dnl look for:
942 dnl     1. the prefix (e.g., /usr)
943 dnl     2. the header files (e.g., /usr/include/ncurses)
944 dnl We'll look for a previous installation of ncurses and use the same defaults.
945 dnl
946 dnl We don't use AC_PREFIX_DEFAULT, because it gets evaluated too soon, and
947 dnl we don't use AC_PREFIX_PROGRAM, because we cannot distinguish ncurses's
948 dnl programs from a vendor's.
949 AC_DEFUN([CF_CFG_DEFAULTS],
950 [AC_REQUIRE([AC_PROG_FGREP])dnl
951
952 AC_MSG_CHECKING(for prefix)
953 if test "x$prefix" = "xNONE" ; then
954         case "$cf_cv_system_name" in
955                 # non-vendor systems don't have a conflict
956         (openbsd*|freebsd*|mirbsd*|linux*|cygwin*|msys*|k*bsd*-gnu|mingw*)
957                 prefix=/usr
958                 ;;
959         (*)     prefix=$ac_default_prefix
960                 ;;
961         esac
962 fi
963 AC_MSG_RESULT($prefix)
964
965 if test "x$prefix" = "xNONE" ; then
966 AC_MSG_CHECKING(for default include-directory)
967 test -n "$verbose" && echo 1>&AC_FD_MSG
968 for cf_symbol in \
969         "$includedir" \
970         "$includedir/ncurses" \
971         "$prefix/include" \
972         "$prefix/include/ncurses" \
973         /usr/local/include \
974         /usr/local/include/ncurses \
975         /usr/include \
976         /usr/include/ncurses
977 do
978         cf_dir=`eval echo "$cf_symbol"`
979         if test -f "$cf_dir/curses.h" ; then
980         if ( ${FGREP-fgrep} NCURSES_VERSION "$cf_dir/curses.h" >/dev/null 2>&1 ) ; then
981                 includedir="$cf_symbol"
982                 test -n "$verbose"  && echo $ECHO_N "   found " 1>&AC_FD_MSG
983                 break
984         fi
985         fi
986         test -n "$verbose"  && echo "   tested $cf_dir" 1>&AC_FD_MSG
987 done
988 AC_MSG_RESULT($includedir)
989 fi
990 ])dnl
991 dnl ---------------------------------------------------------------------------
992 dnl CF_CGETENT version: 6 updated: 2017/01/21 11:06:25
993 dnl ----------
994 dnl Check if the terminal-capability database functions are available.  If not,
995 dnl ncurses has a much-reduced version.
996 AC_DEFUN([CF_CGETENT],[
997 AC_CACHE_CHECK(for terminal-capability database functions,cf_cv_cgetent,[
998 AC_TRY_LINK([
999 #include <stdlib.h>],[
1000         char temp[128];
1001         char *buf = temp;
1002         char *db_array = temp;
1003         cgetent(&buf, &db_array, "vt100");
1004         cgetcap(buf, "tc", '=');
1005         cgetmatch(buf, "tc");
1006         ],
1007         [cf_cv_cgetent=yes],
1008         [cf_cv_cgetent=no])
1009 ])
1010
1011 if test "$cf_cv_cgetent" = yes
1012 then
1013         AC_DEFINE(HAVE_BSD_CGETENT,1,[Define to 1 if we have BSD cgetent])
1014 AC_CACHE_CHECK(if cgetent uses const parameter,cf_cv_cgetent_const,[
1015 AC_TRY_LINK([
1016 #pragma GCC diagnostic error "-Wincompatible-pointer-types-discards-qualifiers"
1017 #include <stdlib.h>],[
1018         char temp[128];
1019         char *buf = temp;
1020 #ifndef _NETBSD_SOURCE                  /* given, since April 2004 in stdlib.h */
1021         const char *db_array = temp;
1022         cgetent(&buf, &db_array, "vt100");
1023 #endif
1024         cgetcap(buf, "tc", '=');
1025         cgetmatch(buf, "tc");
1026         ],
1027         [cf_cv_cgetent_const=yes],
1028         [cf_cv_cgetent_const=no])
1029 ])
1030         if test "$cf_cv_cgetent_const" = yes
1031         then
1032                 AC_DEFINE_UNQUOTED(CGETENT_CONST,const,[Define to const if needed for some BSD cgetent variations])
1033         fi
1034 fi
1035 ])dnl
1036 dnl ---------------------------------------------------------------------------
1037 dnl CF_CHECK_CACHE version: 13 updated: 2020/12/31 10:54:15
1038 dnl --------------
1039 dnl Check if we're accidentally using a cache from a different machine.
1040 dnl Derive the system name, as a check for reusing the autoconf cache.
1041 dnl
1042 dnl If we've packaged config.guess and config.sub, run that (since it does a
1043 dnl better job than uname).  Normally we'll use AC_CANONICAL_HOST, but allow
1044 dnl an extra parameter that we may override, e.g., for AC_CANONICAL_SYSTEM
1045 dnl which is useful in cross-compiles.
1046 dnl
1047 dnl Note: we would use $ac_config_sub, but that is one of the places where
1048 dnl autoconf 2.5x broke compatibility with autoconf 2.13
1049 AC_DEFUN([CF_CHECK_CACHE],
1050 [
1051 if test -f "$srcdir/config.guess" || test -f "$ac_aux_dir/config.guess" ; then
1052         ifelse([$1],,[AC_CANONICAL_HOST],[$1])
1053         system_name="$host_os"
1054 else
1055         system_name="`(uname -s -r) 2>/dev/null`"
1056         if test -z "$system_name" ; then
1057                 system_name="`(hostname) 2>/dev/null`"
1058         fi
1059 fi
1060 test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name",[Define to the system name.])
1061 AC_CACHE_VAL(cf_cv_system_name,[cf_cv_system_name="$system_name"])
1062
1063 test -z "$system_name" && system_name="$cf_cv_system_name"
1064 test -n "$cf_cv_system_name" && AC_MSG_RESULT(Configuring for $cf_cv_system_name)
1065
1066 if test ".$system_name" != ".$cf_cv_system_name" ; then
1067         AC_MSG_RESULT(Cached system name ($system_name) does not agree with actual ($cf_cv_system_name))
1068         AC_MSG_ERROR("Please remove config.cache and try again.")
1069 fi
1070 ])dnl
1071 dnl ---------------------------------------------------------------------------
1072 dnl CF_CHECK_ENVIRON version: 3 updated: 2010/05/26 16:44:57
1073 dnl ----------------
1074 dnl Check for data that is usually declared in <unistd.h>, e.g., the 'environ'
1075 dnl variable.  Define a DECL_xxx symbol if we must declare it ourselves.
1076 dnl
1077 dnl $1 = the name to check
1078 dnl $2 = the assumed type
1079 AC_DEFUN([CF_CHECK_ENVIRON],
1080 [
1081 AC_CACHE_CHECK(if external $1 is declared, cf_cv_dcl_$1,[
1082     AC_TRY_COMPILE([
1083 #ifdef HAVE_STDLIB_H
1084 #include <stdlib.h>
1085 #endif
1086 #include <unistd.h> ],
1087     ifelse([$2],,int,[$2]) x = (ifelse([$2],,int,[$2])) $1,
1088     [cf_cv_dcl_$1=yes],
1089     [cf_cv_dcl_$1=no])
1090 ])
1091
1092 if test "$cf_cv_dcl_$1" = no ; then
1093     CF_UPPER(cf_result,decl_$1)
1094     AC_DEFINE_UNQUOTED($cf_result)
1095 fi
1096
1097 # It's possible (for near-UNIX clones) that the data doesn't exist
1098 CF_CHECK_EXTERN_DATA($1,ifelse([$2],,int,[$2]))
1099 ])dnl
1100 dnl ---------------------------------------------------------------------------
1101 dnl CF_CHECK_ERRNO version: 13 updated: 2020/03/10 18:53:47
1102 dnl --------------
1103 dnl Check for data that is usually declared in <stdio.h> or <errno.h>, e.g.,
1104 dnl the 'errno' variable.  Define a DECL_xxx symbol if we must declare it
1105 dnl ourselves.
1106 dnl
1107 dnl $1 = the name to check
1108 dnl $2 = the assumed type
1109 AC_DEFUN([CF_CHECK_ERRNO],
1110 [
1111 AC_CACHE_CHECK(if external $1 is declared, cf_cv_dcl_$1,[
1112         AC_TRY_COMPILE([
1113 #ifdef HAVE_STDLIB_H
1114 #include <stdlib.h>
1115 #endif
1116 #include <stdio.h>
1117 #include <sys/types.h>
1118 #include <errno.h> ],
1119         ifelse([$2],,int,[$2]) x = (ifelse([$2],,int,[$2])) $1; (void)x,
1120         [cf_cv_dcl_$1=yes],
1121         [cf_cv_dcl_$1=no])
1122 ])
1123
1124 if test "$cf_cv_dcl_$1" = no ; then
1125         CF_UPPER(cf_result,decl_$1)
1126         AC_DEFINE_UNQUOTED($cf_result)
1127 fi
1128
1129 # It's possible (for near-UNIX clones) that the data doesn't exist
1130 CF_CHECK_EXTERN_DATA($1,ifelse([$2],,int,[$2]))
1131 ])dnl
1132 dnl ---------------------------------------------------------------------------
1133 dnl CF_CHECK_EXTERN_DATA version: 5 updated: 2021/09/04 06:35:04
1134 dnl --------------------
1135 dnl Check for existence of external data in the current set of libraries.  If
1136 dnl we can modify it, it is real enough.
1137 dnl $1 = the name to check
1138 dnl $2 = its type
1139 AC_DEFUN([CF_CHECK_EXTERN_DATA],
1140 [
1141 AC_CACHE_CHECK(if external $1 exists, cf_cv_have_$1,[
1142         AC_TRY_LINK([
1143 #undef $1
1144 extern $2 $1;
1145 ],
1146         [$1 = 2],
1147         [cf_cv_have_$1=yes],
1148         [cf_cv_have_$1=no])
1149 ])
1150
1151 if test "$cf_cv_have_$1" = yes ; then
1152         CF_UPPER(cf_result,have_$1)
1153         AC_DEFINE_UNQUOTED($cf_result)
1154 fi
1155
1156 ])dnl
1157 dnl ---------------------------------------------------------------------------
1158 dnl CF_CHECK_FVISIBILITY version: 2 updated: 2020/04/04 16:16:13
1159 dnl --------------------
1160 dnl Check whether the compiler understands -fvisibility=hidden
1161 dnl
1162 dnl $1 = compiler
1163 dnl $2 = compiler-flags variable name
1164 dnl $3 = cache variable to set
1165 AC_DEFUN([CF_CHECK_FVISIBILITY],[
1166 AC_CACHE_CHECK(if $1 -fvisibility=hidden option works,$3,[
1167     cf_save_cflags="[$]$2"
1168     $2="[$]$2 -fvisibility=hidden"
1169     AC_TRY_LINK([
1170 __attribute__ ((visibility("default"))) int somefunc() {return 42;}
1171         ],[
1172         if (somefunc()) return 1;
1173 ],
1174     [$3=yes],
1175     [$3=no])
1176     $2=$cf_save_cflags
1177 ])
1178 ])dnl
1179 dnl ---------------------------------------------------------------------------
1180 dnl CF_CHECK_GETENV version: 2 updated: 2021/01/02 17:09:14
1181 dnl ---------------
1182 dnl Check if repeated getenv calls return the same pointer, e.g., it does not
1183 dnl discard the previous pointer when returning a new one.
1184 AC_DEFUN([CF_CHECK_GETENV],
1185 [
1186 AC_REQUIRE([CF_CHECK_ENVIRON])
1187 AC_CHECK_FUNC( getenv, ,, AC_MSG_ERROR(getenv not found) )
1188 AC_CHECK_FUNCS( putenv setenv strdup )
1189 AC_CACHE_CHECK(if getenv returns consistent values,cf_cv_consistent_getenv,[
1190 AC_TRY_RUN([
1191 #include <stdlib.h>
1192 #include <unistd.h>
1193 #include <stdio.h>
1194 #include <string.h>
1195 #include <sys/types.h>
1196
1197 #if defined(HAVE_ENVIRON) && defined(DECL_ENVIRON) && !defined(environ)
1198 extern char **environ;  /* POSIX, but some systems are not... */
1199 #endif
1200
1201 #if defined(HAVE_STRDUP)
1202 #define str_alloc(s) strdup(s)
1203 #else
1204 #define str_alloc(s) strcpy(malloc(strlen(s) + 1, s))
1205 #endif
1206
1207 static void set_value(const char *name, const char *value)
1208 {
1209 #if defined(HAVE_SETENV)
1210         setenv(name, value, 1);
1211 #elif defined(HAVE_PUTENV)
1212         char buffer[1024];
1213         sprintf(buffer, "%s=%s", name, value);
1214         putenv(str_alloc(buffer));
1215 #else
1216 #error neither putenv/setenv found
1217 #endif
1218 }
1219 int main(void)
1220 {
1221         int pass;
1222         size_t numenv, limit, j;
1223         char **mynames;
1224         char **myvalues;
1225         char **mypointer;
1226         char *equals;
1227         for (numenv = 0; environ[numenv]; ++numenv) ;
1228         limit = numenv + 10;
1229         mynames = (char **) calloc(limit + 1, sizeof(char *));
1230         myvalues = (char **) calloc(limit + 1, sizeof(char *));
1231         mypointer = (char **) calloc(limit + 1, sizeof(char *));
1232 #if defined(HAVE_ENVIRON)
1233         for (j = 0; environ[j]; ++j) {
1234                 mynames[j] = str_alloc(environ[j]);
1235                 equals = strchr(mynames[j], '=');
1236                 if (equals != 0) {
1237                         *equals++ = '\\0';
1238                         myvalues[j] = str_alloc(equals);
1239                 } else {
1240                         myvalues[j] = str_alloc("");
1241                 }
1242         }
1243 #endif
1244         for (j = numenv; j < limit; ++j) {
1245                 char name[80];
1246                 char value[80];
1247                 size_t found;
1248                 size_t k = 0;
1249                 do {
1250                         size_t jk;
1251                         found = 0;
1252                         sprintf(name, "TERM%lu", (unsigned long) k);
1253                         for (jk = 0; jk < j; ++jk) {
1254                                 if (!strcmp(name, mynames[jk])) {
1255                                         found = 1;
1256                                         ++k;
1257                                         break;
1258                                 }
1259                         }
1260                 } while (found);
1261                 sprintf(value, "%lu:%p", (unsigned long) k, &mynames[j]);
1262                 set_value(name, value);
1263                 mynames[j] = str_alloc(name);
1264                 myvalues[j] = str_alloc(value);
1265         }
1266         for (pass = 0; pass < 3; ++pass) {
1267                 for (j = 0; j < limit; ++j) {
1268                         char *value = getenv(mynames[j]);
1269                         if (pass) {
1270                                 if (value == 0) {
1271                                         fprintf(stderr, "getenv returned null for %s\\n", mynames[j]);
1272                                         ${cf_cv_main_return:-return}(1);
1273                                 } else if (value != mypointer[j]) {
1274                                         fprintf(stderr, "getenv returned different pointer for %s\\n", mynames[j]);
1275                                         ${cf_cv_main_return:-return}(1);
1276                                 } else if (strcmp(value, myvalues[j])) {
1277                                         fprintf(stderr, "getenv returned different value for %s\\n", mynames[j]);
1278                                         ${cf_cv_main_return:-return}(1);
1279                                 }
1280                         } else {
1281                                 size_t k;
1282                                 mypointer[j] = value;
1283                                 for (k = 0; k < j; ++k) {
1284                                         if (mypointer[j] == mypointer[k]) {
1285                                                 fprintf(stderr, "getenv returned same pointer for %s and %s\\n", mynames[j], mynames[k]);
1286                                                 ${cf_cv_main_return:-return}(1);
1287                                         }
1288                                 }
1289                         }
1290                 }
1291         }
1292         ${cf_cv_main_return:-return}(0);
1293 }
1294 ],
1295 [cf_cv_consistent_getenv=yes],
1296 [cf_cv_consistent_getenv=no],
1297 [cf_cv_consistent_getenv=unknown])
1298 ])
1299
1300 if test "x$cf_cv_consistent_getenv" = xno
1301 then
1302         AC_DEFINE(HAVE_CONSISTENT_GETENV,1,[Define to 1 if getenv repeatably returns the same value for a given name])
1303 fi
1304 ])dnl
1305 dnl ---------------------------------------------------------------------------
1306 dnl CF_CHECK_GNAT_VERSION version: 4 updated: 2021/01/01 13:31:04
1307 dnl ---------------------
1308 AC_DEFUN([CF_CHECK_GNAT_VERSION],
1309 [
1310 AC_REQUIRE([CF_GNAT_VERSION])
1311 case "$cf_cv_gnat_version" in
1312 (3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*|[[1-9]][[0-9]].[[0-9]]*|20[[0-9]][[0-9]])
1313         cf_cv_prog_gnat_correct=yes
1314         ;;
1315 (*)
1316         AC_MSG_WARN(Unsupported GNAT version $cf_cv_gnat_version. We require 3.11 or better. Disabling Ada95 binding.)
1317         cf_cv_prog_gnat_correct=no
1318         ;;
1319 esac
1320 ])
1321 dnl ---------------------------------------------------------------------------
1322 dnl CF_CHECK_GPM_WGETCH version: 6 updated: 2021/01/04 18:48:01
1323 dnl -------------------
1324 dnl Check if GPM is already linked with curses.  If so - and if the linkage
1325 dnl is not "weak" - warn about this because it can create problems linking
1326 dnl applications with ncurses.
1327 AC_DEFUN([CF_CHECK_GPM_WGETCH],[
1328 AC_REQUIRE([AC_PROG_EGREP])dnl
1329
1330 AC_CHECK_LIB(gpm,Gpm_Wgetch,[
1331
1332 AC_CACHE_CHECK(if GPM is weakly bound to curses library, cf_cv_check_gpm_wgetch,[
1333 cf_cv_check_gpm_wgetch=unknown
1334 if test "$cross_compiling" != yes ; then
1335
1336 cat >conftest.$ac_ext <<CF_EOF
1337 #include <gpm.h>
1338 int main(void)
1339 {
1340         Gpm_Wgetch();
1341         ${cf_cv_main_return:-return}(0);
1342 }
1343 CF_EOF
1344
1345         cf_save_LIBS="$LIBS"
1346         # This only works if we can look at the symbol table.  If a shared
1347         # library is stripped for install, we cannot use that.  So we're forced
1348         # to rely on the static library, noting that some packagers may not
1349         # include it.
1350         LIBS="-static -lgpm -dynamic $LIBS"
1351         if AC_TRY_EVAL(ac_compile) ; then
1352                 if AC_TRY_EVAL(ac_link) ; then
1353                         cf_cv_check_gpm_wgetch="`nm \"conftest$ac_exeext\" | ${EGREP-egrep} '\<wgetch\>' | ${EGREP-egrep} '\<[[vVwW]]\>'`"
1354                         test -n "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=yes
1355                         test -z "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=no
1356                 fi
1357         fi
1358         rm -rf ./conftest*
1359         LIBS="$cf_save_LIBS"
1360 fi
1361 ])
1362
1363 if test "$cf_cv_check_gpm_wgetch" != yes ; then
1364         AC_MSG_WARN(GPM library is already linked with curses - read the FAQ)
1365 fi
1366 ])])dnl
1367 dnl ---------------------------------------------------------------------------
1368 dnl CF_CHECK_LIBSSP version: 1 updated: 2021/10/30 10:40:19
1369 dnl ---------------
1370 dnl Check if libssp is needed, e.g., to work around misconfigured libraries
1371 dnl used in cross-compiling to MinGW.
1372 AC_DEFUN([CF_CHECK_LIBSSP],[
1373 AC_CACHE_CHECK(if ssp library is needed,cf_cv_need_libssp,[
1374 AC_TRY_LINK([
1375 #include <sys/types.h>
1376 #include <dirent.h>
1377 ],[
1378        DIR *dp = opendir(".");
1379 ],cf_cv_need_libssp=no,[
1380         cf_save_LIBS="$LIBS"
1381         LIBS="$LIBS -lssp"
1382         AC_TRY_LINK([
1383 #include <sys/types.h>
1384 #include <dirent.h>
1385         ],[
1386                    DIR *dp = opendir(".");
1387         ],cf_cv_need_libssp=yes,
1388           cf_cv_need_libssp=maybe)
1389         LIBS="$cf_save_LIBS"
1390 ])dnl
1391 ])
1392
1393 if test "x$cf_cv_need_libssp" = xyes
1394 then
1395         CF_ADD_LIB(ssp)
1396 fi
1397 ])dnl
1398 dnl ---------------------------------------------------------------------------
1399 dnl CF_CHECK_LIBTOOL_VERSION version: 2 updated: 2021/05/01 16:24:34
1400 dnl ------------------------
1401 dnl Show the version of libtool
1402 dnl
1403 dnl Save the version in a cache variable - this is not entirely a good thing,
1404 dnl but the version string from libtool is very ugly, and for bug reports it
1405 dnl might be useful to have the original string.
1406 dnl
1407 dnl There is an imitation in OpenBSD, which has no apparent use other than to
1408 dnl deny that it is GNU libtool.  Just ignore it.
1409 AC_DEFUN([CF_CHECK_LIBTOOL_VERSION],[
1410 if test -n "$LIBTOOL" && test "$LIBTOOL" != none
1411 then
1412         AC_MSG_CHECKING(version of $LIBTOOL)
1413         CF_LIBTOOL_VERSION
1414         AC_MSG_RESULT($cf_cv_libtool_version)
1415         if test -n "$cf_cv_libtool_version"
1416         then
1417                 cf_check_libtool_version=`$LIBTOOL --version 2>&1 | sed -e '/^$/d' -e 's,[[()]],...,g' -e 's,[[ ]],-,g' -e '2,$d'`
1418                 case "x$cf_check_libtool_version" in
1419                 (*...GNU-libtool...*)
1420                         ;;
1421                 (*)
1422                         AC_MSG_ERROR(This is not GNU libtool)
1423                         ;;
1424                 esac
1425         else
1426                 AC_MSG_ERROR(No version found for $LIBTOOL)
1427         fi
1428 else
1429         AC_MSG_ERROR(GNU libtool has not been found)
1430 fi
1431 ])dnl
1432 dnl ---------------------------------------------------------------------------
1433 dnl CF_CHECK_WCHAR_H version: 3 updated: 2021/01/01 13:31:04
1434 dnl ----------------
1435 dnl Check if wchar.h can be used, i.e., without defining _XOPEN_SOURCE_EXTENDED
1436 AC_DEFUN([CF_CHECK_WCHAR_H],[
1437 AC_CHECK_HEADERS( \
1438 wchar.h \
1439 wctype.h \
1440 )
1441 AC_CACHE_CHECK(if wchar.h can be used as is,cf_cv_wchar_h_okay,[
1442 AC_TRY_COMPILE(
1443 [
1444 #include <stdlib.h>
1445 #ifdef HAVE_WCHAR_H
1446 #include <wchar.h>
1447 #endif
1448 #ifdef HAVE_WCTYPE_H
1449 #include <wctype.h>
1450 #endif
1451 ],[
1452         wint_t foo = 0;
1453         int bar = iswpunct(foo)],
1454         [cf_cv_wchar_h_okay=yes],
1455         [cf_cv_wchar_h_okay=no])])
1456
1457 if test "$cf_cv_wchar_h_okay" = no
1458 then
1459         CF_PREDEFINE(_XOPEN_SOURCE_EXTENDED)
1460 fi
1461 ])dnl
1462 dnl ---------------------------------------------------------------------------
1463 dnl CF_CHECK_WCWIDTH_GRAPHICS version: 2 updated: 2021/01/02 17:09:14
1464 dnl -------------------------
1465 dnl Most "modern" terminal emulators are based to some degree on VT100, and
1466 dnl should support line-drawing.  Even with Unicode.  There is a problem.
1467 dnl
1468 dnl While most of the VT100 graphics characters were incorporated into Unicode,
1469 dnl all of those were combined into a page of useful graphics characters.
1470 dnl
1471 dnl So far, so good.
1472 dnl
1473 dnl However, while they are useful, there are other considerations.  CJK
1474 dnl is (because of poor device resolution) often rendered as double-width
1475 dnl characters.  So... for these generally-useful characters, what should
1476 dnl be the width (to make them consistent with adjacent characters)?
1477 dnl
1478 dnl The obvious choice would have been to make this locale-dependent, and use
1479 dnl wcwidth() to tell applications what the actual width is.  That was too
1480 dnl obvious.  Instead, we have a slew of "ambiguous-width" characters.
1481 dnl See for example
1482 dnl             http://www.unicode.org/reports/tr11/tr11-29.html
1483 dnl             http://www.cl.cam.ac.uk/~mgk25/ucs/scw-proposal.html
1484 dnl
1485 dnl The EastAsianWidth-6.2.0.txt file from the Unicode organization lists
1486 dnl more than 22,000 characters, with 1281 of those as ambiguous-width.  For
1487 dnl instance, it lists half (44/96) of the Latin-1 characters as
1488 dnl ambiguous-width.  Also, all of the box-characters at 0x2500 are ambiguous.
1489 dnl
1490 dnl What this means for the implementor is that on some systems wcwidth() can
1491 dnl give bad advice.  On Solaris, some of the ambiguous widths are returned as
1492 dnl 1 (the Latin-1 characters), while others are returned as 2 (line-drawing
1493 dnl characters).  These do not necessarily match the behavior of the terminal
1494 dnl emulator.  xterm, for instance, does an optional startup check to find if
1495 dnl this problem (or similar) exists with the system's locale tables, rejecting
1496 dnl them if they are too unreliable.
1497 AC_DEFUN([CF_CHECK_WCWIDTH_GRAPHICS],[
1498 AC_CACHE_CHECK(if wcwidth agrees graphics are single-width, cf_cv_wcwidth_graphics,[
1499 cat >conftest.in <<CF_EOF
1500 -       VT100 symbols
1501 0x250c  upper left corner
1502 0x2514  lower left corner
1503 0x2510  upper right corner
1504 0x2518  lower right corner
1505 0x251c  tee pointing left
1506 0x2524  tee pointing right
1507 0x2534  tee pointing up
1508 0x252c  tee pointing down
1509 0x2500  horizontal line
1510 0x2502  vertical line
1511 0x253c  large plus or crossover
1512 0x23ba  scan line 1
1513 0x23bd  scan line 9
1514 0x25c6  diamond
1515 0x2592  checker board (stipple)
1516 0x00b0  degree symbol
1517 0x00b1  plus/minus
1518 0x00b7  bullet
1519 -       Teletype 5410v1 symbols
1520 0x2190  arrow pointing left
1521 0x2192  arrow pointing right
1522 0x2193  arrow pointing down
1523 0x2191  arrow pointing up
1524 0x2592  board of squares
1525 0x2603  lantern symbol
1526 0x25ae  solid square block
1527 -       these defaults were invented for ncurses
1528 0x23bb  scan line 3
1529 0x23bc  scan line 7
1530 0x2264  less-than-or-equal-to
1531 0x2265  greater-than-or-equal-to
1532 0x03c0  greek pi
1533 0x2260  not-equal
1534 0x00a3  pound-sterling symbol
1535 -       thick-line-drawing
1536 0x250f  upper left corner
1537 0x2517  lower left corner
1538 0x2513  upper right corner
1539 0x251b  lower right corner
1540 0x2523  tee pointing left
1541 0x252b  tee pointing right
1542 0x253b  tee pointing up
1543 0x2533  tee pointing down
1544 0x2501  horizontal line
1545 0x2503  vertical line
1546 0x254b  large plus or crossover
1547 -       double-line-drawing
1548 0x2554  upper left corner
1549 0x255a  lower left corner
1550 0x2557  upper right corner
1551 0x255d  lower right corner
1552 0x2563  tee pointing left
1553 0x2560  tee pointing right
1554 0x2569  tee pointing up
1555 0x2566  tee pointing down
1556 0x2550  horizontal line
1557 0x2551  vertical line
1558 0x256c  large plus or crossover
1559 CF_EOF
1560 AC_TRY_RUN([
1561 #include <locale.h>
1562 #include <stdio.h>
1563 #include <wchar.h>
1564
1565 #define MY_LEN 80
1566
1567 int
1568 main(void)
1569 {
1570         FILE *fp;
1571         int value;
1572         char buffer[MY_LEN + 1];
1573         char notes[MY_LEN + 1];
1574         int totals = 0;
1575         int passed = 0;
1576
1577         if (setlocale(LC_ALL, "en_US.UTF8") ||
1578                 setlocale(LC_ALL, "en_US.UTF-8") ||
1579                 setlocale(LC_ALL, "en_US.utf8") ||
1580                 setlocale(LC_ALL, "en_US.utf-8")) {
1581                 if ((fp = fopen("conftest.in", "r")) != 0) {
1582                         while (fgets(buffer, MY_LEN, fp) != 0) {
1583                                 if (*buffer == '-') {
1584                                         fprintf(stderr, "\\t%s", buffer);
1585                                 } else if (sscanf(buffer, "%x %s", &value, notes) == 2) {
1586                                         ++totals;
1587                                         if (wcwidth(value) == 1)
1588                                                 ++passed;
1589                                         fprintf(stderr, "%d\\t%s", wcwidth(value), buffer);
1590                                 } else {
1591                                         fprintf(stderr, "?\\t%s", buffer);
1592                                 }
1593                         }
1594                 }
1595         }
1596         fprintf(stderr, "%d/%d passed wcwidth/graphics check\\n", passed, totals);
1597         return (totals == passed) ? 0 : 1;
1598 }
1599 ],
1600 [cf_cv_wcwidth_graphics=yes],
1601 [cf_cv_wcwidth_graphics=no],
1602 [cf_cv_wcwidth_graphics=unknown])
1603 ])
1604 ])dnl
1605 dnl ---------------------------------------------------------------------------
1606 dnl CF_CLANG_COMPILER version: 8 updated: 2021/01/01 13:31:04
1607 dnl -----------------
1608 dnl Check if the given compiler is really clang.  clang's C driver defines
1609 dnl __GNUC__ (fooling the configure script into setting $GCC to yes) but does
1610 dnl not ignore some gcc options.
1611 dnl
1612 dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
1613 dnl ensure that it is not mistaken for gcc/g++.  It is normally invoked from
1614 dnl the wrappers for gcc and g++ warnings.
1615 dnl
1616 dnl $1 = GCC (default) or GXX
1617 dnl $2 = CLANG_COMPILER (default)
1618 dnl $3 = CFLAGS (default) or CXXFLAGS
1619 AC_DEFUN([CF_CLANG_COMPILER],[
1620 ifelse([$2],,CLANG_COMPILER,[$2])=no
1621
1622 if test "$ifelse([$1],,[$1],GCC)" = yes ; then
1623         AC_MSG_CHECKING(if this is really Clang ifelse([$1],GXX,C++,C) compiler)
1624         cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
1625         AC_TRY_COMPILE([],[
1626 #ifdef __clang__
1627 #else
1628 make an error
1629 #endif
1630 ],[ifelse([$2],,CLANG_COMPILER,[$2])=yes
1631 ],[])
1632         ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
1633         AC_MSG_RESULT($ifelse([$2],,CLANG_COMPILER,[$2]))
1634 fi
1635
1636 CLANG_VERSION=none
1637
1638 if test "x$ifelse([$2],,CLANG_COMPILER,[$2])" = "xyes" ; then
1639         case "$CC" in
1640         (c[[1-9]][[0-9]]|*/c[[1-9]][[0-9]])
1641                 AC_MSG_WARN(replacing broken compiler alias $CC)
1642                 CFLAGS="$CFLAGS -std=`echo "$CC" | sed -e 's%.*/%%'`"
1643                 CC=clang
1644                 ;;
1645         esac
1646
1647         AC_MSG_CHECKING(version of $CC)
1648         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.]].*//'`"
1649         test -z "$CLANG_VERSION" && CLANG_VERSION=unknown
1650         AC_MSG_RESULT($CLANG_VERSION)
1651
1652         for cf_clang_opt in \
1653                 -Qunused-arguments \
1654                 -Wno-error=implicit-function-declaration
1655         do
1656                 AC_MSG_CHECKING(if option $cf_clang_opt works)
1657                 cf_save_CFLAGS="$CFLAGS"
1658                 CFLAGS="$CFLAGS $cf_clang_opt"
1659                 AC_TRY_LINK([
1660                         #include <stdio.h>],[
1661                         printf("hello!\\n");],[
1662                         cf_clang_optok=yes],[
1663                         cf_clang_optok=no])
1664                 AC_MSG_RESULT($cf_clang_optok)
1665                 CFLAGS="$cf_save_CFLAGS"
1666                 if test "$cf_clang_optok" = yes; then
1667                         CF_VERBOSE(adding option $cf_clang_opt)
1668                         CF_APPEND_TEXT(CFLAGS,$cf_clang_opt)
1669                 fi
1670         done
1671 fi
1672 ])
1673 dnl ---------------------------------------------------------------------------
1674 dnl CF_CONST_X_STRING version: 7 updated: 2021/06/07 17:39:17
1675 dnl -----------------
1676 dnl The X11R4-X11R6 Xt specification uses an ambiguous String type for most
1677 dnl character-strings.
1678 dnl
1679 dnl It is ambiguous because the specification accommodated the pre-ANSI
1680 dnl compilers bundled by more than one vendor in lieu of providing a standard C
1681 dnl compiler other than by costly add-ons.  Because of this, the specification
1682 dnl did not take into account the use of const for telling the compiler that
1683 dnl string literals would be in readonly memory.
1684 dnl
1685 dnl As a workaround, one could (starting with X11R5) define XTSTRINGDEFINES, to
1686 dnl let the compiler decide how to represent Xt's strings which were #define'd.
1687 dnl That does not solve the problem of using the block of Xt's strings which
1688 dnl are compiled into the library (and is less efficient than one might want).
1689 dnl
1690 dnl Xt specification 7 introduces the _CONST_X_STRING symbol which is used both
1691 dnl when compiling the library and compiling using the library, to tell the
1692 dnl compiler that String is const.
1693 AC_DEFUN([CF_CONST_X_STRING],
1694 [
1695 AC_REQUIRE([AC_PATH_XTRA])
1696
1697 CF_SAVE_XTRA_FLAGS([CF_CONST_X_STRING])
1698
1699 AC_TRY_COMPILE(
1700 [
1701 #include <stdlib.h>
1702 #include <X11/Intrinsic.h>
1703 ],
1704 [String foo = malloc(1); free((void*)foo)],[
1705
1706 AC_CACHE_CHECK(for X11/Xt const-feature,cf_cv_const_x_string,[
1707         AC_TRY_COMPILE(
1708                 [
1709 #define _CONST_X_STRING /* X11R7.8 (perhaps) */
1710 #undef  XTSTRINGDEFINES /* X11R5 and later */
1711 #include <stdlib.h>
1712 #include <X11/Intrinsic.h>
1713                 ],[String foo = malloc(1); *foo = 0],[
1714                         cf_cv_const_x_string=no
1715                 ],[
1716                         cf_cv_const_x_string=yes
1717                 ])
1718 ])
1719
1720 CF_RESTORE_XTRA_FLAGS([CF_CONST_X_STRING])
1721
1722 case "$cf_cv_const_x_string" in
1723 (no)
1724         CF_APPEND_TEXT(CPPFLAGS,-DXTSTRINGDEFINES)
1725         ;;
1726 (*)
1727         CF_APPEND_TEXT(CPPFLAGS,-D_CONST_X_STRING)
1728         ;;
1729 esac
1730
1731 ])
1732 ])dnl
1733 dnl ---------------------------------------------------------------------------
1734 dnl CF_CPP_OVERRIDE version: 1 updated: 2022/08/20 16:07:10
1735 dnl ---------------
1736 dnl Check if the C++ compiler accepts the override keyword.  This is a C++-11
1737 dnl feature.
1738 AC_DEFUN([CF_CPP_OVERRIDE],
1739 [
1740 if test -n "$CXX"; then
1741 AC_CACHE_CHECK(if $CXX accepts override keyword,cf_cv_cpp_override,[
1742         AC_LANG_SAVE
1743         AC_LANG_CPLUSPLUS
1744         AC_TRY_RUN([
1745
1746 class base
1747 {
1748 public:
1749         virtual int foo(float x) = 0; 
1750 };
1751
1752
1753 class derived: public base
1754 {
1755 public:
1756         int foo(float x) override { return x != 0.0 ? 1 : 0; }
1757 };
1758
1759 int main(void) { }
1760 ],
1761         [cf_cv_cpp_override=yes],
1762         [cf_cv_cpp_override=no],
1763         [cf_cv_cpp_override=unknown])
1764         AC_LANG_RESTORE
1765 ])
1766 fi
1767 test "$cf_cv_cpp_override" = yes && AC_DEFINE(CPP_HAS_OVERRIDE,1,[Define to 1 if C++ has override keyword])
1768 ])dnl
1769 dnl ---------------------------------------------------------------------------
1770 dnl CF_CPP_PARAM_INIT version: 7 updated: 2017/01/21 11:06:25
1771 dnl -----------------
1772 dnl Check if the C++ compiler accepts duplicate parameter initialization.  This
1773 dnl is a late feature for the standard and is not in some recent compilers
1774 dnl (1999/9/11).
1775 AC_DEFUN([CF_CPP_PARAM_INIT],
1776 [
1777 if test -n "$CXX"; then
1778 AC_CACHE_CHECK(if $CXX accepts parameter initialization,cf_cv_cpp_param_init,[
1779         AC_LANG_SAVE
1780         AC_LANG_CPLUSPLUS
1781         AC_TRY_RUN([
1782 class TEST {
1783 private:
1784         int value;
1785 public:
1786         TEST(int x = 1);
1787         ~TEST();
1788 };
1789
1790 TEST::TEST(int x = 1)   // some compilers do not like second initializer
1791 {
1792         value = x;
1793 }
1794 int main(void) { }
1795 ],
1796         [cf_cv_cpp_param_init=yes],
1797         [cf_cv_cpp_param_init=no],
1798         [cf_cv_cpp_param_init=unknown])
1799         AC_LANG_RESTORE
1800 ])
1801 fi
1802 test "$cf_cv_cpp_param_init" = yes && AC_DEFINE(CPP_HAS_PARAM_INIT,1,[Define to 1 if C++ has parameter initialization])
1803 ])dnl
1804 dnl ---------------------------------------------------------------------------
1805 dnl CF_CPP_STATIC_CAST version: 3 updated: 2013/04/13 18:03:21
1806 dnl ------------------
1807 dnl Check if the C++ compiler accepts static_cast in generics.  This appears to
1808 dnl not be supported in g++ before 3.0
1809 AC_DEFUN([CF_CPP_STATIC_CAST],
1810 [
1811 if test -n "$CXX"; then
1812
1813 AC_CACHE_CHECK(if $CXX accepts static_cast,cf_cv_cpp_static_cast,[
1814         AC_LANG_SAVE
1815         AC_LANG_CPLUSPLUS
1816
1817         AC_TRY_COMPILE([
1818 class NCursesPanel
1819 {
1820 public:
1821   NCursesPanel(int nlines,
1822                int ncols,
1823                int begin_y = 0,
1824                int begin_x = 0)
1825   {
1826   }
1827   NCursesPanel();
1828   ~NCursesPanel();
1829 };
1830
1831 template<class T> class NCursesUserPanel : public NCursesPanel
1832 {
1833 public:
1834   NCursesUserPanel (int nlines,
1835                     int ncols,
1836                     int begin_y = 0,
1837                     int begin_x = 0,
1838                     const T* p_UserData = static_cast<T*>(0))
1839     : NCursesPanel (nlines, ncols, begin_y, begin_x)
1840   {
1841   };
1842   NCursesUserPanel(const T* p_UserData = static_cast<T*>(0)) : NCursesPanel()
1843   {
1844   };
1845
1846   virtual ~NCursesUserPanel() {};
1847 };
1848 ],[
1849         const char* p_UserData = static_cast<char*>(0)],
1850         [cf_cv_cpp_static_cast=yes],
1851         [cf_cv_cpp_static_cast=no])
1852
1853         AC_LANG_RESTORE
1854 ])
1855
1856 fi
1857
1858 test "$cf_cv_cpp_static_cast" = yes && AC_DEFINE(CPP_HAS_STATIC_CAST,1,[Define to 1 if C++ has static_cast])
1859 ])dnl
1860 dnl ---------------------------------------------------------------------------
1861 dnl CF_CXX_AR_FLAGS version: 3 updated: 2021/01/01 13:31:04
1862 dnl ---------------
1863 dnl Setup special archiver flags for given compilers.
1864 AC_DEFUN([CF_CXX_AR_FLAGS],[
1865         CXX_AR='$(AR)'
1866         CXX_ARFLAGS='$(ARFLAGS)'
1867         case "$cf_cv_system_name" in
1868         (irix*)
1869             if test "$GXX" != yes ; then
1870                 CXX_AR='$(CXX)'
1871                 CXX_ARFLAGS='-ar -o'
1872             fi
1873             ;;
1874         (sco3.2v5*)
1875             CXXLDFLAGS="-u main"
1876             ;;
1877         (solaris2*)
1878             if test "$GXX" != yes ; then
1879                 CXX_AR='$(CXX)'
1880                 CXX_ARFLAGS='-xar -o'
1881             fi
1882             ;;
1883         esac
1884         AC_SUBST(CXXLDFLAGS)
1885         AC_SUBST(CXX_AR)
1886         AC_SUBST(CXX_ARFLAGS)
1887 ])dnl
1888 dnl ---------------------------------------------------------------------------
1889 dnl CF_CXX_IOSTREAM_NAMESPACE version: 2 updated: 2012/10/06 17:56:13
1890 dnl -------------------------
1891 dnl For c++, check if iostream uses "std::" namespace.
1892 AC_DEFUN([CF_CXX_IOSTREAM_NAMESPACE],[
1893 AC_CHECK_HEADERS(iostream)
1894 if test x"$ac_cv_header_iostream" = xyes ; then
1895         AC_MSG_CHECKING(if iostream uses std-namespace)
1896         AC_TRY_COMPILE([
1897 #include <iostream>
1898 using std::endl;
1899 using std::cerr;],[
1900 cerr << "testing" << endl;
1901 ],[cf_iostream_namespace=yes],[cf_iostream_namespace=no])
1902         AC_MSG_RESULT($cf_iostream_namespace)
1903         if test "$cf_iostream_namespace" = yes ; then
1904                 AC_DEFINE(IOSTREAM_NAMESPACE,1,[Define to 1 if C++ has namespace iostream])
1905         fi
1906 fi
1907 ])dnl
1908 dnl ---------------------------------------------------------------------------
1909 dnl CF_C_INLINE version: 6 updated: 2019/09/07 13:38:36
1910 dnl -----------
1911 dnl Check if the C compiler supports "inline".
1912 dnl $1 is the name of a shell variable to set if inline is supported
1913 dnl $2 is the threshold for gcc 4.x's option controlling maximum inline size
1914 AC_DEFUN([CF_C_INLINE],[
1915 AC_REQUIRE([CF_GCC_VERSION])
1916 AC_C_INLINE
1917 $1=
1918 if test "$ac_cv_c_inline" != no ; then
1919         $1=inline
1920         if test "$INTEL_COMPILER" = yes
1921         then
1922                 :
1923         elif test "$CLANG_COMPILER" = yes
1924         then
1925                 :
1926         elif test "$GCC" = yes
1927         then
1928                 AC_CACHE_CHECK(if $CC supports options to tune inlining,cf_cv_gcc_inline,[
1929                 cf_save_CFLAGS=$CFLAGS
1930                 CFLAGS="$CFLAGS --param max-inline-insns-single=$2"
1931                 AC_TRY_COMPILE([inline int foo(void) { return 1; }],
1932                 [${cf_cv_main_return:-return} foo()],
1933                 [cf_cv_gcc_inline=yes],
1934                 [cf_cv_gcc_inline=no])
1935                 CFLAGS=$cf_save_CFLAGS
1936                 ])
1937                 if test "$cf_cv_gcc_inline" = yes ; then
1938                         CF_ADD_CFLAGS([--param max-inline-insns-single=$2])
1939                 fi
1940         fi
1941 fi
1942 AC_SUBST($1)
1943 ])dnl
1944 dnl ---------------------------------------------------------------------------
1945 dnl CF_DIRNAME version: 5 updated: 2020/12/31 20:19:42
1946 dnl ----------
1947 dnl "dirname" is not portable, so we fake it with a shell script.
1948 AC_DEFUN([CF_DIRNAME],[$1=`echo "$2" | sed -e 's%/[[^/]]*$%%'`])dnl
1949 dnl ---------------------------------------------------------------------------
1950 dnl CF_DIRS_TO_MAKE version: 4 updated: 2021/01/01 13:31:04
1951 dnl ---------------
1952 AC_DEFUN([CF_DIRS_TO_MAKE],
1953 [
1954 DIRS_TO_MAKE="lib"
1955 for cf_item in $cf_list_models
1956 do
1957         CF_OBJ_SUBDIR($cf_item,cf_subdir)
1958         for cf_item2 in $DIRS_TO_MAKE
1959         do
1960                 test "$cf_item2" = "$cf_subdir" && break
1961         done
1962         test ".$cf_item2" != ".$cf_subdir" && DIRS_TO_MAKE="$DIRS_TO_MAKE $cf_subdir"
1963 done
1964 for cf_dir in $DIRS_TO_MAKE
1965 do
1966         test ! -d "$cf_dir" && mkdir "$cf_dir"
1967 done
1968 AC_SUBST(DIRS_TO_MAKE)
1969 ])dnl
1970 dnl ---------------------------------------------------------------------------
1971 dnl CF_DISABLE_ECHO version: 14 updated: 2021/09/04 06:35:04
1972 dnl ---------------
1973 dnl You can always use "make -n" to see the actual options, but it is hard to
1974 dnl pick out/analyze warning messages when the compile-line is long.
1975 dnl
1976 dnl Sets:
1977 dnl     ECHO_LT - symbol to control if libtool is verbose
1978 dnl     ECHO_LD - symbol to prefix "cc -o" lines
1979 dnl     RULE_CC - symbol to put before implicit "cc -c" lines (e.g., .c.o)
1980 dnl     SHOW_CC - symbol to put before explicit "cc -c" lines
1981 dnl     ECHO_CC - symbol to put before any "cc" line
1982 dnl
1983 AC_DEFUN([CF_DISABLE_ECHO],[
1984 AC_MSG_CHECKING(if you want to see long compiling messages)
1985 CF_ARG_DISABLE(echo,
1986         [  --disable-echo          do not display "compiling" commands],
1987         [
1988         ECHO_LT='--silent'
1989         ECHO_LD='@echo linking [$]@;'
1990         RULE_CC='@echo compiling [$]<'
1991         SHOW_CC='@echo compiling [$]@'
1992         ECHO_CC='@'
1993 ],[
1994         ECHO_LT=''
1995         ECHO_LD=''
1996         RULE_CC=''
1997         SHOW_CC=''
1998         ECHO_CC=''
1999 ])
2000 AC_MSG_RESULT($enableval)
2001 AC_SUBST(ECHO_LT)
2002 AC_SUBST(ECHO_LD)
2003 AC_SUBST(RULE_CC)
2004 AC_SUBST(SHOW_CC)
2005 AC_SUBST(ECHO_CC)
2006 ])dnl
2007 dnl ---------------------------------------------------------------------------
2008 dnl CF_DISABLE_GNAT_PROJECTS version: 1 updated: 2014/06/01 11:34:00
2009 dnl ------------------------
2010 AC_DEFUN([CF_DISABLE_GNAT_PROJECTS],[
2011 AC_MSG_CHECKING(if we want to use GNAT projects)
2012 CF_ARG_DISABLE(gnat-projects,
2013         [  --disable-gnat-projects test: disable GNAT projects even if usable],
2014         [enable_gnat_projects=no],
2015         [enable_gnat_projects=yes])
2016 AC_MSG_RESULT($enable_gnat_projects)
2017 ])dnl
2018 dnl ---------------------------------------------------------------------------
2019 dnl CF_DISABLE_LEAKS version: 9 updated: 2021/04/03 16:41:50
2020 dnl ----------------
2021 dnl Combine no-leak checks with the libraries or tools that are used for the
2022 dnl checks.
2023 AC_DEFUN([CF_DISABLE_LEAKS],[
2024
2025 AC_REQUIRE([CF_WITH_DMALLOC])
2026 AC_REQUIRE([CF_WITH_DBMALLOC])
2027 AC_REQUIRE([CF_WITH_VALGRIND])
2028
2029 AC_MSG_CHECKING(if you want to perform memory-leak testing)
2030 AC_ARG_ENABLE(leaks,
2031         [  --disable-leaks         test: free permanent memory, analyze leaks],
2032         [enable_leaks=$enableval],
2033         [enable_leaks=yes])
2034 dnl with_no_leaks is more readable...
2035 if test "x$enable_leaks" = xno; then with_no_leaks=yes; else with_no_leaks=no; fi
2036 AC_MSG_RESULT($with_no_leaks)
2037
2038 if test "$enable_leaks" = no ; then
2039         AC_DEFINE(NO_LEAKS,1,[Define to 1 if you want to perform memory-leak testing.])
2040         AC_DEFINE(YY_NO_LEAKS,1,[Define to 1 if you want to perform memory-leak testing.])
2041 fi
2042 ])dnl
2043 dnl ---------------------------------------------------------------------------
2044 dnl CF_DISABLE_LIBTOOL_VERSION version: 3 updated: 2015/04/17 21:13:04
2045 dnl --------------------------
2046 dnl Check if we should use the libtool 1.5 feature "-version-number" instead of
2047 dnl the older "-version-info" feature.  The newer feature allows us to use
2048 dnl version numbering on shared libraries which make them compatible with
2049 dnl various systems.
2050 AC_DEFUN([CF_DISABLE_LIBTOOL_VERSION],
2051 [
2052 AC_MSG_CHECKING(if libtool -version-number should be used)
2053 CF_ARG_DISABLE(libtool-version,
2054         [  --disable-libtool-version  enable to use libtool's incompatible naming scheme],
2055         [cf_libtool_version=no],
2056         [cf_libtool_version=yes])
2057 AC_MSG_RESULT($cf_libtool_version)
2058
2059 if test "$cf_libtool_version" = yes ; then
2060         LIBTOOL_VERSION="-version-number"
2061 else
2062         LIBTOOL_VERSION="-version-info"
2063         case "x$VERSION" in
2064         (x)
2065                 AC_MSG_WARN(VERSION was not set)
2066                 ;;
2067         (x*.*.*)
2068                 ABI_VERSION="$VERSION"
2069                 CF_VERBOSE(ABI_VERSION: $ABI_VERSION)
2070                 ;;
2071         (x*:*:*)
2072                 ABI_VERSION=`echo "$VERSION" | sed -e 's/:/./g'`
2073                 CF_VERBOSE(ABI_VERSION: $ABI_VERSION)
2074                 ;;
2075         (*)
2076                 AC_MSG_WARN(unexpected VERSION value: $VERSION)
2077                 ;;
2078         esac
2079 fi
2080
2081 AC_SUBST(ABI_VERSION)
2082 AC_SUBST(LIBTOOL_VERSION)
2083 ])dnl
2084 dnl ---------------------------------------------------------------------------
2085 dnl CF_DISABLE_RPATH_HACK version: 3 updated: 2021/01/05 20:14:44
2086 dnl ---------------------
2087 dnl The rpath-hack makes it simpler to build programs, particularly with the
2088 dnl *BSD ports which may have essential libraries in unusual places.  But it
2089 dnl can interfere with building an executable for the base system.  Use this
2090 dnl option in that case.
2091 AC_DEFUN([CF_DISABLE_RPATH_HACK],
2092 [
2093 AC_MSG_CHECKING(if rpath-hack should be disabled)
2094 CF_ARG_DISABLE(rpath-hack,
2095         [  --disable-rpath-hack    don't add rpath options for additional libraries],
2096         [enable_rpath_hack=no],
2097         [enable_rpath_hack=yes])
2098 dnl TODO - drop cf_disable_rpath_hack
2099 if test "x$enable_rpath_hack" = xno; then cf_disable_rpath_hack=yes; else cf_disable_rpath_hack=no; fi
2100 AC_MSG_RESULT($cf_disable_rpath_hack)
2101
2102 if test "$enable_rpath_hack" = yes ; then
2103         CF_RPATH_HACK
2104 fi
2105 ])
2106 dnl ---------------------------------------------------------------------------
2107 dnl CF_ENABLE_BROKEN_LINKER version: 2 updated: 2021/01/02 17:09:14
2108 dnl -----------------------
2109 dnl Some linkers cannot reference a data-only object.  Cygwin used to be one.
2110 dnl This usually follows CF_LINK_DATAONLY, but is not required in case we need
2111 dnl an unconditional feature.
2112 AC_DEFUN([CF_ENABLE_BROKEN_LINKER],[
2113
2114 AC_MSG_CHECKING(if you want broken-linker support code)
2115 AC_ARG_ENABLE(broken_linker,
2116         [  --enable-broken_linker  compile with broken-linker support code],
2117         [with_broken_linker=$enableval],
2118         [with_broken_linker=no])
2119 AC_MSG_RESULT($with_broken_linker)
2120
2121 : "${BROKEN_LINKER:=0}"
2122 if test "x$with_broken_linker" = xyes ; then
2123         AC_DEFINE(BROKEN_LINKER,1,[Define to 1 to work around linkers which cannot link data-only modules])
2124         BROKEN_LINKER=1
2125 fi
2126 AC_SUBST(BROKEN_LINKER)
2127 ])dnl
2128 dnl ---------------------------------------------------------------------------
2129 dnl CF_ENABLE_PC_FILES version: 16 updated: 2021/11/20 12:48:37
2130 dnl ------------------
2131 dnl This is the "--enable-pc-files" option, which is available if there is a
2132 dnl pkg-config configuration on the local machine.
2133 AC_DEFUN([CF_ENABLE_PC_FILES],[
2134 AC_REQUIRE([CF_PKG_CONFIG])
2135 AC_REQUIRE([CF_WITH_PKG_CONFIG_LIBDIR])
2136
2137 if test "x$PKG_CONFIG" != xnone
2138 then
2139         AC_MSG_CHECKING(if we should install .pc files for $PKG_CONFIG)
2140 else
2141         AC_MSG_CHECKING(if we should install .pc files)
2142 fi
2143
2144 AC_ARG_ENABLE(pc-files,
2145         [  --enable-pc-files       generate and install .pc files for pkg-config],
2146         [enable_pc_files=$enableval],
2147         [enable_pc_files=no])
2148 AC_MSG_RESULT($enable_pc_files)
2149
2150 if test "x$enable_pc_files" != xno
2151 then
2152         MAKE_PC_FILES=
2153         case "x$PKG_CONFIG_LIBDIR" in
2154         (xno|xnone|xyes|x)
2155                 AC_MSG_WARN(no PKG_CONFIG_LIBDIR was found)
2156                 ;;
2157         (*)
2158                 cf_pkg_config_libdir="$PKG_CONFIG_LIBDIR"
2159                 CF_PATH_SYNTAX(cf_pkg_config_libdir)
2160                 ;;
2161         esac
2162 else
2163         MAKE_PC_FILES="#"
2164 fi
2165 AC_SUBST(MAKE_PC_FILES)
2166 ])dnl
2167 dnl ---------------------------------------------------------------------------
2168 dnl CF_ENABLE_RPATH version: 2 updated: 2010/03/27 18:39:42
2169 dnl ---------------
2170 dnl Check if the rpath option should be used, setting cache variable
2171 dnl cf_cv_enable_rpath if so.
2172 AC_DEFUN([CF_ENABLE_RPATH],
2173 [
2174 AC_MSG_CHECKING(if rpath option should be used)
2175 AC_ARG_ENABLE(rpath,
2176 [  --enable-rpath          use rpath option when generating shared libraries],
2177 [cf_cv_enable_rpath=$enableval],
2178 [cf_cv_enable_rpath=no])
2179 AC_MSG_RESULT($cf_cv_enable_rpath)
2180 ])dnl
2181 dnl ---------------------------------------------------------------------------
2182 dnl CF_ENABLE_STRING_HACKS version: 6 updated: 2021/01/05 19:23:48
2183 dnl ----------------------
2184 dnl On a few platforms, the compiler and/or loader nags with untruthful
2185 dnl comments stating that "most" uses of strcat/strcpy/sprintf are incorrect,
2186 dnl and implying that most uses of the recommended alternatives are correct.
2187 dnl
2188 dnl Factually speaking, no one has actually counted the number of uses of these
2189 dnl functions versus the total of incorrect uses.  Samples of a few thousand
2190 dnl instances are meaningless compared to the hundreds of millions of lines of
2191 dnl existing C code.
2192 dnl
2193 dnl strlcat/strlcpy are (as of 2012) non-standard, and are available on some
2194 dnl platforms, in implementations of varying quality.  Likewise, snprintf is
2195 dnl standard - but evolved through phases, and older implementations are likely
2196 dnl to yield surprising results, as documented in manpages on various systems.
2197 AC_DEFUN([CF_ENABLE_STRING_HACKS],
2198 [
2199 AC_MSG_CHECKING(if you want to work around bogus compiler/loader warnings)
2200 AC_ARG_ENABLE(string-hacks,
2201         [  --enable-string-hacks   work around bogus compiler/loader warnings],
2202         [enable_string_hacks=$enableval],
2203         [enable_string_hacks=no])
2204 AC_MSG_RESULT($enable_string_hacks)
2205
2206 if test "x$enable_string_hacks" = "xyes"; then
2207         AC_DEFINE(USE_STRING_HACKS,1,[Define to 1 to work around bogus compiler/loader warnings])
2208         AC_MSG_WARN(enabling string-hacks to work around bogus compiler/loader warnings)
2209         AC_CHECK_FUNC(strlcat,[
2210                 AC_DEFINE(HAVE_STRLCAT,1,[Define to 1 if we have strlcat function])
2211                 ],[
2212                 AC_CHECK_LIB(bsd,strlcat,[
2213                         CF_ADD_LIB(bsd)
2214                         AC_CHECK_HEADERS(bsd/string.h)
2215                         AC_DEFINE(HAVE_STRLCAT,1,[Define to 1 if we have strlcat function])
2216                         ])
2217                 ])
2218         AC_CHECK_FUNCS( strlcpy snprintf )
2219 fi
2220 ])dnl
2221 dnl ---------------------------------------------------------------------------
2222 dnl CF_ENABLE_WARNINGS version: 9 updated: 2021/01/05 19:40:50
2223 dnl ------------------
2224 dnl Configure-option to enable gcc warnings
2225 dnl
2226 dnl $1 = extra options to add, if supported
2227 dnl $2 = option for checking attributes.  By default, this is done when
2228 dnl      warnings are enabled.  For other values:
2229 dnl      yes: always do this, e.g., to use in generated library-headers
2230 dnl      no: never do this
2231 AC_DEFUN([CF_ENABLE_WARNINGS],[
2232 if test "$GCC" = yes || test "$GXX" = yes
2233 then
2234 CF_FIX_WARNINGS(CFLAGS)
2235 CF_FIX_WARNINGS(CPPFLAGS)
2236 CF_FIX_WARNINGS(LDFLAGS)
2237 AC_MSG_CHECKING(if you want to turn on gcc warnings)
2238 CF_ARG_ENABLE(warnings,
2239         [  --enable-warnings       test: turn on gcc compiler warnings],
2240         [enable_warnings=yes],
2241         [enable_warnings=no])
2242 AC_MSG_RESULT($enable_warnings)
2243 if test "$enable_warnings" = "yes"
2244 then
2245         ifelse($2,,[CF_GCC_ATTRIBUTES])
2246         CF_GCC_WARNINGS($1)
2247 fi
2248 ifelse($2,yes,[CF_GCC_ATTRIBUTES])
2249 fi
2250 ])dnl
2251 dnl ---------------------------------------------------------------------------
2252 dnl CF_ERRNO version: 5 updated: 1997/11/30 12:44:39
2253 dnl --------
2254 dnl Check if 'errno' is declared in <errno.h>
2255 AC_DEFUN([CF_ERRNO],
2256 [
2257 CF_CHECK_ERRNO(errno)
2258 ])dnl
2259 dnl ---------------------------------------------------------------------------
2260 dnl CF_ETIP_DEFINES version: 6 updated: 2021/01/02 17:09:14
2261 dnl ---------------
2262 dnl Test for conflicting definitions of exception in gcc 2.8.0, etc., between
2263 dnl math.h and builtin.h, only for ncurses
2264 AC_DEFUN([CF_ETIP_DEFINES],
2265 [
2266 AC_MSG_CHECKING(for special defines needed for etip.h)
2267 cf_save_CXXFLAGS="$CXXFLAGS"
2268 cf_result="none"
2269
2270 # etip.h includes ncurses.h which includes ncurses_dll.h
2271 # But ncurses_dll.h is generated - fix here.
2272 test -d include || mkdir include
2273 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
2274
2275 for cf_math in "" MATH_H
2276 do
2277 for cf_excp in "" MATH_EXCEPTION
2278 do
2279         CXXFLAGS="$cf_save_CXXFLAGS -I${srcdir}/c++ -I${srcdir}/menu -Iinclude -I${srcdir}/include"
2280         test -n "$cf_math" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_math}"
2281         test -n "$cf_excp" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_excp}"
2282 AC_TRY_COMPILE([
2283 #include <etip.h.in>
2284 ],[],[
2285         test -n "$cf_math" && AC_DEFINE_UNQUOTED(ETIP_NEEDS_${cf_math})
2286         test -n "$cf_excp" && AC_DEFINE_UNQUOTED(ETIP_NEEDS_${cf_excp})
2287         cf_result="$cf_math $cf_excp"
2288         break 2
2289 ],[])
2290 done
2291 done
2292 AC_MSG_RESULT($cf_result)
2293 CXXFLAGS="$cf_save_CXXFLAGS"
2294 ])
2295 dnl ---------------------------------------------------------------------------
2296 dnl CF_FIND_LINKAGE version: 22 updated: 2020/12/31 20:19:42
2297 dnl ---------------
2298 dnl Find a library (specifically the linkage used in the code fragment),
2299 dnl searching for it if it is not already in the library path.
2300 dnl See also CF_ADD_SEARCHPATH.
2301 dnl
2302 dnl Parameters (4-on are optional):
2303 dnl     $1 = headers for library entrypoint
2304 dnl     $2 = code fragment for library entrypoint
2305 dnl     $3 = the library name without the "-l" option or ".so" suffix.
2306 dnl     $4 = action to perform if successful (default: update CPPFLAGS, etc)
2307 dnl     $5 = action to perform if not successful
2308 dnl     $6 = module name, if not the same as the library name
2309 dnl     $7 = extra libraries
2310 dnl
2311 dnl Sets these variables:
2312 dnl     $cf_cv_find_linkage_$3 - yes/no according to whether linkage is found
2313 dnl     $cf_cv_header_path_$3 - include-directory if needed
2314 dnl     $cf_cv_library_path_$3 - library-directory if needed
2315 dnl     $cf_cv_library_file_$3 - library-file if needed, e.g., -l$3
2316 AC_DEFUN([CF_FIND_LINKAGE],[
2317
2318 # If the linkage is not already in the $CPPFLAGS/$LDFLAGS configuration, these
2319 # will be set on completion of the AC_TRY_LINK below.
2320 cf_cv_header_path_$3=
2321 cf_cv_library_path_$3=
2322
2323 CF_MSG_LOG([Starting [FIND_LINKAGE]($3,$6)])
2324
2325 cf_save_LIBS="$LIBS"
2326
2327 AC_TRY_LINK([$1],[$2],[
2328         cf_cv_find_linkage_$3=yes
2329         cf_cv_header_path_$3=/usr/include
2330         cf_cv_library_path_$3=/usr/lib
2331 ],[
2332
2333 LIBS="-l$3 $7 $cf_save_LIBS"
2334
2335 AC_TRY_LINK([$1],[$2],[
2336         cf_cv_find_linkage_$3=yes
2337         cf_cv_header_path_$3=/usr/include
2338         cf_cv_library_path_$3=/usr/lib
2339         cf_cv_library_file_$3="-l$3"
2340 ],[
2341         cf_cv_find_linkage_$3=no
2342         LIBS="$cf_save_LIBS"
2343
2344         CF_VERBOSE(find linkage for $3 library)
2345         CF_MSG_LOG([Searching for headers in [FIND_LINKAGE]($3,$6)])
2346
2347         cf_save_CPPFLAGS="$CPPFLAGS"
2348         cf_test_CPPFLAGS="$CPPFLAGS"
2349
2350         CF_HEADER_PATH(cf_search,ifelse([$6],,[$3],[$6]))
2351         for cf_cv_header_path_$3 in $cf_search
2352         do
2353                 if test -d "$cf_cv_header_path_$3" ; then
2354                         CF_VERBOSE(... testing $cf_cv_header_path_$3)
2355                         CPPFLAGS="$cf_save_CPPFLAGS"
2356                         CF_APPEND_TEXT(CPPFLAGS,-I$cf_cv_header_path_$3)
2357                         AC_TRY_COMPILE([$1],[$2],[
2358                                 CF_VERBOSE(... found $3 headers in $cf_cv_header_path_$3)
2359                                 cf_cv_find_linkage_$3=maybe
2360                                 cf_test_CPPFLAGS="$CPPFLAGS"
2361                                 break],[
2362                                 CPPFLAGS="$cf_save_CPPFLAGS"
2363                                 ])
2364                 fi
2365         done
2366
2367         if test "$cf_cv_find_linkage_$3" = maybe ; then
2368
2369                 CF_MSG_LOG([Searching for $3 library in [FIND_LINKAGE]($3,$6)])
2370
2371                 cf_save_LIBS="$LIBS"
2372                 cf_save_LDFLAGS="$LDFLAGS"
2373
2374                 ifelse([$6],,,[
2375                 CPPFLAGS="$cf_test_CPPFLAGS"
2376                 LIBS="-l$3 $7 $cf_save_LIBS"
2377                 AC_TRY_LINK([$1],[$2],[
2378                         CF_VERBOSE(... found $3 library in system)
2379                         cf_cv_find_linkage_$3=yes])
2380                         CPPFLAGS="$cf_save_CPPFLAGS"
2381                         LIBS="$cf_save_LIBS"
2382                         ])
2383
2384                 if test "$cf_cv_find_linkage_$3" != yes ; then
2385                         CF_LIBRARY_PATH(cf_search,$3)
2386                         for cf_cv_library_path_$3 in $cf_search
2387                         do
2388                                 if test -d "$cf_cv_library_path_$3" ; then
2389                                         CF_VERBOSE(... testing $cf_cv_library_path_$3)
2390                                         CPPFLAGS="$cf_test_CPPFLAGS"
2391                                         LIBS="-l$3 $7 $cf_save_LIBS"
2392                                         LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_$3"
2393                                         AC_TRY_LINK([$1],[$2],[
2394                                         CF_VERBOSE(... found $3 library in $cf_cv_library_path_$3)
2395                                         cf_cv_find_linkage_$3=yes
2396                                         cf_cv_library_file_$3="-l$3"
2397                                         break],[
2398                                         CPPFLAGS="$cf_save_CPPFLAGS"
2399                                         LIBS="$cf_save_LIBS"
2400                                         LDFLAGS="$cf_save_LDFLAGS"
2401                                         ])
2402                                 fi
2403                         done
2404                         CPPFLAGS="$cf_save_CPPFLAGS"
2405                         LDFLAGS="$cf_save_LDFLAGS"
2406                 fi
2407
2408         else
2409                 cf_cv_find_linkage_$3=no
2410         fi
2411         ],$7)
2412 ])
2413
2414 LIBS="$cf_save_LIBS"
2415
2416 if test "$cf_cv_find_linkage_$3" = yes ; then
2417 ifelse([$4],,[
2418         CF_ADD_INCDIR($cf_cv_header_path_$3)
2419         CF_ADD_LIBDIR($cf_cv_library_path_$3)
2420         CF_ADD_LIB($3)
2421 ],[$4])
2422 else
2423 ifelse([$5],,AC_MSG_WARN(Cannot find $3 library),[$5])
2424 fi
2425 ])dnl
2426 dnl ---------------------------------------------------------------------------
2427 dnl CF_FIND_SUB_INCDIR version: 3 updated: 2021/01/01 13:31:04
2428 dnl ------------------
2429 dnl Find an include-directory with the given leaf-name.  This is useful for
2430 dnl example with FreeBSD ports, which use this convention to distinguish
2431 dnl different versions of the same port.
2432 AC_DEFUN([CF_FIND_SUB_INCDIR],[
2433         CF_SUBDIR_PATH(cf_search,$1,include)
2434         for cf_item in $cf_search
2435         do
2436                 case "$cf_item" in
2437                 (*/$1)
2438                         CF_ADD_INCDIR($cf_item)
2439                         ;;
2440                 esac
2441         done
2442 ])dnl
2443 dnl ---------------------------------------------------------------------------
2444 dnl CF_FIND_SUB_LIBDIR version: 3 updated: 2021/01/01 13:31:04
2445 dnl ------------------
2446 dnl Find a library-directory with the given leaf-name.  This is useful for
2447 dnl example with FreeBSD ports, which use this convention to distinguish
2448 dnl different versions of the same port.
2449 AC_DEFUN([CF_FIND_SUB_LIBDIR],[
2450         CF_SUBDIR_PATH(cf_search,$1,lib)
2451         for cf_item in $cf_search
2452         do
2453                 case "$cf_item" in
2454                 (*/$1)
2455                         CF_ADD_LIBDIR($cf_item)
2456                         ;;
2457                 esac
2458         done
2459 ])dnl
2460 dnl ---------------------------------------------------------------------------
2461 dnl CF_FIXUP_ADAFLAGS version: 2 updated: 2015/04/17 21:13:04
2462 dnl -----------------
2463 dnl make ADAFLAGS consistent with CFLAGS
2464 AC_DEFUN([CF_FIXUP_ADAFLAGS],[
2465         AC_MSG_CHECKING(optimization options for ADAFLAGS)
2466         case "$CFLAGS" in
2467         (*-g*)
2468                 CF_ADD_ADAFLAGS(-g)
2469                 ;;
2470         esac
2471         case "$CFLAGS" in
2472         (*-O*)
2473                 cf_O_flag=`echo "$CFLAGS" |sed -e 's/^.*-O/-O/' -e 's/[[        ]].*//'`
2474                 CF_ADD_ADAFLAGS($cf_O_flag)
2475                 ;;
2476         esac
2477         AC_MSG_RESULT($ADAFLAGS)
2478 ])dnl
2479 dnl ---------------------------------------------------------------------------
2480 dnl CF_FIX_WARNINGS version: 4 updated: 2021/12/16 18:22:31
2481 dnl ---------------
2482 dnl Warning flags do not belong in CFLAGS, CPPFLAGS, etc.  Any of gcc's
2483 dnl "-Werror" flags can interfere with configure-checks.  Those go into
2484 dnl EXTRA_CFLAGS.
2485 dnl
2486 dnl $1 = variable name to repair
2487 define([CF_FIX_WARNINGS],[
2488 if test "$GCC" = yes || test "$GXX" = yes
2489 then
2490         case [$]$1 in
2491         (*-Werror=*)
2492                 cf_temp_flags=
2493                 for cf_temp_scan in [$]$1
2494                 do
2495                         case "x$cf_temp_scan" in
2496                         (x-Werror=format*)
2497                                 CF_APPEND_TEXT(cf_temp_flags,$cf_temp_scan)
2498                                 ;;
2499                         (x-Werror=*)
2500                                 CF_APPEND_TEXT(EXTRA_CFLAGS,$cf_temp_scan)
2501                                 ;;
2502                         (*)
2503                                 CF_APPEND_TEXT(cf_temp_flags,$cf_temp_scan)
2504                                 ;;
2505                         esac
2506                 done
2507                 if test "x[$]$1" != "x$cf_temp_flags"
2508                 then
2509                         CF_VERBOSE(repairing $1: [$]$1)
2510                         $1="$cf_temp_flags"
2511                         CF_VERBOSE(... fixed [$]$1)
2512                         CF_VERBOSE(... extra $EXTRA_CFLAGS)
2513                 fi
2514                 ;;
2515         esac
2516 fi
2517 AC_SUBST(EXTRA_CFLAGS)
2518 ])dnl
2519 dnl ---------------------------------------------------------------------------
2520 dnl CF_FOPEN_BIN_R version: 2 updated: 2019/12/31 08:53:54
2521 dnl --------------
2522 dnl Check if fopen works when the "b" (binary) flag is added to the mode
2523 dnl parameter.  POSIX ignores the "b", which c89 specified.  Some very old
2524 dnl systems do not accept it.
2525 AC_DEFUN([CF_FOPEN_BIN_R],[
2526 AC_CACHE_CHECK(if fopen accepts explicit binary mode,cf_cv_fopen_bin_r,[
2527         AC_TRY_RUN([
2528 #include <stdio.h>
2529 int main(void) {
2530         FILE *fp = fopen("conftest.tmp", "wb");
2531         int rc = 0;
2532         if (fp != 0) {
2533                 int p, q;
2534                 for (p = 0; p < 256; ++p) {
2535                         fputc(p, fp);
2536                 }
2537                 fclose(fp);
2538                 fp = fopen("conftest.tmp", "rb");
2539                 if (fp != 0) {
2540                         for (p = 0; p < 256; ++p) {
2541                                 q = fgetc(fp);
2542                                 if (q != p) {
2543                                         rc = 1;
2544                                         break;
2545                                 }
2546                         }
2547                 } else {
2548                         rc = 1;
2549                 }
2550         } else {
2551                 rc = 1;
2552         }
2553         ${cf_cv_main_return:-return} (rc);
2554 }
2555 ],
2556                 [cf_cv_fopen_bin_r=yes],
2557                 [cf_cv_fopen_bin_r=no],
2558                 [cf_cv_fopen_bin_r=unknown])
2559 ])
2560 test "x$cf_cv_fopen_bin_r" != xno && AC_DEFINE(USE_FOPEN_BIN_R,1,[Define to 1 if fopen accepts explicit binary mode])
2561 ])dnl
2562 dnl ---------------------------------------------------------------------------
2563 dnl CF_FORGET_TOOL version: 1 updated: 2013/04/06 18:03:09
2564 dnl --------------
2565 dnl Forget that we saw the given tool.
2566 AC_DEFUN([CF_FORGET_TOOL],[
2567 unset ac_cv_prog_ac_ct_$1
2568 unset ac_ct_$1
2569 unset $1
2570 ])dnl
2571 dnl ---------------------------------------------------------------------------
2572 dnl CF_FUNC_DLSYM version: 4 updated: 2015/09/12 14:46:44
2573 dnl -------------
2574 dnl Test for dlsym() and related functions, as well as libdl.
2575 dnl
2576 dnl Sets
2577 dnl     $cf_have_dlsym
2578 dnl     $cf_have_libdl
2579 AC_DEFUN([CF_FUNC_DLSYM],[
2580 cf_have_dlsym=no
2581 AC_CHECK_FUNC(dlsym,cf_have_dlsym=yes,[
2582
2583 cf_have_libdl=no
2584 AC_CHECK_LIB(dl,dlsym,[
2585         cf_have_dlsym=yes
2586         cf_have_libdl=yes])])
2587
2588 if test "$cf_have_dlsym" = yes ; then
2589         test "$cf_have_libdl" = yes && { CF_ADD_LIB(dl) }
2590
2591         AC_MSG_CHECKING(whether able to link to dl*() functions)
2592         AC_TRY_LINK([#include <dlfcn.h>],[
2593                 void *obj;
2594                 if ((obj = dlopen("filename", 0)) != 0) {
2595                         if (dlsym(obj, "symbolname") == 0) {
2596                         dlclose(obj);
2597                         }
2598                 }],[
2599                 AC_DEFINE(HAVE_LIBDL,1,[Define to 1 if we have dl library])],[
2600                 AC_MSG_ERROR(Cannot link test program for libdl)])
2601         AC_MSG_RESULT(ok)
2602 else
2603         AC_MSG_ERROR(Cannot find dlsym function)
2604 fi
2605 ])
2606 dnl ---------------------------------------------------------------------------
2607 dnl CF_FUNC_GETTTYNAM version: 1 updated: 2021/12/04 18:29:47
2608 dnl -----------------
2609 dnl Check if the 4.3BSD function getttyname exists, as well as if <ttyent.h>
2610 dnl defines the _PATH_TTYS symbol.  If the corresponding file exists, but the
2611 dnl other checks fail, just define HAVE_PATH_TTYS.
2612 AC_DEFUN([CF_FUNC_GETTTYNAM],[
2613 AC_CACHE_CHECK(if _PATH_TTYS is defined in ttyent.h,cf_cv_PATH_TTYS,[
2614 AC_TRY_COMPILE([
2615 #include <stdio.h>
2616 #include <ttyent.h>],[
2617 FILE *fp = fopen(_PATH_TTYS, "r"); (void)fp],
2618         [cf_cv_PATH_TTYS=yes],
2619         [cf_cv_PATH_TTYS=no])])
2620
2621 if test $cf_cv_PATH_TTYS = no
2622 then
2623         for cf_ttys in /etc/ttytype /etc/ttys
2624         do
2625                 if test -f $cf_ttys
2626                 then
2627                         cf_cv_PATH_TTYS=maybe
2628                         AC_DEFINE(_PATH_TTYS,$cf_ttys,[define to pathname of file containing mapping from tty name to terminal type])
2629                         break
2630                 fi
2631         done
2632 fi
2633
2634 if test $cf_cv_PATH_TTYS != no
2635 then
2636         AC_CACHE_CHECK(if _PATH_TTYS file exists,cf_cv_have_PATH_TTYS,[
2637                 AC_TRY_RUN([
2638 #include <stdio.h>
2639 #include <ttyent.h>
2640 int main(void) {
2641         FILE *fp = fopen(_PATH_TTYS, "r");
2642         ${cf_cv_main_return:-return} (fp == 0);
2643 }],
2644                         [cf_cv_have_PATH_TTYS=yes],
2645                         [cf_cv_have_PATH_TTYS=no],
2646                         [cf_cv_have_PATH_TTYS=unknown])])
2647         test "$cf_cv_have_PATH_TTYS" = no && cf_cv_PATH_TTYS=no
2648 fi
2649
2650 if test $cf_cv_PATH_TTYS != no
2651 then
2652         AC_DEFINE(HAVE_PATH_TTYS,1,[define to 1 if system can map tty name to terminal type])
2653         AC_CACHE_CHECK(for getttynam,cf_cv_func_getttynam,[
2654                 AC_TRY_LINK([#include <ttyent.h>],
2655                 [struct ttyent *fp = getttynam("/dev/tty"); (void)fp],
2656                 [cf_cv_func_getttynam=yes],
2657                 [cf_cv_func_getttynam=no])])
2658         test "$cf_cv_func_getttynam" = yes && AC_DEFINE(HAVE_GETTTYNAM)
2659 fi
2660 ])dnl
2661 dnl ---------------------------------------------------------------------------
2662 dnl CF_FUNC_MEMMOVE version: 9 updated: 2017/01/21 11:06:25
2663 dnl ---------------
2664 dnl Check for memmove, or a bcopy that can handle overlapping copy.  If neither
2665 dnl is found, add our own version of memmove to the list of objects.
2666 AC_DEFUN([CF_FUNC_MEMMOVE],
2667 [
2668 AC_CHECK_FUNC(memmove,,[
2669 AC_CHECK_FUNC(bcopy,[
2670         AC_CACHE_CHECK(if bcopy does overlapping moves,cf_cv_good_bcopy,[
2671                 AC_TRY_RUN([
2672 int main(void) {
2673         static char data[] = "abcdefghijklmnopqrstuwwxyz";
2674         char temp[40];
2675         bcopy(data, temp, sizeof(data));
2676         bcopy(temp+10, temp, 15);
2677         bcopy(temp+5, temp+15, 10);
2678         ${cf_cv_main_return:-return} (strcmp(temp, "klmnopqrstuwwxypqrstuwwxyz"));
2679 }
2680                 ],
2681                 [cf_cv_good_bcopy=yes],
2682                 [cf_cv_good_bcopy=no],
2683                 [cf_cv_good_bcopy=unknown])
2684                 ])
2685         ],[cf_cv_good_bcopy=no])
2686         if test "$cf_cv_good_bcopy" = yes ; then
2687                 AC_DEFINE(USE_OK_BCOPY,1,[Define to 1 to use bcopy when memmove is unavailable])
2688         else
2689                 AC_DEFINE(USE_MY_MEMMOVE,1,[Define to 1 to use replacement function when memmove is unavailable])
2690         fi
2691 ])])dnl
2692 dnl ---------------------------------------------------------------------------
2693 dnl CF_FUNC_NANOSLEEP version: 5 updated: 2017/01/21 11:06:25
2694 dnl -----------------
2695 dnl Check for existence of workable nanosleep() function.  Some systems, e.g.,
2696 dnl AIX 4.x, provide a non-working version.
2697 AC_DEFUN([CF_FUNC_NANOSLEEP],[
2698 AC_CACHE_CHECK(if nanosleep really works,cf_cv_func_nanosleep,[
2699 AC_TRY_RUN([
2700 #include <stdio.h>
2701 #include <errno.h>
2702 #include <time.h>
2703
2704 #ifdef HAVE_SYS_TIME_H
2705 #include <sys/time.h>
2706 #endif
2707
2708 int main(void) {
2709         struct timespec ts1, ts2;
2710         int code;
2711         ts1.tv_sec  = 0;
2712         ts1.tv_nsec = 750000000;
2713         ts2.tv_sec  = 0;
2714         ts2.tv_nsec = 0;
2715         errno = 0;
2716         code = nanosleep(&ts1, &ts2); /* on failure errno is ENOSYS. */
2717         ${cf_cv_main_return:-return}(code != 0);
2718 }
2719 ],
2720         [cf_cv_func_nanosleep=yes],
2721         [cf_cv_func_nanosleep=no],
2722         [cf_cv_func_nanosleep=unknown])])
2723
2724 test "$cf_cv_func_nanosleep" = "yes" && AC_DEFINE(HAVE_NANOSLEEP,1,[Define to 1 if we have nanosleep()])
2725 ])
2726 dnl ---------------------------------------------------------------------------
2727 dnl CF_FUNC_OPENPTY version: 6 updated: 2021/01/01 13:31:04
2728 dnl ---------------
2729 dnl Check for openpty() function, along with <pty.h> header.  It may need the
2730 dnl "util" library as well.
2731 AC_DEFUN([CF_FUNC_OPENPTY],
2732 [
2733 AC_CHECK_LIB(util,openpty,cf_cv_lib_util=yes,cf_cv_lib_util=no)
2734 AC_CACHE_CHECK(for openpty header,cf_cv_func_openpty,[
2735         cf_save_LIBS="$LIBS"
2736         test "$cf_cv_lib_util" = yes && { CF_ADD_LIB(util) }
2737         for cf_header in pty.h libutil.h util.h
2738         do
2739         AC_TRY_LINK([
2740 #include <$cf_header>
2741 ],[
2742         int x = openpty((int *)0, (int *)0, (char *)0,
2743                                    (struct termios *)0, (struct winsize *)0);
2744 ],[
2745                 cf_cv_func_openpty=$cf_header
2746                 break
2747 ],[
2748                 cf_cv_func_openpty=no
2749 ])
2750         done
2751         LIBS="$cf_save_LIBS"
2752 ])
2753 ])dnl
2754 dnl ---------------------------------------------------------------------------
2755 dnl CF_FUNC_POLL version: 10 updated: 2021/01/04 19:13:57
2756 dnl ------------
2757 dnl See if the poll function really works.  Some platforms have poll(), but
2758 dnl it does not work for terminals or files.
2759 AC_DEFUN([CF_FUNC_POLL],[
2760 tty >/dev/null 2>&1 || { AC_CHECK_FUNCS(posix_openpt) }
2761 AC_CACHE_CHECK(if poll really works,cf_cv_working_poll,[
2762 AC_TRY_RUN([
2763 #include <stdlib.h>
2764 #include <stdio.h>
2765 #include <unistd.h>
2766 #include <fcntl.h>
2767 #ifdef HAVE_POLL_H
2768 #include <poll.h>
2769 #else
2770 #include <sys/poll.h>
2771 #endif
2772 int main(void) {
2773         struct pollfd myfds;
2774         int ret;
2775
2776         /* check for Darwin bug with respect to "devices" */
2777         myfds.fd = open("/dev/null", 1);        /* O_WRONLY */
2778         if (myfds.fd < 0)
2779                 myfds.fd = 0;
2780         myfds.events = POLLIN;
2781         myfds.revents = 0;
2782
2783         ret = poll(&myfds, 1, 100);
2784
2785         if (ret < 0 || (myfds.revents & POLLNVAL)) {
2786                 ret = -1;
2787         } else {
2788                 int fd = 0;
2789                 if (!isatty(fd)) {
2790                         fd = open("/dev/tty", 2);       /* O_RDWR */
2791                 }
2792 #ifdef HAVE_POSIX_OPENPT
2793                 if (fd < 0) {
2794                         fd = posix_openpt(O_RDWR);
2795                 }
2796 #endif
2797
2798                 if (fd >= 0) {
2799                         /* also check with standard input */
2800                         myfds.fd = fd;
2801                         myfds.events = POLLIN;
2802                         myfds.revents = 0;
2803                         ret = poll(&myfds, 1, 100);
2804                 } else {
2805                         ret = -1;
2806                 }
2807         }
2808         ${cf_cv_main_return:-return}(ret < 0);
2809 }],
2810         [cf_cv_working_poll=yes],
2811         [cf_cv_working_poll=no],
2812         [cf_cv_working_poll=unknown])])
2813 test "$cf_cv_working_poll" = "yes" && AC_DEFINE(HAVE_WORKING_POLL,1,[Define to 1 if the poll function seems to work])
2814 ])dnl
2815 dnl ---------------------------------------------------------------------------
2816 dnl CF_FUNC_TERMIOS version: 3 updated: 2012/10/06 17:56:13
2817 dnl ---------------
2818 dnl Some old/broken variations define tcgetattr() only as a macro in
2819 dnl termio(s).h
2820 AC_DEFUN([CF_FUNC_TERMIOS],[
2821 AC_REQUIRE([CF_STRUCT_TERMIOS])
2822 AC_CACHE_CHECK(for tcgetattr, cf_cv_have_tcgetattr,[
2823 AC_TRY_LINK([
2824 #include <sys/types.h>
2825 #ifdef HAVE_UNISTD_H
2826 #include <unistd.h>
2827 #endif
2828 #ifdef HAVE_TERMIOS_H
2829 #include <termios.h>
2830 #define TTY struct termios
2831 #else
2832 #ifdef HAVE_TERMIO_H
2833 #include <termio.h>
2834 #define TTY struct termio
2835 #endif
2836 #endif
2837 ],[
2838 TTY foo;
2839 tcgetattr(1, &foo);],
2840 [cf_cv_have_tcgetattr=yes],
2841 [cf_cv_have_tcgetattr=no])])
2842 test "$cf_cv_have_tcgetattr" = yes && AC_DEFINE(HAVE_TCGETATTR,1,[Define to 1 if we have tcgetattr])
2843 ])dnl
2844 dnl ---------------------------------------------------------------------------
2845 dnl CF_FUNC_VSSCANF version: 7 updated: 2021/01/01 13:31:04
2846 dnl ---------------
2847 dnl Check for vsscanf() function, which is in c9x but generally not in earlier
2848 dnl versions of C.  It is in the GNU C library, and can often be simulated by
2849 dnl other functions.
2850 AC_DEFUN([CF_FUNC_VSSCANF],
2851 [
2852 AC_CACHE_CHECK(for vsscanf function or workaround,cf_cv_func_vsscanf,[
2853 AC_TRY_LINK([
2854 #include <stdarg.h>
2855 #include <stdio.h>],[
2856         va_list ap;
2857         vsscanf("from", "%d", ap)],[cf_cv_func_vsscanf=vsscanf],[
2858 AC_TRY_LINK([
2859 #include <stdarg.h>
2860 #include <stdio.h>],[
2861         FILE strbuf;
2862         char *str = "from";
2863
2864         strbuf._flag = _IOREAD;
2865         strbuf._ptr = strbuf._base = (unsigned char *) str;
2866         strbuf._cnt = strlen(str);
2867         strbuf._file = _NFILE;
2868         return (vfscanf(&strbuf, "%d", ap))],[cf_cv_func_vsscanf=vfscanf],[
2869 AC_TRY_LINK([
2870 #include <stdarg.h>
2871 #include <stdio.h>],[
2872         FILE strbuf;
2873         char *str = "from";
2874
2875         strbuf._flag = _IOREAD;
2876         strbuf._ptr = strbuf._base = (unsigned char *) str;
2877         strbuf._cnt = strlen(str);
2878         strbuf._file = _NFILE;
2879         return (_doscan(&strbuf, "%d", ap))],[cf_cv_func_vsscanf=_doscan],[
2880 cf_cv_func_vsscanf=no])])])])
2881
2882 case "$cf_cv_func_vsscanf" in
2883 (vsscanf) AC_DEFINE(HAVE_VSSCANF,1,[Define to 1 if we have vsscanf]);;
2884 (vfscanf) AC_DEFINE(HAVE_VFSCANF,1,[Define to 1 if we have vfscanf]);;
2885 (_doscan) AC_DEFINE(HAVE__DOSCAN,1,[Define to 1 if we have _doscan]);;
2886 esac
2887
2888 ])dnl
2889 dnl ---------------------------------------------------------------------------
2890 dnl CF_GCC_ATTRIBUTES version: 24 updated: 2021/03/20 12:00:25
2891 dnl -----------------
2892 dnl Test for availability of useful gcc __attribute__ directives to quiet
2893 dnl compiler warnings.  Though useful, not all are supported -- and contrary
2894 dnl to documentation, unrecognized directives cause older compilers to barf.
2895 AC_DEFUN([CF_GCC_ATTRIBUTES],
2896 [AC_REQUIRE([AC_PROG_FGREP])dnl
2897 AC_REQUIRE([CF_C11_NORETURN])dnl
2898
2899 if test "$GCC" = yes || test "$GXX" = yes
2900 then
2901 cat > conftest.i <<EOF
2902 #ifndef GCC_PRINTF
2903 #define GCC_PRINTF 0
2904 #endif
2905 #ifndef GCC_SCANF
2906 #define GCC_SCANF 0
2907 #endif
2908 #ifndef GCC_NORETURN
2909 #define GCC_NORETURN /* nothing */
2910 #endif
2911 #ifndef GCC_UNUSED
2912 #define GCC_UNUSED /* nothing */
2913 #endif
2914 EOF
2915 if test "$GCC" = yes
2916 then
2917         AC_CHECKING([for $CC __attribute__ directives])
2918 cat > "conftest.$ac_ext" <<EOF
2919 #line __oline__ "${as_me:-configure}"
2920 #include "confdefs.h"
2921 #include "conftest.h"
2922 #include "conftest.i"
2923 #if     GCC_PRINTF
2924 #define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
2925 #else
2926 #define GCC_PRINTFLIKE(fmt,var) /*nothing*/
2927 #endif
2928 #if     GCC_SCANF
2929 #define GCC_SCANFLIKE(fmt,var)  __attribute__((format(scanf,fmt,var)))
2930 #else
2931 #define GCC_SCANFLIKE(fmt,var)  /*nothing*/
2932 #endif
2933 extern void wow(char *,...) GCC_SCANFLIKE(1,2);
2934 extern GCC_NORETURN void oops(char *,...) GCC_PRINTFLIKE(1,2);
2935 extern GCC_NORETURN void foo(void);
2936 int main(int argc GCC_UNUSED, char *argv[[]] GCC_UNUSED) { (void)argc; (void)argv; return 0; }
2937 EOF
2938         cf_printf_attribute=no
2939         cf_scanf_attribute=no
2940         for cf_attribute in scanf printf unused noreturn
2941         do
2942                 CF_UPPER(cf_ATTRIBUTE,$cf_attribute)
2943                 cf_directive="__attribute__(($cf_attribute))"
2944                 echo "checking for $CC $cf_directive" 1>&AC_FD_CC
2945
2946                 case "$cf_attribute" in
2947                 (printf)
2948                         cf_printf_attribute=yes
2949                         cat >conftest.h <<EOF
2950 #define GCC_$cf_ATTRIBUTE 1
2951 EOF
2952                         ;;
2953                 (scanf)
2954                         cf_scanf_attribute=yes
2955                         cat >conftest.h <<EOF
2956 #define GCC_$cf_ATTRIBUTE 1
2957 EOF
2958                         ;;
2959                 (*)
2960                         cat >conftest.h <<EOF
2961 #define GCC_$cf_ATTRIBUTE $cf_directive
2962 EOF
2963                         ;;
2964                 esac
2965
2966                 if AC_TRY_EVAL(ac_compile); then
2967                         test -n "$verbose" && AC_MSG_RESULT(... $cf_attribute)
2968                         cat conftest.h >>confdefs.h
2969                         case "$cf_attribute" in
2970                         (noreturn)
2971                                 AC_DEFINE_UNQUOTED(GCC_NORETURN,$cf_directive,[Define to noreturn-attribute for gcc])
2972                                 ;;
2973                         (printf)
2974                                 cf_value='/* nothing */'
2975                                 if test "$cf_printf_attribute" != no ; then
2976                                         cf_value='__attribute__((format(printf,fmt,var)))'
2977                                         AC_DEFINE(GCC_PRINTF,1,[Define to 1 if the compiler supports gcc-like printf attribute.])
2978                                 fi
2979                                 AC_DEFINE_UNQUOTED(GCC_PRINTFLIKE(fmt,var),$cf_value,[Define to printf-attribute for gcc])
2980                                 ;;
2981                         (scanf)
2982                                 cf_value='/* nothing */'
2983                                 if test "$cf_scanf_attribute" != no ; then
2984                                         cf_value='__attribute__((format(scanf,fmt,var)))'
2985                                         AC_DEFINE(GCC_SCANF,1,[Define to 1 if the compiler supports gcc-like scanf attribute.])
2986                                 fi
2987                                 AC_DEFINE_UNQUOTED(GCC_SCANFLIKE(fmt,var),$cf_value,[Define to sscanf-attribute for gcc])
2988                                 ;;
2989                         (unused)
2990                                 AC_DEFINE_UNQUOTED(GCC_UNUSED,$cf_directive,[Define to unused-attribute for gcc])
2991                                 ;;
2992                         esac
2993                 fi
2994         done
2995 else
2996         ${FGREP-fgrep} define conftest.i >>confdefs.h
2997 fi
2998 rm -rf ./conftest*
2999 fi
3000 ])dnl
3001 dnl ---------------------------------------------------------------------------
3002 dnl CF_GCC_VERSION version: 8 updated: 2019/09/07 13:38:36
3003 dnl --------------
3004 dnl Find version of gcc, and (because icc/clang pretend to be gcc without being
3005 dnl compatible), attempt to determine if icc/clang is actually used.
3006 AC_DEFUN([CF_GCC_VERSION],[
3007 AC_REQUIRE([AC_PROG_CC])
3008 GCC_VERSION=none
3009 if test "$GCC" = yes ; then
3010         AC_MSG_CHECKING(version of $CC)
3011         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.]].*//'`"
3012         test -z "$GCC_VERSION" && GCC_VERSION=unknown
3013         AC_MSG_RESULT($GCC_VERSION)
3014 fi
3015 CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
3016 CF_CLANG_COMPILER(GCC,CLANG_COMPILER,CFLAGS)
3017 ])dnl
3018 dnl ---------------------------------------------------------------------------
3019 dnl CF_GCC_WARNINGS version: 41 updated: 2021/01/01 16:53:59
3020 dnl ---------------
3021 dnl Check if the compiler supports useful warning options.  There's a few that
3022 dnl we don't use, simply because they're too noisy:
3023 dnl
3024 dnl     -Wconversion (useful in older versions of gcc, but not in gcc 2.7.x)
3025 dnl     -Winline (usually not worthwhile)
3026 dnl     -Wredundant-decls (system headers make this too noisy)
3027 dnl     -Wtraditional (combines too many unrelated messages, only a few useful)
3028 dnl     -Wwrite-strings (too noisy, but should review occasionally).  This
3029 dnl             is enabled for ncurses using "--enable-const".
3030 dnl     -pedantic
3031 dnl
3032 dnl Parameter:
3033 dnl     $1 is an optional list of gcc warning flags that a particular
3034 dnl             application might want to use, e.g., "no-unused" for
3035 dnl             -Wno-unused
3036 dnl Special:
3037 dnl     If $with_ext_const is "yes", add a check for -Wwrite-strings
3038 dnl
3039 AC_DEFUN([CF_GCC_WARNINGS],
3040 [
3041 AC_REQUIRE([CF_GCC_VERSION])
3042 if test "x$have_x" = xyes; then CF_CONST_X_STRING fi
3043 cat > "conftest.$ac_ext" <<EOF
3044 #line __oline__ "${as_me:-configure}"
3045 int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
3046 EOF
3047 if test "$INTEL_COMPILER" = yes
3048 then
3049 # The "-wdXXX" options suppress warnings:
3050 # remark #1419: external declaration in primary source file
3051 # remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
3052 # remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
3053 # remark #193: zero used for undefined preprocessing identifier
3054 # remark #593: variable "curs_sb_left_arrow" was set but never used
3055 # remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
3056 # remark #869: parameter "tw" was never referenced
3057 # remark #981: operands are evaluated in unspecified order
3058 # warning #279: controlling expression is constant
3059
3060         AC_CHECKING([for $CC warning options])
3061         cf_save_CFLAGS="$CFLAGS"
3062         EXTRA_CFLAGS="$EXTRA_CFLAGS -Wall"
3063         for cf_opt in \
3064                 wd1419 \
3065                 wd1683 \
3066                 wd1684 \
3067                 wd193 \
3068                 wd593 \
3069                 wd279 \
3070                 wd810 \
3071                 wd869 \
3072                 wd981
3073         do
3074                 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
3075                 if AC_TRY_EVAL(ac_compile); then
3076                         test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
3077                         EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
3078                 fi
3079         done
3080         CFLAGS="$cf_save_CFLAGS"
3081 elif test "$GCC" = yes && test "$GCC_VERSION" != "unknown"
3082 then
3083         AC_CHECKING([for $CC warning options])
3084         cf_save_CFLAGS="$CFLAGS"
3085         cf_warn_CONST=""
3086         test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
3087         cf_gcc_warnings="Wignored-qualifiers Wlogical-op Wvarargs"
3088         test "x$CLANG_COMPILER" = xyes && cf_gcc_warnings=
3089         for cf_opt in W Wall \
3090                 Wbad-function-cast \
3091                 Wcast-align \
3092                 Wcast-qual \
3093                 Wdeclaration-after-statement \
3094                 Wextra \
3095                 Winline \
3096                 Wmissing-declarations \
3097                 Wmissing-prototypes \
3098                 Wnested-externs \
3099                 Wpointer-arith \
3100                 Wshadow \
3101                 Wstrict-prototypes \
3102                 Wundef Wno-inline $cf_gcc_warnings $cf_warn_CONST $1
3103         do
3104                 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
3105                 if AC_TRY_EVAL(ac_compile); then
3106                         test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
3107                         case "$cf_opt" in
3108                         (Winline)
3109                                 case "$GCC_VERSION" in
3110                                 ([[34]].*)
3111                                         CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
3112                                         continue;;
3113                                 esac
3114                                 ;;
3115                         (Wpointer-arith)
3116                                 case "$GCC_VERSION" in
3117                                 ([[12]].*)
3118                                         CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
3119                                         continue;;
3120                                 esac
3121                                 ;;
3122                         esac
3123                         EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
3124                 fi
3125         done
3126         CFLAGS="$cf_save_CFLAGS"
3127 fi
3128 rm -rf ./conftest*
3129
3130 AC_SUBST(EXTRA_CFLAGS)
3131 ])dnl
3132 dnl ---------------------------------------------------------------------------
3133 dnl CF_GETOPT_HEADER version: 8 updated: 2021/06/19 19:16:16
3134 dnl ----------------
3135 dnl Check for getopt's variables which are commonly defined in stdlib.h,
3136 dnl unistd.h or (nonstandard) in getopt.h
3137 AC_DEFUN([CF_GETOPT_HEADER],
3138 [
3139 AC_HAVE_HEADERS(unistd.h getopt.h)
3140 AC_CACHE_CHECK(for header declaring getopt variables,cf_cv_getopt_header,[
3141 cf_cv_getopt_header=none
3142 for cf_header in stdio.h stdlib.h unistd.h getopt.h
3143 do
3144 AC_TRY_COMPILE([
3145 #include <$cf_header>],
3146 [int x = optind; char *y = optarg; (void)x; (void)y],
3147 [cf_cv_getopt_header=$cf_header
3148  break])
3149 done
3150 ])
3151 if test "$cf_cv_getopt_header" != none ; then
3152         AC_DEFINE(HAVE_GETOPT_HEADER,1,[Define to 1 if getopt variables are declared in header])
3153 fi
3154 if test "$cf_cv_getopt_header" = getopt.h ; then
3155         AC_DEFINE(NEED_GETOPT_H,1,[Define to 1 if we must include getopt.h])
3156 fi
3157 ])dnl
3158 dnl ---------------------------------------------------------------------------
3159 dnl CF_GNATPREP_OPT_T version: 1 updated: 2014/08/02 18:37:25
3160 dnl -----------------
3161 AC_DEFUN([CF_GNATPREP_OPT_T],[
3162 AC_CACHE_CHECK(if GNATPREP supports -T option,cf_cv_gnatprep_opt_t,[
3163 cf_cv_gnatprep_opt_t=no
3164 gnatprep -T 2>/dev/null >/dev/null && cf_cv_gnatprep_opt_t=yes
3165 ])
3166 test "$cf_cv_gnatprep_opt_t" = yes && GNATPREP_OPTS="-T $GNATPREP_OPTS"
3167 AC_SUBST(GNATPREP_OPTS)
3168 ])dnl
3169 dnl ---------------------------------------------------------------------------
3170 dnl CF_GNAT_GENERICS version: 7 updated: 2021/01/01 13:31:04
3171 dnl ----------------
3172 AC_DEFUN([CF_GNAT_GENERICS],
3173 [
3174 AC_REQUIRE([CF_GNAT_VERSION])
3175
3176 AC_MSG_CHECKING(if GNAT supports generics)
3177 case "$cf_cv_gnat_version" in
3178 (3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*|[[1-9]][[0-9]].[[0-9]]*|20[[0-9]][[0-9]])
3179         cf_gnat_generics=yes
3180         ;;
3181 (*)
3182         cf_gnat_generics=no
3183         ;;
3184 esac
3185 AC_MSG_RESULT($cf_gnat_generics)
3186
3187 if test "$cf_gnat_generics" = yes
3188 then
3189         cf_compile_generics=generics
3190         cf_generic_objects="\${GENOBJS}"
3191 else
3192         cf_compile_generics=
3193         cf_generic_objects=
3194 fi
3195
3196 AC_SUBST(cf_compile_generics)
3197 AC_SUBST(cf_generic_objects)
3198 ])dnl
3199 dnl ---------------------------------------------------------------------------
3200 dnl CF_GNAT_PROJECTS version: 13 updated: 2021/01/02 17:09:14
3201 dnl ----------------
3202 dnl GNAT projects are configured with ".gpr" project files.
3203 dnl GNAT libraries are a further development, using the project feature.
3204 AC_DEFUN([CF_GNAT_PROJECTS],
3205 [
3206 AC_REQUIRE([CF_GNAT_VERSION])
3207 AC_REQUIRE([CF_DISABLE_GNAT_PROJECTS])
3208
3209 cf_gnat_libraries=no
3210 cf_gnat_projects=no
3211
3212 if test "$enable_gnat_projects" != no ; then
3213 AC_MSG_CHECKING(if GNAT supports project files)
3214 case "$cf_cv_gnat_version" in
3215 (3.[[0-9]]*)
3216         ;;
3217 (*)
3218         case "$cf_cv_system_name" in
3219         (cygwin*|msys*)
3220                 ;;
3221         (*)
3222                 rm -rf ./conftest* ./*~conftest*
3223                 if mkdir conftest.src conftest.bin conftest.lib
3224                 then
3225                         cd conftest.src
3226                         rm -rf ./conftest* ./*~conftest*
3227                         cat >>library.gpr <<CF_EOF
3228 project Library is
3229   Kind := External ("LIB_KIND");
3230   for Library_Name use "ConfTest";
3231   for Object_Dir use ".";
3232   for Library_ALI_Dir use External("LIBRARY_DIR");
3233   for Library_Version use External ("SONAME");
3234   for Library_Kind use Kind;
3235   for Library_Dir use External("BUILD_DIR");
3236   Source_Dir := External ("SOURCE_DIR");
3237   for Source_Dirs use (Source_Dir);
3238 end Library;
3239 CF_EOF
3240                         cat >>confpackage.ads <<CF_EOF
3241 package ConfPackage is
3242    procedure conftest;
3243 end ConfPackage;
3244 CF_EOF
3245                         cat >>confpackage.adb <<CF_EOF
3246 with Text_IO;
3247 package body ConfPackage is
3248    procedure conftest is
3249    begin
3250       Text_IO.Put ("Hello World");
3251       Text_IO.New_Line;
3252    end conftest;
3253 end ConfPackage;
3254 CF_EOF
3255                         if ( "$cf_ada_make" $ADAFLAGS \
3256                                         -Plibrary.gpr \
3257                                         -XBUILD_DIR="`cd ../conftest.bin;pwd`" \
3258                                         -XLIBRARY_DIR="`cd ../conftest.lib;pwd`" \
3259                                         -XSOURCE_DIR="`pwd`" \
3260                                         -XSONAME=libConfTest.so.1 \
3261                                         -XLIB_KIND=static 1>&AC_FD_CC 2>&1 ) ; then
3262                                 cf_gnat_projects=yes
3263                         fi
3264                         cd ..
3265                 fi
3266                 if test -f conftest.lib/confpackage.ali
3267                 then
3268                         cf_gnat_libraries=yes
3269                 fi
3270                 rm -rf ./conftest* ./*~conftest*
3271                 ;;
3272         esac
3273         ;;
3274 esac
3275 AC_MSG_RESULT($cf_gnat_projects)
3276 fi # enable_gnat_projects
3277
3278 if test "$cf_gnat_projects" = yes
3279 then
3280         AC_MSG_CHECKING(if GNAT supports libraries)
3281         AC_MSG_RESULT($cf_gnat_libraries)
3282 fi
3283
3284 USE_OLD_MAKERULES=""
3285 USE_GNAT_PROJECTS="#"
3286 USE_GNAT_MAKE_GPR="#"
3287 USE_GNAT_GPRBUILD="#"
3288
3289 if test "$cf_gnat_projects" = yes
3290 then
3291         USE_OLD_MAKERULES="#"
3292         USE_GNAT_PROJECTS=""
3293         if test "$cf_cv_VERSION_GPRBUILD" != no
3294         then
3295                 USE_GNAT_GPRBUILD=""
3296         elif test "$cf_cv_VERSION_GNATMAKE" != no
3297         then
3298                 USE_GNAT_MAKE_GPR=""
3299         else
3300                 AC_MSG_WARN(use old makefile rules since tools are missing)
3301         fi
3302 fi
3303
3304 if test "$cf_gnat_libraries" = yes
3305 then
3306         USE_GNAT_LIBRARIES=""
3307 else
3308         USE_GNAT_LIBRARIES="#"
3309 fi
3310
3311 AC_SUBST(USE_OLD_MAKERULES)
3312 AC_SUBST(USE_GNAT_PROJECTS)
3313 AC_SUBST(USE_GNAT_LIBRARIES)
3314 AC_SUBST(USE_GNAT_MAKE_GPR)
3315 AC_SUBST(USE_GNAT_GPRBUILD)
3316 ])dnl
3317 dnl ---------------------------------------------------------------------------
3318 dnl CF_GNAT_SIGINT version: 2 updated: 2021/01/01 13:31:04
3319 dnl --------------
3320 dnl Check if gnat supports SIGINT, and presumably tasking.  For the latter, it
3321 dnl is noted that gnat may compile a tasking unit even for configurations which
3322 dnl fail at runtime.
3323 AC_DEFUN([CF_GNAT_SIGINT],[
3324 AC_CACHE_CHECK(if GNAT supports SIGINT,cf_cv_gnat_sigint,[
3325 CF_GNAT_TRY_LINK([with Ada.Interrupts.Names;
3326
3327 package ConfTest is
3328
3329    pragma Warnings (Off);  --  the next pragma exists since 3.11p
3330    pragma Unreserve_All_Interrupts;
3331    pragma Warnings (On);
3332
3333    protected Process is
3334       procedure Stop;
3335       function Continue return Boolean;
3336       pragma Attach_Handler (Stop, Ada.Interrupts.Names.SIGINT);
3337    private
3338       Done : Boolean := False;
3339    end Process;
3340
3341 end ConfTest;],
3342 [package body ConfTest is
3343    protected body Process is
3344       procedure Stop is
3345       begin
3346          Done := True;
3347       end Stop;
3348       function Continue return Boolean is
3349       begin
3350          return not Done;
3351       end Continue;
3352    end Process;
3353 end ConfTest;],
3354         [cf_cv_gnat_sigint=yes],
3355         [cf_cv_gnat_sigint=no])])
3356
3357 if test "$cf_cv_gnat_sigint" = yes ; then
3358         USE_GNAT_SIGINT=""
3359 else
3360         USE_GNAT_SIGINT="#"
3361 fi
3362 AC_SUBST(USE_GNAT_SIGINT)
3363 ])dnl
3364 dnl ---------------------------------------------------------------------------
3365 dnl CF_GNAT_TRY_LINK version: 4 updated: 2021/01/01 13:31:04
3366 dnl ----------------
3367 dnl Verify that a test program compiles/links with GNAT.
3368 dnl $cf_ada_make is set to the program that compiles/links
3369 dnl $ADAFLAGS may be set to the GNAT flags.
3370 dnl
3371 dnl $1 is the text of the spec
3372 dnl $2 is the text of the body
3373 dnl $3 is the shell command to execute if successful
3374 dnl $4 is the shell command to execute if not successful
3375 AC_DEFUN([CF_GNAT_TRY_LINK],
3376 [
3377 rm -rf ./conftest* ./*~conftest*
3378 cat >>conftest.ads <<CF_EOF
3379 $1
3380 CF_EOF
3381 cat >>conftest.adb <<CF_EOF
3382 $2
3383 CF_EOF
3384 if ( "$cf_ada_make" $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
3385 ifelse($3,,      :,[      $3])
3386 ifelse($4,,,[else
3387    $4])
3388 fi
3389 rm -rf ./conftest* ./*~conftest*
3390 ])dnl
3391 dnl ---------------------------------------------------------------------------
3392 dnl CF_GNAT_TRY_RUN version: 6 updated: 2021/01/01 13:31:04
3393 dnl ---------------
3394 dnl Verify that a test program compiles and runs with GNAT
3395 dnl $cf_ada_make is set to the program that compiles/links
3396 dnl $ADAFLAGS may be set to the GNAT flags.
3397 dnl
3398 dnl $1 is the text of the spec
3399 dnl $2 is the text of the body
3400 dnl $3 is the shell command to execute if successful
3401 dnl $4 is the shell command to execute if not successful
3402 AC_DEFUN([CF_GNAT_TRY_RUN],
3403 [
3404 rm -rf ./conftest* ./*~conftest*
3405 cat >>conftest.ads <<CF_EOF
3406 $1
3407 CF_EOF
3408 cat >>conftest.adb <<CF_EOF
3409 $2
3410 CF_EOF
3411 if ( "$cf_ada_make" $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
3412    if ( ./conftest 1>&AC_FD_CC 2>&1 ) ; then
3413 ifelse($3,,      :,[      $3])
3414 ifelse($4,,,[   else
3415       $4])
3416    fi
3417 ifelse($4,,,[else
3418    $4])
3419 fi
3420 rm -rf ./conftest* ./*~conftest*
3421 ])dnl
3422 dnl ---------------------------------------------------------------------------
3423 dnl CF_GNAT_VERSION version: 22 updated: 2019/12/31 08:53:54
3424 dnl ---------------
3425 dnl $1 = cache variable to update
3426 dnl $2 = program name
3427 dnl Verify version of GNAT or related tool
3428 AC_DEFUN([CF_GNAT_VERSION],
3429 [
3430 AC_CACHE_CHECK(for ifelse($2,,gnat,$2) version, cf_cv_gnat_version,[
3431 cf_cv_gnat_version=`ifelse($2,,${cf_ada_make:-gnatmake},$2) --version 2>&1 | \
3432         grep '[[0-9]].[[0-9]][[0-9]]*' |\
3433         sed -e '2,$d' -e 's/[[^0-9 \.]]//g' -e 's/^[[ ]]*//' -e 's/ .*//'`
3434 ])
3435 test -z "$cf_cv_gnat_version" && cf_cv_gnat_version=no
3436 ifelse($1,,,[eval $1=$cf_cv_gnat_version; unset cf_cv_gnat_version])
3437 ])dnl
3438 dnl ---------------------------------------------------------------------------
3439 dnl CF_GNU_SOURCE version: 10 updated: 2018/12/10 20:09:41
3440 dnl -------------
3441 dnl Check if we must define _GNU_SOURCE to get a reasonable value for
3442 dnl _XOPEN_SOURCE, upon which many POSIX definitions depend.  This is a defect
3443 dnl (or misfeature) of glibc2, which breaks portability of many applications,
3444 dnl since it is interwoven with GNU extensions.
3445 dnl
3446 dnl Well, yes we could work around it...
3447 dnl
3448 dnl Parameters:
3449 dnl     $1 is the nominal value for _XOPEN_SOURCE
3450 AC_DEFUN([CF_GNU_SOURCE],
3451 [
3452 cf_gnu_xopen_source=ifelse($1,,500,$1)
3453
3454 AC_CACHE_CHECK(if this is the GNU C library,cf_cv_gnu_library,[
3455 AC_TRY_COMPILE([#include <sys/types.h>],[
3456         #if __GLIBC__ > 0 && __GLIBC_MINOR__ >= 0
3457                 return 0;
3458         #elif __NEWLIB__ > 0 && __NEWLIB_MINOR__ >= 0
3459                 return 0;
3460         #else
3461         #       error not GNU C library
3462         #endif],
3463         [cf_cv_gnu_library=yes],
3464         [cf_cv_gnu_library=no])
3465 ])
3466
3467 if test x$cf_cv_gnu_library = xyes; then
3468
3469         # With glibc 2.19 (13 years after this check was begun), _DEFAULT_SOURCE
3470         # was changed to help a little.  newlib incorporated the change about 4
3471         # years later.
3472         AC_CACHE_CHECK(if _DEFAULT_SOURCE can be used as a basis,cf_cv_gnu_library_219,[
3473                 cf_save="$CPPFLAGS"
3474                 CF_APPEND_TEXT(CPPFLAGS,-D_DEFAULT_SOURCE)
3475                 AC_TRY_COMPILE([#include <sys/types.h>],[
3476                         #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 19) || (__GLIBC__ > 2)
3477                                 return 0;
3478                         #elif (__NEWLIB__ == 2 && __NEWLIB_MINOR__ >= 4) || (__GLIBC__ > 3)
3479                                 return 0;
3480                         #else
3481                         #       error GNU C library __GLIBC__.__GLIBC_MINOR__ is too old
3482                         #endif],
3483                         [cf_cv_gnu_library_219=yes],
3484                         [cf_cv_gnu_library_219=no])
3485                 CPPFLAGS="$cf_save"
3486         ])
3487
3488         if test "x$cf_cv_gnu_library_219" = xyes; then
3489                 cf_save="$CPPFLAGS"
3490                 AC_CACHE_CHECK(if _XOPEN_SOURCE=$cf_gnu_xopen_source works with _DEFAULT_SOURCE,cf_cv_gnu_dftsrc_219,[
3491                         CF_ADD_CFLAGS(-D_DEFAULT_SOURCE -D_XOPEN_SOURCE=$cf_gnu_xopen_source)
3492                         AC_TRY_COMPILE([
3493                                 #include <limits.h>
3494                                 #include <sys/types.h>
3495                                 ],[
3496                                 #if (_XOPEN_SOURCE >= $cf_gnu_xopen_source) && (MB_LEN_MAX > 1)
3497                                         return 0;
3498                                 #else
3499                                 #       error GNU C library is too old
3500                                 #endif],
3501                                 [cf_cv_gnu_dftsrc_219=yes],
3502                                 [cf_cv_gnu_dftsrc_219=no])
3503                         ])
3504                 test "x$cf_cv_gnu_dftsrc_219" = "xyes" || CPPFLAGS="$cf_save"
3505         else
3506                 cf_cv_gnu_dftsrc_219=maybe
3507         fi
3508
3509         if test "x$cf_cv_gnu_dftsrc_219" != xyes; then
3510
3511                 AC_CACHE_CHECK(if we must define _GNU_SOURCE,cf_cv_gnu_source,[
3512                 AC_TRY_COMPILE([#include <sys/types.h>],[
3513                         #ifndef _XOPEN_SOURCE
3514                         #error  expected _XOPEN_SOURCE to be defined
3515                         #endif],
3516                         [cf_cv_gnu_source=no],
3517                         [cf_save="$CPPFLAGS"
3518                          CF_ADD_CFLAGS(-D_GNU_SOURCE)
3519                          AC_TRY_COMPILE([#include <sys/types.h>],[
3520                                 #ifdef _XOPEN_SOURCE
3521                                 #error  expected _XOPEN_SOURCE to be undefined
3522                                 #endif],
3523                                 [cf_cv_gnu_source=no],
3524                                 [cf_cv_gnu_source=yes])
3525                         CPPFLAGS="$cf_save"
3526                         ])
3527                 ])
3528
3529                 if test "$cf_cv_gnu_source" = yes
3530                 then
3531                 AC_CACHE_CHECK(if we should also define _DEFAULT_SOURCE,cf_cv_default_source,[
3532                         CF_APPEND_TEXT(CPPFLAGS,-D_GNU_SOURCE)
3533                         AC_TRY_COMPILE([#include <sys/types.h>],[
3534                                 #ifdef _DEFAULT_SOURCE
3535                                 #error  expected _DEFAULT_SOURCE to be undefined
3536                                 #endif],
3537                                 [cf_cv_default_source=no],
3538                                 [cf_cv_default_source=yes])
3539                         ])
3540                         if test "$cf_cv_default_source" = yes
3541                         then
3542                                 CF_APPEND_TEXT(CPPFLAGS,-D_DEFAULT_SOURCE)
3543                         fi
3544                 fi
3545         fi
3546
3547 fi
3548 ])dnl
3549 dnl ---------------------------------------------------------------------------
3550 dnl CF_GPP_LIBRARY version: 13 updated: 2021/01/01 13:31:04
3551 dnl --------------
3552 dnl If we're trying to use g++, test if libg++ is installed (a rather common
3553 dnl problem :-).  If we have the compiler but no library, we'll be able to
3554 dnl configure, but won't be able to build the c++ demo program.
3555 AC_DEFUN([CF_GPP_LIBRARY],
3556 [
3557 cf_cxx_library=unknown
3558 case "$cf_cv_system_name" in
3559 (os2*)
3560         cf_gpp_libname=gpp
3561         ;;
3562 (*)
3563         cf_gpp_libname=g++
3564         ;;
3565 esac
3566 if test "$GXX" = yes; then
3567         AC_MSG_CHECKING([for lib$cf_gpp_libname])
3568         cf_save="$LIBS"
3569         CF_ADD_LIB($cf_gpp_libname)
3570         AC_TRY_LINK([
3571 #include <$cf_gpp_libname/builtin.h>
3572         ],
3573         [two_arg_error_handler_t foo2 = lib_error_handler],
3574         [cf_cxx_library=yes
3575          CF_ADD_LIB($cf_gpp_libname,CXXLIBS)
3576          if test "$cf_gpp_libname" = cpp ; then
3577             AC_DEFINE(HAVE_GPP_BUILTIN_H,1,[Define to 1 if we have gpp builtin.h])
3578          else
3579             AC_DEFINE(HAVE_GXX_BUILTIN_H,1,[Define to 1 if we have g++ builtin.h])
3580          fi],
3581         [AC_TRY_LINK([
3582 #include <builtin.h>
3583         ],
3584         [two_arg_error_handler_t foo2 = lib_error_handler],
3585         [cf_cxx_library=yes
3586          CF_ADD_LIB($cf_gpp_libname,CXXLIBS)
3587          AC_DEFINE(HAVE_BUILTIN_H,1,[Define to 1 if we have builtin.h])],
3588         [cf_cxx_library=no])])
3589         LIBS="$cf_save"
3590         AC_MSG_RESULT($cf_cxx_library)
3591 fi
3592 ])dnl
3593 dnl ---------------------------------------------------------------------------
3594 dnl CF_GXX_VERSION version: 8 updated: 2017/02/11 14:48:57
3595 dnl --------------
3596 dnl Check for version of g++
3597 AC_DEFUN([CF_GXX_VERSION],[
3598 AC_REQUIRE([AC_PROG_CPP])
3599 GXX_VERSION=none
3600 if test "$GXX" = yes; then
3601         AC_MSG_CHECKING(version of ${CXX:-g++})
3602         GXX_VERSION="`${CXX:-g++} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
3603         if test -z "$GXX_VERSION"
3604         then
3605                 GXX_VERSION=unknown
3606                 GXX=no
3607         fi
3608         AC_MSG_RESULT($GXX_VERSION)
3609 fi
3610 ])dnl
3611 dnl ---------------------------------------------------------------------------
3612 dnl CF_GXX_WARNINGS version: 11 updated: 2021/01/08 16:50:55
3613 dnl ---------------
3614 dnl Check if the compiler supports useful warning options.
3615 dnl
3616 dnl Most of gcc's options apply to g++, except:
3617 dnl     -Wbad-function-cast
3618 dnl     -Wmissing-declarations
3619 dnl     -Wnested-externs
3620 dnl
3621 dnl Omit a few (for now):
3622 dnl     -Winline
3623 dnl
3624 dnl Parameter:
3625 dnl     $1 is an optional list of g++ warning flags that a particular
3626 dnl             application might want to use, e.g., "no-unused" for
3627 dnl             -Wno-unused
3628 dnl Special:
3629 dnl     If $with_ext_const is "yes", add a check for -Wwrite-strings
3630 dnl
3631 AC_DEFUN([CF_GXX_WARNINGS],
3632 [
3633
3634 CF_INTEL_COMPILER(GXX,INTEL_CPLUSPLUS,CXXFLAGS)
3635 CF_CLANG_COMPILER(GXX,CLANG_CPLUSPLUS,CXXFLAGS)
3636
3637 AC_REQUIRE([CF_GXX_VERSION])
3638
3639 AC_LANG_SAVE
3640 AC_LANG_CPLUSPLUS
3641
3642 cat > conftest.$ac_ext <<EOF
3643 #line __oline__ "configure"
3644 int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
3645 EOF
3646
3647 if test "$INTEL_CPLUSPLUS" = yes
3648 then
3649 # The "-wdXXX" options suppress warnings:
3650 # remark #1419: external declaration in primary source file
3651 # remark #1682: implicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
3652 # remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
3653 # remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
3654 # remark #193: zero used for undefined preprocessing identifier
3655 # remark #593: variable "curs_sb_left_arrow" was set but never used
3656 # remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
3657 # remark #869: parameter "tw" was never referenced
3658 # remark #981: operands are evaluated in unspecified order
3659 # warning #269: invalid format string conversion
3660
3661         AC_CHECKING([for $CC warning options])
3662         cf_save_CXXFLAGS="$CXXFLAGS"
3663         EXTRA_CXXFLAGS="-Wall"
3664         for cf_opt in \
3665                 wd1419 \
3666                 wd1682 \
3667                 wd1683 \
3668                 wd1684 \
3669                 wd193 \
3670                 wd279 \
3671                 wd593 \
3672                 wd810 \
3673                 wd869 \
3674                 wd981
3675         do
3676                 CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -$cf_opt"
3677                 if AC_TRY_EVAL(ac_compile); then
3678                         test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
3679                         EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
3680                 fi
3681         done
3682         CXXFLAGS="$cf_save_CXXFLAGS"
3683
3684 elif test "$GXX" = yes
3685 then
3686         AC_CHECKING([for $CXX warning options])
3687         cf_save_CXXFLAGS="$CXXFLAGS"
3688         EXTRA_CXXFLAGS="-W -Wall"
3689         cf_gxx_extra_warnings=""
3690         test "$with_ext_const" = yes && cf_gxx_extra_warnings="Wwrite-strings"
3691         case "$GXX_VERSION" in
3692         ([[1-2]].*)
3693                 ;;
3694         (*)
3695                 cf_gxx_extra_warnings="$cf_gxx_extra_warnings Weffc++"
3696                 ;;
3697         esac
3698         for cf_opt in \
3699                 Wabi \
3700                 fabi-version=0 \
3701                 Wextra \
3702                 Wignored-qualifiers \
3703                 Wlogical-op \
3704                 Woverloaded-virtual \
3705                 Wsign-promo \
3706                 Wsynth \
3707                 Wold-style-cast \
3708                 Wcast-align \
3709                 Wcast-qual \
3710                 Wpointer-arith \
3711                 Wshadow \
3712                 Wundef $cf_gxx_extra_warnings $1
3713         do
3714                 CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -Werror -$cf_opt"
3715                 if AC_TRY_EVAL(ac_compile); then
3716                         test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
3717                         EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
3718                 else
3719                         test -n "$verbose" && AC_MSG_RESULT(... no -$cf_opt)
3720                 fi
3721         done
3722         CXXFLAGS="$cf_save_CXXFLAGS"
3723 fi
3724
3725 rm -rf ./conftest*
3726 AC_LANG_RESTORE
3727 AC_SUBST(EXTRA_CXXFLAGS)
3728 ])dnl
3729 dnl ---------------------------------------------------------------------------
3730 dnl CF_HASHED_DB version: 7 updated: 2015/04/18 08:56:57
3731 dnl ------------
3732 dnl Look for an instance of the Berkeley hashed database.
3733 dnl
3734 dnl $1 = optional parameter, to specify install-prefix for the database.
3735 AC_DEFUN([CF_HASHED_DB],
3736 [
3737 ifelse([$1],,,[
3738 case $1 in
3739 (yes|*able*)
3740         ;;
3741 (*)
3742         if test -d "$1" ; then
3743                 CF_ADD_INCDIR($1/include)
3744                 CF_ADD_LIBDIR($1/lib)
3745         else
3746                 case "$1" in
3747                 (./*|../*|/*)
3748                         AC_MSG_WARN(no such directory $1)
3749                         ;;
3750                 (*)
3751                         CF_FIND_SUB_INCDIR($1)
3752                         CF_FIND_SUB_LIBDIR($1)
3753                         ;;
3754                 esac
3755         fi
3756 esac
3757 ])
3758 AC_CHECK_HEADER(db.h,[
3759 CF_HASHED_DB_VERSION
3760 if test "$cf_cv_hashed_db_version" = unknown ; then
3761         AC_MSG_ERROR(Cannot determine version of db)
3762 else
3763         CF_HASHED_DB_LIBS
3764         if test "$cf_cv_hashed_db_libs" = unknown ; then
3765                 AC_MSG_ERROR(Cannot determine library for db)
3766         elif test "$cf_cv_hashed_db_libs" != default ; then
3767                 CF_ADD_LIB($cf_cv_hashed_db_libs)
3768         fi
3769 fi
3770 ],[
3771         AC_MSG_ERROR(Cannot find db.h)
3772 ])
3773 ])dnl
3774 dnl ---------------------------------------------------------------------------
3775 dnl CF_HASHED_DB_LIBS version: 10 updated: 2021/01/02 17:09:14
3776 dnl -----------------
3777 dnl Given that we have the header and version for hashed database, find the
3778 dnl library information.
3779 AC_DEFUN([CF_HASHED_DB_LIBS],
3780 [
3781 AC_CACHE_CHECK(for db libraries, cf_cv_hashed_db_libs,[
3782 cf_cv_hashed_db_libs=unknown
3783 for cf_db_libs in "" db$cf_cv_hashed_db_version db-$cf_cv_hashed_db_version db ''
3784 do
3785         cf_save_libs="$LIBS"
3786         if test -n "$cf_db_libs"; then
3787                 CF_ADD_LIB($cf_db_libs)
3788         fi
3789         CF_MSG_LOG(checking for library $cf_db_libs)
3790         AC_TRY_LINK([
3791 $ac_includes_default
3792 #include <db.h>
3793 ],[
3794         char *path = "/tmp/foo";
3795 #ifdef DB_VERSION_MAJOR
3796 #if DB_VERSION_MAJOR >= 4
3797         DB *result = 0;
3798         db_create(&result, NULL, 0);
3799         result->open(result,
3800                 NULL,
3801                 path,
3802                 path,
3803                 DB_HASH,
3804                 DB_CREATE,
3805                 0644);
3806 #elif DB_VERSION_MAJOR >= 3
3807         DB *result = 0;
3808         db_create(&result, NULL, 0);
3809         result->open(result,
3810                 path,
3811                 path,
3812                 DB_HASH,
3813                 DB_CREATE,
3814                 0644);
3815 #elif DB_VERSION_MAJOR >= 2
3816         DB *result = 0;
3817         db_open(path,
3818                 DB_HASH,
3819                 DB_CREATE,
3820                 0644,
3821                 (DB_ENV *) 0,
3822                 (DB_INFO *) 0,
3823                 &result);
3824 #endif /* DB_VERSION_MAJOR */
3825 #else
3826         DB *result = dbopen(path,
3827                      2,
3828                      0644,
3829                      DB_HASH,
3830                      0);
3831 #endif
3832         ${cf_cv_main_return:-return}(result != 0)
3833 ],[
3834         if test -n "$cf_db_libs" ; then
3835                 cf_cv_hashed_db_libs=$cf_db_libs
3836         else
3837                 cf_cv_hashed_db_libs=default
3838         fi
3839         LIBS="$cf_save_libs"
3840         break
3841 ])
3842         LIBS="$cf_save_libs"
3843 done
3844 ])
3845 ])dnl
3846 dnl ---------------------------------------------------------------------------
3847 dnl CF_HASHED_DB_VERSION version: 4 updated: 2014/04/12 16:47:01
3848 dnl --------------------
3849 dnl Given that we have the header file for hashed database, find the version
3850 dnl information.
3851 AC_DEFUN([CF_HASHED_DB_VERSION],
3852 [
3853 AC_CACHE_CHECK(for version of db, cf_cv_hashed_db_version,[
3854 cf_cv_hashed_db_version=unknown
3855
3856 for cf_db_version in 1 2 3 4 5 6
3857 do
3858         CF_MSG_LOG(checking for db version $cf_db_version)
3859         AC_TRY_COMPILE([
3860 $ac_includes_default
3861 #include <db.h>
3862
3863 #ifdef DB_VERSION_MAJOR
3864         /* db2 (DB_VERSION_MAJOR=2) has also DB_VERSION_MINOR, tested with 7 */
3865 #if $cf_db_version == DB_VERSION_MAJOR
3866         /* ok */
3867 #else
3868         make an error
3869 #endif
3870 #else
3871 #if $cf_db_version == 1
3872         /* ok: assuming this is DB 1.8.5 */
3873 #else
3874         make an error
3875 #endif
3876 #endif
3877 ],[DBT *foo = 0],[
3878         cf_cv_hashed_db_version=$cf_db_version
3879         break
3880         ])
3881 done
3882 ])
3883 ])dnl
3884 dnl ---------------------------------------------------------------------------
3885 dnl CF_HEADER_PATH version: 15 updated: 2021/01/01 13:31:04
3886 dnl --------------
3887 dnl Construct a search-list of directories for a nonstandard header-file
3888 dnl
3889 dnl Parameters
3890 dnl     $1 = the variable to return as result
3891 dnl     $2 = the package name
3892 AC_DEFUN([CF_HEADER_PATH],
3893 [
3894 $1=
3895
3896 # collect the current set of include-directories from compiler flags
3897 cf_header_path_list=""
3898 if test -n "${CFLAGS}${CPPFLAGS}" ; then
3899         for cf_header_path in $CPPFLAGS $CFLAGS
3900         do
3901                 case "$cf_header_path" in
3902                 (-I*)
3903                         cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'`
3904                         CF_ADD_SUBDIR_PATH($1,$2,include,$cf_header_path,NONE)
3905                         cf_header_path_list="$cf_header_path_list [$]$1"
3906                         ;;
3907                 esac
3908         done
3909 fi
3910
3911 # add the variations for the package we are looking for
3912 CF_SUBDIR_PATH($1,$2,include)
3913
3914 test "$includedir" != NONE && \
3915 test "$includedir" != "/usr/include" && \
3916 test -d "$includedir" && {
3917         test -d "$includedir" &&    $1="[$]$1 $includedir"
3918         test -d "$includedir/$2" && $1="[$]$1 $includedir/$2"
3919 }
3920
3921 test "$oldincludedir" != NONE && \
3922 test "$oldincludedir" != "/usr/include" && \
3923 test -d "$oldincludedir" && {
3924         test -d "$oldincludedir"    && $1="[$]$1 $oldincludedir"
3925         test -d "$oldincludedir/$2" && $1="[$]$1 $oldincludedir/$2"
3926 }
3927
3928 $1="[$]$1 $cf_header_path_list"
3929 ])dnl
3930 dnl ---------------------------------------------------------------------------
3931 dnl CF_HELP_MESSAGE version: 4 updated: 2019/12/31 08:53:54
3932 dnl ---------------
3933 dnl Insert text into the help-message, for readability, from AC_ARG_WITH.
3934 AC_DEFUN([CF_HELP_MESSAGE],
3935 [CF_ACVERSION_CHECK(2.53,[],[
3936 AC_DIVERT_HELP($1)])dnl
3937 ])dnl
3938 dnl ---------------------------------------------------------------------------
3939 dnl CF_INCLUDE_DIRS version: 10 updated: 2014/09/19 20:58:42
3940 dnl ---------------
3941 dnl Construct the list of include-options according to whether we're building
3942 dnl in the source directory or using '--srcdir=DIR' option.
3943 AC_DEFUN([CF_INCLUDE_DIRS],
3944 [
3945 if test "$srcdir" != "."; then
3946         CPPFLAGS="-I\${srcdir}/../include $CPPFLAGS"
3947 fi
3948 CPPFLAGS="-I../include $CPPFLAGS"
3949 if test "$srcdir" != "."; then
3950         CPPFLAGS="-I\${srcdir} $CPPFLAGS"
3951 fi
3952 CPPFLAGS="-I. $CPPFLAGS"
3953 AC_SUBST(CPPFLAGS)
3954 ])dnl
3955 dnl ---------------------------------------------------------------------------
3956 dnl CF_INSTALL_OPTS version: 2 updated: 2018/08/18 12:19:21
3957 dnl ---------------
3958 dnl prompt for/fill-in useful install-program options
3959 AC_DEFUN([CF_INSTALL_OPTS],
3960 [
3961 CF_INSTALL_OPT_S
3962 CF_INSTALL_OPT_P
3963 CF_INSTALL_OPT_O
3964 ])dnl
3965 dnl ---------------------------------------------------------------------------
3966 dnl CF_INSTALL_OPT_O version: 3 updated: 2020/12/31 20:19:42
3967 dnl ----------------
3968 dnl Almost all "install" programs default to the current user's ownership.
3969 dnl Almost - MINIX is an exception.
3970 AC_DEFUN([CF_INSTALL_OPT_O],
3971 [
3972 AC_MSG_CHECKING(if install needs to be told about ownership)
3973 case `$ac_config_guess` in
3974 (*minix)
3975         with_install_o=yes
3976         ;;
3977 (*)
3978         with_install_o=no
3979         ;;
3980 esac
3981
3982 AC_MSG_RESULT($with_install_o)
3983 if test "x$with_install_o" = xyes
3984 then
3985         INSTALL_OPT_O="`id root|sed -e 's/uid=[[0-9]]*(/ -o /' -e 's/gid=[[0-9]]*(/ -g /' -e 's/ [[^=[:space:]]][[^=[:space:]]]*=.*/ /' -e 's/)//g'`"
3986 else
3987         INSTALL_OPT_O=
3988 fi
3989
3990 AC_SUBST(INSTALL_OPT_O)
3991 ])dnl
3992 dnl ---------------------------------------------------------------------------
3993 dnl CF_INSTALL_OPT_P version: 3 updated: 2021/01/01 13:31:04
3994 dnl ----------------
3995 dnl Some install-programs accept a "-p" option to preserve file modification
3996 dnl timestamps.  That can be useful as an install option, as well as a way to
3997 dnl avoid the need for ranlib after copying a static archive.
3998 AC_DEFUN([CF_INSTALL_OPT_P],
3999 [
4000 : "${INSTALL:=install}"
4001 AC_CACHE_CHECK(if install accepts -p option, cf_cv_install_p,[
4002         rm -rf ./conftest*
4003         date >conftest.in
4004         mkdir conftest.out
4005         sleep 3
4006         if $INSTALL -p conftest.in conftest.out 2>/dev/null
4007         then
4008                 if test -f conftest.out/conftest.in
4009                 then
4010                         test conftest.in -nt conftest.out/conftest.in 2>conftest.err && \
4011                         test conftest.out/conftest.in -nt conftest.in 2>conftest.err
4012                         if test -s conftest.err
4013                         then
4014                                 cf_cv_install_p=no
4015                         else
4016                                 cf_cv_install_p=yes
4017                         fi
4018                 else
4019                         cf_cv_install_p=no
4020                 fi
4021         else
4022                 cf_cv_install_p=no
4023         fi
4024         rm -rf ./conftest*
4025 ])
4026 ])dnl
4027 dnl ---------------------------------------------------------------------------
4028 dnl CF_INSTALL_OPT_S version: 3 updated: 2021/01/05 19:23:48
4029 dnl ----------------
4030 dnl By default, we should strip executables which are installed, but leave the
4031 dnl ability to suppress that for unit-testing.
4032 AC_DEFUN([CF_INSTALL_OPT_S],
4033 [
4034 AC_MSG_CHECKING(if you want to install stripped executables)
4035 CF_ARG_DISABLE(stripping,
4036         [  --disable-stripping     do not strip (debug info) installed executables],
4037         [enable_stripping=no],
4038         [enable_stripping=yes])
4039 AC_MSG_RESULT($enable_stripping)
4040
4041 if test "$enable_stripping" = yes
4042 then
4043         INSTALL_OPT_S="-s"
4044 else
4045         INSTALL_OPT_S=
4046 fi
4047 AC_SUBST(INSTALL_OPT_S)
4048 ])dnl
4049 dnl ---------------------------------------------------------------------------
4050 dnl CF_INTEL_COMPILER version: 8 updated: 2021/01/01 16:53:59
4051 dnl -----------------
4052 dnl Check if the given compiler is really the Intel compiler for Linux.  It
4053 dnl tries to imitate gcc, but does not return an error when it finds a mismatch
4054 dnl between prototypes, e.g., as exercised by CF_MISSING_CHECK.
4055 dnl
4056 dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
4057 dnl ensure that it is not mistaken for gcc/g++.  It is normally invoked from
4058 dnl the wrappers for gcc and g++ warnings.
4059 dnl
4060 dnl $1 = GCC (default) or GXX
4061 dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS
4062 dnl $3 = CFLAGS (default) or CXXFLAGS
4063 AC_DEFUN([CF_INTEL_COMPILER],[
4064 AC_REQUIRE([AC_CANONICAL_HOST])
4065 ifelse([$2],,INTEL_COMPILER,[$2])=no
4066
4067 if test "$ifelse([$1],,[$1],GCC)" = yes ; then
4068         case "$host_os" in
4069         (linux*|gnu*)
4070                 AC_MSG_CHECKING(if this is really Intel ifelse([$1],GXX,C++,C) compiler)
4071                 cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
4072                 ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -no-gcc"
4073                 AC_TRY_COMPILE([],[
4074 #ifdef __INTEL_COMPILER
4075 #else
4076 make an error
4077 #endif
4078 ],[ifelse([$2],,INTEL_COMPILER,[$2])=yes
4079 cf_save_CFLAGS="$cf_save_CFLAGS -we147"
4080 ],[])
4081                 ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
4082                 AC_MSG_RESULT($ifelse([$2],,INTEL_COMPILER,[$2]))
4083                 ;;
4084         esac
4085 fi
4086 ])dnl
4087 dnl ---------------------------------------------------------------------------
4088 dnl CF_ISASCII version: 4 updated: 2012/10/06 17:56:13
4089 dnl ----------
4090 dnl Check if we have either a function or macro for 'isascii()'.
4091 AC_DEFUN([CF_ISASCII],
4092 [
4093 AC_MSG_CHECKING(for isascii)
4094 AC_CACHE_VAL(cf_cv_have_isascii,[
4095         AC_TRY_LINK([#include <ctype.h>],[int x = isascii(' ')],
4096         [cf_cv_have_isascii=yes],
4097         [cf_cv_have_isascii=no])
4098 ])dnl
4099 AC_MSG_RESULT($cf_cv_have_isascii)
4100 test "$cf_cv_have_isascii" = yes && AC_DEFINE(HAVE_ISASCII,1,[Define to 1 if we have isascii()])
4101 ])dnl
4102 dnl ---------------------------------------------------------------------------
4103 dnl CF_LARGEFILE version: 12 updated: 2020/03/19 20:23:48
4104 dnl ------------
4105 dnl Add checks for large file support.
4106 AC_DEFUN([CF_LARGEFILE],[
4107 ifdef([AC_FUNC_FSEEKO],[
4108         AC_SYS_LARGEFILE
4109         if test "$enable_largefile" != no ; then
4110         AC_FUNC_FSEEKO
4111
4112         # Normally we would collect these definitions in the config.h,
4113         # but (like _XOPEN_SOURCE), some environments rely on having these
4114         # defined before any of the system headers are included.  Another
4115         # case comes up with C++, e.g., on AIX the compiler compiles the
4116         # header files by themselves before looking at the body files it is
4117         # told to compile.  For ncurses, those header files do not include
4118         # the config.h
4119         if test "$ac_cv_sys_large_files" != no
4120         then
4121                 CF_APPEND_TEXT(CPPFLAGS,-D_LARGE_FILES)
4122         fi
4123         if test "$ac_cv_sys_largefile_source" != no
4124         then
4125                 CF_APPEND_TEXT(CPPFLAGS,-D_LARGEFILE_SOURCE)
4126         fi
4127         if test "$ac_cv_sys_file_offset_bits" != no
4128         then
4129                 CF_APPEND_TEXT(CPPFLAGS,-D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits)
4130         fi
4131
4132         AC_CACHE_CHECK(whether to use struct dirent64, cf_cv_struct_dirent64,[
4133                 AC_TRY_COMPILE([
4134 #pragma GCC diagnostic error "-Wincompatible-pointer-types"
4135 #include <sys/types.h>
4136 #include <dirent.h>
4137                 ],[
4138                 /* if transitional largefile support is setup, this is true */
4139                 extern struct dirent64 * readdir(DIR *);
4140                 struct dirent64 *x = readdir((DIR *)0);
4141                 struct dirent *y = readdir((DIR *)0);
4142                 int z = x - y;
4143                 (void)z;
4144                 ],
4145                 [cf_cv_struct_dirent64=yes],
4146                 [cf_cv_struct_dirent64=no])
4147         ])
4148         test "$cf_cv_struct_dirent64" = yes && AC_DEFINE(HAVE_STRUCT_DIRENT64,1,[Define to 1 if we have struct dirent64])
4149         fi
4150 ])
4151 ])
4152 dnl ---------------------------------------------------------------------------
4153 dnl CF_LDFLAGS_STATIC version: 14 updated: 2021/01/02 17:09:14
4154 dnl -----------------
4155 dnl Check for compiler/linker flags used to temporarily force usage of static
4156 dnl libraries.  This depends on the compiler and platform.  Use this to help
4157 dnl ensure that the linker picks up a given library based on its position in
4158 dnl the list of linker options and libraries.
4159 AC_DEFUN([CF_LDFLAGS_STATIC],[
4160
4161 if test "$GCC" = yes ; then
4162         case "$cf_cv_system_name" in
4163         (OS/2*|os2*|aix[[4]]*|solaris2.1[[0-9]]|darwin*)
4164                 LDFLAGS_STATIC=
4165                 LDFLAGS_SHARED=
4166                 ;;
4167         (*)     # normally, except when broken
4168                 LDFLAGS_STATIC=-static
4169                 LDFLAGS_SHARED=-dynamic
4170                 ;;
4171         esac
4172 else
4173         case "$cf_cv_system_name" in
4174         (aix[[4-7]]*)   # from ld manpage
4175                 LDFLAGS_STATIC=-bstatic
4176                 LDFLAGS_SHARED=-bdynamic
4177                 ;;
4178         (hpux*)         # from ld manpage for hpux10.20, hpux11.11
4179                 # We could also use just "archive" and "shared".
4180                 LDFLAGS_STATIC=-Wl,-a,archive_shared
4181                 LDFLAGS_SHARED=-Wl,-a,shared_archive
4182                 ;;
4183         (irix*)         # from ld manpage IRIX64
4184                 LDFLAGS_STATIC=-Bstatic
4185                 LDFLAGS_SHARED=-Bdynamic
4186                 ;;
4187         (osf[[45]]*)    # from ld manpage osf4.0d, osf5.1
4188                 # alternative "-oldstyle_liblookup" (not in cc manpage)
4189                 LDFLAGS_STATIC=-noso
4190                 LDFLAGS_SHARED=-so_archive
4191                 ;;
4192         (solaris2*)
4193                 LDFLAGS_STATIC=-Bstatic
4194                 LDFLAGS_SHARED=-Bdynamic
4195                 ;;
4196         esac
4197 fi
4198
4199 if test -n "$LDFLAGS_STATIC" && test -n "$LDFLAGS_SHARED"
4200 then
4201         AC_MSG_CHECKING(if linker supports switching between static/dynamic)
4202
4203         rm -f libconftest.a
4204         cat >conftest.$ac_ext <<EOF
4205 #line __oline__ "configure"
4206 #include <stdio.h>
4207 int cf_ldflags_static(FILE *fp) { return fflush(fp); }
4208 EOF
4209         if AC_TRY_EVAL(ac_compile) ; then
4210                 ( $AR $ARFLAGS libconftest.a conftest.o ) 2>&AC_FD_CC 1>/dev/null
4211                 ( eval $RANLIB libconftest.a ) 2>&AC_FD_CC >/dev/null
4212         fi
4213         rm -f conftest.*
4214
4215         cf_save_LIBS="$LIBS"
4216
4217         LIBS="$LDFLAGS_STATIC -L`pwd` -lconftest $LDFLAGS_DYNAMIC $LIBS"
4218         AC_TRY_LINK([
4219 #line __oline__ "configure"
4220 #include <stdio.h>
4221 int cf_ldflags_static(FILE *fp);
4222 ],[
4223         return cf_ldflags_static(stdin);
4224 ],[
4225         # some linkers simply ignore the -dynamic
4226         case x`file "conftest$ac_exeext" 2>/dev/null` in
4227         (*static*)
4228                 cf_ldflags_static=no
4229                 ;;
4230         (*)
4231                 cf_ldflags_static=yes
4232                 ;;
4233         esac
4234 ],[cf_ldflags_static=no])
4235
4236         rm -f libconftest.*
4237         LIBS="$cf_save_LIBS"
4238
4239         AC_MSG_RESULT($cf_ldflags_static)
4240
4241         if test "$cf_ldflags_static" != yes
4242         then
4243                 LDFLAGS_STATIC=
4244                 LDFLAGS_SHARED=
4245         fi
4246 else
4247         LDFLAGS_STATIC=
4248         LDFLAGS_SHARED=
4249 fi
4250
4251 AC_SUBST(LDFLAGS_STATIC)
4252 AC_SUBST(LDFLAGS_SHARED)
4253 ])
4254 dnl ---------------------------------------------------------------------------
4255 dnl CF_LD_RPATH_OPT version: 9 updated: 2021/01/01 13:31:04
4256 dnl ---------------
4257 dnl For the given system and compiler, find the compiler flags to pass to the
4258 dnl loader to use the "rpath" feature.
4259 AC_DEFUN([CF_LD_RPATH_OPT],
4260 [
4261 AC_REQUIRE([CF_CHECK_CACHE])
4262
4263 LD_RPATH_OPT=
4264 if test "x$cf_cv_enable_rpath" != xno
4265 then
4266         AC_MSG_CHECKING(for an rpath option)
4267         case "$cf_cv_system_name" in
4268         (irix*)
4269                 if test "$GCC" = yes; then
4270                         LD_RPATH_OPT="-Wl,-rpath,"
4271                 else
4272                         LD_RPATH_OPT="-rpath "
4273                 fi
4274                 ;;
4275         (linux*|gnu*|k*bsd*-gnu|freebsd*)
4276                 LD_RPATH_OPT="-Wl,-rpath,"
4277                 ;;
4278         (openbsd[[2-9]].*|mirbsd*)
4279                 LD_RPATH_OPT="-Wl,-rpath,"
4280                 ;;
4281         (dragonfly*)
4282                 LD_RPATH_OPT="-rpath "
4283                 ;;
4284         (netbsd*)
4285                 LD_RPATH_OPT="-Wl,-rpath,"
4286                 ;;
4287         (osf*|mls+*)
4288                 LD_RPATH_OPT="-rpath "
4289                 ;;
4290         (solaris2*)
4291                 LD_RPATH_OPT="-R"
4292                 ;;
4293         (*)
4294                 ;;
4295         esac
4296         AC_MSG_RESULT($LD_RPATH_OPT)
4297
4298         case "x$LD_RPATH_OPT" in
4299         (x-R*)
4300                 AC_MSG_CHECKING(if we need a space after rpath option)
4301                 cf_save_LIBS="$LIBS"
4302                 CF_ADD_LIBS(${LD_RPATH_OPT}$libdir)
4303                 AC_TRY_LINK(, , cf_rpath_space=no, cf_rpath_space=yes)
4304                 LIBS="$cf_save_LIBS"
4305                 AC_MSG_RESULT($cf_rpath_space)
4306                 test "$cf_rpath_space" = yes && LD_RPATH_OPT="$LD_RPATH_OPT "
4307                 ;;
4308         esac
4309 fi
4310 ])dnl
4311 dnl ---------------------------------------------------------------------------
4312 dnl CF_LD_SEARCHPATH version: 4 updated: 2022/08/27 15:43:08
4313 dnl ----------------
4314 dnl Try to obtain the linker's search-path, for use in scripts.
4315 dnl
4316 dnl Ignore LD_LIBRARY_PATH, etc.
4317 AC_DEFUN([CF_LD_SEARCHPATH],[
4318 AC_CACHE_CHECK(for linker search path,cf_cv_ld_searchpath,[
4319
4320 if test "$cross_compiling" != yes ; then
4321
4322 # GNU binutils' ld does not involve permissions which may stop ldconfig.
4323 cf_pathlist=`${LD:-ld} --verbose 2>/dev/null | grep SEARCH_DIR | sed -e 's,SEARCH_DIR[[("=]][[("=]]*,,g' -e 's/"[[)]];//gp' | sort -u`
4324
4325 # The -NX options tell newer versions of Linux ldconfig to not attempt to
4326 # update the cache, which makes it run faster.
4327 test -z "$cf_pathlist" && \
4328         cf_pathlist=`(ldconfig -NX -v) 2>/dev/null | sed -e '/^[[       ]]/d' -e 's/:$//' | sort -u`
4329
4330 test -z "$cf_pathlist" &&
4331         cf_pathlist=`(ldconfig -v) 2>/dev/null | sed -n -e '/^[[        ]]/d' -e 's/:$//p' | sort -u`
4332
4333 # This works with OpenBSD 6.5, which lists only filenames
4334 test -z "$cf_pathlist" &&
4335         cf_pathlist=`(ldconfig -v) 2>/dev/null | sed -n -e 's,^Adding \(.*\)/.*[$],\1,p' | sort -u`
4336
4337 if test -z "$cf_pathlist"
4338 then
4339         # dyld default path with MacOS
4340         if test -f /usr/bin/otool && test "x`uname -s`" = xDarwin
4341         then
4342                 # do this to bypass check
4343                 cf_cv_ld_searchpath='$HOME/lib'
4344                 cf_pathlist="/usr/local/lib /lib /usr/lib"
4345         fi
4346 fi
4347
4348 if test -z "$cf_pathlist"
4349 then
4350         # Solaris is "SunOS"
4351         if test -f /usr/bin/isainfo && test "x`uname -s`" = xSunOS
4352         then
4353                 case x`(isainfo -b)` in
4354                 (x64)
4355                         cf_pathlist="$cf_pathlist /lib/64 /usr/lib/64"
4356                         ;;
4357                 (x32)
4358                         test -d /usr/ccs/lib && cf_pathlist="$cf_pathlist /usr/ccs/lib"
4359                         cf_pathlist="$cf_pathlist /lib /usr/lib"
4360                         ;;
4361                 (*)
4362                         AC_MSG_WARN(problem with Solaris architecture)
4363                         ;;
4364                 esac
4365         fi
4366 fi
4367
4368 if test -z "$cf_pathlist"
4369 then
4370         # HP-UX
4371         if test x"`uname -s`" = xHP-UX
4372         then
4373                 case x`getconf LONG_BIT` in
4374                 (x64)
4375                         cf_pathlist="/usr/lib/hpux64"
4376                         ;;
4377                 (x*)
4378                         cf_pathlist="/usr/lib/hpux32"
4379                         ;;
4380                 esac
4381         fi
4382 fi
4383
4384 fi
4385
4386 # If nothing else, assume it is conventional
4387 test -z "$cf_pathlist" && cf_pathlist="/usr/lib /lib"
4388
4389 # Finally, check that this is only directories
4390 for cf_path in [$]0 $cf_pathlist
4391 do
4392         if test -d "$cf_path"; then
4393                 test -n "$cf_cv_ld_searchpath" && cf_cv_ld_searchpath="${cf_cv_ld_searchpath} "
4394                 cf_cv_ld_searchpath="${cf_cv_ld_searchpath}${cf_path}"
4395         fi
4396 done
4397
4398 # Ensure that it is nonempty
4399 test -z "$cf_cv_ld_searchpath" && cf_cv_ld_searchpath=/usr/lib
4400 ])
4401
4402 LD_SEARCHPATH=`echo "$cf_cv_ld_searchpath"|sed -e 's/ /|/g'`
4403 AC_SUBST(LD_SEARCHPATH)
4404 ])dnl
4405 dnl ---------------------------------------------------------------------------
4406 dnl CF_LIBRARY_PATH version: 11 updated: 2021/01/01 13:31:04
4407 dnl ---------------
4408 dnl Construct a search-list of directories for a nonstandard library-file
4409 dnl
4410 dnl Parameters
4411 dnl     $1 = the variable to return as result
4412 dnl     $2 = the package name
4413 AC_DEFUN([CF_LIBRARY_PATH],
4414 [
4415 $1=
4416 cf_library_path_list=""
4417 if test -n "${LDFLAGS}${LIBS}" ; then
4418         for cf_library_path in $LDFLAGS $LIBS
4419         do
4420                 case "$cf_library_path" in
4421                 (-L*)
4422                         cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'`
4423                         CF_ADD_SUBDIR_PATH($1,$2,lib,$cf_library_path,NONE)
4424                         cf_library_path_list="$cf_library_path_list [$]$1"
4425                         ;;
4426                 esac
4427         done
4428 fi
4429
4430 CF_SUBDIR_PATH($1,$2,lib)
4431
4432 $1="$cf_library_path_list [$]$1"
4433 ])dnl
4434 dnl ---------------------------------------------------------------------------
4435 dnl CF_LIBTOOL_VERSION version: 1 updated: 2013/04/06 18:03:09
4436 dnl ------------------
4437 AC_DEFUN([CF_LIBTOOL_VERSION],[
4438 if test -n "$LIBTOOL" && test "$LIBTOOL" != none
4439 then
4440         cf_cv_libtool_version=`$LIBTOOL --version 2>&1 | sed -e '/^$/d' |sed -e '2,$d' -e 's/([[^)]]*)//g' -e 's/^[[^1-9]]*//' -e 's/[[^0-9.]].*//'`
4441 else
4442         cf_cv_libtool_version=
4443 fi
4444 test -z "$cf_cv_libtool_version" && unset cf_cv_libtool_version
4445 ])dnl
4446 dnl ---------------------------------------------------------------------------
4447 dnl CF_LIB_PREFIX version: 14 updated: 2021/01/01 13:31:04
4448 dnl -------------
4449 dnl Compute the library-prefix for the given host system
4450 dnl $1 = variable to set
4451 define([CF_LIB_PREFIX],
4452 [
4453         case "$cf_cv_system_name" in
4454         (OS/2*|os2*)
4455                 if test "$DFT_LWR_MODEL" = libtool; then
4456                         LIB_PREFIX='lib'
4457                 else
4458                         LIB_PREFIX=''
4459                 fi
4460                 ;;
4461         (*-msvc*)
4462                 LIB_PREFIX=''
4463                 ;;
4464         (*)     LIB_PREFIX='lib'
4465                 ;;
4466         esac
4467 ifelse($1,,,[$1=$LIB_PREFIX])
4468         AC_SUBST(LIB_PREFIX)
4469 ])dnl
4470 dnl ---------------------------------------------------------------------------
4471 dnl CF_LIB_RULES version: 97 updated: 2021/07/17 13:10:54
4472 dnl ------------
4473 dnl Append definitions and rules for the given models to the subdirectory
4474 dnl Makefiles, and the recursion rule for the top-level Makefile.  If the
4475 dnl subdirectory is a library-source directory, modify the Libs_To_Make list in
4476 dnl the corresponding makefile to list the models that we'll generate.
4477 dnl
4478 dnl For shared libraries, make a list of symbolic links to construct when
4479 dnl generating each library.  The convention used for Linux is the simplest
4480 dnl one:
4481 dnl     lib<name>.so    ->
4482 dnl     lib<name>.so.<major>    ->
4483 dnl     lib<name>.so.<maj>.<minor>
4484 dnl
4485 dnl Note: Libs_To_Make is mixed case, since it is not a pure autoconf variable.
4486 AC_DEFUN([CF_LIB_RULES],
4487 [AC_REQUIRE([AC_PROG_FGREP])dnl
4488 AC_REQUIRE([CF_MAKE_PHONY])dnl
4489
4490 cf_prefix=$LIB_PREFIX
4491 AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
4492
4493 case "$cf_cv_shlib_version" in
4494 (cygdll|msysdll|mingw|msvcdll)
4495         TINFO_NAME=$TINFO_ARG_SUFFIX
4496         TINFO_SUFFIX=.dll
4497         ;;
4498 esac
4499
4500 if test -n "$TINFO_SUFFIX" ; then
4501         case "$TINFO_SUFFIX" in
4502         (tw*)
4503                 TINFO_NAME="${TINFO_NAME}tw${EXTRA_SUFFIX}"
4504                 TINFO_SUFFIX=`echo "$TINFO_SUFFIX" | sed 's/^tw'$EXTRA_SUFFIX'//'`
4505                 ;;
4506         (t*)
4507                 TINFO_NAME="${TINFO_NAME}t${EXTRA_SUFFIX}"
4508                 TINFO_SUFFIX=`echo "$TINFO_SUFFIX" | sed 's/^t'$EXTRA_SUFFIX'//'`
4509                 ;;
4510         (w*)
4511                 TINFO_NAME="${TINFO_NAME}w${EXTRA_SUFFIX}"
4512                 TINFO_SUFFIX=`echo "$TINFO_SUFFIX" | sed 's/^w'$EXTRA_SUFFIX'//'`
4513                 ;;
4514         esac
4515 fi
4516
4517 for cf_dir in $SRC_SUBDIRS
4518 do
4519         if test ! -d "$srcdir/$cf_dir" ; then
4520                 continue
4521         elif test -f "$srcdir/$cf_dir/modules" ; then
4522
4523                 SHARED_LIB=
4524                 Libs_To_Make=
4525                 cf_awk_program=
4526                 if test -n "${cf_cv_abi_version}" && test "x${cf_cv_abi_version}" != "x5"
4527                 then
4528                         cf_awk_program="$cf_awk_program\
4529 /deprecated in ABI${cf_cv_abi_version}/ { next; }\
4530 { sub(\"NCURSES([[WT]]+)?\", \"&${cf_cv_abi_version}\"); }\
4531 "
4532                 fi
4533
4534                 if test "x$WILDCARD_SYMS" = xno
4535                 then
4536                         cf_awk_program="$cf_awk_program\
4537 /[[     ]]_\\*;/ { skip=1; next; }\
4538 "
4539                 fi
4540
4541                 if test "x$cf_awk_program" != "x"
4542                 then
4543                         cat >>$cf_dir/Makefile <<CF_EOF
4544
4545 # Generated by CF_LIB_RULES
4546 resulting.map: $UNALTERED_SYMS
4547         $AWK 'BEGIN { skip = 1; last=""; } \
4548 $cf_awk_program \
4549 { if ( last != "" && ( skip == 0 || \[$]\[$]0 !~ /}/ ) ) { print last; }\
4550  skip = 0; last = \[$]\[$]0; } \
4551 END { print last; }' < "$UNALTERED_SYMS" >\[$]@
4552
4553 distclean::
4554         rm -f resulting.map
4555 CF_EOF
4556                 fi
4557
4558                 for cf_item in $cf_LIST_MODELS
4559                 do
4560                         CF_LIB_SUFFIX($cf_item,cf_suffix,cf_depsuf)
4561                         if test "$cf_dir" = "c++"
4562                         then
4563                                 CF_MAP_LIB_BASENAME(cf_libname,cxx)
4564                         else
4565                                 CF_MAP_LIB_BASENAME(cf_libname,$cf_dir)
4566                         fi
4567                         test -z "$cf_libname" && cf_libname="$cf_dir"
4568                         if test "$cf_item" = shared ; then
4569                                 if test -n "${LIB_SUFFIX}"
4570                                 then
4571                                         cf_shared_suffix=`echo "$cf_suffix" | sed 's/^'"${USE_LIB_SUFFIX}"'//'`
4572                                 else
4573                                         cf_shared_suffix="$cf_suffix"
4574                                 fi
4575                                 if test "$cf_cv_do_symlinks" = yes ; then
4576                                         cf_version_name=
4577
4578                                         case "$cf_cv_shlib_version" in
4579                                         (rel)
4580                                                 cf_version_name=REL_VERSION
4581                                                 ;;
4582                                         (abi)
4583                                                 cf_version_name=ABI_VERSION
4584                                                 ;;
4585                                         esac
4586
4587                                         if test -n "$cf_version_name"
4588                                         then
4589                                                 case "$cf_cv_system_name" in
4590                                                 (darwin*)
4591                                                         # "w", etc?
4592                                                         cf_suffix="${USE_LIB_SUFFIX}"'.${'$cf_version_name'}'"$cf_shared_suffix"
4593                                                         ;;
4594                                                 (*)
4595                                                         cf_suffix="$cf_suffix"'.${'$cf_version_name'}'
4596                                                         ;;
4597                                                 esac
4598                                         fi
4599                                         if test -n "${USE_LIB_SUFFIX}"
4600                                         then
4601                                                 cf_shared_suffix=`echo "$cf_suffix" | sed 's/^'"${USE_LIB_SUFFIX}"'//'`
4602                                         else
4603                                                 cf_shared_suffix="$cf_suffix"
4604                                         fi
4605                                 fi
4606                                 # cygwin needs import library, and has unique naming convention
4607                                 # use autodetected ${cf_prefix} for import lib and static lib, but
4608                                 # use 'cyg' prefix for shared lib.
4609                                 case "$cf_cv_shlib_version" in
4610                                 (cygdll)
4611                                         cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
4612                                         cf_add_lib="../lib/cyg${cf_libname}${cf_cygsuf}"
4613                                         ;;
4614                                 (msysdll)
4615                                         cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
4616                                         cf_add_lib="../lib/msys-${cf_libname}${cf_cygsuf}"
4617                                         ;;
4618                                 (mingw)
4619                                         cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
4620                                         cf_add_lib="../lib/lib${cf_libname}${cf_cygsuf}"
4621                                         ;;
4622                                 (msvcdll)
4623                                         cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
4624                                         cf_add_lib="../lib/${cf_libname}${cf_cygsuf}"
4625                                         ;;
4626                                 (*)
4627                                         cf_add_lib=
4628                                         ;;
4629                                 esac
4630                                 if test -n "$cf_add_lib"
4631                                 then
4632                                         Libs_To_Make="$Libs_To_Make $cf_add_lib"
4633                                         continue
4634                                 fi
4635                         fi
4636                         cf_add_lib="../lib/${cf_prefix}${cf_libname}${cf_suffix}"
4637                         Libs_To_Make="$Libs_To_Make $cf_add_lib"
4638                 done
4639
4640                 if test "$cf_dir" = ncurses ; then
4641                         cf_subsets="$LIB_SUBSETS"
4642                         cf_r_parts="$cf_subsets"
4643                         cf_liblist="$Libs_To_Make"
4644
4645                         while test -n "$cf_r_parts"
4646                         do
4647                                 cf_l_parts=`echo "$cf_r_parts" |sed -e 's/ .*$//'`
4648                                 cf_r_parts=`echo "$cf_r_parts" |sed -e 's/^[[^ ]]* //'`
4649                                 if test "$cf_l_parts" != "$cf_r_parts" ; then
4650                                         cf_add_lib=
4651                                         case "$cf_l_parts" in
4652                                         (*termlib*)
4653                                                 cf_add_lib=`echo "$cf_liblist" |sed -e s%${LIB_NAME}${USE_LIB_SUFFIX}%${TINFO_LIB_SUFFIX}%g`
4654                                                 ;;
4655                                         (*ticlib*)
4656                                                 cf_add_lib=`echo "$cf_liblist" |sed -e s%${LIB_NAME}${USE_LIB_SUFFIX}%${TICS_LIB_SUFFIX}%g`
4657                                                 ;;
4658                                         (*)
4659                                                 break
4660                                                 ;;
4661                                         esac
4662                                         if test -n "$cf_add_lib"; then
4663                                                 Libs_To_Make="$cf_add_lib $Libs_To_Make"
4664                                         fi
4665                                 else
4666                                         break
4667                                 fi
4668                         done
4669                 else
4670                         cf_subsets=`echo "$LIB_SUBSETS" | sed -e 's/^termlib.* //'`
4671                 fi
4672
4673                 if test "$cf_dir" = c++; then
4674                         if test "x$with_shared_cxx" != xyes && test -n "$cf_shared_suffix"; then
4675                                 cf_list=
4676                                 for cf_item in $Libs_To_Make
4677                                 do
4678                                         case "$cf_item" in
4679                                         (*.a)
4680                                                 ;;
4681                                         (*)
4682                                                 cf_item=`echo "$cf_item" | sed -e "s,"$cf_shared_suffix",.a,"`
4683                                                 ;;
4684                                         esac
4685                                         for cf_test in $cf_list
4686                                         do
4687                                                 if test "$cf_test" = "$cf_item"
4688                                                 then
4689                                                         cf_LIST_MODELS=`echo "$cf_LIST_MODELS" | sed -e 's/normal//'`
4690                                                         cf_item=
4691                                                         break
4692                                                 fi
4693                                         done
4694                                         test -n "$cf_item" && cf_list="$cf_list $cf_item"
4695                                 done
4696                                 Libs_To_Make="$cf_list"
4697                         fi
4698                 fi
4699
4700                 sed -e "s%@Libs_To_Make@%$Libs_To_Make%" \
4701                     -e "s%@SHARED_LIB@%$SHARED_LIB%" \
4702                         "$cf_dir/Makefile" >$cf_dir/Makefile.out
4703                 mv "$cf_dir/Makefile.out" "$cf_dir/Makefile"
4704
4705                 $AWK -f "$srcdir/mk-0th.awk" \
4706                         libname="${cf_dir}${LIB_SUFFIX}" subsets="$LIB_SUBSETS" ticlib="$TICS_LIB_SUFFIX" termlib="$TINFO_LIB_SUFFIX" \
4707                         "$srcdir/$cf_dir/modules" >>$cf_dir/Makefile
4708
4709                 for cf_subset in $cf_subsets
4710                 do
4711                         cf_subdirs=
4712                         for cf_item in $cf_LIST_MODELS
4713                         do
4714
4715                         echo "Appending rules for ${cf_item} model (${cf_dir}: ${cf_subset})"
4716                         CF_UPPER(cf_ITEM,$cf_item)
4717
4718                         CXX_MODEL=$cf_ITEM
4719                         if test "$CXX_MODEL" = SHARED; then
4720                                 case "$cf_cv_shlib_version" in
4721                                 (cygdll|msysdll|mingw|msvcdll)
4722                                         test "x$with_shared_cxx" = xno && CF_VERBOSE(overriding CXX_MODEL to SHARED)
4723                                         with_shared_cxx=yes
4724                                         ;;
4725                                 (*)
4726                                         test "x$with_shared_cxx" = xno && CXX_MODEL=NORMAL
4727                                         ;;
4728                                 esac
4729                         fi
4730
4731                         CF_LIB_SUFFIX($cf_item,cf_suffix,cf_depsuf)
4732                         CF_OBJ_SUBDIR($cf_item,cf_subdir)
4733
4734                         # Test for case where we build libtinfo with a different name.
4735                         cf_libname=$cf_dir
4736                         if test "$cf_dir" = ncurses ; then
4737                                 case "$cf_subset" in
4738                                 (*base*)
4739                                         cf_libname=${cf_libname}$USE_LIB_SUFFIX
4740                                         ;;
4741                                 (*termlib*)
4742                                         cf_libname=$TINFO_LIB_SUFFIX
4743                                         ;;
4744                                 (ticlib*)
4745                                         cf_libname=$TICS_LIB_SUFFIX
4746                                         ;;
4747                                 esac
4748                         elif test "$cf_dir" = c++ ; then
4749                                 CF_MAP_LIB_BASENAME(cf_libname,cxx)
4750                                 cf_libname=${cf_libname}$USE_LIB_SUFFIX
4751                         else
4752                                 CF_MAP_LIB_BASENAME(cf_libname,$cf_dir)
4753                                 cf_libname=${cf_libname}$USE_LIB_SUFFIX
4754                         fi
4755                         if test -n "${USE_ARG_SUFFIX}" ; then
4756                                 # undo $USE_LIB_SUFFIX add-on in CF_LIB_SUFFIX
4757                                 cf_suffix=`echo "$cf_suffix" |sed -e "s%^${USE_LIB_SUFFIX}%%"`
4758                         fi
4759
4760                         # These dependencies really are for development, not
4761                         # builds, but they are useful in porting, too.
4762                         cf_depend="../include/ncurses_cfg.h"
4763                         if test "$srcdir" = "."; then
4764                                 cf_reldir="."
4765                         else
4766                                 cf_reldir="\${srcdir}"
4767                         fi
4768
4769                         if test -f "$srcdir/$cf_dir/$cf_dir.priv.h" ; then
4770                                 cf_depend="$cf_depend $cf_reldir/$cf_dir.priv.h"
4771                         elif test -f "$srcdir/$cf_dir/curses.priv.h" ; then
4772                                 cf_depend="$cf_depend $cf_reldir/curses.priv.h"
4773                         fi
4774
4775                         cf_dir_suffix=
4776                         old_cf_suffix="$cf_suffix"
4777                         if test "$cf_cv_shlib_version_infix" = yes ; then
4778                         if test -n "$USE_LIB_SUFFIX" ; then
4779                                 case "$USE_LIB_SUFFIX" in
4780                                 (tw*)
4781                                         cf_libname=`echo "$cf_libname" | sed 's/tw'$EXTRA_SUFFIX'$//'`
4782                                         cf_suffix=`echo "$cf_suffix" | sed 's/^tw'$EXTRA_SUFFIX'//'`
4783                                         cf_dir_suffix=tw$EXTRA_SUFFIX
4784                                         ;;
4785                                 (t*)
4786                                         cf_libname=`echo "$cf_libname" | sed 's/t'$EXTRA_SUFFIX'$//'`
4787                                         cf_suffix=`echo "$cf_suffix" | sed 's/^t'$EXTRA_SUFFIX'//'`
4788                                         cf_dir_suffix=t$EXTRA_SUFFIX
4789                                         ;;
4790                                 (w*)
4791                                         cf_libname=`echo "$cf_libname" | sed 's/w'$EXTRA_SUFFIX'$//'`
4792                                         cf_suffix=`echo "$cf_suffix" | sed 's/^w'$EXTRA_SUFFIX'//'`
4793                                         cf_dir_suffix=w$EXTRA_SUFFIX
4794                                         ;;
4795                                 (*)
4796                                         cf_libname=`echo "$cf_libname" | sed 's/'$EXTRA_SUFFIX'$//'`
4797                                         cf_suffix=`echo "$cf_suffix" | sed 's/^'$EXTRA_SUFFIX'//'`
4798                                         cf_dir_suffix=$EXTRA_SUFFIX
4799                                         ;;
4800                                 esac
4801                         fi
4802                         fi
4803
4804                         $AWK -f "$srcdir/mk-1st.awk" \
4805                                 name=${cf_libname}${cf_dir_suffix} \
4806                                 traces=$LIB_TRACING \
4807                                 MODEL=$cf_ITEM \
4808                                 CXX_MODEL=$CXX_MODEL \
4809                                 LIB_SUFFIX=$LIB_SUFFIX \
4810                                 USE_LIB_SUFFIX=$USE_LIB_SUFFIX \
4811                                 make_phony="${cf_cv_make_PHONY:-no}" \
4812                                 model=$cf_subdir \
4813                                 prefix=$cf_prefix \
4814                                 suffix=$cf_suffix \
4815                                 subset=$cf_subset \
4816                                 driver=$cf_cv_term_driver \
4817                                 SymLink="$LN_S" \
4818                                 TermlibRoot=$TINFO_NAME \
4819                                 TermlibSuffix=$TINFO_SUFFIX \
4820                                 ShlibVer=$cf_cv_shlib_version \
4821                                 ShlibVerInfix=$cf_cv_shlib_version_infix \
4822                                 ReLink=${cf_cv_do_relink:-no} \
4823                                 ReRanlib=${cf_cv_do_reranlib:-yes} \
4824                                 DoLinks=$cf_cv_do_symlinks \
4825                                 rmSoLocs=$cf_cv_rm_so_locs \
4826                                 ldconfig="$LDCONFIG" \
4827                                 overwrite=$WITH_OVERWRITE \
4828                                 depend="$cf_depend" \
4829                                 host="$host" \
4830                                 libtool_version="$LIBTOOL_VERSION" \
4831                                 "$srcdir/$cf_dir/modules" >>$cf_dir/Makefile
4832
4833                         cf_suffix="$old_cf_suffix"
4834
4835                         for cf_subdir2 in $cf_subdirs lib
4836                         do
4837                                 test "$cf_subdir" = "$cf_subdir2" && break
4838                         done
4839                         test "${cf_subset}.${cf_subdir2}" != "${cf_subset}.${cf_subdir}" && \
4840                         $AWK -f "$srcdir/mk-2nd.awk" \
4841                                 name=$cf_dir \
4842                                 traces=$LIB_TRACING \
4843                                 MODEL=$cf_ITEM \
4844                                 model=$cf_subdir \
4845                                 subset=$cf_subset \
4846                                 srcdir=$srcdir \
4847                                 echo=$WITH_ECHO \
4848                                 crenames=$cf_cv_prog_CC_c_o \
4849                                 cxxrenames=$cf_cv_prog_CXX_c_o \
4850                                 "$srcdir/$cf_dir/modules" >>$cf_dir/Makefile
4851                         cf_subdirs="$cf_subdirs $cf_subdir"
4852                         done
4853                 done
4854         fi
4855
4856         echo '  ( cd '$cf_dir' && ${MAKE} ${TOP_MFLAGS} [$]@ )' >>Makefile
4857 done
4858
4859 echo >> Makefile
4860 echo '# generated by CF_LIB_RULES' >> Makefile
4861
4862 if test "x$cf_cv_make_PHONY" = xyes ; then
4863         cat >> Makefile <<-CF_EOF
4864
4865         .PHONY :        libs
4866         .PHONY :        lintlib
4867         .PHONY :        install.includes
4868         .PHONY :        uninstall.includes
4869         .PHONY :        install.libs
4870         .PHONY :        uninstall.libs
4871 CF_EOF
4872 fi
4873
4874 for cf_dir in $SRC_SUBDIRS
4875 do
4876         if test ! -d "$srcdir/$cf_dir" ; then
4877                 continue
4878         fi
4879
4880         if test -f "$cf_dir/Makefile" ; then
4881                 case "$cf_dir" in
4882                 (Ada95)
4883                         echo 'libs \' >> Makefile
4884                         echo 'install.libs \' >> Makefile
4885                         echo 'uninstall.libs ::' >> Makefile
4886                         echo '  ( cd '$cf_dir' && ${MAKE} ${TOP_MFLAGS} [$]@ )' >> Makefile
4887                         ;;
4888                 esac
4889         fi
4890
4891         if test -f "$srcdir/$cf_dir/modules" ; then
4892
4893                 if test "x$cf_cv_make_PHONY" = xyes ; then
4894                         cat >> Makefile <<-CF_EOF
4895
4896                         .PHONY :        install.$cf_dir
4897                         .PHONY :        uninstall.$cf_dir
4898 CF_EOF
4899                 fi
4900
4901                 echo >> Makefile
4902                 if test -f "$srcdir/$cf_dir/headers" ; then
4903 cat >> Makefile <<CF_EOF
4904 install.includes \\
4905 uninstall.includes \\
4906 CF_EOF
4907                 fi
4908
4909 cat >> Makefile <<CF_EOF
4910 lint \\
4911 libs \\
4912 lintlib \\
4913 install.libs \\
4914 uninstall.libs \\
4915 install.$cf_dir \\
4916 uninstall.$cf_dir ::
4917         ( cd "$cf_dir" && \${MAKE} \${TOP_MFLAGS} \[$]@ )
4918 CF_EOF
4919         elif test -f "$srcdir/$cf_dir/headers" ; then
4920 cat >> Makefile <<CF_EOF
4921
4922 libs \\
4923 install.libs \\
4924 uninstall.libs \\
4925 install.includes \\
4926 uninstall.includes ::
4927         ( cd "$cf_dir" && \${MAKE} \${TOP_MFLAGS} \[$]@ )
4928 CF_EOF
4929 fi
4930 done
4931
4932 if test "x$cf_cv_make_PHONY" = xyes ; then
4933         cat >> Makefile <<-CF_EOF
4934
4935         .PHONY :        install.data
4936         .PHONY :        uninstall.data
4937 CF_EOF
4938 fi
4939
4940 if test "x$cf_with_db_install" = xyes; then
4941 cat >> Makefile <<CF_EOF
4942
4943 install.libs uninstall.libs \\
4944 install.data uninstall.data ::
4945 $MAKE_TERMINFO  ( cd misc && \${MAKE} \${TOP_MFLAGS} \[$]@ )
4946 CF_EOF
4947 else
4948 cat >> Makefile <<CF_EOF
4949
4950 install.libs uninstall.libs ::
4951         ( cd misc && \${MAKE} \${TOP_MFLAGS} \[$]@ )
4952 CF_EOF
4953 fi
4954
4955 if test "x$cf_with_manpages" = xyes; then
4956
4957 if test "x$cf_cv_make_PHONY" = xyes ; then
4958         cat >> Makefile <<-CF_EOF
4959
4960         .PHONY :        install.man
4961         .PHONY :        uninstall.man
4962 CF_EOF
4963 fi
4964
4965 cat >> Makefile <<CF_EOF
4966
4967 install.man \\
4968 uninstall.man ::
4969         ( cd man && \${MAKE} \${TOP_MFLAGS} \[$]@ )
4970 CF_EOF
4971 fi
4972
4973 cat >> Makefile <<CF_EOF
4974
4975 distclean ::
4976         rm -f config.cache config.log config.status Makefile include/ncurses_cfg.h
4977         rm -f headers.sh headers.sed mk_shared_lib.sh
4978         rm -f edit_man.* man_alias.*
4979         rm -rf \${DIRS_TO_MAKE}
4980 CF_EOF
4981
4982 # Special case: tack's manpage lives in its own directory.
4983 if test "x$cf_with_manpages" = xyes; then
4984 if test "x$cf_with_tack" = "xyes"; then
4985 cat >> Makefile <<CF_EOF
4986
4987 install.man \\
4988 uninstall.man ::
4989         ( cd tack && \${MAKE} \${TOP_MFLAGS} \[$]@ )
4990 CF_EOF
4991 fi
4992 fi
4993
4994 dnl If we're installing into a subdirectory of /usr/include, etc., we should
4995 dnl prepend the subdirectory's name to the "#include" paths.  It won't hurt
4996 dnl anything, and will make it more standardized.  It's awkward to decide this
4997 dnl at configuration because of quoting, so we'll simply make all headers
4998 dnl installed via a script that can do the right thing.
4999
5000 rm -f headers.sed headers.sh
5001
5002 dnl ( generating this script makes the makefiles a little tidier :-)
5003 echo creating headers.sh
5004 cat >headers.sh <<CF_EOF
5005 #! $SHELL
5006 # This shell script is generated by the 'configure' script.  It is invoked in a
5007 # subdirectory of the build tree.  It generates a sed-script in the parent
5008 # directory that is used to adjust includes for header files that reside in a
5009 # subdirectory of /usr/include, etc.
5010 PRG=""
5011 while test \[$]# != 3
5012 do
5013 PRG="\$PRG \[$]1"; shift
5014 done
5015 DST=\[$]1
5016 REF=\[$]2
5017 SRC=\[$]3
5018 TMPSRC=\${TMPDIR:-/tmp}/\`basename \$SRC\`\$\$
5019 TMPSED=\${TMPDIR:-/tmp}/headers.sed\$\$
5020 echo installing \$SRC in \$DST
5021 CF_EOF
5022
5023 if test "$WITH_CURSES_H" = yes; then
5024         cat >>headers.sh <<CF_EOF
5025 case \$DST in
5026 (/*/include/*)
5027         END=\`basename \$DST\`
5028         for i in \`cat \$REF/../*/headers |${FGREP-fgrep} -v "#"\`
5029         do
5030                 NAME=\`basename \$i\`
5031                 echo "s/<\$NAME>/<\$END\/\$NAME>/" >> \$TMPSED
5032         done
5033         ;;
5034 (*)
5035         echo "" >> \$TMPSED
5036         ;;
5037 esac
5038 CF_EOF
5039
5040 else
5041         cat >>headers.sh <<CF_EOF
5042 case \$DST in
5043 (/*/include/*)
5044         END=\`basename \$DST\`
5045         for i in \`cat \$REF/../*/headers |${FGREP-fgrep} -v "#"\`
5046         do
5047                 NAME=\`basename \$i\`
5048                 if test "\$NAME" = "curses.h"
5049                 then
5050                         echo "s/<curses.h>/<ncurses.h>/" >> \$TMPSED
5051                         NAME=ncurses.h
5052                 fi
5053                 echo "s/<\$NAME>/<\$END\/\$NAME>/" >> \$TMPSED
5054         done
5055         ;;
5056 (*)
5057         echo "s/<curses.h>/<ncurses.h>/" >> \$TMPSED
5058         ;;
5059 esac
5060 CF_EOF
5061 fi
5062 cat >>headers.sh <<CF_EOF
5063 rm -f \$TMPSRC
5064 sed -f \$TMPSED \$SRC > \$TMPSRC
5065 NAME=\`basename \$SRC\`
5066 CF_EOF
5067 if test "$WITH_CURSES_H" != yes; then
5068         cat >>headers.sh <<CF_EOF
5069 test "\$NAME" = "curses.h" && NAME=ncurses.h
5070 CF_EOF
5071 fi
5072 cat >>headers.sh <<CF_EOF
5073 # Just in case someone gzip'd manpages, remove the conflicting copy.
5074 test -f \$DST/\$NAME.gz && rm -f \$DST/\$NAME.gz
5075
5076 eval \$PRG \$TMPSRC \$DST/\$NAME
5077 rm -f \$TMPSRC \$TMPSED
5078 CF_EOF
5079
5080 chmod 0755 headers.sh
5081
5082 for cf_dir in $SRC_SUBDIRS
5083 do
5084         if test ! -d "$srcdir/$cf_dir" ; then
5085                 continue
5086         fi
5087
5088         if test -f "$srcdir/$cf_dir/headers" ; then
5089                 $AWK -f "$srcdir/mk-hdr.awk" \
5090                         subset="$LIB_SUBSETS" \
5091                         compat="$WITH_CURSES_H" \
5092                         "$srcdir/$cf_dir/headers" >>$cf_dir/Makefile
5093         fi
5094
5095         if test -f "$srcdir/$cf_dir/modules" ; then
5096                 if test "$cf_dir" != "c++" ; then
5097                         if test "x$cf_cv_make_PHONY" = xyes ; then
5098                                 cat >> $cf_dir/Makefile <<-CF_EOF
5099
5100                                 .PHONY :        depend
5101 CF_EOF
5102                         fi
5103
5104                         cat >>$cf_dir/Makefile <<"CF_EOF"
5105 depend : ${AUTO_SRC}
5106         makedepend -- ${CPPFLAGS} -- ${C_SRC}
5107
5108 # DO NOT DELETE THIS LINE -- make depend depends on it.
5109 CF_EOF
5110                 fi
5111         fi
5112 done
5113 AC_SUBST(Libs_To_Make)
5114 ])dnl
5115 dnl ---------------------------------------------------------------------------
5116 dnl CF_LIB_SONAME version: 9 updated: 2021/01/04 18:48:01
5117 dnl -------------
5118 dnl Find the and soname for the given shared library.  Set the cache variable
5119 dnl cf_cv_$3_soname to this, unless it is not found.  Then set the cache
5120 dnl variable to "unknown".
5121 dnl
5122 dnl $1 = headers
5123 dnl $2 = code
5124 dnl $3 = library name
5125 AC_DEFUN([CF_LIB_SONAME],
5126 [AC_REQUIRE([AC_PROG_FGREP])dnl
5127
5128 AC_CACHE_CHECK(for soname of $3 library,cf_cv_$3_soname,[
5129
5130 cf_cv_$3_soname=unknown
5131 if test "$cross_compiling" != yes ; then
5132 cat >conftest.$ac_ext <<CF_EOF
5133 $1
5134 int main(void)
5135 {
5136 $2
5137         ${cf_cv_main_return:-return}(0);
5138 }
5139 CF_EOF
5140 cf_save_LIBS="$LIBS"
5141         CF_ADD_LIB($3)
5142         if AC_TRY_EVAL(ac_compile) ; then
5143                 if AC_TRY_EVAL(ac_link) ; then
5144                         cf_cv_$3_soname="`ldd \"conftest$ac_exeext\" 2>/dev/null | sed -e 's,^.*/,,' -e 's, .*$,,' | ${FGREP-fgrep} lib$3.`"
5145                         test -z "$cf_cv_$3_soname" && cf_cv_$3_soname=unknown
5146                 fi
5147         fi
5148 rm -rf ./conftest*
5149 LIBS="$cf_save_LIBS"
5150 fi
5151 ])
5152 ])
5153 dnl ---------------------------------------------------------------------------
5154 dnl CF_LIB_SUFFIX version: 28 updated: 2021/01/01 16:53:59
5155 dnl -------------
5156 dnl Compute the library file-suffix from the given model name
5157 dnl $1 = model name
5158 dnl $2 = variable to set (the nominal library suffix)
5159 dnl $3 = dependency variable to set (actual filename)
5160 dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
5161 AC_DEFUN([CF_LIB_SUFFIX],
5162 [
5163         case X$1 in
5164         (Xlibtool)
5165                 $2='.la'
5166                 $3=[$]$2
5167                 ;;
5168         (Xdebug)
5169                 case "$cf_cv_system_name" in
5170                 (*-msvc*)
5171                         $2='_g.lib'
5172                         ;;
5173                 (*)
5174                         $2='_g.a'
5175                         ;;
5176                 esac
5177                 $3=[$]$2
5178                 ;;
5179         (Xprofile)
5180                 case "$cf_cv_system_name" in
5181                 (*-msvc*)
5182                         $2='_p.lib'
5183                         ;;
5184                 (*)
5185                         $2='_p.a'
5186                         ;;
5187                 esac
5188                 $3=[$]$2
5189                 ;;
5190         (Xshared)
5191                 case "$cf_cv_system_name" in
5192                 (aix[[5-7]]*)
5193                         $2='.so'
5194                         $3=[$]$2
5195                         ;;
5196                 (*-msvc*)
5197                         $2='.dll'
5198                         $3='.dll.lib'
5199                         ;;
5200                 (cygwin*|msys*|mingw*)
5201                         $2='.dll'
5202                         $3='.dll.a'
5203                         ;;
5204                 (darwin*)
5205                         $2='.dylib'
5206                         $3=[$]$2
5207                         ;;
5208                 (hpux*)
5209                         case "$target" in
5210                         (ia64*)
5211                                 $2='.so'
5212                                 $3=[$]$2
5213                                 ;;
5214                         (*)
5215                                 $2='.sl'
5216                                 $3=[$]$2
5217                                 ;;
5218                         esac
5219                         ;;
5220                 (*)
5221                         $2='.so'
5222                         $3=[$]$2
5223                         ;;
5224                 esac
5225                 ;;
5226         (*)
5227                 case "$target" in
5228                 (*-msvc*)
5229                         $2='.lib'
5230                         ;;
5231                 (*)
5232                         $2='.a'
5233                         ;;
5234                 esac
5235                 $3=[$]$2
5236                 ;;
5237         esac
5238         if test -n "${LIB_SUFFIX}${EXTRA_SUFFIX}"
5239         then
5240                 $2="${LIB_SUFFIX}${EXTRA_SUFFIX}[$]{$2}"
5241                 $3="${LIB_SUFFIX}${EXTRA_SUFFIX}[$]{$3}"
5242         fi
5243 ])dnl
5244 dnl ---------------------------------------------------------------------------
5245 dnl CF_LIB_TYPE version: 5 updated: 2015/04/17 21:13:04
5246 dnl -----------
5247 dnl Compute the string to append to -library from the given model name
5248 dnl $1 = model name
5249 dnl $2 = variable to set
5250 dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
5251 AC_DEFUN([CF_LIB_TYPE],
5252 [
5253         case $1 in
5254         (libtool) $2=''   ;;
5255         (normal)  $2=''   ;;
5256         (debug)   $2='_g' ;;
5257         (profile) $2='_p' ;;
5258         (shared)  $2=''   ;;
5259         esac
5260         test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
5261 ])dnl
5262 dnl ---------------------------------------------------------------------------
5263 dnl CF_LINK_DATAONLY version: 13 updated: 2020/02/08 15:59:30
5264 dnl ----------------
5265 dnl Some systems have a non-ANSI linker that doesn't pull in modules that have
5266 dnl only data (i.e., no functions), for example NeXT.  On those systems we'll
5267 dnl have to provide wrappers for global tables to ensure they're linked
5268 dnl properly.
5269 AC_DEFUN([CF_LINK_DATAONLY],
5270 [
5271 AC_MSG_CHECKING([if data-only library module links])
5272 AC_CACHE_VAL(cf_cv_link_dataonly,[
5273         rm -f conftest.a
5274         cat >conftest.$ac_ext <<EOF
5275 #line __oline__ "configure"
5276 int     testdata[[3]] = { 123, 456, 789 };
5277 EOF
5278         if AC_TRY_EVAL(ac_compile) ; then
5279                 mv conftest.o data.o && \
5280                 ( $AR $ARFLAGS conftest.a data.o ) 2>&AC_FD_CC 1>/dev/null
5281         fi
5282         rm -f conftest.$ac_ext data.o
5283         cat >conftest.$ac_ext <<EOF
5284 #line __oline__ "configure"
5285 int     testfunc(void)
5286 {
5287 #if defined(NeXT)
5288         ${cf_cv_main_return:-return}(1);        /* I'm told this linker is broken */
5289 #else
5290         extern int testdata[[3]];
5291         return testdata[[0]] == 123
5292            &&  testdata[[1]] == 456
5293            &&  testdata[[2]] == 789;
5294 #endif
5295 }
5296 EOF
5297         if AC_TRY_EVAL(ac_compile); then
5298                 mv conftest.o func.o && \
5299                 ( $AR $ARFLAGS conftest.a func.o ) 2>&AC_FD_CC 1>/dev/null
5300         fi
5301         rm -f conftest.$ac_ext func.o
5302         ( eval $RANLIB conftest.a ) 2>&AC_FD_CC >/dev/null
5303         cf_saveLIBS="$LIBS"
5304         LIBS="conftest.a $LIBS"
5305         AC_TRY_RUN([
5306         int main(void)
5307         {
5308                 extern int testfunc();
5309                 ${cf_cv_main_return:-return} (!testfunc());
5310         }
5311         ],
5312         [cf_cv_link_dataonly=yes],
5313         [cf_cv_link_dataonly=no],
5314         [cf_cv_link_dataonly=unknown])
5315         LIBS="$cf_saveLIBS"
5316         ])
5317 AC_MSG_RESULT($cf_cv_link_dataonly)
5318
5319 if test "$cf_cv_link_dataonly" = no ; then
5320         AC_DEFINE(BROKEN_LINKER,1,[if data-only library module does not link])
5321         BROKEN_LINKER=1
5322 fi
5323 AC_SUBST(BROKEN_LINKER)
5324
5325 ])dnl
5326 dnl ---------------------------------------------------------------------------
5327 dnl CF_LINK_FUNCS version: 11 updated: 2021/04/18 14:08:47
5328 dnl -------------
5329 dnl Most Unix systems have both link and symlink, a few don't have symlink.
5330 dnl A few non-Unix systems implement symlink, but not link.
5331 dnl A few non-systems implement neither (or have nonfunctional versions).
5332 dnl
5333 dnl This allows for a 2-second difference in modification times to allow for
5334 dnl some marginal NFS implementations.
5335 AC_DEFUN([CF_LINK_FUNCS],
5336 [
5337 AC_CHECK_HEADERS( \
5338 unistd.h \
5339 )
5340 AC_CHECK_FUNCS( \
5341         remove \
5342         unlink )
5343
5344 if test "$cross_compiling" = yes ; then
5345         AC_CHECK_FUNCS( \
5346                 link \
5347                 symlink )
5348 else
5349         AC_CACHE_CHECK(if link/symlink functions work,cf_cv_link_funcs,[
5350                 cf_cv_link_funcs=
5351                 for cf_func in link symlink ; do
5352                         AC_TRY_RUN([
5353 #include <stdio.h>
5354 #include <sys/types.h>
5355 #include <sys/stat.h>
5356 #ifdef HAVE_UNISTD_H
5357 #include <unistd.h>
5358 #endif
5359 int main(void)
5360 {
5361         int fail = 0;
5362         char *src = "conftest.tmp";
5363         char *dst = "conftest.chk";
5364         struct stat src_sb, dst_sb;
5365         FILE *fp = fopen(src, "w");
5366         if (fp == 0) { fail = 3; } else {
5367                 fclose(fp); stat(src, &src_sb);
5368                 if ($cf_func(src, dst) < 0) {
5369                         fail = 1;
5370                 } else if (stat(dst, &dst_sb) < 0) {
5371                         fail = 2;
5372                 } else {
5373                         long diff = (dst_sb.st_mtime - src_sb.st_mtime);
5374                         if (diff < 0) diff = -diff;
5375                         if (diff > 2) fail = 3;
5376                 }
5377         }
5378 #ifdef HAVE_UNLINK
5379         unlink(dst); unlink(src);
5380 #else
5381         remove(dst); remove(src);
5382 #endif
5383         ${cf_cv_main_return:-return} (fail);
5384 }
5385                         ],[
5386                         cf_cv_link_funcs="$cf_cv_link_funcs $cf_func"
5387                         eval 'ac_cv_func_'$cf_func'=yes'],[
5388                         eval 'ac_cv_func_'$cf_func'=no'],[
5389                         eval 'ac_cv_func_'$cf_func'=error'])
5390                 done
5391                 test -z "$cf_cv_link_funcs" && cf_cv_link_funcs=no
5392         ])
5393         test "$ac_cv_func_link"    = yes && AC_DEFINE(HAVE_LINK,1,[Define to 1 if we have link() function])
5394         test "$ac_cv_func_symlink" = yes && AC_DEFINE(HAVE_SYMLINK,1,[Define to 1 if we have symlink() function])
5395 fi
5396 ])dnl
5397 dnl ---------------------------------------------------------------------------
5398 dnl CF_MAKEFLAGS version: 21 updated: 2021/09/04 06:47:34
5399 dnl ------------
5400 dnl Some 'make' programs support ${MAKEFLAGS}, some ${MFLAGS}, to pass 'make'
5401 dnl options to lower-levels.  It is very useful for "make -n" -- if we have it.
5402 dnl (GNU 'make' does both, something POSIX 'make', which happens to make the
5403 dnl ${MAKEFLAGS} variable incompatible because it adds the assignments :-)
5404 AC_DEFUN([CF_MAKEFLAGS],
5405 [AC_REQUIRE([AC_PROG_FGREP])dnl
5406
5407 AC_CACHE_CHECK(for makeflags variable, cf_cv_makeflags,[
5408         cf_cv_makeflags=''
5409         for cf_option in '-${MAKEFLAGS}' '${MFLAGS}'
5410         do
5411                 cat >cf_makeflags.tmp <<CF_EOF
5412 SHELL = $SHELL
5413 all :
5414         @ echo '.$cf_option'
5415 CF_EOF
5416                 cf_result=`${MAKE:-make} -k -f cf_makeflags.tmp 2>/dev/null | ${FGREP-fgrep} -v "ing directory" | sed -e 's,[[  ]]*$,,'`
5417                 case "$cf_result" in
5418                 (.*k|.*kw)
5419                         cf_result="`${MAKE:-make} -k -f cf_makeflags.tmp CC=cc 2>/dev/null`"
5420                         case "$cf_result" in
5421                         (.*CC=*)        cf_cv_makeflags=
5422                                 ;;
5423                         (*)     cf_cv_makeflags=$cf_option
5424                                 ;;
5425                         esac
5426                         break
5427                         ;;
5428                 (.-)
5429                         ;;
5430                 (*)
5431                         CF_MSG_LOG(given option \"$cf_option\", no match \"$cf_result\")
5432                         ;;
5433                 esac
5434         done
5435         rm -f cf_makeflags.tmp
5436 ])
5437
5438 AC_SUBST(cf_cv_makeflags)
5439 ])dnl
5440 dnl ---------------------------------------------------------------------------
5441 dnl CF_MAKE_PHONY version: 3 updated: 2021/01/08 16:08:21
5442 dnl -------------
5443 dnl Check if the make-program handles a ".PHONY" target, e.g,. a target which
5444 dnl acts as a placeholder.
5445 dnl
5446 dnl The ".PHONY" feature was proposed in 2011 here
5447 dnl     https://www.austingroupbugs.net/view.php?id=523
5448 dnl and is scheduled for release in P1003.1 Issue 8 (late 2022).
5449 dnl
5450 dnl This is not supported by SVr4 make (or SunOS 4, 4.3SD, etc), but works with
5451 dnl a few others (i.e., GNU make and the non-POSIX "BSD" make):
5452 dnl
5453 dnl + This is a GNU make feature (since April 1988, but in turn from binutils,
5454 dnl   date unspecified).
5455 dnl
5456 dnl + It was adopted in NetBSD make in June 1995.
5457 dnl
5458 dnl + The other BSD make programs are derived from the NetBSD make (and for
5459 dnl   that reason are not actually different "implementations").
5460 dnl
5461 dnl + Some features of NetBSD make were actually adapted from pmake, which
5462 dnl   began as a modified GNU make starting in 1993.
5463 dnl
5464 dnl + Version 3.8 of the dmake program in January 1992 also implemented this
5465 dnl   GNU make extension, but is less well known than the BSD make.
5466 AC_DEFUN([CF_MAKE_PHONY],[
5467 AC_CACHE_CHECK(for \".PHONY\" make-support, cf_cv_make_PHONY,[
5468         rm -rf conftest*
5469         (
5470                 mkdir conftest || exit 1
5471                 cd conftest
5472                 cat >makefile <<'CF_EOF'
5473 .PHONY: always
5474 DATA=0
5475 always: always.out
5476         @echo "** making [$]@ [$](DATA)"
5477 once: once.out
5478         @echo "** making [$]@ [$](DATA)"
5479 always.out:
5480         @echo "** making [$]@ [$](DATA)"
5481         echo [$](DATA) > [$]@
5482 once.out:
5483         @echo "** making [$]@ [$](DATA)"
5484         echo [$](DATA) > [$]@
5485 CF_EOF
5486                 for cf_data in 1 2 3
5487                 do
5488                         ${MAKE:-make} always DATA=$cf_data
5489                         ${MAKE:-make} once   DATA=$cf_data
5490                         ${MAKE:-make} -t always once
5491                         if test -f always ; then
5492                                 echo "no (case 1)" > ../conftest.tmp
5493                         elif test ! -f always.out ; then
5494                                 echo "no (case 2)" > ../conftest.tmp
5495                         elif test ! -f once.out ; then
5496                                 echo "no (case 3)" > ../conftest.tmp
5497                         elif ! cmp -s always.out once.out ; then
5498                                 echo "no (case 4)" > ../conftest.tmp
5499                                 diff always.out once.out
5500                         else
5501                                 cf_check="`cat always.out`"
5502                                 if test "x$cf_check" != "x$cf_data" ; then
5503                                         echo "no (case 5)" > ../conftest.tmp
5504                                 else
5505                                         echo yes > ../conftest.tmp
5506                                         rm -f ./*.out
5507                                         continue
5508                                 fi
5509                         fi
5510                         break
5511                 done
5512         ) >&AC_FD_CC 2>&1
5513         cf_cv_make_PHONY="`cat conftest.tmp`"
5514         rm -rf conftest*
5515 ])
5516 MAKE_NO_PHONY="#"
5517 MAKE_PHONY="#"
5518 test "x$cf_cv_make_PHONY" = xyes && MAKE_PHONY=
5519 test "x$cf_cv_make_PHONY" != xyes && MAKE_NO_PHONY=
5520 AC_SUBST(MAKE_NO_PHONY)
5521 AC_SUBST(MAKE_PHONY)
5522 ])dnl
5523 dnl ---------------------------------------------------------------------------
5524 dnl CF_MAKE_TAGS version: 6 updated: 2010/10/23 15:52:32
5525 dnl ------------
5526 dnl Generate tags/TAGS targets for makefiles.  Do not generate TAGS if we have
5527 dnl a monocase filesystem.
5528 AC_DEFUN([CF_MAKE_TAGS],[
5529 AC_REQUIRE([CF_MIXEDCASE_FILENAMES])
5530
5531 AC_CHECK_PROGS(CTAGS, exctags ctags)
5532 AC_CHECK_PROGS(ETAGS, exetags etags)
5533
5534 AC_CHECK_PROG(MAKE_LOWER_TAGS, ${CTAGS:-ctags}, yes, no)
5535
5536 if test "$cf_cv_mixedcase" = yes ; then
5537         AC_CHECK_PROG(MAKE_UPPER_TAGS, ${ETAGS:-etags}, yes, no)
5538 else
5539         MAKE_UPPER_TAGS=no
5540 fi
5541
5542 if test "$MAKE_UPPER_TAGS" = yes ; then
5543         MAKE_UPPER_TAGS=
5544 else
5545         MAKE_UPPER_TAGS="#"
5546 fi
5547
5548 if test "$MAKE_LOWER_TAGS" = yes ; then
5549         MAKE_LOWER_TAGS=
5550 else
5551         MAKE_LOWER_TAGS="#"
5552 fi
5553
5554 AC_SUBST(CTAGS)
5555 AC_SUBST(ETAGS)
5556
5557 AC_SUBST(MAKE_UPPER_TAGS)
5558 AC_SUBST(MAKE_LOWER_TAGS)
5559 ])dnl
5560 dnl ---------------------------------------------------------------------------
5561 dnl CF_MANPAGE_FORMAT version: 15 updated: 2021/09/04 06:35:04
5562 dnl -----------------
5563 dnl Option to allow user to override automatic configuration of manpage format.
5564 dnl There are several special cases:
5565 dnl
5566 dnl     gzip - man checks for, can display gzip'd files
5567 dnl     compress - man checks for, can display compressed files
5568 dnl     BSDI - files in the cat-directories are suffixed ".0"
5569 dnl     formatted - installer should format (put files in cat-directory)
5570 dnl     catonly - installer should only format, e.g., for a turnkey system.
5571 dnl
5572 dnl There are other configurations which this macro does not test, e.g., HPUX's
5573 dnl compressed manpages (but uncompressed manpages are fine, and HPUX's naming
5574 dnl convention would not match our use).
5575 AC_DEFUN([CF_MANPAGE_FORMAT],
5576 [
5577 AC_REQUIRE([CF_PATHSEP])
5578 AC_MSG_CHECKING(format of man-pages)
5579
5580 AC_ARG_WITH(manpage-format,
5581         [  --with-manpage-format   specify manpage-format: gzip/compress/BSDI/normal and
5582                           optionally formatted/catonly, e.g., gzip,formatted],
5583         [MANPAGE_FORMAT=$withval],
5584         [MANPAGE_FORMAT=unknown])
5585
5586 test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=unknown
5587 MANPAGE_FORMAT=`echo "$MANPAGE_FORMAT" | sed -e 's/,/ /g'`
5588
5589 cf_unknown=
5590
5591 case "$MANPAGE_FORMAT" in
5592 (unknown)
5593         if test -z "$MANPATH" ; then
5594                 MANPATH="/usr/man:/usr/share/man"
5595         fi
5596
5597         # look for the 'date' man-page (it is most likely to be installed!)
5598         MANPAGE_FORMAT=
5599         cf_preform="no"
5600         cf_catonly="yes"
5601         cf_example="date"
5602
5603         IFS="${IFS:-    }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
5604         for cf_dir in $MANPATH; do
5605                 test -z "$cf_dir" && cf_dir=/usr/man
5606                 for cf_name in $cf_dir/man*/$cf_example.[[01]]* $cf_dir/cat*/$cf_example.[[01]]* $cf_dir/man*/$cf_example $cf_dir/cat*/$cf_example
5607                 do
5608                         cf_test=`echo "$cf_name" | sed -e 's/*//'`
5609                         if test "x$cf_test" = "x$cf_name" ; then
5610
5611                                 case "$cf_name" in
5612                                 (*.gz) MANPAGE_FORMAT="$MANPAGE_FORMAT gzip";;
5613                                 (*.Z)  MANPAGE_FORMAT="$MANPAGE_FORMAT compress";;
5614                                 (*.0)  MANPAGE_FORMAT="$MANPAGE_FORMAT BSDI";;
5615                                 (*)    MANPAGE_FORMAT="$MANPAGE_FORMAT normal";;
5616                                 esac
5617
5618                                 case "$cf_name" in
5619                                 ($cf_dir/man*)
5620                                         cf_catonly=no
5621                                         ;;
5622                                 ($cf_dir/cat*)
5623                                         cf_preform=yes
5624                                         ;;
5625                                 esac
5626                                 break
5627                         fi
5628
5629                         # if we found a match in either man* or cat*, stop looking
5630                         if test -n "$MANPAGE_FORMAT" ; then
5631                                 cf_found=no
5632                                 test "$cf_preform" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT formatted"
5633                                 test "$cf_catonly" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT catonly"
5634                                 case "$cf_name" in
5635                                 ($cf_dir/cat*)
5636                                         cf_found=yes
5637                                         ;;
5638                                 esac
5639                                 test "$cf_found" = yes && break
5640                         fi
5641                 done
5642                 # only check the first directory in $MANPATH where we find manpages
5643                 if test -n "$MANPAGE_FORMAT" ; then
5644                         break
5645                 fi
5646         done
5647         # if we did not find the example, just assume it is normal
5648         test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=normal
5649         IFS="$ac_save_ifs"
5650         ;;
5651 (*)
5652         for cf_option in $MANPAGE_FORMAT; do
5653         case "$cf_option" in
5654         (gzip|compress|BSDI|normal|formatted|catonly)
5655                 ;;
5656         (*)
5657                 cf_unknown="$cf_unknown $cf_option"
5658                 ;;
5659         esac
5660         done
5661         ;;
5662 esac
5663
5664 AC_MSG_RESULT($MANPAGE_FORMAT)
5665 if test -n "$cf_unknown" ; then
5666         AC_MSG_WARN(Unexpected manpage-format $cf_unknown)
5667 fi
5668 ])dnl
5669 dnl ---------------------------------------------------------------------------
5670 dnl CF_MANPAGE_RENAMES version: 12 updated: 2021/01/01 16:53:59
5671 dnl ------------------
5672 dnl The Debian people have their own naming convention for manpages.  This
5673 dnl option lets us override the name of the file containing renaming, or
5674 dnl disable it altogether.
5675 AC_DEFUN([CF_MANPAGE_RENAMES],
5676 [
5677 AC_MSG_CHECKING(for manpage renaming)
5678
5679 AC_ARG_WITH(manpage-renames,
5680         [  --with-manpage-renames  specify manpage-renaming],
5681         [MANPAGE_RENAMES=$withval],
5682         [MANPAGE_RENAMES=yes])
5683
5684 case ".$MANPAGE_RENAMES" in
5685 (.no)
5686         ;;
5687 (.|.yes)
5688         # Debian 'man' program?
5689         if test -f /etc/debian_version ; then
5690                 MANPAGE_RENAMES=`cd "$srcdir" && pwd`/man/man_db.renames
5691         else
5692                 MANPAGE_RENAMES=no
5693         fi
5694         ;;
5695 esac
5696
5697 if test "$MANPAGE_RENAMES" != no ; then
5698         if test -f "$srcdir/man/$MANPAGE_RENAMES" ; then
5699                 MANPAGE_RENAMES=`cd "$srcdir/man" && pwd`/$MANPAGE_RENAMES
5700         elif test ! -f "$MANPAGE_RENAMES" ; then
5701                 AC_MSG_ERROR(not a filename: $MANPAGE_RENAMES)
5702         fi
5703
5704         test ! -d man && mkdir man
5705
5706         # Construct a sed-script to perform renaming within man-pages
5707         if test -n "$MANPAGE_RENAMES" ; then
5708                 test ! -d man && mkdir man
5709                 $SHELL "$srcdir/man/make_sed.sh" "$MANPAGE_RENAMES" >./edit_man.sed
5710         fi
5711 fi
5712
5713 AC_MSG_RESULT($MANPAGE_RENAMES)
5714 AC_SUBST(MANPAGE_RENAMES)
5715 ])dnl
5716 dnl ---------------------------------------------------------------------------
5717 dnl CF_MANPAGE_SYMLINKS version: 6 updated: 2015/04/17 21:13:04
5718 dnl -------------------
5719 dnl Some people expect each tool to make all aliases for manpages in the
5720 dnl man-directory.  This accommodates the older, less-capable implementations
5721 dnl of 'man', and is optional.
5722 AC_DEFUN([CF_MANPAGE_SYMLINKS],
5723 [
5724 AC_MSG_CHECKING(if manpage aliases will be installed)
5725
5726 AC_ARG_WITH(manpage-aliases,
5727         [  --with-manpage-aliases  specify manpage-aliases using .so],
5728         [MANPAGE_ALIASES=$withval],
5729         [MANPAGE_ALIASES=yes])
5730
5731 AC_MSG_RESULT($MANPAGE_ALIASES)
5732
5733 case "x$LN_S" in
5734 (xln*)
5735         cf_use_symlinks=yes
5736         ;;
5737 (*)
5738         cf_use_symlinks=no
5739         ;;
5740 esac
5741
5742 MANPAGE_SYMLINKS=no
5743 if test "$MANPAGE_ALIASES" = yes ; then
5744 AC_MSG_CHECKING(if manpage symlinks should be used)
5745
5746 AC_ARG_WITH(manpage-symlinks,
5747         [  --with-manpage-symlinks specify manpage-aliases using symlinks],
5748         [MANPAGE_SYMLINKS=$withval],
5749         [MANPAGE_SYMLINKS=$cf_use_symlinks])
5750
5751 if test "$$cf_use_symlinks" = no; then
5752 if test "$MANPAGE_SYMLINKS" = yes ; then
5753         AC_MSG_WARN(cannot make symlinks, will use .so files)
5754         MANPAGE_SYMLINKS=no
5755 fi
5756 fi
5757
5758 AC_MSG_RESULT($MANPAGE_SYMLINKS)
5759 fi
5760
5761 ])dnl
5762 dnl ---------------------------------------------------------------------------
5763 dnl CF_MANPAGE_TBL version: 3 updated: 2002/01/19 22:51:32
5764 dnl --------------
5765 dnl This option causes manpages to be run through tbl(1) to generate tables
5766 dnl correctly.
5767 AC_DEFUN([CF_MANPAGE_TBL],
5768 [
5769 AC_MSG_CHECKING(for manpage tbl)
5770
5771 AC_ARG_WITH(manpage-tbl,
5772         [  --with-manpage-tbl      specify manpage processing with tbl],
5773         [MANPAGE_TBL=$withval],
5774         [MANPAGE_TBL=no])
5775
5776 AC_MSG_RESULT($MANPAGE_TBL)
5777 ])dnl
5778 dnl ---------------------------------------------------------------------------
5779 dnl CF_MAN_PAGES version: 52 updated: 2022/02/05 12:31:08
5780 dnl ------------
5781 dnl Try to determine if the man-pages on the system are compressed, and if
5782 dnl so, what format is used.  Use this information to construct a script that
5783 dnl will install man-pages.
5784 AC_DEFUN([CF_MAN_PAGES],
5785 [
5786 CF_HELP_MESSAGE(Options to Specify How Manpages are Installed:)
5787 CF_MANPAGE_FORMAT
5788 CF_MANPAGE_RENAMES
5789 CF_MANPAGE_SYMLINKS
5790 CF_MANPAGE_TBL
5791
5792 if test "$prefix" = "NONE" ; then
5793         cf_prefix="$ac_default_prefix"
5794 else
5795         cf_prefix="$prefix"
5796 fi
5797
5798 case "$MANPAGE_FORMAT" in
5799 (*catonly*)
5800         cf_format=yes
5801         cf_inboth=no
5802         ;;
5803 (*formatted*)
5804         cf_format=yes
5805         cf_inboth=yes
5806         ;;
5807 (*)
5808         cf_format=no
5809         cf_inboth=no
5810         ;;
5811 esac
5812
5813 test ! -d man && mkdir man
5814
5815 cf_so_strip=
5816 cf_compress=
5817 case "$MANPAGE_FORMAT" in
5818 (*compress*)
5819         cf_so_strip="Z"
5820         cf_compress=compress
5821         ;;
5822 (*gzip*)
5823         cf_so_strip="gz"
5824         cf_compress=gzip
5825         ;;
5826 esac
5827
5828 cf_edit_man=./edit_man.sh
5829 cf_man_alias=`pwd`/man_alias.sed
5830
5831 cat >$cf_edit_man <<CF_EOF
5832 #! $SHELL
5833 # this script is generated by the configure-script CF_MAN_PAGES macro.
5834
5835 prefix="$cf_prefix"
5836 datarootdir="$datarootdir"
5837 datadir="$datadir"
5838
5839 NCURSES_MAJOR="$NCURSES_MAJOR"
5840 NCURSES_MINOR="$NCURSES_MINOR"
5841 NCURSES_PATCH="$NCURSES_PATCH"
5842
5843 NCURSES_OSPEED="$NCURSES_OSPEED"
5844 TERMINFO="$TERMINFO"
5845
5846 INSTALL="$INSTALL"
5847 INSTALL_DATA="$INSTALL_DATA"
5848
5849 transform="$program_transform_name"
5850
5851 TMP=\${TMPDIR:=/tmp}/man\$\$
5852 trap "rm -f \$TMP; exit 1" 1 2 3 15
5853 trap "rm -f \$TMP" 0
5854
5855 form=\[$]1
5856 shift || exit 1
5857
5858 verb=\[$]1
5859 shift || exit 1
5860
5861 mandir=\[$]1
5862 shift || exit 1
5863
5864 srcdir=\[$]1
5865 top_srcdir=\[$]srcdir/..
5866 shift || exit 1
5867
5868 if test "\$form" = normal ; then
5869         if test "$cf_format" = yes ; then
5870         if test "$cf_inboth" = no ; then
5871                 $SHELL "\[$]0" format "\$verb" "\$mandir" "\$srcdir" "\[$]@"
5872                 exit $?
5873         fi
5874         fi
5875         cf_subdir=\$mandir/man
5876         cf_tables=$MANPAGE_TBL
5877 else
5878         cf_subdir=\$mandir/cat
5879         cf_tables=yes
5880 fi
5881
5882 # process the list of source-files
5883 for i in "\[$]@" ; do
5884 case \$i in
5885 (*.orig|*.rej) ;;
5886 (*.[[0-9]]*)
5887         section=\`expr "\$i" : '.*\\.\\([[0-9]]\\)[[xm]]*'\`;
5888         if test "\$verb" = installing ; then
5889         if test ! -d "\$cf_subdir\${section}" ; then
5890                 mkdir -p "\$cf_subdir\$section"
5891         fi
5892         fi
5893
5894         # replace variables in man page
5895         if test ! -f "$cf_man_alias" ; then
5896 cat >>$cf_man_alias <<-CF_EOF2
5897                 s,@DATADIR@,\$datadir,g
5898                 s,@TERMINFO@,\${TERMINFO:="no default value"},g
5899                 s,@TERMINFO_DIRS@,\${TERMINFO_DIRS:="no default value"},g
5900                 s,@NCURSES_MAJOR@,\${NCURSES_MAJOR:="no default value"},g
5901                 s,@NCURSES_MINOR@,\${NCURSES_MINOR:="no default value"},g
5902                 s,@NCURSES_PATCH@,\${NCURSES_PATCH:="no default value"},g
5903                 s,@NCURSES_OSPEED@,\${NCURSES_OSPEED:="no default value"},g
5904 CF_EOF
5905         ifelse($1,,,[
5906         for cf_name in $1
5907         do
5908                 cf_NAME=`echo "$cf_name" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
5909                 cf_name=`echo "$cf_name" | sed "$program_transform_name"`
5910 cat >>$cf_edit_man <<-CF_EOF
5911                 s,@$cf_NAME@,$cf_name,g
5912 CF_EOF
5913         done
5914         ])
5915 cat >>$cf_edit_man <<CF_EOF
5916 CF_EOF2
5917                 echo "...made $cf_man_alias"
5918         fi
5919
5920         aliases=
5921         cf_source=\`basename "\$i"\`
5922         inalias=\$cf_source
5923         test ! -f "\$inalias" && inalias="\$srcdir/\$inalias"
5924         if test ! -f "\$inalias" ; then
5925                 echo ".. skipped \$cf_source"
5926                 continue
5927         fi
5928 CF_EOF
5929
5930 if test "$MANPAGE_ALIASES" != no ; then
5931 cat >>$cf_edit_man <<CF_EOF
5932         nCurses=ignore.3x
5933         test "$with_curses_h" = yes && nCurses=ncurses.3x
5934         aliases=\`sed -f "\$top_srcdir/man/manlinks.sed" "\$inalias" |sed -f "$cf_man_alias" | sort -u; test "\$inalias" = "\$nCurses" && echo curses\`
5935 CF_EOF
5936 fi
5937
5938 if test "$MANPAGE_RENAMES" = no ; then
5939 cat >>$cf_edit_man <<CF_EOF
5940         # perform program transformations for section 1 man pages
5941         if test \$section = 1 ; then
5942                 cf_target=\$cf_subdir\${section}/\`echo \$cf_source|sed "\${transform}"\`
5943         else
5944                 cf_target=\$cf_subdir\${section}/\$cf_source
5945         fi
5946 CF_EOF
5947 else
5948 cat >>$cf_edit_man <<CF_EOF
5949         cf_target=\`grep "^\$cf_source" $MANPAGE_RENAMES | $AWK '{print \[$]2}'\`
5950         if test -z "\$cf_target" ; then
5951                 echo "? missing rename for \$cf_source"
5952                 cf_target="\$cf_source"
5953         fi
5954         cf_target="\$cf_subdir\${section}/\${cf_target}"
5955
5956 CF_EOF
5957 fi
5958
5959 cat >>$cf_edit_man <<CF_EOF
5960         sed     -f "$cf_man_alias" \\
5961 CF_EOF
5962
5963 if test -f "$MANPAGE_RENAMES" ; then
5964 cat >>$cf_edit_man <<CF_EOF
5965                 < "\$i" | sed -f `pwd`/edit_man.sed >\$TMP
5966 CF_EOF
5967 else
5968 cat >>$cf_edit_man <<CF_EOF
5969                 < "\$i" >\$TMP
5970 CF_EOF
5971 fi
5972
5973 cat >>$cf_edit_man <<CF_EOF
5974 if test \$cf_tables = yes ; then
5975         tbl \$TMP >\$TMP.out
5976         mv \$TMP.out \$TMP
5977 fi
5978 CF_EOF
5979
5980 if test "$with_overwrite" != yes ; then
5981 cat >>$cf_edit_man <<CF_EOF
5982         sed -e "/\\#[    ]*include/s,<curses.h,<ncurses$LIB_SUFFIX/curses.h," < \$TMP >\$TMP.out
5983         mv \$TMP.out \$TMP
5984 CF_EOF
5985 fi
5986
5987 if test "$with_curses_h" != yes ; then
5988 cat >>$cf_edit_man <<CF_EOF
5989         sed -e "/\\#[    ]*include/s,curses.h,ncurses.h," < \$TMP >\$TMP.out
5990         mv \$TMP.out \$TMP
5991 CF_EOF
5992 fi
5993
5994 cat >>$cf_edit_man <<CF_EOF
5995         if test "\$form" = format ; then
5996                 nroff -man \$TMP >\$TMP.out
5997                 mv \$TMP.out \$TMP
5998         fi
5999 CF_EOF
6000
6001 if test -n "$cf_compress" ; then
6002 cat >>$cf_edit_man <<CF_EOF
6003         if test "\$verb" = installing ; then
6004         if ( "$cf_compress" -f \$TMP )
6005         then
6006                 mv \$TMP.$cf_so_strip \$TMP
6007         fi
6008         fi
6009         cf_target="\$cf_target.$cf_so_strip"
6010 CF_EOF
6011 fi
6012
6013 case "$MANPAGE_FORMAT" in
6014 (*BSDI*)
6015 cat >>$cf_edit_man <<CF_EOF
6016         if test "\$form" = format ; then
6017                 # BSDI installs only .0 suffixes in the cat directories
6018                 cf_target="\`echo \$cf_target|sed -e 's/\\.[[1-9]]\\+[[a-z]]*/.0/'\`"
6019         fi
6020 CF_EOF
6021   ;;
6022 esac
6023
6024 cat >>$cf_edit_man <<CF_EOF
6025         suffix=\`basename "\$cf_target" | sed -e 's%^[[^.]]*%%'\`
6026         if test "\$verb" = installing ; then
6027                 echo "\$verb \$cf_target"
6028                 \$INSTALL_DATA \$TMP "\$cf_target"
6029                 test -d "\$cf_subdir\${section}" &&
6030                 test -n "\$aliases" && (
6031                         cd "\$cf_subdir\${section}" && (
6032                                 cf_source=\`echo "\$cf_target" |sed -e 's%^.*/\\([[^/]][[^/]]*/[[^/]][[^/]]*$\\)%\\1%'\`
6033                                 test -n "$cf_so_strip" && cf_source=\`echo "\$cf_source" |sed -e 's%\\.$cf_so_strip\$%%'\`
6034                                 cf_target=\`basename "\$cf_target"\`
6035                                 for cf_alias in \$aliases
6036                                 do
6037                                         if test "\$section" = 1 ; then
6038                                                 cf_alias=\`echo "\$cf_alias" |sed "\${transform}"\`
6039                                         fi
6040
6041                                         if test "$MANPAGE_SYMLINKS" = yes ; then
6042                                                 if test -f "\$cf_alias\${suffix}" ; then
6043                                                         if ( cmp -s "\$cf_target" "\$cf_alias\${suffix}" )
6044                                                         then
6045                                                                 continue
6046                                                         fi
6047                                                 fi
6048                                                 echo ".. \$verb alias \$cf_alias\${suffix}"
6049 CF_EOF
6050 case "x$LN_S" in
6051 (*-f)
6052 cat >>$cf_edit_man <<CF_EOF
6053                                                 $LN_S "\$cf_target" "\$cf_alias\${suffix}"
6054 CF_EOF
6055         ;;
6056 (*)
6057 cat >>$cf_edit_man <<CF_EOF
6058                                                 rm -f "\$cf_alias\${suffix}"
6059                                                 $LN_S "\$cf_target" "\$cf_alias\${suffix}"
6060 CF_EOF
6061         ;;
6062 esac
6063 cat >>$cf_edit_man <<CF_EOF
6064                                         elif test "\$cf_target" != "\$cf_alias\${suffix}" ; then
6065                                                 echo ".so \$cf_source" >\$TMP
6066 CF_EOF
6067 if test -n "$cf_compress" ; then
6068 cat >>$cf_edit_man <<CF_EOF
6069                                                 if test -n "$cf_so_strip" ; then
6070                                                         "$cf_compress" -f \$TMP
6071                                                         mv \$TMP.$cf_so_strip \$TMP
6072                                                 fi
6073 CF_EOF
6074 fi
6075 cat >>$cf_edit_man <<CF_EOF
6076                                                 echo ".. \$verb alias \$cf_alias\${suffix}"
6077                                                 rm -f "\$cf_alias\${suffix}"
6078                                                 \$INSTALL_DATA \$TMP "\$cf_alias\${suffix}"
6079                                         fi
6080                                 done
6081                         )
6082                 )
6083         elif test "\$verb" = removing ; then
6084                 test -f "\$cf_target" && (
6085                         echo "\$verb \$cf_target"
6086                         rm -f "\$cf_target"
6087                 )
6088                 test -d "\$cf_subdir\${section}" &&
6089                 test -n "\$aliases" && (
6090                         cd "\$cf_subdir\${section}" && (
6091                                 for cf_alias in \$aliases
6092                                 do
6093                                         if test "\$section" = 1 ; then
6094                                                 cf_alias=\`echo "\$cf_alias" |sed "\${transform}"\`
6095                                         fi
6096
6097                                         echo ".. \$verb alias \$cf_alias\${suffix}"
6098                                         rm -f "\$cf_alias\${suffix}"
6099                                 done
6100                         )
6101                 )
6102         else
6103 #               echo ".hy 0"
6104                 cat \$TMP
6105         fi
6106         ;;
6107 esac
6108 done
6109
6110 if test "$cf_inboth" = yes ; then
6111 if test "\$form" != format ; then
6112         $SHELL "\[$]0" format "\$verb" "\$mandir" "\$srcdir" "\[$]@"
6113 fi
6114 fi
6115
6116 exit 0
6117 CF_EOF
6118 chmod 755 "$cf_edit_man"
6119
6120 ])dnl
6121 dnl ---------------------------------------------------------------------------
6122 dnl CF_MAP_LIB_BASENAME version: 2 updated: 2021/01/02 17:09:14
6123 dnl -------------------
6124 dnl Convert a default-libname to the actual one used via CF_WITH_LIB_BASENAME.
6125 dnl
6126 dnl $1 = variable to set
6127 dnl $2 = default-libname
6128 AC_DEFUN([CF_MAP_LIB_BASENAME],[
6129 CF_UPPER(cf_map_lib_basename,$2)
6130 eval $1="\$${cf_map_lib_basename}_NAME"
6131 ])dnl
6132 dnl ---------------------------------------------------------------------------
6133 dnl CF_MATH_LIB version: 11 updated: 2022/07/27 19:01:48
6134 dnl -----------
6135 dnl Checks for libraries.  At least one UNIX system, Apple Macintosh
6136 dnl Rhapsody 5.5, does not have -lm.  We cannot use the simpler
6137 dnl AC_CHECK_LIB(m,sin), because that fails for C++.
6138 AC_DEFUN([CF_MATH_LIB],
6139 [
6140 AC_CACHE_CHECK(if -lm needed for math functions,
6141         cf_cv_need_libm,[
6142         AC_TRY_LINK([
6143                 #include <stdio.h>
6144                 #include <stdlib.h>
6145                 #include <math.h>
6146         ],
6147         [double x = rand(); printf("result = %g\\n", ]ifelse([$2],,sin(x),$2)[)],
6148         [cf_cv_need_libm=no],
6149         [cf_cv_need_libm=yes])])
6150
6151 if test "$cf_cv_need_libm" = yes
6152 then
6153
6154         cf_save_LIBS="$LIBS"
6155         LIBS="$LIBS -lm"
6156         AC_CACHE_CHECK(if -lm is available for math functions,
6157         cf_cv_have_libm,[
6158         AC_TRY_LINK([
6159                 #include <stdio.h>
6160                 #include <stdlib.h>
6161                 #include <math.h>
6162         ],
6163         [double x = rand(); printf("result = %g\\n", ]ifelse([$2],,sin(x),$2)[)],
6164         [cf_cv_have_libm=yes],
6165         [cf_cv_have_libm=no])])
6166         LIBS="$cf_save_LIBS"
6167
6168         if test "$cf_cv_have_libm" = yes
6169         then
6170                 ifelse($1,,[CF_ADD_LIB(m)],[$1=-lm])
6171         fi
6172 else
6173         cf_cv_have_libm=yes
6174 fi
6175
6176 if test "$cf_cv_have_libm" = yes
6177 then
6178         AC_DEFINE(HAVE_MATH_FUNCS,1,[Define to 1 if math functions are available])
6179 fi
6180 ])
6181 dnl ---------------------------------------------------------------------------
6182 dnl CF_MIXEDCASE_FILENAMES version: 9 updated: 2021/01/01 16:53:59
6183 dnl ----------------------
6184 dnl Check if the file-system supports mixed-case filenames.  If we're able to
6185 dnl create a lowercase name and see it as uppercase, it doesn't support that.
6186 AC_DEFUN([CF_MIXEDCASE_FILENAMES],
6187 [
6188 AC_CACHE_CHECK(if filesystem supports mixed-case filenames,cf_cv_mixedcase,[
6189 if test "$cross_compiling" = yes ; then
6190         case "$target_alias" in
6191         (*-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-msys*|*-mingw*|*-uwin*|darwin*)
6192                 cf_cv_mixedcase=no
6193                 ;;
6194         (*)
6195                 cf_cv_mixedcase=yes
6196                 ;;
6197         esac
6198 else
6199         rm -f conftest CONFTEST
6200         echo test >conftest
6201         if test -f CONFTEST ; then
6202                 cf_cv_mixedcase=no
6203         else
6204                 cf_cv_mixedcase=yes
6205         fi
6206         rm -f conftest CONFTEST
6207 fi
6208 ])
6209 test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES,1,[Define to 1 if filesystem supports mixed-case filenames.])
6210 ])dnl
6211 dnl ---------------------------------------------------------------------------
6212 dnl CF_MKSTEMP version: 11 updated: 2021/01/01 13:31:04
6213 dnl ----------
6214 dnl Check for a working mkstemp.  This creates two files, checks that they are
6215 dnl successfully created and distinct (AmigaOS apparently fails on the last).
6216 AC_DEFUN([CF_MKSTEMP],[
6217 AC_CHECK_HEADERS( \
6218 unistd.h \
6219 )
6220 AC_CACHE_CHECK(for working mkstemp, cf_cv_func_mkstemp,[
6221 rm -rf ./conftest*
6222 AC_TRY_RUN([
6223 #include <sys/types.h>
6224 #ifdef HAVE_UNISTD_H
6225 #include <unistd.h>
6226 #endif
6227 #include <stdlib.h>
6228 #include <stdio.h>
6229 #include <string.h>
6230 #include <sys/stat.h>
6231 int main(void)
6232 {
6233         char *tmpl = "conftestXXXXXX";
6234         char name[2][80];
6235         int n;
6236         int result = 0;
6237         int fd;
6238         struct stat sb;
6239
6240         umask(077);
6241         for (n = 0; n < 2; ++n) {
6242                 strcpy(name[n], tmpl);
6243                 if ((fd = mkstemp(name[n])) >= 0) {
6244                         if (!strcmp(name[n], tmpl)
6245                          || stat(name[n], &sb) != 0
6246                          || (sb.st_mode & S_IFMT) != S_IFREG
6247                          || (sb.st_mode & 077) != 0) {
6248                                 result = 1;
6249                         }
6250                         close(fd);
6251                 }
6252         }
6253         if (result == 0
6254          && !strcmp(name[0], name[1]))
6255                 result = 1;
6256         ${cf_cv_main_return:-return}(result);
6257 }
6258 ],[cf_cv_func_mkstemp=yes
6259 ],[cf_cv_func_mkstemp=no
6260 ],[cf_cv_func_mkstemp=maybe])
6261 ])
6262 if test "x$cf_cv_func_mkstemp" = xmaybe ; then
6263         AC_CHECK_FUNC(mkstemp)
6264 fi
6265 if test "x$cf_cv_func_mkstemp" = xyes || test "x$ac_cv_func_mkstemp" = xyes ; then
6266         AC_DEFINE(HAVE_MKSTEMP,1,[Define to 1 if mkstemp() is available and working.])
6267 fi
6268 ])dnl
6269 dnl ---------------------------------------------------------------------------
6270 dnl CF_MSG_LOG version: 5 updated: 2010/10/23 15:52:32
6271 dnl ----------
6272 dnl Write a debug message to config.log, along with the line number in the
6273 dnl configure script.
6274 AC_DEFUN([CF_MSG_LOG],[
6275 echo "${as_me:-configure}:__oline__: testing $* ..." 1>&AC_FD_CC
6276 ])dnl
6277 dnl ---------------------------------------------------------------------------
6278 dnl CF_NCURSES_ABI_6 version: 4 updated: 2021/01/01 13:31:04
6279 dnl ----------------
6280 dnl Set ncurses' ABI to 6 unless overridden by explicit configure option, and
6281 dnl warn about this.
6282 AC_DEFUN([CF_NCURSES_ABI_6],[
6283 if test "${with_abi_version+set}" != set; then
6284         case "$cf_cv_rel_version" in
6285         (5.*)
6286                 cf_cv_rel_version=6.0
6287                 cf_cv_abi_version=6
6288                 AC_MSG_WARN(overriding ABI version to $cf_cv_abi_version)
6289                 ;;
6290         esac
6291 fi
6292 ])dnl
6293 dnl ---------------------------------------------------------------------------
6294 dnl CF_NCURSES_WITH_ABI_VERSION version: 3 updated: 2021/01/01 13:31:04
6295 dnl ---------------------------
6296 dnl Allow ncurses's ABI to be overridden.  Generally this happens when a
6297 dnl packager has incremented the ABI past that used in the original package,
6298 dnl and wishes to keep doing this.
6299 dnl
6300 dnl $1 is the package name, if any, to derive a corresponding {package}_ABI
6301 dnl symbol.
6302 AC_DEFUN([CF_NCURSES_WITH_ABI_VERSION],[
6303 CF_WITH_ABI_VERSION($1)
6304 if test "x$cf_cv_abi_version" != "x$with_abi_version"
6305 then
6306         case "$cf_cv_rel_version" in
6307         (5.*)
6308                 cf_cv_rel_version=$with_abi_version.0
6309                 ;;
6310         esac
6311 fi
6312 ])dnl
6313 dnl ---------------------------------------------------------------------------
6314 dnl CF_NO_LEAKS_OPTION version: 9 updated: 2021/06/13 19:45:41
6315 dnl ------------------
6316 dnl see CF_WITH_NO_LEAKS
6317 dnl
6318 dnl $1 = option/name
6319 dnl $2 = help-text
6320 dnl $3 = symbol to define if the option is set
6321 dnl $4 = additional actions to take if the option is set
6322 AC_DEFUN([CF_NO_LEAKS_OPTION],[
6323 AC_MSG_CHECKING(if you want to use $1 for testing)
6324 AC_ARG_WITH($1,
6325         [$2],
6326         [case "x$withval" in
6327         (x|xno) ;;
6328         (*)
6329                 : "${with_cflags:=-g}"
6330                 : "${enable_leaks:=no}"
6331                 with_$1=yes
6332                 AC_DEFINE_UNQUOTED($3,1,"Define to 1 if you want to use $1 for testing.")ifelse([$4],,[
6333          $4
6334 ])
6335                 ;;
6336         esac],
6337         [with_$1=])
6338 AC_MSG_RESULT(${with_$1:-no})
6339
6340 case ".$with_cflags" in
6341 (.*-g*)
6342         case .$CFLAGS in
6343         (.*-g*)
6344                 ;;
6345         (*)
6346                 CF_ADD_CFLAGS([-g])
6347                 ;;
6348         esac
6349         ;;
6350 esac
6351 ])dnl
6352 dnl ---------------------------------------------------------------------------
6353 dnl CF_NUMBER_SYNTAX version: 2 updated: 2015/04/17 21:13:04
6354 dnl ----------------
6355 dnl Check if the given variable is a number.  If not, report an error.
6356 dnl $1 is the variable
6357 dnl $2 is the message
6358 AC_DEFUN([CF_NUMBER_SYNTAX],[
6359 if test -n "$1" ; then
6360   case $1 in
6361   ([[0-9]]*)
6362         ;;
6363   (*)
6364         AC_MSG_ERROR($2 is not a number: $1)
6365         ;;
6366   esac
6367 else
6368   AC_MSG_ERROR($2 value is empty)
6369 fi
6370 ])dnl
6371 dnl ---------------------------------------------------------------------------
6372 dnl CF_OBJ_SUBDIR version: 8 updated: 2021/01/01 13:31:04
6373 dnl -------------
6374 dnl Compute the object-directory name from the given model name
6375 AC_DEFUN([CF_OBJ_SUBDIR],
6376 [
6377         case $1 in
6378         (libtool) $2='obj_lo'  ;;
6379         (normal)  $2='objects' ;;
6380         (debug)   $2='obj_g' ;;
6381         (profile) $2='obj_p' ;;
6382         (shared)
6383                 case "$cf_cv_system_name" in
6384                 (cygwin|msys)
6385                         $2='objects' ;;
6386                 (*)
6387                         $2='obj_s' ;;
6388                 esac
6389         esac
6390 ])dnl
6391 dnl ---------------------------------------------------------------------------
6392 dnl CF_PATHSEP version: 8 updated: 2021/01/01 13:31:04
6393 dnl ----------
6394 dnl Provide a value for the $PATH and similar separator (or amend the value
6395 dnl as provided in autoconf 2.5x).
6396 AC_DEFUN([CF_PATHSEP],
6397 [
6398         AC_MSG_CHECKING(for PATH separator)
6399         case "$cf_cv_system_name" in
6400         (os2*)  PATH_SEPARATOR=';'  ;;
6401         (*)     ${PATH_SEPARATOR:=':'}  ;;
6402         esac
6403 ifelse([$1],,,[$1=$PATH_SEPARATOR])
6404         AC_SUBST(PATH_SEPARATOR)
6405         AC_MSG_RESULT($PATH_SEPARATOR)
6406 ])dnl
6407 dnl ---------------------------------------------------------------------------
6408 dnl CF_PATH_PROG version: 12 updated: 2021/01/02 09:31:20
6409 dnl ------------
6410 dnl Check for a given program, defining corresponding symbol.
6411 dnl     $1 = environment variable, which is suffixed by "_PATH" in the #define.
6412 dnl     $2 = program name to find.
6413 dnl     $3 = optional list of additional program names to test.
6414 dnl $4 = $PATH
6415 dnl
6416 dnl If there is more than one token in the result, #define the remaining tokens
6417 dnl to $1_ARGS.  We need this for 'install' in particular.
6418 dnl
6419 dnl FIXME: we should allow this to be overridden by environment variables
6420 dnl
6421 AC_DEFUN([CF_PATH_PROG],[
6422 AC_REQUIRE([CF_PATHSEP])
6423 test -z "[$]$1" && $1="$2"
6424 AC_PATH_PROGS($1,[$]$1 $2 ifelse($3,,,$3),[$]$1, ifelse($4,,,$4))
6425
6426 cf_path_prog=""
6427 cf_path_args=""
6428 IFS="${IFS:-    }"; cf_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR"
6429 for cf_temp in $ac_cv_path_$1
6430 do
6431         if test -z "$cf_path_prog" ; then
6432                 if test "$with_full_paths" = yes ; then
6433                         CF_PATH_SYNTAX(cf_temp,break)
6434                         cf_path_prog="$cf_temp"
6435                 else
6436                         cf_path_prog="`basename "$cf_temp"`"
6437                 fi
6438         elif test -z "$cf_path_args" ; then
6439                 cf_path_args="$cf_temp"
6440         else
6441                 cf_path_args="$cf_path_args $cf_temp"
6442         fi
6443 done
6444 IFS="$cf_save_ifs"
6445
6446 if test -n "$cf_path_prog" ; then
6447         CF_MSG_LOG(defining path for ${cf_path_prog})
6448         AC_DEFINE_UNQUOTED($1_PATH,"$cf_path_prog",Define to pathname $1)
6449         test -n "$cf_path_args" && AC_DEFINE_UNQUOTED($1_ARGS,"$cf_path_args",Define to provide args for $1)
6450 fi
6451 ])dnl
6452 dnl ---------------------------------------------------------------------------
6453 dnl CF_PATH_SYNTAX version: 18 updated: 2020/12/31 18:40:20
6454 dnl --------------
6455 dnl Check the argument to see that it looks like a pathname.  Rewrite it if it
6456 dnl begins with one of the prefix/exec_prefix variables, and then again if the
6457 dnl result begins with 'NONE'.  This is necessary to work around autoconf's
6458 dnl delayed evaluation of those symbols.
6459 AC_DEFUN([CF_PATH_SYNTAX],[
6460 if test "x$prefix" != xNONE; then
6461         cf_path_syntax="$prefix"
6462 else
6463         cf_path_syntax="$ac_default_prefix"
6464 fi
6465
6466 case ".[$]$1" in
6467 (.\[$]\(*\)*|.\'*\'*)
6468         ;;
6469 (..|./*|.\\*)
6470         ;;
6471 (.[[a-zA-Z]]:[[\\/]]*) # OS/2 EMX
6472         ;;
6473 (.\[$]\{*prefix\}*|.\[$]\{*dir\}*)
6474         eval $1="[$]$1"
6475         case ".[$]$1" in
6476         (.NONE/*)
6477                 $1=`echo "[$]$1" | sed -e s%NONE%$cf_path_syntax%`
6478                 ;;
6479         esac
6480         ;;
6481 (.no|.NONE/*)
6482         $1=`echo "[$]$1" | sed -e s%NONE%$cf_path_syntax%`
6483         ;;
6484 (*)
6485         ifelse([$2],,[AC_MSG_ERROR([expected a pathname, not \"[$]$1\"])],$2)
6486         ;;
6487 esac
6488 ])dnl
6489 dnl ---------------------------------------------------------------------------
6490 dnl CF_PKG_CONFIG version: 12 updated: 2021/10/10 20:18:09
6491 dnl -------------
6492 dnl Check for the package-config program, unless disabled by command-line.
6493 dnl
6494 dnl Sets $PKG_CONFIG to the pathname of the pkg-config program.
6495 AC_DEFUN([CF_PKG_CONFIG],
6496 [
6497 AC_MSG_CHECKING(if you want to use pkg-config)
6498 AC_ARG_WITH(pkg-config,
6499         [  --with-pkg-config{=path} enable/disable use of pkg-config],
6500         [cf_pkg_config=$withval],
6501         [cf_pkg_config=yes])
6502 AC_MSG_RESULT($cf_pkg_config)
6503
6504 case "$cf_pkg_config" in
6505 (no)
6506         PKG_CONFIG=none
6507         ;;
6508 (yes)
6509         CF_ACVERSION_CHECK(2.52,
6510                 [AC_PATH_TOOL(PKG_CONFIG, pkg-config, none)],
6511                 [AC_PATH_PROG(PKG_CONFIG, pkg-config, none)])
6512         ;;
6513 (*)
6514         PKG_CONFIG=$withval
6515         ;;
6516 esac
6517
6518 test -z "$PKG_CONFIG" && PKG_CONFIG=none
6519 if test "$PKG_CONFIG" != none ; then
6520         CF_PATH_SYNTAX(PKG_CONFIG)
6521 elif test "x$cf_pkg_config" != xno ; then
6522         AC_MSG_WARN(pkg-config is not installed)
6523 fi
6524
6525 AC_SUBST(PKG_CONFIG)
6526 ])dnl
6527 dnl ---------------------------------------------------------------------------
6528 dnl CF_POSIX_C_SOURCE version: 11 updated: 2018/12/31 20:46:17
6529 dnl -----------------
6530 dnl Define _POSIX_C_SOURCE to the given level, and _POSIX_SOURCE if needed.
6531 dnl
6532 dnl     POSIX.1-1990                            _POSIX_SOURCE
6533 dnl     POSIX.1-1990 and                        _POSIX_SOURCE and
6534 dnl             POSIX.2-1992 C-Language                 _POSIX_C_SOURCE=2
6535 dnl             Bindings Option
6536 dnl     POSIX.1b-1993                           _POSIX_C_SOURCE=199309L
6537 dnl     POSIX.1c-1996                           _POSIX_C_SOURCE=199506L
6538 dnl     X/Open 2000                             _POSIX_C_SOURCE=200112L
6539 dnl
6540 dnl Parameters:
6541 dnl     $1 is the nominal value for _POSIX_C_SOURCE
6542 AC_DEFUN([CF_POSIX_C_SOURCE],
6543 [AC_REQUIRE([CF_POSIX_VISIBLE])dnl
6544
6545 if test "$cf_cv_posix_visible" = no; then
6546
6547 cf_POSIX_C_SOURCE=ifelse([$1],,199506L,[$1])
6548
6549 cf_save_CFLAGS="$CFLAGS"
6550 cf_save_CPPFLAGS="$CPPFLAGS"
6551
6552 CF_REMOVE_DEFINE(cf_trim_CFLAGS,$cf_save_CFLAGS,_POSIX_C_SOURCE)
6553 CF_REMOVE_DEFINE(cf_trim_CPPFLAGS,$cf_save_CPPFLAGS,_POSIX_C_SOURCE)
6554
6555 AC_CACHE_CHECK(if we should define _POSIX_C_SOURCE,cf_cv_posix_c_source,[
6556         CF_MSG_LOG(if the symbol is already defined go no further)
6557         AC_TRY_COMPILE([#include <sys/types.h>],[
6558 #ifndef _POSIX_C_SOURCE
6559 make an error
6560 #endif],
6561         [cf_cv_posix_c_source=no],
6562         [cf_want_posix_source=no
6563          case .$cf_POSIX_C_SOURCE in
6564          (.[[12]]??*)
6565                 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
6566                 ;;
6567          (.2)
6568                 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
6569                 cf_want_posix_source=yes
6570                 ;;
6571          (.*)
6572                 cf_want_posix_source=yes
6573                 ;;
6574          esac
6575          if test "$cf_want_posix_source" = yes ; then
6576                 AC_TRY_COMPILE([#include <sys/types.h>],[
6577 #ifdef _POSIX_SOURCE
6578 make an error
6579 #endif],[],
6580                 cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE")
6581          fi
6582          CF_MSG_LOG(ifdef from value $cf_POSIX_C_SOURCE)
6583          CFLAGS="$cf_trim_CFLAGS"
6584          CPPFLAGS="$cf_trim_CPPFLAGS"
6585          CF_APPEND_TEXT(CPPFLAGS,$cf_cv_posix_c_source)
6586          CF_MSG_LOG(if the second compile does not leave our definition intact error)
6587          AC_TRY_COMPILE([#include <sys/types.h>],[
6588 #ifndef _POSIX_C_SOURCE
6589 make an error
6590 #endif],,
6591          [cf_cv_posix_c_source=no])
6592          CFLAGS="$cf_save_CFLAGS"
6593          CPPFLAGS="$cf_save_CPPFLAGS"
6594         ])
6595 ])
6596
6597 if test "$cf_cv_posix_c_source" != no ; then
6598         CFLAGS="$cf_trim_CFLAGS"
6599         CPPFLAGS="$cf_trim_CPPFLAGS"
6600         CF_ADD_CFLAGS($cf_cv_posix_c_source)
6601 fi
6602
6603 fi # cf_cv_posix_visible
6604
6605 ])dnl
6606 dnl ---------------------------------------------------------------------------
6607 dnl CF_POSIX_VISIBLE version: 1 updated: 2018/12/31 20:46:17
6608 dnl ----------------
6609 dnl POSIX documents test-macros which an application may set before any system
6610 dnl headers are included to make features available.
6611 dnl
6612 dnl Some BSD platforms (originally FreeBSD, but copied by a few others)
6613 dnl diverged from POSIX in 2002 by setting symbols which make all of the most
6614 dnl recent features visible in the system header files unless the application
6615 dnl overrides the corresponding test-macros.  Doing that introduces portability
6616 dnl problems.
6617 dnl
6618 dnl This macro makes a special check for the symbols used for this, to avoid a
6619 dnl conflicting definition.
6620 AC_DEFUN([CF_POSIX_VISIBLE],
6621 [
6622 AC_CACHE_CHECK(if the POSIX test-macros are already defined,cf_cv_posix_visible,[
6623 AC_TRY_COMPILE([#include <stdio.h>],[
6624 #if defined(__POSIX_VISIBLE) && ((__POSIX_VISIBLE - 0L) > 0) \
6625         && defined(__XSI_VISIBLE) && ((__XSI_VISIBLE - 0L) > 0) \
6626         && defined(__BSD_VISIBLE) && ((__BSD_VISIBLE - 0L) > 0) \
6627         && defined(__ISO_C_VISIBLE) && ((__ISO_C_VISIBLE - 0L) > 0)
6628 #error conflicting symbols found
6629 #endif
6630 ],[cf_cv_posix_visible=no],[cf_cv_posix_visible=yes])
6631 ])
6632 ])dnl
6633 dnl ---------------------------------------------------------------------------
6634 dnl CF_PREDEFINE version: 2 updated: 2010/05/26 16:44:57
6635 dnl ------------
6636 dnl Add definitions to CPPFLAGS to ensure they're predefined for all compiles.
6637 dnl
6638 dnl $1 = symbol to test
6639 dnl $2 = value (if any) to use for a predefinition
6640 AC_DEFUN([CF_PREDEFINE],
6641 [
6642 AC_MSG_CHECKING(if we must define $1)
6643 AC_TRY_COMPILE([#include <sys/types.h>
6644 ],[
6645 #ifndef $1
6646 make an error
6647 #endif],[cf_result=no],[cf_result=yes])
6648 AC_MSG_RESULT($cf_result)
6649
6650 if test "$cf_result" = yes ; then
6651         CPPFLAGS="$CPPFLAGS ifelse([$2],,-D$1,[-D$1=$2])"
6652 elif test "x$2" != "x" ; then
6653         AC_MSG_CHECKING(checking for compatible value versus $2)
6654         AC_TRY_COMPILE([#include <sys/types.h>
6655 ],[
6656 #if $1-$2 < 0
6657 make an error
6658 #endif],[cf_result=yes],[cf_result=no])
6659         AC_MSG_RESULT($cf_result)
6660         if test "$cf_result" = no ; then
6661                 # perhaps we can override it - try...
6662                 CPPFLAGS="$CPPFLAGS -D$1=$2"
6663         fi
6664 fi
6665 ])dnl
6666 dnl ---------------------------------------------------------------------------
6667 dnl CF_PRG_RULES version: 2 updated: 2021/01/01 13:31:04
6668 dnl ------------
6669 dnl Append definitions and rules for the given programs to the subdirectory
6670 dnl Makefiles, and the recursion rule for the top-level Makefile.
6671 dnl
6672 dnl parameters
6673 dnl     $1 = script to run
6674 dnl     $2 = list of subdirectories
6675 dnl
6676 dnl variables
6677 dnl     $AWK
6678 AC_DEFUN([CF_PRG_RULES],
6679 [
6680 for cf_dir in $2
6681 do
6682         if test ! -d "$srcdir/$cf_dir" ; then
6683                 continue
6684         elif test -f "$srcdir/$cf_dir/programs" ; then
6685                 $AWK -f $1 "$srcdir/$cf_dir/programs" >>$cf_dir/Makefile
6686         fi
6687 done
6688
6689 ])dnl
6690 dnl ---------------------------------------------------------------------------
6691 dnl CF_PROG_AR version: 1 updated: 2009/01/01 20:15:22
6692 dnl ----------
6693 dnl Check for archiver "ar".
6694 AC_DEFUN([CF_PROG_AR],[
6695 AC_CHECK_TOOL(AR, ar, ar)
6696 ])
6697 dnl ---------------------------------------------------------------------------
6698 dnl CF_PROG_AWK version: 1 updated: 2006/09/16 11:40:59
6699 dnl -----------
6700 dnl Check for awk, ensure that the check found something.
6701 AC_DEFUN([CF_PROG_AWK],
6702 [
6703 AC_PROG_AWK
6704 test -z "$AWK" && AC_MSG_ERROR(No awk program found)
6705 ])dnl
6706 dnl ---------------------------------------------------------------------------
6707 dnl CF_PROG_CC version: 5 updated: 2019/12/31 08:53:54
6708 dnl ----------
6709 dnl standard check for CC, plus followup sanity checks
6710 dnl $1 = optional parameter to pass to AC_PROG_CC to specify compiler name
6711 AC_DEFUN([CF_PROG_CC],[
6712 CF_ACVERSION_CHECK(2.53,
6713         [AC_MSG_WARN(this will incorrectly handle gnatgcc choice)
6714          AC_REQUIRE([AC_PROG_CC])],
6715         [])
6716 ifelse($1,,[AC_PROG_CC],[AC_PROG_CC($1)])
6717 CF_GCC_VERSION
6718 CF_ACVERSION_CHECK(2.52,
6719         [AC_PROG_CC_STDC],
6720         [CF_ANSI_CC_REQD])
6721 CF_CC_ENV_FLAGS
6722 ])dnl
6723 dnl ---------------------------------------------------------------------------
6724 dnl CF_PROG_CC_C_O version: 6 updated: 2021/01/01 13:31:04
6725 dnl --------------
6726 dnl Analogous to AC_PROG_CC_C_O, but more useful: tests only $CC, ensures that
6727 dnl the output file can be renamed, and allows for a shell variable that can
6728 dnl be used later.  The parameter is either CC or CXX.  The result is the
6729 dnl cache variable:
6730 dnl     $cf_cv_prog_CC_c_o
6731 dnl     $cf_cv_prog_CXX_c_o
6732 dnl
6733 dnl $1 = compiler
6734 dnl $2 = compiler options, if any
6735 AC_DEFUN([CF_PROG_CC_C_O],
6736 [AC_REQUIRE([AC_PROG_CC])dnl
6737 AC_MSG_CHECKING([whether [$]$1 understands -c and -o together])
6738 AC_CACHE_VAL(cf_cv_prog_$1_c_o,
6739 [
6740 cat > conftest.$ac_ext <<CF_EOF
6741 int main(void)
6742 {
6743         ${cf_cv_main_return:-return}(0);
6744 }
6745 CF_EOF
6746 # We do the test twice because some compilers refuse to overwrite an
6747 # existing .o file with -o, though they will create one.
6748 ac_try='[$]$1 $2 -c conftest.$ac_ext -o conftest2.$ac_objext >&AC_FD_CC'
6749 if AC_TRY_EVAL(ac_try) &&
6750   test -f conftest2.$ac_objext && AC_TRY_EVAL(ac_try);
6751 then
6752   eval cf_cv_prog_$1_c_o=yes
6753 else
6754   eval cf_cv_prog_$1_c_o=no
6755 fi
6756 rm -rf ./conftest*
6757 ])dnl
6758 if test "$cf_cv_prog_$1_c_o" = yes; then
6759   AC_MSG_RESULT([yes])
6760 else
6761   AC_MSG_RESULT([no])
6762 fi
6763 ])dnl
6764 dnl ---------------------------------------------------------------------------
6765 dnl CF_PROG_GNAT version: 12 updated: 2021/01/02 17:09:14
6766 dnl ------------
6767 dnl Check for gnat/gnatmake/etc, ensure that the toolset is complete.
6768 AC_DEFUN([CF_PROG_GNAT],[
6769 for cf_prog_gnat in gnat gnatmake gprconfig gprbuild
6770 do
6771         CF_UPPER(cf_upper_prog_gnat,${cf_prog_gnat})
6772
6773         unset ac_cv_path_cf_TEMP_gnat
6774         unset cf_TEMP_gnat
6775         AC_PATH_PROG(cf_TEMP_gnat,$cf_prog_gnat,no)
6776         eval "cf_cv_PATH_$cf_upper_prog_gnat=[$]ac_cv_path_cf_TEMP_gnat"
6777
6778         if test "x$cf_TEMP_gnat" != xno; then
6779                 unset cf_cv_gnat_version
6780                 unset cf_TEMP_gnat
6781                 CF_GNAT_VERSION(cf_TEMP_gnat,$cf_prog_gnat)
6782         fi
6783         eval "cf_cv_VERSION_$cf_upper_prog_gnat=[$]cf_TEMP_gnat"
6784
6785         unset cf_TEMP_gnat
6786         unset cf_cv_gnat_version
6787         unset ac_cv_path_cf_TEMP_gnat
6788 done
6789
6790 if test "x$cf_cv_VERSION_GNATMAKE" = "xno"; then
6791         cf_ada_make=
6792         cf_cv_prog_gnat_correct=no
6793 else
6794         cf_ada_make=gnatmake
6795         if test "x$cf_cv_VERSION_GPRCONFIG" = "xno"; then
6796                 # gprconfig is newer than gnatmake; we can continue...
6797                 cf_ada_config="##"
6798         else
6799                 rm -rf ./conftest* ./*~conftest*
6800                 if mkdir conftest.src
6801                 then
6802                         cf_ada_config=""
6803                         cd conftest.src
6804                         for cf_gprconfig in Ada C
6805                         do
6806                                 AC_MSG_CHECKING(for gprconfig name for $cf_gprconfig)
6807                                 if test "$cf_gprconfig" = C
6808                                 then
6809                                         for cf_gprconfig_param in \
6810                                                 "$cf_gprconfig,,,,GNATGCC" \
6811                                                 "$cf_gprconfig,,,,GCC" \
6812                                                 "$cf_gprconfig"
6813                                         do
6814                                                 cf_gprconfig_value=`echo s| gprconfig --config=$cf_gprconfig_param 2>&AC_FD_CC | ${AWK:-awk} '/^\*/{print [$]3;}' | head -n 1`
6815                                                 test -n "$cf_gprconfig_value" && break
6816                                         done
6817                                 else
6818                                         cf_gprconfig_param=$cf_gprconfig
6819                                         cf_gprconfig_value=`echo s| gprconfig --config=$cf_gprconfig_param 2>&AC_FD_CC | ${AWK:-awk} '/^\*/{print [$]3;}' | head -n 1`
6820                                 fi
6821                                 if test -n "$cf_gprconfig_value"
6822                                 then
6823                                         eval "cf_ada_config_[$]cf_gprconfig=[$]cf_gprconfig_value"
6824                                         AC_MSG_RESULT($cf_gprconfig_value)
6825                                 else
6826                                         AC_MSG_RESULT(missing)
6827                                         cf_ada_config="#"
6828                                         break
6829                                 fi
6830                         done
6831                         cd ..
6832                         rm -rf ./conftest* ./*~conftest*
6833                 fi
6834         fi
6835         if test "x$cf_ada_config" != "x#"
6836         then
6837                 CF_GNAT_VERSION
6838                 CF_CHECK_GNAT_VERSION
6839                 AC_CHECK_PROG(M4_exists, m4, yes, no)
6840                 if test "$ac_cv_prog_M4_exists" = no; then
6841                         cf_cv_prog_gnat_correct=no
6842                         AC_MSG_WARN(Ada95 binding required program m4 not found. Ada95 binding disabled)
6843                 fi
6844                 if test "$cf_cv_prog_gnat_correct" = yes; then
6845                         AC_MSG_CHECKING(if GNAT works)
6846                         CF_GNAT_TRY_RUN([procedure conftest;],
6847 [with Text_IO;
6848 with GNAT.OS_Lib;
6849 procedure conftest is
6850 begin
6851    Text_IO.Put ("Hello World");
6852    Text_IO.New_Line;
6853    GNAT.OS_Lib.OS_Exit (0);
6854 end conftest;],
6855 [cf_cv_prog_gnat_correct=yes],
6856 [cf_cv_prog_gnat_correct=no])
6857                         AC_MSG_RESULT($cf_cv_prog_gnat_correct)
6858                 fi
6859         else
6860                 cf_cv_prog_gnat_correct=no
6861         fi
6862 fi
6863
6864 AC_SUBST(cf_ada_make)
6865 AC_SUBST(cf_ada_config)
6866 AC_SUBST(cf_ada_config_Ada)
6867 AC_SUBST(cf_ada_config_C)
6868 ])dnl
6869 dnl ---------------------------------------------------------------------------
6870 dnl CF_PROG_INSTALL version: 10 updated: 2021/01/04 19:33:05
6871 dnl ---------------
6872 dnl Force $INSTALL to be an absolute-path.  Otherwise, edit_man.sh and the
6873 dnl misc/tabset install won't work properly.  Usually this happens only when
6874 dnl using the fallback mkinstalldirs script
6875 AC_DEFUN([CF_PROG_INSTALL],
6876 [AC_PROG_INSTALL
6877 case $INSTALL in
6878 (/*)
6879         ;;
6880 (*)
6881         CF_DIRNAME(cf_dir,$INSTALL)
6882         test -z "$cf_dir" && cf_dir=.
6883         INSTALL="`cd \"$cf_dir\" && pwd`"/"`echo "$INSTALL" | sed -e 's%^.*/%%'`"
6884         ;;
6885 esac
6886 ])dnl
6887 dnl ---------------------------------------------------------------------------
6888 dnl CF_PROG_LDCONFIG version: 5 updated: 2015/04/18 08:56:57
6889 dnl ----------------
6890 dnl Check for ldconfig, needed to fixup shared libraries that would be built
6891 dnl and then used in the install.
6892 AC_DEFUN([CF_PROG_LDCONFIG],[
6893 if test "$cross_compiling" = yes ; then
6894         LDCONFIG=:
6895 else
6896         case "$cf_cv_system_name" in
6897         (dragonfly*|mirbsd*|freebsd*)
6898                 test -z "$LDCONFIG" && LDCONFIG="/sbin/ldconfig -R"
6899                 ;;
6900         (*) LDPATH=$PATH:/sbin:/usr/sbin
6901                 AC_PATH_PROG(LDCONFIG,ldconfig,,$LDPATH)
6902                 ;;
6903         esac
6904 fi
6905 AC_SUBST(LDCONFIG)
6906 ])dnl
6907 dnl ---------------------------------------------------------------------------
6908 dnl CF_PROG_LINT version: 5 updated: 2022/08/20 15:44:13
6909 dnl ------------
6910 AC_DEFUN([CF_PROG_LINT],
6911 [
6912 AC_CHECK_PROGS(LINT, lint cppcheck splint)
6913 case "x$LINT" in
6914 (xcppcheck|x*/cppcheck)
6915         test -z "$LINT_OPTS" && LINT_OPTS="--enable=all"
6916         ;;
6917 esac
6918 AC_SUBST(LINT_OPTS)
6919 AC_SUBST(LINT_LIBS)
6920 ])dnl
6921 dnl ---------------------------------------------------------------------------
6922 dnl CF_PROG_LN_S version: 2 updated: 2010/08/14 18:25:37
6923 dnl ------------
6924 dnl Combine checks for "ln -s" and "ln -sf", updating $LN_S to include "-f"
6925 dnl option if it is supported.
6926 AC_DEFUN([CF_PROG_LN_S],[
6927 AC_PROG_LN_S
6928 AC_MSG_CHECKING(if $LN_S -f options work)
6929
6930 rm -f conf$$.src conf$$dst
6931 echo >conf$$.dst
6932 echo first >conf$$.src
6933 if $LN_S -f conf$$.src conf$$.dst 2>/dev/null; then
6934         cf_prog_ln_sf=yes
6935 else
6936         cf_prog_ln_sf=no
6937 fi
6938 rm -f conf$$.dst conf$$src
6939 AC_MSG_RESULT($cf_prog_ln_sf)
6940
6941 test "$cf_prog_ln_sf" = yes && LN_S="$LN_S -f"
6942 ])dnl
6943 dnl ---------------------------------------------------------------------------
6944 dnl CF_REGEX version: 18 updated: 2021/01/01 16:53:59
6945 dnl --------
6946 dnl Attempt to determine if we've got one of the flavors of regular-expression
6947 dnl code that we can support.
6948 AC_DEFUN([CF_REGEX],
6949 [
6950
6951 cf_regex_func=no
6952 cf_regex_libs=
6953 case "$host_os" in
6954 (mingw*)
6955         # -lsystre -ltre -lintl -liconv
6956         AC_CHECK_LIB(systre,regcomp,[
6957                 AC_CHECK_LIB(iconv,libiconv_open,[CF_ADD_LIB(iconv)])
6958                 AC_CHECK_LIB(intl,libintl_gettext,[CF_ADD_LIB(intl)])
6959                 AC_CHECK_LIB(tre,tre_regcomp,[CF_ADD_LIB(tre)])
6960                 CF_ADD_LIB(systre)
6961                 cf_regex_func=regcomp
6962         ],[
6963                 AC_CHECK_LIB(gnurx,regcomp,[
6964                         CF_ADD_LIB(gnurx)
6965                         cf_regex_func=regcomp])
6966         ])
6967         ;;
6968 (*)
6969         cf_regex_libs="regex re"
6970         AC_CHECK_FUNC(regcomp,[cf_regex_func=regcomp],[
6971                 for cf_regex_lib in $cf_regex_libs
6972                 do
6973                         AC_CHECK_LIB($cf_regex_lib,regcomp,[
6974                                         CF_ADD_LIB($cf_regex_lib)
6975                                         cf_regex_func=regcomp
6976                                         break])
6977                 done
6978         ])
6979         ;;
6980 esac
6981
6982 if test "$cf_regex_func" = no ; then
6983         AC_CHECK_FUNC(compile,[cf_regex_func=compile],[
6984                 AC_CHECK_LIB(gen,compile,[
6985                                 CF_ADD_LIB(gen)
6986                                 cf_regex_func=compile])])
6987 fi
6988
6989 if test "$cf_regex_func" = no ; then
6990         AC_MSG_WARN(cannot find regular expression library)
6991 fi
6992
6993 AC_CACHE_CHECK(for regular-expression headers,cf_cv_regex_hdrs,[
6994
6995 cf_cv_regex_hdrs=no
6996 case "$cf_regex_func" in
6997 (compile)
6998         for cf_regex_hdr in regexp.h regexpr.h
6999         do
7000                 AC_TRY_LINK([#include <$cf_regex_hdr>],[
7001                         char *p = compile("", "", "", 0);
7002                         int x = step("", "");
7003                         (void)p;
7004                         (void)x;
7005                 ],[
7006                         cf_cv_regex_hdrs=$cf_regex_hdr
7007                         break
7008                 ])
7009         done
7010         ;;
7011 (*)
7012         for cf_regex_hdr in regex.h
7013         do
7014                 AC_TRY_LINK([#include <sys/types.h>
7015 #include <$cf_regex_hdr>],[
7016                         regex_t *p = 0;
7017                         int x = regcomp(p, "", 0);
7018                         int y = regexec(p, "", 0, 0, 0);
7019                         (void)x;
7020                         (void)y;
7021                         regfree(p);
7022                 ],[
7023                         cf_cv_regex_hdrs=$cf_regex_hdr
7024                         break
7025                 ])
7026         done
7027         ;;
7028 esac
7029
7030 ])
7031
7032 case "$cf_cv_regex_hdrs" in
7033         (no)            AC_MSG_WARN(no regular expression header found) ;;
7034         (regex.h)       AC_DEFINE(HAVE_REGEX_H_FUNCS,1,[Define to 1 to include regex.h for regular expressions]) ;;
7035         (regexp.h)      AC_DEFINE(HAVE_REGEXP_H_FUNCS,1,[Define to 1 to include regexp.h for regular expressions]) ;;
7036         (regexpr.h) AC_DEFINE(HAVE_REGEXPR_H_FUNCS,1,[Define to 1 to include regexpr.h for regular expressions]) ;;
7037 esac
7038 ])dnl
7039 dnl ---------------------------------------------------------------------------
7040 dnl CF_REMOVE_CFLAGS version: 3 updated: 2021/09/05 17:25:40
7041 dnl ----------------
7042 dnl Remove a given option from CFLAGS/CPPFLAGS
7043 dnl $1 = option to remove
7044 dnl $2 = variable to update
7045 dnl $3 = nonempty to allow verbose message
7046 define([CF_REMOVE_CFLAGS],
7047 [
7048 cf_tmp_cflag=`echo "x$1" | sed -e 's/^.//' -e 's/=.*//'`
7049 while true
7050 do
7051         cf_old_cflag=`echo "x[$]$2" | sed -e 's/^.//' -e 's/[[  ]][[    ]]*-/ -/g' -e "s%$cf_tmp_cflag\\(=[[^   ]][[^   ]]*\\)\?%%" -e 's/^[[   ]]*//' -e 's%[[ ]][[ ]]*-D% -D%g' -e 's%[[ ]][[ ]]*-I% -I%g'`
7052         test "[$]$2" != "$cf_old_cflag" || break
7053         ifelse([$3],,,[CF_VERBOSE(removing old option $1 from $2)])
7054         $2="$cf_old_cflag"
7055 done
7056 ])dnl
7057 dnl ---------------------------------------------------------------------------
7058 dnl CF_REMOVE_DEFINE version: 3 updated: 2010/01/09 11:05:50
7059 dnl ----------------
7060 dnl Remove all -U and -D options that refer to the given symbol from a list
7061 dnl of C compiler options.  This works around the problem that not all
7062 dnl compilers process -U and -D options from left-to-right, so a -U option
7063 dnl cannot be used to cancel the effect of a preceding -D option.
7064 dnl
7065 dnl $1 = target (which could be the same as the source variable)
7066 dnl $2 = source (including '$')
7067 dnl $3 = symbol to remove
7068 define([CF_REMOVE_DEFINE],
7069 [
7070 $1=`echo "$2" | \
7071         sed     -e 's/-[[UD]]'"$3"'\(=[[^       ]]*\)\?[[       ]]/ /g' \
7072                 -e 's/-[[UD]]'"$3"'\(=[[^       ]]*\)\?[$]//g'`
7073 ])dnl
7074 dnl ---------------------------------------------------------------------------
7075 dnl CF_REMOVE_LIB version: 1 updated: 2007/02/17 14:11:52
7076 dnl -------------
7077 dnl Remove the given library from the symbol
7078 dnl
7079 dnl $1 = target (which could be the same as the source variable)
7080 dnl $2 = source (including '$')
7081 dnl $3 = library to remove
7082 define([CF_REMOVE_LIB],
7083 [
7084 # remove $3 library from $2
7085 $1=`echo "$2" | sed -e 's/-l$3[[        ]]//g' -e 's/-l$3[$]//'`
7086 ])dnl
7087 dnl ---------------------------------------------------------------------------
7088 dnl CF_RESTORE_XTRA_FLAGS version: 1 updated: 2020/01/11 16:47:45
7089 dnl ---------------------
7090 dnl Restore flags saved in CF_SAVE_XTRA_FLAGS
7091 dnl $1 = name of current macro
7092 define([CF_RESTORE_XTRA_FLAGS],
7093 [
7094 LIBS="$cf_save_LIBS_$1"
7095 CFLAGS="$cf_save_CFLAGS_$1"
7096 CPPFLAGS="$cf_save_CPPFLAGS_$1"
7097 ])dnl
7098 dnl ---------------------------------------------------------------------------
7099 dnl CF_RPATH_HACK version: 13 updated: 2021/01/03 18:30:50
7100 dnl -------------
7101 AC_DEFUN([CF_RPATH_HACK],
7102 [AC_REQUIRE([AC_PROG_FGREP])dnl
7103 AC_REQUIRE([CF_LD_RPATH_OPT])dnl
7104
7105 AC_MSG_CHECKING(for updated LDFLAGS)
7106 if test -n "$LD_RPATH_OPT" ; then
7107         AC_MSG_RESULT(maybe)
7108
7109         AC_CHECK_PROGS(cf_ldd_prog,ldd,no)
7110         cf_rpath_list="/usr/lib /lib"
7111         if test "$cf_ldd_prog" != no
7112         then
7113                 cf_rpath_oops=
7114
7115 AC_TRY_LINK([#include <stdio.h>],
7116                 [printf("Hello");],
7117                 [cf_rpath_oops=`"$cf_ldd_prog" "conftest$ac_exeext" | ${FGREP-fgrep} ' not found' | sed -e 's% =>.*$%%' |sort | uniq`
7118                  cf_rpath_list=`"$cf_ldd_prog" "conftest$ac_exeext" | ${FGREP-fgrep} / | sed -e 's%^.*[[        ]]/%/%' -e 's%/[[^/]][[^/]]*$%%' |sort | uniq`])
7119
7120                 # If we passed the link-test, but get a "not found" on a given library,
7121                 # this could be due to inept reconfiguration of gcc to make it only
7122                 # partly honor /usr/local/lib (or whatever).  Sometimes this behavior
7123                 # is intentional, e.g., installing gcc in /usr/bin and suppressing the
7124                 # /usr/local libraries.
7125                 if test -n "$cf_rpath_oops"
7126                 then
7127                         for cf_rpath_src in $cf_rpath_oops
7128                         do
7129                                 for cf_rpath_dir in \
7130                                         /usr/local \
7131                                         /usr/pkg \
7132                                         /opt/sfw
7133                                 do
7134                                         if test -f "$cf_rpath_dir/lib/$cf_rpath_src"
7135                                         then
7136                                                 CF_VERBOSE(...adding -L$cf_rpath_dir/lib to LDFLAGS for $cf_rpath_src)
7137                                                 LDFLAGS="$LDFLAGS -L$cf_rpath_dir/lib"
7138                                                 break
7139                                         fi
7140                                 done
7141                         done
7142                 fi
7143         fi
7144
7145         CF_VERBOSE(...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS)
7146
7147         CF_RPATH_HACK_2(LDFLAGS)
7148         CF_RPATH_HACK_2(LIBS)
7149
7150         CF_VERBOSE(...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS)
7151 else
7152         AC_MSG_RESULT(no)
7153 fi
7154 AC_SUBST(EXTRA_LDFLAGS)
7155 ])dnl
7156 dnl ---------------------------------------------------------------------------
7157 dnl CF_RPATH_HACK_2 version: 8 updated: 2021/01/01 13:31:04
7158 dnl ---------------
7159 dnl Do one set of substitutions for CF_RPATH_HACK, adding an rpath option to
7160 dnl EXTRA_LDFLAGS for each -L option found.
7161 dnl
7162 dnl $cf_rpath_list contains a list of directories to ignore.
7163 dnl
7164 dnl $1 = variable name to update.  The LDFLAGS variable should be the only one,
7165 dnl      but LIBS often has misplaced -L options.
7166 AC_DEFUN([CF_RPATH_HACK_2],
7167 [
7168 CF_VERBOSE(...checking $1 [$]$1)
7169
7170 cf_rpath_dst=
7171 for cf_rpath_src in [$]$1
7172 do
7173         case "$cf_rpath_src" in
7174         (-L*)
7175
7176                 # check if this refers to a directory which we will ignore
7177                 cf_rpath_skip=no
7178                 if test -n "$cf_rpath_list"
7179                 then
7180                         for cf_rpath_item in $cf_rpath_list
7181                         do
7182                                 if test "x$cf_rpath_src" = "x-L$cf_rpath_item"
7183                                 then
7184                                         cf_rpath_skip=yes
7185                                         break
7186                                 fi
7187                         done
7188                 fi
7189
7190                 if test "$cf_rpath_skip" = no
7191                 then
7192                         # transform the option
7193                         if test "$LD_RPATH_OPT" = "-R " ; then
7194                                 cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%-R %"`
7195                         else
7196                                 cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%$LD_RPATH_OPT%"`
7197                         fi
7198
7199                         # if we have not already added this, add it now
7200                         cf_rpath_tst=`echo "$EXTRA_LDFLAGS" | sed -e "s%$cf_rpath_tmp %%"`
7201                         if test "x$cf_rpath_tst" = "x$EXTRA_LDFLAGS"
7202                         then
7203                                 CF_VERBOSE(...Filter $cf_rpath_src ->$cf_rpath_tmp)
7204                                 EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS"
7205                         fi
7206                 fi
7207                 ;;
7208         esac
7209         cf_rpath_dst="$cf_rpath_dst $cf_rpath_src"
7210 done
7211 $1=$cf_rpath_dst
7212
7213 CF_VERBOSE(...checked $1 [$]$1)
7214 AC_SUBST(EXTRA_LDFLAGS)
7215 ])dnl
7216 dnl ---------------------------------------------------------------------------
7217 dnl CF_SAVE_XTRA_FLAGS version: 1 updated: 2020/01/11 16:46:44
7218 dnl ------------------
7219 dnl Use this macro to save CFLAGS/CPPFLAGS/LIBS before checks against X headers
7220 dnl and libraries which do not update those variables.
7221 dnl
7222 dnl $1 = name of current macro
7223 define([CF_SAVE_XTRA_FLAGS],
7224 [
7225 cf_save_LIBS_$1="$LIBS"
7226 cf_save_CFLAGS_$1="$CFLAGS"
7227 cf_save_CPPFLAGS_$1="$CPPFLAGS"
7228 LIBS="$LIBS ${X_PRE_LIBS} ${X_LIBS} ${X_EXTRA_LIBS}"
7229 for cf_X_CFLAGS in $X_CFLAGS
7230 do
7231         case "x$cf_X_CFLAGS" in
7232         x-[[IUD]]*)
7233                 CPPFLAGS="$CPPFLAGS $cf_X_CFLAGS"
7234                 ;;
7235         *)
7236                 CFLAGS="$CFLAGS $cf_X_CFLAGS"
7237                 ;;
7238         esac
7239 done
7240 ])dnl
7241 dnl ---------------------------------------------------------------------------
7242 dnl CF_SHARED_OPTS version: 107 updated: 2021/09/04 06:47:34
7243 dnl --------------
7244 dnl --------------
7245 dnl Attempt to determine the appropriate CC/LD options for creating a shared
7246 dnl library.
7247 dnl
7248 dnl Notes:
7249 dnl a) ${LOCAL_LDFLAGS} is used to link executables that will run within
7250 dnl the build-tree, i.e., by making use of the libraries that are compiled in
7251 dnl $rel_builddir/lib We avoid compiling-in a $rel_builddir/lib path for the
7252 dnl shared library since that can lead to unexpected results at runtime.
7253 dnl b) ${LOCAL_LDFLAGS2} has the same intention but assumes that the shared
7254 dnl libraries are compiled in ../../lib
7255 dnl
7256 dnl The variable 'cf_cv_do_symlinks' is used to control whether we configure
7257 dnl to install symbolic links to the rel/abi versions of shared libraries.
7258 dnl
7259 dnl The variable 'cf_cv_shlib_version' controls whether we use the rel or abi
7260 dnl version when making symbolic links.
7261 dnl
7262 dnl The variable 'cf_cv_shlib_version_infix' controls whether shared library
7263 dnl version numbers are infix (ex: libncurses.<ver>.dylib) or postfix
7264 dnl (ex: libncurses.so.<ver>).
7265 dnl
7266 dnl Some loaders leave 'so_locations' lying around.  It is nice to clean up.
7267 AC_DEFUN([CF_SHARED_OPTS],
7268 [
7269         AC_REQUIRE([CF_LD_RPATH_OPT])
7270
7271         RM_SHARED_OPTS=
7272         LOCAL_LDFLAGS=
7273         LOCAL_LDFLAGS2=
7274         LD_SHARED_OPTS=
7275         INSTALL_LIB="-m 644"
7276         : ${rel_builddir:=.}
7277
7278         shlibdir=$libdir
7279         AC_SUBST(shlibdir)
7280
7281         MAKE_DLLS="#"
7282         AC_SUBST(MAKE_DLLS)
7283
7284         cf_cv_do_symlinks=no
7285         cf_ld_rpath_opt=
7286         test "$cf_cv_enable_rpath" = yes && cf_ld_rpath_opt="$LD_RPATH_OPT"
7287
7288         AC_MSG_CHECKING(if release/abi version should be used for shared libs)
7289         AC_ARG_WITH(shlib-version,
7290         [  --with-shlib-version=X  Specify rel or abi version for shared libs],
7291         [test -z "$withval" && withval=auto
7292         case "$withval" in
7293         (yes)
7294                 cf_cv_shlib_version=auto
7295                 ;;
7296         (rel|abi|auto)
7297                 cf_cv_shlib_version=$withval
7298                 ;;
7299         (*)
7300                 AC_MSG_RESULT($withval)
7301                 AC_MSG_ERROR([option value must be one of: rel, abi, or auto])
7302                 ;;
7303         esac
7304         ],[cf_cv_shlib_version=auto])
7305         AC_MSG_RESULT($cf_cv_shlib_version)
7306
7307         cf_cv_rm_so_locs=no
7308         cf_try_cflags=
7309
7310         # Some less-capable ports of gcc support only -fpic
7311         CC_SHARED_OPTS=
7312
7313         cf_try_fPIC=no
7314         if test "$GCC" = yes
7315         then
7316                 cf_try_fPIC=yes
7317         else
7318                 case "$cf_cv_system_name" in
7319                 (*linux*)       # e.g., PGI compiler
7320                         cf_try_fPIC=yes
7321                         ;;
7322                 esac
7323         fi
7324
7325         if test "$cf_try_fPIC" = yes
7326         then
7327                 AC_MSG_CHECKING(which $CC option to use)
7328                 cf_save_CFLAGS="$CFLAGS"
7329                 for CC_SHARED_OPTS in -fPIC -fpic ''
7330                 do
7331                         CFLAGS="$cf_save_CFLAGS $CC_SHARED_OPTS"
7332                         AC_TRY_COMPILE([#include <stdio.h>],[int x = 1],[break],[])
7333                 done
7334                 AC_MSG_RESULT($CC_SHARED_OPTS)
7335                 CFLAGS="$cf_save_CFLAGS"
7336         fi
7337
7338         cf_cv_shlib_version_infix=no
7339
7340         case "$cf_cv_system_name" in
7341         (aix4.[3-9]*|aix[[5-7]]*)
7342                 if test "$GCC" = yes; then
7343                         CC_SHARED_OPTS='-Wl,-brtl'
7344                         MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o [$]@'
7345                 else
7346                         CC_SHARED_OPTS='-brtl'
7347                         # as well as '-qpic=large -G' or perhaps "-bM:SRE -bnoentry -bexpall"
7348                         MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -G -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o [$]@'
7349                 fi
7350                 ;;
7351         (beos*)
7352                 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -o $[@] -Xlinker -soname=`basename $[@]` -nostart -e 0'
7353                 ;;
7354         (cygwin*)
7355                 CC_SHARED_OPTS=
7356                 MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
7357                 RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
7358                 cf_cv_shlib_version=cygdll
7359                 cf_cv_shlib_version_infix=cygdll
7360                 shlibdir=$bindir
7361                 MAKE_DLLS=
7362                 cat >mk_shared_lib.sh <<-CF_EOF
7363                 #!$SHELL
7364                 SHARED_LIB=\[$]1
7365                 IMPORT_LIB=\`echo "\[$]1" | sed -e 's/cyg/lib/' -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
7366                 shift
7367                 cat <<-EOF
7368                 Linking shared library
7369                 ** SHARED_LIB \[$]SHARED_LIB
7370                 ** IMPORT_LIB \[$]IMPORT_LIB
7371 EOF
7372                 exec \[$]* ${LDFLAGS} -shared -Wl,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB}
7373 CF_EOF
7374                 chmod +x mk_shared_lib.sh
7375                 ;;
7376         (msys*)
7377                 CC_SHARED_OPTS=
7378                 MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
7379                 RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
7380                 cf_cv_shlib_version=msysdll
7381                 cf_cv_shlib_version_infix=msysdll
7382                 shlibdir=$bindir
7383                 MAKE_DLLS=
7384                 cat >mk_shared_lib.sh <<-CF_EOF
7385                 #!$SHELL
7386                 SHARED_LIB=\[$]1
7387                 IMPORT_LIB=\`echo "\[$]1" | sed -e 's/msys-/lib/' -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
7388                 shift
7389                 cat <<-EOF
7390                 Linking shared library
7391                 ** SHARED_LIB \[$]SHARED_LIB
7392                 ** IMPORT_LIB \[$]IMPORT_LIB
7393 EOF
7394                 exec \[$]* ${LDFLAGS} -shared -Wl,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB}
7395 CF_EOF
7396                 chmod +x mk_shared_lib.sh
7397                 ;;
7398         (darwin*)
7399                 cf_try_cflags="no-cpp-precomp"
7400                 CC_SHARED_OPTS="-dynamic"
7401                 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -dynamiclib -install_name ${libdir}/`basename $[@]` -compatibility_version ${ABI_VERSION} -current_version ${ABI_VERSION} -o $[@]'
7402                 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi
7403                 cf_cv_shlib_version_infix=yes
7404                 AC_CACHE_CHECK([if ld -search_paths_first works], cf_cv_ldflags_search_paths_first, [
7405                         cf_save_LDFLAGS=$LDFLAGS
7406                         LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
7407                         AC_TRY_LINK(, [int i;], cf_cv_ldflags_search_paths_first=yes, cf_cv_ldflags_search_paths_first=no)
7408                                 LDFLAGS=$cf_save_LDFLAGS])
7409                 if test "$cf_cv_ldflags_search_paths_first" = yes; then
7410                         LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
7411                 fi
7412                 ;;
7413         (haiku*)
7414                 CF_SHARED_SONAME
7415                 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
7416                 ;;
7417         (hpux[[7-8]]*)
7418                 # HP-UX 8.07 ld lacks "+b" option used for libdir search-list
7419                 if test "$GCC" != yes; then
7420                         CC_SHARED_OPTS='+Z'
7421                 fi
7422                 MK_SHARED_LIB='${LD} ${LDFLAGS} -b -o $[@]'
7423                 INSTALL_LIB="-m 555"
7424                 ;;
7425         (hpux*)
7426                 # (tested with gcc 2.7.2 -- I don't have c89)
7427                 if test "$GCC" = yes; then
7428                         LD_SHARED_OPTS='-Xlinker +b -Xlinker ${libdir}'
7429                 else
7430                         CC_SHARED_OPTS='+Z'
7431                         LD_SHARED_OPTS='-Wl,+b,${libdir}'
7432                 fi
7433                 MK_SHARED_LIB='${LD} ${LDFLAGS} +b ${libdir} -b -o $[@]'
7434                 # HP-UX shared libraries must be executable, and should be
7435                 # readonly to exploit a quirk in the memory manager.
7436                 INSTALL_LIB="-m 555"
7437                 ;;
7438         (interix*)
7439                 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
7440                 if test "$cf_cv_shlib_version" = rel; then
7441                         cf_shared_soname='`basename $[@] .${REL_VERSION}`.${ABI_VERSION}'
7442                 else
7443                         cf_shared_soname='`basename $[@]`'
7444                 fi
7445                 CC_SHARED_OPTS=
7446                 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-rpath,${RPATH_LIST} -Wl,-h,'$cf_shared_soname' -o $[@]'
7447                 ;;
7448         (irix*)
7449                 if test "$cf_cv_enable_rpath" = yes ; then
7450                         EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
7451                 fi
7452                 # tested with IRIX 5.2 and 'cc'.
7453                 if test "$GCC" != yes; then
7454                         CC_SHARED_OPTS='-KPIC'
7455                         MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -rdata_shared -soname `basename $[@]` -o $[@]'
7456                 else
7457                         MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,`basename $[@]` -o $[@]'
7458                 fi
7459                 cf_cv_rm_so_locs=yes
7460                 ;;
7461         (linux*|gnu*|k*bsd*-gnu)
7462                 if test "$DFT_LWR_MODEL" = "shared" && test -n "$LD_RPATH_OPT" ; then
7463                         LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
7464                         LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
7465                 fi
7466                 if test "$cf_cv_enable_rpath" = yes ; then
7467                         EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
7468                 fi
7469                 CF_SHARED_SONAME
7470                 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
7471                 ;;
7472         (mingw*msvc*)
7473                 cf_cv_shlib_version=msvcdll
7474                 cf_cv_shlib_version_infix=msvcdll
7475                 shlibdir=$bindir
7476                 MAKE_DLLS=
7477                 if test "$DFT_LWR_MODEL" = "shared" ; then
7478                         LOCAL_LDFLAGS="-link -dll"
7479                         LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
7480                         EXTRA_LDFLAGS="-link -dll $EXTRA_LDFLAGS"
7481                 fi
7482                 CC_SHARED_OPTS=
7483                 MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ ${LD} [$]{CFLAGS}'
7484                 RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.lib"
7485                 cat >mk_shared_lib.sh <<-CF_EOF
7486                 #!$SHELL
7487                 SHARED_LIB=\[$]1
7488                 IMPORT_LIB=\`echo "\[$]1" | sed -e 's/[[0-9]]*\.dll[$]/.dll.lib/'\`
7489                 shift
7490                 my_ld=\[$]1
7491                 shift
7492                 cat <<-EOF
7493                 Linking shared library
7494                 ** SHARED LIB \$SHARED_LIB
7495                 ** IMPORT_LIB \$IMPORT_LIB
7496 EOF
7497                 args=\$(echo \[$]* | sed -E "s#-l(\w*)#\1.dll.lib#g" | sed -E "s#-L(\w*)#-LIBPATH:\1#g")
7498                 exec \$my_ld -DLL -IMPLIB:"\${IMPORT_LIB}" -OUT:"\${SHARED_LIB}" ${LDFLAGS} \$args
7499                 mv "\${IMPORT_LIB}" "\${IMPORT_LIB}"
7500 CF_EOF
7501                 chmod +x mk_shared_lib.sh
7502                 cat >mk_prog.sh <<-CF_EOF
7503                 #!$SHELL
7504                 shift
7505                 # Ignore first argument (compiler) and use LD (link.exe) unconditionally
7506                 LD="[$]LD"
7507                 clopts=()
7508                 ldopts=("/subsystem:console")
7509                 libs=()
7510                 isdll=0
7511                 while test \[$]# -gt 0; do
7512                         case "\[$]1" in
7513                                 -link)
7514                                         # ignore -link argument
7515                                         ;;
7516                                 -M[[TD]] | -M[[TD]]d)
7517                                         # ignore runtime-library option
7518                                         ;;
7519                                 -dll)
7520                                         isdll=1
7521                                         ;;
7522                                 -W* | -w*)
7523                                         # ignore warnings
7524                                         ;;
7525                                 -D*)
7526                                         clopts+=("\[$]1")
7527                                         ;;
7528                                 -I*)
7529                                         clopts+=("\[$]1")
7530                                         ;;
7531                                 -l*)
7532                                         libs+=("\`echo \"\[$]1\" | sed \"s/^-l//\"\`")
7533                                         ;;
7534                                 -L*)
7535                                         ldopts+=("\`echo \"\[$]1\" | sed \"s/^-L/-LIBPATH:/\"\`")
7536                                         ;;
7537                                 *.obj | *.o)
7538                                         ldopts+=("\[$]1")
7539                                         ;;
7540                                 -Wl,*)
7541                                         for linkarg in \`echo '\[$]1' | sed -e 's/-Wl,//' -e 's/,/ /'\`; do
7542                                                 ldopts+=("\[$]{linkarg}")
7543                                         done
7544                                         ;;
7545                                 *.lib)
7546                                         ldopts+=("\[$]1")
7547                                         ;;
7548                                 -o)
7549                                         shift
7550                                         ldopts+=("-out:\[$]1")
7551                                         ;;
7552                                 *)
7553                                         clopts+=("\[$]1")
7554                                         ldopts+=("\[$]1")
7555                                         ;;
7556                         esac
7557                         shift
7558                 done
7559                 if [[ "\$isdll" -ne 0 ]]; then
7560                         for lib in \[$]{libs[[*]]}; do
7561                                 ldopts+=("\[$]lib.dll.lib")
7562                         done
7563                 else
7564                         for lib in \[$]{libs[[*]]}; do
7565                                 ldopts+=("\[$]lib.lib")
7566                         done
7567                 fi
7568                 cat <<-EOF
7569                 Creating program
7570                 ** ld options:   "\[$]{ldopts[[@]]}"
7571 EOF
7572                 exec \[$]LD \[$]{ldopts[[@]]}
7573 CF_EOF
7574                 chmod +x mk_prog.sh
7575                 LINK_PROGS="$SHELL ${rel_builddir}/mk_prog.sh"
7576                 LINK_TESTS="$SHELL ${rel_builddir}/mk_prog.sh"
7577                 ;;
7578         (mingw*)
7579                 cf_cv_shlib_version=mingw
7580                 cf_cv_shlib_version_infix=mingw
7581                 shlibdir=$bindir
7582                 MAKE_DLLS=
7583                 if test "$DFT_LWR_MODEL" = "shared" ; then
7584                         LOCAL_LDFLAGS="-Wl,--enable-auto-import"
7585                         LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
7586                         EXTRA_LDFLAGS="-Wl,--enable-auto-import $EXTRA_LDFLAGS"
7587                 fi
7588                 CC_SHARED_OPTS=
7589                 MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
7590                 RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
7591                 cat >mk_shared_lib.sh <<-CF_EOF
7592                 #!$SHELL
7593                 SHARED_LIB=\[$]1
7594                 IMPORT_LIB=\`echo "\[$]1" | sed -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
7595                 shift
7596                 cat <<-EOF
7597                 Linking shared library
7598                 ** SHARED_LIB \[$]SHARED_LIB
7599                 ** IMPORT_LIB \[$]IMPORT_LIB
7600 EOF
7601                 exec \[$]* ${LDFLAGS} -shared -Wl,--enable-auto-import,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB}
7602 CF_EOF
7603                 chmod +x mk_shared_lib.sh
7604                 ;;
7605         (openbsd[[2-9]].*|mirbsd*)
7606                 if test "$DFT_LWR_MODEL" = "shared" && test -n "$LD_RPATH_OPT" ; then
7607                         LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
7608                         LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
7609                 fi
7610                 if test "$cf_cv_enable_rpath" = yes ; then
7611                         EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
7612                 fi
7613                 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
7614                 CF_SHARED_SONAME
7615                 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-Bshareable,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
7616                 ;;
7617         (nskJ*)
7618                 CC_SHARED_OPTS=
7619                 MK_SHARED_LIB='${LD} -Wshared -Weld=-export_all -o $[@]'
7620                 ;;
7621         (nskL*)
7622                 CC_SHARED_OPTS=
7623                 MK_SHARED_LIB='${LD} -Wshared -Wxld=-export_all -o $[@]'
7624                 ;;
7625         (nto-qnx*|openbsd*|freebsd[[12]].*)
7626                 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
7627                 MK_SHARED_LIB='${LD} ${LDFLAGS} -Bshareable -o $[@]'
7628                 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
7629                 ;;
7630         (dragonfly*|freebsd*)
7631                 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
7632                 if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then
7633                         LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)"
7634                         LOCAL_LDFLAGS2="${cf_ld_rpath_opt}\${RPATH_LIST} $LOCAL_LDFLAGS"
7635                         EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
7636                 fi
7637                 CF_SHARED_SONAME
7638                 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
7639                 ;;
7640         (netbsd*)
7641                 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
7642                 if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then
7643                         LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)"
7644                         LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
7645                         EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
7646                         if test "$cf_cv_shlib_version" = auto; then
7647                         if test -f /usr/libexec/ld.elf_so; then
7648                                 cf_cv_shlib_version=abi
7649                         else
7650                                 cf_cv_shlib_version=rel
7651                         fi
7652                         fi
7653                         CF_SHARED_SONAME
7654                         MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname' -o $[@]'
7655                 else
7656                         MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -o $[@]'
7657                 fi
7658                 ;;
7659         (osf*|mls+*)
7660                 # tested with OSF/1 V3.2 and 'cc'
7661                 # tested with OSF/1 V3.2 and gcc 2.6.3 (but the c++ demo didn't
7662                 # link with shared libs).
7663                 MK_SHARED_LIB='${LD} ${LDFLAGS} -set_version ${REL_VERSION}:${ABI_VERSION} -expect_unresolved "*" -shared -soname `basename $[@]`'
7664                 case "$host_os" in
7665                 (osf4*)
7666                         MK_SHARED_LIB="${MK_SHARED_LIB} -msym"
7667                         ;;
7668                 esac
7669                 MK_SHARED_LIB="${MK_SHARED_LIB}"' -o $[@]'
7670                 if test "$DFT_LWR_MODEL" = "shared" && test -n "$LD_RPATH_OPT" ; then
7671                         LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
7672                         LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
7673                 fi
7674                 cf_cv_rm_so_locs=yes
7675                 ;;
7676         (sco3.2v5*)  # also uw2* and UW7: hops 13-Apr-98
7677                 # tested with osr5.0.5
7678                 if test "$GCC" != yes; then
7679                         CC_SHARED_OPTS='-belf -KPIC'
7680                 fi
7681                 MK_SHARED_LIB='${LD} ${LDFLAGS} -dy -G -h `basename $[@] .${REL_VERSION}`.${ABI_VERSION} -o [$]@'
7682                 if test "$cf_cv_enable_rpath" = yes ; then
7683                         # only way is to set LD_RUN_PATH but no switch for it
7684                         RUN_PATH=$libdir
7685                 fi
7686                 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
7687                 LINK_PROGS='LD_RUN_PATH=${libdir}'
7688                 LINK_TESTS='Pwd=`pwd`;LD_RUN_PATH=`dirname $${Pwd}`/lib'
7689                 ;;
7690         (sunos4*)
7691                 # tested with SunOS 4.1.1 and gcc 2.7.0
7692                 if test "$GCC" != yes; then
7693                         CC_SHARED_OPTS='-KPIC'
7694                 fi
7695                 MK_SHARED_LIB='${LD} ${LDFLAGS} -assert pure-text -o $[@]'
7696                 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
7697                 ;;
7698         (solaris2*)
7699                 # tested with SunOS 5.5.1 (solaris 2.5.1) and gcc 2.7.2
7700                 # tested with SunOS 5.10 (solaris 10) and gcc 3.4.3
7701                 if test "$DFT_LWR_MODEL" = "shared" ; then
7702                         LOCAL_LDFLAGS="-R \$(LOCAL_LIBDIR):\${libdir}"
7703                         LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
7704                 fi
7705                 if test "$cf_cv_enable_rpath" = yes ; then
7706                         EXTRA_LDFLAGS="-R \${libdir} $EXTRA_LDFLAGS"
7707                 fi
7708                 CF_SHARED_SONAME
7709                 if test "$GCC" != yes; then
7710                         cf_save_CFLAGS="$CFLAGS"
7711                         for cf_shared_opts in -xcode=pic32 -xcode=pic13 -KPIC -Kpic -O
7712                         do
7713                                 CFLAGS="$cf_shared_opts $cf_save_CFLAGS"
7714                                 AC_TRY_COMPILE([#include <stdio.h>],[printf("Hello\\n");],[break])
7715                         done
7716                         CFLAGS="$cf_save_CFLAGS"
7717                         CC_SHARED_OPTS=$cf_shared_opts
7718                         MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -dy -G -h '$cf_cv_shared_soname' -o $[@]'
7719                 else
7720                         MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -dy -G -h '$cf_cv_shared_soname' -o $[@]'
7721                 fi
7722                 ;;
7723         (sysv5uw7*|unix_sv*)
7724                 # tested with UnixWare 7.1.0 (gcc 2.95.2 and cc)
7725                 if test "$GCC" != yes; then
7726                         CC_SHARED_OPTS='-KPIC'
7727                 fi
7728                 MK_SHARED_LIB='${LD} ${LDFLAGS} -d y -G -o [$]@'
7729                 ;;
7730         (*)
7731                 CC_SHARED_OPTS='unknown'
7732                 MK_SHARED_LIB='echo unknown'
7733                 ;;
7734         esac
7735
7736         # This works if the last tokens in $MK_SHARED_LIB are the -o target.
7737         case "$cf_cv_shlib_version" in
7738         (rel|abi)
7739                 case "$MK_SHARED_LIB" in
7740                 (*'-o $[@]')
7741                         test "$cf_cv_do_symlinks" = no && cf_cv_do_symlinks=yes
7742                         ;;
7743                 (*)
7744                         AC_MSG_WARN(ignored --with-shlib-version)
7745                         ;;
7746                 esac
7747                 ;;
7748         esac
7749
7750         if test -n "$cf_try_cflags"
7751         then
7752 cat > conftest.$ac_ext <<EOF
7753 #line __oline__ "${as_me:-configure}"
7754 #include <stdio.h>
7755 int main(int argc, char *argv[[]])
7756 {
7757         printf("hello\\n");
7758         return (argv[[argc-1]] == 0) ;
7759 }
7760 EOF
7761                 cf_save_CFLAGS="$CFLAGS"
7762                 for cf_opt in $cf_try_cflags
7763                 do
7764                         CFLAGS="$cf_save_CFLAGS -$cf_opt"
7765                         AC_MSG_CHECKING(if CFLAGS option -$cf_opt works)
7766                         if AC_TRY_EVAL(ac_compile); then
7767                                 AC_MSG_RESULT(yes)
7768                                 cf_save_CFLAGS="$CFLAGS"
7769                         else
7770                                 AC_MSG_RESULT(no)
7771                         fi
7772                 done
7773                 CFLAGS="$cf_save_CFLAGS"
7774         fi
7775
7776
7777         # RPATH_LIST is a colon-separated list of directories
7778         test -n "$cf_ld_rpath_opt" && MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${RPATH_LIST}"
7779         test -z "$RPATH_LIST" && RPATH_LIST="\${libdir}"
7780
7781         test "$cf_cv_rm_so_locs" = yes && RM_SHARED_OPTS="$RM_SHARED_OPTS so_locations"
7782
7783         CF_VERBOSE(CC_SHARED_OPTS: $CC_SHARED_OPTS)
7784         CF_VERBOSE(MK_SHARED_LIB:  $MK_SHARED_LIB)
7785
7786         AC_SUBST(CC_SHARED_OPTS)
7787         AC_SUBST(LD_RPATH_OPT)
7788         AC_SUBST(LD_SHARED_OPTS)
7789         AC_SUBST(MK_SHARED_LIB)
7790         AC_SUBST(RM_SHARED_OPTS)
7791
7792         AC_SUBST(LINK_PROGS)
7793         AC_SUBST(LINK_TESTS)
7794
7795         AC_SUBST(EXTRA_LDFLAGS)
7796         AC_SUBST(LOCAL_LDFLAGS)
7797         AC_SUBST(LOCAL_LDFLAGS2)
7798
7799         AC_SUBST(INSTALL_LIB)
7800         AC_SUBST(RPATH_LIST)
7801 ])dnl
7802 dnl ---------------------------------------------------------------------------
7803 dnl CF_SHARED_SONAME version: 3 updated: 2008/09/08 18:34:43
7804 dnl ----------------
7805 dnl utility macro for CF_SHARED_OPTS, constructs "$cf_cv_shared_soname" for
7806 dnl substitution into MK_SHARED_LIB string for the "-soname" (or similar)
7807 dnl option.
7808 dnl
7809 dnl $1 is the default that should be used for "$cf_cv_shlib_version".
7810 dnl If missing, use "rel".
7811 define([CF_SHARED_SONAME],
7812 [
7813         test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=ifelse($1,,rel,$1)
7814         if test "$cf_cv_shlib_version" = rel; then
7815                 cf_cv_shared_soname='`basename $[@] .${REL_VERSION}`.${ABI_VERSION}'
7816         else
7817                 cf_cv_shared_soname='`basename $[@]`'
7818         fi
7819 ])
7820 dnl ---------------------------------------------------------------------------
7821 dnl CF_SIGWINCH version: 6 updated: 2021/01/01 13:31:04
7822 dnl -----------
7823 dnl Use this macro after CF_XOPEN_SOURCE, but do not require it (not all
7824 dnl programs need this test).
7825 dnl
7826 dnl This is really a Mac OS X 10.4.3 workaround.  Defining _POSIX_C_SOURCE
7827 dnl forces SIGWINCH to be undefined (breaks xterm, ncurses).  Oddly, the struct
7828 dnl winsize declaration is left alone - we may revisit this if Apple choose to
7829 dnl break that part of the interface as well.
7830 AC_DEFUN([CF_SIGWINCH],
7831 [
7832 AC_CACHE_CHECK(if SIGWINCH is defined,cf_cv_define_sigwinch,[
7833         AC_TRY_COMPILE([
7834 #include <sys/types.h>
7835 #include <sys/signal.h>
7836 ],[int x = SIGWINCH; (void)x],
7837         [cf_cv_define_sigwinch=yes],
7838         [AC_TRY_COMPILE([
7839 #undef _XOPEN_SOURCE
7840 #undef _POSIX_SOURCE
7841 #undef _POSIX_C_SOURCE
7842 #include <sys/types.h>
7843 #include <sys/signal.h>
7844 ],[int x = SIGWINCH; (void)x],
7845         [cf_cv_define_sigwinch=maybe],
7846         [cf_cv_define_sigwinch=no])
7847 ])
7848 ])
7849
7850 if test "$cf_cv_define_sigwinch" = maybe ; then
7851 AC_CACHE_CHECK(for actual SIGWINCH definition,cf_cv_fixup_sigwinch,[
7852 cf_cv_fixup_sigwinch=unknown
7853 cf_sigwinch=32
7854 while test "$cf_sigwinch" != 1
7855 do
7856         AC_TRY_COMPILE([
7857 #undef _XOPEN_SOURCE
7858 #undef _POSIX_SOURCE
7859 #undef _POSIX_C_SOURCE
7860 #include <sys/types.h>
7861 #include <sys/signal.h>
7862 ],[
7863 #if SIGWINCH != $cf_sigwinch
7864 make an error
7865 #endif
7866 int x = SIGWINCH; (void)x],
7867         [cf_cv_fixup_sigwinch=$cf_sigwinch
7868          break])
7869
7870 cf_sigwinch="`expr "$cf_sigwinch" - 1`"
7871 done
7872 ])
7873
7874         if test "$cf_cv_fixup_sigwinch" != unknown ; then
7875                 CPPFLAGS="$CPPFLAGS -DSIGWINCH=$cf_cv_fixup_sigwinch"
7876         fi
7877 fi
7878 ])dnl
7879 dnl ---------------------------------------------------------------------------
7880 dnl CF_SIG_ATOMIC_T version: 5 updated: 2020/03/10 18:53:47
7881 dnl ---------------
7882 dnl signal handler, but there are some gcc dependencies in that recommendation.
7883 dnl Try anyway.
7884 AC_DEFUN([CF_SIG_ATOMIC_T],
7885 [
7886 AC_MSG_CHECKING(for signal global datatype)
7887 AC_CACHE_VAL(cf_cv_sig_atomic_t,[
7888         for cf_type in \
7889                 "volatile sig_atomic_t" \
7890                 "sig_atomic_t" \
7891                 "int"
7892         do
7893         AC_TRY_COMPILE([
7894 #include <sys/types.h>
7895 #include <signal.h>
7896 #include <stdio.h>
7897
7898 extern $cf_type x;
7899 $cf_type x;
7900 static void handler(int sig)
7901 {
7902         (void)sig;
7903         x = 5;
7904 }],
7905                 [signal(SIGINT, handler);
7906                  x = 1],
7907                 [cf_cv_sig_atomic_t=$cf_type],
7908                 [cf_cv_sig_atomic_t=no])
7909                 test "$cf_cv_sig_atomic_t" != no && break
7910         done
7911         ])
7912 AC_MSG_RESULT($cf_cv_sig_atomic_t)
7913 test "$cf_cv_sig_atomic_t" != no && AC_DEFINE_UNQUOTED(SIG_ATOMIC_T, $cf_cv_sig_atomic_t,[Define to signal global datatype])
7914 ])dnl
7915 dnl ---------------------------------------------------------------------------
7916 dnl CF_SIZECHANGE version: 18 updated: 2021/09/04 06:35:04
7917 dnl -------------
7918 dnl Check for definitions & structures needed for window size-changing
7919 dnl
7920 dnl https://stackoverflow.com/questions/18878141/difference-between-structures-ttysize-and-winsize/50769952#50769952
7921 AC_DEFUN([CF_SIZECHANGE],
7922 [
7923 AC_REQUIRE([CF_STRUCT_TERMIOS])
7924 AC_CACHE_CHECK(declaration of size-change, cf_cv_sizechange,[
7925         cf_cv_sizechange=unknown
7926         cf_save_CPPFLAGS="$CPPFLAGS"
7927
7928 for cf_opts in "" "NEED_PTEM_H"
7929 do
7930
7931         CPPFLAGS="$cf_save_CPPFLAGS"
7932         if test -n "$cf_opts"
7933         then
7934                 CF_APPEND_TEXT(CPPFLAGS,-D$cf_opts)
7935         fi
7936         AC_TRY_COMPILE([#include <sys/types.h>
7937 #ifdef HAVE_TERMIOS_H
7938 #include <termios.h>
7939 #else
7940 #ifdef HAVE_TERMIO_H
7941 #include <termio.h>
7942 #endif
7943 #endif
7944
7945 #ifdef NEED_PTEM_H
7946 /* This is a workaround for SCO:  they neglected to define struct winsize in
7947  * termios.h -- it is only in termio.h and ptem.h
7948  */
7949 #include <sys/stream.h>
7950 #include <sys/ptem.h>
7951 #endif
7952
7953 #ifdef HAVE_SYS_IOCTL_H
7954 #include <sys/ioctl.h>
7955 #endif
7956 ],[
7957 #ifdef TIOCGSIZE
7958         struct ttysize win;     /* SunOS 3.0... */
7959         int y = win.ts_lines = 2;
7960         int x = win.ts_cols = 1;
7961         (void)y;
7962         (void)x;
7963 #else
7964 #ifdef TIOCGWINSZ
7965         struct winsize win;     /* everything else */
7966         int y = win.ws_row = 2;
7967         int x = win.ws_col = 1;
7968         (void)y;
7969         (void)x;
7970 #else
7971         no TIOCGSIZE or TIOCGWINSZ
7972 #endif /* TIOCGWINSZ */
7973 #endif /* TIOCGSIZE */
7974         ],
7975         [cf_cv_sizechange=yes],
7976         [cf_cv_sizechange=no])
7977
7978         CPPFLAGS="$cf_save_CPPFLAGS"
7979         if test "$cf_cv_sizechange" = yes ; then
7980                 echo "size-change succeeded ($cf_opts)" >&AC_FD_CC
7981                 test -n "$cf_opts" && cf_cv_sizechange="$cf_opts"
7982                 break
7983         fi
7984 done
7985 ])
7986 if test "$cf_cv_sizechange" != no ; then
7987         AC_DEFINE(HAVE_SIZECHANGE,1,[Define to 1 if sizechange declarations are provided])
7988         case "$cf_cv_sizechange" in
7989         (NEED*)
7990                 AC_DEFINE_UNQUOTED($cf_cv_sizechange )
7991                 ;;
7992         esac
7993 fi
7994 ])dnl
7995 dnl ---------------------------------------------------------------------------
7996 dnl CF_SRC_MODULES version: 33 updated: 2021/01/01 13:31:04
7997 dnl --------------
7998 dnl For each parameter, test if the source-directory exists, and if it contains
7999 dnl a 'modules' file.  If so, add to the list $cf_cv_src_modules which we'll
8000 dnl use in CF_LIB_RULES.
8001 dnl
8002 dnl This uses the configured value to make the lists SRC_SUBDIRS and
8003 dnl SUB_MAKEFILES which are used in the makefile-generation scheme.
8004 AC_DEFUN([CF_SRC_MODULES],
8005 [
8006 AC_REQUIRE([CF_CHECK_GNAT_VERSION])
8007 AC_MSG_CHECKING(for src modules)
8008
8009 # dependencies and linker-arguments for test-programs
8010 TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEPS"
8011 TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEP2"
8012 if test "$DFT_LWR_MODEL" = "libtool"; then
8013         TEST_ARGS="${TEST_DEPS}"
8014         TEST_ARG2="${TEST_DEP2}"
8015 else
8016         TEST_ARGS="-l${LIB_NAME}${USE_ARG_SUFFIX} $TEST_ARGS"
8017         TEST_ARG2="-l${LIB_NAME}${USE_ARG_SUFFIX} $TEST_ARG2"
8018 fi
8019
8020 PC_MODULES_TO_MAKE="ncurses${USE_ARG_SUFFIX}"
8021 cf_cv_src_modules=
8022 for cf_dir in $1
8023 do
8024         if test -f "$srcdir/$cf_dir/modules" ; then
8025
8026                 # We may/may not have tack in the distribution, though the
8027                 # makefile is.
8028                 if test "$cf_dir" = tack ; then
8029                         if test "x$cf_with_tack" != "xyes"; then
8030                                 continue
8031                         fi
8032                 fi
8033
8034                 if test -z "$cf_cv_src_modules"; then
8035                         cf_cv_src_modules=$cf_dir
8036                 else
8037                         cf_cv_src_modules="$cf_cv_src_modules $cf_dir"
8038                 fi
8039
8040                 # Make the ncurses_cfg.h file record the library interface files as
8041                 # well.  These are header files that are the same name as their
8042                 # directory.  Ncurses is the only library that does not follow
8043                 # that pattern.
8044                 if test "$cf_dir" = tack ; then
8045                         continue
8046                 elif test -f "$srcdir/${cf_dir}/${cf_dir}.h" ; then
8047                         CF_UPPER(cf_have_include,$cf_dir)
8048                         AC_DEFINE_UNQUOTED(HAVE_${cf_have_include}_H)
8049                         AC_DEFINE_UNQUOTED(HAVE_LIB${cf_have_include})
8050                         CF_MAP_LIB_BASENAME(TEST_ROOT,$cf_dir)
8051                         TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${TEST_ROOT}${DFT_DEP_SUFFIX} $TEST_DEPS"
8052                         TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${TEST_ROOT}${DFT_DEP_SUFFIX} $TEST_DEP2"
8053                         if test "$DFT_LWR_MODEL" = "libtool"; then
8054                                 TEST_ARGS="${TEST_DEPS}"
8055                                 TEST_ARG2="${TEST_DEP2}"
8056                         else
8057                                 TEST_ARGS="-l${TEST_ROOT}${USE_ARG_SUFFIX} $TEST_ARGS"
8058                                 TEST_ARG2="-l${TEST_ROOT}${USE_ARG_SUFFIX} $TEST_ARG2"
8059                         fi
8060                         PC_MODULES_TO_MAKE="${PC_MODULES_TO_MAKE} ${cf_dir}${USE_ARG_SUFFIX}"
8061                 fi
8062         fi
8063 done
8064 AC_MSG_RESULT($cf_cv_src_modules)
8065
8066 TEST_ARGS="-L${LIB_DIR} $TEST_ARGS"
8067 TEST_ARG2="-L${LIB_2ND} $TEST_ARG2"
8068
8069 AC_SUBST(TEST_ARGS)
8070 AC_SUBST(TEST_DEPS)
8071
8072 AC_SUBST(TEST_ARG2)
8073 AC_SUBST(TEST_DEP2)
8074
8075 SRC_SUBDIRS=
8076 if test "x$cf_with_manpages" != xno ; then
8077         SRC_SUBDIRS="$SRC_SUBDIRS man"
8078 fi
8079 SRC_SUBDIRS="$SRC_SUBDIRS include"
8080 for cf_dir in $cf_cv_src_modules
8081 do
8082         SRC_SUBDIRS="$SRC_SUBDIRS $cf_dir"
8083 done
8084 if test "x$cf_with_tests" != "xno" ; then
8085         SRC_SUBDIRS="$SRC_SUBDIRS test"
8086 fi
8087 # always make this, to install the ncurses-config script
8088 SRC_SUBDIRS="$SRC_SUBDIRS misc"
8089 if test "$cf_with_cxx_binding" != no; then
8090         PC_MODULES_TO_MAKE="${PC_MODULES_TO_MAKE} ncurses++${USE_ARG_SUFFIX}"
8091         SRC_SUBDIRS="$SRC_SUBDIRS c++"
8092 fi
8093
8094 test "x$with_termlib" != xno && PC_MODULES_TO_MAKE="$PC_MODULES_TO_MAKE $TINFO_ARG_SUFFIX"
8095 test "x$with_ticlib" != xno && PC_MODULES_TO_MAKE="$PC_MODULES_TO_MAKE $TICS_ARG_SUFFIX"
8096
8097 AC_SUBST(PC_MODULES_TO_MAKE)
8098
8099 ADA_SUBDIRS=
8100 if test "x$cf_with_ada" = "xyes" && test "x$cf_cv_prog_gnat_correct" = xyes && test -f "$srcdir/Ada95/Makefile.in" ; then
8101         SRC_SUBDIRS="$SRC_SUBDIRS Ada95"
8102         ADA_SUBDIRS="gen src"
8103         if test "x$cf_with_tests" != "xno" ; then
8104                 ADA_SUBDIRS="$ADA_SUBDIRS samples"
8105         fi
8106 fi
8107
8108 SUB_MAKEFILES=
8109 for cf_dir in $SRC_SUBDIRS
8110 do
8111         SUB_MAKEFILES="$SUB_MAKEFILES $cf_dir/Makefile"
8112 done
8113
8114 if test -n "$ADA_SUBDIRS"; then
8115         for cf_dir in $ADA_SUBDIRS
8116         do
8117                 SUB_MAKEFILES="$SUB_MAKEFILES Ada95/$cf_dir/Makefile"
8118         done
8119         AC_SUBST(ADA_SUBDIRS)
8120 fi
8121 ])dnl
8122 dnl ---------------------------------------------------------------------------
8123 dnl CF_STDCPP_LIBRARY version: 12 updated: 2021/01/01 13:31:04
8124 dnl -----------------
8125 dnl Check for -lstdc++, which is GNU's standard C++ library.
8126 dnl If $CXXLIBS is set, add that to the libraries used for test-linking.
8127 dnl If -lstdc++ was not already added to $LIBS or $CXXLIBS, and is needed,
8128 dnl add it to $CXXLIBS.
8129 AC_DEFUN([CF_STDCPP_LIBRARY],
8130 [
8131 if test -n "$GXX" ; then
8132
8133         cf_save="$LIBS"
8134         LIBS="$LIBS $CXXLIBS"
8135         AC_MSG_CHECKING(if we already have C++ library)
8136         AC_TRY_LINK([
8137                         #include <iostream>],[
8138                         std::cout << "Hello World!" << std::endl;],
8139                 [cf_have_libstdcpp=yes],
8140                 [cf_have_libstdcpp=no])
8141         AC_MSG_RESULT($cf_have_libstdcpp)
8142         LIBS="$cf_save"
8143
8144         if test "$cf_have_libstdcpp" != yes
8145         then
8146                 case "$cf_cv_system_name" in
8147                 (os2*)
8148                         if test -z "`g++ -dM -E - < /dev/null | grep __KLIBC__`"; then
8149                                 cf_stdcpp_libname=stdcpp
8150                         else
8151                                 cf_stdcpp_libname=stdc++
8152                         fi
8153                         ;;
8154                 (*)
8155                         cf_stdcpp_libname=stdc++
8156                         ;;
8157                 esac
8158
8159                 AC_CACHE_CHECK(for library $cf_stdcpp_libname,cf_cv_libstdcpp,[
8160                         cf_save="$LIBS"
8161                         LIBS="$LIBS $CXXLIBS"
8162                         CF_ADD_LIB($cf_stdcpp_libname)
8163                 AC_TRY_LINK([
8164                                 #include <iostream>],[
8165                                 std::cout << "Hello World!" << std::endl;],
8166                         [cf_cv_libstdcpp=yes],
8167                         [cf_cv_libstdcpp=no])
8168                         LIBS="$cf_save"
8169                 ])
8170                 test "$cf_cv_libstdcpp" = yes && { CF_ADD_LIB($cf_stdcpp_libname,CXXLIBS) }
8171         fi
8172 fi
8173 ])dnl
8174 dnl ---------------------------------------------------------------------------
8175 dnl CF_STRIP_G_OPT version: 4 updated: 2021/01/02 09:31:20
8176 dnl --------------
8177 dnl     Remove "-g" option from the compiler options
8178 AC_DEFUN([CF_STRIP_G_OPT],
8179 [$1=`echo "${$1}" | CF__SED_TRIMBLANKS(-e 's%-g %%' -e 's%-g$%%')`])dnl
8180 dnl ---------------------------------------------------------------------------
8181 dnl CF_STRUCT_SIGACTION version: 5 updated: 2012/10/06 17:56:13
8182 dnl -------------------
8183 dnl Check if we need _POSIX_SOURCE defined to use struct sigaction.  We'll only
8184 dnl do this if we've found the sigaction function.
8185 AC_DEFUN([CF_STRUCT_SIGACTION],[
8186 AC_REQUIRE([CF_XOPEN_SOURCE])
8187
8188 if test "$ac_cv_func_sigaction" = yes; then
8189 AC_MSG_CHECKING(whether sigaction needs _POSIX_SOURCE)
8190 AC_TRY_COMPILE([
8191 #include <sys/types.h>
8192 #include <signal.h>],
8193         [struct sigaction act],
8194         [sigact_bad=no],
8195         [
8196 AC_TRY_COMPILE([
8197 #define _POSIX_SOURCE
8198 #include <sys/types.h>
8199 #include <signal.h>],
8200         [struct sigaction act],
8201         [sigact_bad=yes
8202          AC_DEFINE(_POSIX_SOURCE,1,[Define to 1 if we must define _POSIX_SOURCE])],
8203          [sigact_bad=unknown])])
8204 AC_MSG_RESULT($sigact_bad)
8205 fi
8206 ])dnl
8207 dnl ---------------------------------------------------------------------------
8208 dnl CF_STRUCT_TERMIOS version: 11 updated: 2020/03/19 20:46:13
8209 dnl -----------------
8210 dnl Some machines require _POSIX_SOURCE to completely define struct termios.
8211 AC_DEFUN([CF_STRUCT_TERMIOS],[
8212 AC_REQUIRE([CF_XOPEN_SOURCE])
8213
8214 AC_CHECK_HEADERS( \
8215 termio.h \
8216 termios.h \
8217 unistd.h \
8218 sys/ioctl.h \
8219 sys/termio.h \
8220 )
8221
8222 if test "$ac_cv_header_termios_h" = yes ; then
8223         case "$CFLAGS $CPPFLAGS" in
8224         (*-D_POSIX_SOURCE*)
8225                 termios_bad=dunno ;;
8226         (*)     termios_bad=maybe ;;
8227         esac
8228         if test "$termios_bad" = maybe ; then
8229         AC_MSG_CHECKING(whether termios.h needs _POSIX_SOURCE)
8230         AC_TRY_COMPILE([#include <termios.h>],
8231                 [struct termios foo; int x = foo.c_iflag = 1; (void)x],
8232                 termios_bad=no, [
8233                 AC_TRY_COMPILE([
8234 #define _POSIX_SOURCE
8235 #include <termios.h>],
8236                         [struct termios foo; int x = foo.c_iflag = 2; (void)x],
8237                         termios_bad=unknown,
8238                         termios_bad=yes AC_DEFINE(_POSIX_SOURCE,1,[Define to 1 if we must define _POSIX_SOURCE]))
8239                         ])
8240         AC_MSG_RESULT($termios_bad)
8241         fi
8242 fi
8243 ])dnl
8244 dnl ---------------------------------------------------------------------------
8245 dnl CF_SUBDIR_PATH version: 7 updated: 2014/12/04 04:33:06
8246 dnl --------------
8247 dnl Construct a search-list for a nonstandard header/lib-file
8248 dnl     $1 = the variable to return as result
8249 dnl     $2 = the package name
8250 dnl     $3 = the subdirectory, e.g., bin, include or lib
8251 AC_DEFUN([CF_SUBDIR_PATH],
8252 [
8253 $1=
8254
8255 CF_ADD_SUBDIR_PATH($1,$2,$3,$prefix,NONE)
8256
8257 for cf_subdir_prefix in \
8258         /usr \
8259         /usr/local \
8260         /usr/pkg \
8261         /opt \
8262         /opt/local \
8263         [$]HOME
8264 do
8265         CF_ADD_SUBDIR_PATH($1,$2,$3,$cf_subdir_prefix,$prefix)
8266 done
8267 ])dnl
8268 dnl ---------------------------------------------------------------------------
8269 dnl CF_SUBST_IF version: 2 updated: 2006/06/17 12:33:03
8270 dnl -----------
8271 dnl     Shorthand macro for substituting things that the user may override
8272 dnl     with an environment variable.
8273 dnl
8274 dnl     $1 = condition to pass to "test"
8275 dnl     $2 = environment variable
8276 dnl     $3 = value if the test succeeds
8277 dnl     $4 = value if the test fails
8278 AC_DEFUN([CF_SUBST_IF],
8279 [
8280 if test $1 ; then
8281         $2=$3
8282 ifelse($4,,,[else
8283         $2=$4])
8284 fi
8285 AC_SUBST($2)
8286 ])dnl
8287 dnl ---------------------------------------------------------------------------
8288 dnl CF_SUBST_NCURSES_VERSION version: 10 updated: 2021/01/04 18:48:01
8289 dnl ------------------------
8290 dnl Get the version-number for use in shared-library naming, etc.
8291 AC_DEFUN([CF_SUBST_NCURSES_VERSION],
8292 [AC_REQUIRE([AC_PROG_EGREP])dnl
8293
8294 NCURSES_MAJOR="`${EGREP-egrep} '^NCURSES_MAJOR[[        ]]*=' "$srcdir/dist.mk" | sed -e 's/^[[^0-9]]*//'`"
8295 NCURSES_MINOR="`${EGREP-egrep} '^NCURSES_MINOR[[        ]]*=' "$srcdir/dist.mk" | sed -e 's/^[[^0-9]]*//'`"
8296 NCURSES_PATCH="`${EGREP-egrep} '^NCURSES_PATCH[[        ]]*=' "$srcdir/dist.mk" | sed -e 's/^[[^0-9]]*//'`"
8297 cf_cv_abi_version=${NCURSES_MAJOR}
8298 cf_cv_rel_version=${NCURSES_MAJOR}.${NCURSES_MINOR}
8299 dnl Show the computed version, for logging
8300 cf_cv_timestamp=`date`
8301 AC_MSG_RESULT(Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp))
8302 dnl We need these values in the generated headers
8303 AC_SUBST(NCURSES_MAJOR)
8304 AC_SUBST(NCURSES_MINOR)
8305 AC_SUBST(NCURSES_PATCH)
8306 dnl We need these values in the generated makefiles
8307 AC_SUBST(cf_cv_rel_version)
8308 AC_SUBST(cf_cv_abi_version)
8309 AC_SUBST(cf_cv_builtin_bool)
8310 AC_SUBST(cf_cv_header_stdbool_h)
8311 AC_SUBST(cf_cv_type_of_bool)dnl
8312 ])dnl
8313 dnl ---------------------------------------------------------------------------
8314 dnl CF_SYS_TIME_SELECT version: 6 updated: 2015/04/18 08:56:57
8315 dnl ------------------
8316 dnl Check if we can include <sys/time.h> with <sys/select.h>; this breaks on
8317 dnl older SCO configurations.
8318 AC_DEFUN([CF_SYS_TIME_SELECT],
8319 [
8320 AC_MSG_CHECKING(if sys/time.h works with sys/select.h)
8321 AC_CACHE_VAL(cf_cv_sys_time_select,[
8322 AC_TRY_COMPILE([
8323 #include <sys/types.h>
8324 #ifdef HAVE_SYS_TIME_H
8325 #include <sys/time.h>
8326 #endif
8327 #ifdef HAVE_SYS_SELECT_H
8328 #include <sys/select.h>
8329 #endif
8330 ],[],[cf_cv_sys_time_select=yes],
8331          [cf_cv_sys_time_select=no])
8332          ])
8333 AC_MSG_RESULT($cf_cv_sys_time_select)
8334 test "$cf_cv_sys_time_select" = yes && AC_DEFINE(HAVE_SYS_TIME_SELECT,1,[Define to 1 if we can include <sys/time.h> with <sys/select.h>])
8335 ])dnl
8336 dnl ---------------------------------------------------------------------------
8337 dnl CF_TOP_BUILDDIR version: 2 updated: 2013/07/27 17:38:32
8338 dnl ---------------
8339 dnl Define a top_builddir symbol, for applications that need an absolute path.
8340 AC_DEFUN([CF_TOP_BUILDDIR],
8341 [
8342 top_builddir=ifelse($1,,`pwd`,$1)
8343 AC_SUBST(top_builddir)
8344 ])dnl
8345 dnl ---------------------------------------------------------------------------
8346 dnl CF_TRY_PKG_CONFIG version: 6 updated: 2020/12/31 10:54:15
8347 dnl -----------------
8348 dnl This is a simple wrapper to use for pkg-config, for libraries which may be
8349 dnl available in that form.
8350 dnl
8351 dnl $1 = package name, which may be a shell variable
8352 dnl $2 = extra logic to use, if any, after updating CFLAGS and LIBS
8353 dnl $3 = logic to use if pkg-config does not have the package
8354 AC_DEFUN([CF_TRY_PKG_CONFIG],[
8355 AC_REQUIRE([CF_PKG_CONFIG])
8356
8357 if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists "$1"; then
8358         CF_VERBOSE(found package $1)
8359         cf_pkgconfig_incs="`$PKG_CONFIG --cflags "$1" 2>/dev/null`"
8360         cf_pkgconfig_libs="`$PKG_CONFIG --libs   "$1" 2>/dev/null`"
8361         CF_VERBOSE(package $1 CFLAGS: $cf_pkgconfig_incs)
8362         CF_VERBOSE(package $1 LIBS: $cf_pkgconfig_libs)
8363         CF_ADD_CFLAGS($cf_pkgconfig_incs)
8364         CF_ADD_LIBS($cf_pkgconfig_libs)
8365         ifelse([$2],,:,[$2])
8366 else
8367         cf_pkgconfig_incs=
8368         cf_pkgconfig_libs=
8369         ifelse([$3],,:,[$3])
8370 fi
8371 ])
8372 dnl ---------------------------------------------------------------------------
8373 dnl CF_TRY_XOPEN_SOURCE version: 4 updated: 2022/09/10 15:16:16
8374 dnl -------------------
8375 dnl If _XOPEN_SOURCE is not defined in the compile environment, check if we
8376 dnl can define it successfully.
8377 AC_DEFUN([CF_TRY_XOPEN_SOURCE],[
8378 AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[
8379         AC_TRY_COMPILE(CF__XOPEN_SOURCE_HEAD,CF__XOPEN_SOURCE_BODY,
8380         [cf_cv_xopen_source=no],
8381         [cf_save="$CPPFLAGS"
8382          CF_APPEND_TEXT(CPPFLAGS,-D_XOPEN_SOURCE=$cf_XOPEN_SOURCE)
8383          AC_TRY_COMPILE(CF__XOPEN_SOURCE_HEAD,CF__XOPEN_SOURCE_BODY,
8384                 [cf_cv_xopen_source=no],
8385                 [cf_cv_xopen_source=$cf_XOPEN_SOURCE])
8386                 CPPFLAGS="$cf_save"
8387         ])
8388 ])
8389
8390 if test "$cf_cv_xopen_source" != no ; then
8391         CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE)
8392         CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE)
8393         cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
8394         CF_APPEND_CFLAGS($cf_temp_xopen_source)
8395 fi
8396 ])
8397 dnl ---------------------------------------------------------------------------
8398 dnl CF_TYPEOF_CHTYPE version: 10 updated: 2017/01/21 11:06:25
8399 dnl ----------------
8400 dnl Determine the type we should use for chtype (and attr_t, which is treated
8401 dnl as the same thing).  We want around 32 bits, so on most machines want a
8402 dnl long, but on newer 64-bit machines, probably want an int.  If we're using
8403 dnl wide characters, we have to have a type compatible with that, as well.
8404 AC_DEFUN([CF_TYPEOF_CHTYPE],
8405 [
8406 AC_MSG_CHECKING([for type of chtype])
8407 AC_CACHE_VAL(cf_cv_typeof_chtype,[
8408                 AC_TRY_RUN([
8409 #define WANT_BITS 31
8410 #include <stdio.h>
8411 int main(void)
8412 {
8413         FILE *fp = fopen("cf_test.out", "w");
8414         if (fp != 0) {
8415                 char *result = "long";
8416                 if (sizeof(unsigned long) > sizeof(unsigned int)) {
8417                         int n;
8418                         unsigned int x, y;
8419                         for (n = 0; n < WANT_BITS; n++) {
8420                                 x = (1 << n);
8421                                 y = (x >> n);
8422                                 if (y != 1 || x == 0) {
8423                                         x = 0;
8424                                         break;
8425                                 }
8426                         }
8427                         /*
8428                          * If x is nonzero, an int is big enough for the bits
8429                          * that we want.
8430                          */
8431                         result = (x != 0) ? "int" : "long";
8432                 }
8433                 fputs(result, fp);
8434                 fclose(fp);
8435         }
8436         ${cf_cv_main_return:-return}(0);
8437 }
8438                 ],
8439                 [cf_cv_typeof_chtype=`cat cf_test.out`],
8440                 [cf_cv_typeof_chtype=long],
8441                 [cf_cv_typeof_chtype=long])
8442                 rm -f cf_test.out
8443         ])
8444 AC_MSG_RESULT($cf_cv_typeof_chtype)
8445
8446 AC_SUBST(cf_cv_typeof_chtype)
8447 AC_DEFINE_UNQUOTED(TYPEOF_CHTYPE,$cf_cv_typeof_chtype,[Define to actual type if needed for chtype])
8448 ])dnl
8449 dnl ---------------------------------------------------------------------------
8450 dnl CF_TYPE_SIGACTION version: 4 updated: 2012/10/06 17:56:13
8451 dnl -----------------
8452 dnl
8453 AC_DEFUN([CF_TYPE_SIGACTION],
8454 [
8455 AC_MSG_CHECKING([for type sigaction_t])
8456 AC_CACHE_VAL(cf_cv_type_sigaction,[
8457         AC_TRY_COMPILE([
8458 #include <signal.h>],
8459                 [sigaction_t x],
8460                 [cf_cv_type_sigaction=yes],
8461                 [cf_cv_type_sigaction=no])])
8462 AC_MSG_RESULT($cf_cv_type_sigaction)
8463 test "$cf_cv_type_sigaction" = yes && AC_DEFINE(HAVE_TYPE_SIGACTION,1,[Define to 1 if we have the sigaction_t type])
8464 ])dnl
8465 dnl ---------------------------------------------------------------------------
8466 dnl CF_UNSIGNED_LITERALS version: 2 updated: 1998/02/07 22:10:16
8467 dnl --------------------
8468 dnl Test if the compiler supports 'U' and 'L' suffixes.  Only old compilers
8469 dnl won't, but they're still there.
8470 AC_DEFUN([CF_UNSIGNED_LITERALS],
8471 [
8472 AC_MSG_CHECKING([if unsigned literals are legal])
8473 AC_CACHE_VAL(cf_cv_unsigned_literals,[
8474         AC_TRY_COMPILE([],[long x = 1L + 1UL + 1U + 1],
8475                 [cf_cv_unsigned_literals=yes],
8476                 [cf_cv_unsigned_literals=no])
8477         ])
8478 AC_MSG_RESULT($cf_cv_unsigned_literals)
8479 ])dnl
8480 dnl ---------------------------------------------------------------------------
8481 dnl CF_UPPER version: 5 updated: 2001/01/29 23:40:59
8482 dnl --------
8483 dnl Make an uppercase version of a variable
8484 dnl $1=uppercase($2)
8485 AC_DEFUN([CF_UPPER],
8486 [
8487 $1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
8488 ])dnl
8489 dnl ---------------------------------------------------------------------------
8490 dnl CF_UTF8_LIB version: 9 updated: 2021/05/19 19:35:25
8491 dnl -----------
8492 dnl Check for multibyte support, and if not found, utf8 compatibility library
8493 AC_DEFUN([CF_UTF8_LIB],
8494 [
8495 AC_HAVE_HEADERS(wchar.h)
8496 AC_CACHE_CHECK(for multibyte character support,cf_cv_utf8_lib,[
8497         cf_save_LIBS="$LIBS"
8498         AC_TRY_LINK([
8499 #include <stdlib.h>
8500 #include <stdio.h>
8501 #ifdef HAVE_WCHAR_H
8502 #include <wchar.h>
8503 #endif
8504 ],[putwc(0,0);],
8505         [cf_cv_utf8_lib=yes],
8506         [CF_FIND_LINKAGE([
8507 #include <libutf8.h>],[putwc(0,0);],utf8,
8508                 [cf_cv_utf8_lib=add-on],
8509                 [cf_cv_utf8_lib=no])
8510 ])])
8511
8512 # HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
8513 # ncurses/ncursesw:
8514 if test "$cf_cv_utf8_lib" = "add-on" ; then
8515         AC_DEFINE(HAVE_LIBUTF8_H,1,[Define to 1 if we should include libutf8.h])
8516         CF_ADD_INCDIR($cf_cv_header_path_utf8)
8517         CF_ADD_LIBDIR($cf_cv_library_path_utf8)
8518         CF_ADD_LIBS($cf_cv_library_file_utf8)
8519 fi
8520 ])dnl
8521 dnl ---------------------------------------------------------------------------
8522 dnl CF_VA_COPY version: 6 updated: 2018/12/04 18:14:25
8523 dnl ----------
8524 dnl check for va_copy, part of stdarg.h starting with ISO C 1999.
8525 dnl Also, workaround for glibc's __va_copy, by checking for both.
8526 dnl Finally, try to accommodate pre-ISO C 1999 headers.
8527 AC_DEFUN([CF_VA_COPY],[
8528 AC_CACHE_CHECK(for va_copy, cf_cv_have_va_copy,[
8529 AC_TRY_LINK([
8530 #include <stdarg.h>
8531 ],[
8532         static va_list dst;
8533         static va_list src;
8534         va_copy(dst, src)],
8535         cf_cv_have_va_copy=yes,
8536         cf_cv_have_va_copy=no)])
8537
8538 if test "$cf_cv_have_va_copy" = yes;
8539 then
8540         AC_DEFINE(HAVE_VA_COPY,1,[Define to 1 if we have va_copy])
8541 else # !cf_cv_have_va_copy
8542
8543 AC_CACHE_CHECK(for __va_copy, cf_cv_have___va_copy,[
8544 AC_TRY_LINK([
8545 #include <stdarg.h>
8546 ],[
8547         static va_list dst;
8548         static va_list src;
8549         __va_copy(dst, src)],
8550         cf_cv_have___va_copy=yes,
8551         cf_cv_have___va_copy=no)])
8552
8553 if test "$cf_cv_have___va_copy" = yes
8554 then
8555         AC_DEFINE(HAVE___VA_COPY,1,[Define to 1 if we have __va_copy])
8556 else # !cf_cv_have___va_copy
8557
8558 AC_CACHE_CHECK(for __builtin_va_copy, cf_cv_have___builtin_va_copy,[
8559 AC_TRY_LINK([
8560 #include <stdarg.h>
8561 ],[
8562         static va_list dst;
8563         static va_list src;
8564         __builtin_va_copy(dst, src)],
8565         cf_cv_have___builtin_va_copy=yes,
8566         cf_cv_have___builtin_va_copy=no)])
8567
8568 test "$cf_cv_have___builtin_va_copy" = yes &&
8569         AC_DEFINE(HAVE___BUILTIN_VA_COPY,1,[Define to 1 if we have __builtin_va_copy])
8570
8571 fi # cf_cv_have___va_copy
8572
8573 fi # cf_cv_have_va_copy
8574
8575 case "${cf_cv_have_va_copy}${cf_cv_have___va_copy}${cf_cv_have___builtin_va_copy}" in
8576 (*yes*)
8577         ;;
8578
8579 (*)
8580         AC_CACHE_CHECK(if we can simply copy va_list, cf_cv_pointer_va_list,[
8581 AC_TRY_LINK([
8582 #include <stdarg.h>
8583 ],[
8584         va_list dst;
8585         va_list src;
8586         dst = src],
8587         cf_cv_pointer_va_list=yes,
8588         cf_cv_pointer_va_list=no)])
8589
8590         if test "$cf_cv_pointer_va_list" = no
8591         then
8592                 AC_CACHE_CHECK(if we can copy va_list indirectly, cf_cv_array_va_list,[
8593 AC_TRY_LINK([
8594 #include <stdarg.h>
8595 ],[
8596         va_list dst;
8597         va_list src;
8598         *dst = *src],
8599                         cf_cv_array_va_list=yes,
8600                         cf_cv_array_va_list=no)])
8601                 test "$cf_cv_array_va_list" = yes && AC_DEFINE(ARRAY_VA_LIST,1,[Define to 1 if we can copy va_list indirectly])
8602         fi
8603         ;;
8604 esac
8605 ])
8606 dnl ---------------------------------------------------------------------------
8607 dnl CF_VERBOSE version: 3 updated: 2007/07/29 09:55:12
8608 dnl ----------
8609 dnl Use AC_VERBOSE w/o the warnings
8610 AC_DEFUN([CF_VERBOSE],
8611 [test -n "$verbose" && echo "   $1" 1>&AC_FD_MSG
8612 CF_MSG_LOG([$1])
8613 ])dnl
8614 dnl ---------------------------------------------------------------------------
8615 dnl CF_VERSION_INFO version: 8 updated: 2021/01/01 13:31:04
8616 dnl ---------------
8617 dnl Define several useful symbols derived from the VERSION file.  A separate
8618 dnl file is preferred to embedding the version numbers in various scripts.
8619 dnl (automake is a textbook-example of why the latter is a bad idea, but there
8620 dnl are others).
8621 dnl
8622 dnl The file contents are:
8623 dnl     libtool-version release-version patch-version
8624 dnl or
8625 dnl     release-version
8626 dnl where
8627 dnl     libtool-version (see ?) consists of 3 integers separated by '.'
8628 dnl     release-version consists of a major version and minor version
8629 dnl             separated by '.', optionally followed by a patch-version
8630 dnl             separated by '-'.  The minor version need not be an
8631 dnl             integer (but it is preferred).
8632 dnl     patch-version is an integer in the form yyyymmdd, so ifdef's and
8633 dnl             scripts can easily compare versions.
8634 dnl
8635 dnl If libtool is used, the first form is required, since CF_WITH_LIBTOOL
8636 dnl simply extracts the first field using 'cut -f1'.
8637 dnl
8638 dnl Optional parameters:
8639 dnl $1 = internal name for package
8640 dnl $2 = external name for package
8641 AC_DEFUN([CF_VERSION_INFO],
8642 [
8643 if test -f "$srcdir/VERSION" ; then
8644         AC_MSG_CHECKING(for package version)
8645
8646         # if there are not enough fields, cut returns the last one...
8647         cf_field1=`sed -e '2,$d' "$srcdir/VERSION" |cut -f1`
8648         cf_field2=`sed -e '2,$d' "$srcdir/VERSION" |cut -f2`
8649         cf_field3=`sed -e '2,$d' "$srcdir/VERSION" |cut -f3`
8650
8651         # this is how CF_BUNDLED_INTL uses $VERSION:
8652         VERSION="$cf_field1"
8653
8654         VERSION_MAJOR=`echo "$cf_field2" | sed -e 's/\..*//'`
8655         test -z "$VERSION_MAJOR" && AC_MSG_ERROR(missing major-version)
8656
8657         VERSION_MINOR=`echo "$cf_field2" | sed -e 's/^[[^.]]*\.//' -e 's/-.*//'`
8658         test -z "$VERSION_MINOR" && AC_MSG_ERROR(missing minor-version)
8659
8660         AC_MSG_RESULT(${VERSION_MAJOR}.${VERSION_MINOR})
8661
8662         AC_MSG_CHECKING(for package patch date)
8663         VERSION_PATCH=`echo "$cf_field3" | sed -e 's/^[[^-]]*-//'`
8664         case .$VERSION_PATCH in
8665         (.)
8666                 AC_MSG_ERROR(missing patch-date $VERSION_PATCH)
8667                 ;;
8668         (.[[0-9]][[0-9]][[0-9]][[0-9]][[0-9]][[0-9]][[0-9]][[0-9]])
8669                 ;;
8670         (*)
8671                 AC_MSG_ERROR(illegal patch-date $VERSION_PATCH)
8672                 ;;
8673         esac
8674         AC_MSG_RESULT($VERSION_PATCH)
8675 else
8676         AC_MSG_ERROR(did not find $srcdir/VERSION)
8677 fi
8678
8679 # show the actual data that we have for versions:
8680 CF_VERBOSE(ABI VERSION $VERSION)
8681 CF_VERBOSE(VERSION_MAJOR $VERSION_MAJOR)
8682 CF_VERBOSE(VERSION_MINOR $VERSION_MINOR)
8683 CF_VERBOSE(VERSION_PATCH $VERSION_PATCH)
8684
8685 AC_SUBST(VERSION)
8686 AC_SUBST(VERSION_MAJOR)
8687 AC_SUBST(VERSION_MINOR)
8688 AC_SUBST(VERSION_PATCH)
8689
8690 dnl if a package name is given, define its corresponding version info.  We
8691 dnl need the package name to ensure that the defined symbols are unique.
8692 ifelse($1,,,[
8693         cf_PACKAGE=$1
8694         PACKAGE=ifelse($2,,$1,$2)
8695         AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE",[Define to the package-name])
8696         AC_SUBST(PACKAGE)
8697         CF_UPPER(cf_PACKAGE,$cf_PACKAGE)
8698         AC_DEFINE_UNQUOTED(${cf_PACKAGE}_VERSION,"${VERSION_MAJOR}.${VERSION_MINOR}")
8699         AC_DEFINE_UNQUOTED(${cf_PACKAGE}_PATCHDATE,${VERSION_PATCH})
8700 ])
8701 ])dnl
8702 dnl ---------------------------------------------------------------------------
8703 dnl CF_WCHAR_TYPE version: 4 updated: 2012/10/06 16:39:58
8704 dnl -------------
8705 dnl Check if type wide-character type $1 is declared, and if so, which header
8706 dnl file is needed.  The second parameter is used to set a shell variable when
8707 dnl the type is not found.  The first parameter sets a shell variable for the
8708 dnl opposite sense.
8709 AC_DEFUN([CF_WCHAR_TYPE],
8710 [
8711 # This is needed on Tru64 5.0 to declare $1
8712 AC_CACHE_CHECK(if we must include wchar.h to declare $1,cf_cv_$1,[
8713 AC_TRY_COMPILE([
8714 #include <stdlib.h>
8715 #include <stdarg.h>
8716 #include <stdio.h>
8717 #ifdef HAVE_LIBUTF8_H
8718 #include <libutf8.h>
8719 #endif],
8720         [$1 state],
8721         [cf_cv_$1=no],
8722         [AC_TRY_COMPILE([
8723 #include <stdlib.h>
8724 #include <stdarg.h>
8725 #include <stdio.h>
8726 #include <wchar.h>
8727 #ifdef HAVE_LIBUTF8_H
8728 #include <libutf8.h>
8729 #endif],
8730         [$1 value],
8731         [cf_cv_$1=yes],
8732         [cf_cv_$1=unknown])])])
8733
8734 if test "$cf_cv_$1" = yes ; then
8735         AC_DEFINE(NEED_WCHAR_H,1,[Define to 1 if we must include wchar.h])
8736         NEED_WCHAR_H=1
8737 fi
8738
8739 ifelse([$2],,,[
8740 # if we do not find $1 in either place, use substitution to provide a fallback.
8741 if test "$cf_cv_$1" = unknown ; then
8742         $2=1
8743 fi
8744 ])
8745 ifelse($3,,,[
8746 # if we find $1 in either place, use substitution to provide a fallback.
8747 if test "$cf_cv_$1" != unknown ; then
8748         $3=1
8749 fi
8750 ])
8751 ])dnl
8752 dnl ---------------------------------------------------------------------------
8753 dnl CF_WEAK_SYMBOLS version: 1 updated: 2008/08/16 19:18:06
8754 dnl ---------------
8755 dnl Check for compiler-support for weak symbols.
8756 dnl This works with "recent" gcc.
8757 AC_DEFUN([CF_WEAK_SYMBOLS],[
8758 AC_CACHE_CHECK(if $CC supports weak symbols,cf_cv_weak_symbols,[
8759
8760 AC_TRY_COMPILE([
8761 #include <stdio.h>],
8762 [
8763 #if defined(__GNUC__)
8764 #  if defined __USE_ISOC99
8765 #    define _cat_pragma(exp)    _Pragma(#exp)
8766 #    define _weak_pragma(exp)   _cat_pragma(weak name)
8767 #  else
8768 #    define _weak_pragma(exp)
8769 #  endif
8770 #  define _declare(name)        __extension__ extern __typeof__(name) name
8771 #  define weak_symbol(name)     _weak_pragma(name) _declare(name) __attribute__((weak))
8772 #endif
8773
8774 weak_symbol(fopen);
8775 ],[cf_cv_weak_symbols=yes],[cf_cv_weak_symbols=no])
8776 ])
8777 ])dnl
8778 dnl ---------------------------------------------------------------------------
8779 dnl CF_WITH_ABI_VERSION version: 4 updated: 2021/01/01 13:31:04
8780 dnl -------------------
8781 dnl Allow library's ABI to be overridden.  Generally this happens when a
8782 dnl packager has incremented the ABI past that used in the original package,
8783 dnl and wishes to keep doing this.
8784 dnl
8785 dnl $1 is the package name, if any, to derive a corresponding {package}_ABI
8786 dnl symbol.
8787 AC_DEFUN([CF_WITH_ABI_VERSION],[
8788 test -z "$cf_cv_abi_version" && cf_cv_abi_version=0
8789 AC_ARG_WITH(abi-version,
8790 [  --with-abi-version=XXX  override derived ABI version],[
8791         if test "x$cf_cv_abi_version" != "x$withval"
8792         then
8793                 AC_MSG_WARN(overriding ABI version $cf_cv_abi_version to $withval)
8794                 case "$cf_cv_rel_version" in
8795                 (5.*)
8796                         cf_cv_rel_version=$withval.0
8797                         ;;
8798                 (6.*)
8799                         cf_cv_rel_version=$withval.9    # FIXME: should be 10 as of 6.0 release
8800                         ;;
8801                 esac
8802         fi
8803         cf_cv_abi_version=$withval])
8804         CF_NUMBER_SYNTAX($cf_cv_abi_version,ABI version)
8805 ifelse($1,,,[
8806 $1_ABI=$cf_cv_abi_version
8807 ])
8808 ])dnl
8809 dnl ---------------------------------------------------------------------------
8810 dnl CF_WITH_ADA_COMPILER version: 2 updated: 2010/06/26 17:35:58
8811 dnl --------------------
8812 dnl Command-line option to specify the Ada95 compiler.
8813 AC_DEFUN([CF_WITH_ADA_COMPILER],[
8814 AC_MSG_CHECKING(for ada-compiler)
8815 AC_ARG_WITH(ada-compiler,
8816         [  --with-ada-compiler=CMD specify Ada95 compiler command (default gnatmake)],
8817         [cf_ada_compiler=$withval],
8818         [cf_ada_compiler=gnatmake])
8819 AC_SUBST(cf_ada_compiler)
8820 AC_MSG_RESULT($cf_ada_compiler)
8821 ])dnl
8822 dnl ---------------------------------------------------------------------------
8823 dnl CF_WITH_ADA_INCLUDE version: 2 updated: 2010/06/26 17:35:58
8824 dnl -------------------
8825 dnl Command-line option to specify where Ada includes will install.
8826 AC_DEFUN([CF_WITH_ADA_INCLUDE],[
8827 AC_MSG_CHECKING(for ada-include)
8828 CF_WITH_PATH(ada-include,
8829    [  --with-ada-include=DIR  Ada includes are in DIR],
8830    ADA_INCLUDE,
8831    PREFIX/share/ada/adainclude,
8832    [$]prefix/share/ada/adainclude)
8833 AC_SUBST(ADA_INCLUDE)
8834 AC_MSG_RESULT($ADA_INCLUDE)
8835 ])dnl
8836 dnl ---------------------------------------------------------------------------
8837 dnl CF_WITH_ADA_LIBNAME version: 1 updated: 2019/09/07 18:59:41
8838 dnl -------------------
8839 dnl CF_WITH_ADA_LIBNAME
8840 dnl -------------------
8841 dnl Command-line option to specify how to name the resulting Ada library.
8842 dnl $1 = default value
8843 AC_DEFUN([CF_WITH_ADA_LIBNAME],[
8844 AC_MSG_CHECKING(for ada-libname)
8845 AC_ARG_WITH(ada-libname,
8846    [  --with-ada-libname=XXX  override default Ada library-name],
8847    ADA_LIBNAME=[$]withval,
8848    ADA_LIBNAME=$1)
8849 case "x$ADA_LIBNAME" in
8850 (x|xyes|xno)
8851         ADA_LIBNAME=$1
8852         ;;
8853 esac
8854 AC_SUBST(ADA_LIBNAME)
8855 AC_MSG_RESULT($ADA_LIBNAME)
8856 ])dnl
8857 dnl ---------------------------------------------------------------------------
8858 dnl CF_WITH_ADA_OBJECTS version: 2 updated: 2010/06/26 17:35:58
8859 dnl -------------------
8860 dnl Command-line option to specify where Ada objects will install.
8861 AC_DEFUN([CF_WITH_ADA_OBJECTS],[
8862 AC_MSG_CHECKING(for ada-objects)
8863 CF_WITH_PATH(ada-objects,
8864    [  --with-ada-objects=DIR  Ada objects are in DIR],
8865    ADA_OBJECTS,
8866    PREFIX/lib/ada/adalib,
8867    [$]prefix/lib/ada/adalib)
8868 AC_SUBST(ADA_OBJECTS)
8869 AC_MSG_RESULT($ADA_OBJECTS)
8870 ])dnl
8871 dnl ---------------------------------------------------------------------------
8872 dnl CF_WITH_ADA_SHAREDLIB version: 5 updated: 2018/07/21 19:10:35
8873 dnl ---------------------
8874 dnl Command-line option to specify if an Ada95 shared-library should be built,
8875 dnl and optionally what its soname should be.
8876 AC_DEFUN([CF_WITH_ADA_SHAREDLIB],[
8877 AC_REQUIRE([CF_GNAT_PROJECTS])
8878 AC_MSG_CHECKING(if an Ada95 shared-library should be built)
8879 AC_ARG_WITH(ada-sharedlib,
8880         [  --with-ada-sharedlib=soname build shared-library (requires GNAT projects)],
8881         [with_ada_sharedlib=$withval],
8882         [with_ada_sharedlib=no])
8883 AC_MSG_RESULT($with_ada_sharedlib)
8884
8885 if test "x$with_ada_sharedlib" != xno
8886 then
8887         if test "x$cf_gnat_projects" != xyes
8888         then
8889                 AC_MSG_WARN(disabling shared-library since GNAT projects are not supported)
8890                 with_ada_sharedlib=no
8891         fi
8892 fi
8893
8894 ADA_SHAREDLIB='lib$(LIB_NAME).so.1'
8895 MAKE_ADA_SHAREDLIB="#"
8896
8897 if test "x$with_ada_sharedlib" != xno
8898 then
8899         MAKE_ADA_SHAREDLIB=
8900         if test "x$with_ada_sharedlib" != xyes
8901         then
8902                 ADA_SHAREDLIB="$with_ada_sharedlib"
8903         fi
8904 fi
8905
8906 AC_SUBST(ADA_SHAREDLIB)
8907 AC_SUBST(MAKE_ADA_SHAREDLIB)
8908 ])dnl
8909 dnl ---------------------------------------------------------------------------
8910 dnl CF_WITH_DBMALLOC version: 7 updated: 2010/06/21 17:26:47
8911 dnl ----------------
8912 dnl Configure-option for dbmalloc.  The optional parameter is used to override
8913 dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
8914 AC_DEFUN([CF_WITH_DBMALLOC],[
8915 CF_NO_LEAKS_OPTION(dbmalloc,
8916         [  --with-dbmalloc         test: use Conor Cahill's dbmalloc library],
8917         [USE_DBMALLOC])
8918
8919 if test "$with_dbmalloc" = yes ; then
8920         AC_CHECK_HEADER(dbmalloc.h,
8921                 [AC_CHECK_LIB(dbmalloc,[debug_malloc]ifelse([$1],,[],[,$1]))])
8922 fi
8923 ])dnl
8924 dnl ---------------------------------------------------------------------------
8925 dnl CF_WITH_DMALLOC version: 7 updated: 2010/06/21 17:26:47
8926 dnl ---------------
8927 dnl Configure-option for dmalloc.  The optional parameter is used to override
8928 dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
8929 AC_DEFUN([CF_WITH_DMALLOC],[
8930 CF_NO_LEAKS_OPTION(dmalloc,
8931         [  --with-dmalloc          test: use Gray Watson's dmalloc library],
8932         [USE_DMALLOC])
8933
8934 if test "$with_dmalloc" = yes ; then
8935         AC_CHECK_HEADER(dmalloc.h,
8936                 [AC_CHECK_LIB(dmalloc,[dmalloc_debug]ifelse([$1],,[],[,$1]))])
8937 fi
8938 ])dnl
8939 dnl ---------------------------------------------------------------------------
8940 dnl CF_WITH_EXPORT_SYMS version: 3 updated: 2014/12/20 19:16:08
8941 dnl -------------------
8942 dnl Use this with libtool to specify the list of symbols that may be exported.
8943 dnl The input file contains one symbol per line; comments work with "#".
8944 dnl
8945 dnl $1 = basename of the ".sym" file (default $PACKAGE)
8946 AC_DEFUN([CF_WITH_EXPORT_SYMS],
8947 [
8948 AC_MSG_CHECKING(if exported-symbols file should be used)
8949 AC_ARG_WITH(export-syms,
8950         [  --with-export-syms=XXX  limit exported symbols using libtool],
8951         [with_export_syms=$withval],
8952         [with_export_syms=no])
8953 if test "x$with_export_syms" = xyes
8954 then
8955         with_export_syms='${top_srcdir}/package/ifelse($1,,${PACKAGE},[$1]).sym'
8956         AC_SUBST(PACKAGE)
8957 fi
8958 AC_MSG_RESULT($with_export_syms)
8959 if test "x$with_export_syms" != xno
8960 then
8961         EXPORT_SYMS="-export-symbols $with_export_syms"
8962         AC_SUBST(EXPORT_SYMS)
8963 fi
8964 ])dnl
8965 dnl ---------------------------------------------------------------------------
8966 dnl CF_WITH_GPM version: 10 updated: 2017/04/29 18:32:18
8967 dnl -----------
8968 dnl
8969 dnl The option parameter (if neither yes/no) is assumed to be the name of
8970 dnl the gpm library, e.g., for dynamic loading.
8971 AC_DEFUN([CF_WITH_GPM],
8972 [
8973 AC_MSG_CHECKING(if you want to link with the GPM mouse library)
8974 AC_ARG_WITH(gpm,
8975         [  --with-gpm              use Alessandro Rubini's GPM library],
8976         [with_gpm=$withval],
8977         [with_gpm=maybe])
8978 AC_MSG_RESULT($with_gpm)
8979
8980 if test "$with_gpm" != no ; then
8981         AC_CHECK_HEADER(gpm.h,[
8982                 AC_DEFINE(HAVE_GPM_H,1,[Define to 1 if we have gpm.h header])
8983                 if test "$with_gpm" != yes && test "$with_gpm" != maybe ; then
8984                         CF_VERBOSE(assuming we really have GPM library)
8985                         AC_DEFINE(HAVE_LIBGPM,1,[Define to 1 if we have the gpm library])
8986                         with_gpm=yes
8987                 else
8988                         AC_CHECK_LIB(gpm,Gpm_Open,[with_gpm=yes],[
8989                                 if test "$with_gpm" = maybe; then
8990                                         AC_MSG_WARN(Cannot link with GPM library)
8991                                         with_gpm=no
8992                                 else
8993                                         AC_MSG_ERROR(Cannot link with GPM library)
8994                                 fi
8995                         ])
8996                 fi
8997         ],[
8998                 test "$with_gpm" != maybe && AC_MSG_WARN(Cannot find GPM header)
8999                 with_gpm=no
9000         ])
9001 fi
9002 ])
9003 dnl ---------------------------------------------------------------------------
9004 dnl CF_WITH_LIBTOOL version: 36 updated: 2021/01/01 13:31:04
9005 dnl ---------------
9006 dnl Provide a configure option to incorporate libtool.  Define several useful
9007 dnl symbols for the makefile rules.
9008 dnl
9009 dnl The reference to AC_PROG_LIBTOOL does not normally work, since it uses
9010 dnl macros from libtool.m4 which is in the aclocal directory of automake.
9011 dnl Following is a simple script which turns on the AC_PROG_LIBTOOL macro.
9012 dnl But that still does not work properly since the macro is expanded outside
9013 dnl the CF_WITH_LIBTOOL macro:
9014 dnl
9015 dnl     #!/bin/sh
9016 dnl     ACLOCAL=`aclocal --print-ac-dir`
9017 dnl     if test -z "$ACLOCAL" ; then
9018 dnl             echo cannot find aclocal directory
9019 dnl             exit 1
9020 dnl     elif test ! -f $ACLOCAL/libtool.m4 ; then
9021 dnl             echo cannot find libtool.m4 file
9022 dnl             exit 1
9023 dnl     fi
9024 dnl
9025 dnl     LOCAL=aclocal.m4
9026 dnl     ORIG=aclocal.m4.orig
9027 dnl
9028 dnl     trap "mv $ORIG $LOCAL" 0 1 2 3 15
9029 dnl     rm -f $ORIG
9030 dnl     mv $LOCAL $ORIG
9031 dnl
9032 dnl     # sed the LIBTOOL= assignment to omit the current directory?
9033 dnl     sed -e 's/^LIBTOOL=.*/LIBTOOL=${LIBTOOL:-libtool}/' $ACLOCAL/libtool.m4 >>$LOCAL
9034 dnl     cat $ORIG >>$LOCAL
9035 dnl
9036 dnl     autoconf-257 $*
9037 dnl
9038 AC_DEFUN([CF_WITH_LIBTOOL],
9039 [
9040 AC_REQUIRE([CF_DISABLE_LIBTOOL_VERSION])
9041 ifdef([AC_PROG_LIBTOOL],,[
9042 LIBTOOL=
9043 ])
9044 # common library maintenance symbols that are convenient for libtool scripts:
9045 LIB_CREATE='${AR} -cr'
9046 LIB_OBJECT='${OBJECTS}'
9047 LIB_SUFFIX=.a
9048 LIB_PREP="$RANLIB"
9049
9050 # symbols used to prop libtool up to enable it to determine what it should be
9051 # doing:
9052 LIB_CLEAN=
9053 LIB_COMPILE=
9054 LIB_LINK='${CC}'
9055 LIB_INSTALL=
9056 LIB_UNINSTALL=
9057
9058 AC_MSG_CHECKING(if you want to build libraries with libtool)
9059 AC_ARG_WITH(libtool,
9060         [  --with-libtool          generate libraries with libtool],
9061         [with_libtool=$withval],
9062         [with_libtool=no])
9063 AC_MSG_RESULT($with_libtool)
9064 if test "$with_libtool" != "no"; then
9065 ifdef([AC_PROG_LIBTOOL],[
9066         # missing_content_AC_PROG_LIBTOOL{{
9067         AC_PROG_LIBTOOL
9068         # missing_content_AC_PROG_LIBTOOL}}
9069 ],[
9070         if test "$with_libtool" != "yes" ; then
9071                 CF_PATH_SYNTAX(with_libtool)
9072                 LIBTOOL=$with_libtool
9073         else
9074                 AC_CHECK_TOOLS(LIBTOOL,[libtool glibtool],none)
9075                 CF_LIBTOOL_VERSION
9076                 if test -z "$cf_cv_libtool_version" && test "$LIBTOOL" = libtool
9077                 then
9078                         CF_FORGET_TOOL(LIBTOOL)
9079                         AC_CHECK_TOOLS(LIBTOOL,[glibtool],none)
9080                         CF_LIBTOOL_VERSION
9081                 fi
9082         fi
9083         if test -z "$LIBTOOL" ; then
9084                 AC_MSG_ERROR(Cannot find libtool)
9085         fi
9086 ])dnl
9087         LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${libdir} ${LIBTOOL_VERSION} `cut -f1 ${top_srcdir}/VERSION` ${LIBTOOL_OPTS} ${LT_UNDEF} $(LIBS) -o'
9088         LIB_OBJECT='${OBJECTS:.o=.lo}'
9089         LIB_SUFFIX=.la
9090         LIB_CLEAN='${LIBTOOL} --mode=clean'
9091         LIB_COMPILE='${LIBTOOL} --mode=compile'
9092         LIB_LINK='${LIBTOOL} --mode=link ${CC} ${LIBTOOL_OPTS}'
9093         LIB_INSTALL='${LIBTOOL} --mode=install'
9094         LIB_UNINSTALL='${LIBTOOL} --mode=uninstall'
9095         LIB_PREP=:
9096
9097         CF_CHECK_LIBTOOL_VERSION
9098
9099         # special hack to add -no-undefined (which libtool should do for itself)
9100         LT_UNDEF=
9101         case "$cf_cv_system_name" in
9102         (cygwin*|msys*|mingw32*|os2*|uwin*|aix[[4-7]])
9103                 LT_UNDEF=-no-undefined
9104                 ;;
9105         esac
9106         AC_SUBST([LT_UNDEF])
9107
9108         # special hack to add --tag option for C++ compiler
9109         case "$cf_cv_libtool_version" in
9110         (1.[[5-9]]*|[[2-9]].[[0-9.a-z]]*)
9111                 LIBTOOL_CXX="$LIBTOOL --tag=CXX"
9112                 LIBTOOL="$LIBTOOL --tag=CC"
9113                 ;;
9114         (*)
9115                 LIBTOOL_CXX="$LIBTOOL"
9116                 ;;
9117         esac
9118 else
9119         LIBTOOL=""
9120         LIBTOOL_CXX=""
9121 fi
9122
9123 test -z "$LIBTOOL" && ECHO_LT=
9124
9125 AC_SUBST(LIBTOOL)
9126 AC_SUBST(LIBTOOL_CXX)
9127 AC_SUBST(LIBTOOL_OPTS)
9128
9129 AC_SUBST(LIB_CREATE)
9130 AC_SUBST(LIB_OBJECT)
9131 AC_SUBST(LIB_SUFFIX)
9132 AC_SUBST(LIB_PREP)
9133
9134 AC_SUBST(LIB_CLEAN)
9135 AC_SUBST(LIB_COMPILE)
9136 AC_SUBST(LIB_LINK)
9137 AC_SUBST(LIB_INSTALL)
9138 AC_SUBST(LIB_UNINSTALL)
9139
9140 ])dnl
9141 dnl ---------------------------------------------------------------------------
9142 dnl CF_WITH_LIBTOOL_OPTS version: 4 updated: 2015/04/17 21:13:04
9143 dnl --------------------
9144 dnl Allow user to pass additional libtool options into the library creation
9145 dnl and link steps.  The main use for this is to do something like
9146 dnl     ./configure --with-libtool-opts=-static
9147 dnl to get the same behavior as automake-flavored
9148 dnl     ./configure --enable-static
9149 AC_DEFUN([CF_WITH_LIBTOOL_OPTS],[
9150 AC_MSG_CHECKING(for additional libtool options)
9151 AC_ARG_WITH(libtool-opts,
9152         [  --with-libtool-opts=XXX specify additional libtool options],
9153         [with_libtool_opts=$withval],
9154         [with_libtool_opts=no])
9155 AC_MSG_RESULT($with_libtool_opts)
9156
9157 case .$with_libtool_opts in
9158 (.yes|.no|.)
9159         ;;
9160 (*)
9161         LIBTOOL_OPTS="$LIBTOOL_OPTS $with_libtool_opts"
9162         ;;
9163 esac
9164
9165 AC_SUBST(LIBTOOL_OPTS)
9166 ])dnl
9167 dnl ---------------------------------------------------------------------------
9168 dnl CF_WITH_LIB_BASENAME version: 1 updated: 2020/03/07 20:05:14
9169 dnl --------------------
9170 dnl Allow for overriding the basename of a library, i.e., the part to which
9171 dnl prefixes/suffixes are attached.
9172 dnl
9173 dnl $1 = variable to set
9174 dnl $2 = option name
9175 dnl $3 = default basename for library, if omitted use $2
9176 AC_DEFUN([CF_WITH_LIB_BASENAME],
9177 [
9178 AC_MSG_CHECKING(for desired basename for $2 library)
9179 AC_ARG_WITH($2-libname,
9180         [  --with-$2-libname=XXX override ifelse($3,,$2,$3) basename of library],
9181         [with_lib_basename=$withval],
9182         [with_lib_basename=ifelse($3,,$2,$3)])
9183 $1="$with_lib_basename"
9184
9185 case "x[$]$1" in
9186 (x|xno|xnone|xyes)
9187         $1=ifelse($3,,$2,$3)
9188         ;;
9189 (*)
9190         ;;
9191 esac
9192
9193 AC_MSG_RESULT([$]$1)
9194 AC_SUBST($1)
9195 ])dnl
9196 dnl ---------------------------------------------------------------------------
9197 dnl CF_WITH_LIB_PREFIX version: 2 updated: 2021/01/01 16:53:59
9198 dnl ------------------
9199 dnl Allow the library-prefix to be overridden.  OS/2 EMX originally had no
9200 dnl "lib" prefix, e.g., because it used the dll naming convention.
9201 dnl
9202 dnl $1 = variable to set
9203 AC_DEFUN([CF_WITH_LIB_PREFIX],
9204 [
9205 AC_MSG_CHECKING(if you want to have a library-prefix)
9206 AC_ARG_WITH(lib-prefix,
9207         [  --with-lib-prefix       override library-prefix],
9208         [with_lib_prefix=$withval],
9209         [with_lib_prefix=auto])
9210 AC_MSG_RESULT($with_lib_prefix)
9211
9212 if test "$with_lib_prefix" = auto
9213 then
9214         CF_LIB_PREFIX($1)
9215 elif test "$with_lib_prefix" = no
9216 then
9217         LIB_PREFIX=
9218 else
9219         LIB_PREFIX=$with_lib_prefix
9220 fi
9221 ])dnl
9222 dnl ---------------------------------------------------------------------------
9223 dnl CF_WITH_PATH version: 12 updated: 2021/09/04 06:35:04
9224 dnl ------------
9225 dnl Wrapper for AC_ARG_WITH to ensure that user supplies a pathname, not just
9226 dnl defaulting to yes/no.
9227 dnl
9228 dnl $1 = option name
9229 dnl $2 = help-text
9230 dnl $3 = environment variable to set
9231 dnl $4 = default value, shown in the help-message, must be a constant
9232 dnl $5 = default value, if it is an expression & cannot be in the help-message
9233 dnl
9234 AC_DEFUN([CF_WITH_PATH],
9235 [AC_ARG_WITH($1,[$2 ](default: ifelse([$4],,empty,[$4])),,
9236 ifelse([$4],,[withval="${$3}"],[withval="${$3:-ifelse([$5],,[$4],[$5])}"]))dnl
9237 if ifelse([$5],,true,[test -n "$5"]) ; then
9238 CF_PATH_SYNTAX(withval)
9239 fi
9240 eval $3="$withval"
9241 AC_SUBST($3)dnl
9242 ])dnl
9243 dnl ---------------------------------------------------------------------------
9244 dnl CF_WITH_PATHLIST version: 13 updated: 2021/09/04 06:35:04
9245 dnl ----------------
9246 dnl Process an option specifying a list of colon-separated paths.
9247 dnl
9248 dnl $1 = option name
9249 dnl $2 = help-text
9250 dnl $3 = environment variable to set
9251 dnl $4 = default value, shown in the help-message, must be a constant
9252 dnl $5 = default value, if it is an expression & cannot be in the help-message
9253 dnl $6 = flag to tell if we want to define or substitute
9254 dnl
9255 AC_DEFUN([CF_WITH_PATHLIST],[
9256 AC_REQUIRE([CF_PATHSEP])
9257 AC_ARG_WITH($1,[$2 ](default: ifelse($4,,empty,$4)),,
9258 ifelse($4,,[withval=${$3}],[withval=${$3:-ifelse($5,,$4,$5)}]))dnl
9259
9260 IFS="${IFS:-    }"; ac_save_ifs="$IFS"; IFS="${PATH_SEPARATOR}"
9261 cf_dst_path=
9262 for cf_src_path in $withval
9263 do
9264   CF_PATH_SYNTAX(cf_src_path)
9265   test -n "$cf_dst_path" && cf_dst_path="${cf_dst_path}$PATH_SEPARATOR"
9266   cf_dst_path="${cf_dst_path}${cf_src_path}"
9267 done
9268 IFS="$ac_save_ifs"
9269
9270 ifelse($6,define,[
9271 # Strip single quotes from the value, e.g., when it was supplied as a literal
9272 # for $4 or $5.
9273 case "$cf_dst_path" in
9274 (\'*)
9275   cf_dst_path="`echo "$cf_dst_path" |sed -e s/\'// -e s/\'\$//`"
9276   ;;
9277 esac
9278 cf_dst_path=`echo "$cf_dst_path" | sed -e 's/\\\\/\\\\\\\\/g'`
9279 ])
9280
9281 # This may use the prefix/exec_prefix symbols which will only yield "NONE"
9282 # so we have to check/work around.  We do prefer the result of "eval"...
9283 eval cf_dst_eval="$cf_dst_path"
9284 case "x$cf_dst_eval" in
9285 (xNONE*)
9286         $3=$cf_dst_path
9287         ;;
9288 (*)
9289         $3="$cf_dst_eval"
9290         ;;
9291 esac
9292 AC_SUBST($3)dnl
9293
9294 ])dnl
9295 dnl ---------------------------------------------------------------------------
9296 dnl CF_WITH_PATH_PROG version: 1 updated: 2019/06/30 19:44:43
9297 dnl -----------------
9298 dnl Check for a given program, like CF_PATH_PROG, but allow override using a
9299 dnl "--with-xxx" option.
9300 dnl
9301 dnl Parameters:
9302 dnl             $1 = environment variable to set/update
9303 dnl             $2 = program name
9304 dnl             $3 = help-text
9305 dnl             $4 = $PATH
9306 AC_DEFUN([CF_WITH_PATH_PROG],[
9307 AC_ARG_WITH($2-path,
9308         [  --with-$2-path=XXX     specify path of $2 ifelse($3,,,$3)],
9309         [AC_MSG_CHECKING(for $2 program ifelse($3,,,$3))
9310                 $1=$withval
9311                 AC_MSG_RESULT([$]$1)
9312                 CF_PATH_SYNTAX($1)
9313         ],
9314         [CF_PATH_PROG($1,$2,,ifelse($4,,,$4))
9315                 if test -z "[$]$1"
9316                 then
9317                         AC_MSG_WARN(no $2 program found ifelse($3,,,$3))
9318                 fi
9319         ])
9320 ])
9321 dnl ---------------------------------------------------------------------------
9322 dnl CF_WITH_PCRE2 version: 6 updated: 2021/08/11 20:35:34
9323 dnl -------------
9324 dnl Add PCRE2 (Perl-compatible regular expressions v2) to the build if it is
9325 dnl available and the user requests it.  Assume the application will otherwise
9326 dnl use the POSIX interface.
9327 dnl
9328 dnl TODO allow $withval to specify package location
9329 AC_DEFUN([CF_WITH_PCRE2],
9330 [
9331 AC_REQUIRE([CF_PKG_CONFIG])
9332
9333 AC_MSG_CHECKING(if you want to use PCRE2 for regular-expressions)
9334 AC_ARG_WITH(pcre2,
9335         [  --with-pcre2            use PCRE2 for regular-expressions])
9336 test -z "$with_pcre2" && with_pcre2=no
9337 AC_MSG_RESULT($with_pcre2)
9338
9339 if test "x$with_pcre2" != xno ; then
9340         cf_with_pcre2_ok=no
9341         for cf_with_pcre2 in libpcre2 libpcre2-posix libpcre
9342         do
9343                 CF_TRY_PKG_CONFIG($cf_with_pcre2,[cf_with_pcre2_ok=yes; break])
9344         done
9345         cf_with_pcre2_ok=yes || AC_MSG_ERROR(Cannot find PCRE2 library)
9346
9347         AC_DEFINE(HAVE_LIB_PCRE2,1,[Define to 1 if we can/should compile with the PCRE2 library])
9348
9349         # if pkgconfig gave no results, look for the libraries directly
9350         case "$LIBS" in
9351         (*pcre2-posix*|*pcreposix*)
9352                 ;;
9353         (*)
9354                 AC_CHECK_LIB(pcre2-posix,regcomp,[
9355                         CF_ADD_LIB(pcre2-posix)],
9356                         [AC_CHECK_LIB(pcreposix,regcomp,[
9357                          CF_ADD_LIB(pcreposix)
9358                         ],[AC_MSG_ERROR(Cannot find PCRE2 POSIX library)])])
9359                 ;;
9360         esac
9361
9362         # either way, check for the library header files
9363         AC_CHECK_HEADERS(pcre2posix.h pcreposix.h)
9364         AC_CHECK_FUNCS(PCRE2regcomp)
9365 fi
9366 ])dnl
9367 dnl ---------------------------------------------------------------------------
9368 dnl CF_WITH_PKG_CONFIG_LIBDIR version: 20 updated: 2022/01/29 17:03:42
9369 dnl -------------------------
9370 dnl Allow the choice of the pkg-config library directory to be overridden.
9371 dnl
9372 dnl pkg-config uses a search-list built from these colon-separated lists of
9373 dnl directories:
9374 dnl a) $PKG_CONFIG_PATH (tested first, added if set)
9375 dnl b) $PKG_CONFIG_LIBDIR (tested second, added if set)
9376 dnl c) builtin-list (added if $PKG_CONFIG_LIBDIR is not set)
9377 dnl
9378 dnl pkgconf (used with some systems such as FreeBSD in place of pkg-config)
9379 dnl optionally ignores $PKG_CONFIG_LIBDIR.
9380 AC_DEFUN([CF_WITH_PKG_CONFIG_LIBDIR],[
9381
9382 case "$PKG_CONFIG" in
9383 (no|none|yes)
9384         AC_MSG_CHECKING(for pkg-config library directory)
9385         ;;
9386 (*)
9387         AC_MSG_CHECKING(for $PKG_CONFIG library directory)
9388         ;;
9389 esac
9390
9391 # if $PKG_CONFIG_LIBDIR is set, try to use that
9392 cf_search_path=`echo "$PKG_CONFIG_LIBDIR" | sed -e 's/:/ /g' -e 's,^[[  ]]*,,'`
9393
9394 # if the option is used, let that override.  otherwise default to "libdir"
9395 AC_ARG_WITH(pkg-config-libdir,
9396         [  --with-pkg-config-libdir=XXX use given directory for installing pc-files],
9397         [cf_search_path=$withval],
9398         [test "x$PKG_CONFIG" != xnone && test -z "$cf_search_path" && cf_search_path=libdir])
9399
9400 case "x$cf_search_path" in
9401 (xlibdir)
9402         PKG_CONFIG_LIBDIR='${libdir}/pkgconfig'
9403         AC_MSG_RESULT($PKG_CONFIG_LIBDIR)
9404         cf_search_path=
9405         ;;
9406 (x)
9407         ;;
9408 (x/*\ *)
9409         PKG_CONFIG_LIBDIR=
9410         ;;
9411 (x/*)
9412         PKG_CONFIG_LIBDIR="$cf_search_path"
9413         AC_MSG_RESULT($PKG_CONFIG_LIBDIR)
9414         cf_search_path=
9415         ;;
9416 (xyes|xauto)
9417         AC_MSG_RESULT(auto)
9418         cf_search_path=
9419         # Look for the library directory using the same prefix as the executable
9420         AC_MSG_CHECKING(for search-list)
9421         if test "x$PKG_CONFIG" != xnone
9422         then
9423                 # works for pkg-config since version 0.24 (2009)
9424                 # works for pkgconf since version 0.8.3 (2012)
9425                 for cf_pkg_program in \
9426                         `echo "$PKG_CONFIG" | sed -e 's,^.*/,,'` \
9427                         pkg-config \
9428                         pkgconf
9429                 do
9430                         cf_search_path=`"$PKG_CONFIG" --variable=pc_path "$cf_pkg_program" 2>/dev/null | tr : ' '`
9431                         test -n "$cf_search_path" && break
9432                 done
9433
9434                 # works for pkg-config since import in 2005 of original 2001 HP code.
9435                 test -z "$cf_search_path" && \
9436                 cf_search_path=`
9437                 "$PKG_CONFIG" --debug --exists no-such-package 2>&1 | $AWK "\
9438 /^Scanning directory (#[1-9][0-9]* )?'.*'$/{ \
9439         sub(\"^[[^']]*'\",\"\"); \
9440         sub(\"'.*\",\"\"); \
9441         printf \" %s\", \\[$]0; } \
9442 { next; } \
9443 "`
9444         fi
9445
9446         AC_MSG_RESULT($cf_search_path)
9447         ;;
9448 (*)
9449         AC_MSG_ERROR(Unexpected option value: $cf_search_path)
9450         ;;
9451 esac
9452
9453 if test -n "$cf_search_path"
9454 then
9455         AC_MSG_CHECKING(for first directory)
9456         cf_pkg_config_path=none
9457         for cf_config in $cf_search_path
9458         do
9459                 if test -d "$cf_config"
9460                 then
9461                         cf_pkg_config_path=$cf_config
9462                         break
9463                 fi
9464         done
9465         AC_MSG_RESULT($cf_pkg_config_path)
9466
9467         if test "x$cf_pkg_config_path" != xnone ; then
9468                 # limit this to the first directory found
9469                 PKG_CONFIG_LIBDIR="$cf_pkg_config_path"
9470         fi
9471
9472         if test -z "$PKG_CONFIG_LIBDIR" && test -n "$cf_search_path"
9473         then
9474                 AC_MSG_CHECKING(for workaround)
9475                 if test "$prefix" = "NONE" ; then
9476                         cf_prefix="$ac_default_prefix"
9477                 else
9478                         cf_prefix="$prefix"
9479                 fi
9480                 eval cf_libdir=$libdir
9481                 cf_libdir=`echo "$cf_libdir" | sed -e "s,^NONE,$cf_prefix,"`
9482                 cf_backup=
9483                 for cf_config in $cf_search_path
9484                 do
9485                         case $cf_config in
9486                         $cf_libdir/pkgconfig)
9487                                 PKG_CONFIG_LIBDIR=$cf_libdir/pkgconfig
9488                                 break
9489                                 ;;
9490                         *)
9491                                 test -z "$cf_backup" && cf_backup=$cf_config
9492                                 ;;
9493                         esac
9494                 done
9495                 test -z "$PKG_CONFIG_LIBDIR" && PKG_CONFIG_LIBDIR=$cf_backup
9496                 AC_MSG_RESULT($PKG_CONFIG_LIBDIR)
9497         fi
9498 fi
9499
9500 AC_SUBST(PKG_CONFIG_LIBDIR)
9501 ])dnl
9502 dnl ---------------------------------------------------------------------------
9503 dnl CF_WITH_PTHREAD version: 7 updated: 2015/04/18 08:56:57
9504 dnl ---------------
9505 dnl Check for POSIX thread library.
9506 AC_DEFUN([CF_WITH_PTHREAD],
9507 [
9508 AC_MSG_CHECKING(if you want to link with the pthread library)
9509 AC_ARG_WITH(pthread,
9510         [  --with-pthread          use POSIX thread library],
9511         [with_pthread=$withval],
9512         [with_pthread=no])
9513 AC_MSG_RESULT($with_pthread)
9514
9515 if test "$with_pthread" != no ; then
9516         AC_CHECK_HEADER(pthread.h,[
9517         AC_DEFINE(HAVE_PTHREADS_H,1,[Define to 1 if we have pthreads.h header])
9518
9519         for cf_lib_pthread in pthread c_r
9520         do
9521             AC_MSG_CHECKING(if we can link with the $cf_lib_pthread library)
9522             cf_save_LIBS="$LIBS"
9523             CF_ADD_LIB($cf_lib_pthread)
9524             AC_TRY_LINK([
9525 #include <pthread.h>
9526 ],[
9527                 int rc = pthread_create(0,0,0,0);
9528                 int r2 = pthread_mutexattr_settype(0, 0);
9529 ],[with_pthread=yes],[with_pthread=no])
9530             LIBS="$cf_save_LIBS"
9531             AC_MSG_RESULT($with_pthread)
9532             test "$with_pthread" = yes && break
9533         done
9534
9535         if test "$with_pthread" = yes ; then
9536             CF_ADD_LIB($cf_lib_pthread)
9537             AC_DEFINE(HAVE_LIBPTHREADS,1,[Define to 1 if we have pthreads library])
9538         else
9539             AC_MSG_ERROR(Cannot link with pthread library)
9540         fi
9541         ])
9542 fi
9543 ])
9544 dnl ---------------------------------------------------------------------------
9545 dnl CF_WITH_REL_VERSION version: 1 updated: 2003/09/20 18:12:49
9546 dnl -------------------
9547 dnl Allow library's release-version to be overridden.  Generally this happens when a
9548 dnl packager has incremented the release-version past that used in the original package,
9549 dnl and wishes to keep doing this.
9550 dnl
9551 dnl $1 is the package name, if any, to derive corresponding {package}_MAJOR
9552 dnl and {package}_MINOR symbols
9553 dnl symbol.
9554 AC_DEFUN([CF_WITH_REL_VERSION],[
9555 test -z "$cf_cv_rel_version" && cf_cv_rel_version=0.0
9556 AC_ARG_WITH(rel-version,
9557 [  --with-rel-version=XXX  override derived release version],
9558 [AC_MSG_WARN(overriding release version $cf_cv_rel_version to $withval)
9559  cf_cv_rel_version=$withval])
9560 ifelse($1,,[
9561  CF_NUMBER_SYNTAX($cf_cv_rel_version,Release version)
9562 ],[
9563  $1_MAJOR=`echo "$cf_cv_rel_version" | sed -e 's/\..*//'`
9564  $1_MINOR=`echo "$cf_cv_rel_version" | sed -e 's/^[[^.]]*//' -e 's/^\.//' -e 's/\..*//'`
9565  CF_NUMBER_SYNTAX([$]$1_MAJOR,Release major-version)
9566  CF_NUMBER_SYNTAX([$]$1_MINOR,Release minor-version)
9567 ])
9568 ])dnl
9569 dnl ---------------------------------------------------------------------------
9570 dnl CF_WITH_SYSMOUSE version: 3 updated: 2012/10/06 17:56:13
9571 dnl ----------------
9572 dnl If we can compile with sysmouse, make it available unless it is not wanted.
9573 AC_DEFUN([CF_WITH_SYSMOUSE],[
9574 # not everyone has "test -c"
9575 if test -c /dev/sysmouse 2>/dev/null ; then
9576 AC_MSG_CHECKING(if you want to use sysmouse)
9577 AC_ARG_WITH(sysmouse,
9578         [  --with-sysmouse         use sysmouse (FreeBSD console)],
9579         [cf_with_sysmouse=$withval],
9580         [cf_with_sysmouse=maybe])
9581         if test "$cf_with_sysmouse" != no ; then
9582         AC_TRY_COMPILE([
9583 #include <osreldate.h>
9584 #if (__FreeBSD_version >= 400017)
9585 #include <sys/consio.h>
9586 #include <sys/fbio.h>
9587 #else
9588 #include <machine/console.h>
9589 #endif
9590 ],[
9591         struct mouse_info the_mouse;
9592         ioctl(0, CONS_MOUSECTL, &the_mouse);
9593 ],[cf_with_sysmouse=yes],[cf_with_sysmouse=no])
9594         fi
9595 AC_MSG_RESULT($cf_with_sysmouse)
9596 test "$cf_with_sysmouse" = yes && AC_DEFINE(USE_SYSMOUSE,1,[Define to 1 if we can/should use the sysmouse interface])
9597 fi
9598 ])dnl
9599 dnl ---------------------------------------------------------------------------
9600 dnl CF_WITH_SYSTYPE version: 1 updated: 2013/01/26 16:26:12
9601 dnl ---------------
9602 dnl For testing, override the derived host system-type which is used to decide
9603 dnl things such as the linker commands used to build shared libraries.  This is
9604 dnl normally chosen automatically based on the type of system which you are
9605 dnl building on.  We use it for testing the configure script.
9606 dnl
9607 dnl This is different from the --host option: it is used only for testing parts
9608 dnl of the configure script which would not be reachable with --host since that
9609 dnl relies on the build environment being real, rather than mocked up.
9610 AC_DEFUN([CF_WITH_SYSTYPE],[
9611 CF_CHECK_CACHE([AC_CANONICAL_SYSTEM])
9612 AC_ARG_WITH(system-type,
9613         [  --with-system-type=XXX  test: override derived host system-type],
9614 [AC_MSG_WARN(overriding system type to $withval)
9615         cf_cv_system_name=$withval
9616         host_os=$withval
9617 ])
9618 ])dnl
9619 dnl ---------------------------------------------------------------------------
9620 dnl CF_WITH_VALGRIND version: 1 updated: 2006/12/14 18:00:21
9621 dnl ----------------
9622 AC_DEFUN([CF_WITH_VALGRIND],[
9623 CF_NO_LEAKS_OPTION(valgrind,
9624         [  --with-valgrind         test: use valgrind],
9625         [USE_VALGRIND])
9626 ])dnl
9627 dnl ---------------------------------------------------------------------------
9628 dnl CF_WITH_VERSIONED_SYMS version: 10 updated: 2021/01/04 18:48:01
9629 dnl ----------------------
9630 dnl Use this when building shared library with ELF, to markup symbols with the
9631 dnl version identifier from the given input file.  Generally that identifier is
9632 dnl the same as the SONAME at which the symbol was first introduced.
9633 dnl
9634 dnl $1 = basename of the ".map" file (default $PACKAGE)
9635 AC_DEFUN([CF_WITH_VERSIONED_SYMS],
9636 [AC_REQUIRE([AC_PROG_FGREP])dnl
9637 AC_REQUIRE([AC_PROG_EGREP])dnl
9638
9639 AC_MSG_CHECKING(if versioned-symbols file should be used)
9640 AC_ARG_WITH(versioned-syms,
9641         [  --with-versioned-syms=X markup versioned symbols using ld],
9642         [with_versioned_syms=$withval],
9643         [with_versioned_syms=no])
9644 case "x$with_versioned_syms" in
9645 (xyes)
9646         with_versioned_syms='${top_srcdir}/package/ifelse($1,,${PACKAGE},[$1]).map'
9647         AC_SUBST(PACKAGE)
9648         ;;
9649 (xno)
9650         ;;
9651 (x/*)
9652         test -f "$with_versioned_syms" || AC_MSG_ERROR(expected a filename: $with_versioned_syms)
9653         ;;
9654 (*)
9655         test -f "$with_versioned_syms" || AC_MSG_ERROR(expected a filename: $with_versioned_syms)
9656         with_versioned_syms=`pwd`/"$with_versioned_syms"
9657         ;;
9658 esac
9659 AC_MSG_RESULT($with_versioned_syms)
9660
9661 RESULTING_SYMS=
9662 VERSIONED_SYMS=
9663 WILDCARD_SYMS=
9664
9665 if test "x$with_versioned_syms" != xno
9666 then
9667         RESULTING_SYMS=$with_versioned_syms
9668         case "x$MK_SHARED_LIB" in
9669         (*-Wl,*)
9670                 VERSIONED_SYMS="-Wl,--version-script,\${RESULTING_SYMS}"
9671                 MK_SHARED_LIB=`echo "$MK_SHARED_LIB" | sed -e "s%-Wl,%\\[$]{VERSIONED_SYMS} -Wl,%"`
9672                 CF_VERBOSE(MK_SHARED_LIB:  $MK_SHARED_LIB)
9673                 ;;
9674         (*-dy\ *)
9675                 VERSIONED_SYMS="-Wl,-M,\${RESULTING_SYMS}"
9676                 MK_SHARED_LIB=`echo "$MK_SHARED_LIB" | sed -e "s%-dy%\\[$]{VERSIONED_SYMS} -dy%"`
9677                 CF_VERBOSE(MK_SHARED_LIB:  $MK_SHARED_LIB)
9678                 ;;
9679         (*)
9680                 AC_MSG_WARN(this system does not support versioned-symbols)
9681                 ;;
9682         esac
9683
9684         # Linux ld can selectively override scope, e.g., of symbols beginning with
9685         # "_" by first declaring some as global, and then using a wildcard to
9686         # declare the others as local.  Some other loaders cannot do this.  Check
9687         # by constructing a (very) simple shared library and inspecting its
9688         # symbols.
9689         if test "x$VERSIONED_SYMS" != "x"
9690         then
9691                 AC_MSG_CHECKING(if wildcards can be used to selectively omit symbols)
9692                 WILDCARD_SYMS=no
9693
9694                 # make sources
9695                 rm -f conftest.*
9696
9697                 cat >conftest.ver <<EOF
9698 module_1.0 {
9699 global:
9700         globalf1;
9701 local:
9702         localf1;
9703 };
9704 module_2.0 {
9705 global:
9706         globalf2;
9707 local:
9708         localf2;
9709         _*;
9710 } module_1.0;
9711 submodule_1.0 {
9712 global:
9713         subglobalf1;
9714         _ismissing;
9715 local:
9716         sublocalf1;
9717 };
9718 submodule_2.0 {
9719 global:
9720         subglobalf2;
9721 local:
9722         sublocalf2;
9723         _*;
9724 } submodule_1.0;
9725 EOF
9726                 cat >conftest.$ac_ext <<EOF
9727 #line __oline__ "configure"
9728 int     _ismissing(void) { return 1; }
9729 int     _localf1(void) { return 1; }
9730 int     _localf2(void) { return 2; }
9731 int     globalf1(void) { return 1; }
9732 int     globalf2(void) { return 2; }
9733 int     _sublocalf1(void) { return 1; }
9734 int     _sublocalf2(void) { return 2; }
9735 int     subglobalf1(void) { return 1; }
9736 int     subglobalf2(void) { return 2; }
9737 EOF
9738                 cat >conftest.mk <<EOF
9739 CC=${CC}
9740 CFLAGS=${CFLAGS}
9741 CPPFLAGS=${CPPFLAGS}
9742 LDFLAGS=${LDFLAGS}
9743 LIBS=${LIBS}
9744 VERSIONED_SYMS=${VERSIONED_SYMS}
9745 RESULTING_SYMS=conftest.ver
9746 MK_SHARED_LIB=${MK_SHARED_LIB}
9747 conftest.so: conftest.$ac_cv_objext
9748                 \$(MK_SHARED_LIB) conftest.$ac_cv_objext
9749 EOF
9750
9751                 # compile source, make library
9752                 if make -f conftest.mk 2>&AC_FD_CC >/dev/null
9753                 then
9754                         # test for missing symbol in either Data or Text section
9755                         cf_missing="`nm -P conftest.so 2>&AC_FD_CC |${FGREP-fgrep} _ismissing | ${EGREP-egrep} '[[      ]][[DT]][[      ]]'`"
9756                         test -n "$cf_missing" && WILDCARD_SYMS=yes
9757                 fi
9758                 AC_MSG_RESULT($WILDCARD_SYMS)
9759                 rm -f conftest.*
9760         fi
9761 fi
9762 AC_SUBST(RESULTING_SYMS)
9763 AC_SUBST(VERSIONED_SYMS)
9764 AC_SUBST(WILDCARD_SYMS)
9765 ])dnl
9766 dnl ---------------------------------------------------------------------------
9767 dnl CF_WITH_X11_RGB version: 2 updated: 2019/12/31 08:53:54
9768 dnl ---------------
9769 dnl Handle configure option "--with-x11-rgb", setting these shell
9770 dnl variables:
9771 dnl
9772 dnl $RGB_PATH is the option value, used for finding the X11 rgb file.
9773 dnl $no_x11_rgb is a "#" (comment) if "--without-x11-rgb" is given.
9774 dnl
9775 dnl Most Linux's use this:
9776 dnl     /usr/share/X11/rgb.txt
9777 dnl Debian uses this:
9778 dnl     /etc/X11/rgb.txt
9779 dnl DragonFlyBSD ports uses this:
9780 dnl     /usr/pkg/lib/X11/rgb.txt
9781 dnl FreeBSD ports use these:
9782 dnl     /usr/local/lib/X11/rgb.txt
9783 dnl     /usr/local/share/X11/rgb.txt
9784 dnl Mandriva has these:
9785 dnl     /usr/lib/X11/rgb.txt
9786 dnl     /usr/lib64/X11/rgb.txt
9787 dnl NetBSD has these
9788 dnl     /usr/X11R7/lib/X11/rgb.txt
9789 dnl OpenSolaris uses
9790 dnl     32-bit:
9791 dnl     /usr/X11/etc/X11/rgb.txt
9792 dnl     /usr/X11/share/X11/rgb.txt
9793 dnl     /usr/X11/lib/X11/rgb.txt
9794 dnl OSX uses
9795 dnl             /opt/local/share/X11/rgb.txt (MacPorts)
9796 dnl             /opt/X11/share/X11/rgb.txt (non-ports)
9797 dnl     64-bit:
9798 dnl     /usr/X11/etc/X11/rgb.txt
9799 dnl     /usr/X11/share/X11/rgb.txt (perhaps)
9800 dnl     /usr/X11/lib/amd64/X11/rgb.txt
9801 dnl Solaris10 uses (in this order):
9802 dnl     /usr/openwin/lib/X11/rgb.txt
9803 dnl     /usr/X11/lib/X11/rgb.txt
9804 AC_DEFUN([CF_WITH_X11_RGB],[
9805 AC_MSG_CHECKING(for X11 rgb file)
9806 AC_ARG_WITH(x11-rgb,
9807         [  --with-x11-rgb=FILE   file containing X11 rgb information (EPREFIX/lib/X11/rgb.txt)],
9808         [RGB_PATH=$withval],
9809         [RGB_PATH=auto])
9810
9811 if test "x[$]RGB_PATH" = xauto
9812 then
9813         RGB_PATH='${exec_prefix}/lib/X11/rgb.txt'
9814         for cf_path in \
9815                 /opt/local/share/X11/rgb.txt \
9816                 /opt/X11/share/X11/rgb.txt \
9817                 /usr/share/X11/rgb.txt \
9818                 /usr/X11/share/X11/rgb.txt \
9819                 /usr/X11/lib/X11/rgb.txt \
9820                 /usr/lib/X11/rgb.txt \
9821                 /etc/X11/rgb.txt \
9822                 /usr/pkg/lib/X11/rgb.txt \
9823                 /usr/X11R7/lib/X11/rgb.txt \
9824                 /usr/X11R6/lib/X11/rgb.txt \
9825                 /usr/X11R5/lib/X11/rgb.txt \
9826                 /usr/X11R4/lib/X11/rgb.txt \
9827                 /usr/local/lib/X11/rgb.txt \
9828                 /usr/local/share/X11/rgb.txt \
9829                 /usr/lib64/X11/rgb.txt
9830         do
9831                 if test -f "$cf_path" ; then
9832                         RGB_PATH="$cf_path"
9833                         break
9834                 fi
9835         done
9836 else
9837         cf_path=$RGB_PATH
9838         CF_PATH_SYNTAX(cf_path)
9839 fi
9840
9841 AC_MSG_RESULT($RGB_PATH)
9842 AC_SUBST(RGB_PATH)
9843 AC_DEFINE_UNQUOTED(RGB_PATH,"$cf_path",[Define to the full pathname of rgb.txt])
9844
9845 no_x11_rgb=
9846 if test "$RGB_PATH" = no
9847 then
9848         no_x11_rgb="#"
9849 fi
9850 AC_SUBST(no_x11_rgb)
9851 ])dnl
9852 dnl ---------------------------------------------------------------------------
9853 dnl CF_XOPEN_SOURCE version: 60 updated: 2022/09/10 15:16:16
9854 dnl ---------------
9855 dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
9856 dnl or adapt to the vendor's definitions to get equivalent functionality,
9857 dnl without losing the common non-POSIX features.
9858 dnl
9859 dnl Parameters:
9860 dnl     $1 is the nominal value for _XOPEN_SOURCE
9861 dnl     $2 is the nominal value for _POSIX_C_SOURCE
9862 AC_DEFUN([CF_XOPEN_SOURCE],[
9863 AC_REQUIRE([AC_CANONICAL_HOST])
9864 AC_REQUIRE([CF_POSIX_VISIBLE])
9865
9866 if test "$cf_cv_posix_visible" = no; then
9867
9868 cf_XOPEN_SOURCE=ifelse([$1],,500,[$1])
9869 cf_POSIX_C_SOURCE=ifelse([$2],,199506L,[$2])
9870 cf_xopen_source=
9871
9872 case "$host_os" in
9873 (aix[[4-7]]*)
9874         cf_xopen_source="-D_ALL_SOURCE"
9875         ;;
9876 (msys)
9877         cf_XOPEN_SOURCE=600
9878         ;;
9879 (darwin[[0-8]].*)
9880         cf_xopen_source="-D_APPLE_C_SOURCE"
9881         ;;
9882 (darwin*)
9883         cf_xopen_source="-D_DARWIN_C_SOURCE"
9884         cf_XOPEN_SOURCE=
9885         ;;
9886 (freebsd*|dragonfly*|midnightbsd*)
9887         # 5.x headers associate
9888         #       _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L
9889         #       _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L
9890         cf_POSIX_C_SOURCE=200112L
9891         cf_XOPEN_SOURCE=600
9892         cf_xopen_source="-D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
9893         ;;
9894 (hpux11*)
9895         cf_xopen_source="-D_HPUX_SOURCE -D_XOPEN_SOURCE=500"
9896         ;;
9897 (hpux*)
9898         cf_xopen_source="-D_HPUX_SOURCE"
9899         ;;
9900 (irix[[56]].*)
9901         cf_xopen_source="-D_SGI_SOURCE"
9902         cf_XOPEN_SOURCE=
9903         ;;
9904 (linux*gnu|uclinux*|gnu*|mint*|k*bsd*-gnu|cygwin)
9905         CF_GNU_SOURCE($cf_XOPEN_SOURCE)
9906         ;;
9907 (minix*)
9908         cf_xopen_source="-D_NETBSD_SOURCE" # POSIX.1-2001 features are ifdef'd with this...
9909         ;;
9910 (mirbsd*)
9911         # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <sys/select.h> and other headers which use u_int / u_short types
9912         cf_XOPEN_SOURCE=
9913         CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
9914         ;;
9915 (netbsd*)
9916         cf_xopen_source="-D_NETBSD_SOURCE" # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
9917         ;;
9918 (openbsd[[6-9]]*)
9919         # OpenBSD 6.x has broken locale support, both compile-time and runtime.
9920         # see https://www.mail-archive.com/bugs@openbsd.org/msg13200.html
9921         # Abusing the conformance level is a workaround.
9922         AC_MSG_WARN(this system does not provide usable locale support)
9923         cf_xopen_source="-D_BSD_SOURCE"
9924         cf_XOPEN_SOURCE=700
9925         ;;
9926 (openbsd[[4-5]]*)
9927         # setting _XOPEN_SOURCE lower than 500 breaks g++ compile with wchar.h, needed for ncursesw
9928         cf_xopen_source="-D_BSD_SOURCE"
9929         cf_XOPEN_SOURCE=600
9930         ;;
9931 (openbsd*)
9932         # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
9933         ;;
9934 (osf[[45]]*)
9935         cf_xopen_source="-D_OSF_SOURCE"
9936         ;;
9937 (nto-qnx*)
9938         cf_xopen_source="-D_QNX_SOURCE"
9939         ;;
9940 (sco*)
9941         # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
9942         ;;
9943 (solaris2.*)
9944         cf_xopen_source="-D__EXTENSIONS__"
9945         cf_cv_xopen_source=broken
9946         ;;
9947 (sysv4.2uw2.*) # Novell/SCO UnixWare 2.x (tested on 2.1.2)
9948         cf_XOPEN_SOURCE=
9949         cf_POSIX_C_SOURCE=
9950         ;;
9951 (*)
9952         CF_TRY_XOPEN_SOURCE
9953         cf_save_xopen_cppflags="$CPPFLAGS"
9954         CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
9955         # Some of these niche implementations use copy/paste, double-check...
9956         CF_VERBOSE(checking if _POSIX_C_SOURCE inteferes)
9957         AC_TRY_COMPILE(CF__XOPEN_SOURCE_HEAD,CF__XOPEN_SOURCE_BODY,,[
9958                 AC_MSG_WARN(_POSIX_C_SOURCE definition is not usable)
9959                 CPPFLAGS="$cf_save_xopen_cppflags"])
9960         ;;
9961 esac
9962
9963 if test -n "$cf_xopen_source" ; then
9964         CF_APPEND_CFLAGS($cf_xopen_source,true)
9965 fi
9966
9967 dnl In anything but the default case, we may have system-specific setting
9968 dnl which is still not guaranteed to provide all of the entrypoints that
9969 dnl _XOPEN_SOURCE would yield.
9970 if test -n "$cf_XOPEN_SOURCE" && test -z "$cf_cv_xopen_source" ; then
9971         AC_MSG_CHECKING(if _XOPEN_SOURCE really is set)
9972         AC_TRY_COMPILE([#include <stdlib.h>],[
9973 #ifndef _XOPEN_SOURCE
9974 make an error
9975 #endif],
9976         [cf_XOPEN_SOURCE_set=yes],
9977         [cf_XOPEN_SOURCE_set=no])
9978         AC_MSG_RESULT($cf_XOPEN_SOURCE_set)
9979         if test "$cf_XOPEN_SOURCE_set" = yes
9980         then
9981                 AC_TRY_COMPILE([#include <stdlib.h>],[
9982 #if (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE
9983 make an error
9984 #endif],
9985                 [cf_XOPEN_SOURCE_set_ok=yes],
9986                 [cf_XOPEN_SOURCE_set_ok=no])
9987                 if test "$cf_XOPEN_SOURCE_set_ok" = no
9988                 then
9989                         AC_MSG_WARN(_XOPEN_SOURCE is lower than requested)
9990                 fi
9991         else
9992                 CF_TRY_XOPEN_SOURCE
9993         fi
9994 fi
9995 fi # cf_cv_posix_visible
9996 ])
9997 dnl ---------------------------------------------------------------------------
9998 dnl CF__SED_TRIMBLANKS version: 1 updated: 2021/01/02 09:31:20
9999 dnl ------------------
10000 dnl Trim something using sed, then trim extra whitespace
10001 dnl $1 = extra parameters, e.g., in CF_STRIP_G_OPT
10002 define([CF__SED_TRIMBLANKS],[sed ifelse($1,,,[$1] )-e 's%[[     ]]% %g' -e 's% [[ ]]*% %g' -e 's%^ %%' -e 's% [$]%%'])dnl
10003 dnl ---------------------------------------------------------------------------
10004 dnl CF__XOPEN_SOURCE_BODY version: 1 updated: 2022/09/10 15:17:35
10005 dnl ---------------------
10006 dnl body of test when test-compiling for _XOPEN_SOURCE check
10007 define([CF__XOPEN_SOURCE_BODY],
10008 [
10009 #ifndef _XOPEN_SOURCE
10010 make an error
10011 #endif
10012 ])
10013 dnl ---------------------------------------------------------------------------
10014 dnl CF__XOPEN_SOURCE_HEAD version: 1 updated: 2022/09/10 15:17:03
10015 dnl ---------------------
10016 dnl headers to include when test-compiling for _XOPEN_SOURCE check
10017 define([CF__XOPEN_SOURCE_HEAD],
10018 [
10019 #include <stdlib.h>
10020 #include <string.h>
10021 #include <sys/types.h>
10022 ])