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