]> ncurses.scripts.mit.edu Git - ncurses.git/blob - aclocal.m4
ncurses 6.4 - patch 20230107
[ncurses.git] / aclocal.m4
1 dnl***************************************************************************
2 dnl Copyright 2018-2022,2023 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.1025 2023/01/07 21:35:57 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: 4 updated: 2023/01/07 16:32:06
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_default 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_default 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: 19 updated: 2023/01/05 18:00:14
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 $ac_includes_default
680
681 #if defined(__cplusplus)
682
683 #ifdef HAVE_GXX_BUILTIN_H
684 #include <g++/builtin.h>
685 #elif HAVE_GPP_BUILTIN_H
686 #include <gpp/builtin.h>
687 #elif HAVE_BUILTIN_H
688 #include <builtin.h>
689 #endif
690
691 #else
692
693 #if $cf_cv_header_stdbool_h
694 #include <stdbool.h>
695 #endif
696
697 #endif
698
699 int main(void)
700 {
701         FILE *fp = fopen("cf_test.out", "w");
702         if (fp != 0) {
703                 bool x = true;
704                 if ((bool)(-x) >= 0)
705                         fputs("unsigned ", fp);
706                 if (sizeof(x) == sizeof(int))       fputs("int",  fp);
707                 else if (sizeof(x) == sizeof(char)) fputs("char", fp);
708                 else if (sizeof(x) == sizeof(short))fputs("short",fp);
709                 else if (sizeof(x) == sizeof(long)) fputs("long", fp);
710                 fclose(fp);
711         }
712         ${cf_cv_main_return:-return}(0);
713 }
714                 ],
715                 [cf_cv_type_of_bool=`cat cf_test.out`
716                  if test -z "$cf_cv_type_of_bool"; then
717                    cf_cv_type_of_bool=unknown
718                  fi],
719                 [cf_cv_type_of_bool=unknown],
720                 [
721                 case x$ac_cv_sizeof_bool in
722                 (x1) cf_cv_type_of_bool="unsigned char";;
723                 (x2) cf_cv_type_of_bool="unsigned short";;
724                 (x4) cf_cv_type_of_bool="unsigned int";;
725                 (x8) cf_cv_type_of_bool="unsigned long";;
726                 (*)  cf_cv_type_of_bool=unknown;;
727                 esac
728                 ])
729         rm -f cf_test.out
730 ])
731
732 if test "$cf_cv_type_of_bool" = unknown ; then
733         case .$NCURSES_BOOL in
734         (.auto|.) NCURSES_BOOL=unsigned;;
735         esac
736         AC_MSG_WARN(Assuming $NCURSES_BOOL for type of bool)
737         cf_cv_type_of_bool=$NCURSES_BOOL
738 fi
739 ])dnl
740 dnl ---------------------------------------------------------------------------
741 dnl CF_BUILD_CC version: 11 updated: 2022/12/04 15:40:08
742 dnl -----------
743 dnl If we're cross-compiling, allow the user to override the tools and their
744 dnl options.  The configure script is oriented toward identifying the host
745 dnl compiler, etc., but we need a build compiler to generate parts of the
746 dnl source.
747 dnl
748 dnl $1 = default for $CPPFLAGS
749 dnl $2 = default for $LIBS
750 AC_DEFUN([CF_BUILD_CC],[
751 CF_ACVERSION_CHECK(2.52,,
752         [AC_REQUIRE([CF_PROG_EXT])])
753 if test "$cross_compiling" = yes ; then
754
755         # defaults that we might want to override
756         : ${BUILD_CFLAGS:=''}
757         : ${BUILD_CPPFLAGS:='ifelse([$1],,,[$1])'}
758         : ${BUILD_LDFLAGS:=''}
759         : ${BUILD_LIBS:='ifelse([$2],,,[$2])'}
760         : ${BUILD_EXEEXT:='$x'}
761         : ${BUILD_OBJEXT:='o'}
762
763         AC_ARG_WITH(build-cc,
764                 [  --with-build-cc=XXX     the build C compiler ($BUILD_CC)],
765                 [BUILD_CC="$withval"],
766                 [AC_CHECK_PROGS(BUILD_CC, [gcc clang c99 c89 cc cl],none)])
767         AC_MSG_CHECKING(for native build C compiler)
768         AC_MSG_RESULT($BUILD_CC)
769
770         AC_MSG_CHECKING(for native build C preprocessor)
771         AC_ARG_WITH(build-cpp,
772                 [  --with-build-cpp=XXX    the build C preprocessor ($BUILD_CPP)],
773                 [BUILD_CPP="$withval"],
774                 [BUILD_CPP='${BUILD_CC} -E'])
775         AC_MSG_RESULT($BUILD_CPP)
776
777         AC_MSG_CHECKING(for native build C flags)
778         AC_ARG_WITH(build-cflags,
779                 [  --with-build-cflags=XXX the build C compiler-flags ($BUILD_CFLAGS)],
780                 [BUILD_CFLAGS="$withval"])
781         AC_MSG_RESULT($BUILD_CFLAGS)
782
783         AC_MSG_CHECKING(for native build C preprocessor-flags)
784         AC_ARG_WITH(build-cppflags,
785                 [  --with-build-cppflags=XXX the build C preprocessor-flags ($BUILD_CPPFLAGS)],
786                 [BUILD_CPPFLAGS="$withval"])
787         AC_MSG_RESULT($BUILD_CPPFLAGS)
788
789         AC_MSG_CHECKING(for native build linker-flags)
790         AC_ARG_WITH(build-ldflags,
791                 [  --with-build-ldflags=XXX the build linker-flags ($BUILD_LDFLAGS)],
792                 [BUILD_LDFLAGS="$withval"])
793         AC_MSG_RESULT($BUILD_LDFLAGS)
794
795         AC_MSG_CHECKING(for native build linker-libraries)
796         AC_ARG_WITH(build-libs,
797                 [  --with-build-libs=XXX   the build libraries (${BUILD_LIBS})],
798                 [BUILD_LIBS="$withval"])
799         AC_MSG_RESULT($BUILD_LIBS)
800
801         # this assumes we're on Unix.
802         BUILD_EXEEXT=
803         BUILD_OBJEXT=o
804
805         : ${BUILD_CC:='${CC}'}
806
807         AC_MSG_CHECKING(if the build-compiler "$BUILD_CC" works)
808
809         cf_save_crossed=$cross_compiling
810         cf_save_ac_link=$ac_link
811         cross_compiling=no
812         cf_build_cppflags=$BUILD_CPPFLAGS
813         test "$cf_build_cppflags" = "#" && cf_build_cppflags=
814         ac_link='$BUILD_CC -o "conftest$ac_exeext" $BUILD_CFLAGS $cf_build_cppflags $BUILD_LDFLAGS "conftest.$ac_ext" $BUILD_LIBS >&AS_MESSAGE_LOG_FD'
815
816         AC_TRY_RUN([#include <stdio.h>
817                 int main(int argc, char *argv[])
818                 {
819                         ${cf_cv_main_return:-return}(argc < 0 || argv == 0 || argv[0] == 0);
820                 }
821         ],
822                 cf_ok_build_cc=yes,
823                 cf_ok_build_cc=no,
824                 cf_ok_build_cc=unknown)
825
826         cross_compiling=$cf_save_crossed
827         ac_link=$cf_save_ac_link
828
829         AC_MSG_RESULT($cf_ok_build_cc)
830
831         if test "$cf_ok_build_cc" != yes
832         then
833                 AC_MSG_ERROR([Cross-build requires two compilers.
834 Use --with-build-cc to specify the native compiler.])
835         fi
836
837 else
838         : ${BUILD_CC:='${CC}'}
839         : ${BUILD_CPP:='${CPP}'}
840         : ${BUILD_CFLAGS:='${CFLAGS}'}
841         : ${BUILD_CPPFLAGS:='${CPPFLAGS}'}
842         : ${BUILD_LDFLAGS:='${LDFLAGS}'}
843         : ${BUILD_LIBS:='${LIBS}'}
844         : ${BUILD_EXEEXT:='$x'}
845         : ${BUILD_OBJEXT:='o'}
846 fi
847
848 AC_SUBST(BUILD_CC)
849 AC_SUBST(BUILD_CPP)
850 AC_SUBST(BUILD_CFLAGS)
851 AC_SUBST(BUILD_CPPFLAGS)
852 AC_SUBST(BUILD_LDFLAGS)
853 AC_SUBST(BUILD_LIBS)
854 AC_SUBST(BUILD_EXEEXT)
855 AC_SUBST(BUILD_OBJEXT)
856 ])dnl
857 dnl ---------------------------------------------------------------------------
858 dnl CF_C11_NORETURN version: 3 updated: 2021/03/28 11:36:23
859 dnl ---------------
860 AC_DEFUN([CF_C11_NORETURN],
861 [
862 AC_MSG_CHECKING(if you want to use C11 _Noreturn feature)
863 CF_ARG_ENABLE(stdnoreturn,
864         [  --enable-stdnoreturn    enable C11 _Noreturn feature for diagnostics],
865         [enable_stdnoreturn=yes],
866         [enable_stdnoreturn=no])
867 AC_MSG_RESULT($enable_stdnoreturn)
868
869 if test $enable_stdnoreturn = yes; then
870 AC_CACHE_CHECK([for C11 _Noreturn feature], cf_cv_c11_noreturn,
871         [AC_TRY_COMPILE([
872 #include <stdio.h>
873 #include <stdlib.h>
874 #include <stdnoreturn.h>
875 static _Noreturn void giveup(void) { exit(0); }
876         ],
877         [if (feof(stdin)) giveup()],
878         cf_cv_c11_noreturn=yes,
879         cf_cv_c11_noreturn=no)
880         ])
881 else
882         cf_cv_c11_noreturn=no,
883 fi
884
885 if test "$cf_cv_c11_noreturn" = yes; then
886         AC_DEFINE(HAVE_STDNORETURN_H, 1,[Define if <stdnoreturn.h> header is available and working])
887         AC_DEFINE_UNQUOTED(STDC_NORETURN,_Noreturn,[Define if C11 _Noreturn keyword is supported])
888         HAVE_STDNORETURN_H=1
889 else
890         HAVE_STDNORETURN_H=0
891 fi
892
893 AC_SUBST(HAVE_STDNORETURN_H)
894 AC_SUBST(STDC_NORETURN)
895 ])dnl
896 dnl ---------------------------------------------------------------------------
897 dnl CF_CC_ENV_FLAGS version: 10 updated: 2020/12/31 18:40:20
898 dnl ---------------
899 dnl Check for user's environment-breakage by stuffing CFLAGS/CPPFLAGS content
900 dnl into CC.  This will not help with broken scripts that wrap the compiler
901 dnl with options, but eliminates a more common category of user confusion.
902 dnl
903 dnl In particular, it addresses the problem of being able to run the C
904 dnl preprocessor in a consistent manner.
905 dnl
906 dnl Caveat: this also disallows blanks in the pathname for the compiler, but
907 dnl the nuisance of having inconsistent settings for compiler and preprocessor
908 dnl outweighs that limitation.
909 AC_DEFUN([CF_CC_ENV_FLAGS],
910 [
911 # This should have been defined by AC_PROG_CC
912 : "${CC:=cc}"
913
914 AC_MSG_CHECKING(\$CFLAGS variable)
915 case "x$CFLAGS" in
916 (*-[[IUD]]*)
917         AC_MSG_RESULT(broken)
918         AC_MSG_WARN(your environment uses the CFLAGS variable to hold CPPFLAGS options)
919         cf_flags="$CFLAGS"
920         CFLAGS=
921         for cf_arg in $cf_flags
922         do
923                 CF_ADD_CFLAGS($cf_arg)
924         done
925         ;;
926 (*)
927         AC_MSG_RESULT(ok)
928         ;;
929 esac
930
931 AC_MSG_CHECKING(\$CC variable)
932 case "$CC" in
933 (*[[\ \ ]]-*)
934         AC_MSG_RESULT(broken)
935         AC_MSG_WARN(your environment uses the CC variable to hold CFLAGS/CPPFLAGS options)
936         # humor him...
937         cf_prog=`echo "$CC" | sed -e 's/        / /g' -e 's/[[ ]]* / /g' -e 's/[[ ]]*[[ ]]-[[^ ]].*//'`
938         cf_flags=`echo "$CC" | ${AWK:-awk} -v prog="$cf_prog" '{ printf("%s", [substr]([$]0,1+length(prog))); }'`
939         CC="$cf_prog"
940         for cf_arg in $cf_flags
941         do
942                 case "x$cf_arg" in
943                 (x-[[IUDfgOW]]*)
944                         CF_ADD_CFLAGS($cf_arg)
945                         ;;
946                 (*)
947                         CC="$CC $cf_arg"
948                         ;;
949                 esac
950         done
951         CF_VERBOSE(resulting CC: '$CC')
952         CF_VERBOSE(resulting CFLAGS: '$CFLAGS')
953         CF_VERBOSE(resulting CPPFLAGS: '$CPPFLAGS')
954         ;;
955 (*)
956         AC_MSG_RESULT(ok)
957         ;;
958 esac
959 ])dnl
960 dnl ---------------------------------------------------------------------------
961 dnl CF_CFG_DEFAULTS version: 16 updated: 2021/01/04 19:33:05
962 dnl ---------------
963 dnl Determine the default configuration into which we'll install ncurses.  This
964 dnl can be overridden by the user's command-line options.  There's two items to
965 dnl look for:
966 dnl     1. the prefix (e.g., /usr)
967 dnl     2. the header files (e.g., /usr/include/ncurses)
968 dnl We'll look for a previous installation of ncurses and use the same defaults.
969 dnl
970 dnl We don't use AC_PREFIX_DEFAULT, because it gets evaluated too soon, and
971 dnl we don't use AC_PREFIX_PROGRAM, because we cannot distinguish ncurses's
972 dnl programs from a vendor's.
973 AC_DEFUN([CF_CFG_DEFAULTS],
974 [AC_REQUIRE([AC_PROG_FGREP])dnl
975
976 AC_MSG_CHECKING(for prefix)
977 if test "x$prefix" = "xNONE" ; then
978         case "$cf_cv_system_name" in
979                 # non-vendor systems don't have a conflict
980         (openbsd*|freebsd*|mirbsd*|linux*|cygwin*|msys*|k*bsd*-gnu|mingw*)
981                 prefix=/usr
982                 ;;
983         (*)     prefix=$ac_default_prefix
984                 ;;
985         esac
986 fi
987 AC_MSG_RESULT($prefix)
988
989 if test "x$prefix" = "xNONE" ; then
990 AC_MSG_CHECKING(for default include-directory)
991 test -n "$verbose" && echo 1>&AC_FD_MSG
992 for cf_symbol in \
993         "$includedir" \
994         "$includedir/ncurses" \
995         "$prefix/include" \
996         "$prefix/include/ncurses" \
997         /usr/local/include \
998         /usr/local/include/ncurses \
999         /usr/include \
1000         /usr/include/ncurses
1001 do
1002         cf_dir=`eval echo "$cf_symbol"`
1003         if test -f "$cf_dir/curses.h" ; then
1004         if ( ${FGREP-fgrep} NCURSES_VERSION "$cf_dir/curses.h" >/dev/null 2>&1 ) ; then
1005                 includedir="$cf_symbol"
1006                 test -n "$verbose"  && echo $ECHO_N "   found " 1>&AC_FD_MSG
1007                 break
1008         fi
1009         fi
1010         test -n "$verbose"  && echo "   tested $cf_dir" 1>&AC_FD_MSG
1011 done
1012 AC_MSG_RESULT($includedir)
1013 fi
1014 ])dnl
1015 dnl ---------------------------------------------------------------------------
1016 dnl CF_CGETENT version: 6 updated: 2017/01/21 11:06:25
1017 dnl ----------
1018 dnl Check if the terminal-capability database functions are available.  If not,
1019 dnl ncurses has a much-reduced version.
1020 AC_DEFUN([CF_CGETENT],[
1021 AC_CACHE_CHECK(for terminal-capability database functions,cf_cv_cgetent,[
1022 AC_TRY_LINK([
1023 #include <stdlib.h>],[
1024         char temp[128];
1025         char *buf = temp;
1026         char *db_array = temp;
1027         cgetent(&buf, &db_array, "vt100");
1028         cgetcap(buf, "tc", '=');
1029         cgetmatch(buf, "tc");
1030         ],
1031         [cf_cv_cgetent=yes],
1032         [cf_cv_cgetent=no])
1033 ])
1034
1035 if test "$cf_cv_cgetent" = yes
1036 then
1037         AC_DEFINE(HAVE_BSD_CGETENT,1,[Define to 1 if we have BSD cgetent])
1038 AC_CACHE_CHECK(if cgetent uses const parameter,cf_cv_cgetent_const,[
1039 AC_TRY_LINK([
1040 #pragma GCC diagnostic error "-Wincompatible-pointer-types-discards-qualifiers"
1041 #include <stdlib.h>],[
1042         char temp[128];
1043         char *buf = temp;
1044 #ifndef _NETBSD_SOURCE                  /* given, since April 2004 in stdlib.h */
1045         const char *db_array = temp;
1046         cgetent(&buf, &db_array, "vt100");
1047 #endif
1048         cgetcap(buf, "tc", '=');
1049         cgetmatch(buf, "tc");
1050         ],
1051         [cf_cv_cgetent_const=yes],
1052         [cf_cv_cgetent_const=no])
1053 ])
1054         if test "$cf_cv_cgetent_const" = yes
1055         then
1056                 AC_DEFINE_UNQUOTED(CGETENT_CONST,const,[Define to const if needed for some BSD cgetent variations])
1057         fi
1058 fi
1059 ])dnl
1060 dnl ---------------------------------------------------------------------------
1061 dnl CF_CHECK_CACHE version: 13 updated: 2020/12/31 10:54:15
1062 dnl --------------
1063 dnl Check if we're accidentally using a cache from a different machine.
1064 dnl Derive the system name, as a check for reusing the autoconf cache.
1065 dnl
1066 dnl If we've packaged config.guess and config.sub, run that (since it does a
1067 dnl better job than uname).  Normally we'll use AC_CANONICAL_HOST, but allow
1068 dnl an extra parameter that we may override, e.g., for AC_CANONICAL_SYSTEM
1069 dnl which is useful in cross-compiles.
1070 dnl
1071 dnl Note: we would use $ac_config_sub, but that is one of the places where
1072 dnl autoconf 2.5x broke compatibility with autoconf 2.13
1073 AC_DEFUN([CF_CHECK_CACHE],
1074 [
1075 if test -f "$srcdir/config.guess" || test -f "$ac_aux_dir/config.guess" ; then
1076         ifelse([$1],,[AC_CANONICAL_HOST],[$1])
1077         system_name="$host_os"
1078 else
1079         system_name="`(uname -s -r) 2>/dev/null`"
1080         if test -z "$system_name" ; then
1081                 system_name="`(hostname) 2>/dev/null`"
1082         fi
1083 fi
1084 test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name",[Define to the system name.])
1085 AC_CACHE_VAL(cf_cv_system_name,[cf_cv_system_name="$system_name"])
1086
1087 test -z "$system_name" && system_name="$cf_cv_system_name"
1088 test -n "$cf_cv_system_name" && AC_MSG_RESULT(Configuring for $cf_cv_system_name)
1089
1090 if test ".$system_name" != ".$cf_cv_system_name" ; then
1091         AC_MSG_RESULT(Cached system name ($system_name) does not agree with actual ($cf_cv_system_name))
1092         AC_MSG_ERROR("Please remove config.cache and try again.")
1093 fi
1094 ])dnl
1095 dnl ---------------------------------------------------------------------------
1096 dnl CF_CHECK_ENVIRON version: 3 updated: 2010/05/26 16:44:57
1097 dnl ----------------
1098 dnl Check for data that is usually declared in <unistd.h>, e.g., the 'environ'
1099 dnl variable.  Define a DECL_xxx symbol if we must declare it ourselves.
1100 dnl
1101 dnl $1 = the name to check
1102 dnl $2 = the assumed type
1103 AC_DEFUN([CF_CHECK_ENVIRON],
1104 [
1105 AC_CACHE_CHECK(if external $1 is declared, cf_cv_dcl_$1,[
1106     AC_TRY_COMPILE([
1107 #ifdef HAVE_STDLIB_H
1108 #include <stdlib.h>
1109 #endif
1110 #include <unistd.h> ],
1111     ifelse([$2],,int,[$2]) x = (ifelse([$2],,int,[$2])) $1,
1112     [cf_cv_dcl_$1=yes],
1113     [cf_cv_dcl_$1=no])
1114 ])
1115
1116 if test "$cf_cv_dcl_$1" = no ; then
1117     CF_UPPER(cf_result,decl_$1)
1118     AC_DEFINE_UNQUOTED($cf_result)
1119 fi
1120
1121 # It's possible (for near-UNIX clones) that the data doesn't exist
1122 CF_CHECK_EXTERN_DATA($1,ifelse([$2],,int,[$2]))
1123 ])dnl
1124 dnl ---------------------------------------------------------------------------
1125 dnl CF_CHECK_ERRNO version: 13 updated: 2020/03/10 18:53:47
1126 dnl --------------
1127 dnl Check for data that is usually declared in <stdio.h> or <errno.h>, e.g.,
1128 dnl the 'errno' variable.  Define a DECL_xxx symbol if we must declare it
1129 dnl ourselves.
1130 dnl
1131 dnl $1 = the name to check
1132 dnl $2 = the assumed type
1133 AC_DEFUN([CF_CHECK_ERRNO],
1134 [
1135 AC_CACHE_CHECK(if external $1 is declared, cf_cv_dcl_$1,[
1136         AC_TRY_COMPILE([
1137 #ifdef HAVE_STDLIB_H
1138 #include <stdlib.h>
1139 #endif
1140 #include <stdio.h>
1141 #include <sys/types.h>
1142 #include <errno.h> ],
1143         ifelse([$2],,int,[$2]) x = (ifelse([$2],,int,[$2])) $1; (void)x,
1144         [cf_cv_dcl_$1=yes],
1145         [cf_cv_dcl_$1=no])
1146 ])
1147
1148 if test "$cf_cv_dcl_$1" = no ; then
1149         CF_UPPER(cf_result,decl_$1)
1150         AC_DEFINE_UNQUOTED($cf_result)
1151 fi
1152
1153 # It's possible (for near-UNIX clones) that the data doesn't exist
1154 CF_CHECK_EXTERN_DATA($1,ifelse([$2],,int,[$2]))
1155 ])dnl
1156 dnl ---------------------------------------------------------------------------
1157 dnl CF_CHECK_EXTERN_DATA version: 5 updated: 2021/09/04 06:35:04
1158 dnl --------------------
1159 dnl Check for existence of external data in the current set of libraries.  If
1160 dnl we can modify it, it is real enough.
1161 dnl $1 = the name to check
1162 dnl $2 = its type
1163 AC_DEFUN([CF_CHECK_EXTERN_DATA],
1164 [
1165 AC_CACHE_CHECK(if external $1 exists, cf_cv_have_$1,[
1166         AC_TRY_LINK([
1167 #undef $1
1168 extern $2 $1;
1169 ],
1170         [$1 = 2],
1171         [cf_cv_have_$1=yes],
1172         [cf_cv_have_$1=no])
1173 ])
1174
1175 if test "$cf_cv_have_$1" = yes ; then
1176         CF_UPPER(cf_result,have_$1)
1177         AC_DEFINE_UNQUOTED($cf_result)
1178 fi
1179
1180 ])dnl
1181 dnl ---------------------------------------------------------------------------
1182 dnl CF_CHECK_FVISIBILITY version: 2 updated: 2020/04/04 16:16:13
1183 dnl --------------------
1184 dnl Check whether the compiler understands -fvisibility=hidden
1185 dnl
1186 dnl $1 = compiler
1187 dnl $2 = compiler-flags variable name
1188 dnl $3 = cache variable to set
1189 AC_DEFUN([CF_CHECK_FVISIBILITY],[
1190 AC_CACHE_CHECK(if $1 -fvisibility=hidden option works,$3,[
1191     cf_save_cflags="[$]$2"
1192     $2="[$]$2 -fvisibility=hidden"
1193     AC_TRY_LINK([
1194 __attribute__ ((visibility("default"))) int somefunc() {return 42;}
1195         ],[
1196         if (somefunc()) return 1;
1197 ],
1198     [$3=yes],
1199     [$3=no])
1200     $2=$cf_save_cflags
1201 ])
1202 ])dnl
1203 dnl ---------------------------------------------------------------------------
1204 dnl CF_CHECK_GETENV version: 3 updated: 2023/01/05 17:47:56
1205 dnl ---------------
1206 dnl Check if repeated getenv calls return the same pointer, e.g., it does not
1207 dnl discard the previous pointer when returning a new one.
1208 AC_DEFUN([CF_CHECK_GETENV],
1209 [
1210 AC_REQUIRE([CF_CHECK_ENVIRON])
1211 AC_CHECK_FUNC( getenv, ,, AC_MSG_ERROR(getenv not found) )
1212 AC_CHECK_FUNCS( putenv setenv strdup )
1213 AC_CACHE_CHECK(if getenv returns consistent values,cf_cv_consistent_getenv,[
1214 AC_TRY_RUN([
1215 $ac_includes_default
1216
1217 #if defined(HAVE_ENVIRON) && defined(DECL_ENVIRON) && !defined(environ)
1218 extern char **environ;  /* POSIX, but some systems are not... */
1219 #endif
1220
1221 #if defined(HAVE_STRDUP)
1222 #define str_alloc(s) strdup(s)
1223 #else
1224 #define str_alloc(s) strcpy(malloc(strlen(s) + 1, s))
1225 #endif
1226
1227 static void set_value(const char *name, const char *value)
1228 {
1229 #if defined(HAVE_SETENV)
1230         setenv(name, value, 1);
1231 #elif defined(HAVE_PUTENV)
1232         char buffer[1024];
1233         sprintf(buffer, "%s=%s", name, value);
1234         putenv(str_alloc(buffer));
1235 #else
1236 #error neither putenv/setenv found
1237 #endif
1238 }
1239 int main(void)
1240 {
1241         int pass;
1242         size_t numenv, limit, j;
1243         char **mynames;
1244         char **myvalues;
1245         char **mypointer;
1246         char *equals;
1247         for (numenv = 0; environ[numenv]; ++numenv) ;
1248         limit = numenv + 10;
1249         mynames = (char **) calloc(limit + 1, sizeof(char *));
1250         myvalues = (char **) calloc(limit + 1, sizeof(char *));
1251         mypointer = (char **) calloc(limit + 1, sizeof(char *));
1252 #if defined(HAVE_ENVIRON)
1253         for (j = 0; environ[j]; ++j) {
1254                 mynames[j] = str_alloc(environ[j]);
1255                 equals = strchr(mynames[j], '=');
1256                 if (equals != 0) {
1257                         *equals++ = '\\0';
1258                         myvalues[j] = str_alloc(equals);
1259                 } else {
1260                         myvalues[j] = str_alloc("");
1261                 }
1262         }
1263 #endif
1264         for (j = numenv; j < limit; ++j) {
1265                 char name[80];
1266                 char value[80];
1267                 size_t found;
1268                 size_t k = 0;
1269                 do {
1270                         size_t jk;
1271                         found = 0;
1272                         sprintf(name, "TERM%lu", (unsigned long) k);
1273                         for (jk = 0; jk < j; ++jk) {
1274                                 if (!strcmp(name, mynames[jk])) {
1275                                         found = 1;
1276                                         ++k;
1277                                         break;
1278                                 }
1279                         }
1280                 } while (found);
1281                 sprintf(value, "%lu:%p", (unsigned long) k, &mynames[j]);
1282                 set_value(name, value);
1283                 mynames[j] = str_alloc(name);
1284                 myvalues[j] = str_alloc(value);
1285         }
1286         for (pass = 0; pass < 3; ++pass) {
1287                 for (j = 0; j < limit; ++j) {
1288                         char *value = getenv(mynames[j]);
1289                         if (pass) {
1290                                 if (value == 0) {
1291                                         fprintf(stderr, "getenv returned null for %s\\n", mynames[j]);
1292                                         ${cf_cv_main_return:-return}(1);
1293                                 } else if (value != mypointer[j]) {
1294                                         fprintf(stderr, "getenv returned different pointer for %s\\n", mynames[j]);
1295                                         ${cf_cv_main_return:-return}(1);
1296                                 } else if (strcmp(value, myvalues[j])) {
1297                                         fprintf(stderr, "getenv returned different value for %s\\n", mynames[j]);
1298                                         ${cf_cv_main_return:-return}(1);
1299                                 }
1300                         } else {
1301                                 size_t k;
1302                                 mypointer[j] = value;
1303                                 for (k = 0; k < j; ++k) {
1304                                         if (mypointer[j] == mypointer[k]) {
1305                                                 fprintf(stderr, "getenv returned same pointer for %s and %s\\n", mynames[j], mynames[k]);
1306                                                 ${cf_cv_main_return:-return}(1);
1307                                         }
1308                                 }
1309                         }
1310                 }
1311         }
1312         ${cf_cv_main_return:-return}(0);
1313 }
1314 ],
1315 [cf_cv_consistent_getenv=yes],
1316 [cf_cv_consistent_getenv=no],
1317 [cf_cv_consistent_getenv=unknown])
1318 ])
1319
1320 if test "x$cf_cv_consistent_getenv" = xno
1321 then
1322         AC_DEFINE(HAVE_CONSISTENT_GETENV,1,[Define to 1 if getenv repeatably returns the same value for a given name])
1323 fi
1324 ])dnl
1325 dnl ---------------------------------------------------------------------------
1326 dnl CF_CHECK_GNAT_VERSION version: 4 updated: 2021/01/01 13:31:04
1327 dnl ---------------------
1328 AC_DEFUN([CF_CHECK_GNAT_VERSION],
1329 [
1330 AC_REQUIRE([CF_GNAT_VERSION])
1331 case "$cf_cv_gnat_version" in
1332 (3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*|[[1-9]][[0-9]].[[0-9]]*|20[[0-9]][[0-9]])
1333         cf_cv_prog_gnat_correct=yes
1334         ;;
1335 (*)
1336         AC_MSG_WARN(Unsupported GNAT version $cf_cv_gnat_version. We require 3.11 or better. Disabling Ada95 binding.)
1337         cf_cv_prog_gnat_correct=no
1338         ;;
1339 esac
1340 ])
1341 dnl ---------------------------------------------------------------------------
1342 dnl CF_CHECK_GPM_WGETCH version: 6 updated: 2021/01/04 18:48:01
1343 dnl -------------------
1344 dnl Check if GPM is already linked with curses.  If so - and if the linkage
1345 dnl is not "weak" - warn about this because it can create problems linking
1346 dnl applications with ncurses.
1347 AC_DEFUN([CF_CHECK_GPM_WGETCH],[
1348 AC_REQUIRE([AC_PROG_EGREP])dnl
1349
1350 AC_CHECK_LIB(gpm,Gpm_Wgetch,[
1351
1352 AC_CACHE_CHECK(if GPM is weakly bound to curses library, cf_cv_check_gpm_wgetch,[
1353 cf_cv_check_gpm_wgetch=unknown
1354 if test "$cross_compiling" != yes ; then
1355
1356 cat >conftest.$ac_ext <<CF_EOF
1357 #include <gpm.h>
1358 int main(void)
1359 {
1360         Gpm_Wgetch();
1361         ${cf_cv_main_return:-return}(0);
1362 }
1363 CF_EOF
1364
1365         cf_save_LIBS="$LIBS"
1366         # This only works if we can look at the symbol table.  If a shared
1367         # library is stripped for install, we cannot use that.  So we're forced
1368         # to rely on the static library, noting that some packagers may not
1369         # include it.
1370         LIBS="-static -lgpm -dynamic $LIBS"
1371         if AC_TRY_EVAL(ac_compile) ; then
1372                 if AC_TRY_EVAL(ac_link) ; then
1373                         cf_cv_check_gpm_wgetch="`nm \"conftest$ac_exeext\" | ${EGREP-egrep} '\<wgetch\>' | ${EGREP-egrep} '\<[[vVwW]]\>'`"
1374                         test -n "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=yes
1375                         test -z "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=no
1376                 fi
1377         fi
1378         rm -rf ./conftest*
1379         LIBS="$cf_save_LIBS"
1380 fi
1381 ])
1382
1383 if test "$cf_cv_check_gpm_wgetch" != yes ; then
1384         AC_MSG_WARN(GPM library is already linked with curses - read the FAQ)
1385 fi
1386 ])])dnl
1387 dnl ---------------------------------------------------------------------------
1388 dnl CF_CHECK_LIBSSP version: 1 updated: 2021/10/30 10:40:19
1389 dnl ---------------
1390 dnl Check if libssp is needed, e.g., to work around misconfigured libraries
1391 dnl used in cross-compiling to MinGW.
1392 AC_DEFUN([CF_CHECK_LIBSSP],[
1393 AC_CACHE_CHECK(if ssp library is needed,cf_cv_need_libssp,[
1394 AC_TRY_LINK([
1395 #include <sys/types.h>
1396 #include <dirent.h>
1397 ],[
1398        DIR *dp = opendir(".");
1399 ],cf_cv_need_libssp=no,[
1400         cf_save_LIBS="$LIBS"
1401         LIBS="$LIBS -lssp"
1402         AC_TRY_LINK([
1403 #include <sys/types.h>
1404 #include <dirent.h>
1405         ],[
1406                    DIR *dp = opendir(".");
1407         ],cf_cv_need_libssp=yes,
1408           cf_cv_need_libssp=maybe)
1409         LIBS="$cf_save_LIBS"
1410 ])dnl
1411 ])
1412
1413 if test "x$cf_cv_need_libssp" = xyes
1414 then
1415         CF_ADD_LIB(ssp)
1416 fi
1417 ])dnl
1418 dnl ---------------------------------------------------------------------------
1419 dnl CF_CHECK_LIBTOOL_VERSION version: 2 updated: 2021/05/01 16:24:34
1420 dnl ------------------------
1421 dnl Show the version of libtool
1422 dnl
1423 dnl Save the version in a cache variable - this is not entirely a good thing,
1424 dnl but the version string from libtool is very ugly, and for bug reports it
1425 dnl might be useful to have the original string.
1426 dnl
1427 dnl There is an imitation in OpenBSD, which has no apparent use other than to
1428 dnl deny that it is GNU libtool.  Just ignore it.
1429 AC_DEFUN([CF_CHECK_LIBTOOL_VERSION],[
1430 if test -n "$LIBTOOL" && test "$LIBTOOL" != none
1431 then
1432         AC_MSG_CHECKING(version of $LIBTOOL)
1433         CF_LIBTOOL_VERSION
1434         AC_MSG_RESULT($cf_cv_libtool_version)
1435         if test -n "$cf_cv_libtool_version"
1436         then
1437                 cf_check_libtool_version=`$LIBTOOL --version 2>&1 | sed -e '/^$/d' -e 's,[[()]],...,g' -e 's,[[ ]],-,g' -e '2,$d'`
1438                 case "x$cf_check_libtool_version" in
1439                 (*...GNU-libtool...*)
1440                         ;;
1441                 (*)
1442                         AC_MSG_ERROR(This is not GNU libtool)
1443                         ;;
1444                 esac
1445         else
1446                 AC_MSG_ERROR(No version found for $LIBTOOL)
1447         fi
1448 else
1449         AC_MSG_ERROR(GNU libtool has not been found)
1450 fi
1451 ])dnl
1452 dnl ---------------------------------------------------------------------------
1453 dnl CF_CHECK_WCHAR_H version: 3 updated: 2021/01/01 13:31:04
1454 dnl ----------------
1455 dnl Check if wchar.h can be used, i.e., without defining _XOPEN_SOURCE_EXTENDED
1456 AC_DEFUN([CF_CHECK_WCHAR_H],[
1457 AC_CHECK_HEADERS( \
1458 wchar.h \
1459 wctype.h \
1460 )
1461 AC_CACHE_CHECK(if wchar.h can be used as is,cf_cv_wchar_h_okay,[
1462 AC_TRY_COMPILE(
1463 [
1464 #include <stdlib.h>
1465 #ifdef HAVE_WCHAR_H
1466 #include <wchar.h>
1467 #endif
1468 #ifdef HAVE_WCTYPE_H
1469 #include <wctype.h>
1470 #endif
1471 ],[
1472         wint_t foo = 0;
1473         int bar = iswpunct(foo)],
1474         [cf_cv_wchar_h_okay=yes],
1475         [cf_cv_wchar_h_okay=no])])
1476
1477 if test "$cf_cv_wchar_h_okay" = no
1478 then
1479         CF_PREDEFINE(_XOPEN_SOURCE_EXTENDED)
1480 fi
1481 ])dnl
1482 dnl ---------------------------------------------------------------------------
1483 dnl CF_CHECK_WCWIDTH_GRAPHICS version: 3 updated: 2023/01/05 18:01:30
1484 dnl -------------------------
1485 dnl Most "modern" terminal emulators are based to some degree on VT100, and
1486 dnl should support line-drawing.  Even with Unicode.  There is a problem.
1487 dnl
1488 dnl While most of the VT100 graphics characters were incorporated into Unicode,
1489 dnl all of those were combined into a page of useful graphics characters.
1490 dnl
1491 dnl So far, so good.
1492 dnl
1493 dnl However, while they are useful, there are other considerations.  CJK
1494 dnl is (because of poor device resolution) often rendered as double-width
1495 dnl characters.  So... for these generally-useful characters, what should
1496 dnl be the width (to make them consistent with adjacent characters)?
1497 dnl
1498 dnl The obvious choice would have been to make this locale-dependent, and use
1499 dnl wcwidth() to tell applications what the actual width is.  That was too
1500 dnl obvious.  Instead, we have a slew of "ambiguous-width" characters.
1501 dnl See for example
1502 dnl             http://www.unicode.org/reports/tr11/tr11-29.html
1503 dnl             http://www.cl.cam.ac.uk/~mgk25/ucs/scw-proposal.html
1504 dnl
1505 dnl The EastAsianWidth-6.2.0.txt file from the Unicode organization lists
1506 dnl more than 22,000 characters, with 1281 of those as ambiguous-width.  For
1507 dnl instance, it lists half (44/96) of the Latin-1 characters as
1508 dnl ambiguous-width.  Also, all of the box-characters at 0x2500 are ambiguous.
1509 dnl
1510 dnl What this means for the implementor is that on some systems wcwidth() can
1511 dnl give bad advice.  On Solaris, some of the ambiguous widths are returned as
1512 dnl 1 (the Latin-1 characters), while others are returned as 2 (line-drawing
1513 dnl characters).  These do not necessarily match the behavior of the terminal
1514 dnl emulator.  xterm, for instance, does an optional startup check to find if
1515 dnl this problem (or similar) exists with the system's locale tables, rejecting
1516 dnl them if they are too unreliable.
1517 AC_DEFUN([CF_CHECK_WCWIDTH_GRAPHICS],[
1518 AC_CACHE_CHECK(if wcwidth agrees graphics are single-width, cf_cv_wcwidth_graphics,[
1519 cat >conftest.in <<CF_EOF
1520 -       VT100 symbols
1521 0x250c  upper left corner
1522 0x2514  lower left corner
1523 0x2510  upper right corner
1524 0x2518  lower right corner
1525 0x251c  tee pointing left
1526 0x2524  tee pointing right
1527 0x2534  tee pointing up
1528 0x252c  tee pointing down
1529 0x2500  horizontal line
1530 0x2502  vertical line
1531 0x253c  large plus or crossover
1532 0x23ba  scan line 1
1533 0x23bd  scan line 9
1534 0x25c6  diamond
1535 0x2592  checker board (stipple)
1536 0x00b0  degree symbol
1537 0x00b1  plus/minus
1538 0x00b7  bullet
1539 -       Teletype 5410v1 symbols
1540 0x2190  arrow pointing left
1541 0x2192  arrow pointing right
1542 0x2193  arrow pointing down
1543 0x2191  arrow pointing up
1544 0x2592  board of squares
1545 0x2603  lantern symbol
1546 0x25ae  solid square block
1547 -       these defaults were invented for ncurses
1548 0x23bb  scan line 3
1549 0x23bc  scan line 7
1550 0x2264  less-than-or-equal-to
1551 0x2265  greater-than-or-equal-to
1552 0x03c0  greek pi
1553 0x2260  not-equal
1554 0x00a3  pound-sterling symbol
1555 -       thick-line-drawing
1556 0x250f  upper left corner
1557 0x2517  lower left corner
1558 0x2513  upper right corner
1559 0x251b  lower right corner
1560 0x2523  tee pointing left
1561 0x252b  tee pointing right
1562 0x253b  tee pointing up
1563 0x2533  tee pointing down
1564 0x2501  horizontal line
1565 0x2503  vertical line
1566 0x254b  large plus or crossover
1567 -       double-line-drawing
1568 0x2554  upper left corner
1569 0x255a  lower left corner
1570 0x2557  upper right corner
1571 0x255d  lower right corner
1572 0x2563  tee pointing left
1573 0x2560  tee pointing right
1574 0x2569  tee pointing up
1575 0x2566  tee pointing down
1576 0x2550  horizontal line
1577 0x2551  vertical line
1578 0x256c  large plus or crossover
1579 CF_EOF
1580 AC_TRY_RUN([
1581 $ac_includes_default
1582
1583 #include <locale.h>
1584 #include <wchar.h>
1585
1586 #define MY_LEN 80
1587
1588 int
1589 main(void)
1590 {
1591         FILE *fp;
1592         int value;
1593         char buffer[MY_LEN + 1];
1594         char notes[MY_LEN + 1];
1595         int totals = 0;
1596         int passed = 0;
1597
1598         if (setlocale(LC_ALL, "en_US.UTF8") ||
1599                 setlocale(LC_ALL, "en_US.UTF-8") ||
1600                 setlocale(LC_ALL, "en_US.utf8") ||
1601                 setlocale(LC_ALL, "en_US.utf-8")) {
1602                 if ((fp = fopen("conftest.in", "r")) != 0) {
1603                         while (fgets(buffer, MY_LEN, fp) != 0) {
1604                                 if (*buffer == '-') {
1605                                         fprintf(stderr, "\\t%s", buffer);
1606                                 } else if (sscanf(buffer, "%x %s", &value, notes) == 2) {
1607                                         ++totals;
1608                                         if (wcwidth(value) == 1)
1609                                                 ++passed;
1610                                         fprintf(stderr, "%d\\t%s", wcwidth(value), buffer);
1611                                 } else {
1612                                         fprintf(stderr, "?\\t%s", buffer);
1613                                 }
1614                         }
1615                 }
1616         }
1617         fprintf(stderr, "%d/%d passed wcwidth/graphics check\\n", passed, totals);
1618         return (totals == passed) ? 0 : 1;
1619 }
1620 ],
1621 [cf_cv_wcwidth_graphics=yes],
1622 [cf_cv_wcwidth_graphics=no],
1623 [cf_cv_wcwidth_graphics=unknown])
1624 ])
1625 ])dnl
1626 dnl ---------------------------------------------------------------------------
1627 dnl CF_CLANG_COMPILER version: 8 updated: 2021/01/01 13:31:04
1628 dnl -----------------
1629 dnl Check if the given compiler is really clang.  clang's C driver defines
1630 dnl __GNUC__ (fooling the configure script into setting $GCC to yes) but does
1631 dnl not ignore some gcc options.
1632 dnl
1633 dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
1634 dnl ensure that it is not mistaken for gcc/g++.  It is normally invoked from
1635 dnl the wrappers for gcc and g++ warnings.
1636 dnl
1637 dnl $1 = GCC (default) or GXX
1638 dnl $2 = CLANG_COMPILER (default)
1639 dnl $3 = CFLAGS (default) or CXXFLAGS
1640 AC_DEFUN([CF_CLANG_COMPILER],[
1641 ifelse([$2],,CLANG_COMPILER,[$2])=no
1642
1643 if test "$ifelse([$1],,[$1],GCC)" = yes ; then
1644         AC_MSG_CHECKING(if this is really Clang ifelse([$1],GXX,C++,C) compiler)
1645         cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
1646         AC_TRY_COMPILE([],[
1647 #ifdef __clang__
1648 #else
1649 make an error
1650 #endif
1651 ],[ifelse([$2],,CLANG_COMPILER,[$2])=yes
1652 ],[])
1653         ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
1654         AC_MSG_RESULT($ifelse([$2],,CLANG_COMPILER,[$2]))
1655 fi
1656
1657 CLANG_VERSION=none
1658
1659 if test "x$ifelse([$2],,CLANG_COMPILER,[$2])" = "xyes" ; then
1660         case "$CC" in
1661         (c[[1-9]][[0-9]]|*/c[[1-9]][[0-9]])
1662                 AC_MSG_WARN(replacing broken compiler alias $CC)
1663                 CFLAGS="$CFLAGS -std=`echo "$CC" | sed -e 's%.*/%%'`"
1664                 CC=clang
1665                 ;;
1666         esac
1667
1668         AC_MSG_CHECKING(version of $CC)
1669         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.]].*//'`"
1670         test -z "$CLANG_VERSION" && CLANG_VERSION=unknown
1671         AC_MSG_RESULT($CLANG_VERSION)
1672
1673         for cf_clang_opt in \
1674                 -Qunused-arguments \
1675                 -Wno-error=implicit-function-declaration
1676         do
1677                 AC_MSG_CHECKING(if option $cf_clang_opt works)
1678                 cf_save_CFLAGS="$CFLAGS"
1679                 CFLAGS="$CFLAGS $cf_clang_opt"
1680                 AC_TRY_LINK([
1681                         #include <stdio.h>],[
1682                         printf("hello!\\n");],[
1683                         cf_clang_optok=yes],[
1684                         cf_clang_optok=no])
1685                 AC_MSG_RESULT($cf_clang_optok)
1686                 CFLAGS="$cf_save_CFLAGS"
1687                 if test "$cf_clang_optok" = yes; then
1688                         CF_VERBOSE(adding option $cf_clang_opt)
1689                         CF_APPEND_TEXT(CFLAGS,$cf_clang_opt)
1690                 fi
1691         done
1692 fi
1693 ])
1694 dnl ---------------------------------------------------------------------------
1695 dnl CF_CONST_X_STRING version: 7 updated: 2021/06/07 17:39:17
1696 dnl -----------------
1697 dnl The X11R4-X11R6 Xt specification uses an ambiguous String type for most
1698 dnl character-strings.
1699 dnl
1700 dnl It is ambiguous because the specification accommodated the pre-ANSI
1701 dnl compilers bundled by more than one vendor in lieu of providing a standard C
1702 dnl compiler other than by costly add-ons.  Because of this, the specification
1703 dnl did not take into account the use of const for telling the compiler that
1704 dnl string literals would be in readonly memory.
1705 dnl
1706 dnl As a workaround, one could (starting with X11R5) define XTSTRINGDEFINES, to
1707 dnl let the compiler decide how to represent Xt's strings which were #define'd.
1708 dnl That does not solve the problem of using the block of Xt's strings which
1709 dnl are compiled into the library (and is less efficient than one might want).
1710 dnl
1711 dnl Xt specification 7 introduces the _CONST_X_STRING symbol which is used both
1712 dnl when compiling the library and compiling using the library, to tell the
1713 dnl compiler that String is const.
1714 AC_DEFUN([CF_CONST_X_STRING],
1715 [
1716 AC_REQUIRE([AC_PATH_XTRA])
1717
1718 CF_SAVE_XTRA_FLAGS([CF_CONST_X_STRING])
1719
1720 AC_TRY_COMPILE(
1721 [
1722 #include <stdlib.h>
1723 #include <X11/Intrinsic.h>
1724 ],
1725 [String foo = malloc(1); free((void*)foo)],[
1726
1727 AC_CACHE_CHECK(for X11/Xt const-feature,cf_cv_const_x_string,[
1728         AC_TRY_COMPILE(
1729                 [
1730 #define _CONST_X_STRING /* X11R7.8 (perhaps) */
1731 #undef  XTSTRINGDEFINES /* X11R5 and later */
1732 #include <stdlib.h>
1733 #include <X11/Intrinsic.h>
1734                 ],[String foo = malloc(1); *foo = 0],[
1735                         cf_cv_const_x_string=no
1736                 ],[
1737                         cf_cv_const_x_string=yes
1738                 ])
1739 ])
1740
1741 CF_RESTORE_XTRA_FLAGS([CF_CONST_X_STRING])
1742
1743 case "$cf_cv_const_x_string" in
1744 (no)
1745         CF_APPEND_TEXT(CPPFLAGS,-DXTSTRINGDEFINES)
1746         ;;
1747 (*)
1748         CF_APPEND_TEXT(CPPFLAGS,-D_CONST_X_STRING)
1749         ;;
1750 esac
1751
1752 ])
1753 ])dnl
1754 dnl ---------------------------------------------------------------------------
1755 dnl CF_CPP_OVERRIDE version: 1 updated: 2022/08/20 16:07:10
1756 dnl ---------------
1757 dnl Check if the C++ compiler accepts the override keyword.  This is a C++-11
1758 dnl feature.
1759 AC_DEFUN([CF_CPP_OVERRIDE],
1760 [
1761 if test -n "$CXX"; then
1762 AC_CACHE_CHECK(if $CXX accepts override keyword,cf_cv_cpp_override,[
1763         AC_LANG_SAVE
1764         AC_LANG_CPLUSPLUS
1765         AC_TRY_RUN([
1766
1767 class base
1768 {
1769 public:
1770         virtual int foo(float x) = 0; 
1771 };
1772
1773
1774 class derived: public base
1775 {
1776 public:
1777         int foo(float x) override { return x != 0.0 ? 1 : 0; }
1778 };
1779
1780 int main(void) { }
1781 ],
1782         [cf_cv_cpp_override=yes],
1783         [cf_cv_cpp_override=no],
1784         [cf_cv_cpp_override=unknown])
1785         AC_LANG_RESTORE
1786 ])
1787 fi
1788 test "$cf_cv_cpp_override" = yes && AC_DEFINE(CPP_HAS_OVERRIDE,1,[Define to 1 if C++ has override keyword])
1789 ])dnl
1790 dnl ---------------------------------------------------------------------------
1791 dnl CF_CPP_PARAM_INIT version: 7 updated: 2017/01/21 11:06:25
1792 dnl -----------------
1793 dnl Check if the C++ compiler accepts duplicate parameter initialization.  This
1794 dnl is a late feature for the standard and is not in some recent compilers
1795 dnl (1999/9/11).
1796 AC_DEFUN([CF_CPP_PARAM_INIT],
1797 [
1798 if test -n "$CXX"; then
1799 AC_CACHE_CHECK(if $CXX accepts parameter initialization,cf_cv_cpp_param_init,[
1800         AC_LANG_SAVE
1801         AC_LANG_CPLUSPLUS
1802         AC_TRY_RUN([
1803 class TEST {
1804 private:
1805         int value;
1806 public:
1807         TEST(int x = 1);
1808         ~TEST();
1809 };
1810
1811 TEST::TEST(int x = 1)   // some compilers do not like second initializer
1812 {
1813         value = x;
1814 }
1815 int main(void) { }
1816 ],
1817         [cf_cv_cpp_param_init=yes],
1818         [cf_cv_cpp_param_init=no],
1819         [cf_cv_cpp_param_init=unknown])
1820         AC_LANG_RESTORE
1821 ])
1822 fi
1823 test "$cf_cv_cpp_param_init" = yes && AC_DEFINE(CPP_HAS_PARAM_INIT,1,[Define to 1 if C++ has parameter initialization])
1824 ])dnl
1825 dnl ---------------------------------------------------------------------------
1826 dnl CF_CPP_STATIC_CAST version: 3 updated: 2013/04/13 18:03:21
1827 dnl ------------------
1828 dnl Check if the C++ compiler accepts static_cast in generics.  This appears to
1829 dnl not be supported in g++ before 3.0
1830 AC_DEFUN([CF_CPP_STATIC_CAST],
1831 [
1832 if test -n "$CXX"; then
1833
1834 AC_CACHE_CHECK(if $CXX accepts static_cast,cf_cv_cpp_static_cast,[
1835         AC_LANG_SAVE
1836         AC_LANG_CPLUSPLUS
1837
1838         AC_TRY_COMPILE([
1839 class NCursesPanel
1840 {
1841 public:
1842   NCursesPanel(int nlines,
1843                int ncols,
1844                int begin_y = 0,
1845                int begin_x = 0)
1846   {
1847   }
1848   NCursesPanel();
1849   ~NCursesPanel();
1850 };
1851
1852 template<class T> class NCursesUserPanel : public NCursesPanel
1853 {
1854 public:
1855   NCursesUserPanel (int nlines,
1856                     int ncols,
1857                     int begin_y = 0,
1858                     int begin_x = 0,
1859                     const T* p_UserData = static_cast<T*>(0))
1860     : NCursesPanel (nlines, ncols, begin_y, begin_x)
1861   {
1862   };
1863   NCursesUserPanel(const T* p_UserData = static_cast<T*>(0)) : NCursesPanel()
1864   {
1865   };
1866
1867   virtual ~NCursesUserPanel() {};
1868 };
1869 ],[
1870         const char* p_UserData = static_cast<char*>(0)],
1871         [cf_cv_cpp_static_cast=yes],
1872         [cf_cv_cpp_static_cast=no])
1873
1874         AC_LANG_RESTORE
1875 ])
1876
1877 fi
1878
1879 test "$cf_cv_cpp_static_cast" = yes && AC_DEFINE(CPP_HAS_STATIC_CAST,1,[Define to 1 if C++ has static_cast])
1880 ])dnl
1881 dnl ---------------------------------------------------------------------------
1882 dnl CF_CXX_AR_FLAGS version: 3 updated: 2021/01/01 13:31:04
1883 dnl ---------------
1884 dnl Setup special archiver flags for given compilers.
1885 AC_DEFUN([CF_CXX_AR_FLAGS],[
1886         CXX_AR='$(AR)'
1887         CXX_ARFLAGS='$(ARFLAGS)'
1888         case "$cf_cv_system_name" in
1889         (irix*)
1890             if test "$GXX" != yes ; then
1891                 CXX_AR='$(CXX)'
1892                 CXX_ARFLAGS='-ar -o'
1893             fi
1894             ;;
1895         (sco3.2v5*)
1896             CXXLDFLAGS="-u main"
1897             ;;
1898         (solaris2*)
1899             if test "$GXX" != yes ; then
1900                 CXX_AR='$(CXX)'
1901                 CXX_ARFLAGS='-xar -o'
1902             fi
1903             ;;
1904         esac
1905         AC_SUBST(CXXLDFLAGS)
1906         AC_SUBST(CXX_AR)
1907         AC_SUBST(CXX_ARFLAGS)
1908 ])dnl
1909 dnl ---------------------------------------------------------------------------
1910 dnl CF_CXX_IOSTREAM_NAMESPACE version: 2 updated: 2012/10/06 17:56:13
1911 dnl -------------------------
1912 dnl For c++, check if iostream uses "std::" namespace.
1913 AC_DEFUN([CF_CXX_IOSTREAM_NAMESPACE],[
1914 AC_CHECK_HEADERS(iostream)
1915 if test x"$ac_cv_header_iostream" = xyes ; then
1916         AC_MSG_CHECKING(if iostream uses std-namespace)
1917         AC_TRY_COMPILE([
1918 #include <iostream>
1919 using std::endl;
1920 using std::cerr;],[
1921 cerr << "testing" << endl;
1922 ],[cf_iostream_namespace=yes],[cf_iostream_namespace=no])
1923         AC_MSG_RESULT($cf_iostream_namespace)
1924         if test "$cf_iostream_namespace" = yes ; then
1925                 AC_DEFINE(IOSTREAM_NAMESPACE,1,[Define to 1 if C++ has namespace iostream])
1926         fi
1927 fi
1928 ])dnl
1929 dnl ---------------------------------------------------------------------------
1930 dnl CF_C_INLINE version: 6 updated: 2019/09/07 13:38:36
1931 dnl -----------
1932 dnl Check if the C compiler supports "inline".
1933 dnl $1 is the name of a shell variable to set if inline is supported
1934 dnl $2 is the threshold for gcc 4.x's option controlling maximum inline size
1935 AC_DEFUN([CF_C_INLINE],[
1936 AC_REQUIRE([CF_GCC_VERSION])
1937 AC_C_INLINE
1938 $1=
1939 if test "$ac_cv_c_inline" != no ; then
1940         $1=inline
1941         if test "$INTEL_COMPILER" = yes
1942         then
1943                 :
1944         elif test "$CLANG_COMPILER" = yes
1945         then
1946                 :
1947         elif test "$GCC" = yes
1948         then
1949                 AC_CACHE_CHECK(if $CC supports options to tune inlining,cf_cv_gcc_inline,[
1950                 cf_save_CFLAGS=$CFLAGS
1951                 CFLAGS="$CFLAGS --param max-inline-insns-single=$2"
1952                 AC_TRY_COMPILE([inline int foo(void) { return 1; }],
1953                 [${cf_cv_main_return:-return} foo()],
1954                 [cf_cv_gcc_inline=yes],
1955                 [cf_cv_gcc_inline=no])
1956                 CFLAGS=$cf_save_CFLAGS
1957                 ])
1958                 if test "$cf_cv_gcc_inline" = yes ; then
1959                         CF_ADD_CFLAGS([--param max-inline-insns-single=$2])
1960                 fi
1961         fi
1962 fi
1963 AC_SUBST($1)
1964 ])dnl
1965 dnl ---------------------------------------------------------------------------
1966 dnl CF_DIRNAME version: 5 updated: 2020/12/31 20:19:42
1967 dnl ----------
1968 dnl "dirname" is not portable, so we fake it with a shell script.
1969 AC_DEFUN([CF_DIRNAME],[$1=`echo "$2" | sed -e 's%/[[^/]]*$%%'`])dnl
1970 dnl ---------------------------------------------------------------------------
1971 dnl CF_DIRS_TO_MAKE version: 4 updated: 2021/01/01 13:31:04
1972 dnl ---------------
1973 AC_DEFUN([CF_DIRS_TO_MAKE],
1974 [
1975 DIRS_TO_MAKE="lib"
1976 for cf_item in $cf_list_models
1977 do
1978         CF_OBJ_SUBDIR($cf_item,cf_subdir)
1979         for cf_item2 in $DIRS_TO_MAKE
1980         do
1981                 test "$cf_item2" = "$cf_subdir" && break
1982         done
1983         test ".$cf_item2" != ".$cf_subdir" && DIRS_TO_MAKE="$DIRS_TO_MAKE $cf_subdir"
1984 done
1985 for cf_dir in $DIRS_TO_MAKE
1986 do
1987         test ! -d "$cf_dir" && mkdir "$cf_dir"
1988 done
1989 AC_SUBST(DIRS_TO_MAKE)
1990 ])dnl
1991 dnl ---------------------------------------------------------------------------
1992 dnl CF_DISABLE_ECHO version: 14 updated: 2021/09/04 06:35:04
1993 dnl ---------------
1994 dnl You can always use "make -n" to see the actual options, but it is hard to
1995 dnl pick out/analyze warning messages when the compile-line is long.
1996 dnl
1997 dnl Sets:
1998 dnl     ECHO_LT - symbol to control if libtool is verbose
1999 dnl     ECHO_LD - symbol to prefix "cc -o" lines
2000 dnl     RULE_CC - symbol to put before implicit "cc -c" lines (e.g., .c.o)
2001 dnl     SHOW_CC - symbol to put before explicit "cc -c" lines
2002 dnl     ECHO_CC - symbol to put before any "cc" line
2003 dnl
2004 AC_DEFUN([CF_DISABLE_ECHO],[
2005 AC_MSG_CHECKING(if you want to see long compiling messages)
2006 CF_ARG_DISABLE(echo,
2007         [  --disable-echo          do not display "compiling" commands],
2008         [
2009         ECHO_LT='--silent'
2010         ECHO_LD='@echo linking [$]@;'
2011         RULE_CC='@echo compiling [$]<'
2012         SHOW_CC='@echo compiling [$]@'
2013         ECHO_CC='@'
2014 ],[
2015         ECHO_LT=''
2016         ECHO_LD=''
2017         RULE_CC=''
2018         SHOW_CC=''
2019         ECHO_CC=''
2020 ])
2021 AC_MSG_RESULT($enableval)
2022 AC_SUBST(ECHO_LT)
2023 AC_SUBST(ECHO_LD)
2024 AC_SUBST(RULE_CC)
2025 AC_SUBST(SHOW_CC)
2026 AC_SUBST(ECHO_CC)
2027 ])dnl
2028 dnl ---------------------------------------------------------------------------
2029 dnl CF_DISABLE_GNAT_PROJECTS version: 1 updated: 2014/06/01 11:34:00
2030 dnl ------------------------
2031 AC_DEFUN([CF_DISABLE_GNAT_PROJECTS],[
2032 AC_MSG_CHECKING(if we want to use GNAT projects)
2033 CF_ARG_DISABLE(gnat-projects,
2034         [  --disable-gnat-projects test: disable GNAT projects even if usable],
2035         [enable_gnat_projects=no],
2036         [enable_gnat_projects=yes])
2037 AC_MSG_RESULT($enable_gnat_projects)
2038 ])dnl
2039 dnl ---------------------------------------------------------------------------
2040 dnl CF_DISABLE_LEAKS version: 9 updated: 2021/04/03 16:41:50
2041 dnl ----------------
2042 dnl Combine no-leak checks with the libraries or tools that are used for the
2043 dnl checks.
2044 AC_DEFUN([CF_DISABLE_LEAKS],[
2045
2046 AC_REQUIRE([CF_WITH_DMALLOC])
2047 AC_REQUIRE([CF_WITH_DBMALLOC])
2048 AC_REQUIRE([CF_WITH_VALGRIND])
2049
2050 AC_MSG_CHECKING(if you want to perform memory-leak testing)
2051 AC_ARG_ENABLE(leaks,
2052         [  --disable-leaks         test: free permanent memory, analyze leaks],
2053         [enable_leaks=$enableval],
2054         [enable_leaks=yes])
2055 dnl with_no_leaks is more readable...
2056 if test "x$enable_leaks" = xno; then with_no_leaks=yes; else with_no_leaks=no; fi
2057 AC_MSG_RESULT($with_no_leaks)
2058
2059 if test "$enable_leaks" = no ; then
2060         AC_DEFINE(NO_LEAKS,1,[Define to 1 if you want to perform memory-leak testing.])
2061         AC_DEFINE(YY_NO_LEAKS,1,[Define to 1 if you want to perform memory-leak testing.])
2062 fi
2063 ])dnl
2064 dnl ---------------------------------------------------------------------------
2065 dnl CF_DISABLE_LIBTOOL_VERSION version: 3 updated: 2015/04/17 21:13:04
2066 dnl --------------------------
2067 dnl Check if we should use the libtool 1.5 feature "-version-number" instead of
2068 dnl the older "-version-info" feature.  The newer feature allows us to use
2069 dnl version numbering on shared libraries which make them compatible with
2070 dnl various systems.
2071 AC_DEFUN([CF_DISABLE_LIBTOOL_VERSION],
2072 [
2073 AC_MSG_CHECKING(if libtool -version-number should be used)
2074 CF_ARG_DISABLE(libtool-version,
2075         [  --disable-libtool-version  enable to use libtool's incompatible naming scheme],
2076         [cf_libtool_version=no],
2077         [cf_libtool_version=yes])
2078 AC_MSG_RESULT($cf_libtool_version)
2079
2080 if test "$cf_libtool_version" = yes ; then
2081         LIBTOOL_VERSION="-version-number"
2082 else
2083         LIBTOOL_VERSION="-version-info"
2084         case "x$VERSION" in
2085         (x)
2086                 AC_MSG_WARN(VERSION was not set)
2087                 ;;
2088         (x*.*.*)
2089                 ABI_VERSION="$VERSION"
2090                 CF_VERBOSE(ABI_VERSION: $ABI_VERSION)
2091                 ;;
2092         (x*:*:*)
2093                 ABI_VERSION=`echo "$VERSION" | sed -e 's/:/./g'`
2094                 CF_VERBOSE(ABI_VERSION: $ABI_VERSION)
2095                 ;;
2096         (*)
2097                 AC_MSG_WARN(unexpected VERSION value: $VERSION)
2098                 ;;
2099         esac
2100 fi
2101
2102 AC_SUBST(ABI_VERSION)
2103 AC_SUBST(LIBTOOL_VERSION)
2104 ])dnl
2105 dnl ---------------------------------------------------------------------------
2106 dnl CF_DISABLE_RPATH_HACK version: 3 updated: 2021/01/05 20:14:44
2107 dnl ---------------------
2108 dnl The rpath-hack makes it simpler to build programs, particularly with the
2109 dnl *BSD ports which may have essential libraries in unusual places.  But it
2110 dnl can interfere with building an executable for the base system.  Use this
2111 dnl option in that case.
2112 AC_DEFUN([CF_DISABLE_RPATH_HACK],
2113 [
2114 AC_MSG_CHECKING(if rpath-hack should be disabled)
2115 CF_ARG_DISABLE(rpath-hack,
2116         [  --disable-rpath-hack    don't add rpath options for additional libraries],
2117         [enable_rpath_hack=no],
2118         [enable_rpath_hack=yes])
2119 dnl TODO - drop cf_disable_rpath_hack
2120 if test "x$enable_rpath_hack" = xno; then cf_disable_rpath_hack=yes; else cf_disable_rpath_hack=no; fi
2121 AC_MSG_RESULT($cf_disable_rpath_hack)
2122
2123 if test "$enable_rpath_hack" = yes ; then
2124         CF_RPATH_HACK
2125 fi
2126 ])
2127 dnl ---------------------------------------------------------------------------
2128 dnl CF_ENABLE_BROKEN_LINKER version: 2 updated: 2021/01/02 17:09:14
2129 dnl -----------------------
2130 dnl Some linkers cannot reference a data-only object.  Cygwin used to be one.
2131 dnl This usually follows CF_LINK_DATAONLY, but is not required in case we need
2132 dnl an unconditional feature.
2133 AC_DEFUN([CF_ENABLE_BROKEN_LINKER],[
2134
2135 AC_MSG_CHECKING(if you want broken-linker support code)
2136 AC_ARG_ENABLE(broken_linker,
2137         [  --enable-broken_linker  compile with broken-linker support code],
2138         [with_broken_linker=$enableval],
2139         [with_broken_linker=no])
2140 AC_MSG_RESULT($with_broken_linker)
2141
2142 : "${BROKEN_LINKER:=0}"
2143 if test "x$with_broken_linker" = xyes ; then
2144         AC_DEFINE(BROKEN_LINKER,1,[Define to 1 to work around linkers which cannot link data-only modules])
2145         BROKEN_LINKER=1
2146 fi
2147 AC_SUBST(BROKEN_LINKER)
2148 ])dnl
2149 dnl ---------------------------------------------------------------------------
2150 dnl CF_ENABLE_PC_FILES version: 16 updated: 2021/11/20 12:48:37
2151 dnl ------------------
2152 dnl This is the "--enable-pc-files" option, which is available if there is a
2153 dnl pkg-config configuration on the local machine.
2154 AC_DEFUN([CF_ENABLE_PC_FILES],[
2155 AC_REQUIRE([CF_PKG_CONFIG])
2156 AC_REQUIRE([CF_WITH_PKG_CONFIG_LIBDIR])
2157
2158 if test "x$PKG_CONFIG" != xnone
2159 then
2160         AC_MSG_CHECKING(if we should install .pc files for $PKG_CONFIG)
2161 else
2162         AC_MSG_CHECKING(if we should install .pc files)
2163 fi
2164
2165 AC_ARG_ENABLE(pc-files,
2166         [  --enable-pc-files       generate and install .pc files for pkg-config],
2167         [enable_pc_files=$enableval],
2168         [enable_pc_files=no])
2169 AC_MSG_RESULT($enable_pc_files)
2170
2171 if test "x$enable_pc_files" != xno
2172 then
2173         MAKE_PC_FILES=
2174         case "x$PKG_CONFIG_LIBDIR" in
2175         (xno|xnone|xyes|x)
2176                 AC_MSG_WARN(no PKG_CONFIG_LIBDIR was found)
2177                 ;;
2178         (*)
2179                 cf_pkg_config_libdir="$PKG_CONFIG_LIBDIR"
2180                 CF_PATH_SYNTAX(cf_pkg_config_libdir)
2181                 ;;
2182         esac
2183 else
2184         MAKE_PC_FILES="#"
2185 fi
2186 AC_SUBST(MAKE_PC_FILES)
2187 ])dnl
2188 dnl ---------------------------------------------------------------------------
2189 dnl CF_ENABLE_RPATH version: 2 updated: 2010/03/27 18:39:42
2190 dnl ---------------
2191 dnl Check if the rpath option should be used, setting cache variable
2192 dnl cf_cv_enable_rpath if so.
2193 AC_DEFUN([CF_ENABLE_RPATH],
2194 [
2195 AC_MSG_CHECKING(if rpath option should be used)
2196 AC_ARG_ENABLE(rpath,
2197 [  --enable-rpath          use rpath option when generating shared libraries],
2198 [cf_cv_enable_rpath=$enableval],
2199 [cf_cv_enable_rpath=no])
2200 AC_MSG_RESULT($cf_cv_enable_rpath)
2201 ])dnl
2202 dnl ---------------------------------------------------------------------------
2203 dnl CF_ENABLE_STRING_HACKS version: 6 updated: 2021/01/05 19:23:48
2204 dnl ----------------------
2205 dnl On a few platforms, the compiler and/or loader nags with untruthful
2206 dnl comments stating that "most" uses of strcat/strcpy/sprintf are incorrect,
2207 dnl and implying that most uses of the recommended alternatives are correct.
2208 dnl
2209 dnl Factually speaking, no one has actually counted the number of uses of these
2210 dnl functions versus the total of incorrect uses.  Samples of a few thousand
2211 dnl instances are meaningless compared to the hundreds of millions of lines of
2212 dnl existing C code.
2213 dnl
2214 dnl strlcat/strlcpy are (as of 2012) non-standard, and are available on some
2215 dnl platforms, in implementations of varying quality.  Likewise, snprintf is
2216 dnl standard - but evolved through phases, and older implementations are likely
2217 dnl to yield surprising results, as documented in manpages on various systems.
2218 AC_DEFUN([CF_ENABLE_STRING_HACKS],
2219 [
2220 AC_MSG_CHECKING(if you want to work around bogus compiler/loader warnings)
2221 AC_ARG_ENABLE(string-hacks,
2222         [  --enable-string-hacks   work around bogus compiler/loader warnings],
2223         [enable_string_hacks=$enableval],
2224         [enable_string_hacks=no])
2225 AC_MSG_RESULT($enable_string_hacks)
2226
2227 if test "x$enable_string_hacks" = "xyes"; then
2228         AC_DEFINE(USE_STRING_HACKS,1,[Define to 1 to work around bogus compiler/loader warnings])
2229         AC_MSG_WARN(enabling string-hacks to work around bogus compiler/loader warnings)
2230         AC_CHECK_FUNC(strlcat,[
2231                 AC_DEFINE(HAVE_STRLCAT,1,[Define to 1 if we have strlcat function])
2232                 ],[
2233                 AC_CHECK_LIB(bsd,strlcat,[
2234                         CF_ADD_LIB(bsd)
2235                         AC_CHECK_HEADERS(bsd/string.h)
2236                         AC_DEFINE(HAVE_STRLCAT,1,[Define to 1 if we have strlcat function])
2237                         ])
2238                 ])
2239         AC_CHECK_FUNCS( strlcpy snprintf )
2240 fi
2241 ])dnl
2242 dnl ---------------------------------------------------------------------------
2243 dnl CF_ENABLE_WARNINGS version: 9 updated: 2021/01/05 19:40:50
2244 dnl ------------------
2245 dnl Configure-option to enable gcc warnings
2246 dnl
2247 dnl $1 = extra options to add, if supported
2248 dnl $2 = option for checking attributes.  By default, this is done when
2249 dnl      warnings are enabled.  For other values:
2250 dnl      yes: always do this, e.g., to use in generated library-headers
2251 dnl      no: never do this
2252 AC_DEFUN([CF_ENABLE_WARNINGS],[
2253 if test "$GCC" = yes || test "$GXX" = yes
2254 then
2255 CF_FIX_WARNINGS(CFLAGS)
2256 CF_FIX_WARNINGS(CPPFLAGS)
2257 CF_FIX_WARNINGS(LDFLAGS)
2258 AC_MSG_CHECKING(if you want to turn on gcc warnings)
2259 CF_ARG_ENABLE(warnings,
2260         [  --enable-warnings       test: turn on gcc compiler warnings],
2261         [enable_warnings=yes],
2262         [enable_warnings=no])
2263 AC_MSG_RESULT($enable_warnings)
2264 if test "$enable_warnings" = "yes"
2265 then
2266         ifelse($2,,[CF_GCC_ATTRIBUTES])
2267         CF_GCC_WARNINGS($1)
2268 fi
2269 ifelse($2,yes,[CF_GCC_ATTRIBUTES])
2270 fi
2271 ])dnl
2272 dnl ---------------------------------------------------------------------------
2273 dnl CF_ERRNO version: 5 updated: 1997/11/30 12:44:39
2274 dnl --------
2275 dnl Check if 'errno' is declared in <errno.h>
2276 AC_DEFUN([CF_ERRNO],
2277 [
2278 CF_CHECK_ERRNO(errno)
2279 ])dnl
2280 dnl ---------------------------------------------------------------------------
2281 dnl CF_ETIP_DEFINES version: 6 updated: 2021/01/02 17:09:14
2282 dnl ---------------
2283 dnl Test for conflicting definitions of exception in gcc 2.8.0, etc., between
2284 dnl math.h and builtin.h, only for ncurses
2285 AC_DEFUN([CF_ETIP_DEFINES],
2286 [
2287 AC_MSG_CHECKING(for special defines needed for etip.h)
2288 cf_save_CXXFLAGS="$CXXFLAGS"
2289 cf_result="none"
2290
2291 # etip.h includes ncurses.h which includes ncurses_dll.h
2292 # But ncurses_dll.h is generated - fix here.
2293 test -d include || mkdir include
2294 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
2295
2296 for cf_math in "" MATH_H
2297 do
2298 for cf_excp in "" MATH_EXCEPTION
2299 do
2300         CXXFLAGS="$cf_save_CXXFLAGS -I${srcdir}/c++ -I${srcdir}/menu -Iinclude -I${srcdir}/include"
2301         test -n "$cf_math" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_math}"
2302         test -n "$cf_excp" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_excp}"
2303 AC_TRY_COMPILE([
2304 #include <etip.h.in>
2305 ],[],[
2306         test -n "$cf_math" && AC_DEFINE_UNQUOTED(ETIP_NEEDS_${cf_math})
2307         test -n "$cf_excp" && AC_DEFINE_UNQUOTED(ETIP_NEEDS_${cf_excp})
2308         cf_result="$cf_math $cf_excp"
2309         break 2
2310 ],[])
2311 done
2312 done
2313 AC_MSG_RESULT($cf_result)
2314 CXXFLAGS="$cf_save_CXXFLAGS"
2315 ])
2316 dnl ---------------------------------------------------------------------------
2317 dnl CF_FIND_LINKAGE version: 22 updated: 2020/12/31 20:19:42
2318 dnl ---------------
2319 dnl Find a library (specifically the linkage used in the code fragment),
2320 dnl searching for it if it is not already in the library path.
2321 dnl See also CF_ADD_SEARCHPATH.
2322 dnl
2323 dnl Parameters (4-on are optional):
2324 dnl     $1 = headers for library entrypoint
2325 dnl     $2 = code fragment for library entrypoint
2326 dnl     $3 = the library name without the "-l" option or ".so" suffix.
2327 dnl     $4 = action to perform if successful (default: update CPPFLAGS, etc)
2328 dnl     $5 = action to perform if not successful
2329 dnl     $6 = module name, if not the same as the library name
2330 dnl     $7 = extra libraries
2331 dnl
2332 dnl Sets these variables:
2333 dnl     $cf_cv_find_linkage_$3 - yes/no according to whether linkage is found
2334 dnl     $cf_cv_header_path_$3 - include-directory if needed
2335 dnl     $cf_cv_library_path_$3 - library-directory if needed
2336 dnl     $cf_cv_library_file_$3 - library-file if needed, e.g., -l$3
2337 AC_DEFUN([CF_FIND_LINKAGE],[
2338
2339 # If the linkage is not already in the $CPPFLAGS/$LDFLAGS configuration, these
2340 # will be set on completion of the AC_TRY_LINK below.
2341 cf_cv_header_path_$3=
2342 cf_cv_library_path_$3=
2343
2344 CF_MSG_LOG([Starting [FIND_LINKAGE]($3,$6)])
2345
2346 cf_save_LIBS="$LIBS"
2347
2348 AC_TRY_LINK([$1],[$2],[
2349         cf_cv_find_linkage_$3=yes
2350         cf_cv_header_path_$3=/usr/include
2351         cf_cv_library_path_$3=/usr/lib
2352 ],[
2353
2354 LIBS="-l$3 $7 $cf_save_LIBS"
2355
2356 AC_TRY_LINK([$1],[$2],[
2357         cf_cv_find_linkage_$3=yes
2358         cf_cv_header_path_$3=/usr/include
2359         cf_cv_library_path_$3=/usr/lib
2360         cf_cv_library_file_$3="-l$3"
2361 ],[
2362         cf_cv_find_linkage_$3=no
2363         LIBS="$cf_save_LIBS"
2364
2365         CF_VERBOSE(find linkage for $3 library)
2366         CF_MSG_LOG([Searching for headers in [FIND_LINKAGE]($3,$6)])
2367
2368         cf_save_CPPFLAGS="$CPPFLAGS"
2369         cf_test_CPPFLAGS="$CPPFLAGS"
2370
2371         CF_HEADER_PATH(cf_search,ifelse([$6],,[$3],[$6]))
2372         for cf_cv_header_path_$3 in $cf_search
2373         do
2374                 if test -d "$cf_cv_header_path_$3" ; then
2375                         CF_VERBOSE(... testing $cf_cv_header_path_$3)
2376                         CPPFLAGS="$cf_save_CPPFLAGS"
2377                         CF_APPEND_TEXT(CPPFLAGS,-I$cf_cv_header_path_$3)
2378                         AC_TRY_COMPILE([$1],[$2],[
2379                                 CF_VERBOSE(... found $3 headers in $cf_cv_header_path_$3)
2380                                 cf_cv_find_linkage_$3=maybe
2381                                 cf_test_CPPFLAGS="$CPPFLAGS"
2382                                 break],[
2383                                 CPPFLAGS="$cf_save_CPPFLAGS"
2384                                 ])
2385                 fi
2386         done
2387
2388         if test "$cf_cv_find_linkage_$3" = maybe ; then
2389
2390                 CF_MSG_LOG([Searching for $3 library in [FIND_LINKAGE]($3,$6)])
2391
2392                 cf_save_LIBS="$LIBS"
2393                 cf_save_LDFLAGS="$LDFLAGS"
2394
2395                 ifelse([$6],,,[
2396                 CPPFLAGS="$cf_test_CPPFLAGS"
2397                 LIBS="-l$3 $7 $cf_save_LIBS"
2398                 AC_TRY_LINK([$1],[$2],[
2399                         CF_VERBOSE(... found $3 library in system)
2400                         cf_cv_find_linkage_$3=yes])
2401                         CPPFLAGS="$cf_save_CPPFLAGS"
2402                         LIBS="$cf_save_LIBS"
2403                         ])
2404
2405                 if test "$cf_cv_find_linkage_$3" != yes ; then
2406                         CF_LIBRARY_PATH(cf_search,$3)
2407                         for cf_cv_library_path_$3 in $cf_search
2408                         do
2409                                 if test -d "$cf_cv_library_path_$3" ; then
2410                                         CF_VERBOSE(... testing $cf_cv_library_path_$3)
2411                                         CPPFLAGS="$cf_test_CPPFLAGS"
2412                                         LIBS="-l$3 $7 $cf_save_LIBS"
2413                                         LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_$3"
2414                                         AC_TRY_LINK([$1],[$2],[
2415                                         CF_VERBOSE(... found $3 library in $cf_cv_library_path_$3)
2416                                         cf_cv_find_linkage_$3=yes
2417                                         cf_cv_library_file_$3="-l$3"
2418                                         break],[
2419                                         CPPFLAGS="$cf_save_CPPFLAGS"
2420                                         LIBS="$cf_save_LIBS"
2421                                         LDFLAGS="$cf_save_LDFLAGS"
2422                                         ])
2423                                 fi
2424                         done
2425                         CPPFLAGS="$cf_save_CPPFLAGS"
2426                         LDFLAGS="$cf_save_LDFLAGS"
2427                 fi
2428
2429         else
2430                 cf_cv_find_linkage_$3=no
2431         fi
2432         ],$7)
2433 ])
2434
2435 LIBS="$cf_save_LIBS"
2436
2437 if test "$cf_cv_find_linkage_$3" = yes ; then
2438 ifelse([$4],,[
2439         CF_ADD_INCDIR($cf_cv_header_path_$3)
2440         CF_ADD_LIBDIR($cf_cv_library_path_$3)
2441         CF_ADD_LIB($3)
2442 ],[$4])
2443 else
2444 ifelse([$5],,AC_MSG_WARN(Cannot find $3 library),[$5])
2445 fi
2446 ])dnl
2447 dnl ---------------------------------------------------------------------------
2448 dnl CF_FIND_SUB_INCDIR version: 3 updated: 2021/01/01 13:31:04
2449 dnl ------------------
2450 dnl Find an include-directory with the given leaf-name.  This is useful for
2451 dnl example with FreeBSD ports, which use this convention to distinguish
2452 dnl different versions of the same port.
2453 AC_DEFUN([CF_FIND_SUB_INCDIR],[
2454         CF_SUBDIR_PATH(cf_search,$1,include)
2455         for cf_item in $cf_search
2456         do
2457                 case "$cf_item" in
2458                 (*/$1)
2459                         CF_ADD_INCDIR($cf_item)
2460                         ;;
2461                 esac
2462         done
2463 ])dnl
2464 dnl ---------------------------------------------------------------------------
2465 dnl CF_FIND_SUB_LIBDIR version: 3 updated: 2021/01/01 13:31:04
2466 dnl ------------------
2467 dnl Find a library-directory with the given leaf-name.  This is useful for
2468 dnl example with FreeBSD ports, which use this convention to distinguish
2469 dnl different versions of the same port.
2470 AC_DEFUN([CF_FIND_SUB_LIBDIR],[
2471         CF_SUBDIR_PATH(cf_search,$1,lib)
2472         for cf_item in $cf_search
2473         do
2474                 case "$cf_item" in
2475                 (*/$1)
2476                         CF_ADD_LIBDIR($cf_item)
2477                         ;;
2478                 esac
2479         done
2480 ])dnl
2481 dnl ---------------------------------------------------------------------------
2482 dnl CF_FIXUP_ADAFLAGS version: 2 updated: 2015/04/17 21:13:04
2483 dnl -----------------
2484 dnl make ADAFLAGS consistent with CFLAGS
2485 AC_DEFUN([CF_FIXUP_ADAFLAGS],[
2486         AC_MSG_CHECKING(optimization options for ADAFLAGS)
2487         case "$CFLAGS" in
2488         (*-g*)
2489                 CF_ADD_ADAFLAGS(-g)
2490                 ;;
2491         esac
2492         case "$CFLAGS" in
2493         (*-O*)
2494                 cf_O_flag=`echo "$CFLAGS" |sed -e 's/^.*-O/-O/' -e 's/[[        ]].*//'`
2495                 CF_ADD_ADAFLAGS($cf_O_flag)
2496                 ;;
2497         esac
2498         AC_MSG_RESULT($ADAFLAGS)
2499 ])dnl
2500 dnl ---------------------------------------------------------------------------
2501 dnl CF_FIX_WARNINGS version: 4 updated: 2021/12/16 18:22:31
2502 dnl ---------------
2503 dnl Warning flags do not belong in CFLAGS, CPPFLAGS, etc.  Any of gcc's
2504 dnl "-Werror" flags can interfere with configure-checks.  Those go into
2505 dnl EXTRA_CFLAGS.
2506 dnl
2507 dnl $1 = variable name to repair
2508 define([CF_FIX_WARNINGS],[
2509 if test "$GCC" = yes || test "$GXX" = yes
2510 then
2511         case [$]$1 in
2512         (*-Werror=*)
2513                 cf_temp_flags=
2514                 for cf_temp_scan in [$]$1
2515                 do
2516                         case "x$cf_temp_scan" in
2517                         (x-Werror=format*)
2518                                 CF_APPEND_TEXT(cf_temp_flags,$cf_temp_scan)
2519                                 ;;
2520                         (x-Werror=*)
2521                                 CF_APPEND_TEXT(EXTRA_CFLAGS,$cf_temp_scan)
2522                                 ;;
2523                         (*)
2524                                 CF_APPEND_TEXT(cf_temp_flags,$cf_temp_scan)
2525                                 ;;
2526                         esac
2527                 done
2528                 if test "x[$]$1" != "x$cf_temp_flags"
2529                 then
2530                         CF_VERBOSE(repairing $1: [$]$1)
2531                         $1="$cf_temp_flags"
2532                         CF_VERBOSE(... fixed [$]$1)
2533                         CF_VERBOSE(... extra $EXTRA_CFLAGS)
2534                 fi
2535                 ;;
2536         esac
2537 fi
2538 AC_SUBST(EXTRA_CFLAGS)
2539 ])dnl
2540 dnl ---------------------------------------------------------------------------
2541 dnl CF_FOPEN_BIN_R version: 3 updated: 2023/01/05 18:05:46
2542 dnl --------------
2543 dnl Check if fopen works when the "b" (binary) flag is added to the mode
2544 dnl parameter.  POSIX ignores the "b", which c89 specified.  Some very old
2545 dnl systems do not accept it.
2546 AC_DEFUN([CF_FOPEN_BIN_R],[
2547 AC_CACHE_CHECK(if fopen accepts explicit binary mode,cf_cv_fopen_bin_r,[
2548         AC_TRY_RUN([
2549 $ac_includes_default
2550
2551 int main(void)
2552 {
2553         FILE *fp = fopen("conftest.tmp", "wb");
2554         int rc = 0;
2555         if (fp != 0) {
2556                 int p, q;
2557                 for (p = 0; p < 256; ++p) {
2558                         fputc(p, fp);
2559                 }
2560                 fclose(fp);
2561                 fp = fopen("conftest.tmp", "rb");
2562                 if (fp != 0) {
2563                         for (p = 0; p < 256; ++p) {
2564                                 q = fgetc(fp);
2565                                 if (q != p) {
2566                                         rc = 1;
2567                                         break;
2568                                 }
2569                         }
2570                 } else {
2571                         rc = 1;
2572                 }
2573         } else {
2574                 rc = 1;
2575         }
2576         ${cf_cv_main_return:-return} (rc);
2577 }
2578 ],
2579                 [cf_cv_fopen_bin_r=yes],
2580                 [cf_cv_fopen_bin_r=no],
2581                 [cf_cv_fopen_bin_r=unknown])
2582 ])
2583 test "x$cf_cv_fopen_bin_r" != xno && AC_DEFINE(USE_FOPEN_BIN_R,1,[Define to 1 if fopen accepts explicit binary mode])
2584 ])dnl
2585 dnl ---------------------------------------------------------------------------
2586 dnl CF_FORGET_TOOL version: 1 updated: 2013/04/06 18:03:09
2587 dnl --------------
2588 dnl Forget that we saw the given tool.
2589 AC_DEFUN([CF_FORGET_TOOL],[
2590 unset ac_cv_prog_ac_ct_$1
2591 unset ac_ct_$1
2592 unset $1
2593 ])dnl
2594 dnl ---------------------------------------------------------------------------
2595 dnl CF_FUNC_DLSYM version: 4 updated: 2015/09/12 14:46:44
2596 dnl -------------
2597 dnl Test for dlsym() and related functions, as well as libdl.
2598 dnl
2599 dnl Sets
2600 dnl     $cf_have_dlsym
2601 dnl     $cf_have_libdl
2602 AC_DEFUN([CF_FUNC_DLSYM],[
2603 cf_have_dlsym=no
2604 AC_CHECK_FUNC(dlsym,cf_have_dlsym=yes,[
2605
2606 cf_have_libdl=no
2607 AC_CHECK_LIB(dl,dlsym,[
2608         cf_have_dlsym=yes
2609         cf_have_libdl=yes])])
2610
2611 if test "$cf_have_dlsym" = yes ; then
2612         test "$cf_have_libdl" = yes && { CF_ADD_LIB(dl) }
2613
2614         AC_MSG_CHECKING(whether able to link to dl*() functions)
2615         AC_TRY_LINK([#include <dlfcn.h>],[
2616                 void *obj;
2617                 if ((obj = dlopen("filename", 0)) != 0) {
2618                         if (dlsym(obj, "symbolname") == 0) {
2619                         dlclose(obj);
2620                         }
2621                 }],[
2622                 AC_DEFINE(HAVE_LIBDL,1,[Define to 1 if we have dl library])],[
2623                 AC_MSG_ERROR(Cannot link test program for libdl)])
2624         AC_MSG_RESULT(ok)
2625 else
2626         AC_MSG_ERROR(Cannot find dlsym function)
2627 fi
2628 ])
2629 dnl ---------------------------------------------------------------------------
2630 dnl CF_FUNC_GETTTYNAM version: 2 updated: 2023/01/05 18:06:28
2631 dnl -----------------
2632 dnl Check if the 4.3BSD function getttyname exists, as well as if <ttyent.h>
2633 dnl defines the _PATH_TTYS symbol.  If the corresponding file exists, but the
2634 dnl other checks fail, just define HAVE_PATH_TTYS.
2635 AC_DEFUN([CF_FUNC_GETTTYNAM],[
2636 AC_CACHE_CHECK(if _PATH_TTYS is defined in ttyent.h,cf_cv_PATH_TTYS,[
2637 AC_TRY_COMPILE([
2638 #include <stdio.h>
2639 #include <ttyent.h>],[
2640 FILE *fp = fopen(_PATH_TTYS, "r"); (void)fp],
2641         [cf_cv_PATH_TTYS=yes],
2642         [cf_cv_PATH_TTYS=no])])
2643
2644 if test $cf_cv_PATH_TTYS = no
2645 then
2646         for cf_ttys in /etc/ttytype /etc/ttys
2647         do
2648                 if test -f $cf_ttys
2649                 then
2650                         cf_cv_PATH_TTYS=maybe
2651                         AC_DEFINE(_PATH_TTYS,$cf_ttys,[define to pathname of file containing mapping from tty name to terminal type])
2652                         break
2653                 fi
2654         done
2655 fi
2656
2657 if test $cf_cv_PATH_TTYS != no
2658 then
2659         AC_CACHE_CHECK(if _PATH_TTYS file exists,cf_cv_have_PATH_TTYS,[
2660                 AC_TRY_RUN([
2661 $ac_includes_default
2662
2663 #include <ttyent.h>
2664
2665 int main(void) {
2666         FILE *fp = fopen(_PATH_TTYS, "r");
2667         ${cf_cv_main_return:-return} (fp == 0);
2668 }],
2669                         [cf_cv_have_PATH_TTYS=yes],
2670                         [cf_cv_have_PATH_TTYS=no],
2671                         [cf_cv_have_PATH_TTYS=unknown])])
2672         test "$cf_cv_have_PATH_TTYS" = no && cf_cv_PATH_TTYS=no
2673 fi
2674
2675 if test $cf_cv_PATH_TTYS != no
2676 then
2677         AC_DEFINE(HAVE_PATH_TTYS,1,[define to 1 if system can map tty name to terminal type])
2678         AC_CACHE_CHECK(for getttynam,cf_cv_func_getttynam,[
2679                 AC_TRY_LINK([#include <ttyent.h>],
2680                 [struct ttyent *fp = getttynam("/dev/tty"); (void)fp],
2681                 [cf_cv_func_getttynam=yes],
2682                 [cf_cv_func_getttynam=no])])
2683         test "$cf_cv_func_getttynam" = yes && AC_DEFINE(HAVE_GETTTYNAM)
2684 fi
2685 ])dnl
2686 dnl ---------------------------------------------------------------------------
2687 dnl CF_FUNC_MEMMOVE version: 10 updated: 2023/01/05 18:51:28
2688 dnl ---------------
2689 dnl Check for memmove, or a bcopy that can handle overlapping copy.  If neither
2690 dnl is found, add our own version of memmove to the list of objects.
2691 AC_DEFUN([CF_FUNC_MEMMOVE],
2692 [
2693 AC_CHECK_FUNC(memmove,,[
2694 AC_CHECK_FUNC(bcopy,[
2695         AC_CACHE_CHECK(if bcopy does overlapping moves,cf_cv_good_bcopy,[
2696                 AC_TRY_RUN([
2697 $ac_includes_default
2698
2699 int main(void) {
2700         static char data[] = "abcdefghijklmnopqrstuwwxyz";
2701         char temp[40];
2702         bcopy(data, temp, sizeof(data));
2703         bcopy(temp+10, temp, 15);
2704         bcopy(temp+5, temp+15, 10);
2705         ${cf_cv_main_return:-return} (strcmp(temp, "klmnopqrstuwwxypqrstuwwxyz"));
2706 }
2707                 ],
2708                 [cf_cv_good_bcopy=yes],
2709                 [cf_cv_good_bcopy=no],
2710                 [cf_cv_good_bcopy=unknown])
2711                 ])
2712         ],[cf_cv_good_bcopy=no])
2713         if test "$cf_cv_good_bcopy" = yes ; then
2714                 AC_DEFINE(USE_OK_BCOPY,1,[Define to 1 to use bcopy when memmove is unavailable])
2715         else
2716                 AC_DEFINE(USE_MY_MEMMOVE,1,[Define to 1 to use replacement function when memmove is unavailable])
2717         fi
2718 ])])dnl
2719 dnl ---------------------------------------------------------------------------
2720 dnl CF_FUNC_NANOSLEEP version: 6 updated: 2023/01/05 18:51:33
2721 dnl -----------------
2722 dnl Check for existence of workable nanosleep() function.  Some systems, e.g.,
2723 dnl AIX 4.x, provide a non-working version.
2724 AC_DEFUN([CF_FUNC_NANOSLEEP],[
2725 AC_CACHE_CHECK(if nanosleep really works,cf_cv_func_nanosleep,[
2726 AC_TRY_RUN([
2727 $ac_includes_default
2728
2729 #include <errno.h>
2730 #include <time.h>
2731
2732 #ifdef HAVE_SYS_TIME_H
2733 #include <sys/time.h>
2734 #endif
2735
2736 int main(void) {
2737         struct timespec ts1, ts2;
2738         int code;
2739         ts1.tv_sec  = 0;
2740         ts1.tv_nsec = 750000000;
2741         ts2.tv_sec  = 0;
2742         ts2.tv_nsec = 0;
2743         errno = 0;
2744         code = nanosleep(&ts1, &ts2); /* on failure errno is ENOSYS. */
2745         ${cf_cv_main_return:-return}(code != 0);
2746 }
2747 ],
2748         [cf_cv_func_nanosleep=yes],
2749         [cf_cv_func_nanosleep=no],
2750         [cf_cv_func_nanosleep=unknown])])
2751
2752 test "$cf_cv_func_nanosleep" = "yes" && AC_DEFINE(HAVE_NANOSLEEP,1,[Define to 1 if we have nanosleep()])
2753 ])
2754 dnl ---------------------------------------------------------------------------
2755 dnl CF_FUNC_OPENPTY version: 6 updated: 2021/01/01 13:31:04
2756 dnl ---------------
2757 dnl Check for openpty() function, along with <pty.h> header.  It may need the
2758 dnl "util" library as well.
2759 AC_DEFUN([CF_FUNC_OPENPTY],
2760 [
2761 AC_CHECK_LIB(util,openpty,cf_cv_lib_util=yes,cf_cv_lib_util=no)
2762 AC_CACHE_CHECK(for openpty header,cf_cv_func_openpty,[
2763         cf_save_LIBS="$LIBS"
2764         test "$cf_cv_lib_util" = yes && { CF_ADD_LIB(util) }
2765         for cf_header in pty.h libutil.h util.h
2766         do
2767         AC_TRY_LINK([
2768 #include <$cf_header>
2769 ],[
2770         int x = openpty((int *)0, (int *)0, (char *)0,
2771                                    (struct termios *)0, (struct winsize *)0);
2772 ],[
2773                 cf_cv_func_openpty=$cf_header
2774                 break
2775 ],[
2776                 cf_cv_func_openpty=no
2777 ])
2778         done
2779         LIBS="$cf_save_LIBS"
2780 ])
2781 ])dnl
2782 dnl ---------------------------------------------------------------------------
2783 dnl CF_FUNC_POLL version: 11 updated: 2023/01/05 18:51:40
2784 dnl ------------
2785 dnl See if the poll function really works.  Some platforms have poll(), but
2786 dnl it does not work for terminals or files.
2787 AC_DEFUN([CF_FUNC_POLL],[
2788 tty >/dev/null 2>&1 || { AC_CHECK_FUNCS(posix_openpt) }
2789 AC_CACHE_CHECK(if poll really works,cf_cv_working_poll,[
2790 AC_TRY_RUN([
2791 $ac_includes_default
2792
2793 #include <fcntl.h>
2794
2795 #ifdef HAVE_POLL_H
2796 #include <poll.h>
2797 #else
2798 #include <sys/poll.h>
2799 #endif
2800
2801 int main(void) {
2802         struct pollfd myfds;
2803         int ret;
2804
2805         /* check for Darwin bug with respect to "devices" */
2806         myfds.fd = open("/dev/null", 1);        /* O_WRONLY */
2807         if (myfds.fd < 0)
2808                 myfds.fd = 0;
2809         myfds.events = POLLIN;
2810         myfds.revents = 0;
2811
2812         ret = poll(&myfds, 1, 100);
2813
2814         if (ret < 0 || (myfds.revents & POLLNVAL)) {
2815                 ret = -1;
2816         } else {
2817                 int fd = 0;
2818                 if (!isatty(fd)) {
2819                         fd = open("/dev/tty", 2);       /* O_RDWR */
2820                 }
2821 #ifdef HAVE_POSIX_OPENPT
2822                 if (fd < 0) {
2823                         fd = posix_openpt(O_RDWR);
2824                 }
2825 #endif
2826
2827                 if (fd >= 0) {
2828                         /* also check with standard input */
2829                         myfds.fd = fd;
2830                         myfds.events = POLLIN;
2831                         myfds.revents = 0;
2832                         ret = poll(&myfds, 1, 100);
2833                 } else {
2834                         ret = -1;
2835                 }
2836         }
2837         ${cf_cv_main_return:-return}(ret < 0);
2838 }],
2839         [cf_cv_working_poll=yes],
2840         [cf_cv_working_poll=no],
2841         [cf_cv_working_poll=unknown])])
2842 test "$cf_cv_working_poll" = "yes" && AC_DEFINE(HAVE_WORKING_POLL,1,[Define to 1 if the poll function seems to work])
2843 ])dnl
2844 dnl ---------------------------------------------------------------------------
2845 dnl CF_FUNC_TERMIOS version: 3 updated: 2012/10/06 17:56:13
2846 dnl ---------------
2847 dnl Some old/broken variations define tcgetattr() only as a macro in
2848 dnl termio(s).h
2849 AC_DEFUN([CF_FUNC_TERMIOS],[
2850 AC_REQUIRE([CF_STRUCT_TERMIOS])
2851 AC_CACHE_CHECK(for tcgetattr, cf_cv_have_tcgetattr,[
2852 AC_TRY_LINK([
2853 #include <sys/types.h>
2854 #ifdef HAVE_UNISTD_H
2855 #include <unistd.h>
2856 #endif
2857 #ifdef HAVE_TERMIOS_H
2858 #include <termios.h>
2859 #define TTY struct termios
2860 #else
2861 #ifdef HAVE_TERMIO_H
2862 #include <termio.h>
2863 #define TTY struct termio
2864 #endif
2865 #endif
2866 ],[
2867 TTY foo;
2868 tcgetattr(1, &foo);],
2869 [cf_cv_have_tcgetattr=yes],
2870 [cf_cv_have_tcgetattr=no])])
2871 test "$cf_cv_have_tcgetattr" = yes && AC_DEFINE(HAVE_TCGETATTR,1,[Define to 1 if we have tcgetattr])
2872 ])dnl
2873 dnl ---------------------------------------------------------------------------
2874 dnl CF_FUNC_VSSCANF version: 7 updated: 2021/01/01 13:31:04
2875 dnl ---------------
2876 dnl Check for vsscanf() function, which is in c9x but generally not in earlier
2877 dnl versions of C.  It is in the GNU C library, and can often be simulated by
2878 dnl other functions.
2879 AC_DEFUN([CF_FUNC_VSSCANF],
2880 [
2881 AC_CACHE_CHECK(for vsscanf function or workaround,cf_cv_func_vsscanf,[
2882 AC_TRY_LINK([
2883 #include <stdarg.h>
2884 #include <stdio.h>],[
2885         va_list ap;
2886         vsscanf("from", "%d", ap)],[cf_cv_func_vsscanf=vsscanf],[
2887 AC_TRY_LINK([
2888 #include <stdarg.h>
2889 #include <stdio.h>],[
2890         FILE strbuf;
2891         char *str = "from";
2892
2893         strbuf._flag = _IOREAD;
2894         strbuf._ptr = strbuf._base = (unsigned char *) str;
2895         strbuf._cnt = strlen(str);
2896         strbuf._file = _NFILE;
2897         return (vfscanf(&strbuf, "%d", ap))],[cf_cv_func_vsscanf=vfscanf],[
2898 AC_TRY_LINK([
2899 #include <stdarg.h>
2900 #include <stdio.h>],[
2901         FILE strbuf;
2902         char *str = "from";
2903
2904         strbuf._flag = _IOREAD;
2905         strbuf._ptr = strbuf._base = (unsigned char *) str;
2906         strbuf._cnt = strlen(str);
2907         strbuf._file = _NFILE;
2908         return (_doscan(&strbuf, "%d", ap))],[cf_cv_func_vsscanf=_doscan],[
2909 cf_cv_func_vsscanf=no])])])])
2910
2911 case "$cf_cv_func_vsscanf" in
2912 (vsscanf) AC_DEFINE(HAVE_VSSCANF,1,[Define to 1 if we have vsscanf]);;
2913 (vfscanf) AC_DEFINE(HAVE_VFSCANF,1,[Define to 1 if we have vfscanf]);;
2914 (_doscan) AC_DEFINE(HAVE__DOSCAN,1,[Define to 1 if we have _doscan]);;
2915 esac
2916
2917 ])dnl
2918 dnl ---------------------------------------------------------------------------
2919 dnl CF_GCC_ATTRIBUTES version: 24 updated: 2021/03/20 12:00:25
2920 dnl -----------------
2921 dnl Test for availability of useful gcc __attribute__ directives to quiet
2922 dnl compiler warnings.  Though useful, not all are supported -- and contrary
2923 dnl to documentation, unrecognized directives cause older compilers to barf.
2924 AC_DEFUN([CF_GCC_ATTRIBUTES],
2925 [AC_REQUIRE([AC_PROG_FGREP])dnl
2926 AC_REQUIRE([CF_C11_NORETURN])dnl
2927
2928 if test "$GCC" = yes || test "$GXX" = yes
2929 then
2930 cat > conftest.i <<EOF
2931 #ifndef GCC_PRINTF
2932 #define GCC_PRINTF 0
2933 #endif
2934 #ifndef GCC_SCANF
2935 #define GCC_SCANF 0
2936 #endif
2937 #ifndef GCC_NORETURN
2938 #define GCC_NORETURN /* nothing */
2939 #endif
2940 #ifndef GCC_UNUSED
2941 #define GCC_UNUSED /* nothing */
2942 #endif
2943 EOF
2944 if test "$GCC" = yes
2945 then
2946         AC_CHECKING([for $CC __attribute__ directives])
2947 cat > "conftest.$ac_ext" <<EOF
2948 #line __oline__ "${as_me:-configure}"
2949 #include <stdio.h>
2950 #include "confdefs.h"
2951 #include "conftest.h"
2952 #include "conftest.i"
2953 #if     GCC_PRINTF
2954 #define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
2955 #else
2956 #define GCC_PRINTFLIKE(fmt,var) /*nothing*/
2957 #endif
2958 #if     GCC_SCANF
2959 #define GCC_SCANFLIKE(fmt,var)  __attribute__((format(scanf,fmt,var)))
2960 #else
2961 #define GCC_SCANFLIKE(fmt,var)  /*nothing*/
2962 #endif
2963 extern void wow(char *,...) GCC_SCANFLIKE(1,2);
2964 extern GCC_NORETURN void oops(char *,...) GCC_PRINTFLIKE(1,2);
2965 extern GCC_NORETURN void foo(void);
2966 int main(int argc GCC_UNUSED, char *argv[[]] GCC_UNUSED) { (void)argc; (void)argv; return 0; }
2967 EOF
2968         cf_printf_attribute=no
2969         cf_scanf_attribute=no
2970         for cf_attribute in scanf printf unused noreturn
2971         do
2972                 CF_UPPER(cf_ATTRIBUTE,$cf_attribute)
2973                 cf_directive="__attribute__(($cf_attribute))"
2974                 echo "checking for $CC $cf_directive" 1>&AC_FD_CC
2975
2976                 case "$cf_attribute" in
2977                 (printf)
2978                         cf_printf_attribute=yes
2979                         cat >conftest.h <<EOF
2980 #define GCC_$cf_ATTRIBUTE 1
2981 EOF
2982                         ;;
2983                 (scanf)
2984                         cf_scanf_attribute=yes
2985                         cat >conftest.h <<EOF
2986 #define GCC_$cf_ATTRIBUTE 1
2987 EOF
2988                         ;;
2989                 (*)
2990                         cat >conftest.h <<EOF
2991 #define GCC_$cf_ATTRIBUTE $cf_directive
2992 EOF
2993                         ;;
2994                 esac
2995
2996                 if AC_TRY_EVAL(ac_compile); then
2997                         test -n "$verbose" && AC_MSG_RESULT(... $cf_attribute)
2998                         cat conftest.h >>confdefs.h
2999                         case "$cf_attribute" in
3000                         (noreturn)
3001                                 AC_DEFINE_UNQUOTED(GCC_NORETURN,$cf_directive,[Define to noreturn-attribute for gcc])
3002                                 ;;
3003                         (printf)
3004                                 cf_value='/* nothing */'
3005                                 if test "$cf_printf_attribute" != no ; then
3006                                         cf_value='__attribute__((format(printf,fmt,var)))'
3007                                         AC_DEFINE(GCC_PRINTF,1,[Define to 1 if the compiler supports gcc-like printf attribute.])
3008                                 fi
3009                                 AC_DEFINE_UNQUOTED(GCC_PRINTFLIKE(fmt,var),$cf_value,[Define to printf-attribute for gcc])
3010                                 ;;
3011                         (scanf)
3012                                 cf_value='/* nothing */'
3013                                 if test "$cf_scanf_attribute" != no ; then
3014                                         cf_value='__attribute__((format(scanf,fmt,var)))'
3015                                         AC_DEFINE(GCC_SCANF,1,[Define to 1 if the compiler supports gcc-like scanf attribute.])
3016                                 fi
3017                                 AC_DEFINE_UNQUOTED(GCC_SCANFLIKE(fmt,var),$cf_value,[Define to sscanf-attribute for gcc])
3018                                 ;;
3019                         (unused)
3020                                 AC_DEFINE_UNQUOTED(GCC_UNUSED,$cf_directive,[Define to unused-attribute for gcc])
3021                                 ;;
3022                         esac
3023                 fi
3024         done
3025 else
3026         ${FGREP-fgrep} define conftest.i >>confdefs.h
3027 fi
3028 rm -rf ./conftest*
3029 fi
3030 ])dnl
3031 dnl ---------------------------------------------------------------------------
3032 dnl CF_GCC_VERSION version: 8 updated: 2019/09/07 13:38:36
3033 dnl --------------
3034 dnl Find version of gcc, and (because icc/clang pretend to be gcc without being
3035 dnl compatible), attempt to determine if icc/clang is actually used.
3036 AC_DEFUN([CF_GCC_VERSION],[
3037 AC_REQUIRE([AC_PROG_CC])
3038 GCC_VERSION=none
3039 if test "$GCC" = yes ; then
3040         AC_MSG_CHECKING(version of $CC)
3041         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.]].*//'`"
3042         test -z "$GCC_VERSION" && GCC_VERSION=unknown
3043         AC_MSG_RESULT($GCC_VERSION)
3044 fi
3045 CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
3046 CF_CLANG_COMPILER(GCC,CLANG_COMPILER,CFLAGS)
3047 ])dnl
3048 dnl ---------------------------------------------------------------------------
3049 dnl CF_GCC_WARNINGS version: 41 updated: 2021/01/01 16:53:59
3050 dnl ---------------
3051 dnl Check if the compiler supports useful warning options.  There's a few that
3052 dnl we don't use, simply because they're too noisy:
3053 dnl
3054 dnl     -Wconversion (useful in older versions of gcc, but not in gcc 2.7.x)
3055 dnl     -Winline (usually not worthwhile)
3056 dnl     -Wredundant-decls (system headers make this too noisy)
3057 dnl     -Wtraditional (combines too many unrelated messages, only a few useful)
3058 dnl     -Wwrite-strings (too noisy, but should review occasionally).  This
3059 dnl             is enabled for ncurses using "--enable-const".
3060 dnl     -pedantic
3061 dnl
3062 dnl Parameter:
3063 dnl     $1 is an optional list of gcc warning flags that a particular
3064 dnl             application might want to use, e.g., "no-unused" for
3065 dnl             -Wno-unused
3066 dnl Special:
3067 dnl     If $with_ext_const is "yes", add a check for -Wwrite-strings
3068 dnl
3069 AC_DEFUN([CF_GCC_WARNINGS],
3070 [
3071 AC_REQUIRE([CF_GCC_VERSION])
3072 if test "x$have_x" = xyes; then CF_CONST_X_STRING fi
3073 cat > "conftest.$ac_ext" <<EOF
3074 #line __oline__ "${as_me:-configure}"
3075 int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
3076 EOF
3077 if test "$INTEL_COMPILER" = yes
3078 then
3079 # The "-wdXXX" options suppress warnings:
3080 # remark #1419: external declaration in primary source file
3081 # remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
3082 # remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
3083 # remark #193: zero used for undefined preprocessing identifier
3084 # remark #593: variable "curs_sb_left_arrow" was set but never used
3085 # remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
3086 # remark #869: parameter "tw" was never referenced
3087 # remark #981: operands are evaluated in unspecified order
3088 # warning #279: controlling expression is constant
3089
3090         AC_CHECKING([for $CC warning options])
3091         cf_save_CFLAGS="$CFLAGS"
3092         EXTRA_CFLAGS="$EXTRA_CFLAGS -Wall"
3093         for cf_opt in \
3094                 wd1419 \
3095                 wd1683 \
3096                 wd1684 \
3097                 wd193 \
3098                 wd593 \
3099                 wd279 \
3100                 wd810 \
3101                 wd869 \
3102                 wd981
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                         EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
3108                 fi
3109         done
3110         CFLAGS="$cf_save_CFLAGS"
3111 elif test "$GCC" = yes && test "$GCC_VERSION" != "unknown"
3112 then
3113         AC_CHECKING([for $CC warning options])
3114         cf_save_CFLAGS="$CFLAGS"
3115         cf_warn_CONST=""
3116         test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
3117         cf_gcc_warnings="Wignored-qualifiers Wlogical-op Wvarargs"
3118         test "x$CLANG_COMPILER" = xyes && cf_gcc_warnings=
3119         for cf_opt in W Wall \
3120                 Wbad-function-cast \
3121                 Wcast-align \
3122                 Wcast-qual \
3123                 Wdeclaration-after-statement \
3124                 Wextra \
3125                 Winline \
3126                 Wmissing-declarations \
3127                 Wmissing-prototypes \
3128                 Wnested-externs \
3129                 Wpointer-arith \
3130                 Wshadow \
3131                 Wstrict-prototypes \
3132                 Wundef Wno-inline $cf_gcc_warnings $cf_warn_CONST $1
3133         do
3134                 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
3135                 if AC_TRY_EVAL(ac_compile); then
3136                         test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
3137                         case "$cf_opt" in
3138                         (Winline)
3139                                 case "$GCC_VERSION" in
3140                                 ([[34]].*)
3141                                         CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
3142                                         continue;;
3143                                 esac
3144                                 ;;
3145                         (Wpointer-arith)
3146                                 case "$GCC_VERSION" in
3147                                 ([[12]].*)
3148                                         CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
3149                                         continue;;
3150                                 esac
3151                                 ;;
3152                         esac
3153                         EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
3154                 fi
3155         done
3156         CFLAGS="$cf_save_CFLAGS"
3157 fi
3158 rm -rf ./conftest*
3159
3160 AC_SUBST(EXTRA_CFLAGS)
3161 ])dnl
3162 dnl ---------------------------------------------------------------------------
3163 dnl CF_GETOPT_HEADER version: 8 updated: 2021/06/19 19:16:16
3164 dnl ----------------
3165 dnl Check for getopt's variables which are commonly defined in stdlib.h,
3166 dnl unistd.h or (nonstandard) in getopt.h
3167 AC_DEFUN([CF_GETOPT_HEADER],
3168 [
3169 AC_HAVE_HEADERS(unistd.h getopt.h)
3170 AC_CACHE_CHECK(for header declaring getopt variables,cf_cv_getopt_header,[
3171 cf_cv_getopt_header=none
3172 for cf_header in stdio.h stdlib.h unistd.h getopt.h
3173 do
3174 AC_TRY_COMPILE([
3175 #include <$cf_header>],
3176 [int x = optind; char *y = optarg; (void)x; (void)y],
3177 [cf_cv_getopt_header=$cf_header
3178  break])
3179 done
3180 ])
3181 if test "$cf_cv_getopt_header" != none ; then
3182         AC_DEFINE(HAVE_GETOPT_HEADER,1,[Define to 1 if getopt variables are declared in header])
3183 fi
3184 if test "$cf_cv_getopt_header" = getopt.h ; then
3185         AC_DEFINE(NEED_GETOPT_H,1,[Define to 1 if we must include getopt.h])
3186 fi
3187 ])dnl
3188 dnl ---------------------------------------------------------------------------
3189 dnl CF_GNATPREP_OPT_T version: 1 updated: 2014/08/02 18:37:25
3190 dnl -----------------
3191 AC_DEFUN([CF_GNATPREP_OPT_T],[
3192 AC_CACHE_CHECK(if GNATPREP supports -T option,cf_cv_gnatprep_opt_t,[
3193 cf_cv_gnatprep_opt_t=no
3194 gnatprep -T 2>/dev/null >/dev/null && cf_cv_gnatprep_opt_t=yes
3195 ])
3196 test "$cf_cv_gnatprep_opt_t" = yes && GNATPREP_OPTS="-T $GNATPREP_OPTS"
3197 AC_SUBST(GNATPREP_OPTS)
3198 ])dnl
3199 dnl ---------------------------------------------------------------------------
3200 dnl CF_GNAT_GENERICS version: 7 updated: 2021/01/01 13:31:04
3201 dnl ----------------
3202 AC_DEFUN([CF_GNAT_GENERICS],
3203 [
3204 AC_REQUIRE([CF_GNAT_VERSION])
3205
3206 AC_MSG_CHECKING(if GNAT supports generics)
3207 case "$cf_cv_gnat_version" in
3208 (3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*|[[1-9]][[0-9]].[[0-9]]*|20[[0-9]][[0-9]])
3209         cf_gnat_generics=yes
3210         ;;
3211 (*)
3212         cf_gnat_generics=no
3213         ;;
3214 esac
3215 AC_MSG_RESULT($cf_gnat_generics)
3216
3217 if test "$cf_gnat_generics" = yes
3218 then
3219         cf_compile_generics=generics
3220         cf_generic_objects="\${GENOBJS}"
3221 else
3222         cf_compile_generics=
3223         cf_generic_objects=
3224 fi
3225
3226 AC_SUBST(cf_compile_generics)
3227 AC_SUBST(cf_generic_objects)
3228 ])dnl
3229 dnl ---------------------------------------------------------------------------
3230 dnl CF_GNAT_PROJECTS version: 13 updated: 2021/01/02 17:09:14
3231 dnl ----------------
3232 dnl GNAT projects are configured with ".gpr" project files.
3233 dnl GNAT libraries are a further development, using the project feature.
3234 AC_DEFUN([CF_GNAT_PROJECTS],
3235 [
3236 AC_REQUIRE([CF_GNAT_VERSION])
3237 AC_REQUIRE([CF_DISABLE_GNAT_PROJECTS])
3238
3239 cf_gnat_libraries=no
3240 cf_gnat_projects=no
3241
3242 if test "$enable_gnat_projects" != no ; then
3243 AC_MSG_CHECKING(if GNAT supports project files)
3244 case "$cf_cv_gnat_version" in
3245 (3.[[0-9]]*)
3246         ;;
3247 (*)
3248         case "$cf_cv_system_name" in
3249         (cygwin*|msys*)
3250                 ;;
3251         (*)
3252                 rm -rf ./conftest* ./*~conftest*
3253                 if mkdir conftest.src conftest.bin conftest.lib
3254                 then
3255                         cd conftest.src
3256                         rm -rf ./conftest* ./*~conftest*
3257                         cat >>library.gpr <<CF_EOF
3258 project Library is
3259   Kind := External ("LIB_KIND");
3260   for Library_Name use "ConfTest";
3261   for Object_Dir use ".";
3262   for Library_ALI_Dir use External("LIBRARY_DIR");
3263   for Library_Version use External ("SONAME");
3264   for Library_Kind use Kind;
3265   for Library_Dir use External("BUILD_DIR");
3266   Source_Dir := External ("SOURCE_DIR");
3267   for Source_Dirs use (Source_Dir);
3268 end Library;
3269 CF_EOF
3270                         cat >>confpackage.ads <<CF_EOF
3271 package ConfPackage is
3272    procedure conftest;
3273 end ConfPackage;
3274 CF_EOF
3275                         cat >>confpackage.adb <<CF_EOF
3276 with Text_IO;
3277 package body ConfPackage is
3278    procedure conftest is
3279    begin
3280       Text_IO.Put ("Hello World");
3281       Text_IO.New_Line;
3282    end conftest;
3283 end ConfPackage;
3284 CF_EOF
3285                         if ( "$cf_ada_make" $ADAFLAGS \
3286                                         -Plibrary.gpr \
3287                                         -XBUILD_DIR="`cd ../conftest.bin;pwd`" \
3288                                         -XLIBRARY_DIR="`cd ../conftest.lib;pwd`" \
3289                                         -XSOURCE_DIR="`pwd`" \
3290                                         -XSONAME=libConfTest.so.1 \
3291                                         -XLIB_KIND=static 1>&AC_FD_CC 2>&1 ) ; then
3292                                 cf_gnat_projects=yes
3293                         fi
3294                         cd ..
3295                 fi
3296                 if test -f conftest.lib/confpackage.ali
3297                 then
3298                         cf_gnat_libraries=yes
3299                 fi
3300                 rm -rf ./conftest* ./*~conftest*
3301                 ;;
3302         esac
3303         ;;
3304 esac
3305 AC_MSG_RESULT($cf_gnat_projects)
3306 fi # enable_gnat_projects
3307
3308 if test "$cf_gnat_projects" = yes
3309 then
3310         AC_MSG_CHECKING(if GNAT supports libraries)
3311         AC_MSG_RESULT($cf_gnat_libraries)
3312 fi
3313
3314 USE_OLD_MAKERULES=""
3315 USE_GNAT_PROJECTS="#"
3316 USE_GNAT_MAKE_GPR="#"
3317 USE_GNAT_GPRBUILD="#"
3318
3319 if test "$cf_gnat_projects" = yes
3320 then
3321         USE_OLD_MAKERULES="#"
3322         USE_GNAT_PROJECTS=""
3323         if test "$cf_cv_VERSION_GPRBUILD" != no
3324         then
3325                 USE_GNAT_GPRBUILD=""
3326         elif test "$cf_cv_VERSION_GNATMAKE" != no
3327         then
3328                 USE_GNAT_MAKE_GPR=""
3329         else
3330                 AC_MSG_WARN(use old makefile rules since tools are missing)
3331         fi
3332 fi
3333
3334 if test "$cf_gnat_libraries" = yes
3335 then
3336         USE_GNAT_LIBRARIES=""
3337 else
3338         USE_GNAT_LIBRARIES="#"
3339 fi
3340
3341 AC_SUBST(USE_OLD_MAKERULES)
3342 AC_SUBST(USE_GNAT_PROJECTS)
3343 AC_SUBST(USE_GNAT_LIBRARIES)
3344 AC_SUBST(USE_GNAT_MAKE_GPR)
3345 AC_SUBST(USE_GNAT_GPRBUILD)
3346 ])dnl
3347 dnl ---------------------------------------------------------------------------
3348 dnl CF_GNAT_SIGINT version: 2 updated: 2021/01/01 13:31:04
3349 dnl --------------
3350 dnl Check if gnat supports SIGINT, and presumably tasking.  For the latter, it
3351 dnl is noted that gnat may compile a tasking unit even for configurations which
3352 dnl fail at runtime.
3353 AC_DEFUN([CF_GNAT_SIGINT],[
3354 AC_CACHE_CHECK(if GNAT supports SIGINT,cf_cv_gnat_sigint,[
3355 CF_GNAT_TRY_LINK([with Ada.Interrupts.Names;
3356
3357 package ConfTest is
3358
3359    pragma Warnings (Off);  --  the next pragma exists since 3.11p
3360    pragma Unreserve_All_Interrupts;
3361    pragma Warnings (On);
3362
3363    protected Process is
3364       procedure Stop;
3365       function Continue return Boolean;
3366       pragma Attach_Handler (Stop, Ada.Interrupts.Names.SIGINT);
3367    private
3368       Done : Boolean := False;
3369    end Process;
3370
3371 end ConfTest;],
3372 [package body ConfTest is
3373    protected body Process is
3374       procedure Stop is
3375       begin
3376          Done := True;
3377       end Stop;
3378       function Continue return Boolean is
3379       begin
3380          return not Done;
3381       end Continue;
3382    end Process;
3383 end ConfTest;],
3384         [cf_cv_gnat_sigint=yes],
3385         [cf_cv_gnat_sigint=no])])
3386
3387 if test "$cf_cv_gnat_sigint" = yes ; then
3388         USE_GNAT_SIGINT=""
3389 else
3390         USE_GNAT_SIGINT="#"
3391 fi
3392 AC_SUBST(USE_GNAT_SIGINT)
3393 ])dnl
3394 dnl ---------------------------------------------------------------------------
3395 dnl CF_GNAT_TRY_LINK version: 4 updated: 2021/01/01 13:31:04
3396 dnl ----------------
3397 dnl Verify that a test program compiles/links with GNAT.
3398 dnl $cf_ada_make is set to the program that compiles/links
3399 dnl $ADAFLAGS may be set to the GNAT flags.
3400 dnl
3401 dnl $1 is the text of the spec
3402 dnl $2 is the text of the body
3403 dnl $3 is the shell command to execute if successful
3404 dnl $4 is the shell command to execute if not successful
3405 AC_DEFUN([CF_GNAT_TRY_LINK],
3406 [
3407 rm -rf ./conftest* ./*~conftest*
3408 cat >>conftest.ads <<CF_EOF
3409 $1
3410 CF_EOF
3411 cat >>conftest.adb <<CF_EOF
3412 $2
3413 CF_EOF
3414 if ( "$cf_ada_make" $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
3415 ifelse($3,,      :,[      $3])
3416 ifelse($4,,,[else
3417    $4])
3418 fi
3419 rm -rf ./conftest* ./*~conftest*
3420 ])dnl
3421 dnl ---------------------------------------------------------------------------
3422 dnl CF_GNAT_TRY_RUN version: 6 updated: 2021/01/01 13:31:04
3423 dnl ---------------
3424 dnl Verify that a test program compiles and runs with GNAT
3425 dnl $cf_ada_make is set to the program that compiles/links
3426 dnl $ADAFLAGS may be set to the GNAT flags.
3427 dnl
3428 dnl $1 is the text of the spec
3429 dnl $2 is the text of the body
3430 dnl $3 is the shell command to execute if successful
3431 dnl $4 is the shell command to execute if not successful
3432 AC_DEFUN([CF_GNAT_TRY_RUN],
3433 [
3434 rm -rf ./conftest* ./*~conftest*
3435 cat >>conftest.ads <<CF_EOF
3436 $1
3437 CF_EOF
3438 cat >>conftest.adb <<CF_EOF
3439 $2
3440 CF_EOF
3441 if ( "$cf_ada_make" $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
3442    if ( ./conftest 1>&AC_FD_CC 2>&1 ) ; then
3443 ifelse($3,,      :,[      $3])
3444 ifelse($4,,,[   else
3445       $4])
3446    fi
3447 ifelse($4,,,[else
3448    $4])
3449 fi
3450 rm -rf ./conftest* ./*~conftest*
3451 ])dnl
3452 dnl ---------------------------------------------------------------------------
3453 dnl CF_GNAT_VERSION version: 22 updated: 2019/12/31 08:53:54
3454 dnl ---------------
3455 dnl $1 = cache variable to update
3456 dnl $2 = program name
3457 dnl Verify version of GNAT or related tool
3458 AC_DEFUN([CF_GNAT_VERSION],
3459 [
3460 AC_CACHE_CHECK(for ifelse($2,,gnat,$2) version, cf_cv_gnat_version,[
3461 cf_cv_gnat_version=`ifelse($2,,${cf_ada_make:-gnatmake},$2) --version 2>&1 | \
3462         grep '[[0-9]].[[0-9]][[0-9]]*' |\
3463         sed -e '2,$d' -e 's/[[^0-9 \.]]//g' -e 's/^[[ ]]*//' -e 's/ .*//'`
3464 ])
3465 test -z "$cf_cv_gnat_version" && cf_cv_gnat_version=no
3466 ifelse($1,,,[eval $1=$cf_cv_gnat_version; unset cf_cv_gnat_version])
3467 ])dnl
3468 dnl ---------------------------------------------------------------------------
3469 dnl CF_GNU_SOURCE version: 10 updated: 2018/12/10 20:09:41
3470 dnl -------------
3471 dnl Check if we must define _GNU_SOURCE to get a reasonable value for
3472 dnl _XOPEN_SOURCE, upon which many POSIX definitions depend.  This is a defect
3473 dnl (or misfeature) of glibc2, which breaks portability of many applications,
3474 dnl since it is interwoven with GNU extensions.
3475 dnl
3476 dnl Well, yes we could work around it...
3477 dnl
3478 dnl Parameters:
3479 dnl     $1 is the nominal value for _XOPEN_SOURCE
3480 AC_DEFUN([CF_GNU_SOURCE],
3481 [
3482 cf_gnu_xopen_source=ifelse($1,,500,$1)
3483
3484 AC_CACHE_CHECK(if this is the GNU C library,cf_cv_gnu_library,[
3485 AC_TRY_COMPILE([#include <sys/types.h>],[
3486         #if __GLIBC__ > 0 && __GLIBC_MINOR__ >= 0
3487                 return 0;
3488         #elif __NEWLIB__ > 0 && __NEWLIB_MINOR__ >= 0
3489                 return 0;
3490         #else
3491         #       error not GNU C library
3492         #endif],
3493         [cf_cv_gnu_library=yes],
3494         [cf_cv_gnu_library=no])
3495 ])
3496
3497 if test x$cf_cv_gnu_library = xyes; then
3498
3499         # With glibc 2.19 (13 years after this check was begun), _DEFAULT_SOURCE
3500         # was changed to help a little.  newlib incorporated the change about 4
3501         # years later.
3502         AC_CACHE_CHECK(if _DEFAULT_SOURCE can be used as a basis,cf_cv_gnu_library_219,[
3503                 cf_save="$CPPFLAGS"
3504                 CF_APPEND_TEXT(CPPFLAGS,-D_DEFAULT_SOURCE)
3505                 AC_TRY_COMPILE([#include <sys/types.h>],[
3506                         #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 19) || (__GLIBC__ > 2)
3507                                 return 0;
3508                         #elif (__NEWLIB__ == 2 && __NEWLIB_MINOR__ >= 4) || (__GLIBC__ > 3)
3509                                 return 0;
3510                         #else
3511                         #       error GNU C library __GLIBC__.__GLIBC_MINOR__ is too old
3512                         #endif],
3513                         [cf_cv_gnu_library_219=yes],
3514                         [cf_cv_gnu_library_219=no])
3515                 CPPFLAGS="$cf_save"
3516         ])
3517
3518         if test "x$cf_cv_gnu_library_219" = xyes; then
3519                 cf_save="$CPPFLAGS"
3520                 AC_CACHE_CHECK(if _XOPEN_SOURCE=$cf_gnu_xopen_source works with _DEFAULT_SOURCE,cf_cv_gnu_dftsrc_219,[
3521                         CF_ADD_CFLAGS(-D_DEFAULT_SOURCE -D_XOPEN_SOURCE=$cf_gnu_xopen_source)
3522                         AC_TRY_COMPILE([
3523                                 #include <limits.h>
3524                                 #include <sys/types.h>
3525                                 ],[
3526                                 #if (_XOPEN_SOURCE >= $cf_gnu_xopen_source) && (MB_LEN_MAX > 1)
3527                                         return 0;
3528                                 #else
3529                                 #       error GNU C library is too old
3530                                 #endif],
3531                                 [cf_cv_gnu_dftsrc_219=yes],
3532                                 [cf_cv_gnu_dftsrc_219=no])
3533                         ])
3534                 test "x$cf_cv_gnu_dftsrc_219" = "xyes" || CPPFLAGS="$cf_save"
3535         else
3536                 cf_cv_gnu_dftsrc_219=maybe
3537         fi
3538
3539         if test "x$cf_cv_gnu_dftsrc_219" != xyes; then
3540
3541                 AC_CACHE_CHECK(if we must define _GNU_SOURCE,cf_cv_gnu_source,[
3542                 AC_TRY_COMPILE([#include <sys/types.h>],[
3543                         #ifndef _XOPEN_SOURCE
3544                         #error  expected _XOPEN_SOURCE to be defined
3545                         #endif],
3546                         [cf_cv_gnu_source=no],
3547                         [cf_save="$CPPFLAGS"
3548                          CF_ADD_CFLAGS(-D_GNU_SOURCE)
3549                          AC_TRY_COMPILE([#include <sys/types.h>],[
3550                                 #ifdef _XOPEN_SOURCE
3551                                 #error  expected _XOPEN_SOURCE to be undefined
3552                                 #endif],
3553                                 [cf_cv_gnu_source=no],
3554                                 [cf_cv_gnu_source=yes])
3555                         CPPFLAGS="$cf_save"
3556                         ])
3557                 ])
3558
3559                 if test "$cf_cv_gnu_source" = yes
3560                 then
3561                 AC_CACHE_CHECK(if we should also define _DEFAULT_SOURCE,cf_cv_default_source,[
3562                         CF_APPEND_TEXT(CPPFLAGS,-D_GNU_SOURCE)
3563                         AC_TRY_COMPILE([#include <sys/types.h>],[
3564                                 #ifdef _DEFAULT_SOURCE
3565                                 #error  expected _DEFAULT_SOURCE to be undefined
3566                                 #endif],
3567                                 [cf_cv_default_source=no],
3568                                 [cf_cv_default_source=yes])
3569                         ])
3570                         if test "$cf_cv_default_source" = yes
3571                         then
3572                                 CF_APPEND_TEXT(CPPFLAGS,-D_DEFAULT_SOURCE)
3573                         fi
3574                 fi
3575         fi
3576
3577 fi
3578 ])dnl
3579 dnl ---------------------------------------------------------------------------
3580 dnl CF_GPP_LIBRARY version: 13 updated: 2021/01/01 13:31:04
3581 dnl --------------
3582 dnl If we're trying to use g++, test if libg++ is installed (a rather common
3583 dnl problem :-).  If we have the compiler but no library, we'll be able to
3584 dnl configure, but won't be able to build the c++ demo program.
3585 AC_DEFUN([CF_GPP_LIBRARY],
3586 [
3587 cf_cxx_library=unknown
3588 case "$cf_cv_system_name" in
3589 (os2*)
3590         cf_gpp_libname=gpp
3591         ;;
3592 (*)
3593         cf_gpp_libname=g++
3594         ;;
3595 esac
3596 if test "$GXX" = yes; then
3597         AC_MSG_CHECKING([for lib$cf_gpp_libname])
3598         cf_save="$LIBS"
3599         CF_ADD_LIB($cf_gpp_libname)
3600         AC_TRY_LINK([
3601 #include <$cf_gpp_libname/builtin.h>
3602         ],
3603         [two_arg_error_handler_t foo2 = lib_error_handler],
3604         [cf_cxx_library=yes
3605          CF_ADD_LIB($cf_gpp_libname,CXXLIBS)
3606          if test "$cf_gpp_libname" = cpp ; then
3607             AC_DEFINE(HAVE_GPP_BUILTIN_H,1,[Define to 1 if we have gpp builtin.h])
3608          else
3609             AC_DEFINE(HAVE_GXX_BUILTIN_H,1,[Define to 1 if we have g++ builtin.h])
3610          fi],
3611         [AC_TRY_LINK([
3612 #include <builtin.h>
3613         ],
3614         [two_arg_error_handler_t foo2 = lib_error_handler],
3615         [cf_cxx_library=yes
3616          CF_ADD_LIB($cf_gpp_libname,CXXLIBS)
3617          AC_DEFINE(HAVE_BUILTIN_H,1,[Define to 1 if we have builtin.h])],
3618         [cf_cxx_library=no])])
3619         LIBS="$cf_save"
3620         AC_MSG_RESULT($cf_cxx_library)
3621 fi
3622 ])dnl
3623 dnl ---------------------------------------------------------------------------
3624 dnl CF_GXX_VERSION version: 8 updated: 2017/02/11 14:48:57
3625 dnl --------------
3626 dnl Check for version of g++
3627 AC_DEFUN([CF_GXX_VERSION],[
3628 AC_REQUIRE([AC_PROG_CPP])
3629 GXX_VERSION=none
3630 if test "$GXX" = yes; then
3631         AC_MSG_CHECKING(version of ${CXX:-g++})
3632         GXX_VERSION="`${CXX:-g++} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
3633         if test -z "$GXX_VERSION"
3634         then
3635                 GXX_VERSION=unknown
3636                 GXX=no
3637         fi
3638         AC_MSG_RESULT($GXX_VERSION)
3639 fi
3640 ])dnl
3641 dnl ---------------------------------------------------------------------------
3642 dnl CF_GXX_WARNINGS version: 11 updated: 2021/01/08 16:50:55
3643 dnl ---------------
3644 dnl Check if the compiler supports useful warning options.
3645 dnl
3646 dnl Most of gcc's options apply to g++, except:
3647 dnl     -Wbad-function-cast
3648 dnl     -Wmissing-declarations
3649 dnl     -Wnested-externs
3650 dnl
3651 dnl Omit a few (for now):
3652 dnl     -Winline
3653 dnl
3654 dnl Parameter:
3655 dnl     $1 is an optional list of g++ warning flags that a particular
3656 dnl             application might want to use, e.g., "no-unused" for
3657 dnl             -Wno-unused
3658 dnl Special:
3659 dnl     If $with_ext_const is "yes", add a check for -Wwrite-strings
3660 dnl
3661 AC_DEFUN([CF_GXX_WARNINGS],
3662 [
3663
3664 CF_INTEL_COMPILER(GXX,INTEL_CPLUSPLUS,CXXFLAGS)
3665 CF_CLANG_COMPILER(GXX,CLANG_CPLUSPLUS,CXXFLAGS)
3666
3667 AC_REQUIRE([CF_GXX_VERSION])
3668
3669 AC_LANG_SAVE
3670 AC_LANG_CPLUSPLUS
3671
3672 cat > conftest.$ac_ext <<EOF
3673 #line __oline__ "configure"
3674 int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
3675 EOF
3676
3677 if test "$INTEL_CPLUSPLUS" = yes
3678 then
3679 # The "-wdXXX" options suppress warnings:
3680 # remark #1419: external declaration in primary source file
3681 # remark #1682: implicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
3682 # remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
3683 # remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
3684 # remark #193: zero used for undefined preprocessing identifier
3685 # remark #593: variable "curs_sb_left_arrow" was set but never used
3686 # remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
3687 # remark #869: parameter "tw" was never referenced
3688 # remark #981: operands are evaluated in unspecified order
3689 # warning #269: invalid format string conversion
3690
3691         AC_CHECKING([for $CC warning options])
3692         cf_save_CXXFLAGS="$CXXFLAGS"
3693         EXTRA_CXXFLAGS="-Wall"
3694         for cf_opt in \
3695                 wd1419 \
3696                 wd1682 \
3697                 wd1683 \
3698                 wd1684 \
3699                 wd193 \
3700                 wd279 \
3701                 wd593 \
3702                 wd810 \
3703                 wd869 \
3704                 wd981
3705         do
3706                 CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -$cf_opt"
3707                 if AC_TRY_EVAL(ac_compile); then
3708                         test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
3709                         EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
3710                 fi
3711         done
3712         CXXFLAGS="$cf_save_CXXFLAGS"
3713
3714 elif test "$GXX" = yes
3715 then
3716         AC_CHECKING([for $CXX warning options])
3717         cf_save_CXXFLAGS="$CXXFLAGS"
3718         EXTRA_CXXFLAGS="-W -Wall"
3719         cf_gxx_extra_warnings=""
3720         test "$with_ext_const" = yes && cf_gxx_extra_warnings="Wwrite-strings"
3721         case "$GXX_VERSION" in
3722         ([[1-2]].*)
3723                 ;;
3724         (*)
3725                 cf_gxx_extra_warnings="$cf_gxx_extra_warnings Weffc++"
3726                 ;;
3727         esac
3728         for cf_opt in \
3729                 Wabi \
3730                 fabi-version=0 \
3731                 Wextra \
3732                 Wignored-qualifiers \
3733                 Wlogical-op \
3734                 Woverloaded-virtual \
3735                 Wsign-promo \
3736                 Wsynth \
3737                 Wold-style-cast \
3738                 Wcast-align \
3739                 Wcast-qual \
3740                 Wpointer-arith \
3741                 Wshadow \
3742                 Wundef $cf_gxx_extra_warnings $1
3743         do
3744                 CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -Werror -$cf_opt"
3745                 if AC_TRY_EVAL(ac_compile); then
3746                         test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
3747                         EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
3748                 else
3749                         test -n "$verbose" && AC_MSG_RESULT(... no -$cf_opt)
3750                 fi
3751         done
3752         CXXFLAGS="$cf_save_CXXFLAGS"
3753 fi
3754
3755 rm -rf ./conftest*
3756 AC_LANG_RESTORE
3757 AC_SUBST(EXTRA_CXXFLAGS)
3758 ])dnl
3759 dnl ---------------------------------------------------------------------------
3760 dnl CF_HASHED_DB version: 7 updated: 2015/04/18 08:56:57
3761 dnl ------------
3762 dnl Look for an instance of the Berkeley hashed database.
3763 dnl
3764 dnl $1 = optional parameter, to specify install-prefix for the database.
3765 AC_DEFUN([CF_HASHED_DB],
3766 [
3767 ifelse([$1],,,[
3768 case $1 in
3769 (yes|*able*)
3770         ;;
3771 (*)
3772         if test -d "$1" ; then
3773                 CF_ADD_INCDIR($1/include)
3774                 CF_ADD_LIBDIR($1/lib)
3775         else
3776                 case "$1" in
3777                 (./*|../*|/*)
3778                         AC_MSG_WARN(no such directory $1)
3779                         ;;
3780                 (*)
3781                         CF_FIND_SUB_INCDIR($1)
3782                         CF_FIND_SUB_LIBDIR($1)
3783                         ;;
3784                 esac
3785         fi
3786 esac
3787 ])
3788 AC_CHECK_HEADER(db.h,[
3789 CF_HASHED_DB_VERSION
3790 if test "$cf_cv_hashed_db_version" = unknown ; then
3791         AC_MSG_ERROR(Cannot determine version of db)
3792 else
3793         CF_HASHED_DB_LIBS
3794         if test "$cf_cv_hashed_db_libs" = unknown ; then
3795                 AC_MSG_ERROR(Cannot determine library for db)
3796         elif test "$cf_cv_hashed_db_libs" != default ; then
3797                 CF_ADD_LIB($cf_cv_hashed_db_libs)
3798         fi
3799 fi
3800 ],[
3801         AC_MSG_ERROR(Cannot find db.h)
3802 ])
3803 ])dnl
3804 dnl ---------------------------------------------------------------------------
3805 dnl CF_HASHED_DB_LIBS version: 10 updated: 2021/01/02 17:09:14
3806 dnl -----------------
3807 dnl Given that we have the header and version for hashed database, find the
3808 dnl library information.
3809 AC_DEFUN([CF_HASHED_DB_LIBS],
3810 [
3811 AC_CACHE_CHECK(for db libraries, cf_cv_hashed_db_libs,[
3812 cf_cv_hashed_db_libs=unknown
3813 for cf_db_libs in "" db$cf_cv_hashed_db_version db-$cf_cv_hashed_db_version db ''
3814 do
3815         cf_save_libs="$LIBS"
3816         if test -n "$cf_db_libs"; then
3817                 CF_ADD_LIB($cf_db_libs)
3818         fi
3819         CF_MSG_LOG(checking for library $cf_db_libs)
3820         AC_TRY_LINK([
3821 $ac_includes_default
3822 #include <db.h>
3823 ],[
3824         char *path = "/tmp/foo";
3825 #ifdef DB_VERSION_MAJOR
3826 #if DB_VERSION_MAJOR >= 4
3827         DB *result = 0;
3828         db_create(&result, NULL, 0);
3829         result->open(result,
3830                 NULL,
3831                 path,
3832                 path,
3833                 DB_HASH,
3834                 DB_CREATE,
3835                 0644);
3836 #elif DB_VERSION_MAJOR >= 3
3837         DB *result = 0;
3838         db_create(&result, NULL, 0);
3839         result->open(result,
3840                 path,
3841                 path,
3842                 DB_HASH,
3843                 DB_CREATE,
3844                 0644);
3845 #elif DB_VERSION_MAJOR >= 2
3846         DB *result = 0;
3847         db_open(path,
3848                 DB_HASH,
3849                 DB_CREATE,
3850                 0644,
3851                 (DB_ENV *) 0,
3852                 (DB_INFO *) 0,
3853                 &result);
3854 #endif /* DB_VERSION_MAJOR */
3855 #else
3856         DB *result = dbopen(path,
3857                      2,
3858                      0644,
3859                      DB_HASH,
3860                      0);
3861 #endif
3862         ${cf_cv_main_return:-return}(result != 0)
3863 ],[
3864         if test -n "$cf_db_libs" ; then
3865                 cf_cv_hashed_db_libs=$cf_db_libs
3866         else
3867                 cf_cv_hashed_db_libs=default
3868         fi
3869         LIBS="$cf_save_libs"
3870         break
3871 ])
3872         LIBS="$cf_save_libs"
3873 done
3874 ])
3875 ])dnl
3876 dnl ---------------------------------------------------------------------------
3877 dnl CF_HASHED_DB_VERSION version: 4 updated: 2014/04/12 16:47:01
3878 dnl --------------------
3879 dnl Given that we have the header file for hashed database, find the version
3880 dnl information.
3881 AC_DEFUN([CF_HASHED_DB_VERSION],
3882 [
3883 AC_CACHE_CHECK(for version of db, cf_cv_hashed_db_version,[
3884 cf_cv_hashed_db_version=unknown
3885
3886 for cf_db_version in 1 2 3 4 5 6
3887 do
3888         CF_MSG_LOG(checking for db version $cf_db_version)
3889         AC_TRY_COMPILE([
3890 $ac_includes_default
3891 #include <db.h>
3892
3893 #ifdef DB_VERSION_MAJOR
3894         /* db2 (DB_VERSION_MAJOR=2) has also DB_VERSION_MINOR, tested with 7 */
3895 #if $cf_db_version == DB_VERSION_MAJOR
3896         /* ok */
3897 #else
3898         make an error
3899 #endif
3900 #else
3901 #if $cf_db_version == 1
3902         /* ok: assuming this is DB 1.8.5 */
3903 #else
3904         make an error
3905 #endif
3906 #endif
3907 ],[DBT *foo = 0],[
3908         cf_cv_hashed_db_version=$cf_db_version
3909         break
3910         ])
3911 done
3912 ])
3913 ])dnl
3914 dnl ---------------------------------------------------------------------------
3915 dnl CF_HEADER_PATH version: 15 updated: 2021/01/01 13:31:04
3916 dnl --------------
3917 dnl Construct a search-list of directories for a nonstandard header-file
3918 dnl
3919 dnl Parameters
3920 dnl     $1 = the variable to return as result
3921 dnl     $2 = the package name
3922 AC_DEFUN([CF_HEADER_PATH],
3923 [
3924 $1=
3925
3926 # collect the current set of include-directories from compiler flags
3927 cf_header_path_list=""
3928 if test -n "${CFLAGS}${CPPFLAGS}" ; then
3929         for cf_header_path in $CPPFLAGS $CFLAGS
3930         do
3931                 case "$cf_header_path" in
3932                 (-I*)
3933                         cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'`
3934                         CF_ADD_SUBDIR_PATH($1,$2,include,$cf_header_path,NONE)
3935                         cf_header_path_list="$cf_header_path_list [$]$1"
3936                         ;;
3937                 esac
3938         done
3939 fi
3940
3941 # add the variations for the package we are looking for
3942 CF_SUBDIR_PATH($1,$2,include)
3943
3944 test "$includedir" != NONE && \
3945 test "$includedir" != "/usr/include" && \
3946 test -d "$includedir" && {
3947         test -d "$includedir" &&    $1="[$]$1 $includedir"
3948         test -d "$includedir/$2" && $1="[$]$1 $includedir/$2"
3949 }
3950
3951 test "$oldincludedir" != NONE && \
3952 test "$oldincludedir" != "/usr/include" && \
3953 test -d "$oldincludedir" && {
3954         test -d "$oldincludedir"    && $1="[$]$1 $oldincludedir"
3955         test -d "$oldincludedir/$2" && $1="[$]$1 $oldincludedir/$2"
3956 }
3957
3958 $1="[$]$1 $cf_header_path_list"
3959 ])dnl
3960 dnl ---------------------------------------------------------------------------
3961 dnl CF_HELP_MESSAGE version: 4 updated: 2019/12/31 08:53:54
3962 dnl ---------------
3963 dnl Insert text into the help-message, for readability, from AC_ARG_WITH.
3964 AC_DEFUN([CF_HELP_MESSAGE],
3965 [CF_ACVERSION_CHECK(2.53,[],[
3966 AC_DIVERT_HELP($1)])dnl
3967 ])dnl
3968 dnl ---------------------------------------------------------------------------
3969 dnl CF_INCLUDE_DIRS version: 10 updated: 2014/09/19 20:58:42
3970 dnl ---------------
3971 dnl Construct the list of include-options according to whether we're building
3972 dnl in the source directory or using '--srcdir=DIR' option.
3973 AC_DEFUN([CF_INCLUDE_DIRS],
3974 [
3975 if test "$srcdir" != "."; then
3976         CPPFLAGS="-I\${srcdir}/../include $CPPFLAGS"
3977 fi
3978 CPPFLAGS="-I../include $CPPFLAGS"
3979 if test "$srcdir" != "."; then
3980         CPPFLAGS="-I\${srcdir} $CPPFLAGS"
3981 fi
3982 CPPFLAGS="-I. $CPPFLAGS"
3983 AC_SUBST(CPPFLAGS)
3984 ])dnl
3985 dnl ---------------------------------------------------------------------------
3986 dnl CF_INSTALL_OPTS version: 2 updated: 2018/08/18 12:19:21
3987 dnl ---------------
3988 dnl prompt for/fill-in useful install-program options
3989 AC_DEFUN([CF_INSTALL_OPTS],
3990 [
3991 CF_INSTALL_OPT_S
3992 CF_INSTALL_OPT_P
3993 CF_INSTALL_OPT_O
3994 ])dnl
3995 dnl ---------------------------------------------------------------------------
3996 dnl CF_INSTALL_OPT_O version: 3 updated: 2020/12/31 20:19:42
3997 dnl ----------------
3998 dnl Almost all "install" programs default to the current user's ownership.
3999 dnl Almost - MINIX is an exception.
4000 AC_DEFUN([CF_INSTALL_OPT_O],
4001 [
4002 AC_MSG_CHECKING(if install needs to be told about ownership)
4003 case `$ac_config_guess` in
4004 (*minix)
4005         with_install_o=yes
4006         ;;
4007 (*)
4008         with_install_o=no
4009         ;;
4010 esac
4011
4012 AC_MSG_RESULT($with_install_o)
4013 if test "x$with_install_o" = xyes
4014 then
4015         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'`"
4016 else
4017         INSTALL_OPT_O=
4018 fi
4019
4020 AC_SUBST(INSTALL_OPT_O)
4021 ])dnl
4022 dnl ---------------------------------------------------------------------------
4023 dnl CF_INSTALL_OPT_P version: 3 updated: 2021/01/01 13:31:04
4024 dnl ----------------
4025 dnl Some install-programs accept a "-p" option to preserve file modification
4026 dnl timestamps.  That can be useful as an install option, as well as a way to
4027 dnl avoid the need for ranlib after copying a static archive.
4028 AC_DEFUN([CF_INSTALL_OPT_P],
4029 [
4030 : "${INSTALL:=install}"
4031 AC_CACHE_CHECK(if install accepts -p option, cf_cv_install_p,[
4032         rm -rf ./conftest*
4033         date >conftest.in
4034         mkdir conftest.out
4035         sleep 3
4036         if $INSTALL -p conftest.in conftest.out 2>/dev/null
4037         then
4038                 if test -f conftest.out/conftest.in
4039                 then
4040                         test conftest.in -nt conftest.out/conftest.in 2>conftest.err && \
4041                         test conftest.out/conftest.in -nt conftest.in 2>conftest.err
4042                         if test -s conftest.err
4043                         then
4044                                 cf_cv_install_p=no
4045                         else
4046                                 cf_cv_install_p=yes
4047                         fi
4048                 else
4049                         cf_cv_install_p=no
4050                 fi
4051         else
4052                 cf_cv_install_p=no
4053         fi
4054         rm -rf ./conftest*
4055 ])
4056 ])dnl
4057 dnl ---------------------------------------------------------------------------
4058 dnl CF_INSTALL_OPT_S version: 3 updated: 2021/01/05 19:23:48
4059 dnl ----------------
4060 dnl By default, we should strip executables which are installed, but leave the
4061 dnl ability to suppress that for unit-testing.
4062 AC_DEFUN([CF_INSTALL_OPT_S],
4063 [
4064 AC_MSG_CHECKING(if you want to install stripped executables)
4065 CF_ARG_DISABLE(stripping,
4066         [  --disable-stripping     do not strip (debug info) installed executables],
4067         [enable_stripping=no],
4068         [enable_stripping=yes])
4069 AC_MSG_RESULT($enable_stripping)
4070
4071 if test "$enable_stripping" = yes
4072 then
4073         INSTALL_OPT_S="-s"
4074 else
4075         INSTALL_OPT_S=
4076 fi
4077 AC_SUBST(INSTALL_OPT_S)
4078 ])dnl
4079 dnl ---------------------------------------------------------------------------
4080 dnl CF_INTEL_COMPILER version: 8 updated: 2021/01/01 16:53:59
4081 dnl -----------------
4082 dnl Check if the given compiler is really the Intel compiler for Linux.  It
4083 dnl tries to imitate gcc, but does not return an error when it finds a mismatch
4084 dnl between prototypes, e.g., as exercised by CF_MISSING_CHECK.
4085 dnl
4086 dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
4087 dnl ensure that it is not mistaken for gcc/g++.  It is normally invoked from
4088 dnl the wrappers for gcc and g++ warnings.
4089 dnl
4090 dnl $1 = GCC (default) or GXX
4091 dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS
4092 dnl $3 = CFLAGS (default) or CXXFLAGS
4093 AC_DEFUN([CF_INTEL_COMPILER],[
4094 AC_REQUIRE([AC_CANONICAL_HOST])
4095 ifelse([$2],,INTEL_COMPILER,[$2])=no
4096
4097 if test "$ifelse([$1],,[$1],GCC)" = yes ; then
4098         case "$host_os" in
4099         (linux*|gnu*)
4100                 AC_MSG_CHECKING(if this is really Intel ifelse([$1],GXX,C++,C) compiler)
4101                 cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
4102                 ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -no-gcc"
4103                 AC_TRY_COMPILE([],[
4104 #ifdef __INTEL_COMPILER
4105 #else
4106 make an error
4107 #endif
4108 ],[ifelse([$2],,INTEL_COMPILER,[$2])=yes
4109 cf_save_CFLAGS="$cf_save_CFLAGS -we147"
4110 ],[])
4111                 ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
4112                 AC_MSG_RESULT($ifelse([$2],,INTEL_COMPILER,[$2]))
4113                 ;;
4114         esac
4115 fi
4116 ])dnl
4117 dnl ---------------------------------------------------------------------------
4118 dnl CF_ISASCII version: 4 updated: 2012/10/06 17:56:13
4119 dnl ----------
4120 dnl Check if we have either a function or macro for 'isascii()'.
4121 AC_DEFUN([CF_ISASCII],
4122 [
4123 AC_MSG_CHECKING(for isascii)
4124 AC_CACHE_VAL(cf_cv_have_isascii,[
4125         AC_TRY_LINK([#include <ctype.h>],[int x = isascii(' ')],
4126         [cf_cv_have_isascii=yes],
4127         [cf_cv_have_isascii=no])
4128 ])dnl
4129 AC_MSG_RESULT($cf_cv_have_isascii)
4130 test "$cf_cv_have_isascii" = yes && AC_DEFINE(HAVE_ISASCII,1,[Define to 1 if we have isascii()])
4131 ])dnl
4132 dnl ---------------------------------------------------------------------------
4133 dnl CF_LARGEFILE version: 12 updated: 2020/03/19 20:23:48
4134 dnl ------------
4135 dnl Add checks for large file support.
4136 AC_DEFUN([CF_LARGEFILE],[
4137 ifdef([AC_FUNC_FSEEKO],[
4138         AC_SYS_LARGEFILE
4139         if test "$enable_largefile" != no ; then
4140         AC_FUNC_FSEEKO
4141
4142         # Normally we would collect these definitions in the config.h,
4143         # but (like _XOPEN_SOURCE), some environments rely on having these
4144         # defined before any of the system headers are included.  Another
4145         # case comes up with C++, e.g., on AIX the compiler compiles the
4146         # header files by themselves before looking at the body files it is
4147         # told to compile.  For ncurses, those header files do not include
4148         # the config.h
4149         if test "$ac_cv_sys_large_files" != no
4150         then
4151                 CF_APPEND_TEXT(CPPFLAGS,-D_LARGE_FILES)
4152         fi
4153         if test "$ac_cv_sys_largefile_source" != no
4154         then
4155                 CF_APPEND_TEXT(CPPFLAGS,-D_LARGEFILE_SOURCE)
4156         fi
4157         if test "$ac_cv_sys_file_offset_bits" != no
4158         then
4159                 CF_APPEND_TEXT(CPPFLAGS,-D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits)
4160         fi
4161
4162         AC_CACHE_CHECK(whether to use struct dirent64, cf_cv_struct_dirent64,[
4163                 AC_TRY_COMPILE([
4164 #pragma GCC diagnostic error "-Wincompatible-pointer-types"
4165 #include <sys/types.h>
4166 #include <dirent.h>
4167                 ],[
4168                 /* if transitional largefile support is setup, this is true */
4169                 extern struct dirent64 * readdir(DIR *);
4170                 struct dirent64 *x = readdir((DIR *)0);
4171                 struct dirent *y = readdir((DIR *)0);
4172                 int z = x - y;
4173                 (void)z;
4174                 ],
4175                 [cf_cv_struct_dirent64=yes],
4176                 [cf_cv_struct_dirent64=no])
4177         ])
4178         test "$cf_cv_struct_dirent64" = yes && AC_DEFINE(HAVE_STRUCT_DIRENT64,1,[Define to 1 if we have struct dirent64])
4179         fi
4180 ])
4181 ])
4182 dnl ---------------------------------------------------------------------------
4183 dnl CF_LDFLAGS_STATIC version: 14 updated: 2021/01/02 17:09:14
4184 dnl -----------------
4185 dnl Check for compiler/linker flags used to temporarily force usage of static
4186 dnl libraries.  This depends on the compiler and platform.  Use this to help
4187 dnl ensure that the linker picks up a given library based on its position in
4188 dnl the list of linker options and libraries.
4189 AC_DEFUN([CF_LDFLAGS_STATIC],[
4190
4191 if test "$GCC" = yes ; then
4192         case "$cf_cv_system_name" in
4193         (OS/2*|os2*|aix[[4]]*|solaris2.1[[0-9]]|darwin*)
4194                 LDFLAGS_STATIC=
4195                 LDFLAGS_SHARED=
4196                 ;;
4197         (*)     # normally, except when broken
4198                 LDFLAGS_STATIC=-static
4199                 LDFLAGS_SHARED=-dynamic
4200                 ;;
4201         esac
4202 else
4203         case "$cf_cv_system_name" in
4204         (aix[[4-7]]*)   # from ld manpage
4205                 LDFLAGS_STATIC=-bstatic
4206                 LDFLAGS_SHARED=-bdynamic
4207                 ;;
4208         (hpux*)         # from ld manpage for hpux10.20, hpux11.11
4209                 # We could also use just "archive" and "shared".
4210                 LDFLAGS_STATIC=-Wl,-a,archive_shared
4211                 LDFLAGS_SHARED=-Wl,-a,shared_archive
4212                 ;;
4213         (irix*)         # from ld manpage IRIX64
4214                 LDFLAGS_STATIC=-Bstatic
4215                 LDFLAGS_SHARED=-Bdynamic
4216                 ;;
4217         (osf[[45]]*)    # from ld manpage osf4.0d, osf5.1
4218                 # alternative "-oldstyle_liblookup" (not in cc manpage)
4219                 LDFLAGS_STATIC=-noso
4220                 LDFLAGS_SHARED=-so_archive
4221                 ;;
4222         (solaris2*)
4223                 LDFLAGS_STATIC=-Bstatic
4224                 LDFLAGS_SHARED=-Bdynamic
4225                 ;;
4226         esac
4227 fi
4228
4229 if test -n "$LDFLAGS_STATIC" && test -n "$LDFLAGS_SHARED"
4230 then
4231         AC_MSG_CHECKING(if linker supports switching between static/dynamic)
4232
4233         rm -f libconftest.a
4234         cat >conftest.$ac_ext <<EOF
4235 #line __oline__ "configure"
4236 #include <stdio.h>
4237 int cf_ldflags_static(FILE *fp) { return fflush(fp); }
4238 EOF
4239         if AC_TRY_EVAL(ac_compile) ; then
4240                 ( $AR $ARFLAGS libconftest.a conftest.o ) 2>&AC_FD_CC 1>/dev/null
4241                 ( eval $RANLIB libconftest.a ) 2>&AC_FD_CC >/dev/null
4242         fi
4243         rm -f conftest.*
4244
4245         cf_save_LIBS="$LIBS"
4246
4247         LIBS="$LDFLAGS_STATIC -L`pwd` -lconftest $LDFLAGS_DYNAMIC $LIBS"
4248         AC_TRY_LINK([
4249 #line __oline__ "configure"
4250 #include <stdio.h>
4251 int cf_ldflags_static(FILE *fp);
4252 ],[
4253         return cf_ldflags_static(stdin);
4254 ],[
4255         # some linkers simply ignore the -dynamic
4256         case x`file "conftest$ac_exeext" 2>/dev/null` in
4257         (*static*)
4258                 cf_ldflags_static=no
4259                 ;;
4260         (*)
4261                 cf_ldflags_static=yes
4262                 ;;
4263         esac
4264 ],[cf_ldflags_static=no])
4265
4266         rm -f libconftest.*
4267         LIBS="$cf_save_LIBS"
4268
4269         AC_MSG_RESULT($cf_ldflags_static)
4270
4271         if test "$cf_ldflags_static" != yes
4272         then
4273                 LDFLAGS_STATIC=
4274                 LDFLAGS_SHARED=
4275         fi
4276 else
4277         LDFLAGS_STATIC=
4278         LDFLAGS_SHARED=
4279 fi
4280
4281 AC_SUBST(LDFLAGS_STATIC)
4282 AC_SUBST(LDFLAGS_SHARED)
4283 ])
4284 dnl ---------------------------------------------------------------------------
4285 dnl CF_LD_RPATH_OPT version: 9 updated: 2021/01/01 13:31:04
4286 dnl ---------------
4287 dnl For the given system and compiler, find the compiler flags to pass to the
4288 dnl loader to use the "rpath" feature.
4289 AC_DEFUN([CF_LD_RPATH_OPT],
4290 [
4291 AC_REQUIRE([CF_CHECK_CACHE])
4292
4293 LD_RPATH_OPT=
4294 if test "x$cf_cv_enable_rpath" != xno
4295 then
4296         AC_MSG_CHECKING(for an rpath option)
4297         case "$cf_cv_system_name" in
4298         (irix*)
4299                 if test "$GCC" = yes; then
4300                         LD_RPATH_OPT="-Wl,-rpath,"
4301                 else
4302                         LD_RPATH_OPT="-rpath "
4303                 fi
4304                 ;;
4305         (linux*|gnu*|k*bsd*-gnu|freebsd*)
4306                 LD_RPATH_OPT="-Wl,-rpath,"
4307                 ;;
4308         (openbsd[[2-9]].*|mirbsd*)
4309                 LD_RPATH_OPT="-Wl,-rpath,"
4310                 ;;
4311         (dragonfly*)
4312                 LD_RPATH_OPT="-rpath "
4313                 ;;
4314         (netbsd*)
4315                 LD_RPATH_OPT="-Wl,-rpath,"
4316                 ;;
4317         (osf*|mls+*)
4318                 LD_RPATH_OPT="-rpath "
4319                 ;;
4320         (solaris2*)
4321                 LD_RPATH_OPT="-R"
4322                 ;;
4323         (*)
4324                 ;;
4325         esac
4326         AC_MSG_RESULT($LD_RPATH_OPT)
4327
4328         case "x$LD_RPATH_OPT" in
4329         (x-R*)
4330                 AC_MSG_CHECKING(if we need a space after rpath option)
4331                 cf_save_LIBS="$LIBS"
4332                 CF_ADD_LIBS(${LD_RPATH_OPT}$libdir)
4333                 AC_TRY_LINK(, , cf_rpath_space=no, cf_rpath_space=yes)
4334                 LIBS="$cf_save_LIBS"
4335                 AC_MSG_RESULT($cf_rpath_space)
4336                 test "$cf_rpath_space" = yes && LD_RPATH_OPT="$LD_RPATH_OPT "
4337                 ;;
4338         esac
4339 fi
4340 ])dnl
4341 dnl ---------------------------------------------------------------------------
4342 dnl CF_LD_SEARCHPATH version: 4 updated: 2022/08/27 15:43:08
4343 dnl ----------------
4344 dnl Try to obtain the linker's search-path, for use in scripts.
4345 dnl
4346 dnl Ignore LD_LIBRARY_PATH, etc.
4347 AC_DEFUN([CF_LD_SEARCHPATH],[
4348 AC_CACHE_CHECK(for linker search path,cf_cv_ld_searchpath,[
4349
4350 if test "$cross_compiling" != yes ; then
4351
4352 # GNU binutils' ld does not involve permissions which may stop ldconfig.
4353 cf_pathlist=`${LD:-ld} --verbose 2>/dev/null | grep SEARCH_DIR | sed -e 's,SEARCH_DIR[[("=]][[("=]]*,,g' -e 's/"[[)]];//gp' | sort -u`
4354
4355 # The -NX options tell newer versions of Linux ldconfig to not attempt to
4356 # update the cache, which makes it run faster.
4357 test -z "$cf_pathlist" && \
4358         cf_pathlist=`(ldconfig -NX -v) 2>/dev/null | sed -e '/^[[       ]]/d' -e 's/:$//' | sort -u`
4359
4360 test -z "$cf_pathlist" &&
4361         cf_pathlist=`(ldconfig -v) 2>/dev/null | sed -n -e '/^[[        ]]/d' -e 's/:$//p' | sort -u`
4362
4363 # This works with OpenBSD 6.5, which lists only filenames
4364 test -z "$cf_pathlist" &&
4365         cf_pathlist=`(ldconfig -v) 2>/dev/null | sed -n -e 's,^Adding \(.*\)/.*[$],\1,p' | sort -u`
4366
4367 if test -z "$cf_pathlist"
4368 then
4369         # dyld default path with MacOS
4370         if test -f /usr/bin/otool && test "x`uname -s`" = xDarwin
4371         then
4372                 # do this to bypass check
4373                 cf_cv_ld_searchpath='$HOME/lib'
4374                 cf_pathlist="/usr/local/lib /lib /usr/lib"
4375         fi
4376 fi
4377
4378 if test -z "$cf_pathlist"
4379 then
4380         # Solaris is "SunOS"
4381         if test -f /usr/bin/isainfo && test "x`uname -s`" = xSunOS
4382         then
4383                 case x`(isainfo -b)` in
4384                 (x64)
4385                         cf_pathlist="$cf_pathlist /lib/64 /usr/lib/64"
4386                         ;;
4387                 (x32)
4388                         test -d /usr/ccs/lib && cf_pathlist="$cf_pathlist /usr/ccs/lib"
4389                         cf_pathlist="$cf_pathlist /lib /usr/lib"
4390                         ;;
4391                 (*)
4392                         AC_MSG_WARN(problem with Solaris architecture)
4393                         ;;
4394                 esac
4395         fi
4396 fi
4397
4398 if test -z "$cf_pathlist"
4399 then
4400         # HP-UX
4401         if test x"`uname -s`" = xHP-UX
4402         then
4403                 case x`getconf LONG_BIT` in
4404                 (x64)
4405                         cf_pathlist="/usr/lib/hpux64"
4406                         ;;
4407                 (x*)
4408                         cf_pathlist="/usr/lib/hpux32"
4409                         ;;
4410                 esac
4411         fi
4412 fi
4413
4414 fi
4415
4416 # If nothing else, assume it is conventional
4417 test -z "$cf_pathlist" && cf_pathlist="/usr/lib /lib"
4418
4419 # Finally, check that this is only directories
4420 for cf_path in [$]0 $cf_pathlist
4421 do
4422         if test -d "$cf_path"; then
4423                 test -n "$cf_cv_ld_searchpath" && cf_cv_ld_searchpath="${cf_cv_ld_searchpath} "
4424                 cf_cv_ld_searchpath="${cf_cv_ld_searchpath}${cf_path}"
4425         fi
4426 done
4427
4428 # Ensure that it is nonempty
4429 test -z "$cf_cv_ld_searchpath" && cf_cv_ld_searchpath=/usr/lib
4430 ])
4431
4432 LD_SEARCHPATH=`echo "$cf_cv_ld_searchpath"|sed -e 's/ /|/g'`
4433 AC_SUBST(LD_SEARCHPATH)
4434 ])dnl
4435 dnl ---------------------------------------------------------------------------
4436 dnl CF_LIBRARY_PATH version: 11 updated: 2021/01/01 13:31:04
4437 dnl ---------------
4438 dnl Construct a search-list of directories for a nonstandard library-file
4439 dnl
4440 dnl Parameters
4441 dnl     $1 = the variable to return as result
4442 dnl     $2 = the package name
4443 AC_DEFUN([CF_LIBRARY_PATH],
4444 [
4445 $1=
4446 cf_library_path_list=""
4447 if test -n "${LDFLAGS}${LIBS}" ; then
4448         for cf_library_path in $LDFLAGS $LIBS
4449         do
4450                 case "$cf_library_path" in
4451                 (-L*)
4452                         cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'`
4453                         CF_ADD_SUBDIR_PATH($1,$2,lib,$cf_library_path,NONE)
4454                         cf_library_path_list="$cf_library_path_list [$]$1"
4455                         ;;
4456                 esac
4457         done
4458 fi
4459
4460 CF_SUBDIR_PATH($1,$2,lib)
4461
4462 $1="$cf_library_path_list [$]$1"
4463 ])dnl
4464 dnl ---------------------------------------------------------------------------
4465 dnl CF_LIBTOOL_VERSION version: 1 updated: 2013/04/06 18:03:09
4466 dnl ------------------
4467 AC_DEFUN([CF_LIBTOOL_VERSION],[
4468 if test -n "$LIBTOOL" && test "$LIBTOOL" != none
4469 then
4470         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.]].*//'`
4471 else
4472         cf_cv_libtool_version=
4473 fi
4474 test -z "$cf_cv_libtool_version" && unset cf_cv_libtool_version
4475 ])dnl
4476 dnl ---------------------------------------------------------------------------
4477 dnl CF_LIB_PREFIX version: 14 updated: 2021/01/01 13:31:04
4478 dnl -------------
4479 dnl Compute the library-prefix for the given host system
4480 dnl $1 = variable to set
4481 define([CF_LIB_PREFIX],
4482 [
4483         case "$cf_cv_system_name" in
4484         (OS/2*|os2*)
4485                 if test "$DFT_LWR_MODEL" = libtool; then
4486                         LIB_PREFIX='lib'
4487                 else
4488                         LIB_PREFIX=''
4489                 fi
4490                 ;;
4491         (*-msvc*)
4492                 LIB_PREFIX=''
4493                 ;;
4494         (*)     LIB_PREFIX='lib'
4495                 ;;
4496         esac
4497 ifelse($1,,,[$1=$LIB_PREFIX])
4498         AC_SUBST(LIB_PREFIX)
4499 ])dnl
4500 dnl ---------------------------------------------------------------------------
4501 dnl CF_LIB_RULES version: 98 updated: 2023/01/07 16:32:06
4502 dnl ------------
4503 dnl Append definitions and rules for the given models to the subdirectory
4504 dnl Makefiles, and the recursion rule for the top-level Makefile.  If the
4505 dnl subdirectory is a library-source directory, modify the Libs_To_Make list in
4506 dnl the corresponding makefile to list the models that we'll generate.
4507 dnl
4508 dnl For shared libraries, make a list of symbolic links to construct when
4509 dnl generating each library.  The convention used for Linux is the simplest
4510 dnl one:
4511 dnl     lib<name>.so    ->
4512 dnl     lib<name>.so.<major>    ->
4513 dnl     lib<name>.so.<maj>.<minor>
4514 dnl
4515 dnl Note: Libs_To_Make is mixed case, since it is not a pure autoconf variable.
4516 AC_DEFUN([CF_LIB_RULES],
4517 [AC_REQUIRE([AC_PROG_FGREP])dnl
4518 AC_REQUIRE([CF_MAKE_PHONY])dnl
4519
4520 cf_prefix=$LIB_PREFIX
4521 AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
4522
4523 case "$cf_cv_shlib_version" in
4524 (cygdll|msysdll|mingw|msvcdll)
4525         TINFO_NAME=$TINFO_ARG_SUFFIX
4526         TINFO_SUFFIX=.dll
4527         ;;
4528 esac
4529
4530 if test -n "$TINFO_SUFFIX" ; then
4531         case "$TINFO_SUFFIX" in
4532         (tw*)
4533                 TINFO_NAME="${TINFO_NAME}tw${EXTRA_SUFFIX}"
4534                 TINFO_SUFFIX=`echo "$TINFO_SUFFIX" | sed 's/^tw'$EXTRA_SUFFIX'//'`
4535                 ;;
4536         (t*)
4537                 TINFO_NAME="${TINFO_NAME}t${EXTRA_SUFFIX}"
4538                 TINFO_SUFFIX=`echo "$TINFO_SUFFIX" | sed 's/^t'$EXTRA_SUFFIX'//'`
4539                 ;;
4540         (w*)
4541                 TINFO_NAME="${TINFO_NAME}w${EXTRA_SUFFIX}"
4542                 TINFO_SUFFIX=`echo "$TINFO_SUFFIX" | sed 's/^w'$EXTRA_SUFFIX'//'`
4543                 ;;
4544         esac
4545 fi
4546
4547 for cf_dir in $SRC_SUBDIRS
4548 do
4549         if test ! -d "$srcdir/$cf_dir" ; then
4550                 continue
4551         elif test -f "$srcdir/$cf_dir/modules" ; then
4552
4553                 SHARED_LIB=
4554                 Libs_To_Make=
4555                 cf_awk_program=
4556                 if test -n "${cf_cv_abi_default}" && test "x${cf_cv_abi_default}" != "x5"
4557                 then
4558                         cf_awk_program="$cf_awk_program\
4559 /deprecated in ABI${cf_cv_abi_default}/ { next; }\
4560 { sub(\"NCURSES([[WT]]+)?\", \"&${cf_cv_abi_default}\"); }\
4561 "
4562                 fi
4563
4564                 if test "x$WILDCARD_SYMS" = xno
4565                 then
4566                         cf_awk_program="$cf_awk_program\
4567 /[[     ]]_\\*;/ { skip=1; next; }\
4568 "
4569                 fi
4570
4571                 if test "x$cf_awk_program" != "x"
4572                 then
4573                         cat >>$cf_dir/Makefile <<CF_EOF
4574
4575 # Generated by CF_LIB_RULES
4576 resulting.map: $UNALTERED_SYMS
4577         $AWK 'BEGIN { skip = 1; last=""; } \
4578 $cf_awk_program \
4579 { if ( last != "" && ( skip == 0 || \[$]\[$]0 !~ /}/ ) ) { print last; }\
4580  skip = 0; last = \[$]\[$]0; } \
4581 END { print last; }' < "$UNALTERED_SYMS" >\[$]@
4582
4583 distclean::
4584         rm -f resulting.map
4585 CF_EOF
4586                 fi
4587
4588                 for cf_item in $cf_LIST_MODELS
4589                 do
4590                         CF_LIB_SUFFIX($cf_item,cf_suffix,cf_depsuf)
4591                         if test "$cf_dir" = "c++"
4592                         then
4593                                 CF_MAP_LIB_BASENAME(cf_libname,cxx)
4594                         else
4595                                 CF_MAP_LIB_BASENAME(cf_libname,$cf_dir)
4596                         fi
4597                         test -z "$cf_libname" && cf_libname="$cf_dir"
4598                         if test "$cf_item" = shared ; then
4599                                 if test -n "${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                                 if test "$cf_cv_do_symlinks" = yes ; then
4606                                         cf_version_name=
4607
4608                                         case "$cf_cv_shlib_version" in
4609                                         (rel)
4610                                                 cf_version_name=REL_VERSION
4611                                                 ;;
4612                                         (abi)
4613                                                 cf_version_name=ABI_VERSION
4614                                                 ;;
4615                                         esac
4616
4617                                         if test -n "$cf_version_name"
4618                                         then
4619                                                 case "$cf_cv_system_name" in
4620                                                 (darwin*)
4621                                                         # "w", etc?
4622                                                         cf_suffix="${USE_LIB_SUFFIX}"'.${'$cf_version_name'}'"$cf_shared_suffix"
4623                                                         ;;
4624                                                 (*)
4625                                                         cf_suffix="$cf_suffix"'.${'$cf_version_name'}'
4626                                                         ;;
4627                                                 esac
4628                                         fi
4629                                         if test -n "${USE_LIB_SUFFIX}"
4630                                         then
4631                                                 cf_shared_suffix=`echo "$cf_suffix" | sed 's/^'"${USE_LIB_SUFFIX}"'//'`
4632                                         else
4633                                                 cf_shared_suffix="$cf_suffix"
4634                                         fi
4635                                 fi
4636                                 # cygwin needs import library, and has unique naming convention
4637                                 # use autodetected ${cf_prefix} for import lib and static lib, but
4638                                 # use 'cyg' prefix for shared lib.
4639                                 case "$cf_cv_shlib_version" in
4640                                 (cygdll)
4641                                         cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
4642                                         cf_add_lib="../lib/cyg${cf_libname}${cf_cygsuf}"
4643                                         ;;
4644                                 (msysdll)
4645                                         cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
4646                                         cf_add_lib="../lib/msys-${cf_libname}${cf_cygsuf}"
4647                                         ;;
4648                                 (mingw)
4649                                         cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
4650                                         cf_add_lib="../lib/lib${cf_libname}${cf_cygsuf}"
4651                                         ;;
4652                                 (msvcdll)
4653                                         cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
4654                                         cf_add_lib="../lib/${cf_libname}${cf_cygsuf}"
4655                                         ;;
4656                                 (*)
4657                                         cf_add_lib=
4658                                         ;;
4659                                 esac
4660                                 if test -n "$cf_add_lib"
4661                                 then
4662                                         Libs_To_Make="$Libs_To_Make $cf_add_lib"
4663                                         continue
4664                                 fi
4665                         fi
4666                         cf_add_lib="../lib/${cf_prefix}${cf_libname}${cf_suffix}"
4667                         Libs_To_Make="$Libs_To_Make $cf_add_lib"
4668                 done
4669
4670                 if test "$cf_dir" = ncurses ; then
4671                         cf_subsets="$LIB_SUBSETS"
4672                         cf_r_parts="$cf_subsets"
4673                         cf_liblist="$Libs_To_Make"
4674
4675                         while test -n "$cf_r_parts"
4676                         do
4677                                 cf_l_parts=`echo "$cf_r_parts" |sed -e 's/ .*$//'`
4678                                 cf_r_parts=`echo "$cf_r_parts" |sed -e 's/^[[^ ]]* //'`
4679                                 if test "$cf_l_parts" != "$cf_r_parts" ; then
4680                                         cf_add_lib=
4681                                         case "$cf_l_parts" in
4682                                         (*termlib*)
4683                                                 cf_add_lib=`echo "$cf_liblist" |sed -e s%${LIB_NAME}${USE_LIB_SUFFIX}%${TINFO_LIB_SUFFIX}%g`
4684                                                 ;;
4685                                         (*ticlib*)
4686                                                 cf_add_lib=`echo "$cf_liblist" |sed -e s%${LIB_NAME}${USE_LIB_SUFFIX}%${TICS_LIB_SUFFIX}%g`
4687                                                 ;;
4688                                         (*)
4689                                                 break
4690                                                 ;;
4691                                         esac
4692                                         if test -n "$cf_add_lib"; then
4693                                                 Libs_To_Make="$cf_add_lib $Libs_To_Make"
4694                                         fi
4695                                 else
4696                                         break
4697                                 fi
4698                         done
4699                 else
4700                         cf_subsets=`echo "$LIB_SUBSETS" | sed -e 's/^termlib.* //'`
4701                 fi
4702
4703                 if test "$cf_dir" = c++; then
4704                         if test "x$with_shared_cxx" != xyes && test -n "$cf_shared_suffix"; then
4705                                 cf_list=
4706                                 for cf_item in $Libs_To_Make
4707                                 do
4708                                         case "$cf_item" in
4709                                         (*.a)
4710                                                 ;;
4711                                         (*)
4712                                                 cf_item=`echo "$cf_item" | sed -e "s,"$cf_shared_suffix",.a,"`
4713                                                 ;;
4714                                         esac
4715                                         for cf_test in $cf_list
4716                                         do
4717                                                 if test "$cf_test" = "$cf_item"
4718                                                 then
4719                                                         cf_LIST_MODELS=`echo "$cf_LIST_MODELS" | sed -e 's/normal//'`
4720                                                         cf_item=
4721                                                         break
4722                                                 fi
4723                                         done
4724                                         test -n "$cf_item" && cf_list="$cf_list $cf_item"
4725                                 done
4726                                 Libs_To_Make="$cf_list"
4727                         fi
4728                 fi
4729
4730                 sed -e "s%@Libs_To_Make@%$Libs_To_Make%" \
4731                     -e "s%@SHARED_LIB@%$SHARED_LIB%" \
4732                         "$cf_dir/Makefile" >$cf_dir/Makefile.out
4733                 mv "$cf_dir/Makefile.out" "$cf_dir/Makefile"
4734
4735                 $AWK -f "$srcdir/mk-0th.awk" \
4736                         libname="${cf_dir}${LIB_SUFFIX}" subsets="$LIB_SUBSETS" ticlib="$TICS_LIB_SUFFIX" termlib="$TINFO_LIB_SUFFIX" \
4737                         "$srcdir/$cf_dir/modules" >>$cf_dir/Makefile
4738
4739                 for cf_subset in $cf_subsets
4740                 do
4741                         cf_subdirs=
4742                         for cf_item in $cf_LIST_MODELS
4743                         do
4744
4745                         echo "Appending rules for ${cf_item} model (${cf_dir}: ${cf_subset})"
4746                         CF_UPPER(cf_ITEM,$cf_item)
4747
4748                         CXX_MODEL=$cf_ITEM
4749                         if test "$CXX_MODEL" = SHARED; then
4750                                 case "$cf_cv_shlib_version" in
4751                                 (cygdll|msysdll|mingw|msvcdll)
4752                                         test "x$with_shared_cxx" = xno && CF_VERBOSE(overriding CXX_MODEL to SHARED)
4753                                         with_shared_cxx=yes
4754                                         ;;
4755                                 (*)
4756                                         test "x$with_shared_cxx" = xno && CXX_MODEL=NORMAL
4757                                         ;;
4758                                 esac
4759                         fi
4760
4761                         CF_LIB_SUFFIX($cf_item,cf_suffix,cf_depsuf)
4762                         CF_OBJ_SUBDIR($cf_item,cf_subdir)
4763
4764                         # Test for case where we build libtinfo with a different name.
4765                         cf_libname=$cf_dir
4766                         if test "$cf_dir" = ncurses ; then
4767                                 case "$cf_subset" in
4768                                 (*base*)
4769                                         cf_libname=${cf_libname}$USE_LIB_SUFFIX
4770                                         ;;
4771                                 (*termlib*)
4772                                         cf_libname=$TINFO_LIB_SUFFIX
4773                                         ;;
4774                                 (ticlib*)
4775                                         cf_libname=$TICS_LIB_SUFFIX
4776                                         ;;
4777                                 esac
4778                         elif test "$cf_dir" = c++ ; then
4779                                 CF_MAP_LIB_BASENAME(cf_libname,cxx)
4780                                 cf_libname=${cf_libname}$USE_LIB_SUFFIX
4781                         else
4782                                 CF_MAP_LIB_BASENAME(cf_libname,$cf_dir)
4783                                 cf_libname=${cf_libname}$USE_LIB_SUFFIX
4784                         fi
4785                         if test -n "${USE_ARG_SUFFIX}" ; then
4786                                 # undo $USE_LIB_SUFFIX add-on in CF_LIB_SUFFIX
4787                                 cf_suffix=`echo "$cf_suffix" |sed -e "s%^${USE_LIB_SUFFIX}%%"`
4788                         fi
4789
4790                         # These dependencies really are for development, not
4791                         # builds, but they are useful in porting, too.
4792                         cf_depend="../include/ncurses_cfg.h"
4793                         if test "$srcdir" = "."; then
4794                                 cf_reldir="."
4795                         else
4796                                 cf_reldir="\${srcdir}"
4797                         fi
4798
4799                         if test -f "$srcdir/$cf_dir/$cf_dir.priv.h" ; then
4800                                 cf_depend="$cf_depend $cf_reldir/$cf_dir.priv.h"
4801                         elif test -f "$srcdir/$cf_dir/curses.priv.h" ; then
4802                                 cf_depend="$cf_depend $cf_reldir/curses.priv.h"
4803                         fi
4804
4805                         cf_dir_suffix=
4806                         old_cf_suffix="$cf_suffix"
4807                         if test "$cf_cv_shlib_version_infix" = yes ; then
4808                         if test -n "$USE_LIB_SUFFIX" ; then
4809                                 case "$USE_LIB_SUFFIX" in
4810                                 (tw*)
4811                                         cf_libname=`echo "$cf_libname" | sed 's/tw'$EXTRA_SUFFIX'$//'`
4812                                         cf_suffix=`echo "$cf_suffix" | sed 's/^tw'$EXTRA_SUFFIX'//'`
4813                                         cf_dir_suffix=tw$EXTRA_SUFFIX
4814                                         ;;
4815                                 (t*)
4816                                         cf_libname=`echo "$cf_libname" | sed 's/t'$EXTRA_SUFFIX'$//'`
4817                                         cf_suffix=`echo "$cf_suffix" | sed 's/^t'$EXTRA_SUFFIX'//'`
4818                                         cf_dir_suffix=t$EXTRA_SUFFIX
4819                                         ;;
4820                                 (w*)
4821                                         cf_libname=`echo "$cf_libname" | sed 's/w'$EXTRA_SUFFIX'$//'`
4822                                         cf_suffix=`echo "$cf_suffix" | sed 's/^w'$EXTRA_SUFFIX'//'`
4823                                         cf_dir_suffix=w$EXTRA_SUFFIX
4824                                         ;;
4825                                 (*)
4826                                         cf_libname=`echo "$cf_libname" | sed 's/'$EXTRA_SUFFIX'$//'`
4827                                         cf_suffix=`echo "$cf_suffix" | sed 's/^'$EXTRA_SUFFIX'//'`
4828                                         cf_dir_suffix=$EXTRA_SUFFIX
4829                                         ;;
4830                                 esac
4831                         fi
4832                         fi
4833
4834                         $AWK -f "$srcdir/mk-1st.awk" \
4835                                 name=${cf_libname}${cf_dir_suffix} \
4836                                 traces=$LIB_TRACING \
4837                                 MODEL=$cf_ITEM \
4838                                 CXX_MODEL=$CXX_MODEL \
4839                                 LIB_SUFFIX=$LIB_SUFFIX \
4840                                 USE_LIB_SUFFIX=$USE_LIB_SUFFIX \
4841                                 make_phony="${cf_cv_make_PHONY:-no}" \
4842                                 model=$cf_subdir \
4843                                 prefix=$cf_prefix \
4844                                 suffix=$cf_suffix \
4845                                 subset=$cf_subset \
4846                                 driver=$cf_cv_term_driver \
4847                                 SymLink="$LN_S" \
4848                                 TermlibRoot=$TINFO_NAME \
4849                                 TermlibSuffix=$TINFO_SUFFIX \
4850                                 ShlibVer=$cf_cv_shlib_version \
4851                                 ShlibVerInfix=$cf_cv_shlib_version_infix \
4852                                 ReLink=${cf_cv_do_relink:-no} \
4853                                 ReRanlib=${cf_cv_do_reranlib:-yes} \
4854                                 DoLinks=$cf_cv_do_symlinks \
4855                                 rmSoLocs=$cf_cv_rm_so_locs \
4856                                 ldconfig="$LDCONFIG" \
4857                                 overwrite=$WITH_OVERWRITE \
4858                                 depend="$cf_depend" \
4859                                 host="$host" \
4860                                 libtool_version="$LIBTOOL_VERSION" \
4861                                 "$srcdir/$cf_dir/modules" >>$cf_dir/Makefile
4862
4863                         cf_suffix="$old_cf_suffix"
4864
4865                         for cf_subdir2 in $cf_subdirs lib
4866                         do
4867                                 test "$cf_subdir" = "$cf_subdir2" && break
4868                         done
4869                         test "${cf_subset}.${cf_subdir2}" != "${cf_subset}.${cf_subdir}" && \
4870                         $AWK -f "$srcdir/mk-2nd.awk" \
4871                                 name=$cf_dir \
4872                                 traces=$LIB_TRACING \
4873                                 MODEL=$cf_ITEM \
4874                                 model=$cf_subdir \
4875                                 subset=$cf_subset \
4876                                 srcdir=$srcdir \
4877                                 echo=$WITH_ECHO \
4878                                 crenames=$cf_cv_prog_CC_c_o \
4879                                 cxxrenames=$cf_cv_prog_CXX_c_o \
4880                                 "$srcdir/$cf_dir/modules" >>$cf_dir/Makefile
4881                         cf_subdirs="$cf_subdirs $cf_subdir"
4882                         done
4883                 done
4884         fi
4885
4886         echo '  ( cd '$cf_dir' && ${MAKE} ${TOP_MFLAGS} [$]@ )' >>Makefile
4887 done
4888
4889 echo >> Makefile
4890 echo '# generated by CF_LIB_RULES' >> Makefile
4891
4892 if test "x$cf_cv_make_PHONY" = xyes ; then
4893         cat >> Makefile <<-CF_EOF
4894
4895         .PHONY :        libs
4896         .PHONY :        lintlib
4897         .PHONY :        install.includes
4898         .PHONY :        uninstall.includes
4899         .PHONY :        install.libs
4900         .PHONY :        uninstall.libs
4901 CF_EOF
4902 fi
4903
4904 for cf_dir in $SRC_SUBDIRS
4905 do
4906         if test ! -d "$srcdir/$cf_dir" ; then
4907                 continue
4908         fi
4909
4910         if test -f "$cf_dir/Makefile" ; then
4911                 case "$cf_dir" in
4912                 (Ada95)
4913                         echo 'libs \' >> Makefile
4914                         echo 'install.libs \' >> Makefile
4915                         echo 'uninstall.libs ::' >> Makefile
4916                         echo '  ( cd '$cf_dir' && ${MAKE} ${TOP_MFLAGS} [$]@ )' >> Makefile
4917                         ;;
4918                 esac
4919         fi
4920
4921         if test -f "$srcdir/$cf_dir/modules" ; then
4922
4923                 if test "x$cf_cv_make_PHONY" = xyes ; then
4924                         cat >> Makefile <<-CF_EOF
4925
4926                         .PHONY :        install.$cf_dir
4927                         .PHONY :        uninstall.$cf_dir
4928 CF_EOF
4929                 fi
4930
4931                 echo >> Makefile
4932                 if test -f "$srcdir/$cf_dir/headers" ; then
4933 cat >> Makefile <<CF_EOF
4934 install.includes \\
4935 uninstall.includes \\
4936 CF_EOF
4937                 fi
4938
4939 cat >> Makefile <<CF_EOF
4940 lint \\
4941 libs \\
4942 lintlib \\
4943 install.libs \\
4944 uninstall.libs \\
4945 install.$cf_dir \\
4946 uninstall.$cf_dir ::
4947         ( cd "$cf_dir" && \${MAKE} \${TOP_MFLAGS} \[$]@ )
4948 CF_EOF
4949         elif test -f "$srcdir/$cf_dir/headers" ; then
4950 cat >> Makefile <<CF_EOF
4951
4952 libs \\
4953 install.libs \\
4954 uninstall.libs \\
4955 install.includes \\
4956 uninstall.includes ::
4957         ( cd "$cf_dir" && \${MAKE} \${TOP_MFLAGS} \[$]@ )
4958 CF_EOF
4959 fi
4960 done
4961
4962 if test "x$cf_cv_make_PHONY" = xyes ; then
4963         cat >> Makefile <<-CF_EOF
4964
4965         .PHONY :        install.data
4966         .PHONY :        uninstall.data
4967 CF_EOF
4968 fi
4969
4970 if test "x$cf_with_db_install" = xyes; then
4971 cat >> Makefile <<CF_EOF
4972
4973 install.libs uninstall.libs \\
4974 install.data uninstall.data ::
4975 $MAKE_TERMINFO  ( cd misc && \${MAKE} \${TOP_MFLAGS} \[$]@ )
4976 CF_EOF
4977 else
4978 cat >> Makefile <<CF_EOF
4979
4980 install.libs uninstall.libs ::
4981         ( cd misc && \${MAKE} \${TOP_MFLAGS} \[$]@ )
4982 CF_EOF
4983 fi
4984
4985 if test "x$cf_with_manpages" = xyes; then
4986
4987 if test "x$cf_cv_make_PHONY" = xyes ; then
4988         cat >> Makefile <<-CF_EOF
4989
4990         .PHONY :        install.man
4991         .PHONY :        uninstall.man
4992 CF_EOF
4993 fi
4994
4995 cat >> Makefile <<CF_EOF
4996
4997 install.man \\
4998 uninstall.man ::
4999         ( cd man && \${MAKE} \${TOP_MFLAGS} \[$]@ )
5000 CF_EOF
5001 fi
5002
5003 cat >> Makefile <<CF_EOF
5004
5005 distclean ::
5006         rm -f config.cache config.log config.status Makefile include/ncurses_cfg.h
5007         rm -f headers.sh headers.sed mk_shared_lib.sh
5008         rm -f edit_man.* man_alias.*
5009         rm -rf \${DIRS_TO_MAKE}
5010 CF_EOF
5011
5012 # Special case: tack's manpage lives in its own directory.
5013 if test "x$cf_with_manpages" = xyes; then
5014 if test "x$cf_with_tack" = "xyes"; then
5015 cat >> Makefile <<CF_EOF
5016
5017 install.man \\
5018 uninstall.man ::
5019         ( cd tack && \${MAKE} \${TOP_MFLAGS} \[$]@ )
5020 CF_EOF
5021 fi
5022 fi
5023
5024 dnl If we're installing into a subdirectory of /usr/include, etc., we should
5025 dnl prepend the subdirectory's name to the "#include" paths.  It won't hurt
5026 dnl anything, and will make it more standardized.  It's awkward to decide this
5027 dnl at configuration because of quoting, so we'll simply make all headers
5028 dnl installed via a script that can do the right thing.
5029
5030 rm -f headers.sed headers.sh
5031
5032 dnl ( generating this script makes the makefiles a little tidier :-)
5033 echo creating headers.sh
5034 cat >headers.sh <<CF_EOF
5035 #! $SHELL
5036 # This shell script is generated by the 'configure' script.  It is invoked in a
5037 # subdirectory of the build tree.  It generates a sed-script in the parent
5038 # directory that is used to adjust includes for header files that reside in a
5039 # subdirectory of /usr/include, etc.
5040 PRG=""
5041 while test \[$]# != 3
5042 do
5043 PRG="\$PRG \[$]1"; shift
5044 done
5045 DST=\[$]1
5046 REF=\[$]2
5047 SRC=\[$]3
5048 TMPSRC=\${TMPDIR:-/tmp}/\`basename \$SRC\`\$\$
5049 TMPSED=\${TMPDIR:-/tmp}/headers.sed\$\$
5050 echo installing \$SRC in \$DST
5051 CF_EOF
5052
5053 if test "$WITH_CURSES_H" = yes; then
5054         cat >>headers.sh <<CF_EOF
5055 case \$DST in
5056 (/*/include/*)
5057         END=\`basename \$DST\`
5058         for i in \`cat \$REF/../*/headers |${FGREP-fgrep} -v "#"\`
5059         do
5060                 NAME=\`basename \$i\`
5061                 echo "s/<\$NAME>/<\$END\/\$NAME>/" >> \$TMPSED
5062         done
5063         ;;
5064 (*)
5065         echo "" >> \$TMPSED
5066         ;;
5067 esac
5068 CF_EOF
5069
5070 else
5071         cat >>headers.sh <<CF_EOF
5072 case \$DST in
5073 (/*/include/*)
5074         END=\`basename \$DST\`
5075         for i in \`cat \$REF/../*/headers |${FGREP-fgrep} -v "#"\`
5076         do
5077                 NAME=\`basename \$i\`
5078                 if test "\$NAME" = "curses.h"
5079                 then
5080                         echo "s/<curses.h>/<ncurses.h>/" >> \$TMPSED
5081                         NAME=ncurses.h
5082                 fi
5083                 echo "s/<\$NAME>/<\$END\/\$NAME>/" >> \$TMPSED
5084         done
5085         ;;
5086 (*)
5087         echo "s/<curses.h>/<ncurses.h>/" >> \$TMPSED
5088         ;;
5089 esac
5090 CF_EOF
5091 fi
5092 cat >>headers.sh <<CF_EOF
5093 rm -f \$TMPSRC
5094 sed -f \$TMPSED \$SRC > \$TMPSRC
5095 NAME=\`basename \$SRC\`
5096 CF_EOF
5097 if test "$WITH_CURSES_H" != yes; then
5098         cat >>headers.sh <<CF_EOF
5099 test "\$NAME" = "curses.h" && NAME=ncurses.h
5100 CF_EOF
5101 fi
5102 cat >>headers.sh <<CF_EOF
5103 # Just in case someone gzip'd manpages, remove the conflicting copy.
5104 test -f \$DST/\$NAME.gz && rm -f \$DST/\$NAME.gz
5105
5106 eval \$PRG \$TMPSRC \$DST/\$NAME
5107 rm -f \$TMPSRC \$TMPSED
5108 CF_EOF
5109
5110 chmod 0755 headers.sh
5111
5112 for cf_dir in $SRC_SUBDIRS
5113 do
5114         if test ! -d "$srcdir/$cf_dir" ; then
5115                 continue
5116         fi
5117
5118         if test -f "$srcdir/$cf_dir/headers" ; then
5119                 $AWK -f "$srcdir/mk-hdr.awk" \
5120                         subset="$LIB_SUBSETS" \
5121                         compat="$WITH_CURSES_H" \
5122                         "$srcdir/$cf_dir/headers" >>$cf_dir/Makefile
5123         fi
5124
5125         if test -f "$srcdir/$cf_dir/modules" ; then
5126                 if test "$cf_dir" != "c++" ; then
5127                         if test "x$cf_cv_make_PHONY" = xyes ; then
5128                                 cat >> $cf_dir/Makefile <<-CF_EOF
5129
5130                                 .PHONY :        depend
5131 CF_EOF
5132                         fi
5133
5134                         cat >>$cf_dir/Makefile <<"CF_EOF"
5135 depend : ${AUTO_SRC}
5136         makedepend -- ${CPPFLAGS} -- ${C_SRC}
5137
5138 # DO NOT DELETE THIS LINE -- make depend depends on it.
5139 CF_EOF
5140                 fi
5141         fi
5142 done
5143 AC_SUBST(Libs_To_Make)
5144 ])dnl
5145 dnl ---------------------------------------------------------------------------
5146 dnl CF_LIB_SONAME version: 9 updated: 2021/01/04 18:48:01
5147 dnl -------------
5148 dnl Find the and soname for the given shared library.  Set the cache variable
5149 dnl cf_cv_$3_soname to this, unless it is not found.  Then set the cache
5150 dnl variable to "unknown".
5151 dnl
5152 dnl $1 = headers
5153 dnl $2 = code
5154 dnl $3 = library name
5155 AC_DEFUN([CF_LIB_SONAME],
5156 [AC_REQUIRE([AC_PROG_FGREP])dnl
5157
5158 AC_CACHE_CHECK(for soname of $3 library,cf_cv_$3_soname,[
5159
5160 cf_cv_$3_soname=unknown
5161 if test "$cross_compiling" != yes ; then
5162 cat >conftest.$ac_ext <<CF_EOF
5163 $1
5164 int main(void)
5165 {
5166 $2
5167         ${cf_cv_main_return:-return}(0);
5168 }
5169 CF_EOF
5170 cf_save_LIBS="$LIBS"
5171         CF_ADD_LIB($3)
5172         if AC_TRY_EVAL(ac_compile) ; then
5173                 if AC_TRY_EVAL(ac_link) ; then
5174                         cf_cv_$3_soname="`ldd \"conftest$ac_exeext\" 2>/dev/null | sed -e 's,^.*/,,' -e 's, .*$,,' | ${FGREP-fgrep} lib$3.`"
5175                         test -z "$cf_cv_$3_soname" && cf_cv_$3_soname=unknown
5176                 fi
5177         fi
5178 rm -rf ./conftest*
5179 LIBS="$cf_save_LIBS"
5180 fi
5181 ])
5182 ])
5183 dnl ---------------------------------------------------------------------------
5184 dnl CF_LIB_SUFFIX version: 28 updated: 2021/01/01 16:53:59
5185 dnl -------------
5186 dnl Compute the library file-suffix from the given model name
5187 dnl $1 = model name
5188 dnl $2 = variable to set (the nominal library suffix)
5189 dnl $3 = dependency variable to set (actual filename)
5190 dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
5191 AC_DEFUN([CF_LIB_SUFFIX],
5192 [
5193         case X$1 in
5194         (Xlibtool)
5195                 $2='.la'
5196                 $3=[$]$2
5197                 ;;
5198         (Xdebug)
5199                 case "$cf_cv_system_name" in
5200                 (*-msvc*)
5201                         $2='_g.lib'
5202                         ;;
5203                 (*)
5204                         $2='_g.a'
5205                         ;;
5206                 esac
5207                 $3=[$]$2
5208                 ;;
5209         (Xprofile)
5210                 case "$cf_cv_system_name" in
5211                 (*-msvc*)
5212                         $2='_p.lib'
5213                         ;;
5214                 (*)
5215                         $2='_p.a'
5216                         ;;
5217                 esac
5218                 $3=[$]$2
5219                 ;;
5220         (Xshared)
5221                 case "$cf_cv_system_name" in
5222                 (aix[[5-7]]*)
5223                         $2='.so'
5224                         $3=[$]$2
5225                         ;;
5226                 (*-msvc*)
5227                         $2='.dll'
5228                         $3='.dll.lib'
5229                         ;;
5230                 (cygwin*|msys*|mingw*)
5231                         $2='.dll'
5232                         $3='.dll.a'
5233                         ;;
5234                 (darwin*)
5235                         $2='.dylib'
5236                         $3=[$]$2
5237                         ;;
5238                 (hpux*)
5239                         case "$target" in
5240                         (ia64*)
5241                                 $2='.so'
5242                                 $3=[$]$2
5243                                 ;;
5244                         (*)
5245                                 $2='.sl'
5246                                 $3=[$]$2
5247                                 ;;
5248                         esac
5249                         ;;
5250                 (*)
5251                         $2='.so'
5252                         $3=[$]$2
5253                         ;;
5254                 esac
5255                 ;;
5256         (*)
5257                 case "$target" in
5258                 (*-msvc*)
5259                         $2='.lib'
5260                         ;;
5261                 (*)
5262                         $2='.a'
5263                         ;;
5264                 esac
5265                 $3=[$]$2
5266                 ;;
5267         esac
5268         if test -n "${LIB_SUFFIX}${EXTRA_SUFFIX}"
5269         then
5270                 $2="${LIB_SUFFIX}${EXTRA_SUFFIX}[$]{$2}"
5271                 $3="${LIB_SUFFIX}${EXTRA_SUFFIX}[$]{$3}"
5272         fi
5273 ])dnl
5274 dnl ---------------------------------------------------------------------------
5275 dnl CF_LIB_TYPE version: 5 updated: 2015/04/17 21:13:04
5276 dnl -----------
5277 dnl Compute the string to append to -library from the given model name
5278 dnl $1 = model name
5279 dnl $2 = variable to set
5280 dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
5281 AC_DEFUN([CF_LIB_TYPE],
5282 [
5283         case $1 in
5284         (libtool) $2=''   ;;
5285         (normal)  $2=''   ;;
5286         (debug)   $2='_g' ;;
5287         (profile) $2='_p' ;;
5288         (shared)  $2=''   ;;
5289         esac
5290         test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
5291 ])dnl
5292 dnl ---------------------------------------------------------------------------
5293 dnl CF_LINK_DATAONLY version: 13 updated: 2020/02/08 15:59:30
5294 dnl ----------------
5295 dnl Some systems have a non-ANSI linker that doesn't pull in modules that have
5296 dnl only data (i.e., no functions), for example NeXT.  On those systems we'll
5297 dnl have to provide wrappers for global tables to ensure they're linked
5298 dnl properly.
5299 AC_DEFUN([CF_LINK_DATAONLY],
5300 [
5301 AC_MSG_CHECKING([if data-only library module links])
5302 AC_CACHE_VAL(cf_cv_link_dataonly,[
5303         rm -f conftest.a
5304         cat >conftest.$ac_ext <<EOF
5305 #line __oline__ "configure"
5306 int     testdata[[3]] = { 123, 456, 789 };
5307 EOF
5308         if AC_TRY_EVAL(ac_compile) ; then
5309                 mv conftest.o data.o && \
5310                 ( $AR $ARFLAGS conftest.a data.o ) 2>&AC_FD_CC 1>/dev/null
5311         fi
5312         rm -f conftest.$ac_ext data.o
5313         cat >conftest.$ac_ext <<EOF
5314 #line __oline__ "configure"
5315 int     testfunc(void)
5316 {
5317 #if defined(NeXT)
5318         ${cf_cv_main_return:-return}(1);        /* I'm told this linker is broken */
5319 #else
5320         extern int testdata[[3]];
5321         return testdata[[0]] == 123
5322            &&  testdata[[1]] == 456
5323            &&  testdata[[2]] == 789;
5324 #endif
5325 }
5326 EOF
5327         if AC_TRY_EVAL(ac_compile); then
5328                 mv conftest.o func.o && \
5329                 ( $AR $ARFLAGS conftest.a func.o ) 2>&AC_FD_CC 1>/dev/null
5330         fi
5331         rm -f conftest.$ac_ext func.o
5332         ( eval $RANLIB conftest.a ) 2>&AC_FD_CC >/dev/null
5333         cf_saveLIBS="$LIBS"
5334         LIBS="conftest.a $LIBS"
5335         AC_TRY_RUN([
5336         int main(void)
5337         {
5338                 extern int testfunc();
5339                 ${cf_cv_main_return:-return} (!testfunc());
5340         }
5341         ],
5342         [cf_cv_link_dataonly=yes],
5343         [cf_cv_link_dataonly=no],
5344         [cf_cv_link_dataonly=unknown])
5345         LIBS="$cf_saveLIBS"
5346         ])
5347 AC_MSG_RESULT($cf_cv_link_dataonly)
5348
5349 if test "$cf_cv_link_dataonly" = no ; then
5350         AC_DEFINE(BROKEN_LINKER,1,[if data-only library module does not link])
5351         BROKEN_LINKER=1
5352 fi
5353 AC_SUBST(BROKEN_LINKER)
5354
5355 ])dnl
5356 dnl ---------------------------------------------------------------------------
5357 dnl CF_LINK_FUNCS version: 12 updated: 2023/01/05 17:51:41
5358 dnl -------------
5359 dnl Most Unix systems have both link and symlink, a few don't have symlink.
5360 dnl A few non-Unix systems implement symlink, but not link.
5361 dnl A few non-systems implement neither (or have nonfunctional versions).
5362 dnl
5363 dnl This allows for a 2-second difference in modification times to allow for
5364 dnl some marginal NFS implementations.
5365 AC_DEFUN([CF_LINK_FUNCS],
5366 [
5367 AC_CHECK_HEADERS( \
5368 unistd.h \
5369 )
5370 AC_CHECK_FUNCS( \
5371         remove \
5372         unlink )
5373
5374 if test "$cross_compiling" = yes ; then
5375         AC_CHECK_FUNCS( \
5376                 link \
5377                 symlink )
5378 else
5379         AC_CACHE_CHECK(if link/symlink functions work,cf_cv_link_funcs,[
5380                 cf_cv_link_funcs=
5381                 for cf_func in link symlink ; do
5382                         AC_TRY_RUN([
5383 $ac_includes_default
5384
5385 int main(void)
5386 {
5387         int fail = 0;
5388         char *src = "conftest.tmp";
5389         char *dst = "conftest.chk";
5390         struct stat src_sb, dst_sb;
5391         FILE *fp = fopen(src, "w");
5392         if (fp == 0) { fail = 3; } else {
5393                 fclose(fp); stat(src, &src_sb);
5394                 if ($cf_func(src, dst) < 0) {
5395                         fail = 1;
5396                 } else if (stat(dst, &dst_sb) < 0) {
5397                         fail = 2;
5398                 } else {
5399                         long diff = (dst_sb.st_mtime - src_sb.st_mtime);
5400                         if (diff < 0) diff = -diff;
5401                         if (diff > 2) fail = 3;
5402                 }
5403         }
5404 #ifdef HAVE_UNLINK
5405         unlink(dst); unlink(src);
5406 #else
5407         remove(dst); remove(src);
5408 #endif
5409         ${cf_cv_main_return:-return} (fail);
5410 }
5411                         ],[
5412                         cf_cv_link_funcs="$cf_cv_link_funcs $cf_func"
5413                         eval 'ac_cv_func_'$cf_func'=yes'],[
5414                         eval 'ac_cv_func_'$cf_func'=no'],[
5415                         eval 'ac_cv_func_'$cf_func'=error'])
5416                 done
5417                 test -z "$cf_cv_link_funcs" && cf_cv_link_funcs=no
5418         ])
5419         test "$ac_cv_func_link"    = yes && AC_DEFINE(HAVE_LINK,1,[Define to 1 if we have link() function])
5420         test "$ac_cv_func_symlink" = yes && AC_DEFINE(HAVE_SYMLINK,1,[Define to 1 if we have symlink() function])
5421 fi
5422 ])dnl
5423 dnl ---------------------------------------------------------------------------
5424 dnl CF_MAKEFLAGS version: 21 updated: 2021/09/04 06:47:34
5425 dnl ------------
5426 dnl Some 'make' programs support ${MAKEFLAGS}, some ${MFLAGS}, to pass 'make'
5427 dnl options to lower-levels.  It is very useful for "make -n" -- if we have it.
5428 dnl (GNU 'make' does both, something POSIX 'make', which happens to make the
5429 dnl ${MAKEFLAGS} variable incompatible because it adds the assignments :-)
5430 AC_DEFUN([CF_MAKEFLAGS],
5431 [AC_REQUIRE([AC_PROG_FGREP])dnl
5432
5433 AC_CACHE_CHECK(for makeflags variable, cf_cv_makeflags,[
5434         cf_cv_makeflags=''
5435         for cf_option in '-${MAKEFLAGS}' '${MFLAGS}'
5436         do
5437                 cat >cf_makeflags.tmp <<CF_EOF
5438 SHELL = $SHELL
5439 all :
5440         @ echo '.$cf_option'
5441 CF_EOF
5442                 cf_result=`${MAKE:-make} -k -f cf_makeflags.tmp 2>/dev/null | ${FGREP-fgrep} -v "ing directory" | sed -e 's,[[  ]]*$,,'`
5443                 case "$cf_result" in
5444                 (.*k|.*kw)
5445                         cf_result="`${MAKE:-make} -k -f cf_makeflags.tmp CC=cc 2>/dev/null`"
5446                         case "$cf_result" in
5447                         (.*CC=*)        cf_cv_makeflags=
5448                                 ;;
5449                         (*)     cf_cv_makeflags=$cf_option
5450                                 ;;
5451                         esac
5452                         break
5453                         ;;
5454                 (.-)
5455                         ;;
5456                 (*)
5457                         CF_MSG_LOG(given option \"$cf_option\", no match \"$cf_result\")
5458                         ;;
5459                 esac
5460         done
5461         rm -f cf_makeflags.tmp
5462 ])
5463
5464 AC_SUBST(cf_cv_makeflags)
5465 ])dnl
5466 dnl ---------------------------------------------------------------------------
5467 dnl CF_MAKE_PHONY version: 3 updated: 2021/01/08 16:08:21
5468 dnl -------------
5469 dnl Check if the make-program handles a ".PHONY" target, e.g,. a target which
5470 dnl acts as a placeholder.
5471 dnl
5472 dnl The ".PHONY" feature was proposed in 2011 here
5473 dnl     https://www.austingroupbugs.net/view.php?id=523
5474 dnl and is scheduled for release in P1003.1 Issue 8 (late 2022).
5475 dnl
5476 dnl This is not supported by SVr4 make (or SunOS 4, 4.3SD, etc), but works with
5477 dnl a few others (i.e., GNU make and the non-POSIX "BSD" make):
5478 dnl
5479 dnl + This is a GNU make feature (since April 1988, but in turn from binutils,
5480 dnl   date unspecified).
5481 dnl
5482 dnl + It was adopted in NetBSD make in June 1995.
5483 dnl
5484 dnl + The other BSD make programs are derived from the NetBSD make (and for
5485 dnl   that reason are not actually different "implementations").
5486 dnl
5487 dnl + Some features of NetBSD make were actually adapted from pmake, which
5488 dnl   began as a modified GNU make starting in 1993.
5489 dnl
5490 dnl + Version 3.8 of the dmake program in January 1992 also implemented this
5491 dnl   GNU make extension, but is less well known than the BSD make.
5492 AC_DEFUN([CF_MAKE_PHONY],[
5493 AC_CACHE_CHECK(for \".PHONY\" make-support, cf_cv_make_PHONY,[
5494         rm -rf conftest*
5495         (
5496                 mkdir conftest || exit 1
5497                 cd conftest
5498                 cat >makefile <<'CF_EOF'
5499 .PHONY: always
5500 DATA=0
5501 always: always.out
5502         @echo "** making [$]@ [$](DATA)"
5503 once: once.out
5504         @echo "** making [$]@ [$](DATA)"
5505 always.out:
5506         @echo "** making [$]@ [$](DATA)"
5507         echo [$](DATA) > [$]@
5508 once.out:
5509         @echo "** making [$]@ [$](DATA)"
5510         echo [$](DATA) > [$]@
5511 CF_EOF
5512                 for cf_data in 1 2 3
5513                 do
5514                         ${MAKE:-make} always DATA=$cf_data
5515                         ${MAKE:-make} once   DATA=$cf_data
5516                         ${MAKE:-make} -t always once
5517                         if test -f always ; then
5518                                 echo "no (case 1)" > ../conftest.tmp
5519                         elif test ! -f always.out ; then
5520                                 echo "no (case 2)" > ../conftest.tmp
5521                         elif test ! -f once.out ; then
5522                                 echo "no (case 3)" > ../conftest.tmp
5523                         elif ! cmp -s always.out once.out ; then
5524                                 echo "no (case 4)" > ../conftest.tmp
5525                                 diff always.out once.out
5526                         else
5527                                 cf_check="`cat always.out`"
5528                                 if test "x$cf_check" != "x$cf_data" ; then
5529                                         echo "no (case 5)" > ../conftest.tmp
5530                                 else
5531                                         echo yes > ../conftest.tmp
5532                                         rm -f ./*.out
5533                                         continue
5534                                 fi
5535                         fi
5536                         break
5537                 done
5538         ) >&AC_FD_CC 2>&1
5539         cf_cv_make_PHONY="`cat conftest.tmp`"
5540         rm -rf conftest*
5541 ])
5542 MAKE_NO_PHONY="#"
5543 MAKE_PHONY="#"
5544 test "x$cf_cv_make_PHONY" = xyes && MAKE_PHONY=
5545 test "x$cf_cv_make_PHONY" != xyes && MAKE_NO_PHONY=
5546 AC_SUBST(MAKE_NO_PHONY)
5547 AC_SUBST(MAKE_PHONY)
5548 ])dnl
5549 dnl ---------------------------------------------------------------------------
5550 dnl CF_MAKE_TAGS version: 6 updated: 2010/10/23 15:52:32
5551 dnl ------------
5552 dnl Generate tags/TAGS targets for makefiles.  Do not generate TAGS if we have
5553 dnl a monocase filesystem.
5554 AC_DEFUN([CF_MAKE_TAGS],[
5555 AC_REQUIRE([CF_MIXEDCASE_FILENAMES])
5556
5557 AC_CHECK_PROGS(CTAGS, exctags ctags)
5558 AC_CHECK_PROGS(ETAGS, exetags etags)
5559
5560 AC_CHECK_PROG(MAKE_LOWER_TAGS, ${CTAGS:-ctags}, yes, no)
5561
5562 if test "$cf_cv_mixedcase" = yes ; then
5563         AC_CHECK_PROG(MAKE_UPPER_TAGS, ${ETAGS:-etags}, yes, no)
5564 else
5565         MAKE_UPPER_TAGS=no
5566 fi
5567
5568 if test "$MAKE_UPPER_TAGS" = yes ; then
5569         MAKE_UPPER_TAGS=
5570 else
5571         MAKE_UPPER_TAGS="#"
5572 fi
5573
5574 if test "$MAKE_LOWER_TAGS" = yes ; then
5575         MAKE_LOWER_TAGS=
5576 else
5577         MAKE_LOWER_TAGS="#"
5578 fi
5579
5580 AC_SUBST(CTAGS)
5581 AC_SUBST(ETAGS)
5582
5583 AC_SUBST(MAKE_UPPER_TAGS)
5584 AC_SUBST(MAKE_LOWER_TAGS)
5585 ])dnl
5586 dnl ---------------------------------------------------------------------------
5587 dnl CF_MANPAGE_FORMAT version: 16 updated: 2022/11/05 16:12:11
5588 dnl -----------------
5589 dnl Option to allow user to override automatic configuration of manpage format.
5590 dnl There are several special cases:
5591 dnl
5592 dnl     compress - man checks for, can display compressed files
5593 dnl     bzip2 - man checks for, can display bzip2'd files
5594 dnl     gzip - man checks for, can display gzip'd files
5595 dnl     xz - man checks for, can display xz'd files
5596 dnl
5597 dnl     BSDI - files in the cat-directories are suffixed ".0"
5598 dnl     formatted - installer should format (put files in cat-directory)
5599 dnl     catonly - installer should only format, e.g., for a turnkey system.
5600 dnl
5601 dnl There are other configurations which this macro does not test, e.g., HPUX's
5602 dnl compressed manpages (but uncompressed manpages are fine, and HPUX's naming
5603 dnl convention would not match our use).
5604 AC_DEFUN([CF_MANPAGE_FORMAT],
5605 [
5606 AC_REQUIRE([CF_PATHSEP])
5607 AC_MSG_CHECKING(format of man-pages)
5608
5609 AC_ARG_WITH(manpage-format,
5610         [  --with-manpage-format   specify manpage-format: gzip/compress/bzip2/xz,
5611                           BSDI/normal and optionally formatted/catonly,
5612                           e.g., gzip,formatted],
5613         [MANPAGE_FORMAT=$withval],
5614         [MANPAGE_FORMAT=unknown])
5615
5616 test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=unknown
5617 MANPAGE_FORMAT=`echo "$MANPAGE_FORMAT" | sed -e 's/,/ /g'`
5618
5619 cf_unknown=
5620
5621 case "$MANPAGE_FORMAT" in
5622 (unknown)
5623         if test -z "$MANPATH" ; then
5624                 MANPATH="/usr/man:/usr/share/man"
5625         fi
5626
5627         # look for the 'date' man-page (it is most likely to be installed!)
5628         MANPAGE_FORMAT=
5629         cf_preform="no"
5630         cf_catonly="yes"
5631         cf_example="date"
5632
5633         IFS="${IFS:-    }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
5634         for cf_dir in $MANPATH; do
5635                 test -z "$cf_dir" && cf_dir=/usr/man
5636                 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
5637                 do
5638                         cf_test=`echo "$cf_name" | sed -e 's/*//'`
5639                         if test "x$cf_test" = "x$cf_name" ; then
5640
5641                                 case "$cf_name" in
5642                                 (*.bz2) MANPAGE_FORMAT="$MANPAGE_FORMAT bzip2";;
5643                                 (*.xz)  MANPAGE_FORMAT="$MANPAGE_FORMAT xz";;
5644                                 (*.gz)  MANPAGE_FORMAT="$MANPAGE_FORMAT gzip";;
5645                                 (*.Z)   MANPAGE_FORMAT="$MANPAGE_FORMAT compress";;
5646                                 (*.0)   MANPAGE_FORMAT="$MANPAGE_FORMAT BSDI";;
5647                                 (*)     MANPAGE_FORMAT="$MANPAGE_FORMAT normal";;
5648                                 esac
5649
5650                                 case "$cf_name" in
5651                                 ($cf_dir/man*)
5652                                         cf_catonly=no
5653                                         ;;
5654                                 ($cf_dir/cat*)
5655                                         cf_preform=yes
5656                                         ;;
5657                                 esac
5658                                 break
5659                         fi
5660
5661                         # if we found a match in either man* or cat*, stop looking
5662                         if test -n "$MANPAGE_FORMAT" ; then
5663                                 cf_found=no
5664                                 test "$cf_preform" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT formatted"
5665                                 test "$cf_catonly" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT catonly"
5666                                 case "$cf_name" in
5667                                 ($cf_dir/cat*)
5668                                         cf_found=yes
5669                                         ;;
5670                                 esac
5671                                 test "$cf_found" = yes && break
5672                         fi
5673                 done
5674                 # only check the first directory in $MANPATH where we find manpages
5675                 if test -n "$MANPAGE_FORMAT" ; then
5676                         break
5677                 fi
5678         done
5679         # if we did not find the example, just assume it is normal
5680         test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=normal
5681         IFS="$ac_save_ifs"
5682         ;;
5683 (*)
5684         for cf_option in $MANPAGE_FORMAT; do
5685         case "$cf_option" in
5686         (xz|bzip2|gzip|compress|BSDI|normal|formatted|catonly)
5687                 ;;
5688         (*)
5689                 cf_unknown="$cf_unknown $cf_option"
5690                 ;;
5691         esac
5692         done
5693         ;;
5694 esac
5695
5696 AC_MSG_RESULT($MANPAGE_FORMAT)
5697 if test -n "$cf_unknown" ; then
5698         AC_MSG_WARN(Unexpected manpage-format $cf_unknown)
5699 fi
5700 ])dnl
5701 dnl ---------------------------------------------------------------------------
5702 dnl CF_MANPAGE_RENAMES version: 17 updated: 2022/10/23 07:46:29
5703 dnl ------------------
5704 dnl The Debian people have their own naming convention for manpages.  This
5705 dnl option lets us override the name of the file containing renaming, or
5706 dnl disable it altogether.
5707 AC_DEFUN([CF_MANPAGE_RENAMES],
5708 [
5709 AC_MSG_CHECKING(for manpage renaming)
5710
5711 AC_ARG_WITH(manpage-renames,
5712         [  --with-manpage-renames  specify manpage-renaming],
5713         [MANPAGE_RENAMES=$withval],
5714         [MANPAGE_RENAMES=yes])
5715
5716 case ".$MANPAGE_RENAMES" in
5717 (.no)
5718         ;;
5719 (.|.yes)
5720         # Debian 'man' program?
5721         if test -f /etc/debian_version ; then
5722                 MANPAGE_RENAMES=man/man_db.renames
5723         else
5724                 MANPAGE_RENAMES=no
5725         fi
5726         ;;
5727 esac
5728
5729 if test "$MANPAGE_RENAMES" = man/man_db.renames ; then
5730         MANPAGE_RENAMES=`pwd`/$MANPAGE_RENAMES
5731 elif test "$MANPAGE_RENAMES" = no ; then
5732         :
5733 elif test ! -f "$MANPAGE_RENAMES" ; then
5734         AC_MSG_ERROR(not a filename: $MANPAGE_RENAMES)
5735 fi
5736
5737 AC_MSG_RESULT($MANPAGE_RENAMES)
5738 AC_SUBST(MANPAGE_RENAMES)
5739 ])dnl
5740 dnl ---------------------------------------------------------------------------
5741 dnl CF_MANPAGE_SYMLINKS version: 6 updated: 2015/04/17 21:13:04
5742 dnl -------------------
5743 dnl Some people expect each tool to make all aliases for manpages in the
5744 dnl man-directory.  This accommodates the older, less-capable implementations
5745 dnl of 'man', and is optional.
5746 AC_DEFUN([CF_MANPAGE_SYMLINKS],
5747 [
5748 AC_MSG_CHECKING(if manpage aliases will be installed)
5749
5750 AC_ARG_WITH(manpage-aliases,
5751         [  --with-manpage-aliases  specify manpage-aliases using .so],
5752         [MANPAGE_ALIASES=$withval],
5753         [MANPAGE_ALIASES=yes])
5754
5755 AC_MSG_RESULT($MANPAGE_ALIASES)
5756
5757 case "x$LN_S" in
5758 (xln*)
5759         cf_use_symlinks=yes
5760         ;;
5761 (*)
5762         cf_use_symlinks=no
5763         ;;
5764 esac
5765
5766 MANPAGE_SYMLINKS=no
5767 if test "$MANPAGE_ALIASES" = yes ; then
5768 AC_MSG_CHECKING(if manpage symlinks should be used)
5769
5770 AC_ARG_WITH(manpage-symlinks,
5771         [  --with-manpage-symlinks specify manpage-aliases using symlinks],
5772         [MANPAGE_SYMLINKS=$withval],
5773         [MANPAGE_SYMLINKS=$cf_use_symlinks])
5774
5775 if test "$$cf_use_symlinks" = no; then
5776 if test "$MANPAGE_SYMLINKS" = yes ; then
5777         AC_MSG_WARN(cannot make symlinks, will use .so files)
5778         MANPAGE_SYMLINKS=no
5779 fi
5780 fi
5781
5782 AC_MSG_RESULT($MANPAGE_SYMLINKS)
5783 fi
5784
5785 ])dnl
5786 dnl ---------------------------------------------------------------------------
5787 dnl CF_MANPAGE_TBL version: 3 updated: 2002/01/19 22:51:32
5788 dnl --------------
5789 dnl This option causes manpages to be run through tbl(1) to generate tables
5790 dnl correctly.
5791 AC_DEFUN([CF_MANPAGE_TBL],
5792 [
5793 AC_MSG_CHECKING(for manpage tbl)
5794
5795 AC_ARG_WITH(manpage-tbl,
5796         [  --with-manpage-tbl      specify manpage processing with tbl],
5797         [MANPAGE_TBL=$withval],
5798         [MANPAGE_TBL=no])
5799
5800 AC_MSG_RESULT($MANPAGE_TBL)
5801 ])dnl
5802 dnl ---------------------------------------------------------------------------
5803 dnl CF_MAN_PAGES version: 54 updated: 2022/11/05 16:12:11
5804 dnl ------------
5805 dnl Try to determine if the man-pages on the system are compressed, and if
5806 dnl so, what format is used.  Use this information to construct a script that
5807 dnl will install man-pages.
5808 AC_DEFUN([CF_MAN_PAGES],
5809 [
5810 CF_HELP_MESSAGE(Options to Specify How Manpages are Installed:)
5811 CF_MANPAGE_FORMAT
5812 CF_MANPAGE_RENAMES
5813 CF_MANPAGE_SYMLINKS
5814 CF_MANPAGE_TBL
5815
5816 if test "$prefix" = "NONE" ; then
5817         cf_prefix="$ac_default_prefix"
5818 else
5819         cf_prefix="$prefix"
5820 fi
5821
5822 case "$MANPAGE_FORMAT" in
5823 (*catonly*)
5824         cf_format=yes
5825         cf_inboth=no
5826         ;;
5827 (*formatted*)
5828         cf_format=yes
5829         cf_inboth=yes
5830         ;;
5831 (*)
5832         cf_format=no
5833         cf_inboth=no
5834         ;;
5835 esac
5836
5837 test ! -d man && mkdir man
5838
5839 cf_so_strip=
5840 cf_compress=
5841 for cf_manpage_format in $MANPAGE_FORMAT
5842 do
5843 case "$cf_manpage_format" in
5844 (compress)
5845         cf_so_strip="Z"
5846         cf_compress=compress
5847         ;;
5848 (gzip)
5849         cf_so_strip="gz"
5850         cf_compress=gzip
5851         ;;
5852 (bzip2)
5853         cf_so_strip="bz2"
5854         cf_compress=bzip2
5855         ;;
5856 (xz)
5857         cf_so_strip="xz"
5858         cf_compress=xz
5859         ;;
5860 esac
5861 done
5862
5863 cf_edit_man=./edit_man.sh
5864 cf_man_alias=`pwd`/man_alias.sed
5865
5866 cat >$cf_edit_man <<CF_EOF
5867 #! $SHELL
5868 # this script is generated by the configure-script CF_MAN_PAGES macro.
5869
5870 prefix="$cf_prefix"
5871 datarootdir="$datarootdir"
5872 datadir="$datadir"
5873
5874 NCURSES_MAJOR="$NCURSES_MAJOR"
5875 NCURSES_MINOR="$NCURSES_MINOR"
5876 NCURSES_PATCH="$NCURSES_PATCH"
5877
5878 NCURSES_OSPEED="$NCURSES_OSPEED"
5879 TERMINFO="$TERMINFO"
5880
5881 INSTALL="$INSTALL"
5882 INSTALL_DATA="$INSTALL_DATA"
5883
5884 transform="$program_transform_name"
5885
5886 TMP=\${TMPDIR:=/tmp}/man\$\$
5887 trap "rm -f \$TMP; exit 1" 1 2 3 15
5888 trap "rm -f \$TMP" 0
5889
5890 form=\[$]1
5891 shift || exit 1
5892
5893 verb=\[$]1
5894 shift || exit 1
5895
5896 mandir=\[$]1
5897 shift || exit 1
5898
5899 srcdir=\[$]1
5900 top_srcdir=\[$]srcdir/..
5901 shift || exit 1
5902
5903 if test "\$form" = normal ; then
5904         if test "$cf_format" = yes ; then
5905         if test "$cf_inboth" = no ; then
5906                 $SHELL "\[$]0" format "\$verb" "\$mandir" "\$srcdir" "\[$]@"
5907                 exit $?
5908         fi
5909         fi
5910         cf_subdir=\$mandir/man
5911         cf_tables=$MANPAGE_TBL
5912 else
5913         cf_subdir=\$mandir/cat
5914         cf_tables=yes
5915 fi
5916
5917 # process the list of source-files
5918 for i in "\[$]@" ; do
5919 case \$i in
5920 (*.orig|*.rej) ;;
5921 (*.[[0-9]]*)
5922         section=\`expr "\$i" : '.*\\.\\([[0-9]]\\)[[xm]]*'\`;
5923         if test "\$verb" = installing ; then
5924         if test ! -d "\$cf_subdir\${section}" ; then
5925                 mkdir -p "\$cf_subdir\$section"
5926         fi
5927         fi
5928
5929         # replace variables in man page
5930         if test ! -f "$cf_man_alias" ; then
5931 cat >>$cf_man_alias <<-CF_EOF2
5932                 s,@DATADIR@,\$datadir,g
5933                 s,@TERMINFO@,\${TERMINFO:="no default value"},g
5934                 s,@TERMINFO_DIRS@,\${TERMINFO_DIRS:="no default value"},g
5935                 s,@NCURSES_MAJOR@,\${NCURSES_MAJOR:="no default value"},g
5936                 s,@NCURSES_MINOR@,\${NCURSES_MINOR:="no default value"},g
5937                 s,@NCURSES_PATCH@,\${NCURSES_PATCH:="no default value"},g
5938                 s,@NCURSES_OSPEED@,\${NCURSES_OSPEED:="no default value"},g
5939 CF_EOF
5940         ifelse($1,,,[
5941         for cf_name in $1
5942         do
5943                 cf_NAME=`echo "$cf_name" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
5944                 cf_name=`echo "$cf_name" | sed "$program_transform_name"`
5945 cat >>$cf_edit_man <<-CF_EOF
5946                 s,@$cf_NAME@,$cf_name,g
5947 CF_EOF
5948         done
5949         ])
5950 cat >>$cf_edit_man <<CF_EOF
5951 CF_EOF2
5952                 echo "...made $cf_man_alias"
5953         fi
5954
5955         aliases=
5956         cf_source=\`basename "\$i"\`
5957         inalias=\$cf_source
5958         test ! -f "\$inalias" && inalias="\$srcdir/\$inalias"
5959         if test ! -f "\$inalias" ; then
5960                 echo ".. skipped \$cf_source"
5961                 continue
5962         fi
5963 CF_EOF
5964
5965 if test "$MANPAGE_ALIASES" != no ; then
5966 cat >>$cf_edit_man <<CF_EOF
5967         nCurses=ignore.3x
5968         test "$with_curses_h" = yes && nCurses=ncurses.3x
5969         aliases=\`sed -f "\$top_srcdir/man/manlinks.sed" "\$inalias" |sed -f "$cf_man_alias" | sort -u; test "\$inalias" = "\$nCurses" && echo curses\`
5970 CF_EOF
5971 fi
5972
5973 if test "$MANPAGE_RENAMES" = no ; then
5974 cat >>$cf_edit_man <<CF_EOF
5975         # perform program transformations for section 1 man pages
5976         if test \$section = 1 ; then
5977                 cf_target=\$cf_subdir\${section}/\`echo \$cf_source|sed "\${transform}"\`
5978         else
5979                 cf_target=\$cf_subdir\${section}/\$cf_source
5980         fi
5981 CF_EOF
5982 else
5983 cat >>$cf_edit_man <<CF_EOF
5984         cf_target=\`grep "^\$cf_source" $MANPAGE_RENAMES | $AWK '{print \[$]2}'\`
5985         if test -z "\$cf_target" ; then
5986                 echo "? missing rename for \$cf_source"
5987                 cf_target="\$cf_source"
5988         fi
5989         cf_target="\$cf_subdir\${section}/\${cf_target}"
5990
5991 CF_EOF
5992 fi
5993
5994 cat >>$cf_edit_man <<CF_EOF
5995         sed     -f "$cf_man_alias" \\
5996 CF_EOF
5997
5998 if test "$MANPAGE_RENAMES" != no ; then
5999 cat >>$cf_edit_man <<CF_EOF
6000                 < "\$i" | sed -f `pwd`/edit_man.sed >\$TMP
6001 CF_EOF
6002 else
6003 cat >>$cf_edit_man <<CF_EOF
6004                 < "\$i" >\$TMP
6005 CF_EOF
6006 fi
6007
6008 cat >>$cf_edit_man <<CF_EOF
6009 if test \$cf_tables = yes ; then
6010         tbl \$TMP >\$TMP.out
6011         mv \$TMP.out \$TMP
6012 fi
6013 CF_EOF
6014
6015 if test "$with_overwrite" != yes ; then
6016 cat >>$cf_edit_man <<CF_EOF
6017         sed -e "/\\#[    ]*include/s,<curses.h,<ncurses$LIB_SUFFIX/curses.h," < \$TMP >\$TMP.out
6018         mv \$TMP.out \$TMP
6019 CF_EOF
6020 fi
6021
6022 if test "$with_curses_h" != yes ; then
6023 cat >>$cf_edit_man <<CF_EOF
6024         sed -e "/\\#[    ]*include/s,curses.h,ncurses.h," < \$TMP >\$TMP.out
6025         mv \$TMP.out \$TMP
6026 CF_EOF
6027 fi
6028
6029 cat >>$cf_edit_man <<CF_EOF
6030         if test "\$form" = format ; then
6031                 nroff -man \$TMP >\$TMP.out
6032                 mv \$TMP.out \$TMP
6033         fi
6034 CF_EOF
6035
6036 if test -n "$cf_compress" ; then
6037 cat >>$cf_edit_man <<CF_EOF
6038         if test "\$verb" = installing ; then
6039         if ( "$cf_compress" -f \$TMP )
6040         then
6041                 mv \$TMP.$cf_so_strip \$TMP
6042         fi
6043         fi
6044         cf_target="\$cf_target.$cf_so_strip"
6045 CF_EOF
6046 fi
6047
6048 case "$MANPAGE_FORMAT" in
6049 (*BSDI*)
6050 cat >>$cf_edit_man <<CF_EOF
6051         if test "\$form" = format ; then
6052                 # BSDI installs only .0 suffixes in the cat directories
6053                 cf_target="\`echo \$cf_target|sed -e 's/\\.[[1-9]]\\+[[a-z]]*/.0/'\`"
6054         fi
6055 CF_EOF
6056   ;;
6057 esac
6058
6059 cat >>$cf_edit_man <<CF_EOF
6060         suffix=\`basename "\$cf_target" | sed -e 's%^[[^.]]*%%'\`
6061         if test "\$verb" = installing ; then
6062                 echo "\$verb \$cf_target"
6063                 \$INSTALL_DATA \$TMP "\$cf_target"
6064                 test -d "\$cf_subdir\${section}" &&
6065                 test -n "\$aliases" && (
6066                         cd "\$cf_subdir\${section}" && (
6067                                 cf_source=\`echo "\$cf_target" |sed -e 's%^.*/\\([[^/]][[^/]]*/[[^/]][[^/]]*$\\)%\\1%'\`
6068                                 test -n "$cf_so_strip" && cf_source=\`echo "\$cf_source" |sed -e 's%\\.$cf_so_strip\$%%'\`
6069                                 cf_target=\`basename "\$cf_target"\`
6070                                 for cf_alias in \$aliases
6071                                 do
6072                                         if test "\$section" = 1 ; then
6073                                                 cf_alias=\`echo "\$cf_alias" |sed "\${transform}"\`
6074                                         fi
6075
6076                                         if test "$MANPAGE_SYMLINKS" = yes ; then
6077                                                 if test -f "\$cf_alias\${suffix}" ; then
6078                                                         if ( cmp -s "\$cf_target" "\$cf_alias\${suffix}" )
6079                                                         then
6080                                                                 continue
6081                                                         fi
6082                                                 fi
6083                                                 echo ".. \$verb alias \$cf_alias\${suffix}"
6084 CF_EOF
6085 case "x$LN_S" in
6086 (*-f)
6087 cat >>$cf_edit_man <<CF_EOF
6088                                                 $LN_S "\$cf_target" "\$cf_alias\${suffix}"
6089 CF_EOF
6090         ;;
6091 (*)
6092 cat >>$cf_edit_man <<CF_EOF
6093                                                 rm -f "\$cf_alias\${suffix}"
6094                                                 $LN_S "\$cf_target" "\$cf_alias\${suffix}"
6095 CF_EOF
6096         ;;
6097 esac
6098 cat >>$cf_edit_man <<CF_EOF
6099                                         elif test "\$cf_target" != "\$cf_alias\${suffix}" ; then
6100                                                 echo ".so \$cf_source" >\$TMP
6101 CF_EOF
6102 if test -n "$cf_compress" ; then
6103 cat >>$cf_edit_man <<CF_EOF
6104                                                 if test -n "$cf_so_strip" ; then
6105                                                         "$cf_compress" -f \$TMP
6106                                                         mv \$TMP.$cf_so_strip \$TMP
6107                                                 fi
6108 CF_EOF
6109 fi
6110 cat >>$cf_edit_man <<CF_EOF
6111                                                 echo ".. \$verb alias \$cf_alias\${suffix}"
6112                                                 rm -f "\$cf_alias\${suffix}"
6113                                                 \$INSTALL_DATA \$TMP "\$cf_alias\${suffix}"
6114                                         fi
6115                                 done
6116                         )
6117                 )
6118         elif test "\$verb" = removing ; then
6119                 test -f "\$cf_target" && (
6120                         echo "\$verb \$cf_target"
6121                         rm -f "\$cf_target"
6122                 )
6123                 test -d "\$cf_subdir\${section}" &&
6124                 test -n "\$aliases" && (
6125                         cd "\$cf_subdir\${section}" && (
6126                                 for cf_alias in \$aliases
6127                                 do
6128                                         if test "\$section" = 1 ; then
6129                                                 cf_alias=\`echo "\$cf_alias" |sed "\${transform}"\`
6130                                         fi
6131
6132                                         echo ".. \$verb alias \$cf_alias\${suffix}"
6133                                         rm -f "\$cf_alias\${suffix}"
6134                                 done
6135                         )
6136                 )
6137         else
6138 #               echo ".hy 0"
6139                 cat \$TMP
6140         fi
6141         ;;
6142 esac
6143 done
6144
6145 if test "$cf_inboth" = yes ; then
6146 if test "\$form" != format ; then
6147         $SHELL "\[$]0" format "\$verb" "\$mandir" "\$srcdir" "\[$]@"
6148 fi
6149 fi
6150
6151 exit 0
6152 CF_EOF
6153 chmod 755 "$cf_edit_man"
6154
6155 ])dnl
6156 dnl ---------------------------------------------------------------------------
6157 dnl CF_MAP_LIB_BASENAME version: 2 updated: 2021/01/02 17:09:14
6158 dnl -------------------
6159 dnl Convert a default-libname to the actual one used via CF_WITH_LIB_BASENAME.
6160 dnl
6161 dnl $1 = variable to set
6162 dnl $2 = default-libname
6163 AC_DEFUN([CF_MAP_LIB_BASENAME],[
6164 CF_UPPER(cf_map_lib_basename,$2)
6165 eval $1="\$${cf_map_lib_basename}_NAME"
6166 ])dnl
6167 dnl ---------------------------------------------------------------------------
6168 dnl CF_MATH_LIB version: 11 updated: 2022/07/27 19:01:48
6169 dnl -----------
6170 dnl Checks for libraries.  At least one UNIX system, Apple Macintosh
6171 dnl Rhapsody 5.5, does not have -lm.  We cannot use the simpler
6172 dnl AC_CHECK_LIB(m,sin), because that fails for C++.
6173 AC_DEFUN([CF_MATH_LIB],
6174 [
6175 AC_CACHE_CHECK(if -lm needed for math functions,
6176         cf_cv_need_libm,[
6177         AC_TRY_LINK([
6178                 #include <stdio.h>
6179                 #include <stdlib.h>
6180                 #include <math.h>
6181         ],
6182         [double x = rand(); printf("result = %g\\n", ]ifelse([$2],,sin(x),$2)[)],
6183         [cf_cv_need_libm=no],
6184         [cf_cv_need_libm=yes])])
6185
6186 if test "$cf_cv_need_libm" = yes
6187 then
6188
6189         cf_save_LIBS="$LIBS"
6190         LIBS="$LIBS -lm"
6191         AC_CACHE_CHECK(if -lm is available for math functions,
6192         cf_cv_have_libm,[
6193         AC_TRY_LINK([
6194                 #include <stdio.h>
6195                 #include <stdlib.h>
6196                 #include <math.h>
6197         ],
6198         [double x = rand(); printf("result = %g\\n", ]ifelse([$2],,sin(x),$2)[)],
6199         [cf_cv_have_libm=yes],
6200         [cf_cv_have_libm=no])])
6201         LIBS="$cf_save_LIBS"
6202
6203         if test "$cf_cv_have_libm" = yes
6204         then
6205                 ifelse($1,,[CF_ADD_LIB(m)],[$1=-lm])
6206         fi
6207 else
6208         cf_cv_have_libm=yes
6209 fi
6210
6211 if test "$cf_cv_have_libm" = yes
6212 then
6213         AC_DEFINE(HAVE_MATH_FUNCS,1,[Define to 1 if math functions are available])
6214 fi
6215 ])
6216 dnl ---------------------------------------------------------------------------
6217 dnl CF_MIXEDCASE_FILENAMES version: 9 updated: 2021/01/01 16:53:59
6218 dnl ----------------------
6219 dnl Check if the file-system supports mixed-case filenames.  If we're able to
6220 dnl create a lowercase name and see it as uppercase, it doesn't support that.
6221 AC_DEFUN([CF_MIXEDCASE_FILENAMES],
6222 [
6223 AC_CACHE_CHECK(if filesystem supports mixed-case filenames,cf_cv_mixedcase,[
6224 if test "$cross_compiling" = yes ; then
6225         case "$target_alias" in
6226         (*-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-msys*|*-mingw*|*-uwin*|darwin*)
6227                 cf_cv_mixedcase=no
6228                 ;;
6229         (*)
6230                 cf_cv_mixedcase=yes
6231                 ;;
6232         esac
6233 else
6234         rm -f conftest CONFTEST
6235         echo test >conftest
6236         if test -f CONFTEST ; then
6237                 cf_cv_mixedcase=no
6238         else
6239                 cf_cv_mixedcase=yes
6240         fi
6241         rm -f conftest CONFTEST
6242 fi
6243 ])
6244 test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES,1,[Define to 1 if filesystem supports mixed-case filenames.])
6245 ])dnl
6246 dnl ---------------------------------------------------------------------------
6247 dnl CF_MKSTEMP version: 12 updated: 2023/01/05 17:53:11
6248 dnl ----------
6249 dnl Check for a working mkstemp.  This creates two files, checks that they are
6250 dnl successfully created and distinct (AmigaOS apparently fails on the last).
6251 AC_DEFUN([CF_MKSTEMP],[
6252 AC_CHECK_HEADERS( \
6253 unistd.h \
6254 )
6255 AC_CACHE_CHECK(for working mkstemp, cf_cv_func_mkstemp,[
6256 rm -rf ./conftest*
6257 AC_TRY_RUN([
6258 $ac_includes_default
6259
6260 int main(void)
6261 {
6262         char *tmpl = "conftestXXXXXX";
6263         char name[2][80];
6264         int n;
6265         int result = 0;
6266         int fd;
6267         struct stat sb;
6268
6269         umask(077);
6270         for (n = 0; n < 2; ++n) {
6271                 strcpy(name[n], tmpl);
6272                 if ((fd = mkstemp(name[n])) >= 0) {
6273                         if (!strcmp(name[n], tmpl)
6274                          || stat(name[n], &sb) != 0
6275                          || (sb.st_mode & S_IFMT) != S_IFREG
6276                          || (sb.st_mode & 077) != 0) {
6277                                 result = 1;
6278                         }
6279                         close(fd);
6280                 }
6281         }
6282         if (result == 0
6283          && !strcmp(name[0], name[1]))
6284                 result = 1;
6285         ${cf_cv_main_return:-return}(result);
6286 }
6287 ],[cf_cv_func_mkstemp=yes
6288 ],[cf_cv_func_mkstemp=no
6289 ],[cf_cv_func_mkstemp=maybe])
6290 ])
6291 if test "x$cf_cv_func_mkstemp" = xmaybe ; then
6292         AC_CHECK_FUNC(mkstemp)
6293 fi
6294 if test "x$cf_cv_func_mkstemp" = xyes || test "x$ac_cv_func_mkstemp" = xyes ; then
6295         AC_DEFINE(HAVE_MKSTEMP,1,[Define to 1 if mkstemp() is available and working.])
6296 fi
6297 ])dnl
6298 dnl ---------------------------------------------------------------------------
6299 dnl CF_MSG_LOG version: 5 updated: 2010/10/23 15:52:32
6300 dnl ----------
6301 dnl Write a debug message to config.log, along with the line number in the
6302 dnl configure script.
6303 AC_DEFUN([CF_MSG_LOG],[
6304 echo "${as_me:-configure}:__oline__: testing $* ..." 1>&AC_FD_CC
6305 ])dnl
6306 dnl ---------------------------------------------------------------------------
6307 dnl CF_NCURSES_ABI_6 version: 5 updated: 2023/01/07 16:32:06
6308 dnl ----------------
6309 dnl Set ncurses' ABI to 6 unless overridden by explicit configure option, and
6310 dnl warn about this.
6311 AC_DEFUN([CF_NCURSES_ABI_6],[
6312 if test "${with_abi_version+set}" != set; then
6313         case "$cf_cv_rel_version" in
6314         (5.*)
6315                 cf_cv_rel_version=6.0
6316                 cf_cv_abi_version=6
6317                 cf_cv_abi_default=6
6318                 AC_MSG_WARN(overriding ABI version to $cf_cv_abi_default)
6319                 ;;
6320         esac
6321 fi
6322 ])dnl
6323 dnl ---------------------------------------------------------------------------
6324 dnl CF_NCURSES_WITH_ABI_VERSION version: 3 updated: 2021/01/01 13:31:04
6325 dnl ---------------------------
6326 dnl Allow ncurses's ABI to be overridden.  Generally this happens when a
6327 dnl packager has incremented the ABI past that used in the original package,
6328 dnl and wishes to keep doing this.
6329 dnl
6330 dnl $1 is the package name, if any, to derive a corresponding {package}_ABI
6331 dnl symbol.
6332 AC_DEFUN([CF_NCURSES_WITH_ABI_VERSION],[
6333 CF_WITH_ABI_VERSION($1)
6334 if test "x$cf_cv_abi_version" != "x$with_abi_version"
6335 then
6336         case "$cf_cv_rel_version" in
6337         (5.*)
6338                 cf_cv_rel_version=$with_abi_version.0
6339                 ;;
6340         esac
6341 fi
6342 ])dnl
6343 dnl ---------------------------------------------------------------------------
6344 dnl CF_NO_LEAKS_OPTION version: 9 updated: 2021/06/13 19:45:41
6345 dnl ------------------
6346 dnl see CF_WITH_NO_LEAKS
6347 dnl
6348 dnl $1 = option/name
6349 dnl $2 = help-text
6350 dnl $3 = symbol to define if the option is set
6351 dnl $4 = additional actions to take if the option is set
6352 AC_DEFUN([CF_NO_LEAKS_OPTION],[
6353 AC_MSG_CHECKING(if you want to use $1 for testing)
6354 AC_ARG_WITH($1,
6355         [$2],
6356         [case "x$withval" in
6357         (x|xno) ;;
6358         (*)
6359                 : "${with_cflags:=-g}"
6360                 : "${enable_leaks:=no}"
6361                 with_$1=yes
6362                 AC_DEFINE_UNQUOTED($3,1,"Define to 1 if you want to use $1 for testing.")ifelse([$4],,[
6363          $4
6364 ])
6365                 ;;
6366         esac],
6367         [with_$1=])
6368 AC_MSG_RESULT(${with_$1:-no})
6369
6370 case ".$with_cflags" in
6371 (.*-g*)
6372         case .$CFLAGS in
6373         (.*-g*)
6374                 ;;
6375         (*)
6376                 CF_ADD_CFLAGS([-g])
6377                 ;;
6378         esac
6379         ;;
6380 esac
6381 ])dnl
6382 dnl ---------------------------------------------------------------------------
6383 dnl CF_NUMBER_SYNTAX version: 2 updated: 2015/04/17 21:13:04
6384 dnl ----------------
6385 dnl Check if the given variable is a number.  If not, report an error.
6386 dnl $1 is the variable
6387 dnl $2 is the message
6388 AC_DEFUN([CF_NUMBER_SYNTAX],[
6389 if test -n "$1" ; then
6390   case $1 in
6391   ([[0-9]]*)
6392         ;;
6393   (*)
6394         AC_MSG_ERROR($2 is not a number: $1)
6395         ;;
6396   esac
6397 else
6398   AC_MSG_ERROR($2 value is empty)
6399 fi
6400 ])dnl
6401 dnl ---------------------------------------------------------------------------
6402 dnl CF_OBJ_SUBDIR version: 8 updated: 2021/01/01 13:31:04
6403 dnl -------------
6404 dnl Compute the object-directory name from the given model name
6405 AC_DEFUN([CF_OBJ_SUBDIR],
6406 [
6407         case $1 in
6408         (libtool) $2='obj_lo'  ;;
6409         (normal)  $2='objects' ;;
6410         (debug)   $2='obj_g' ;;
6411         (profile) $2='obj_p' ;;
6412         (shared)
6413                 case "$cf_cv_system_name" in
6414                 (cygwin|msys)
6415                         $2='objects' ;;
6416                 (*)
6417                         $2='obj_s' ;;
6418                 esac
6419         esac
6420 ])dnl
6421 dnl ---------------------------------------------------------------------------
6422 dnl CF_OUTPUT_MANPAGE_RENAMES version: 2 updated: 2022/10/22 19:12:31
6423 dnl -------------------------
6424 dnl This runs in the output step to config.status, after man_db.renames has
6425 dnl been generated.
6426 AC_DEFUN([CF_OUTPUT_MANPAGE_RENAMES],
6427 [
6428 AC_REQUIRE([CF_MANPAGE_RENAMES])
6429 if test "$MANPAGE_RENAMES" != no ; then
6430         # Construct a sed-script to perform renaming within man-pages
6431         test -n "$verbose" && echo "creating edit_man.sed"
6432         test ! -d man && mkdir man
6433         FGREP="${FGREP-grep -F}" $SHELL "$srcdir/man/make_sed.sh" "$MANPAGE_RENAMES" >./edit_man.sed
6434 fi
6435 ])dnl
6436 dnl ---------------------------------------------------------------------------
6437 dnl CF_PATHSEP version: 8 updated: 2021/01/01 13:31:04
6438 dnl ----------
6439 dnl Provide a value for the $PATH and similar separator (or amend the value
6440 dnl as provided in autoconf 2.5x).
6441 AC_DEFUN([CF_PATHSEP],
6442 [
6443         AC_MSG_CHECKING(for PATH separator)
6444         case "$cf_cv_system_name" in
6445         (os2*)  PATH_SEPARATOR=';'  ;;
6446         (*)     ${PATH_SEPARATOR:=':'}  ;;
6447         esac
6448 ifelse([$1],,,[$1=$PATH_SEPARATOR])
6449         AC_SUBST(PATH_SEPARATOR)
6450         AC_MSG_RESULT($PATH_SEPARATOR)
6451 ])dnl
6452 dnl ---------------------------------------------------------------------------
6453 dnl CF_PATH_PROG version: 12 updated: 2021/01/02 09:31:20
6454 dnl ------------
6455 dnl Check for a given program, defining corresponding symbol.
6456 dnl     $1 = environment variable, which is suffixed by "_PATH" in the #define.
6457 dnl     $2 = program name to find.
6458 dnl     $3 = optional list of additional program names to test.
6459 dnl $4 = $PATH
6460 dnl
6461 dnl If there is more than one token in the result, #define the remaining tokens
6462 dnl to $1_ARGS.  We need this for 'install' in particular.
6463 dnl
6464 dnl FIXME: we should allow this to be overridden by environment variables
6465 dnl
6466 AC_DEFUN([CF_PATH_PROG],[
6467 AC_REQUIRE([CF_PATHSEP])
6468 test -z "[$]$1" && $1="$2"
6469 AC_PATH_PROGS($1,[$]$1 $2 ifelse($3,,,$3),[$]$1, ifelse($4,,,$4))
6470
6471 cf_path_prog=""
6472 cf_path_args=""
6473 IFS="${IFS:-    }"; cf_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR"
6474 for cf_temp in $ac_cv_path_$1
6475 do
6476         if test -z "$cf_path_prog" ; then
6477                 if test "$with_full_paths" = yes ; then
6478                         CF_PATH_SYNTAX(cf_temp,break)
6479                         cf_path_prog="$cf_temp"
6480                 else
6481                         cf_path_prog="`basename "$cf_temp"`"
6482                 fi
6483         elif test -z "$cf_path_args" ; then
6484                 cf_path_args="$cf_temp"
6485         else
6486                 cf_path_args="$cf_path_args $cf_temp"
6487         fi
6488 done
6489 IFS="$cf_save_ifs"
6490
6491 if test -n "$cf_path_prog" ; then
6492         CF_MSG_LOG(defining path for ${cf_path_prog})
6493         AC_DEFINE_UNQUOTED($1_PATH,"$cf_path_prog",Define to pathname $1)
6494         test -n "$cf_path_args" && AC_DEFINE_UNQUOTED($1_ARGS,"$cf_path_args",Define to provide args for $1)
6495 fi
6496 ])dnl
6497 dnl ---------------------------------------------------------------------------
6498 dnl CF_PATH_SYNTAX version: 18 updated: 2020/12/31 18:40:20
6499 dnl --------------
6500 dnl Check the argument to see that it looks like a pathname.  Rewrite it if it
6501 dnl begins with one of the prefix/exec_prefix variables, and then again if the
6502 dnl result begins with 'NONE'.  This is necessary to work around autoconf's
6503 dnl delayed evaluation of those symbols.
6504 AC_DEFUN([CF_PATH_SYNTAX],[
6505 if test "x$prefix" != xNONE; then
6506         cf_path_syntax="$prefix"
6507 else
6508         cf_path_syntax="$ac_default_prefix"
6509 fi
6510
6511 case ".[$]$1" in
6512 (.\[$]\(*\)*|.\'*\'*)
6513         ;;
6514 (..|./*|.\\*)
6515         ;;
6516 (.[[a-zA-Z]]:[[\\/]]*) # OS/2 EMX
6517         ;;
6518 (.\[$]\{*prefix\}*|.\[$]\{*dir\}*)
6519         eval $1="[$]$1"
6520         case ".[$]$1" in
6521         (.NONE/*)
6522                 $1=`echo "[$]$1" | sed -e s%NONE%$cf_path_syntax%`
6523                 ;;
6524         esac
6525         ;;
6526 (.no|.NONE/*)
6527         $1=`echo "[$]$1" | sed -e s%NONE%$cf_path_syntax%`
6528         ;;
6529 (*)
6530         ifelse([$2],,[AC_MSG_ERROR([expected a pathname, not \"[$]$1\"])],$2)
6531         ;;
6532 esac
6533 ])dnl
6534 dnl ---------------------------------------------------------------------------
6535 dnl CF_PKG_CONFIG version: 12 updated: 2021/10/10 20:18:09
6536 dnl -------------
6537 dnl Check for the package-config program, unless disabled by command-line.
6538 dnl
6539 dnl Sets $PKG_CONFIG to the pathname of the pkg-config program.
6540 AC_DEFUN([CF_PKG_CONFIG],
6541 [
6542 AC_MSG_CHECKING(if you want to use pkg-config)
6543 AC_ARG_WITH(pkg-config,
6544         [  --with-pkg-config{=path} enable/disable use of pkg-config],
6545         [cf_pkg_config=$withval],
6546         [cf_pkg_config=yes])
6547 AC_MSG_RESULT($cf_pkg_config)
6548
6549 case "$cf_pkg_config" in
6550 (no)
6551         PKG_CONFIG=none
6552         ;;
6553 (yes)
6554         CF_ACVERSION_CHECK(2.52,
6555                 [AC_PATH_TOOL(PKG_CONFIG, pkg-config, none)],
6556                 [AC_PATH_PROG(PKG_CONFIG, pkg-config, none)])
6557         ;;
6558 (*)
6559         PKG_CONFIG=$withval
6560         ;;
6561 esac
6562
6563 test -z "$PKG_CONFIG" && PKG_CONFIG=none
6564 if test "$PKG_CONFIG" != none ; then
6565         CF_PATH_SYNTAX(PKG_CONFIG)
6566 elif test "x$cf_pkg_config" != xno ; then
6567         AC_MSG_WARN(pkg-config is not installed)
6568 fi
6569
6570 AC_SUBST(PKG_CONFIG)
6571 ])dnl
6572 dnl ---------------------------------------------------------------------------
6573 dnl CF_POSIX_C_SOURCE version: 11 updated: 2018/12/31 20:46:17
6574 dnl -----------------
6575 dnl Define _POSIX_C_SOURCE to the given level, and _POSIX_SOURCE if needed.
6576 dnl
6577 dnl     POSIX.1-1990                            _POSIX_SOURCE
6578 dnl     POSIX.1-1990 and                        _POSIX_SOURCE and
6579 dnl             POSIX.2-1992 C-Language                 _POSIX_C_SOURCE=2
6580 dnl             Bindings Option
6581 dnl     POSIX.1b-1993                           _POSIX_C_SOURCE=199309L
6582 dnl     POSIX.1c-1996                           _POSIX_C_SOURCE=199506L
6583 dnl     X/Open 2000                             _POSIX_C_SOURCE=200112L
6584 dnl
6585 dnl Parameters:
6586 dnl     $1 is the nominal value for _POSIX_C_SOURCE
6587 AC_DEFUN([CF_POSIX_C_SOURCE],
6588 [AC_REQUIRE([CF_POSIX_VISIBLE])dnl
6589
6590 if test "$cf_cv_posix_visible" = no; then
6591
6592 cf_POSIX_C_SOURCE=ifelse([$1],,199506L,[$1])
6593
6594 cf_save_CFLAGS="$CFLAGS"
6595 cf_save_CPPFLAGS="$CPPFLAGS"
6596
6597 CF_REMOVE_DEFINE(cf_trim_CFLAGS,$cf_save_CFLAGS,_POSIX_C_SOURCE)
6598 CF_REMOVE_DEFINE(cf_trim_CPPFLAGS,$cf_save_CPPFLAGS,_POSIX_C_SOURCE)
6599
6600 AC_CACHE_CHECK(if we should define _POSIX_C_SOURCE,cf_cv_posix_c_source,[
6601         CF_MSG_LOG(if the symbol is already defined go no further)
6602         AC_TRY_COMPILE([#include <sys/types.h>],[
6603 #ifndef _POSIX_C_SOURCE
6604 make an error
6605 #endif],
6606         [cf_cv_posix_c_source=no],
6607         [cf_want_posix_source=no
6608          case .$cf_POSIX_C_SOURCE in
6609          (.[[12]]??*)
6610                 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
6611                 ;;
6612          (.2)
6613                 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
6614                 cf_want_posix_source=yes
6615                 ;;
6616          (.*)
6617                 cf_want_posix_source=yes
6618                 ;;
6619          esac
6620          if test "$cf_want_posix_source" = yes ; then
6621                 AC_TRY_COMPILE([#include <sys/types.h>],[
6622 #ifdef _POSIX_SOURCE
6623 make an error
6624 #endif],[],
6625                 cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE")
6626          fi
6627          CF_MSG_LOG(ifdef from value $cf_POSIX_C_SOURCE)
6628          CFLAGS="$cf_trim_CFLAGS"
6629          CPPFLAGS="$cf_trim_CPPFLAGS"
6630          CF_APPEND_TEXT(CPPFLAGS,$cf_cv_posix_c_source)
6631          CF_MSG_LOG(if the second compile does not leave our definition intact error)
6632          AC_TRY_COMPILE([#include <sys/types.h>],[
6633 #ifndef _POSIX_C_SOURCE
6634 make an error
6635 #endif],,
6636          [cf_cv_posix_c_source=no])
6637          CFLAGS="$cf_save_CFLAGS"
6638          CPPFLAGS="$cf_save_CPPFLAGS"
6639         ])
6640 ])
6641
6642 if test "$cf_cv_posix_c_source" != no ; then
6643         CFLAGS="$cf_trim_CFLAGS"
6644         CPPFLAGS="$cf_trim_CPPFLAGS"
6645         CF_ADD_CFLAGS($cf_cv_posix_c_source)
6646 fi
6647
6648 fi # cf_cv_posix_visible
6649
6650 ])dnl
6651 dnl ---------------------------------------------------------------------------
6652 dnl CF_POSIX_VISIBLE version: 1 updated: 2018/12/31 20:46:17
6653 dnl ----------------
6654 dnl POSIX documents test-macros which an application may set before any system
6655 dnl headers are included to make features available.
6656 dnl
6657 dnl Some BSD platforms (originally FreeBSD, but copied by a few others)
6658 dnl diverged from POSIX in 2002 by setting symbols which make all of the most
6659 dnl recent features visible in the system header files unless the application
6660 dnl overrides the corresponding test-macros.  Doing that introduces portability
6661 dnl problems.
6662 dnl
6663 dnl This macro makes a special check for the symbols used for this, to avoid a
6664 dnl conflicting definition.
6665 AC_DEFUN([CF_POSIX_VISIBLE],
6666 [
6667 AC_CACHE_CHECK(if the POSIX test-macros are already defined,cf_cv_posix_visible,[
6668 AC_TRY_COMPILE([#include <stdio.h>],[
6669 #if defined(__POSIX_VISIBLE) && ((__POSIX_VISIBLE - 0L) > 0) \
6670         && defined(__XSI_VISIBLE) && ((__XSI_VISIBLE - 0L) > 0) \
6671         && defined(__BSD_VISIBLE) && ((__BSD_VISIBLE - 0L) > 0) \
6672         && defined(__ISO_C_VISIBLE) && ((__ISO_C_VISIBLE - 0L) > 0)
6673 #error conflicting symbols found
6674 #endif
6675 ],[cf_cv_posix_visible=no],[cf_cv_posix_visible=yes])
6676 ])
6677 ])dnl
6678 dnl ---------------------------------------------------------------------------
6679 dnl CF_PREDEFINE version: 2 updated: 2010/05/26 16:44:57
6680 dnl ------------
6681 dnl Add definitions to CPPFLAGS to ensure they're predefined for all compiles.
6682 dnl
6683 dnl $1 = symbol to test
6684 dnl $2 = value (if any) to use for a predefinition
6685 AC_DEFUN([CF_PREDEFINE],
6686 [
6687 AC_MSG_CHECKING(if we must define $1)
6688 AC_TRY_COMPILE([#include <sys/types.h>
6689 ],[
6690 #ifndef $1
6691 make an error
6692 #endif],[cf_result=no],[cf_result=yes])
6693 AC_MSG_RESULT($cf_result)
6694
6695 if test "$cf_result" = yes ; then
6696         CPPFLAGS="$CPPFLAGS ifelse([$2],,-D$1,[-D$1=$2])"
6697 elif test "x$2" != "x" ; then
6698         AC_MSG_CHECKING(checking for compatible value versus $2)
6699         AC_TRY_COMPILE([#include <sys/types.h>
6700 ],[
6701 #if $1-$2 < 0
6702 make an error
6703 #endif],[cf_result=yes],[cf_result=no])
6704         AC_MSG_RESULT($cf_result)
6705         if test "$cf_result" = no ; then
6706                 # perhaps we can override it - try...
6707                 CPPFLAGS="$CPPFLAGS -D$1=$2"
6708         fi
6709 fi
6710 ])dnl
6711 dnl ---------------------------------------------------------------------------
6712 dnl CF_PRG_RULES version: 2 updated: 2021/01/01 13:31:04
6713 dnl ------------
6714 dnl Append definitions and rules for the given programs to the subdirectory
6715 dnl Makefiles, and the recursion rule for the top-level Makefile.
6716 dnl
6717 dnl parameters
6718 dnl     $1 = script to run
6719 dnl     $2 = list of subdirectories
6720 dnl
6721 dnl variables
6722 dnl     $AWK
6723 AC_DEFUN([CF_PRG_RULES],
6724 [
6725 for cf_dir in $2
6726 do
6727         if test ! -d "$srcdir/$cf_dir" ; then
6728                 continue
6729         elif test -f "$srcdir/$cf_dir/programs" ; then
6730                 $AWK -f $1 "$srcdir/$cf_dir/programs" >>$cf_dir/Makefile
6731         fi
6732 done
6733
6734 ])dnl
6735 dnl ---------------------------------------------------------------------------
6736 dnl CF_PROG_AR version: 1 updated: 2009/01/01 20:15:22
6737 dnl ----------
6738 dnl Check for archiver "ar".
6739 AC_DEFUN([CF_PROG_AR],[
6740 AC_CHECK_TOOL(AR, ar, ar)
6741 ])
6742 dnl ---------------------------------------------------------------------------
6743 dnl CF_PROG_AWK version: 1 updated: 2006/09/16 11:40:59
6744 dnl -----------
6745 dnl Check for awk, ensure that the check found something.
6746 AC_DEFUN([CF_PROG_AWK],
6747 [
6748 AC_PROG_AWK
6749 test -z "$AWK" && AC_MSG_ERROR(No awk program found)
6750 ])dnl
6751 dnl ---------------------------------------------------------------------------
6752 dnl CF_PROG_CC version: 5 updated: 2019/12/31 08:53:54
6753 dnl ----------
6754 dnl standard check for CC, plus followup sanity checks
6755 dnl $1 = optional parameter to pass to AC_PROG_CC to specify compiler name
6756 AC_DEFUN([CF_PROG_CC],[
6757 CF_ACVERSION_CHECK(2.53,
6758         [AC_MSG_WARN(this will incorrectly handle gnatgcc choice)
6759          AC_REQUIRE([AC_PROG_CC])],
6760         [])
6761 ifelse($1,,[AC_PROG_CC],[AC_PROG_CC($1)])
6762 CF_GCC_VERSION
6763 CF_ACVERSION_CHECK(2.52,
6764         [AC_PROG_CC_STDC],
6765         [CF_ANSI_CC_REQD])
6766 CF_CC_ENV_FLAGS
6767 ])dnl
6768 dnl ---------------------------------------------------------------------------
6769 dnl CF_PROG_CC_C_O version: 6 updated: 2021/01/01 13:31:04
6770 dnl --------------
6771 dnl Analogous to AC_PROG_CC_C_O, but more useful: tests only $CC, ensures that
6772 dnl the output file can be renamed, and allows for a shell variable that can
6773 dnl be used later.  The parameter is either CC or CXX.  The result is the
6774 dnl cache variable:
6775 dnl     $cf_cv_prog_CC_c_o
6776 dnl     $cf_cv_prog_CXX_c_o
6777 dnl
6778 dnl $1 = compiler
6779 dnl $2 = compiler options, if any
6780 AC_DEFUN([CF_PROG_CC_C_O],
6781 [AC_REQUIRE([AC_PROG_CC])dnl
6782 AC_MSG_CHECKING([whether [$]$1 understands -c and -o together])
6783 AC_CACHE_VAL(cf_cv_prog_$1_c_o,
6784 [
6785 cat > conftest.$ac_ext <<CF_EOF
6786 int main(void)
6787 {
6788         ${cf_cv_main_return:-return}(0);
6789 }
6790 CF_EOF
6791 # We do the test twice because some compilers refuse to overwrite an
6792 # existing .o file with -o, though they will create one.
6793 ac_try='[$]$1 $2 -c conftest.$ac_ext -o conftest2.$ac_objext >&AC_FD_CC'
6794 if AC_TRY_EVAL(ac_try) &&
6795   test -f conftest2.$ac_objext && AC_TRY_EVAL(ac_try);
6796 then
6797   eval cf_cv_prog_$1_c_o=yes
6798 else
6799   eval cf_cv_prog_$1_c_o=no
6800 fi
6801 rm -rf ./conftest*
6802 ])dnl
6803 if test "$cf_cv_prog_$1_c_o" = yes; then
6804   AC_MSG_RESULT([yes])
6805 else
6806   AC_MSG_RESULT([no])
6807 fi
6808 ])dnl
6809 dnl ---------------------------------------------------------------------------
6810 dnl CF_PROG_GNAT version: 12 updated: 2021/01/02 17:09:14
6811 dnl ------------
6812 dnl Check for gnat/gnatmake/etc, ensure that the toolset is complete.
6813 AC_DEFUN([CF_PROG_GNAT],[
6814 for cf_prog_gnat in gnat gnatmake gprconfig gprbuild
6815 do
6816         CF_UPPER(cf_upper_prog_gnat,${cf_prog_gnat})
6817
6818         unset ac_cv_path_cf_TEMP_gnat
6819         unset cf_TEMP_gnat
6820         AC_PATH_PROG(cf_TEMP_gnat,$cf_prog_gnat,no)
6821         eval "cf_cv_PATH_$cf_upper_prog_gnat=[$]ac_cv_path_cf_TEMP_gnat"
6822
6823         if test "x$cf_TEMP_gnat" != xno; then
6824                 unset cf_cv_gnat_version
6825                 unset cf_TEMP_gnat
6826                 CF_GNAT_VERSION(cf_TEMP_gnat,$cf_prog_gnat)
6827         fi
6828         eval "cf_cv_VERSION_$cf_upper_prog_gnat=[$]cf_TEMP_gnat"
6829
6830         unset cf_TEMP_gnat
6831         unset cf_cv_gnat_version
6832         unset ac_cv_path_cf_TEMP_gnat
6833 done
6834
6835 if test "x$cf_cv_VERSION_GNATMAKE" = "xno"; then
6836         cf_ada_make=
6837         cf_cv_prog_gnat_correct=no
6838 else
6839         cf_ada_make=gnatmake
6840         if test "x$cf_cv_VERSION_GPRCONFIG" = "xno"; then
6841                 # gprconfig is newer than gnatmake; we can continue...
6842                 cf_ada_config="##"
6843         else
6844                 rm -rf ./conftest* ./*~conftest*
6845                 if mkdir conftest.src
6846                 then
6847                         cf_ada_config=""
6848                         cd conftest.src
6849                         for cf_gprconfig in Ada C
6850                         do
6851                                 AC_MSG_CHECKING(for gprconfig name for $cf_gprconfig)
6852                                 if test "$cf_gprconfig" = C
6853                                 then
6854                                         for cf_gprconfig_param in \
6855                                                 "$cf_gprconfig,,,,GNATGCC" \
6856                                                 "$cf_gprconfig,,,,GCC" \
6857                                                 "$cf_gprconfig"
6858                                         do
6859                                                 cf_gprconfig_value=`echo s| gprconfig --config=$cf_gprconfig_param 2>&AC_FD_CC | ${AWK:-awk} '/^\*/{print [$]3;}' | head -n 1`
6860                                                 test -n "$cf_gprconfig_value" && break
6861                                         done
6862                                 else
6863                                         cf_gprconfig_param=$cf_gprconfig
6864                                         cf_gprconfig_value=`echo s| gprconfig --config=$cf_gprconfig_param 2>&AC_FD_CC | ${AWK:-awk} '/^\*/{print [$]3;}' | head -n 1`
6865                                 fi
6866                                 if test -n "$cf_gprconfig_value"
6867                                 then
6868                                         eval "cf_ada_config_[$]cf_gprconfig=[$]cf_gprconfig_value"
6869                                         AC_MSG_RESULT($cf_gprconfig_value)
6870                                 else
6871                                         AC_MSG_RESULT(missing)
6872                                         cf_ada_config="#"
6873                                         break
6874                                 fi
6875                         done
6876                         cd ..
6877                         rm -rf ./conftest* ./*~conftest*
6878                 fi
6879         fi
6880         if test "x$cf_ada_config" != "x#"
6881         then
6882                 CF_GNAT_VERSION
6883                 CF_CHECK_GNAT_VERSION
6884                 AC_CHECK_PROG(M4_exists, m4, yes, no)
6885                 if test "$ac_cv_prog_M4_exists" = no; then
6886                         cf_cv_prog_gnat_correct=no
6887                         AC_MSG_WARN(Ada95 binding required program m4 not found. Ada95 binding disabled)
6888                 fi
6889                 if test "$cf_cv_prog_gnat_correct" = yes; then
6890                         AC_MSG_CHECKING(if GNAT works)
6891                         CF_GNAT_TRY_RUN([procedure conftest;],
6892 [with Text_IO;
6893 with GNAT.OS_Lib;
6894 procedure conftest is
6895 begin
6896    Text_IO.Put ("Hello World");
6897    Text_IO.New_Line;
6898    GNAT.OS_Lib.OS_Exit (0);
6899 end conftest;],
6900 [cf_cv_prog_gnat_correct=yes],
6901 [cf_cv_prog_gnat_correct=no])
6902                         AC_MSG_RESULT($cf_cv_prog_gnat_correct)
6903                 fi
6904         else
6905                 cf_cv_prog_gnat_correct=no
6906         fi
6907 fi
6908
6909 AC_SUBST(cf_ada_make)
6910 AC_SUBST(cf_ada_config)
6911 AC_SUBST(cf_ada_config_Ada)
6912 AC_SUBST(cf_ada_config_C)
6913 ])dnl
6914 dnl ---------------------------------------------------------------------------
6915 dnl CF_PROG_INSTALL version: 10 updated: 2021/01/04 19:33:05
6916 dnl ---------------
6917 dnl Force $INSTALL to be an absolute-path.  Otherwise, edit_man.sh and the
6918 dnl misc/tabset install won't work properly.  Usually this happens only when
6919 dnl using the fallback mkinstalldirs script
6920 AC_DEFUN([CF_PROG_INSTALL],
6921 [AC_PROG_INSTALL
6922 case $INSTALL in
6923 (/*)
6924         ;;
6925 (*)
6926         CF_DIRNAME(cf_dir,$INSTALL)
6927         test -z "$cf_dir" && cf_dir=.
6928         INSTALL="`cd \"$cf_dir\" && pwd`"/"`echo "$INSTALL" | sed -e 's%^.*/%%'`"
6929         ;;
6930 esac
6931 ])dnl
6932 dnl ---------------------------------------------------------------------------
6933 dnl CF_PROG_LDCONFIG version: 5 updated: 2015/04/18 08:56:57
6934 dnl ----------------
6935 dnl Check for ldconfig, needed to fixup shared libraries that would be built
6936 dnl and then used in the install.
6937 AC_DEFUN([CF_PROG_LDCONFIG],[
6938 if test "$cross_compiling" = yes ; then
6939         LDCONFIG=:
6940 else
6941         case "$cf_cv_system_name" in
6942         (dragonfly*|mirbsd*|freebsd*)
6943                 test -z "$LDCONFIG" && LDCONFIG="/sbin/ldconfig -R"
6944                 ;;
6945         (*) LDPATH=$PATH:/sbin:/usr/sbin
6946                 AC_PATH_PROG(LDCONFIG,ldconfig,,$LDPATH)
6947                 ;;
6948         esac
6949 fi
6950 AC_SUBST(LDCONFIG)
6951 ])dnl
6952 dnl ---------------------------------------------------------------------------
6953 dnl CF_PROG_LINT version: 5 updated: 2022/08/20 15:44:13
6954 dnl ------------
6955 AC_DEFUN([CF_PROG_LINT],
6956 [
6957 AC_CHECK_PROGS(LINT, lint cppcheck splint)
6958 case "x$LINT" in
6959 (xcppcheck|x*/cppcheck)
6960         test -z "$LINT_OPTS" && LINT_OPTS="--enable=all"
6961         ;;
6962 esac
6963 AC_SUBST(LINT_OPTS)
6964 AC_SUBST(LINT_LIBS)
6965 ])dnl
6966 dnl ---------------------------------------------------------------------------
6967 dnl CF_PROG_LN_S version: 2 updated: 2010/08/14 18:25:37
6968 dnl ------------
6969 dnl Combine checks for "ln -s" and "ln -sf", updating $LN_S to include "-f"
6970 dnl option if it is supported.
6971 AC_DEFUN([CF_PROG_LN_S],[
6972 AC_PROG_LN_S
6973 AC_MSG_CHECKING(if $LN_S -f options work)
6974
6975 rm -f conf$$.src conf$$dst
6976 echo >conf$$.dst
6977 echo first >conf$$.src
6978 if $LN_S -f conf$$.src conf$$.dst 2>/dev/null; then
6979         cf_prog_ln_sf=yes
6980 else
6981         cf_prog_ln_sf=no
6982 fi
6983 rm -f conf$$.dst conf$$src
6984 AC_MSG_RESULT($cf_prog_ln_sf)
6985
6986 test "$cf_prog_ln_sf" = yes && LN_S="$LN_S -f"
6987 ])dnl
6988 dnl ---------------------------------------------------------------------------
6989 dnl CF_REGEX version: 18 updated: 2021/01/01 16:53:59
6990 dnl --------
6991 dnl Attempt to determine if we've got one of the flavors of regular-expression
6992 dnl code that we can support.
6993 AC_DEFUN([CF_REGEX],
6994 [
6995
6996 cf_regex_func=no
6997 cf_regex_libs=
6998 case "$host_os" in
6999 (mingw*)
7000         # -lsystre -ltre -lintl -liconv
7001         AC_CHECK_LIB(systre,regcomp,[
7002                 AC_CHECK_LIB(iconv,libiconv_open,[CF_ADD_LIB(iconv)])
7003                 AC_CHECK_LIB(intl,libintl_gettext,[CF_ADD_LIB(intl)])
7004                 AC_CHECK_LIB(tre,tre_regcomp,[CF_ADD_LIB(tre)])
7005                 CF_ADD_LIB(systre)
7006                 cf_regex_func=regcomp
7007         ],[
7008                 AC_CHECK_LIB(gnurx,regcomp,[
7009                         CF_ADD_LIB(gnurx)
7010                         cf_regex_func=regcomp])
7011         ])
7012         ;;
7013 (*)
7014         cf_regex_libs="regex re"
7015         AC_CHECK_FUNC(regcomp,[cf_regex_func=regcomp],[
7016                 for cf_regex_lib in $cf_regex_libs
7017                 do
7018                         AC_CHECK_LIB($cf_regex_lib,regcomp,[
7019                                         CF_ADD_LIB($cf_regex_lib)
7020                                         cf_regex_func=regcomp
7021                                         break])
7022                 done
7023         ])
7024         ;;
7025 esac
7026
7027 if test "$cf_regex_func" = no ; then
7028         AC_CHECK_FUNC(compile,[cf_regex_func=compile],[
7029                 AC_CHECK_LIB(gen,compile,[
7030                                 CF_ADD_LIB(gen)
7031                                 cf_regex_func=compile])])
7032 fi
7033
7034 if test "$cf_regex_func" = no ; then
7035         AC_MSG_WARN(cannot find regular expression library)
7036 fi
7037
7038 AC_CACHE_CHECK(for regular-expression headers,cf_cv_regex_hdrs,[
7039
7040 cf_cv_regex_hdrs=no
7041 case "$cf_regex_func" in
7042 (compile)
7043         for cf_regex_hdr in regexp.h regexpr.h
7044         do
7045                 AC_TRY_LINK([#include <$cf_regex_hdr>],[
7046                         char *p = compile("", "", "", 0);
7047                         int x = step("", "");
7048                         (void)p;
7049                         (void)x;
7050                 ],[
7051                         cf_cv_regex_hdrs=$cf_regex_hdr
7052                         break
7053                 ])
7054         done
7055         ;;
7056 (*)
7057         for cf_regex_hdr in regex.h
7058         do
7059                 AC_TRY_LINK([#include <sys/types.h>
7060 #include <$cf_regex_hdr>],[
7061                         regex_t *p = 0;
7062                         int x = regcomp(p, "", 0);
7063                         int y = regexec(p, "", 0, 0, 0);
7064                         (void)x;
7065                         (void)y;
7066                         regfree(p);
7067                 ],[
7068                         cf_cv_regex_hdrs=$cf_regex_hdr
7069                         break
7070                 ])
7071         done
7072         ;;
7073 esac
7074
7075 ])
7076
7077 case "$cf_cv_regex_hdrs" in
7078         (no)            AC_MSG_WARN(no regular expression header found) ;;
7079         (regex.h)       AC_DEFINE(HAVE_REGEX_H_FUNCS,1,[Define to 1 to include regex.h for regular expressions]) ;;
7080         (regexp.h)      AC_DEFINE(HAVE_REGEXP_H_FUNCS,1,[Define to 1 to include regexp.h for regular expressions]) ;;
7081         (regexpr.h) AC_DEFINE(HAVE_REGEXPR_H_FUNCS,1,[Define to 1 to include regexpr.h for regular expressions]) ;;
7082 esac
7083 ])dnl
7084 dnl ---------------------------------------------------------------------------
7085 dnl CF_REMOVE_CFLAGS version: 3 updated: 2021/09/05 17:25:40
7086 dnl ----------------
7087 dnl Remove a given option from CFLAGS/CPPFLAGS
7088 dnl $1 = option to remove
7089 dnl $2 = variable to update
7090 dnl $3 = nonempty to allow verbose message
7091 define([CF_REMOVE_CFLAGS],
7092 [
7093 cf_tmp_cflag=`echo "x$1" | sed -e 's/^.//' -e 's/=.*//'`
7094 while true
7095 do
7096         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'`
7097         test "[$]$2" != "$cf_old_cflag" || break
7098         ifelse([$3],,,[CF_VERBOSE(removing old option $1 from $2)])
7099         $2="$cf_old_cflag"
7100 done
7101 ])dnl
7102 dnl ---------------------------------------------------------------------------
7103 dnl CF_REMOVE_DEFINE version: 3 updated: 2010/01/09 11:05:50
7104 dnl ----------------
7105 dnl Remove all -U and -D options that refer to the given symbol from a list
7106 dnl of C compiler options.  This works around the problem that not all
7107 dnl compilers process -U and -D options from left-to-right, so a -U option
7108 dnl cannot be used to cancel the effect of a preceding -D option.
7109 dnl
7110 dnl $1 = target (which could be the same as the source variable)
7111 dnl $2 = source (including '$')
7112 dnl $3 = symbol to remove
7113 define([CF_REMOVE_DEFINE],
7114 [
7115 $1=`echo "$2" | \
7116         sed     -e 's/-[[UD]]'"$3"'\(=[[^       ]]*\)\?[[       ]]/ /g' \
7117                 -e 's/-[[UD]]'"$3"'\(=[[^       ]]*\)\?[$]//g'`
7118 ])dnl
7119 dnl ---------------------------------------------------------------------------
7120 dnl CF_REMOVE_LIB version: 1 updated: 2007/02/17 14:11:52
7121 dnl -------------
7122 dnl Remove the given library from the symbol
7123 dnl
7124 dnl $1 = target (which could be the same as the source variable)
7125 dnl $2 = source (including '$')
7126 dnl $3 = library to remove
7127 define([CF_REMOVE_LIB],
7128 [
7129 # remove $3 library from $2
7130 $1=`echo "$2" | sed -e 's/-l$3[[        ]]//g' -e 's/-l$3[$]//'`
7131 ])dnl
7132 dnl ---------------------------------------------------------------------------
7133 dnl CF_RESTORE_XTRA_FLAGS version: 1 updated: 2020/01/11 16:47:45
7134 dnl ---------------------
7135 dnl Restore flags saved in CF_SAVE_XTRA_FLAGS
7136 dnl $1 = name of current macro
7137 define([CF_RESTORE_XTRA_FLAGS],
7138 [
7139 LIBS="$cf_save_LIBS_$1"
7140 CFLAGS="$cf_save_CFLAGS_$1"
7141 CPPFLAGS="$cf_save_CPPFLAGS_$1"
7142 ])dnl
7143 dnl ---------------------------------------------------------------------------
7144 dnl CF_RPATH_HACK version: 13 updated: 2021/01/03 18:30:50
7145 dnl -------------
7146 AC_DEFUN([CF_RPATH_HACK],
7147 [AC_REQUIRE([AC_PROG_FGREP])dnl
7148 AC_REQUIRE([CF_LD_RPATH_OPT])dnl
7149
7150 AC_MSG_CHECKING(for updated LDFLAGS)
7151 if test -n "$LD_RPATH_OPT" ; then
7152         AC_MSG_RESULT(maybe)
7153
7154         AC_CHECK_PROGS(cf_ldd_prog,ldd,no)
7155         cf_rpath_list="/usr/lib /lib"
7156         if test "$cf_ldd_prog" != no
7157         then
7158                 cf_rpath_oops=
7159
7160 AC_TRY_LINK([#include <stdio.h>],
7161                 [printf("Hello");],
7162                 [cf_rpath_oops=`"$cf_ldd_prog" "conftest$ac_exeext" | ${FGREP-fgrep} ' not found' | sed -e 's% =>.*$%%' |sort | uniq`
7163                  cf_rpath_list=`"$cf_ldd_prog" "conftest$ac_exeext" | ${FGREP-fgrep} / | sed -e 's%^.*[[        ]]/%/%' -e 's%/[[^/]][[^/]]*$%%' |sort | uniq`])
7164
7165                 # If we passed the link-test, but get a "not found" on a given library,
7166                 # this could be due to inept reconfiguration of gcc to make it only
7167                 # partly honor /usr/local/lib (or whatever).  Sometimes this behavior
7168                 # is intentional, e.g., installing gcc in /usr/bin and suppressing the
7169                 # /usr/local libraries.
7170                 if test -n "$cf_rpath_oops"
7171                 then
7172                         for cf_rpath_src in $cf_rpath_oops
7173                         do
7174                                 for cf_rpath_dir in \
7175                                         /usr/local \
7176                                         /usr/pkg \
7177                                         /opt/sfw
7178                                 do
7179                                         if test -f "$cf_rpath_dir/lib/$cf_rpath_src"
7180                                         then
7181                                                 CF_VERBOSE(...adding -L$cf_rpath_dir/lib to LDFLAGS for $cf_rpath_src)
7182                                                 LDFLAGS="$LDFLAGS -L$cf_rpath_dir/lib"
7183                                                 break
7184                                         fi
7185                                 done
7186                         done
7187                 fi
7188         fi
7189
7190         CF_VERBOSE(...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS)
7191
7192         CF_RPATH_HACK_2(LDFLAGS)
7193         CF_RPATH_HACK_2(LIBS)
7194
7195         CF_VERBOSE(...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS)
7196 else
7197         AC_MSG_RESULT(no)
7198 fi
7199 AC_SUBST(EXTRA_LDFLAGS)
7200 ])dnl
7201 dnl ---------------------------------------------------------------------------
7202 dnl CF_RPATH_HACK_2 version: 8 updated: 2021/01/01 13:31:04
7203 dnl ---------------
7204 dnl Do one set of substitutions for CF_RPATH_HACK, adding an rpath option to
7205 dnl EXTRA_LDFLAGS for each -L option found.
7206 dnl
7207 dnl $cf_rpath_list contains a list of directories to ignore.
7208 dnl
7209 dnl $1 = variable name to update.  The LDFLAGS variable should be the only one,
7210 dnl      but LIBS often has misplaced -L options.
7211 AC_DEFUN([CF_RPATH_HACK_2],
7212 [
7213 CF_VERBOSE(...checking $1 [$]$1)
7214
7215 cf_rpath_dst=
7216 for cf_rpath_src in [$]$1
7217 do
7218         case "$cf_rpath_src" in
7219         (-L*)
7220
7221                 # check if this refers to a directory which we will ignore
7222                 cf_rpath_skip=no
7223                 if test -n "$cf_rpath_list"
7224                 then
7225                         for cf_rpath_item in $cf_rpath_list
7226                         do
7227                                 if test "x$cf_rpath_src" = "x-L$cf_rpath_item"
7228                                 then
7229                                         cf_rpath_skip=yes
7230                                         break
7231                                 fi
7232                         done
7233                 fi
7234
7235                 if test "$cf_rpath_skip" = no
7236                 then
7237                         # transform the option
7238                         if test "$LD_RPATH_OPT" = "-R " ; then
7239                                 cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%-R %"`
7240                         else
7241                                 cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%$LD_RPATH_OPT%"`
7242                         fi
7243
7244                         # if we have not already added this, add it now
7245                         cf_rpath_tst=`echo "$EXTRA_LDFLAGS" | sed -e "s%$cf_rpath_tmp %%"`
7246                         if test "x$cf_rpath_tst" = "x$EXTRA_LDFLAGS"
7247                         then
7248                                 CF_VERBOSE(...Filter $cf_rpath_src ->$cf_rpath_tmp)
7249                                 EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS"
7250                         fi
7251                 fi
7252                 ;;
7253         esac
7254         cf_rpath_dst="$cf_rpath_dst $cf_rpath_src"
7255 done
7256 $1=$cf_rpath_dst
7257
7258 CF_VERBOSE(...checked $1 [$]$1)
7259 AC_SUBST(EXTRA_LDFLAGS)
7260 ])dnl
7261 dnl ---------------------------------------------------------------------------
7262 dnl CF_SAVE_XTRA_FLAGS version: 1 updated: 2020/01/11 16:46:44
7263 dnl ------------------
7264 dnl Use this macro to save CFLAGS/CPPFLAGS/LIBS before checks against X headers
7265 dnl and libraries which do not update those variables.
7266 dnl
7267 dnl $1 = name of current macro
7268 define([CF_SAVE_XTRA_FLAGS],
7269 [
7270 cf_save_LIBS_$1="$LIBS"
7271 cf_save_CFLAGS_$1="$CFLAGS"
7272 cf_save_CPPFLAGS_$1="$CPPFLAGS"
7273 LIBS="$LIBS ${X_PRE_LIBS} ${X_LIBS} ${X_EXTRA_LIBS}"
7274 for cf_X_CFLAGS in $X_CFLAGS
7275 do
7276         case "x$cf_X_CFLAGS" in
7277         x-[[IUD]]*)
7278                 CPPFLAGS="$CPPFLAGS $cf_X_CFLAGS"
7279                 ;;
7280         *)
7281                 CFLAGS="$CFLAGS $cf_X_CFLAGS"
7282                 ;;
7283         esac
7284 done
7285 ])dnl
7286 dnl ---------------------------------------------------------------------------
7287 dnl CF_SHARED_OPTS version: 107 updated: 2021/09/04 06:47:34
7288 dnl --------------
7289 dnl --------------
7290 dnl Attempt to determine the appropriate CC/LD options for creating a shared
7291 dnl library.
7292 dnl
7293 dnl Notes:
7294 dnl a) ${LOCAL_LDFLAGS} is used to link executables that will run within
7295 dnl the build-tree, i.e., by making use of the libraries that are compiled in
7296 dnl $rel_builddir/lib We avoid compiling-in a $rel_builddir/lib path for the
7297 dnl shared library since that can lead to unexpected results at runtime.
7298 dnl b) ${LOCAL_LDFLAGS2} has the same intention but assumes that the shared
7299 dnl libraries are compiled in ../../lib
7300 dnl
7301 dnl The variable 'cf_cv_do_symlinks' is used to control whether we configure
7302 dnl to install symbolic links to the rel/abi versions of shared libraries.
7303 dnl
7304 dnl The variable 'cf_cv_shlib_version' controls whether we use the rel or abi
7305 dnl version when making symbolic links.
7306 dnl
7307 dnl The variable 'cf_cv_shlib_version_infix' controls whether shared library
7308 dnl version numbers are infix (ex: libncurses.<ver>.dylib) or postfix
7309 dnl (ex: libncurses.so.<ver>).
7310 dnl
7311 dnl Some loaders leave 'so_locations' lying around.  It is nice to clean up.
7312 AC_DEFUN([CF_SHARED_OPTS],
7313 [
7314         AC_REQUIRE([CF_LD_RPATH_OPT])
7315
7316         RM_SHARED_OPTS=
7317         LOCAL_LDFLAGS=
7318         LOCAL_LDFLAGS2=
7319         LD_SHARED_OPTS=
7320         INSTALL_LIB="-m 644"
7321         : ${rel_builddir:=.}
7322
7323         shlibdir=$libdir
7324         AC_SUBST(shlibdir)
7325
7326         MAKE_DLLS="#"
7327         AC_SUBST(MAKE_DLLS)
7328
7329         cf_cv_do_symlinks=no
7330         cf_ld_rpath_opt=
7331         test "$cf_cv_enable_rpath" = yes && cf_ld_rpath_opt="$LD_RPATH_OPT"
7332
7333         AC_MSG_CHECKING(if release/abi version should be used for shared libs)
7334         AC_ARG_WITH(shlib-version,
7335         [  --with-shlib-version=X  Specify rel or abi version for shared libs],
7336         [test -z "$withval" && withval=auto
7337         case "$withval" in
7338         (yes)
7339                 cf_cv_shlib_version=auto
7340                 ;;
7341         (rel|abi|auto)
7342                 cf_cv_shlib_version=$withval
7343                 ;;
7344         (*)
7345                 AC_MSG_RESULT($withval)
7346                 AC_MSG_ERROR([option value must be one of: rel, abi, or auto])
7347                 ;;
7348         esac
7349         ],[cf_cv_shlib_version=auto])
7350         AC_MSG_RESULT($cf_cv_shlib_version)
7351
7352         cf_cv_rm_so_locs=no
7353         cf_try_cflags=
7354
7355         # Some less-capable ports of gcc support only -fpic
7356         CC_SHARED_OPTS=
7357
7358         cf_try_fPIC=no
7359         if test "$GCC" = yes
7360         then
7361                 cf_try_fPIC=yes
7362         else
7363                 case "$cf_cv_system_name" in
7364                 (*linux*)       # e.g., PGI compiler
7365                         cf_try_fPIC=yes
7366                         ;;
7367                 esac
7368         fi
7369
7370         if test "$cf_try_fPIC" = yes
7371         then
7372                 AC_MSG_CHECKING(which $CC option to use)
7373                 cf_save_CFLAGS="$CFLAGS"
7374                 for CC_SHARED_OPTS in -fPIC -fpic ''
7375                 do
7376                         CFLAGS="$cf_save_CFLAGS $CC_SHARED_OPTS"
7377                         AC_TRY_COMPILE([#include <stdio.h>],[int x = 1],[break],[])
7378                 done
7379                 AC_MSG_RESULT($CC_SHARED_OPTS)
7380                 CFLAGS="$cf_save_CFLAGS"
7381         fi
7382
7383         cf_cv_shlib_version_infix=no
7384
7385         case "$cf_cv_system_name" in
7386         (aix4.[3-9]*|aix[[5-7]]*)
7387                 if test "$GCC" = yes; then
7388                         CC_SHARED_OPTS='-Wl,-brtl'
7389                         MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o [$]@'
7390                 else
7391                         CC_SHARED_OPTS='-brtl'
7392                         # as well as '-qpic=large -G' or perhaps "-bM:SRE -bnoentry -bexpall"
7393                         MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -G -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o [$]@'
7394                 fi
7395                 ;;
7396         (beos*)
7397                 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -o $[@] -Xlinker -soname=`basename $[@]` -nostart -e 0'
7398                 ;;
7399         (cygwin*)
7400                 CC_SHARED_OPTS=
7401                 MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
7402                 RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
7403                 cf_cv_shlib_version=cygdll
7404                 cf_cv_shlib_version_infix=cygdll
7405                 shlibdir=$bindir
7406                 MAKE_DLLS=
7407                 cat >mk_shared_lib.sh <<-CF_EOF
7408                 #!$SHELL
7409                 SHARED_LIB=\[$]1
7410                 IMPORT_LIB=\`echo "\[$]1" | sed -e 's/cyg/lib/' -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
7411                 shift
7412                 cat <<-EOF
7413                 Linking shared library
7414                 ** SHARED_LIB \[$]SHARED_LIB
7415                 ** IMPORT_LIB \[$]IMPORT_LIB
7416 EOF
7417                 exec \[$]* ${LDFLAGS} -shared -Wl,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB}
7418 CF_EOF
7419                 chmod +x mk_shared_lib.sh
7420                 ;;
7421         (msys*)
7422                 CC_SHARED_OPTS=
7423                 MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
7424                 RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
7425                 cf_cv_shlib_version=msysdll
7426                 cf_cv_shlib_version_infix=msysdll
7427                 shlibdir=$bindir
7428                 MAKE_DLLS=
7429                 cat >mk_shared_lib.sh <<-CF_EOF
7430                 #!$SHELL
7431                 SHARED_LIB=\[$]1
7432                 IMPORT_LIB=\`echo "\[$]1" | sed -e 's/msys-/lib/' -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
7433                 shift
7434                 cat <<-EOF
7435                 Linking shared library
7436                 ** SHARED_LIB \[$]SHARED_LIB
7437                 ** IMPORT_LIB \[$]IMPORT_LIB
7438 EOF
7439                 exec \[$]* ${LDFLAGS} -shared -Wl,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB}
7440 CF_EOF
7441                 chmod +x mk_shared_lib.sh
7442                 ;;
7443         (darwin*)
7444                 cf_try_cflags="no-cpp-precomp"
7445                 CC_SHARED_OPTS="-dynamic"
7446                 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -dynamiclib -install_name ${libdir}/`basename $[@]` -compatibility_version ${ABI_VERSION} -current_version ${ABI_VERSION} -o $[@]'
7447                 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi
7448                 cf_cv_shlib_version_infix=yes
7449                 AC_CACHE_CHECK([if ld -search_paths_first works], cf_cv_ldflags_search_paths_first, [
7450                         cf_save_LDFLAGS=$LDFLAGS
7451                         LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
7452                         AC_TRY_LINK(, [int i;], cf_cv_ldflags_search_paths_first=yes, cf_cv_ldflags_search_paths_first=no)
7453                                 LDFLAGS=$cf_save_LDFLAGS])
7454                 if test "$cf_cv_ldflags_search_paths_first" = yes; then
7455                         LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
7456                 fi
7457                 ;;
7458         (haiku*)
7459                 CF_SHARED_SONAME
7460                 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
7461                 ;;
7462         (hpux[[7-8]]*)
7463                 # HP-UX 8.07 ld lacks "+b" option used for libdir search-list
7464                 if test "$GCC" != yes; then
7465                         CC_SHARED_OPTS='+Z'
7466                 fi
7467                 MK_SHARED_LIB='${LD} ${LDFLAGS} -b -o $[@]'
7468                 INSTALL_LIB="-m 555"
7469                 ;;
7470         (hpux*)
7471                 # (tested with gcc 2.7.2 -- I don't have c89)
7472                 if test "$GCC" = yes; then
7473                         LD_SHARED_OPTS='-Xlinker +b -Xlinker ${libdir}'
7474                 else
7475                         CC_SHARED_OPTS='+Z'
7476                         LD_SHARED_OPTS='-Wl,+b,${libdir}'
7477                 fi
7478                 MK_SHARED_LIB='${LD} ${LDFLAGS} +b ${libdir} -b -o $[@]'
7479                 # HP-UX shared libraries must be executable, and should be
7480                 # readonly to exploit a quirk in the memory manager.
7481                 INSTALL_LIB="-m 555"
7482                 ;;
7483         (interix*)
7484                 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
7485                 if test "$cf_cv_shlib_version" = rel; then
7486                         cf_shared_soname='`basename $[@] .${REL_VERSION}`.${ABI_VERSION}'
7487                 else
7488                         cf_shared_soname='`basename $[@]`'
7489                 fi
7490                 CC_SHARED_OPTS=
7491                 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-rpath,${RPATH_LIST} -Wl,-h,'$cf_shared_soname' -o $[@]'
7492                 ;;
7493         (irix*)
7494                 if test "$cf_cv_enable_rpath" = yes ; then
7495                         EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
7496                 fi
7497                 # tested with IRIX 5.2 and 'cc'.
7498                 if test "$GCC" != yes; then
7499                         CC_SHARED_OPTS='-KPIC'
7500                         MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -rdata_shared -soname `basename $[@]` -o $[@]'
7501                 else
7502                         MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,`basename $[@]` -o $[@]'
7503                 fi
7504                 cf_cv_rm_so_locs=yes
7505                 ;;
7506         (linux*|gnu*|k*bsd*-gnu)
7507                 if test "$DFT_LWR_MODEL" = "shared" && test -n "$LD_RPATH_OPT" ; then
7508                         LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
7509                         LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
7510                 fi
7511                 if test "$cf_cv_enable_rpath" = yes ; then
7512                         EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
7513                 fi
7514                 CF_SHARED_SONAME
7515                 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
7516                 ;;
7517         (mingw*msvc*)
7518                 cf_cv_shlib_version=msvcdll
7519                 cf_cv_shlib_version_infix=msvcdll
7520                 shlibdir=$bindir
7521                 MAKE_DLLS=
7522                 if test "$DFT_LWR_MODEL" = "shared" ; then
7523                         LOCAL_LDFLAGS="-link -dll"
7524                         LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
7525                         EXTRA_LDFLAGS="-link -dll $EXTRA_LDFLAGS"
7526                 fi
7527                 CC_SHARED_OPTS=
7528                 MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ ${LD} [$]{CFLAGS}'
7529                 RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.lib"
7530                 cat >mk_shared_lib.sh <<-CF_EOF
7531                 #!$SHELL
7532                 SHARED_LIB=\[$]1
7533                 IMPORT_LIB=\`echo "\[$]1" | sed -e 's/[[0-9]]*\.dll[$]/.dll.lib/'\`
7534                 shift
7535                 my_ld=\[$]1
7536                 shift
7537                 cat <<-EOF
7538                 Linking shared library
7539                 ** SHARED LIB \$SHARED_LIB
7540                 ** IMPORT_LIB \$IMPORT_LIB
7541 EOF
7542                 args=\$(echo \[$]* | sed -E "s#-l(\w*)#\1.dll.lib#g" | sed -E "s#-L(\w*)#-LIBPATH:\1#g")
7543                 exec \$my_ld -DLL -IMPLIB:"\${IMPORT_LIB}" -OUT:"\${SHARED_LIB}" ${LDFLAGS} \$args
7544                 mv "\${IMPORT_LIB}" "\${IMPORT_LIB}"
7545 CF_EOF
7546                 chmod +x mk_shared_lib.sh
7547                 cat >mk_prog.sh <<-CF_EOF
7548                 #!$SHELL
7549                 shift
7550                 # Ignore first argument (compiler) and use LD (link.exe) unconditionally
7551                 LD="[$]LD"
7552                 clopts=()
7553                 ldopts=("/subsystem:console")
7554                 libs=()
7555                 isdll=0
7556                 while test \[$]# -gt 0; do
7557                         case "\[$]1" in
7558                                 -link)
7559                                         # ignore -link argument
7560                                         ;;
7561                                 -M[[TD]] | -M[[TD]]d)
7562                                         # ignore runtime-library option
7563                                         ;;
7564                                 -dll)
7565                                         isdll=1
7566                                         ;;
7567                                 -W* | -w*)
7568                                         # ignore warnings
7569                                         ;;
7570                                 -D*)
7571                                         clopts+=("\[$]1")
7572                                         ;;
7573                                 -I*)
7574                                         clopts+=("\[$]1")
7575                                         ;;
7576                                 -l*)
7577                                         libs+=("\`echo \"\[$]1\" | sed \"s/^-l//\"\`")
7578                                         ;;
7579                                 -L*)
7580                                         ldopts+=("\`echo \"\[$]1\" | sed \"s/^-L/-LIBPATH:/\"\`")
7581                                         ;;
7582                                 *.obj | *.o)
7583                                         ldopts+=("\[$]1")
7584                                         ;;
7585                                 -Wl,*)
7586                                         for linkarg in \`echo '\[$]1' | sed -e 's/-Wl,//' -e 's/,/ /'\`; do
7587                                                 ldopts+=("\[$]{linkarg}")
7588                                         done
7589                                         ;;
7590                                 *.lib)
7591                                         ldopts+=("\[$]1")
7592                                         ;;
7593                                 -o)
7594                                         shift
7595                                         ldopts+=("-out:\[$]1")
7596                                         ;;
7597                                 *)
7598                                         clopts+=("\[$]1")
7599                                         ldopts+=("\[$]1")
7600                                         ;;
7601                         esac
7602                         shift
7603                 done
7604                 if [[ "\$isdll" -ne 0 ]]; then
7605                         for lib in \[$]{libs[[*]]}; do
7606                                 ldopts+=("\[$]lib.dll.lib")
7607                         done
7608                 else
7609                         for lib in \[$]{libs[[*]]}; do
7610                                 ldopts+=("\[$]lib.lib")
7611                         done
7612                 fi
7613                 cat <<-EOF
7614                 Creating program
7615                 ** ld options:   "\[$]{ldopts[[@]]}"
7616 EOF
7617                 exec \[$]LD \[$]{ldopts[[@]]}
7618 CF_EOF
7619                 chmod +x mk_prog.sh
7620                 LINK_PROGS="$SHELL ${rel_builddir}/mk_prog.sh"
7621                 LINK_TESTS="$SHELL ${rel_builddir}/mk_prog.sh"
7622                 ;;
7623         (mingw*)
7624                 cf_cv_shlib_version=mingw
7625                 cf_cv_shlib_version_infix=mingw
7626                 shlibdir=$bindir
7627                 MAKE_DLLS=
7628                 if test "$DFT_LWR_MODEL" = "shared" ; then
7629                         LOCAL_LDFLAGS="-Wl,--enable-auto-import"
7630                         LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
7631                         EXTRA_LDFLAGS="-Wl,--enable-auto-import $EXTRA_LDFLAGS"
7632                 fi
7633                 CC_SHARED_OPTS=
7634                 MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
7635                 RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
7636                 cat >mk_shared_lib.sh <<-CF_EOF
7637                 #!$SHELL
7638                 SHARED_LIB=\[$]1
7639                 IMPORT_LIB=\`echo "\[$]1" | sed -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
7640                 shift
7641                 cat <<-EOF
7642                 Linking shared library
7643                 ** SHARED_LIB \[$]SHARED_LIB
7644                 ** IMPORT_LIB \[$]IMPORT_LIB
7645 EOF
7646                 exec \[$]* ${LDFLAGS} -shared -Wl,--enable-auto-import,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB}
7647 CF_EOF
7648                 chmod +x mk_shared_lib.sh
7649                 ;;
7650         (openbsd[[2-9]].*|mirbsd*)
7651                 if test "$DFT_LWR_MODEL" = "shared" && test -n "$LD_RPATH_OPT" ; then
7652                         LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
7653                         LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
7654                 fi
7655                 if test "$cf_cv_enable_rpath" = yes ; then
7656                         EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
7657                 fi
7658                 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
7659                 CF_SHARED_SONAME
7660                 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-Bshareable,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
7661                 ;;
7662         (nskJ*)
7663                 CC_SHARED_OPTS=
7664                 MK_SHARED_LIB='${LD} -Wshared -Weld=-export_all -o $[@]'
7665                 ;;
7666         (nskL*)
7667                 CC_SHARED_OPTS=
7668                 MK_SHARED_LIB='${LD} -Wshared -Wxld=-export_all -o $[@]'
7669                 ;;
7670         (nto-qnx*|openbsd*|freebsd[[12]].*)
7671                 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
7672                 MK_SHARED_LIB='${LD} ${LDFLAGS} -Bshareable -o $[@]'
7673                 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
7674                 ;;
7675         (dragonfly*|freebsd*)
7676                 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
7677                 if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then
7678                         LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)"
7679                         LOCAL_LDFLAGS2="${cf_ld_rpath_opt}\${RPATH_LIST} $LOCAL_LDFLAGS"
7680                         EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
7681                 fi
7682                 CF_SHARED_SONAME
7683                 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
7684                 ;;
7685         (netbsd*)
7686                 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
7687                 if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then
7688                         LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)"
7689                         LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
7690                         EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
7691                         if test "$cf_cv_shlib_version" = auto; then
7692                         if test -f /usr/libexec/ld.elf_so; then
7693                                 cf_cv_shlib_version=abi
7694                         else
7695                                 cf_cv_shlib_version=rel
7696                         fi
7697                         fi
7698                         CF_SHARED_SONAME
7699                         MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname' -o $[@]'
7700                 else
7701                         MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -o $[@]'
7702                 fi
7703                 ;;
7704         (osf*|mls+*)
7705                 # tested with OSF/1 V3.2 and 'cc'
7706                 # tested with OSF/1 V3.2 and gcc 2.6.3 (but the c++ demo didn't
7707                 # link with shared libs).
7708                 MK_SHARED_LIB='${LD} ${LDFLAGS} -set_version ${REL_VERSION}:${ABI_VERSION} -expect_unresolved "*" -shared -soname `basename $[@]`'
7709                 case "$host_os" in
7710                 (osf4*)
7711                         MK_SHARED_LIB="${MK_SHARED_LIB} -msym"
7712                         ;;
7713                 esac
7714                 MK_SHARED_LIB="${MK_SHARED_LIB}"' -o $[@]'
7715                 if test "$DFT_LWR_MODEL" = "shared" && test -n "$LD_RPATH_OPT" ; then
7716                         LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
7717                         LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
7718                 fi
7719                 cf_cv_rm_so_locs=yes
7720                 ;;
7721         (sco3.2v5*)  # also uw2* and UW7: hops 13-Apr-98
7722                 # tested with osr5.0.5
7723                 if test "$GCC" != yes; then
7724                         CC_SHARED_OPTS='-belf -KPIC'
7725                 fi
7726                 MK_SHARED_LIB='${LD} ${LDFLAGS} -dy -G -h `basename $[@] .${REL_VERSION}`.${ABI_VERSION} -o [$]@'
7727                 if test "$cf_cv_enable_rpath" = yes ; then
7728                         # only way is to set LD_RUN_PATH but no switch for it
7729                         RUN_PATH=$libdir
7730                 fi
7731                 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
7732                 LINK_PROGS='LD_RUN_PATH=${libdir}'
7733                 LINK_TESTS='Pwd=`pwd`;LD_RUN_PATH=`dirname $${Pwd}`/lib'
7734                 ;;
7735         (sunos4*)
7736                 # tested with SunOS 4.1.1 and gcc 2.7.0
7737                 if test "$GCC" != yes; then
7738                         CC_SHARED_OPTS='-KPIC'
7739                 fi
7740                 MK_SHARED_LIB='${LD} ${LDFLAGS} -assert pure-text -o $[@]'
7741                 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
7742                 ;;
7743         (solaris2*)
7744                 # tested with SunOS 5.5.1 (solaris 2.5.1) and gcc 2.7.2
7745                 # tested with SunOS 5.10 (solaris 10) and gcc 3.4.3
7746                 if test "$DFT_LWR_MODEL" = "shared" ; then
7747                         LOCAL_LDFLAGS="-R \$(LOCAL_LIBDIR):\${libdir}"
7748                         LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
7749                 fi
7750                 if test "$cf_cv_enable_rpath" = yes ; then
7751                         EXTRA_LDFLAGS="-R \${libdir} $EXTRA_LDFLAGS"
7752                 fi
7753                 CF_SHARED_SONAME
7754                 if test "$GCC" != yes; then
7755                         cf_save_CFLAGS="$CFLAGS"
7756                         for cf_shared_opts in -xcode=pic32 -xcode=pic13 -KPIC -Kpic -O
7757                         do
7758                                 CFLAGS="$cf_shared_opts $cf_save_CFLAGS"
7759                                 AC_TRY_COMPILE([#include <stdio.h>],[printf("Hello\\n");],[break])
7760                         done
7761                         CFLAGS="$cf_save_CFLAGS"
7762                         CC_SHARED_OPTS=$cf_shared_opts
7763                         MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -dy -G -h '$cf_cv_shared_soname' -o $[@]'
7764                 else
7765                         MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -dy -G -h '$cf_cv_shared_soname' -o $[@]'
7766                 fi
7767                 ;;
7768         (sysv5uw7*|unix_sv*)
7769                 # tested with UnixWare 7.1.0 (gcc 2.95.2 and cc)
7770                 if test "$GCC" != yes; then
7771                         CC_SHARED_OPTS='-KPIC'
7772                 fi
7773                 MK_SHARED_LIB='${LD} ${LDFLAGS} -d y -G -o [$]@'
7774                 ;;
7775         (*)
7776                 CC_SHARED_OPTS='unknown'
7777                 MK_SHARED_LIB='echo unknown'
7778                 ;;
7779         esac
7780
7781         # This works if the last tokens in $MK_SHARED_LIB are the -o target.
7782         case "$cf_cv_shlib_version" in
7783         (rel|abi)
7784                 case "$MK_SHARED_LIB" in
7785                 (*'-o $[@]')
7786                         test "$cf_cv_do_symlinks" = no && cf_cv_do_symlinks=yes
7787                         ;;
7788                 (*)
7789                         AC_MSG_WARN(ignored --with-shlib-version)
7790                         ;;
7791                 esac
7792                 ;;
7793         esac
7794
7795         if test -n "$cf_try_cflags"
7796         then
7797 cat > conftest.$ac_ext <<EOF
7798 #line __oline__ "${as_me:-configure}"
7799 #include <stdio.h>
7800 int main(int argc, char *argv[[]])
7801 {
7802         printf("hello\\n");
7803         return (argv[[argc-1]] == 0) ;
7804 }
7805 EOF
7806                 cf_save_CFLAGS="$CFLAGS"
7807                 for cf_opt in $cf_try_cflags
7808                 do
7809                         CFLAGS="$cf_save_CFLAGS -$cf_opt"
7810                         AC_MSG_CHECKING(if CFLAGS option -$cf_opt works)
7811                         if AC_TRY_EVAL(ac_compile); then
7812                                 AC_MSG_RESULT(yes)
7813                                 cf_save_CFLAGS="$CFLAGS"
7814                         else
7815                                 AC_MSG_RESULT(no)
7816                         fi
7817                 done
7818                 CFLAGS="$cf_save_CFLAGS"
7819         fi
7820
7821
7822         # RPATH_LIST is a colon-separated list of directories
7823         test -n "$cf_ld_rpath_opt" && MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${RPATH_LIST}"
7824         test -z "$RPATH_LIST" && RPATH_LIST="\${libdir}"
7825
7826         test "$cf_cv_rm_so_locs" = yes && RM_SHARED_OPTS="$RM_SHARED_OPTS so_locations"
7827
7828         CF_VERBOSE(CC_SHARED_OPTS: $CC_SHARED_OPTS)
7829         CF_VERBOSE(MK_SHARED_LIB:  $MK_SHARED_LIB)
7830
7831         AC_SUBST(CC_SHARED_OPTS)
7832         AC_SUBST(LD_RPATH_OPT)
7833         AC_SUBST(LD_SHARED_OPTS)
7834         AC_SUBST(MK_SHARED_LIB)
7835         AC_SUBST(RM_SHARED_OPTS)
7836
7837         AC_SUBST(LINK_PROGS)
7838         AC_SUBST(LINK_TESTS)
7839
7840         AC_SUBST(EXTRA_LDFLAGS)
7841         AC_SUBST(LOCAL_LDFLAGS)
7842         AC_SUBST(LOCAL_LDFLAGS2)
7843
7844         AC_SUBST(INSTALL_LIB)
7845         AC_SUBST(RPATH_LIST)
7846 ])dnl
7847 dnl ---------------------------------------------------------------------------
7848 dnl CF_SHARED_SONAME version: 3 updated: 2008/09/08 18:34:43
7849 dnl ----------------
7850 dnl utility macro for CF_SHARED_OPTS, constructs "$cf_cv_shared_soname" for
7851 dnl substitution into MK_SHARED_LIB string for the "-soname" (or similar)
7852 dnl option.
7853 dnl
7854 dnl $1 is the default that should be used for "$cf_cv_shlib_version".
7855 dnl If missing, use "rel".
7856 define([CF_SHARED_SONAME],
7857 [
7858         test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=ifelse($1,,rel,$1)
7859         if test "$cf_cv_shlib_version" = rel; then
7860                 cf_cv_shared_soname='`basename $[@] .${REL_VERSION}`.${ABI_VERSION}'
7861         else
7862                 cf_cv_shared_soname='`basename $[@]`'
7863         fi
7864 ])
7865 dnl ---------------------------------------------------------------------------
7866 dnl CF_SIGWINCH version: 6 updated: 2021/01/01 13:31:04
7867 dnl -----------
7868 dnl Use this macro after CF_XOPEN_SOURCE, but do not require it (not all
7869 dnl programs need this test).
7870 dnl
7871 dnl This is really a Mac OS X 10.4.3 workaround.  Defining _POSIX_C_SOURCE
7872 dnl forces SIGWINCH to be undefined (breaks xterm, ncurses).  Oddly, the struct
7873 dnl winsize declaration is left alone - we may revisit this if Apple choose to
7874 dnl break that part of the interface as well.
7875 AC_DEFUN([CF_SIGWINCH],
7876 [
7877 AC_CACHE_CHECK(if SIGWINCH is defined,cf_cv_define_sigwinch,[
7878         AC_TRY_COMPILE([
7879 #include <sys/types.h>
7880 #include <sys/signal.h>
7881 ],[int x = SIGWINCH; (void)x],
7882         [cf_cv_define_sigwinch=yes],
7883         [AC_TRY_COMPILE([
7884 #undef _XOPEN_SOURCE
7885 #undef _POSIX_SOURCE
7886 #undef _POSIX_C_SOURCE
7887 #include <sys/types.h>
7888 #include <sys/signal.h>
7889 ],[int x = SIGWINCH; (void)x],
7890         [cf_cv_define_sigwinch=maybe],
7891         [cf_cv_define_sigwinch=no])
7892 ])
7893 ])
7894
7895 if test "$cf_cv_define_sigwinch" = maybe ; then
7896 AC_CACHE_CHECK(for actual SIGWINCH definition,cf_cv_fixup_sigwinch,[
7897 cf_cv_fixup_sigwinch=unknown
7898 cf_sigwinch=32
7899 while test "$cf_sigwinch" != 1
7900 do
7901         AC_TRY_COMPILE([
7902 #undef _XOPEN_SOURCE
7903 #undef _POSIX_SOURCE
7904 #undef _POSIX_C_SOURCE
7905 #include <sys/types.h>
7906 #include <sys/signal.h>
7907 ],[
7908 #if SIGWINCH != $cf_sigwinch
7909 make an error
7910 #endif
7911 int x = SIGWINCH; (void)x],
7912         [cf_cv_fixup_sigwinch=$cf_sigwinch
7913          break])
7914
7915 cf_sigwinch="`expr "$cf_sigwinch" - 1`"
7916 done
7917 ])
7918
7919         if test "$cf_cv_fixup_sigwinch" != unknown ; then
7920                 CPPFLAGS="$CPPFLAGS -DSIGWINCH=$cf_cv_fixup_sigwinch"
7921         fi
7922 fi
7923 ])dnl
7924 dnl ---------------------------------------------------------------------------
7925 dnl CF_SIG_ATOMIC_T version: 5 updated: 2020/03/10 18:53:47
7926 dnl ---------------
7927 dnl signal handler, but there are some gcc dependencies in that recommendation.
7928 dnl Try anyway.
7929 AC_DEFUN([CF_SIG_ATOMIC_T],
7930 [
7931 AC_MSG_CHECKING(for signal global datatype)
7932 AC_CACHE_VAL(cf_cv_sig_atomic_t,[
7933         for cf_type in \
7934                 "volatile sig_atomic_t" \
7935                 "sig_atomic_t" \
7936                 "int"
7937         do
7938         AC_TRY_COMPILE([
7939 #include <sys/types.h>
7940 #include <signal.h>
7941 #include <stdio.h>
7942
7943 extern $cf_type x;
7944 $cf_type x;
7945 static void handler(int sig)
7946 {
7947         (void)sig;
7948         x = 5;
7949 }],
7950                 [signal(SIGINT, handler);
7951                  x = 1],
7952                 [cf_cv_sig_atomic_t=$cf_type],
7953                 [cf_cv_sig_atomic_t=no])
7954                 test "$cf_cv_sig_atomic_t" != no && break
7955         done
7956         ])
7957 AC_MSG_RESULT($cf_cv_sig_atomic_t)
7958 test "$cf_cv_sig_atomic_t" != no && AC_DEFINE_UNQUOTED(SIG_ATOMIC_T, $cf_cv_sig_atomic_t,[Define to signal global datatype])
7959 ])dnl
7960 dnl ---------------------------------------------------------------------------
7961 dnl CF_SIZECHANGE version: 18 updated: 2021/09/04 06:35:04
7962 dnl -------------
7963 dnl Check for definitions & structures needed for window size-changing
7964 dnl
7965 dnl https://stackoverflow.com/questions/18878141/difference-between-structures-ttysize-and-winsize/50769952#50769952
7966 AC_DEFUN([CF_SIZECHANGE],
7967 [
7968 AC_REQUIRE([CF_STRUCT_TERMIOS])
7969 AC_CACHE_CHECK(declaration of size-change, cf_cv_sizechange,[
7970         cf_cv_sizechange=unknown
7971         cf_save_CPPFLAGS="$CPPFLAGS"
7972
7973 for cf_opts in "" "NEED_PTEM_H"
7974 do
7975
7976         CPPFLAGS="$cf_save_CPPFLAGS"
7977         if test -n "$cf_opts"
7978         then
7979                 CF_APPEND_TEXT(CPPFLAGS,-D$cf_opts)
7980         fi
7981         AC_TRY_COMPILE([#include <sys/types.h>
7982 #ifdef HAVE_TERMIOS_H
7983 #include <termios.h>
7984 #else
7985 #ifdef HAVE_TERMIO_H
7986 #include <termio.h>
7987 #endif
7988 #endif
7989
7990 #ifdef NEED_PTEM_H
7991 /* This is a workaround for SCO:  they neglected to define struct winsize in
7992  * termios.h -- it is only in termio.h and ptem.h
7993  */
7994 #include <sys/stream.h>
7995 #include <sys/ptem.h>
7996 #endif
7997
7998 #ifdef HAVE_SYS_IOCTL_H
7999 #include <sys/ioctl.h>
8000 #endif
8001 ],[
8002 #ifdef TIOCGSIZE
8003         struct ttysize win;     /* SunOS 3.0... */
8004         int y = win.ts_lines = 2;
8005         int x = win.ts_cols = 1;
8006         (void)y;
8007         (void)x;
8008 #else
8009 #ifdef TIOCGWINSZ
8010         struct winsize win;     /* everything else */
8011         int y = win.ws_row = 2;
8012         int x = win.ws_col = 1;
8013         (void)y;
8014         (void)x;
8015 #else
8016         no TIOCGSIZE or TIOCGWINSZ
8017 #endif /* TIOCGWINSZ */
8018 #endif /* TIOCGSIZE */
8019         ],
8020         [cf_cv_sizechange=yes],
8021         [cf_cv_sizechange=no])
8022
8023         CPPFLAGS="$cf_save_CPPFLAGS"
8024         if test "$cf_cv_sizechange" = yes ; then
8025                 echo "size-change succeeded ($cf_opts)" >&AC_FD_CC
8026                 test -n "$cf_opts" && cf_cv_sizechange="$cf_opts"
8027                 break
8028         fi
8029 done
8030 ])
8031 if test "$cf_cv_sizechange" != no ; then
8032         AC_DEFINE(HAVE_SIZECHANGE,1,[Define to 1 if sizechange declarations are provided])
8033         case "$cf_cv_sizechange" in
8034         (NEED*)
8035                 AC_DEFINE_UNQUOTED($cf_cv_sizechange )
8036                 ;;
8037         esac
8038 fi
8039 ])dnl
8040 dnl ---------------------------------------------------------------------------
8041 dnl CF_SRC_MODULES version: 33 updated: 2021/01/01 13:31:04
8042 dnl --------------
8043 dnl For each parameter, test if the source-directory exists, and if it contains
8044 dnl a 'modules' file.  If so, add to the list $cf_cv_src_modules which we'll
8045 dnl use in CF_LIB_RULES.
8046 dnl
8047 dnl This uses the configured value to make the lists SRC_SUBDIRS and
8048 dnl SUB_MAKEFILES which are used in the makefile-generation scheme.
8049 AC_DEFUN([CF_SRC_MODULES],
8050 [
8051 AC_REQUIRE([CF_CHECK_GNAT_VERSION])
8052 AC_MSG_CHECKING(for src modules)
8053
8054 # dependencies and linker-arguments for test-programs
8055 TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEPS"
8056 TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEP2"
8057 if test "$DFT_LWR_MODEL" = "libtool"; then
8058         TEST_ARGS="${TEST_DEPS}"
8059         TEST_ARG2="${TEST_DEP2}"
8060 else
8061         TEST_ARGS="-l${LIB_NAME}${USE_ARG_SUFFIX} $TEST_ARGS"
8062         TEST_ARG2="-l${LIB_NAME}${USE_ARG_SUFFIX} $TEST_ARG2"
8063 fi
8064
8065 PC_MODULES_TO_MAKE="ncurses${USE_ARG_SUFFIX}"
8066 cf_cv_src_modules=
8067 for cf_dir in $1
8068 do
8069         if test -f "$srcdir/$cf_dir/modules" ; then
8070
8071                 # We may/may not have tack in the distribution, though the
8072                 # makefile is.
8073                 if test "$cf_dir" = tack ; then
8074                         if test "x$cf_with_tack" != "xyes"; then
8075                                 continue
8076                         fi
8077                 fi
8078
8079                 if test -z "$cf_cv_src_modules"; then
8080                         cf_cv_src_modules=$cf_dir
8081                 else
8082                         cf_cv_src_modules="$cf_cv_src_modules $cf_dir"
8083                 fi
8084
8085                 # Make the ncurses_cfg.h file record the library interface files as
8086                 # well.  These are header files that are the same name as their
8087                 # directory.  Ncurses is the only library that does not follow
8088                 # that pattern.
8089                 if test "$cf_dir" = tack ; then
8090                         continue
8091                 elif test -f "$srcdir/${cf_dir}/${cf_dir}.h" ; then
8092                         CF_UPPER(cf_have_include,$cf_dir)
8093                         AC_DEFINE_UNQUOTED(HAVE_${cf_have_include}_H)
8094                         AC_DEFINE_UNQUOTED(HAVE_LIB${cf_have_include})
8095                         CF_MAP_LIB_BASENAME(TEST_ROOT,$cf_dir)
8096                         TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${TEST_ROOT}${DFT_DEP_SUFFIX} $TEST_DEPS"
8097                         TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${TEST_ROOT}${DFT_DEP_SUFFIX} $TEST_DEP2"
8098                         if test "$DFT_LWR_MODEL" = "libtool"; then
8099                                 TEST_ARGS="${TEST_DEPS}"
8100                                 TEST_ARG2="${TEST_DEP2}"
8101                         else
8102                                 TEST_ARGS="-l${TEST_ROOT}${USE_ARG_SUFFIX} $TEST_ARGS"
8103                                 TEST_ARG2="-l${TEST_ROOT}${USE_ARG_SUFFIX} $TEST_ARG2"
8104                         fi
8105                         PC_MODULES_TO_MAKE="${PC_MODULES_TO_MAKE} ${cf_dir}${USE_ARG_SUFFIX}"
8106                 fi
8107         fi
8108 done
8109 AC_MSG_RESULT($cf_cv_src_modules)
8110
8111 TEST_ARGS="-L${LIB_DIR} $TEST_ARGS"
8112 TEST_ARG2="-L${LIB_2ND} $TEST_ARG2"
8113
8114 AC_SUBST(TEST_ARGS)
8115 AC_SUBST(TEST_DEPS)
8116
8117 AC_SUBST(TEST_ARG2)
8118 AC_SUBST(TEST_DEP2)
8119
8120 SRC_SUBDIRS=
8121 if test "x$cf_with_manpages" != xno ; then
8122         SRC_SUBDIRS="$SRC_SUBDIRS man"
8123 fi
8124 SRC_SUBDIRS="$SRC_SUBDIRS include"
8125 for cf_dir in $cf_cv_src_modules
8126 do
8127         SRC_SUBDIRS="$SRC_SUBDIRS $cf_dir"
8128 done
8129 if test "x$cf_with_tests" != "xno" ; then
8130         SRC_SUBDIRS="$SRC_SUBDIRS test"
8131 fi
8132 # always make this, to install the ncurses-config script
8133 SRC_SUBDIRS="$SRC_SUBDIRS misc"
8134 if test "$cf_with_cxx_binding" != no; then
8135         PC_MODULES_TO_MAKE="${PC_MODULES_TO_MAKE} ncurses++${USE_ARG_SUFFIX}"
8136         SRC_SUBDIRS="$SRC_SUBDIRS c++"
8137 fi
8138
8139 test "x$with_termlib" != xno && PC_MODULES_TO_MAKE="$PC_MODULES_TO_MAKE $TINFO_ARG_SUFFIX"
8140 test "x$with_ticlib" != xno && PC_MODULES_TO_MAKE="$PC_MODULES_TO_MAKE $TICS_ARG_SUFFIX"
8141
8142 AC_SUBST(PC_MODULES_TO_MAKE)
8143
8144 ADA_SUBDIRS=
8145 if test "x$cf_with_ada" = "xyes" && test "x$cf_cv_prog_gnat_correct" = xyes && test -f "$srcdir/Ada95/Makefile.in" ; then
8146         SRC_SUBDIRS="$SRC_SUBDIRS Ada95"
8147         ADA_SUBDIRS="gen src"
8148         if test "x$cf_with_tests" != "xno" ; then
8149                 ADA_SUBDIRS="$ADA_SUBDIRS samples"
8150         fi
8151 fi
8152
8153 SUB_MAKEFILES=
8154 for cf_dir in $SRC_SUBDIRS
8155 do
8156         SUB_MAKEFILES="$SUB_MAKEFILES $cf_dir/Makefile"
8157 done
8158
8159 if test -n "$ADA_SUBDIRS"; then
8160         for cf_dir in $ADA_SUBDIRS
8161         do
8162                 SUB_MAKEFILES="$SUB_MAKEFILES Ada95/$cf_dir/Makefile"
8163         done
8164         AC_SUBST(ADA_SUBDIRS)
8165 fi
8166 ])dnl
8167 dnl ---------------------------------------------------------------------------
8168 dnl CF_STDCPP_LIBRARY version: 12 updated: 2021/01/01 13:31:04
8169 dnl -----------------
8170 dnl Check for -lstdc++, which is GNU's standard C++ library.
8171 dnl If $CXXLIBS is set, add that to the libraries used for test-linking.
8172 dnl If -lstdc++ was not already added to $LIBS or $CXXLIBS, and is needed,
8173 dnl add it to $CXXLIBS.
8174 AC_DEFUN([CF_STDCPP_LIBRARY],
8175 [
8176 if test -n "$GXX" ; then
8177
8178         cf_save="$LIBS"
8179         LIBS="$LIBS $CXXLIBS"
8180         AC_MSG_CHECKING(if we already have C++ library)
8181         AC_TRY_LINK([
8182                         #include <iostream>],[
8183                         std::cout << "Hello World!" << std::endl;],
8184                 [cf_have_libstdcpp=yes],
8185                 [cf_have_libstdcpp=no])
8186         AC_MSG_RESULT($cf_have_libstdcpp)
8187         LIBS="$cf_save"
8188
8189         if test "$cf_have_libstdcpp" != yes
8190         then
8191                 case "$cf_cv_system_name" in
8192                 (os2*)
8193                         if test -z "`g++ -dM -E - < /dev/null | grep __KLIBC__`"; then
8194                                 cf_stdcpp_libname=stdcpp
8195                         else
8196                                 cf_stdcpp_libname=stdc++
8197                         fi
8198                         ;;
8199                 (*)
8200                         cf_stdcpp_libname=stdc++
8201                         ;;
8202                 esac
8203
8204                 AC_CACHE_CHECK(for library $cf_stdcpp_libname,cf_cv_libstdcpp,[
8205                         cf_save="$LIBS"
8206                         LIBS="$LIBS $CXXLIBS"
8207                         CF_ADD_LIB($cf_stdcpp_libname)
8208                 AC_TRY_LINK([
8209                                 #include <iostream>],[
8210                                 std::cout << "Hello World!" << std::endl;],
8211                         [cf_cv_libstdcpp=yes],
8212                         [cf_cv_libstdcpp=no])
8213                         LIBS="$cf_save"
8214                 ])
8215                 test "$cf_cv_libstdcpp" = yes && { CF_ADD_LIB($cf_stdcpp_libname,CXXLIBS) }
8216         fi
8217 fi
8218 ])dnl
8219 dnl ---------------------------------------------------------------------------
8220 dnl CF_STRIP_G_OPT version: 4 updated: 2021/01/02 09:31:20
8221 dnl --------------
8222 dnl     Remove "-g" option from the compiler options
8223 AC_DEFUN([CF_STRIP_G_OPT],
8224 [$1=`echo "${$1}" | CF__SED_TRIMBLANKS(-e 's%-g %%' -e 's%-g$%%')`])dnl
8225 dnl ---------------------------------------------------------------------------
8226 dnl CF_STRUCT_SIGACTION version: 5 updated: 2012/10/06 17:56:13
8227 dnl -------------------
8228 dnl Check if we need _POSIX_SOURCE defined to use struct sigaction.  We'll only
8229 dnl do this if we've found the sigaction function.
8230 AC_DEFUN([CF_STRUCT_SIGACTION],[
8231 AC_REQUIRE([CF_XOPEN_SOURCE])
8232
8233 if test "$ac_cv_func_sigaction" = yes; then
8234 AC_MSG_CHECKING(whether sigaction needs _POSIX_SOURCE)
8235 AC_TRY_COMPILE([
8236 #include <sys/types.h>
8237 #include <signal.h>],
8238         [struct sigaction act],
8239         [sigact_bad=no],
8240         [
8241 AC_TRY_COMPILE([
8242 #define _POSIX_SOURCE
8243 #include <sys/types.h>
8244 #include <signal.h>],
8245         [struct sigaction act],
8246         [sigact_bad=yes
8247          AC_DEFINE(_POSIX_SOURCE,1,[Define to 1 if we must define _POSIX_SOURCE])],
8248          [sigact_bad=unknown])])
8249 AC_MSG_RESULT($sigact_bad)
8250 fi
8251 ])dnl
8252 dnl ---------------------------------------------------------------------------
8253 dnl CF_STRUCT_TERMIOS version: 11 updated: 2020/03/19 20:46:13
8254 dnl -----------------
8255 dnl Some machines require _POSIX_SOURCE to completely define struct termios.
8256 AC_DEFUN([CF_STRUCT_TERMIOS],[
8257 AC_REQUIRE([CF_XOPEN_SOURCE])
8258
8259 AC_CHECK_HEADERS( \
8260 termio.h \
8261 termios.h \
8262 unistd.h \
8263 sys/ioctl.h \
8264 sys/termio.h \
8265 )
8266
8267 if test "$ac_cv_header_termios_h" = yes ; then
8268         case "$CFLAGS $CPPFLAGS" in
8269         (*-D_POSIX_SOURCE*)
8270                 termios_bad=dunno ;;
8271         (*)     termios_bad=maybe ;;
8272         esac
8273         if test "$termios_bad" = maybe ; then
8274         AC_MSG_CHECKING(whether termios.h needs _POSIX_SOURCE)
8275         AC_TRY_COMPILE([#include <termios.h>],
8276                 [struct termios foo; int x = foo.c_iflag = 1; (void)x],
8277                 termios_bad=no, [
8278                 AC_TRY_COMPILE([
8279 #define _POSIX_SOURCE
8280 #include <termios.h>],
8281                         [struct termios foo; int x = foo.c_iflag = 2; (void)x],
8282                         termios_bad=unknown,
8283                         termios_bad=yes AC_DEFINE(_POSIX_SOURCE,1,[Define to 1 if we must define _POSIX_SOURCE]))
8284                         ])
8285         AC_MSG_RESULT($termios_bad)
8286         fi
8287 fi
8288 ])dnl
8289 dnl ---------------------------------------------------------------------------
8290 dnl CF_SUBDIR_PATH version: 7 updated: 2014/12/04 04:33:06
8291 dnl --------------
8292 dnl Construct a search-list for a nonstandard header/lib-file
8293 dnl     $1 = the variable to return as result
8294 dnl     $2 = the package name
8295 dnl     $3 = the subdirectory, e.g., bin, include or lib
8296 AC_DEFUN([CF_SUBDIR_PATH],
8297 [
8298 $1=
8299
8300 CF_ADD_SUBDIR_PATH($1,$2,$3,$prefix,NONE)
8301
8302 for cf_subdir_prefix in \
8303         /usr \
8304         /usr/local \
8305         /usr/pkg \
8306         /opt \
8307         /opt/local \
8308         [$]HOME
8309 do
8310         CF_ADD_SUBDIR_PATH($1,$2,$3,$cf_subdir_prefix,$prefix)
8311 done
8312 ])dnl
8313 dnl ---------------------------------------------------------------------------
8314 dnl CF_SUBST_IF version: 2 updated: 2006/06/17 12:33:03
8315 dnl -----------
8316 dnl     Shorthand macro for substituting things that the user may override
8317 dnl     with an environment variable.
8318 dnl
8319 dnl     $1 = condition to pass to "test"
8320 dnl     $2 = environment variable
8321 dnl     $3 = value if the test succeeds
8322 dnl     $4 = value if the test fails
8323 AC_DEFUN([CF_SUBST_IF],
8324 [
8325 if test $1 ; then
8326         $2=$3
8327 ifelse($4,,,[else
8328         $2=$4])
8329 fi
8330 AC_SUBST($2)
8331 ])dnl
8332 dnl ---------------------------------------------------------------------------
8333 dnl CF_SUBST_NCURSES_VERSION version: 11 updated: 2023/01/07 16:32:06
8334 dnl ------------------------
8335 dnl Get the version-number for use in shared-library naming, etc.
8336 AC_DEFUN([CF_SUBST_NCURSES_VERSION],
8337 [AC_REQUIRE([AC_PROG_EGREP])dnl
8338
8339 NCURSES_MAJOR="`${EGREP-egrep} '^NCURSES_MAJOR[[        ]]*=' "$srcdir/dist.mk" | sed -e 's/^[[^0-9]]*//'`"
8340 NCURSES_MINOR="`${EGREP-egrep} '^NCURSES_MINOR[[        ]]*=' "$srcdir/dist.mk" | sed -e 's/^[[^0-9]]*//'`"
8341 NCURSES_PATCH="`${EGREP-egrep} '^NCURSES_PATCH[[        ]]*=' "$srcdir/dist.mk" | sed -e 's/^[[^0-9]]*//'`"
8342 cf_cv_abi_version=${NCURSES_MAJOR}
8343 cf_cv_abi_default=${NCURSES_MAJOR}
8344 cf_cv_rel_version=${NCURSES_MAJOR}.${NCURSES_MINOR}
8345 dnl Show the computed version, for logging
8346 cf_cv_timestamp=`date`
8347 AC_MSG_RESULT(Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_default ($cf_cv_timestamp))
8348 dnl We need these values in the generated headers
8349 AC_SUBST(NCURSES_MAJOR)
8350 AC_SUBST(NCURSES_MINOR)
8351 AC_SUBST(NCURSES_PATCH)
8352 dnl We need these values in the generated makefiles
8353 AC_SUBST(cf_cv_rel_version)
8354 AC_SUBST(cf_cv_abi_version)
8355 AC_SUBST(cf_cv_abi_default)
8356 AC_SUBST(cf_cv_builtin_bool)
8357 AC_SUBST(cf_cv_header_stdbool_h)
8358 AC_SUBST(cf_cv_type_of_bool)dnl
8359 ])dnl
8360 dnl ---------------------------------------------------------------------------
8361 dnl CF_SYS_TIME_SELECT version: 6 updated: 2015/04/18 08:56:57
8362 dnl ------------------
8363 dnl Check if we can include <sys/time.h> with <sys/select.h>; this breaks on
8364 dnl older SCO configurations.
8365 AC_DEFUN([CF_SYS_TIME_SELECT],
8366 [
8367 AC_MSG_CHECKING(if sys/time.h works with sys/select.h)
8368 AC_CACHE_VAL(cf_cv_sys_time_select,[
8369 AC_TRY_COMPILE([
8370 #include <sys/types.h>
8371 #ifdef HAVE_SYS_TIME_H
8372 #include <sys/time.h>
8373 #endif
8374 #ifdef HAVE_SYS_SELECT_H
8375 #include <sys/select.h>
8376 #endif
8377 ],[],[cf_cv_sys_time_select=yes],
8378          [cf_cv_sys_time_select=no])
8379          ])
8380 AC_MSG_RESULT($cf_cv_sys_time_select)
8381 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>])
8382 ])dnl
8383 dnl ---------------------------------------------------------------------------
8384 dnl CF_TOP_BUILDDIR version: 2 updated: 2013/07/27 17:38:32
8385 dnl ---------------
8386 dnl Define a top_builddir symbol, for applications that need an absolute path.
8387 AC_DEFUN([CF_TOP_BUILDDIR],
8388 [
8389 top_builddir=ifelse($1,,`pwd`,$1)
8390 AC_SUBST(top_builddir)
8391 ])dnl
8392 dnl ---------------------------------------------------------------------------
8393 dnl CF_TRY_PKG_CONFIG version: 6 updated: 2020/12/31 10:54:15
8394 dnl -----------------
8395 dnl This is a simple wrapper to use for pkg-config, for libraries which may be
8396 dnl available in that form.
8397 dnl
8398 dnl $1 = package name, which may be a shell variable
8399 dnl $2 = extra logic to use, if any, after updating CFLAGS and LIBS
8400 dnl $3 = logic to use if pkg-config does not have the package
8401 AC_DEFUN([CF_TRY_PKG_CONFIG],[
8402 AC_REQUIRE([CF_PKG_CONFIG])
8403
8404 if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists "$1"; then
8405         CF_VERBOSE(found package $1)
8406         cf_pkgconfig_incs="`$PKG_CONFIG --cflags "$1" 2>/dev/null`"
8407         cf_pkgconfig_libs="`$PKG_CONFIG --libs   "$1" 2>/dev/null`"
8408         CF_VERBOSE(package $1 CFLAGS: $cf_pkgconfig_incs)
8409         CF_VERBOSE(package $1 LIBS: $cf_pkgconfig_libs)
8410         CF_ADD_CFLAGS($cf_pkgconfig_incs)
8411         CF_ADD_LIBS($cf_pkgconfig_libs)
8412         ifelse([$2],,:,[$2])
8413 else
8414         cf_pkgconfig_incs=
8415         cf_pkgconfig_libs=
8416         ifelse([$3],,:,[$3])
8417 fi
8418 ])
8419 dnl ---------------------------------------------------------------------------
8420 dnl CF_TRY_XOPEN_SOURCE version: 4 updated: 2022/09/10 15:16:16
8421 dnl -------------------
8422 dnl If _XOPEN_SOURCE is not defined in the compile environment, check if we
8423 dnl can define it successfully.
8424 AC_DEFUN([CF_TRY_XOPEN_SOURCE],[
8425 AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[
8426         AC_TRY_COMPILE(CF__XOPEN_SOURCE_HEAD,CF__XOPEN_SOURCE_BODY,
8427         [cf_cv_xopen_source=no],
8428         [cf_save="$CPPFLAGS"
8429          CF_APPEND_TEXT(CPPFLAGS,-D_XOPEN_SOURCE=$cf_XOPEN_SOURCE)
8430          AC_TRY_COMPILE(CF__XOPEN_SOURCE_HEAD,CF__XOPEN_SOURCE_BODY,
8431                 [cf_cv_xopen_source=no],
8432                 [cf_cv_xopen_source=$cf_XOPEN_SOURCE])
8433                 CPPFLAGS="$cf_save"
8434         ])
8435 ])
8436
8437 if test "$cf_cv_xopen_source" != no ; then
8438         CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE)
8439         CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE)
8440         cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
8441         CF_APPEND_CFLAGS($cf_temp_xopen_source)
8442 fi
8443 ])
8444 dnl ---------------------------------------------------------------------------
8445 dnl CF_TYPEOF_CHTYPE version: 11 updated: 2023/01/05 17:57:59
8446 dnl ----------------
8447 dnl Determine the type we should use for chtype (and attr_t, which is treated
8448 dnl as the same thing).  We want around 32 bits, so on most machines want a
8449 dnl long, but on newer 64-bit machines, probably want an int.  If we're using
8450 dnl wide characters, we have to have a type compatible with that, as well.
8451 AC_DEFUN([CF_TYPEOF_CHTYPE],
8452 [
8453 AC_MSG_CHECKING([for type of chtype])
8454 AC_CACHE_VAL(cf_cv_typeof_chtype,[
8455                 AC_TRY_RUN([
8456 $ac_includes_default
8457 #define WANT_BITS 31
8458 int main(void)
8459 {
8460         FILE *fp = fopen("cf_test.out", "w");
8461         if (fp != 0) {
8462                 char *result = "long";
8463                 if (sizeof(unsigned long) > sizeof(unsigned int)) {
8464                         int n;
8465                         unsigned int x, y;
8466                         for (n = 0; n < WANT_BITS; n++) {
8467                                 x = (1 << n);
8468                                 y = (x >> n);
8469                                 if (y != 1 || x == 0) {
8470                                         x = 0;
8471                                         break;
8472                                 }
8473                         }
8474                         /*
8475                          * If x is nonzero, an int is big enough for the bits
8476                          * that we want.
8477                          */
8478                         result = (x != 0) ? "int" : "long";
8479                 }
8480                 fputs(result, fp);
8481                 fclose(fp);
8482         }
8483         ${cf_cv_main_return:-return}(0);
8484 }
8485                 ],
8486                 [cf_cv_typeof_chtype=`cat cf_test.out`],
8487                 [cf_cv_typeof_chtype=long],
8488                 [cf_cv_typeof_chtype=long])
8489                 rm -f cf_test.out
8490         ])
8491 AC_MSG_RESULT($cf_cv_typeof_chtype)
8492
8493 AC_SUBST(cf_cv_typeof_chtype)
8494 AC_DEFINE_UNQUOTED(TYPEOF_CHTYPE,$cf_cv_typeof_chtype,[Define to actual type if needed for chtype])
8495 ])dnl
8496 dnl ---------------------------------------------------------------------------
8497 dnl CF_TYPE_SIGACTION version: 4 updated: 2012/10/06 17:56:13
8498 dnl -----------------
8499 dnl
8500 AC_DEFUN([CF_TYPE_SIGACTION],
8501 [
8502 AC_MSG_CHECKING([for type sigaction_t])
8503 AC_CACHE_VAL(cf_cv_type_sigaction,[
8504         AC_TRY_COMPILE([
8505 #include <signal.h>],
8506                 [sigaction_t x],
8507                 [cf_cv_type_sigaction=yes],
8508                 [cf_cv_type_sigaction=no])])
8509 AC_MSG_RESULT($cf_cv_type_sigaction)
8510 test "$cf_cv_type_sigaction" = yes && AC_DEFINE(HAVE_TYPE_SIGACTION,1,[Define to 1 if we have the sigaction_t type])
8511 ])dnl
8512 dnl ---------------------------------------------------------------------------
8513 dnl CF_UNSIGNED_LITERALS version: 2 updated: 1998/02/07 22:10:16
8514 dnl --------------------
8515 dnl Test if the compiler supports 'U' and 'L' suffixes.  Only old compilers
8516 dnl won't, but they're still there.
8517 AC_DEFUN([CF_UNSIGNED_LITERALS],
8518 [
8519 AC_MSG_CHECKING([if unsigned literals are legal])
8520 AC_CACHE_VAL(cf_cv_unsigned_literals,[
8521         AC_TRY_COMPILE([],[long x = 1L + 1UL + 1U + 1],
8522                 [cf_cv_unsigned_literals=yes],
8523                 [cf_cv_unsigned_literals=no])
8524         ])
8525 AC_MSG_RESULT($cf_cv_unsigned_literals)
8526 ])dnl
8527 dnl ---------------------------------------------------------------------------
8528 dnl CF_UPPER version: 5 updated: 2001/01/29 23:40:59
8529 dnl --------
8530 dnl Make an uppercase version of a variable
8531 dnl $1=uppercase($2)
8532 AC_DEFUN([CF_UPPER],
8533 [
8534 $1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
8535 ])dnl
8536 dnl ---------------------------------------------------------------------------
8537 dnl CF_UTF8_LIB version: 9 updated: 2021/05/19 19:35:25
8538 dnl -----------
8539 dnl Check for multibyte support, and if not found, utf8 compatibility library
8540 AC_DEFUN([CF_UTF8_LIB],
8541 [
8542 AC_HAVE_HEADERS(wchar.h)
8543 AC_CACHE_CHECK(for multibyte character support,cf_cv_utf8_lib,[
8544         cf_save_LIBS="$LIBS"
8545         AC_TRY_LINK([
8546 #include <stdlib.h>
8547 #include <stdio.h>
8548 #ifdef HAVE_WCHAR_H
8549 #include <wchar.h>
8550 #endif
8551 ],[putwc(0,0);],
8552         [cf_cv_utf8_lib=yes],
8553         [CF_FIND_LINKAGE([
8554 #include <libutf8.h>],[putwc(0,0);],utf8,
8555                 [cf_cv_utf8_lib=add-on],
8556                 [cf_cv_utf8_lib=no])
8557 ])])
8558
8559 # HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
8560 # ncurses/ncursesw:
8561 if test "$cf_cv_utf8_lib" = "add-on" ; then
8562         AC_DEFINE(HAVE_LIBUTF8_H,1,[Define to 1 if we should include libutf8.h])
8563         CF_ADD_INCDIR($cf_cv_header_path_utf8)
8564         CF_ADD_LIBDIR($cf_cv_library_path_utf8)
8565         CF_ADD_LIBS($cf_cv_library_file_utf8)
8566 fi
8567 ])dnl
8568 dnl ---------------------------------------------------------------------------
8569 dnl CF_VA_COPY version: 6 updated: 2018/12/04 18:14:25
8570 dnl ----------
8571 dnl check for va_copy, part of stdarg.h starting with ISO C 1999.
8572 dnl Also, workaround for glibc's __va_copy, by checking for both.
8573 dnl Finally, try to accommodate pre-ISO C 1999 headers.
8574 AC_DEFUN([CF_VA_COPY],[
8575 AC_CACHE_CHECK(for va_copy, cf_cv_have_va_copy,[
8576 AC_TRY_LINK([
8577 #include <stdarg.h>
8578 ],[
8579         static va_list dst;
8580         static va_list src;
8581         va_copy(dst, src)],
8582         cf_cv_have_va_copy=yes,
8583         cf_cv_have_va_copy=no)])
8584
8585 if test "$cf_cv_have_va_copy" = yes;
8586 then
8587         AC_DEFINE(HAVE_VA_COPY,1,[Define to 1 if we have va_copy])
8588 else # !cf_cv_have_va_copy
8589
8590 AC_CACHE_CHECK(for __va_copy, cf_cv_have___va_copy,[
8591 AC_TRY_LINK([
8592 #include <stdarg.h>
8593 ],[
8594         static va_list dst;
8595         static va_list src;
8596         __va_copy(dst, src)],
8597         cf_cv_have___va_copy=yes,
8598         cf_cv_have___va_copy=no)])
8599
8600 if test "$cf_cv_have___va_copy" = yes
8601 then
8602         AC_DEFINE(HAVE___VA_COPY,1,[Define to 1 if we have __va_copy])
8603 else # !cf_cv_have___va_copy
8604
8605 AC_CACHE_CHECK(for __builtin_va_copy, cf_cv_have___builtin_va_copy,[
8606 AC_TRY_LINK([
8607 #include <stdarg.h>
8608 ],[
8609         static va_list dst;
8610         static va_list src;
8611         __builtin_va_copy(dst, src)],
8612         cf_cv_have___builtin_va_copy=yes,
8613         cf_cv_have___builtin_va_copy=no)])
8614
8615 test "$cf_cv_have___builtin_va_copy" = yes &&
8616         AC_DEFINE(HAVE___BUILTIN_VA_COPY,1,[Define to 1 if we have __builtin_va_copy])
8617
8618 fi # cf_cv_have___va_copy
8619
8620 fi # cf_cv_have_va_copy
8621
8622 case "${cf_cv_have_va_copy}${cf_cv_have___va_copy}${cf_cv_have___builtin_va_copy}" in
8623 (*yes*)
8624         ;;
8625
8626 (*)
8627         AC_CACHE_CHECK(if we can simply copy va_list, cf_cv_pointer_va_list,[
8628 AC_TRY_LINK([
8629 #include <stdarg.h>
8630 ],[
8631         va_list dst;
8632         va_list src;
8633         dst = src],
8634         cf_cv_pointer_va_list=yes,
8635         cf_cv_pointer_va_list=no)])
8636
8637         if test "$cf_cv_pointer_va_list" = no
8638         then
8639                 AC_CACHE_CHECK(if we can copy va_list indirectly, cf_cv_array_va_list,[
8640 AC_TRY_LINK([
8641 #include <stdarg.h>
8642 ],[
8643         va_list dst;
8644         va_list src;
8645         *dst = *src],
8646                         cf_cv_array_va_list=yes,
8647                         cf_cv_array_va_list=no)])
8648                 test "$cf_cv_array_va_list" = yes && AC_DEFINE(ARRAY_VA_LIST,1,[Define to 1 if we can copy va_list indirectly])
8649         fi
8650         ;;
8651 esac
8652 ])
8653 dnl ---------------------------------------------------------------------------
8654 dnl CF_VERBOSE version: 3 updated: 2007/07/29 09:55:12
8655 dnl ----------
8656 dnl Use AC_VERBOSE w/o the warnings
8657 AC_DEFUN([CF_VERBOSE],
8658 [test -n "$verbose" && echo "   $1" 1>&AC_FD_MSG
8659 CF_MSG_LOG([$1])
8660 ])dnl
8661 dnl ---------------------------------------------------------------------------
8662 dnl CF_VERSION_INFO version: 8 updated: 2021/01/01 13:31:04
8663 dnl ---------------
8664 dnl Define several useful symbols derived from the VERSION file.  A separate
8665 dnl file is preferred to embedding the version numbers in various scripts.
8666 dnl (automake is a textbook-example of why the latter is a bad idea, but there
8667 dnl are others).
8668 dnl
8669 dnl The file contents are:
8670 dnl     libtool-version release-version patch-version
8671 dnl or
8672 dnl     release-version
8673 dnl where
8674 dnl     libtool-version (see ?) consists of 3 integers separated by '.'
8675 dnl     release-version consists of a major version and minor version
8676 dnl             separated by '.', optionally followed by a patch-version
8677 dnl             separated by '-'.  The minor version need not be an
8678 dnl             integer (but it is preferred).
8679 dnl     patch-version is an integer in the form yyyymmdd, so ifdef's and
8680 dnl             scripts can easily compare versions.
8681 dnl
8682 dnl If libtool is used, the first form is required, since CF_WITH_LIBTOOL
8683 dnl simply extracts the first field using 'cut -f1'.
8684 dnl
8685 dnl Optional parameters:
8686 dnl $1 = internal name for package
8687 dnl $2 = external name for package
8688 AC_DEFUN([CF_VERSION_INFO],
8689 [
8690 if test -f "$srcdir/VERSION" ; then
8691         AC_MSG_CHECKING(for package version)
8692
8693         # if there are not enough fields, cut returns the last one...
8694         cf_field1=`sed -e '2,$d' "$srcdir/VERSION" |cut -f1`
8695         cf_field2=`sed -e '2,$d' "$srcdir/VERSION" |cut -f2`
8696         cf_field3=`sed -e '2,$d' "$srcdir/VERSION" |cut -f3`
8697
8698         # this is how CF_BUNDLED_INTL uses $VERSION:
8699         VERSION="$cf_field1"
8700
8701         VERSION_MAJOR=`echo "$cf_field2" | sed -e 's/\..*//'`
8702         test -z "$VERSION_MAJOR" && AC_MSG_ERROR(missing major-version)
8703
8704         VERSION_MINOR=`echo "$cf_field2" | sed -e 's/^[[^.]]*\.//' -e 's/-.*//'`
8705         test -z "$VERSION_MINOR" && AC_MSG_ERROR(missing minor-version)
8706
8707         AC_MSG_RESULT(${VERSION_MAJOR}.${VERSION_MINOR})
8708
8709         AC_MSG_CHECKING(for package patch date)
8710         VERSION_PATCH=`echo "$cf_field3" | sed -e 's/^[[^-]]*-//'`
8711         case .$VERSION_PATCH in
8712         (.)
8713                 AC_MSG_ERROR(missing patch-date $VERSION_PATCH)
8714                 ;;
8715         (.[[0-9]][[0-9]][[0-9]][[0-9]][[0-9]][[0-9]][[0-9]][[0-9]])
8716                 ;;
8717         (*)
8718                 AC_MSG_ERROR(illegal patch-date $VERSION_PATCH)
8719                 ;;
8720         esac
8721         AC_MSG_RESULT($VERSION_PATCH)
8722 else
8723         AC_MSG_ERROR(did not find $srcdir/VERSION)
8724 fi
8725
8726 # show the actual data that we have for versions:
8727 CF_VERBOSE(ABI VERSION $VERSION)
8728 CF_VERBOSE(VERSION_MAJOR $VERSION_MAJOR)
8729 CF_VERBOSE(VERSION_MINOR $VERSION_MINOR)
8730 CF_VERBOSE(VERSION_PATCH $VERSION_PATCH)
8731
8732 AC_SUBST(VERSION)
8733 AC_SUBST(VERSION_MAJOR)
8734 AC_SUBST(VERSION_MINOR)
8735 AC_SUBST(VERSION_PATCH)
8736
8737 dnl if a package name is given, define its corresponding version info.  We
8738 dnl need the package name to ensure that the defined symbols are unique.
8739 ifelse($1,,,[
8740         cf_PACKAGE=$1
8741         PACKAGE=ifelse($2,,$1,$2)
8742         AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE",[Define to the package-name])
8743         AC_SUBST(PACKAGE)
8744         CF_UPPER(cf_PACKAGE,$cf_PACKAGE)
8745         AC_DEFINE_UNQUOTED(${cf_PACKAGE}_VERSION,"${VERSION_MAJOR}.${VERSION_MINOR}")
8746         AC_DEFINE_UNQUOTED(${cf_PACKAGE}_PATCHDATE,${VERSION_PATCH})
8747 ])
8748 ])dnl
8749 dnl ---------------------------------------------------------------------------
8750 dnl CF_WCHAR_TYPE version: 4 updated: 2012/10/06 16:39:58
8751 dnl -------------
8752 dnl Check if type wide-character type $1 is declared, and if so, which header
8753 dnl file is needed.  The second parameter is used to set a shell variable when
8754 dnl the type is not found.  The first parameter sets a shell variable for the
8755 dnl opposite sense.
8756 AC_DEFUN([CF_WCHAR_TYPE],
8757 [
8758 # This is needed on Tru64 5.0 to declare $1
8759 AC_CACHE_CHECK(if we must include wchar.h to declare $1,cf_cv_$1,[
8760 AC_TRY_COMPILE([
8761 #include <stdlib.h>
8762 #include <stdarg.h>
8763 #include <stdio.h>
8764 #ifdef HAVE_LIBUTF8_H
8765 #include <libutf8.h>
8766 #endif],
8767         [$1 state],
8768         [cf_cv_$1=no],
8769         [AC_TRY_COMPILE([
8770 #include <stdlib.h>
8771 #include <stdarg.h>
8772 #include <stdio.h>
8773 #include <wchar.h>
8774 #ifdef HAVE_LIBUTF8_H
8775 #include <libutf8.h>
8776 #endif],
8777         [$1 value],
8778         [cf_cv_$1=yes],
8779         [cf_cv_$1=unknown])])])
8780
8781 if test "$cf_cv_$1" = yes ; then
8782         AC_DEFINE(NEED_WCHAR_H,1,[Define to 1 if we must include wchar.h])
8783         NEED_WCHAR_H=1
8784 fi
8785
8786 ifelse([$2],,,[
8787 # if we do not find $1 in either place, use substitution to provide a fallback.
8788 if test "$cf_cv_$1" = unknown ; then
8789         $2=1
8790 fi
8791 ])
8792 ifelse($3,,,[
8793 # if we find $1 in either place, use substitution to provide a fallback.
8794 if test "$cf_cv_$1" != unknown ; then
8795         $3=1
8796 fi
8797 ])
8798 ])dnl
8799 dnl ---------------------------------------------------------------------------
8800 dnl CF_WEAK_SYMBOLS version: 1 updated: 2008/08/16 19:18:06
8801 dnl ---------------
8802 dnl Check for compiler-support for weak symbols.
8803 dnl This works with "recent" gcc.
8804 AC_DEFUN([CF_WEAK_SYMBOLS],[
8805 AC_CACHE_CHECK(if $CC supports weak symbols,cf_cv_weak_symbols,[
8806
8807 AC_TRY_COMPILE([
8808 #include <stdio.h>],
8809 [
8810 #if defined(__GNUC__)
8811 #  if defined __USE_ISOC99
8812 #    define _cat_pragma(exp)    _Pragma(#exp)
8813 #    define _weak_pragma(exp)   _cat_pragma(weak name)
8814 #  else
8815 #    define _weak_pragma(exp)
8816 #  endif
8817 #  define _declare(name)        __extension__ extern __typeof__(name) name
8818 #  define weak_symbol(name)     _weak_pragma(name) _declare(name) __attribute__((weak))
8819 #endif
8820
8821 weak_symbol(fopen);
8822 ],[cf_cv_weak_symbols=yes],[cf_cv_weak_symbols=no])
8823 ])
8824 ])dnl
8825 dnl ---------------------------------------------------------------------------
8826 dnl CF_WITH_ABI_ALTERED version: 1 updated: 2023/01/07 16:32:06
8827 dnl -------------------
8828 dnl Provide a way to override the displayed ABI version, e.g., in filenames.
8829 dnl Check this option after using the ABI version in configuration decisions.
8830 AC_DEFUN([CF_WITH_ABI_ALTERED],[
8831 AC_REQUIRE([CF_WITH_ABI_VERSION])
8832 AC_REQUIRE([CF_ABI_DEFAULTS])
8833 AC_ARG_WITH(abi-altered,
8834 [  --with-abi-altered=XXX  override visible ABI version, for packaging],[
8835         CF_NUMBER_SYNTAX($withval,ABI altered)
8836         if test "$cf_cv_abi_version" != "$withval"
8837         then
8838                 AC_MSG_WARN(altering visible ABI from $cf_cv_abi_version to $withval)
8839                 cf_cv_abi_version=$withval
8840         fi
8841 ])dnl
8842 ])dnl
8843 dnl ---------------------------------------------------------------------------
8844 dnl CF_WITH_ABI_VERSION version: 5 updated: 2023/01/07 16:32:06
8845 dnl -------------------
8846 dnl Allow library's ABI to be overridden.  Generally this happens when a
8847 dnl packager has incremented the ABI past that used in the original package,
8848 dnl and wishes to keep doing this.
8849 dnl
8850 dnl $1 is the package name, if any, to derive a corresponding {package}_ABI
8851 dnl symbol.
8852 AC_DEFUN([CF_WITH_ABI_VERSION],[
8853 test -z "$cf_cv_abi_version" && cf_cv_abi_version=0
8854 AC_ARG_WITH(abi-version,
8855 [  --with-abi-version=XXX  override derived ABI version],[
8856         if test "x$cf_cv_abi_version" != "x$withval"
8857         then
8858                 AC_MSG_WARN(overriding ABI version $cf_cv_abi_version to $withval)
8859                 case "$cf_cv_rel_version" in
8860                 (5.*)
8861                         cf_cv_rel_version=$withval.0
8862                         ;;
8863                 (6.*)
8864                         cf_cv_rel_version=$withval.9    # FIXME: should be 10 as of 6.0 release
8865                         ;;
8866                 esac
8867         fi
8868         cf_cv_abi_version=$withval])
8869         CF_NUMBER_SYNTAX($cf_cv_abi_version,ABI version)
8870 ifelse($1,,,[
8871 $1_ABI=$cf_cv_abi_version
8872 ])
8873 cf_cv_abi_default=$cf_cv_abi_version
8874 ])dnl
8875 dnl ---------------------------------------------------------------------------
8876 dnl CF_WITH_ADA_COMPILER version: 2 updated: 2010/06/26 17:35:58
8877 dnl --------------------
8878 dnl Command-line option to specify the Ada95 compiler.
8879 AC_DEFUN([CF_WITH_ADA_COMPILER],[
8880 AC_MSG_CHECKING(for ada-compiler)
8881 AC_ARG_WITH(ada-compiler,
8882         [  --with-ada-compiler=CMD specify Ada95 compiler command (default gnatmake)],
8883         [cf_ada_compiler=$withval],
8884         [cf_ada_compiler=gnatmake])
8885 AC_SUBST(cf_ada_compiler)
8886 AC_MSG_RESULT($cf_ada_compiler)
8887 ])dnl
8888 dnl ---------------------------------------------------------------------------
8889 dnl CF_WITH_ADA_INCLUDE version: 2 updated: 2010/06/26 17:35:58
8890 dnl -------------------
8891 dnl Command-line option to specify where Ada includes will install.
8892 AC_DEFUN([CF_WITH_ADA_INCLUDE],[
8893 AC_MSG_CHECKING(for ada-include)
8894 CF_WITH_PATH(ada-include,
8895    [  --with-ada-include=DIR  Ada includes are in DIR],
8896    ADA_INCLUDE,
8897    PREFIX/share/ada/adainclude,
8898    [$]prefix/share/ada/adainclude)
8899 AC_SUBST(ADA_INCLUDE)
8900 AC_MSG_RESULT($ADA_INCLUDE)
8901 ])dnl
8902 dnl ---------------------------------------------------------------------------
8903 dnl CF_WITH_ADA_LIBNAME version: 1 updated: 2019/09/07 18:59:41
8904 dnl -------------------
8905 dnl CF_WITH_ADA_LIBNAME
8906 dnl -------------------
8907 dnl Command-line option to specify how to name the resulting Ada library.
8908 dnl $1 = default value
8909 AC_DEFUN([CF_WITH_ADA_LIBNAME],[
8910 AC_MSG_CHECKING(for ada-libname)
8911 AC_ARG_WITH(ada-libname,
8912    [  --with-ada-libname=XXX  override default Ada library-name],
8913    ADA_LIBNAME=[$]withval,
8914    ADA_LIBNAME=$1)
8915 case "x$ADA_LIBNAME" in
8916 (x|xyes|xno)
8917         ADA_LIBNAME=$1
8918         ;;
8919 esac
8920 AC_SUBST(ADA_LIBNAME)
8921 AC_MSG_RESULT($ADA_LIBNAME)
8922 ])dnl
8923 dnl ---------------------------------------------------------------------------
8924 dnl CF_WITH_ADA_OBJECTS version: 2 updated: 2010/06/26 17:35:58
8925 dnl -------------------
8926 dnl Command-line option to specify where Ada objects will install.
8927 AC_DEFUN([CF_WITH_ADA_OBJECTS],[
8928 AC_MSG_CHECKING(for ada-objects)
8929 CF_WITH_PATH(ada-objects,
8930    [  --with-ada-objects=DIR  Ada objects are in DIR],
8931    ADA_OBJECTS,
8932    PREFIX/lib/ada/adalib,
8933    [$]prefix/lib/ada/adalib)
8934 AC_SUBST(ADA_OBJECTS)
8935 AC_MSG_RESULT($ADA_OBJECTS)
8936 ])dnl
8937 dnl ---------------------------------------------------------------------------
8938 dnl CF_WITH_ADA_SHAREDLIB version: 5 updated: 2018/07/21 19:10:35
8939 dnl ---------------------
8940 dnl Command-line option to specify if an Ada95 shared-library should be built,
8941 dnl and optionally what its soname should be.
8942 AC_DEFUN([CF_WITH_ADA_SHAREDLIB],[
8943 AC_REQUIRE([CF_GNAT_PROJECTS])
8944 AC_MSG_CHECKING(if an Ada95 shared-library should be built)
8945 AC_ARG_WITH(ada-sharedlib,
8946         [  --with-ada-sharedlib=soname build shared-library (requires GNAT projects)],
8947         [with_ada_sharedlib=$withval],
8948         [with_ada_sharedlib=no])
8949 AC_MSG_RESULT($with_ada_sharedlib)
8950
8951 if test "x$with_ada_sharedlib" != xno
8952 then
8953         if test "x$cf_gnat_projects" != xyes
8954         then
8955                 AC_MSG_WARN(disabling shared-library since GNAT projects are not supported)
8956                 with_ada_sharedlib=no
8957         fi
8958 fi
8959
8960 ADA_SHAREDLIB='lib$(LIB_NAME).so.1'
8961 MAKE_ADA_SHAREDLIB="#"
8962
8963 if test "x$with_ada_sharedlib" != xno
8964 then
8965         MAKE_ADA_SHAREDLIB=
8966         if test "x$with_ada_sharedlib" != xyes
8967         then
8968                 ADA_SHAREDLIB="$with_ada_sharedlib"
8969         fi
8970 fi
8971
8972 AC_SUBST(ADA_SHAREDLIB)
8973 AC_SUBST(MAKE_ADA_SHAREDLIB)
8974 ])dnl
8975 dnl ---------------------------------------------------------------------------
8976 dnl CF_WITH_DBMALLOC version: 7 updated: 2010/06/21 17:26:47
8977 dnl ----------------
8978 dnl Configure-option for dbmalloc.  The optional parameter is used to override
8979 dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
8980 AC_DEFUN([CF_WITH_DBMALLOC],[
8981 CF_NO_LEAKS_OPTION(dbmalloc,
8982         [  --with-dbmalloc         test: use Conor Cahill's dbmalloc library],
8983         [USE_DBMALLOC])
8984
8985 if test "$with_dbmalloc" = yes ; then
8986         AC_CHECK_HEADER(dbmalloc.h,
8987                 [AC_CHECK_LIB(dbmalloc,[debug_malloc]ifelse([$1],,[],[,$1]))])
8988 fi
8989 ])dnl
8990 dnl ---------------------------------------------------------------------------
8991 dnl CF_WITH_DMALLOC version: 7 updated: 2010/06/21 17:26:47
8992 dnl ---------------
8993 dnl Configure-option for dmalloc.  The optional parameter is used to override
8994 dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
8995 AC_DEFUN([CF_WITH_DMALLOC],[
8996 CF_NO_LEAKS_OPTION(dmalloc,
8997         [  --with-dmalloc          test: use Gray Watson's dmalloc library],
8998         [USE_DMALLOC])
8999
9000 if test "$with_dmalloc" = yes ; then
9001         AC_CHECK_HEADER(dmalloc.h,
9002                 [AC_CHECK_LIB(dmalloc,[dmalloc_debug]ifelse([$1],,[],[,$1]))])
9003 fi
9004 ])dnl
9005 dnl ---------------------------------------------------------------------------
9006 dnl CF_WITH_EXPORT_SYMS version: 3 updated: 2014/12/20 19:16:08
9007 dnl -------------------
9008 dnl Use this with libtool to specify the list of symbols that may be exported.
9009 dnl The input file contains one symbol per line; comments work with "#".
9010 dnl
9011 dnl $1 = basename of the ".sym" file (default $PACKAGE)
9012 AC_DEFUN([CF_WITH_EXPORT_SYMS],
9013 [
9014 AC_MSG_CHECKING(if exported-symbols file should be used)
9015 AC_ARG_WITH(export-syms,
9016         [  --with-export-syms=XXX  limit exported symbols using libtool],
9017         [with_export_syms=$withval],
9018         [with_export_syms=no])
9019 if test "x$with_export_syms" = xyes
9020 then
9021         with_export_syms='${top_srcdir}/package/ifelse($1,,${PACKAGE},[$1]).sym'
9022         AC_SUBST(PACKAGE)
9023 fi
9024 AC_MSG_RESULT($with_export_syms)
9025 if test "x$with_export_syms" != xno
9026 then
9027         EXPORT_SYMS="-export-symbols $with_export_syms"
9028         AC_SUBST(EXPORT_SYMS)
9029 fi
9030 ])dnl
9031 dnl ---------------------------------------------------------------------------
9032 dnl CF_WITH_GPM version: 10 updated: 2017/04/29 18:32:18
9033 dnl -----------
9034 dnl
9035 dnl The option parameter (if neither yes/no) is assumed to be the name of
9036 dnl the gpm library, e.g., for dynamic loading.
9037 AC_DEFUN([CF_WITH_GPM],
9038 [
9039 AC_MSG_CHECKING(if you want to link with the GPM mouse library)
9040 AC_ARG_WITH(gpm,
9041         [  --with-gpm              use Alessandro Rubini's GPM library],
9042         [with_gpm=$withval],
9043         [with_gpm=maybe])
9044 AC_MSG_RESULT($with_gpm)
9045
9046 if test "$with_gpm" != no ; then
9047         AC_CHECK_HEADER(gpm.h,[
9048                 AC_DEFINE(HAVE_GPM_H,1,[Define to 1 if we have gpm.h header])
9049                 if test "$with_gpm" != yes && test "$with_gpm" != maybe ; then
9050                         CF_VERBOSE(assuming we really have GPM library)
9051                         AC_DEFINE(HAVE_LIBGPM,1,[Define to 1 if we have the gpm library])
9052                         with_gpm=yes
9053                 else
9054                         AC_CHECK_LIB(gpm,Gpm_Open,[with_gpm=yes],[
9055                                 if test "$with_gpm" = maybe; then
9056                                         AC_MSG_WARN(Cannot link with GPM library)
9057                                         with_gpm=no
9058                                 else
9059                                         AC_MSG_ERROR(Cannot link with GPM library)
9060                                 fi
9061                         ])
9062                 fi
9063         ],[
9064                 test "$with_gpm" != maybe && AC_MSG_WARN(Cannot find GPM header)
9065                 with_gpm=no
9066         ])
9067 fi
9068 ])
9069 dnl ---------------------------------------------------------------------------
9070 dnl CF_WITH_LIBTOOL version: 36 updated: 2021/01/01 13:31:04
9071 dnl ---------------
9072 dnl Provide a configure option to incorporate libtool.  Define several useful
9073 dnl symbols for the makefile rules.
9074 dnl
9075 dnl The reference to AC_PROG_LIBTOOL does not normally work, since it uses
9076 dnl macros from libtool.m4 which is in the aclocal directory of automake.
9077 dnl Following is a simple script which turns on the AC_PROG_LIBTOOL macro.
9078 dnl But that still does not work properly since the macro is expanded outside
9079 dnl the CF_WITH_LIBTOOL macro:
9080 dnl
9081 dnl     #!/bin/sh
9082 dnl     ACLOCAL=`aclocal --print-ac-dir`
9083 dnl     if test -z "$ACLOCAL" ; then
9084 dnl             echo cannot find aclocal directory
9085 dnl             exit 1
9086 dnl     elif test ! -f $ACLOCAL/libtool.m4 ; then
9087 dnl             echo cannot find libtool.m4 file
9088 dnl             exit 1
9089 dnl     fi
9090 dnl
9091 dnl     LOCAL=aclocal.m4
9092 dnl     ORIG=aclocal.m4.orig
9093 dnl
9094 dnl     trap "mv $ORIG $LOCAL" 0 1 2 3 15
9095 dnl     rm -f $ORIG
9096 dnl     mv $LOCAL $ORIG
9097 dnl
9098 dnl     # sed the LIBTOOL= assignment to omit the current directory?
9099 dnl     sed -e 's/^LIBTOOL=.*/LIBTOOL=${LIBTOOL:-libtool}/' $ACLOCAL/libtool.m4 >>$LOCAL
9100 dnl     cat $ORIG >>$LOCAL
9101 dnl
9102 dnl     autoconf-257 $*
9103 dnl
9104 AC_DEFUN([CF_WITH_LIBTOOL],
9105 [
9106 AC_REQUIRE([CF_DISABLE_LIBTOOL_VERSION])
9107 ifdef([AC_PROG_LIBTOOL],,[
9108 LIBTOOL=
9109 ])
9110 # common library maintenance symbols that are convenient for libtool scripts:
9111 LIB_CREATE='${AR} -cr'
9112 LIB_OBJECT='${OBJECTS}'
9113 LIB_SUFFIX=.a
9114 LIB_PREP="$RANLIB"
9115
9116 # symbols used to prop libtool up to enable it to determine what it should be
9117 # doing:
9118 LIB_CLEAN=
9119 LIB_COMPILE=
9120 LIB_LINK='${CC}'
9121 LIB_INSTALL=
9122 LIB_UNINSTALL=
9123
9124 AC_MSG_CHECKING(if you want to build libraries with libtool)
9125 AC_ARG_WITH(libtool,
9126         [  --with-libtool          generate libraries with libtool],
9127         [with_libtool=$withval],
9128         [with_libtool=no])
9129 AC_MSG_RESULT($with_libtool)
9130 if test "$with_libtool" != "no"; then
9131 ifdef([AC_PROG_LIBTOOL],[
9132         # missing_content_AC_PROG_LIBTOOL{{
9133         AC_PROG_LIBTOOL
9134         # missing_content_AC_PROG_LIBTOOL}}
9135 ],[
9136         if test "$with_libtool" != "yes" ; then
9137                 CF_PATH_SYNTAX(with_libtool)
9138                 LIBTOOL=$with_libtool
9139         else
9140                 AC_CHECK_TOOLS(LIBTOOL,[libtool glibtool],none)
9141                 CF_LIBTOOL_VERSION
9142                 if test -z "$cf_cv_libtool_version" && test "$LIBTOOL" = libtool
9143                 then
9144                         CF_FORGET_TOOL(LIBTOOL)
9145                         AC_CHECK_TOOLS(LIBTOOL,[glibtool],none)
9146                         CF_LIBTOOL_VERSION
9147                 fi
9148         fi
9149         if test -z "$LIBTOOL" ; then
9150                 AC_MSG_ERROR(Cannot find libtool)
9151         fi
9152 ])dnl
9153         LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${libdir} ${LIBTOOL_VERSION} `cut -f1 ${top_srcdir}/VERSION` ${LIBTOOL_OPTS} ${LT_UNDEF} $(LIBS) -o'
9154         LIB_OBJECT='${OBJECTS:.o=.lo}'
9155         LIB_SUFFIX=.la
9156         LIB_CLEAN='${LIBTOOL} --mode=clean'
9157         LIB_COMPILE='${LIBTOOL} --mode=compile'
9158         LIB_LINK='${LIBTOOL} --mode=link ${CC} ${LIBTOOL_OPTS}'
9159         LIB_INSTALL='${LIBTOOL} --mode=install'
9160         LIB_UNINSTALL='${LIBTOOL} --mode=uninstall'
9161         LIB_PREP=:
9162
9163         CF_CHECK_LIBTOOL_VERSION
9164
9165         # special hack to add -no-undefined (which libtool should do for itself)
9166         LT_UNDEF=
9167         case "$cf_cv_system_name" in
9168         (cygwin*|msys*|mingw32*|os2*|uwin*|aix[[4-7]])
9169                 LT_UNDEF=-no-undefined
9170                 ;;
9171         esac
9172         AC_SUBST([LT_UNDEF])
9173
9174         # special hack to add --tag option for C++ compiler
9175         case "$cf_cv_libtool_version" in
9176         (1.[[5-9]]*|[[2-9]].[[0-9.a-z]]*)
9177                 LIBTOOL_CXX="$LIBTOOL --tag=CXX"
9178                 LIBTOOL="$LIBTOOL --tag=CC"
9179                 ;;
9180         (*)
9181                 LIBTOOL_CXX="$LIBTOOL"
9182                 ;;
9183         esac
9184 else
9185         LIBTOOL=""
9186         LIBTOOL_CXX=""
9187 fi
9188
9189 test -z "$LIBTOOL" && ECHO_LT=
9190
9191 AC_SUBST(LIBTOOL)
9192 AC_SUBST(LIBTOOL_CXX)
9193 AC_SUBST(LIBTOOL_OPTS)
9194
9195 AC_SUBST(LIB_CREATE)
9196 AC_SUBST(LIB_OBJECT)
9197 AC_SUBST(LIB_SUFFIX)
9198 AC_SUBST(LIB_PREP)
9199
9200 AC_SUBST(LIB_CLEAN)
9201 AC_SUBST(LIB_COMPILE)
9202 AC_SUBST(LIB_LINK)
9203 AC_SUBST(LIB_INSTALL)
9204 AC_SUBST(LIB_UNINSTALL)
9205
9206 ])dnl
9207 dnl ---------------------------------------------------------------------------
9208 dnl CF_WITH_LIBTOOL_OPTS version: 4 updated: 2015/04/17 21:13:04
9209 dnl --------------------
9210 dnl Allow user to pass additional libtool options into the library creation
9211 dnl and link steps.  The main use for this is to do something like
9212 dnl     ./configure --with-libtool-opts=-static
9213 dnl to get the same behavior as automake-flavored
9214 dnl     ./configure --enable-static
9215 AC_DEFUN([CF_WITH_LIBTOOL_OPTS],[
9216 AC_MSG_CHECKING(for additional libtool options)
9217 AC_ARG_WITH(libtool-opts,
9218         [  --with-libtool-opts=XXX specify additional libtool options],
9219         [with_libtool_opts=$withval],
9220         [with_libtool_opts=no])
9221 AC_MSG_RESULT($with_libtool_opts)
9222
9223 case .$with_libtool_opts in
9224 (.yes|.no|.)
9225         ;;
9226 (*)
9227         LIBTOOL_OPTS="$LIBTOOL_OPTS $with_libtool_opts"
9228         ;;
9229 esac
9230
9231 AC_SUBST(LIBTOOL_OPTS)
9232 ])dnl
9233 dnl ---------------------------------------------------------------------------
9234 dnl CF_WITH_LIB_BASENAME version: 1 updated: 2020/03/07 20:05:14
9235 dnl --------------------
9236 dnl Allow for overriding the basename of a library, i.e., the part to which
9237 dnl prefixes/suffixes are attached.
9238 dnl
9239 dnl $1 = variable to set
9240 dnl $2 = option name
9241 dnl $3 = default basename for library, if omitted use $2
9242 AC_DEFUN([CF_WITH_LIB_BASENAME],
9243 [
9244 AC_MSG_CHECKING(for desired basename for $2 library)
9245 AC_ARG_WITH($2-libname,
9246         [  --with-$2-libname=XXX override ifelse($3,,$2,$3) basename of library],
9247         [with_lib_basename=$withval],
9248         [with_lib_basename=ifelse($3,,$2,$3)])
9249 $1="$with_lib_basename"
9250
9251 case "x[$]$1" in
9252 (x|xno|xnone|xyes)
9253         $1=ifelse($3,,$2,$3)
9254         ;;
9255 (*)
9256         ;;
9257 esac
9258
9259 AC_MSG_RESULT([$]$1)
9260 AC_SUBST($1)
9261 ])dnl
9262 dnl ---------------------------------------------------------------------------
9263 dnl CF_WITH_LIB_PREFIX version: 2 updated: 2021/01/01 16:53:59
9264 dnl ------------------
9265 dnl Allow the library-prefix to be overridden.  OS/2 EMX originally had no
9266 dnl "lib" prefix, e.g., because it used the dll naming convention.
9267 dnl
9268 dnl $1 = variable to set
9269 AC_DEFUN([CF_WITH_LIB_PREFIX],
9270 [
9271 AC_MSG_CHECKING(if you want to have a library-prefix)
9272 AC_ARG_WITH(lib-prefix,
9273         [  --with-lib-prefix       override library-prefix],
9274         [with_lib_prefix=$withval],
9275         [with_lib_prefix=auto])
9276 AC_MSG_RESULT($with_lib_prefix)
9277
9278 if test "$with_lib_prefix" = auto
9279 then
9280         CF_LIB_PREFIX($1)
9281 elif test "$with_lib_prefix" = no
9282 then
9283         LIB_PREFIX=
9284 else
9285         LIB_PREFIX=$with_lib_prefix
9286 fi
9287 ])dnl
9288 dnl ---------------------------------------------------------------------------
9289 dnl CF_WITH_PATH version: 12 updated: 2021/09/04 06:35:04
9290 dnl ------------
9291 dnl Wrapper for AC_ARG_WITH to ensure that user supplies a pathname, not just
9292 dnl defaulting to yes/no.
9293 dnl
9294 dnl $1 = option name
9295 dnl $2 = help-text
9296 dnl $3 = environment variable to set
9297 dnl $4 = default value, shown in the help-message, must be a constant
9298 dnl $5 = default value, if it is an expression & cannot be in the help-message
9299 dnl
9300 AC_DEFUN([CF_WITH_PATH],
9301 [AC_ARG_WITH($1,[$2 ](default: ifelse([$4],,empty,[$4])),,
9302 ifelse([$4],,[withval="${$3}"],[withval="${$3:-ifelse([$5],,[$4],[$5])}"]))dnl
9303 if ifelse([$5],,true,[test -n "$5"]) ; then
9304 CF_PATH_SYNTAX(withval)
9305 fi
9306 eval $3="$withval"
9307 AC_SUBST($3)dnl
9308 ])dnl
9309 dnl ---------------------------------------------------------------------------
9310 dnl CF_WITH_PATHLIST version: 13 updated: 2021/09/04 06:35:04
9311 dnl ----------------
9312 dnl Process an option specifying a list of colon-separated paths.
9313 dnl
9314 dnl $1 = option name
9315 dnl $2 = help-text
9316 dnl $3 = environment variable to set
9317 dnl $4 = default value, shown in the help-message, must be a constant
9318 dnl $5 = default value, if it is an expression & cannot be in the help-message
9319 dnl $6 = flag to tell if we want to define or substitute
9320 dnl
9321 AC_DEFUN([CF_WITH_PATHLIST],[
9322 AC_REQUIRE([CF_PATHSEP])
9323 AC_ARG_WITH($1,[$2 ](default: ifelse($4,,empty,$4)),,
9324 ifelse($4,,[withval=${$3}],[withval=${$3:-ifelse($5,,$4,$5)}]))dnl
9325
9326 IFS="${IFS:-    }"; ac_save_ifs="$IFS"; IFS="${PATH_SEPARATOR}"
9327 cf_dst_path=
9328 for cf_src_path in $withval
9329 do
9330   CF_PATH_SYNTAX(cf_src_path)
9331   test -n "$cf_dst_path" && cf_dst_path="${cf_dst_path}$PATH_SEPARATOR"
9332   cf_dst_path="${cf_dst_path}${cf_src_path}"
9333 done
9334 IFS="$ac_save_ifs"
9335
9336 ifelse($6,define,[
9337 # Strip single quotes from the value, e.g., when it was supplied as a literal
9338 # for $4 or $5.
9339 case "$cf_dst_path" in
9340 (\'*)
9341   cf_dst_path="`echo "$cf_dst_path" |sed -e s/\'// -e s/\'\$//`"
9342   ;;
9343 esac
9344 cf_dst_path=`echo "$cf_dst_path" | sed -e 's/\\\\/\\\\\\\\/g'`
9345 ])
9346
9347 # This may use the prefix/exec_prefix symbols which will only yield "NONE"
9348 # so we have to check/work around.  We do prefer the result of "eval"...
9349 eval cf_dst_eval="$cf_dst_path"
9350 case "x$cf_dst_eval" in
9351 (xNONE*)
9352         $3=$cf_dst_path
9353         ;;
9354 (*)
9355         $3="$cf_dst_eval"
9356         ;;
9357 esac
9358 AC_SUBST($3)dnl
9359
9360 ])dnl
9361 dnl ---------------------------------------------------------------------------
9362 dnl CF_WITH_PATH_PROG version: 1 updated: 2019/06/30 19:44:43
9363 dnl -----------------
9364 dnl Check for a given program, like CF_PATH_PROG, but allow override using a
9365 dnl "--with-xxx" option.
9366 dnl
9367 dnl Parameters:
9368 dnl             $1 = environment variable to set/update
9369 dnl             $2 = program name
9370 dnl             $3 = help-text
9371 dnl             $4 = $PATH
9372 AC_DEFUN([CF_WITH_PATH_PROG],[
9373 AC_ARG_WITH($2-path,
9374         [  --with-$2-path=XXX     specify path of $2 ifelse($3,,,$3)],
9375         [AC_MSG_CHECKING(for $2 program ifelse($3,,,$3))
9376                 $1=$withval
9377                 AC_MSG_RESULT([$]$1)
9378                 CF_PATH_SYNTAX($1)
9379         ],
9380         [CF_PATH_PROG($1,$2,,ifelse($4,,,$4))
9381                 if test -z "[$]$1"
9382                 then
9383                         AC_MSG_WARN(no $2 program found ifelse($3,,,$3))
9384                 fi
9385         ])
9386 ])
9387 dnl ---------------------------------------------------------------------------
9388 dnl CF_WITH_PCRE2 version: 6 updated: 2021/08/11 20:35:34
9389 dnl -------------
9390 dnl Add PCRE2 (Perl-compatible regular expressions v2) to the build if it is
9391 dnl available and the user requests it.  Assume the application will otherwise
9392 dnl use the POSIX interface.
9393 dnl
9394 dnl TODO allow $withval to specify package location
9395 AC_DEFUN([CF_WITH_PCRE2],
9396 [
9397 AC_REQUIRE([CF_PKG_CONFIG])
9398
9399 AC_MSG_CHECKING(if you want to use PCRE2 for regular-expressions)
9400 AC_ARG_WITH(pcre2,
9401         [  --with-pcre2            use PCRE2 for regular-expressions])
9402 test -z "$with_pcre2" && with_pcre2=no
9403 AC_MSG_RESULT($with_pcre2)
9404
9405 if test "x$with_pcre2" != xno ; then
9406         cf_with_pcre2_ok=no
9407         for cf_with_pcre2 in libpcre2 libpcre2-posix libpcre
9408         do
9409                 CF_TRY_PKG_CONFIG($cf_with_pcre2,[cf_with_pcre2_ok=yes; break])
9410         done
9411         cf_with_pcre2_ok=yes || AC_MSG_ERROR(Cannot find PCRE2 library)
9412
9413         AC_DEFINE(HAVE_LIB_PCRE2,1,[Define to 1 if we can/should compile with the PCRE2 library])
9414
9415         # if pkgconfig gave no results, look for the libraries directly
9416         case "$LIBS" in
9417         (*pcre2-posix*|*pcreposix*)
9418                 ;;
9419         (*)
9420                 AC_CHECK_LIB(pcre2-posix,regcomp,[
9421                         CF_ADD_LIB(pcre2-posix)],
9422                         [AC_CHECK_LIB(pcreposix,regcomp,[
9423                          CF_ADD_LIB(pcreposix)
9424                         ],[AC_MSG_ERROR(Cannot find PCRE2 POSIX library)])])
9425                 ;;
9426         esac
9427
9428         # either way, check for the library header files
9429         AC_CHECK_HEADERS(pcre2posix.h pcreposix.h)
9430         AC_CHECK_FUNCS(PCRE2regcomp)
9431 fi
9432 ])dnl
9433 dnl ---------------------------------------------------------------------------
9434 dnl CF_WITH_PKG_CONFIG_LIBDIR version: 20 updated: 2022/01/29 17:03:42
9435 dnl -------------------------
9436 dnl Allow the choice of the pkg-config library directory to be overridden.
9437 dnl
9438 dnl pkg-config uses a search-list built from these colon-separated lists of
9439 dnl directories:
9440 dnl a) $PKG_CONFIG_PATH (tested first, added if set)
9441 dnl b) $PKG_CONFIG_LIBDIR (tested second, added if set)
9442 dnl c) builtin-list (added if $PKG_CONFIG_LIBDIR is not set)
9443 dnl
9444 dnl pkgconf (used with some systems such as FreeBSD in place of pkg-config)
9445 dnl optionally ignores $PKG_CONFIG_LIBDIR.
9446 AC_DEFUN([CF_WITH_PKG_CONFIG_LIBDIR],[
9447
9448 case "$PKG_CONFIG" in
9449 (no|none|yes)
9450         AC_MSG_CHECKING(for pkg-config library directory)
9451         ;;
9452 (*)
9453         AC_MSG_CHECKING(for $PKG_CONFIG library directory)
9454         ;;
9455 esac
9456
9457 # if $PKG_CONFIG_LIBDIR is set, try to use that
9458 cf_search_path=`echo "$PKG_CONFIG_LIBDIR" | sed -e 's/:/ /g' -e 's,^[[  ]]*,,'`
9459
9460 # if the option is used, let that override.  otherwise default to "libdir"
9461 AC_ARG_WITH(pkg-config-libdir,
9462         [  --with-pkg-config-libdir=XXX use given directory for installing pc-files],
9463         [cf_search_path=$withval],
9464         [test "x$PKG_CONFIG" != xnone && test -z "$cf_search_path" && cf_search_path=libdir])
9465
9466 case "x$cf_search_path" in
9467 (xlibdir)
9468         PKG_CONFIG_LIBDIR='${libdir}/pkgconfig'
9469         AC_MSG_RESULT($PKG_CONFIG_LIBDIR)
9470         cf_search_path=
9471         ;;
9472 (x)
9473         ;;
9474 (x/*\ *)
9475         PKG_CONFIG_LIBDIR=
9476         ;;
9477 (x/*)
9478         PKG_CONFIG_LIBDIR="$cf_search_path"
9479         AC_MSG_RESULT($PKG_CONFIG_LIBDIR)
9480         cf_search_path=
9481         ;;
9482 (xyes|xauto)
9483         AC_MSG_RESULT(auto)
9484         cf_search_path=
9485         # Look for the library directory using the same prefix as the executable
9486         AC_MSG_CHECKING(for search-list)
9487         if test "x$PKG_CONFIG" != xnone
9488         then
9489                 # works for pkg-config since version 0.24 (2009)
9490                 # works for pkgconf since version 0.8.3 (2012)
9491                 for cf_pkg_program in \
9492                         `echo "$PKG_CONFIG" | sed -e 's,^.*/,,'` \
9493                         pkg-config \
9494                         pkgconf
9495                 do
9496                         cf_search_path=`"$PKG_CONFIG" --variable=pc_path "$cf_pkg_program" 2>/dev/null | tr : ' '`
9497                         test -n "$cf_search_path" && break
9498                 done
9499
9500                 # works for pkg-config since import in 2005 of original 2001 HP code.
9501                 test -z "$cf_search_path" && \
9502                 cf_search_path=`
9503                 "$PKG_CONFIG" --debug --exists no-such-package 2>&1 | $AWK "\
9504 /^Scanning directory (#[1-9][0-9]* )?'.*'$/{ \
9505         sub(\"^[[^']]*'\",\"\"); \
9506         sub(\"'.*\",\"\"); \
9507         printf \" %s\", \\[$]0; } \
9508 { next; } \
9509 "`
9510         fi
9511
9512         AC_MSG_RESULT($cf_search_path)
9513         ;;
9514 (*)
9515         AC_MSG_ERROR(Unexpected option value: $cf_search_path)
9516         ;;
9517 esac
9518
9519 if test -n "$cf_search_path"
9520 then
9521         AC_MSG_CHECKING(for first directory)
9522         cf_pkg_config_path=none
9523         for cf_config in $cf_search_path
9524         do
9525                 if test -d "$cf_config"
9526                 then
9527                         cf_pkg_config_path=$cf_config
9528                         break
9529                 fi
9530         done
9531         AC_MSG_RESULT($cf_pkg_config_path)
9532
9533         if test "x$cf_pkg_config_path" != xnone ; then
9534                 # limit this to the first directory found
9535                 PKG_CONFIG_LIBDIR="$cf_pkg_config_path"
9536         fi
9537
9538         if test -z "$PKG_CONFIG_LIBDIR" && test -n "$cf_search_path"
9539         then
9540                 AC_MSG_CHECKING(for workaround)
9541                 if test "$prefix" = "NONE" ; then
9542                         cf_prefix="$ac_default_prefix"
9543                 else
9544                         cf_prefix="$prefix"
9545                 fi
9546                 eval cf_libdir=$libdir
9547                 cf_libdir=`echo "$cf_libdir" | sed -e "s,^NONE,$cf_prefix,"`
9548                 cf_backup=
9549                 for cf_config in $cf_search_path
9550                 do
9551                         case $cf_config in
9552                         $cf_libdir/pkgconfig)
9553                                 PKG_CONFIG_LIBDIR=$cf_libdir/pkgconfig
9554                                 break
9555                                 ;;
9556                         *)
9557                                 test -z "$cf_backup" && cf_backup=$cf_config
9558                                 ;;
9559                         esac
9560                 done
9561                 test -z "$PKG_CONFIG_LIBDIR" && PKG_CONFIG_LIBDIR=$cf_backup
9562                 AC_MSG_RESULT($PKG_CONFIG_LIBDIR)
9563         fi
9564 fi
9565
9566 AC_SUBST(PKG_CONFIG_LIBDIR)
9567 ])dnl
9568 dnl ---------------------------------------------------------------------------
9569 dnl CF_WITH_PTHREAD version: 7 updated: 2015/04/18 08:56:57
9570 dnl ---------------
9571 dnl Check for POSIX thread library.
9572 AC_DEFUN([CF_WITH_PTHREAD],
9573 [
9574 AC_MSG_CHECKING(if you want to link with the pthread library)
9575 AC_ARG_WITH(pthread,
9576         [  --with-pthread          use POSIX thread library],
9577         [with_pthread=$withval],
9578         [with_pthread=no])
9579 AC_MSG_RESULT($with_pthread)
9580
9581 if test "$with_pthread" != no ; then
9582         AC_CHECK_HEADER(pthread.h,[
9583         AC_DEFINE(HAVE_PTHREADS_H,1,[Define to 1 if we have pthreads.h header])
9584
9585         for cf_lib_pthread in pthread c_r
9586         do
9587             AC_MSG_CHECKING(if we can link with the $cf_lib_pthread library)
9588             cf_save_LIBS="$LIBS"
9589             CF_ADD_LIB($cf_lib_pthread)
9590             AC_TRY_LINK([
9591 #include <pthread.h>
9592 ],[
9593                 int rc = pthread_create(0,0,0,0);
9594                 int r2 = pthread_mutexattr_settype(0, 0);
9595 ],[with_pthread=yes],[with_pthread=no])
9596             LIBS="$cf_save_LIBS"
9597             AC_MSG_RESULT($with_pthread)
9598             test "$with_pthread" = yes && break
9599         done
9600
9601         if test "$with_pthread" = yes ; then
9602             CF_ADD_LIB($cf_lib_pthread)
9603             AC_DEFINE(HAVE_LIBPTHREADS,1,[Define to 1 if we have pthreads library])
9604         else
9605             AC_MSG_ERROR(Cannot link with pthread library)
9606         fi
9607         ])
9608 fi
9609 ])
9610 dnl ---------------------------------------------------------------------------
9611 dnl CF_WITH_REL_VERSION version: 1 updated: 2003/09/20 18:12:49
9612 dnl -------------------
9613 dnl Allow library's release-version to be overridden.  Generally this happens when a
9614 dnl packager has incremented the release-version past that used in the original package,
9615 dnl and wishes to keep doing this.
9616 dnl
9617 dnl $1 is the package name, if any, to derive corresponding {package}_MAJOR
9618 dnl and {package}_MINOR symbols
9619 dnl symbol.
9620 AC_DEFUN([CF_WITH_REL_VERSION],[
9621 test -z "$cf_cv_rel_version" && cf_cv_rel_version=0.0
9622 AC_ARG_WITH(rel-version,
9623 [  --with-rel-version=XXX  override derived release version],
9624 [AC_MSG_WARN(overriding release version $cf_cv_rel_version to $withval)
9625  cf_cv_rel_version=$withval])
9626 ifelse($1,,[
9627  CF_NUMBER_SYNTAX($cf_cv_rel_version,Release version)
9628 ],[
9629  $1_MAJOR=`echo "$cf_cv_rel_version" | sed -e 's/\..*//'`
9630  $1_MINOR=`echo "$cf_cv_rel_version" | sed -e 's/^[[^.]]*//' -e 's/^\.//' -e 's/\..*//'`
9631  CF_NUMBER_SYNTAX([$]$1_MAJOR,Release major-version)
9632  CF_NUMBER_SYNTAX([$]$1_MINOR,Release minor-version)
9633 ])
9634 ])dnl
9635 dnl ---------------------------------------------------------------------------
9636 dnl CF_WITH_SYSMOUSE version: 3 updated: 2012/10/06 17:56:13
9637 dnl ----------------
9638 dnl If we can compile with sysmouse, make it available unless it is not wanted.
9639 AC_DEFUN([CF_WITH_SYSMOUSE],[
9640 # not everyone has "test -c"
9641 if test -c /dev/sysmouse 2>/dev/null ; then
9642 AC_MSG_CHECKING(if you want to use sysmouse)
9643 AC_ARG_WITH(sysmouse,
9644         [  --with-sysmouse         use sysmouse (FreeBSD console)],
9645         [cf_with_sysmouse=$withval],
9646         [cf_with_sysmouse=maybe])
9647         if test "$cf_with_sysmouse" != no ; then
9648         AC_TRY_COMPILE([
9649 #include <osreldate.h>
9650 #if (__FreeBSD_version >= 400017)
9651 #include <sys/consio.h>
9652 #include <sys/fbio.h>
9653 #else
9654 #include <machine/console.h>
9655 #endif
9656 ],[
9657         struct mouse_info the_mouse;
9658         ioctl(0, CONS_MOUSECTL, &the_mouse);
9659 ],[cf_with_sysmouse=yes],[cf_with_sysmouse=no])
9660         fi
9661 AC_MSG_RESULT($cf_with_sysmouse)
9662 test "$cf_with_sysmouse" = yes && AC_DEFINE(USE_SYSMOUSE,1,[Define to 1 if we can/should use the sysmouse interface])
9663 fi
9664 ])dnl
9665 dnl ---------------------------------------------------------------------------
9666 dnl CF_WITH_SYSTYPE version: 1 updated: 2013/01/26 16:26:12
9667 dnl ---------------
9668 dnl For testing, override the derived host system-type which is used to decide
9669 dnl things such as the linker commands used to build shared libraries.  This is
9670 dnl normally chosen automatically based on the type of system which you are
9671 dnl building on.  We use it for testing the configure script.
9672 dnl
9673 dnl This is different from the --host option: it is used only for testing parts
9674 dnl of the configure script which would not be reachable with --host since that
9675 dnl relies on the build environment being real, rather than mocked up.
9676 AC_DEFUN([CF_WITH_SYSTYPE],[
9677 CF_CHECK_CACHE([AC_CANONICAL_SYSTEM])
9678 AC_ARG_WITH(system-type,
9679         [  --with-system-type=XXX  test: override derived host system-type],
9680 [AC_MSG_WARN(overriding system type to $withval)
9681         cf_cv_system_name=$withval
9682         host_os=$withval
9683 ])
9684 ])dnl
9685 dnl ---------------------------------------------------------------------------
9686 dnl CF_WITH_VALGRIND version: 1 updated: 2006/12/14 18:00:21
9687 dnl ----------------
9688 AC_DEFUN([CF_WITH_VALGRIND],[
9689 CF_NO_LEAKS_OPTION(valgrind,
9690         [  --with-valgrind         test: use valgrind],
9691         [USE_VALGRIND])
9692 ])dnl
9693 dnl ---------------------------------------------------------------------------
9694 dnl CF_WITH_VERSIONED_SYMS version: 10 updated: 2021/01/04 18:48:01
9695 dnl ----------------------
9696 dnl Use this when building shared library with ELF, to markup symbols with the
9697 dnl version identifier from the given input file.  Generally that identifier is
9698 dnl the same as the SONAME at which the symbol was first introduced.
9699 dnl
9700 dnl $1 = basename of the ".map" file (default $PACKAGE)
9701 AC_DEFUN([CF_WITH_VERSIONED_SYMS],
9702 [AC_REQUIRE([AC_PROG_FGREP])dnl
9703 AC_REQUIRE([AC_PROG_EGREP])dnl
9704
9705 AC_MSG_CHECKING(if versioned-symbols file should be used)
9706 AC_ARG_WITH(versioned-syms,
9707         [  --with-versioned-syms=X markup versioned symbols using ld],
9708         [with_versioned_syms=$withval],
9709         [with_versioned_syms=no])
9710 case "x$with_versioned_syms" in
9711 (xyes)
9712         with_versioned_syms='${top_srcdir}/package/ifelse($1,,${PACKAGE},[$1]).map'
9713         AC_SUBST(PACKAGE)
9714         ;;
9715 (xno)
9716         ;;
9717 (x/*)
9718         test -f "$with_versioned_syms" || AC_MSG_ERROR(expected a filename: $with_versioned_syms)
9719         ;;
9720 (*)
9721         test -f "$with_versioned_syms" || AC_MSG_ERROR(expected a filename: $with_versioned_syms)
9722         with_versioned_syms=`pwd`/"$with_versioned_syms"
9723         ;;
9724 esac
9725 AC_MSG_RESULT($with_versioned_syms)
9726
9727 RESULTING_SYMS=
9728 VERSIONED_SYMS=
9729 WILDCARD_SYMS=
9730
9731 if test "x$with_versioned_syms" != xno
9732 then
9733         RESULTING_SYMS=$with_versioned_syms
9734         case "x$MK_SHARED_LIB" in
9735         (*-Wl,*)
9736                 VERSIONED_SYMS="-Wl,--version-script,\${RESULTING_SYMS}"
9737                 MK_SHARED_LIB=`echo "$MK_SHARED_LIB" | sed -e "s%-Wl,%\\[$]{VERSIONED_SYMS} -Wl,%"`
9738                 CF_VERBOSE(MK_SHARED_LIB:  $MK_SHARED_LIB)
9739                 ;;
9740         (*-dy\ *)
9741                 VERSIONED_SYMS="-Wl,-M,\${RESULTING_SYMS}"
9742                 MK_SHARED_LIB=`echo "$MK_SHARED_LIB" | sed -e "s%-dy%\\[$]{VERSIONED_SYMS} -dy%"`
9743                 CF_VERBOSE(MK_SHARED_LIB:  $MK_SHARED_LIB)
9744                 ;;
9745         (*)
9746                 AC_MSG_WARN(this system does not support versioned-symbols)
9747                 ;;
9748         esac
9749
9750         # Linux ld can selectively override scope, e.g., of symbols beginning with
9751         # "_" by first declaring some as global, and then using a wildcard to
9752         # declare the others as local.  Some other loaders cannot do this.  Check
9753         # by constructing a (very) simple shared library and inspecting its
9754         # symbols.
9755         if test "x$VERSIONED_SYMS" != "x"
9756         then
9757                 AC_MSG_CHECKING(if wildcards can be used to selectively omit symbols)
9758                 WILDCARD_SYMS=no
9759
9760                 # make sources
9761                 rm -f conftest.*
9762
9763                 cat >conftest.ver <<EOF
9764 module_1.0 {
9765 global:
9766         globalf1;
9767 local:
9768         localf1;
9769 };
9770 module_2.0 {
9771 global:
9772         globalf2;
9773 local:
9774         localf2;
9775         _*;
9776 } module_1.0;
9777 submodule_1.0 {
9778 global:
9779         subglobalf1;
9780         _ismissing;
9781 local:
9782         sublocalf1;
9783 };
9784 submodule_2.0 {
9785 global:
9786         subglobalf2;
9787 local:
9788         sublocalf2;
9789         _*;
9790 } submodule_1.0;
9791 EOF
9792                 cat >conftest.$ac_ext <<EOF
9793 #line __oline__ "configure"
9794 int     _ismissing(void) { return 1; }
9795 int     _localf1(void) { return 1; }
9796 int     _localf2(void) { return 2; }
9797 int     globalf1(void) { return 1; }
9798 int     globalf2(void) { return 2; }
9799 int     _sublocalf1(void) { return 1; }
9800 int     _sublocalf2(void) { return 2; }
9801 int     subglobalf1(void) { return 1; }
9802 int     subglobalf2(void) { return 2; }
9803 EOF
9804                 cat >conftest.mk <<EOF
9805 CC=${CC}
9806 CFLAGS=${CFLAGS}
9807 CPPFLAGS=${CPPFLAGS}
9808 LDFLAGS=${LDFLAGS}
9809 LIBS=${LIBS}
9810 VERSIONED_SYMS=${VERSIONED_SYMS}
9811 RESULTING_SYMS=conftest.ver
9812 MK_SHARED_LIB=${MK_SHARED_LIB}
9813 conftest.so: conftest.$ac_cv_objext
9814                 \$(MK_SHARED_LIB) conftest.$ac_cv_objext
9815 EOF
9816
9817                 # compile source, make library
9818                 if make -f conftest.mk 2>&AC_FD_CC >/dev/null
9819                 then
9820                         # test for missing symbol in either Data or Text section
9821                         cf_missing="`nm -P conftest.so 2>&AC_FD_CC |${FGREP-fgrep} _ismissing | ${EGREP-egrep} '[[      ]][[DT]][[      ]]'`"
9822                         test -n "$cf_missing" && WILDCARD_SYMS=yes
9823                 fi
9824                 AC_MSG_RESULT($WILDCARD_SYMS)
9825                 rm -f conftest.*
9826         fi
9827 fi
9828 AC_SUBST(RESULTING_SYMS)
9829 AC_SUBST(VERSIONED_SYMS)
9830 AC_SUBST(WILDCARD_SYMS)
9831 ])dnl
9832 dnl ---------------------------------------------------------------------------
9833 dnl CF_WITH_X11_RGB version: 2 updated: 2019/12/31 08:53:54
9834 dnl ---------------
9835 dnl Handle configure option "--with-x11-rgb", setting these shell
9836 dnl variables:
9837 dnl
9838 dnl $RGB_PATH is the option value, used for finding the X11 rgb file.
9839 dnl $no_x11_rgb is a "#" (comment) if "--without-x11-rgb" is given.
9840 dnl
9841 dnl Most Linux's use this:
9842 dnl     /usr/share/X11/rgb.txt
9843 dnl Debian uses this:
9844 dnl     /etc/X11/rgb.txt
9845 dnl DragonFlyBSD ports uses this:
9846 dnl     /usr/pkg/lib/X11/rgb.txt
9847 dnl FreeBSD ports use these:
9848 dnl     /usr/local/lib/X11/rgb.txt
9849 dnl     /usr/local/share/X11/rgb.txt
9850 dnl Mandriva has these:
9851 dnl     /usr/lib/X11/rgb.txt
9852 dnl     /usr/lib64/X11/rgb.txt
9853 dnl NetBSD has these
9854 dnl     /usr/X11R7/lib/X11/rgb.txt
9855 dnl OpenSolaris uses
9856 dnl     32-bit:
9857 dnl     /usr/X11/etc/X11/rgb.txt
9858 dnl     /usr/X11/share/X11/rgb.txt
9859 dnl     /usr/X11/lib/X11/rgb.txt
9860 dnl OSX uses
9861 dnl             /opt/local/share/X11/rgb.txt (MacPorts)
9862 dnl             /opt/X11/share/X11/rgb.txt (non-ports)
9863 dnl     64-bit:
9864 dnl     /usr/X11/etc/X11/rgb.txt
9865 dnl     /usr/X11/share/X11/rgb.txt (perhaps)
9866 dnl     /usr/X11/lib/amd64/X11/rgb.txt
9867 dnl Solaris10 uses (in this order):
9868 dnl     /usr/openwin/lib/X11/rgb.txt
9869 dnl     /usr/X11/lib/X11/rgb.txt
9870 AC_DEFUN([CF_WITH_X11_RGB],[
9871 AC_MSG_CHECKING(for X11 rgb file)
9872 AC_ARG_WITH(x11-rgb,
9873         [  --with-x11-rgb=FILE   file containing X11 rgb information (EPREFIX/lib/X11/rgb.txt)],
9874         [RGB_PATH=$withval],
9875         [RGB_PATH=auto])
9876
9877 if test "x[$]RGB_PATH" = xauto
9878 then
9879         RGB_PATH='${exec_prefix}/lib/X11/rgb.txt'
9880         for cf_path in \
9881                 /opt/local/share/X11/rgb.txt \
9882                 /opt/X11/share/X11/rgb.txt \
9883                 /usr/share/X11/rgb.txt \
9884                 /usr/X11/share/X11/rgb.txt \
9885                 /usr/X11/lib/X11/rgb.txt \
9886                 /usr/lib/X11/rgb.txt \
9887                 /etc/X11/rgb.txt \
9888                 /usr/pkg/lib/X11/rgb.txt \
9889                 /usr/X11R7/lib/X11/rgb.txt \
9890                 /usr/X11R6/lib/X11/rgb.txt \
9891                 /usr/X11R5/lib/X11/rgb.txt \
9892                 /usr/X11R4/lib/X11/rgb.txt \
9893                 /usr/local/lib/X11/rgb.txt \
9894                 /usr/local/share/X11/rgb.txt \
9895                 /usr/lib64/X11/rgb.txt
9896         do
9897                 if test -f "$cf_path" ; then
9898                         RGB_PATH="$cf_path"
9899                         break
9900                 fi
9901         done
9902 else
9903         cf_path=$RGB_PATH
9904         CF_PATH_SYNTAX(cf_path)
9905 fi
9906
9907 AC_MSG_RESULT($RGB_PATH)
9908 AC_SUBST(RGB_PATH)
9909 AC_DEFINE_UNQUOTED(RGB_PATH,"$cf_path",[Define to the full pathname of rgb.txt])
9910
9911 no_x11_rgb=
9912 if test "$RGB_PATH" = no
9913 then
9914         no_x11_rgb="#"
9915 fi
9916 AC_SUBST(no_x11_rgb)
9917 ])dnl
9918 dnl ---------------------------------------------------------------------------
9919 dnl CF_XOPEN_SOURCE version: 63 updated: 2022/12/29 10:10:26
9920 dnl ---------------
9921 dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
9922 dnl or adapt to the vendor's definitions to get equivalent functionality,
9923 dnl without losing the common non-POSIX features.
9924 dnl
9925 dnl Parameters:
9926 dnl     $1 is the nominal value for _XOPEN_SOURCE
9927 dnl     $2 is the nominal value for _POSIX_C_SOURCE
9928 AC_DEFUN([CF_XOPEN_SOURCE],[
9929 AC_REQUIRE([AC_CANONICAL_HOST])
9930 AC_REQUIRE([CF_POSIX_VISIBLE])
9931
9932 if test "$cf_cv_posix_visible" = no; then
9933
9934 cf_XOPEN_SOURCE=ifelse([$1],,500,[$1])
9935 cf_POSIX_C_SOURCE=ifelse([$2],,199506L,[$2])
9936 cf_xopen_source=
9937
9938 case "$host_os" in
9939 (aix[[4-7]]*)
9940         cf_xopen_source="-D_ALL_SOURCE"
9941         ;;
9942 (msys)
9943         cf_XOPEN_SOURCE=600
9944         ;;
9945 (darwin[[0-8]].*)
9946         cf_xopen_source="-D_APPLE_C_SOURCE"
9947         ;;
9948 (darwin*)
9949         cf_xopen_source="-D_DARWIN_C_SOURCE"
9950         cf_XOPEN_SOURCE=
9951         ;;
9952 (freebsd*|dragonfly*|midnightbsd*)
9953         # 5.x headers associate
9954         #       _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L
9955         #       _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L
9956         cf_POSIX_C_SOURCE=200112L
9957         cf_XOPEN_SOURCE=600
9958         cf_xopen_source="-D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
9959         ;;
9960 (hpux11*)
9961         cf_xopen_source="-D_HPUX_SOURCE -D_XOPEN_SOURCE=500"
9962         ;;
9963 (hpux*)
9964         cf_xopen_source="-D_HPUX_SOURCE"
9965         ;;
9966 (irix[[56]].*)
9967         cf_xopen_source="-D_SGI_SOURCE"
9968         cf_XOPEN_SOURCE=
9969         ;;
9970 (linux*gnu|linux*gnuabi64|linux*gnuabin32|linux*gnueabi|linux*gnueabihf|linux*gnux32|uclinux*|gnu*|mint*|k*bsd*-gnu|cygwin)
9971         CF_GNU_SOURCE($cf_XOPEN_SOURCE)
9972         ;;
9973 (minix*)
9974         cf_xopen_source="-D_NETBSD_SOURCE" # POSIX.1-2001 features are ifdef'd with this...
9975         ;;
9976 (mirbsd*)
9977         # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <sys/select.h> and other headers which use u_int / u_short types
9978         cf_XOPEN_SOURCE=
9979         CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
9980         ;;
9981 (netbsd*)
9982         cf_xopen_source="-D_NETBSD_SOURCE" # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
9983         ;;
9984 (openbsd[[6-9]]*)
9985         # OpenBSD 6.x has broken locale support, both compile-time and runtime.
9986         # see https://www.mail-archive.com/bugs@openbsd.org/msg13200.html
9987         # Abusing the conformance level is a workaround.
9988         AC_MSG_WARN(this system does not provide usable locale support)
9989         cf_xopen_source="-D_BSD_SOURCE"
9990         cf_XOPEN_SOURCE=700
9991         ;;
9992 (openbsd[[4-5]]*)
9993         # setting _XOPEN_SOURCE lower than 500 breaks g++ compile with wchar.h, needed for ncursesw
9994         cf_xopen_source="-D_BSD_SOURCE"
9995         cf_XOPEN_SOURCE=600
9996         ;;
9997 (openbsd*)
9998         # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
9999         ;;
10000 (osf[[45]]*)
10001         cf_xopen_source="-D_OSF_SOURCE"
10002         ;;
10003 (nto-qnx*)
10004         cf_xopen_source="-D_QNX_SOURCE"
10005         ;;
10006 (sco*)
10007         # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
10008         ;;
10009 (solaris2.*)
10010         cf_xopen_source="-D__EXTENSIONS__"
10011         cf_cv_xopen_source=broken
10012         ;;
10013 (sysv4.2uw2.*) # Novell/SCO UnixWare 2.x (tested on 2.1.2)
10014         cf_XOPEN_SOURCE=
10015         cf_POSIX_C_SOURCE=
10016         ;;
10017 (*)
10018         CF_TRY_XOPEN_SOURCE
10019         cf_save_xopen_cppflags="$CPPFLAGS"
10020         CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
10021         # Some of these niche implementations use copy/paste, double-check...
10022         if test "$cf_cv_xopen_source" != no ; then
10023                 CF_VERBOSE(checking if _POSIX_C_SOURCE inteferes)
10024                 AC_TRY_COMPILE(CF__XOPEN_SOURCE_HEAD,CF__XOPEN_SOURCE_BODY,,[
10025                         AC_MSG_WARN(_POSIX_C_SOURCE definition is not usable)
10026                         CPPFLAGS="$cf_save_xopen_cppflags"])
10027         fi
10028         ;;
10029 esac
10030
10031 if test -n "$cf_xopen_source" ; then
10032         CF_APPEND_CFLAGS($cf_xopen_source,true)
10033 fi
10034
10035 dnl In anything but the default case, we may have system-specific setting
10036 dnl which is still not guaranteed to provide all of the entrypoints that
10037 dnl _XOPEN_SOURCE would yield.
10038 if test -n "$cf_XOPEN_SOURCE" && test -z "$cf_cv_xopen_source" ; then
10039         AC_MSG_CHECKING(if _XOPEN_SOURCE really is set)
10040         AC_TRY_COMPILE([#include <stdlib.h>],[
10041 #ifndef _XOPEN_SOURCE
10042 make an error
10043 #endif],
10044         [cf_XOPEN_SOURCE_set=yes],
10045         [cf_XOPEN_SOURCE_set=no])
10046         AC_MSG_RESULT($cf_XOPEN_SOURCE_set)
10047         if test "$cf_XOPEN_SOURCE_set" = yes
10048         then
10049                 AC_TRY_COMPILE([#include <stdlib.h>],[
10050 #if (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE
10051 make an error
10052 #endif],
10053                 [cf_XOPEN_SOURCE_set_ok=yes],
10054                 [cf_XOPEN_SOURCE_set_ok=no])
10055                 if test "$cf_XOPEN_SOURCE_set_ok" = no
10056                 then
10057                         AC_MSG_WARN(_XOPEN_SOURCE is lower than requested)
10058                 fi
10059         else
10060                 CF_TRY_XOPEN_SOURCE
10061         fi
10062 fi
10063 fi # cf_cv_posix_visible
10064 ])
10065 dnl ---------------------------------------------------------------------------
10066 dnl CF__SED_TRIMBLANKS version: 1 updated: 2021/01/02 09:31:20
10067 dnl ------------------
10068 dnl Trim something using sed, then trim extra whitespace
10069 dnl $1 = extra parameters, e.g., in CF_STRIP_G_OPT
10070 define([CF__SED_TRIMBLANKS],[sed ifelse($1,,,[$1] )-e 's%[[     ]]% %g' -e 's% [[ ]]*% %g' -e 's%^ %%' -e 's% [$]%%'])dnl
10071 dnl ---------------------------------------------------------------------------
10072 dnl CF__XOPEN_SOURCE_BODY version: 1 updated: 2022/09/10 15:17:35
10073 dnl ---------------------
10074 dnl body of test when test-compiling for _XOPEN_SOURCE check
10075 define([CF__XOPEN_SOURCE_BODY],
10076 [
10077 #ifndef _XOPEN_SOURCE
10078 make an error
10079 #endif
10080 ])
10081 dnl ---------------------------------------------------------------------------
10082 dnl CF__XOPEN_SOURCE_HEAD version: 1 updated: 2022/09/10 15:17:03
10083 dnl ---------------------
10084 dnl headers to include when test-compiling for _XOPEN_SOURCE check
10085 define([CF__XOPEN_SOURCE_HEAD],
10086 [
10087 #include <stdlib.h>
10088 #include <string.h>
10089 #include <sys/types.h>
10090 ])