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