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