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