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