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