1 dnl***************************************************************************
2 dnl Copyright 2018-2021,2022 Thomas E. Dickey *
3 dnl Copyright 1998-2017,2018 Free Software Foundation, Inc. *
5 dnl Permission is hereby granted, free of charge, to any person obtaining a *
6 dnl copy of this software and associated documentation files (the *
7 dnl "Software"), to deal in the Software without restriction, including *
8 dnl without limitation the rights to use, copy, modify, merge, publish, *
9 dnl distribute, distribute with modifications, sublicense, and/or sell *
10 dnl copies of the Software, and to permit persons to whom the Software is *
11 dnl furnished to do so, subject to the following conditions: *
13 dnl The above copyright notice and this permission notice shall be included *
14 dnl in all copies or substantial portions of the Software. *
16 dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
17 dnl OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
18 dnl MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
19 dnl IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
20 dnl DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
21 dnl OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
22 dnl THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
24 dnl Except as contained in this notice, the name(s) of the above copyright *
25 dnl holders shall not be used in advertising or otherwise to promote the *
26 dnl sale, use or other dealings in this Software without prior written *
28 dnl***************************************************************************
30 dnl Author: Thomas E. Dickey 1995-on
32 dnl $Id: aclocal.m4,v 1.1008 2022/08/20 20:07:55 tom Exp $
33 dnl Macros used in NCURSES auto-configuration script.
35 dnl These macros are maintained separately from NCURSES. The copyright on
36 dnl this file applies to the aggregation of macros and does not affect use of
37 dnl these macros in other applications.
39 dnl See these pages for additional information:
40 dnl https://invisible-island.net/autoconf/
41 dnl https://invisible-island.net/autoconf/my-autoconf.html
43 dnl ---------------------------------------------------------------------------
44 dnl ---------------------------------------------------------------------------
45 dnl AM_LANGINFO_CODESET version: 6 updated: 2021/01/01 16:53:59
46 dnl -------------------
47 dnl Inserted as requested by gettext 0.10.40
48 dnl File from /usr/share/aclocal
50 dnl ====================
53 dnl From Bruno Haible.
54 AC_DEFUN([AM_LANGINFO_CODESET],
56 AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset,
57 [AC_TRY_LINK([#include <langinfo.h>],
58 [char* cs = nl_langinfo(CODESET); (void)cs],
59 am_cv_langinfo_codeset=yes,
60 am_cv_langinfo_codeset=no)
62 if test "$am_cv_langinfo_codeset" = yes; then
63 AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
64 [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
67 dnl ---------------------------------------------------------------------------
68 dnl CF_ABI_DEFAULTS version: 3 updated: 2022/01/22 19:13:38
70 dnl Provide configure-script defaults for different ncurses ABIs.
71 AC_DEFUN([CF_ABI_DEFAULTS],[
72 AC_REQUIRE([CF_NCURSES_WITH_ABI_VERSION])
85 cf_dft_opaque_curses=no
86 cf_dft_ordinate_type=short
92 case x$cf_cv_abi_version in
94 cf_dft_chtype=uint32_t
99 cf_dft_ext_spfuncs=yes
100 cf_dft_filter_syms=yes
102 cf_dft_mmask_t=uint32_t
103 cf_dft_tparm_arg=intptr_t
109 case x$cf_cv_abi_version in
112 cf_dft_mmask_t=uint64_t
113 cf_dft_opaque_curses=yes
114 cf_dft_ordinate_type=int
115 cf_dft_signed_char=yes
116 # also: remove the wgetch-events feature in ABI 7
120 dnl ---------------------------------------------------------------------------
121 dnl CF_ACVERSION_CHECK version: 5 updated: 2014/06/04 19:11:49
122 dnl ------------------
123 dnl Conditionally generate script according to whether we're using a given autoconf.
125 dnl $1 = version to compare against
126 dnl $2 = code to use if AC_ACVERSION is at least as high as $1.
127 dnl $3 = code to use if AC_ACVERSION is older than $1.
128 define([CF_ACVERSION_CHECK],
130 ifdef([AC_ACVERSION], ,[ifdef([AC_AUTOCONF_VERSION],[m4_copy([AC_AUTOCONF_VERSION],[AC_ACVERSION])],[m4_copy([m4_PACKAGE_VERSION],[AC_ACVERSION])])])dnl
131 ifdef([m4_version_compare],
132 [m4_if(m4_version_compare(m4_defn([AC_ACVERSION]), [$1]), -1, [$3], [$2])],
133 [CF_ACVERSION_COMPARE(
134 AC_PREREQ_CANON(AC_PREREQ_SPLIT([$1])),
135 AC_PREREQ_CANON(AC_PREREQ_SPLIT(AC_ACVERSION)), AC_ACVERSION, [$2], [$3])])])dnl
136 dnl ---------------------------------------------------------------------------
137 dnl CF_ACVERSION_COMPARE version: 3 updated: 2012/10/03 18:39:53
138 dnl --------------------
139 dnl CF_ACVERSION_COMPARE(MAJOR1, MINOR1, TERNARY1,
140 dnl MAJOR2, MINOR2, TERNARY2,
141 dnl PRINTABLE2, not FOUND, FOUND)
142 define([CF_ACVERSION_COMPARE],
143 [ifelse(builtin([eval], [$2 < $5]), 1,
144 [ifelse([$8], , ,[$8])],
145 [ifelse([$9], , ,[$9])])])dnl
146 dnl ---------------------------------------------------------------------------
147 dnl CF_ADA_INCLUDE_DIRS version: 8 updated: 2013/10/14 04:24:07
148 dnl -------------------
149 dnl Construct the list of include-options for the C programs in the Ada95
151 AC_DEFUN([CF_ADA_INCLUDE_DIRS],
153 ACPPFLAGS="-I. -I../include -I../../include $ACPPFLAGS"
154 if test "$srcdir" != "."; then
155 ACPPFLAGS="-I\${srcdir}/../../include $ACPPFLAGS"
157 if test "$GCC" != yes; then
158 ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
159 elif test "$includedir" != "/usr/include"; then
160 if test "$includedir" = '${prefix}/include' ; then
161 if test x$prefix != x/usr ; then
162 ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
165 ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
170 dnl ---------------------------------------------------------------------------
171 dnl CF_ADD_ADAFLAGS version: 1 updated: 2010/06/19 15:22:18
173 dnl Add to $ADAFLAGS, which is substituted into makefile and scripts.
174 AC_DEFUN([CF_ADD_ADAFLAGS],[
175 ADAFLAGS="$ADAFLAGS $1"
178 dnl ---------------------------------------------------------------------------
179 dnl CF_ADD_CFLAGS version: 15 updated: 2020/12/31 10:54:15
181 dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS
182 dnl $1 = flags to add
183 dnl $2 = if given makes this macro verbose.
185 dnl Put any preprocessor definitions that use quoted strings in $EXTRA_CPPFLAGS,
186 dnl to simplify use of $CPPFLAGS in compiler checks, etc., that are easily
187 dnl confused by the quotes (which require backslashes to keep them usable).
188 AC_DEFUN([CF_ADD_CFLAGS],
193 cf_new_extra_cppflags=
195 for cf_add_cflags in $1
197 case "$cf_fix_cppflags" in
199 case "$cf_add_cflags" in
200 (-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C)
201 case "$cf_add_cflags" in
203 cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^-D[[^=]]*='\''\"[[^"]]*//'`
205 test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
206 && test -z "${cf_tst_cflags}" \
207 && cf_fix_cppflags=yes
209 if test "$cf_fix_cppflags" = yes ; then
210 CF_APPEND_TEXT(cf_new_extra_cppflags,$cf_add_cflags)
212 elif test "${cf_tst_cflags}" = "\"'" ; then
213 CF_APPEND_TEXT(cf_new_extra_cppflags,$cf_add_cflags)
222 case "$cf_add_cflags" in
224 cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
225 CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,$cf_tst_cppflags)
228 CF_APPEND_TEXT(cf_new_cppflags,$cf_add_cflags)
233 CF_APPEND_TEXT(cf_new_cflags,$cf_add_cflags)
238 CF_APPEND_TEXT(cf_new_extra_cppflags,$cf_add_cflags)
240 cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^[[^"]]*"'\''//'`
242 test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
243 && test -z "${cf_tst_cflags}" \
244 && cf_fix_cppflags=no
249 if test -n "$cf_new_cflags" ; then
250 ifelse([$2],,,[CF_VERBOSE(add to \$CFLAGS $cf_new_cflags)])
251 CF_APPEND_TEXT(CFLAGS,$cf_new_cflags)
254 if test -n "$cf_new_cppflags" ; then
255 ifelse([$2],,,[CF_VERBOSE(add to \$CPPFLAGS $cf_new_cppflags)])
256 CF_APPEND_TEXT(CPPFLAGS,$cf_new_cppflags)
259 if test -n "$cf_new_extra_cppflags" ; then
260 ifelse([$2],,,[CF_VERBOSE(add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags)])
261 CF_APPEND_TEXT(EXTRA_CPPFLAGS,$cf_new_extra_cppflags)
264 AC_SUBST(EXTRA_CPPFLAGS)
267 dnl ---------------------------------------------------------------------------
268 dnl CF_ADD_CXXFLAGS version: 1 updated: 2020/04/04 16:16:13
270 dnl Copy non-preprocessor flags to $CXXFLAGS, preprocessor flags to $CPPFLAGS
271 dnl The second parameter if given makes this macro verbose.
273 dnl Put any preprocessor definitions that use quoted strings in $EXTRA_CPPFLAGS,
274 dnl to simplify use of $CPPFLAGS in compiler checks, etc., that are easily
275 dnl confused by the quotes (which require backslashes to keep them usable).
276 AC_DEFUN([CF_ADD_CXXFLAGS],
278 cf_save_CXXFLAGS="$CFLAGS"
280 CF_ADD_CFLAGS($1 ifelse($2,,,[,$2]))
282 CFLAGS="$cf_save_CXXFLAGS"
284 dnl ---------------------------------------------------------------------------
285 dnl CF_ADD_INCDIR version: 17 updated: 2021/09/04 06:35:04
287 dnl Add an include-directory to $CPPFLAGS. Don't add /usr/include, since it is
288 dnl redundant. We don't normally need to add -I/usr/local/include for gcc,
289 dnl but old versions (and some misinstalled ones) need that. To make things
290 dnl worse, gcc 3.x may give error messages if -I/usr/local/include is added to
291 dnl the include-path).
292 AC_DEFUN([CF_ADD_INCDIR],
294 if test -n "$1" ; then
295 for cf_add_incdir in $1
297 while test "$cf_add_incdir" != /usr/include
299 if test -d "$cf_add_incdir"
302 if test -n "$CFLAGS$CPPFLAGS" ; then
303 # a loop is needed to ensure we can add subdirs of existing dirs
304 for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
305 if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
306 cf_have_incdir=yes; break
311 if test "$cf_have_incdir" = no ; then
312 if test "$cf_add_incdir" = /usr/local/include ; then
315 cf_save_CPPFLAGS=$CPPFLAGS
316 CF_APPEND_TEXT(CPPFLAGS,-I$cf_add_incdir)
317 AC_TRY_COMPILE([#include <stdio.h>],
320 [cf_have_incdir=yes])
321 CPPFLAGS=$cf_save_CPPFLAGS
326 if test "$cf_have_incdir" = no ; then
327 CF_VERBOSE(adding $cf_add_incdir to include-path)
328 ifelse([$2],,CPPFLAGS,[$2])="$ifelse([$2],,CPPFLAGS,[$2]) -I$cf_add_incdir"
330 cf_top_incdir=`echo "$cf_add_incdir" | sed -e 's%/include/.*$%/include%'`
331 test "$cf_top_incdir" = "$cf_add_incdir" && break
332 cf_add_incdir="$cf_top_incdir"
343 dnl ---------------------------------------------------------------------------
344 dnl CF_ADD_LIB version: 2 updated: 2010/06/02 05:03:05
346 dnl Add a library, used to enforce consistency.
348 dnl $1 = library to add, without the "-l"
349 dnl $2 = variable to update (default $LIBS)
350 AC_DEFUN([CF_ADD_LIB],[CF_ADD_LIBS(-l$1,ifelse($2,,LIBS,[$2]))])dnl
351 dnl ---------------------------------------------------------------------------
352 dnl CF_ADD_LIBDIR version: 11 updated: 2020/12/31 20:19:42
354 dnl Adds to the library-path
356 dnl Some machines have trouble with multiple -L options.
358 dnl $1 is the (list of) directory(s) to add
359 dnl $2 is the optional name of the variable to update (default LDFLAGS)
361 AC_DEFUN([CF_ADD_LIBDIR],
363 if test -n "$1" ; then
364 for cf_add_libdir in $1
366 if test "$cf_add_libdir" = /usr/lib ; then
368 elif test -d "$cf_add_libdir"
371 if test -n "$LDFLAGS$LIBS" ; then
372 # a loop is needed to ensure we can add subdirs of existing dirs
373 for cf_test_libdir in $LDFLAGS $LIBS ; do
374 if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
375 cf_have_libdir=yes; break
379 if test "$cf_have_libdir" = no ; then
380 CF_VERBOSE(adding $cf_add_libdir to library-path)
381 ifelse([$2],,LDFLAGS,[$2])="-L$cf_add_libdir $ifelse([$2],,LDFLAGS,[$2])"
387 dnl ---------------------------------------------------------------------------
388 dnl CF_ADD_LIBS version: 3 updated: 2019/11/02 16:47:33
390 dnl Add one or more libraries, used to enforce consistency. Libraries are
391 dnl prepended to an existing list, since their dependencies are assumed to
392 dnl already exist in the list.
394 dnl $1 = libraries to add, with the "-l", etc.
395 dnl $2 = variable to update (default $LIBS)
396 AC_DEFUN([CF_ADD_LIBS],[
397 cf_add_libs="[$]ifelse($2,,LIBS,[$2])"
400 for cf_add_1lib in $1; do cf_add_0lib="$cf_add_1lib $cf_add_0lib"; done
402 for cf_add_1lib in $cf_add_0lib; do
403 for cf_add_2lib in $cf_add_libs; do
404 if test "x$cf_add_1lib" = "x$cf_add_2lib"; then
409 test -n "$cf_add_1lib" && cf_add_libs="$cf_add_1lib $cf_add_libs"
411 ifelse($2,,LIBS,[$2])="$cf_add_libs"
413 dnl ---------------------------------------------------------------------------
414 dnl CF_ADD_SUBDIR_PATH version: 5 updated: 2020/12/31 20:19:42
415 dnl ------------------
416 dnl Append to a search-list for a nonstandard header/lib-file
417 dnl $1 = the variable to return as result
418 dnl $2 = the package name
419 dnl $3 = the subdirectory, e.g., bin, include or lib
420 dnl $4 = the directory under which we will test for subdirectories
421 dnl $5 = a directory that we do not want $4 to match
422 AC_DEFUN([CF_ADD_SUBDIR_PATH],
424 test "x$4" != "x$5" && \
426 ifelse([$5],NONE,,[{ test -z "$5" || test "x$5" = xNONE || test "x$4" != "x$5"; } &&]) {
427 test -n "$verbose" && echo " ... testing for $3-directories under $4"
428 test -d "$4/$3" && $1="[$]$1 $4/$3"
429 test -d "$4/$3/$2" && $1="[$]$1 $4/$3/$2"
430 test -d "$4/$3/$2/$3" && $1="[$]$1 $4/$3/$2/$3"
431 test -d "$4/$2/$3" && $1="[$]$1 $4/$2/$3"
432 test -d "$4/$2/$3/$2" && $1="[$]$1 $4/$2/$3/$2"
435 dnl ---------------------------------------------------------------------------
436 dnl CF_APPEND_CFLAGS version: 3 updated: 2021/09/05 17:25:40
438 dnl Use CF_ADD_CFLAGS after first checking for potential redefinitions.
439 dnl $1 = flags to add
440 dnl $2 = if given makes this macro verbose.
441 define([CF_APPEND_CFLAGS],
443 for cf_add_cflags in $1
445 case "x$cf_add_cflags" in
447 CF_REMOVE_CFLAGS($cf_add_cflags,CFLAGS,[$2])
448 CF_REMOVE_CFLAGS($cf_add_cflags,CPPFLAGS,[$2])
451 CF_ADD_CFLAGS([$cf_add_cflags],[$2])
454 dnl ---------------------------------------------------------------------------
455 dnl CF_APPEND_TEXT version: 1 updated: 2017/02/25 18:58:55
457 dnl use this macro for appending text without introducing an extra blank at
459 define([CF_APPEND_TEXT],
461 test -n "[$]$1" && $1="[$]$1 "
464 dnl ---------------------------------------------------------------------------
465 dnl CF_ARG_DISABLE version: 3 updated: 1999/03/30 17:24:31
467 dnl Allow user to disable a normally-on option.
468 AC_DEFUN([CF_ARG_DISABLE],
469 [CF_ARG_OPTION($1,[$2],[$3],[$4],yes)])dnl
470 dnl ---------------------------------------------------------------------------
471 dnl CF_ARG_ENABLE version: 3 updated: 1999/03/30 17:24:31
473 dnl Allow user to enable a normally-off option.
474 AC_DEFUN([CF_ARG_ENABLE],
475 [CF_ARG_OPTION($1,[$2],[$3],[$4],no)])dnl
476 dnl ---------------------------------------------------------------------------
477 dnl CF_ARG_OPTION version: 5 updated: 2015/05/10 19:52:14
479 dnl Restricted form of AC_ARG_ENABLE that ensures user doesn't give bogus
485 dnl $3 = action to perform if option is not default
486 dnl $4 = action if perform if option is default
487 dnl $5 = default option value (either 'yes' or 'no')
488 AC_DEFUN([CF_ARG_OPTION],
489 [AC_ARG_ENABLE([$1],[$2],[test "$enableval" != ifelse([$5],no,yes,no) && enableval=ifelse([$5],no,no,yes)
490 if test "$enableval" != "$5" ; then
492 ,[ $3]) ifelse([$4],,,[
495 fi],[enableval=$5 ifelse([$4],,,[
499 dnl ---------------------------------------------------------------------------
500 dnl CF_AR_FLAGS version: 9 updated: 2021/01/01 13:31:04
502 dnl Check for suitable "ar" (archiver) options for updating an archive.
504 dnl In particular, handle some obsolete cases where the "-" might be omitted,
505 dnl as well as a workaround for breakage of make's archive rules by the GNU
506 dnl binutils "ar" program.
507 AC_DEFUN([CF_AR_FLAGS],[
508 AC_REQUIRE([CF_PROG_AR])
510 AC_CACHE_CHECK(for options to update archives, cf_cv_ar_flags,[
511 case "$cf_cv_system_name" in
514 cat >mk_static_lib.sh <<-EOF
519 exec \[$]MSVC_BIN -out:"\[$]out" \[$]@
521 chmod +x mk_static_lib.sh
522 AR=`pwd`/mk_static_lib.sh
525 cf_cv_ar_flags=unknown
526 for cf_ar_flags in -curvU -curv curv -crv crv -cqv cqv -rv rv
529 # check if $ARFLAGS already contains this choice
530 if test "x$ARFLAGS" != "x" ; then
531 cf_check_ar_flags=`echo "x$ARFLAGS" | sed -e "s/$cf_ar_flags\$//" -e "s/$cf_ar_flags / /"`
532 if test "x$ARFLAGS" != "$cf_check_ar_flags" ; then
538 rm -f "conftest.$ac_cv_objext"
541 cat >"conftest.$ac_ext" <<EOF
542 #line __oline__ "configure"
543 int testdata[[3]] = { 123, 456, 789 };
545 if AC_TRY_EVAL(ac_compile) ; then
546 echo "$AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext" >&AC_FD_CC
547 $AR $ARFLAGS "$cf_ar_flags" conftest.a "conftest.$ac_cv_objext" 2>&AC_FD_CC 1>/dev/null
548 if test -f conftest.a ; then
549 cf_cv_ar_flags="$cf_ar_flags"
553 CF_VERBOSE(cannot compile test-program)
557 rm -f conftest.a "conftest.$ac_ext" "conftest.$ac_cv_objext"
562 if test -n "$ARFLAGS" ; then
563 if test -n "$cf_cv_ar_flags" ; then
564 ARFLAGS="$ARFLAGS $cf_cv_ar_flags"
567 ARFLAGS=$cf_cv_ar_flags
572 dnl ---------------------------------------------------------------------------
573 dnl CF_AWK_BIG_PRINTF version: 5 updated: 2015/04/17 21:13:04
574 dnl -----------------
575 dnl Check if awk can handle big strings using printf. Some older versions of
576 dnl awk choke on large strings passed via "%s".
578 dnl $1 = desired string size
579 dnl $2 = variable to set with result
580 AC_DEFUN([CF_AWK_BIG_PRINTF],
587 if ( ${AWK} 'BEGIN { xx = "x"; while (length(xx) < $1) { xx = xx "x"; }; printf("%s\n", xx); }' 2>/dev/null \
588 | $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
596 dnl ---------------------------------------------------------------------------
597 dnl CF_BOOL_DECL version: 8 updated: 2004/01/30 15:51:18
599 dnl Test if 'bool' is a builtin type in the configured C++ compiler. Some
600 dnl older compilers (e.g., gcc 2.5.8) don't support 'bool' directly; gcc
601 dnl 2.6.3 does, in anticipation of the ANSI C++ standard.
603 dnl Treat the configuration-variable specially here, since we're directly
604 dnl substituting its value (i.e., 1/0).
606 dnl $1 is the shell variable to store the result in, if not $cv_cv_builtin_bool
607 AC_DEFUN([CF_BOOL_DECL],
609 AC_MSG_CHECKING(if we should include stdbool.h)
611 AC_CACHE_VAL(cf_cv_header_stdbool_h,[
612 AC_TRY_COMPILE([],[bool foo = false],
613 [cf_cv_header_stdbool_h=0],
618 ],[bool foo = false],
619 [cf_cv_header_stdbool_h=1],
620 [cf_cv_header_stdbool_h=0])])])
622 if test "$cf_cv_header_stdbool_h" = 1
623 then AC_MSG_RESULT(yes)
624 else AC_MSG_RESULT(no)
627 AC_MSG_CHECKING([for builtin bool type])
629 AC_CACHE_VAL(ifelse($1,,cf_cv_builtin_bool,[$1]),[
632 #include <sys/types.h>
634 [ifelse($1,,cf_cv_builtin_bool,[$1])=1],
635 [ifelse($1,,cf_cv_builtin_bool,[$1])=0])
638 if test "$ifelse($1,,cf_cv_builtin_bool,[$1])" = 1
639 then AC_MSG_RESULT(yes)
640 else AC_MSG_RESULT(no)
643 dnl ---------------------------------------------------------------------------
644 dnl CF_BOOL_SIZE version: 18 updated: 2021/09/04 06:35:04
646 dnl Test for the size of 'bool' in the configured C++ compiler (e.g., a type).
647 dnl Don't bother looking for bool.h, since it has been deprecated.
649 dnl If the current compiler is C rather than C++, we get the bool definition
650 dnl from <stdbool.h>.
651 AC_DEFUN([CF_BOOL_SIZE],
653 AC_CHECK_SIZEOF(bool,,[
657 #if defined(__cplusplus)
659 #ifdef HAVE_GXX_BUILTIN_H
660 #include <g++/builtin.h>
661 #elif HAVE_GPP_BUILTIN_H
662 #include <gpp/builtin.h>
669 #if $cf_cv_header_stdbool_h
676 AC_CACHE_CHECK(for type of bool, cf_cv_type_of_bool,[
682 #if defined(__cplusplus)
684 #ifdef HAVE_GXX_BUILTIN_H
685 #include <g++/builtin.h>
686 #elif HAVE_GPP_BUILTIN_H
687 #include <gpp/builtin.h>
694 #if $cf_cv_header_stdbool_h
702 FILE *fp = fopen("cf_test.out", "w");
706 fputs("unsigned ", fp);
707 if (sizeof(x) == sizeof(int)) fputs("int", fp);
708 else if (sizeof(x) == sizeof(char)) fputs("char", fp);
709 else if (sizeof(x) == sizeof(short))fputs("short",fp);
710 else if (sizeof(x) == sizeof(long)) fputs("long", fp);
713 ${cf_cv_main_return:-return}(0);
716 [cf_cv_type_of_bool=`cat cf_test.out`
717 if test -z "$cf_cv_type_of_bool"; then
718 cf_cv_type_of_bool=unknown
720 [cf_cv_type_of_bool=unknown],
722 case x$ac_cv_sizeof_bool in
723 (x1) cf_cv_type_of_bool="unsigned char";;
724 (x2) cf_cv_type_of_bool="unsigned short";;
725 (x4) cf_cv_type_of_bool="unsigned int";;
726 (x8) cf_cv_type_of_bool="unsigned long";;
727 (*) cf_cv_type_of_bool=unknown;;
733 if test "$cf_cv_type_of_bool" = unknown ; then
734 case .$NCURSES_BOOL in
735 (.auto|.) NCURSES_BOOL=unsigned;;
737 AC_MSG_WARN(Assuming $NCURSES_BOOL for type of bool)
738 cf_cv_type_of_bool=$NCURSES_BOOL
741 dnl ---------------------------------------------------------------------------
742 dnl CF_BUILD_CC version: 9 updated: 2021/01/02 09:31:20
744 dnl If we're cross-compiling, allow the user to override the tools and their
745 dnl options. The configure script is oriented toward identifying the host
746 dnl compiler, etc., but we need a build compiler to generate parts of the
749 dnl $1 = default for $CPPFLAGS
750 dnl $2 = default for $LIBS
751 AC_DEFUN([CF_BUILD_CC],[
752 CF_ACVERSION_CHECK(2.52,,
753 [AC_REQUIRE([CF_PROG_EXT])])
754 if test "$cross_compiling" = yes ; then
756 # defaults that we might want to override
757 : ${BUILD_CFLAGS:=''}
758 : ${BUILD_CPPFLAGS:='ifelse([$1],,,[$1])'}
759 : ${BUILD_LDFLAGS:=''}
760 : ${BUILD_LIBS:='ifelse([$2],,,[$2])'}
761 : ${BUILD_EXEEXT:='$x'}
762 : ${BUILD_OBJEXT:='o'}
764 AC_ARG_WITH(build-cc,
765 [ --with-build-cc=XXX the build C compiler ($BUILD_CC)],
766 [BUILD_CC="$withval"],
767 [AC_CHECK_PROGS(BUILD_CC, [gcc clang c99 c89 cc cl],none)])
768 AC_MSG_CHECKING(for native build C compiler)
769 AC_MSG_RESULT($BUILD_CC)
771 AC_MSG_CHECKING(for native build C preprocessor)
772 AC_ARG_WITH(build-cpp,
773 [ --with-build-cpp=XXX the build C preprocessor ($BUILD_CPP)],
774 [BUILD_CPP="$withval"],
775 [BUILD_CPP='${BUILD_CC} -E'])
776 AC_MSG_RESULT($BUILD_CPP)
778 AC_MSG_CHECKING(for native build C flags)
779 AC_ARG_WITH(build-cflags,
780 [ --with-build-cflags=XXX the build C compiler-flags ($BUILD_CFLAGS)],
781 [BUILD_CFLAGS="$withval"])
782 AC_MSG_RESULT($BUILD_CFLAGS)
784 AC_MSG_CHECKING(for native build C preprocessor-flags)
785 AC_ARG_WITH(build-cppflags,
786 [ --with-build-cppflags=XXX the build C preprocessor-flags ($BUILD_CPPFLAGS)],
787 [BUILD_CPPFLAGS="$withval"])
788 AC_MSG_RESULT($BUILD_CPPFLAGS)
790 AC_MSG_CHECKING(for native build linker-flags)
791 AC_ARG_WITH(build-ldflags,
792 [ --with-build-ldflags=XXX the build linker-flags ($BUILD_LDFLAGS)],
793 [BUILD_LDFLAGS="$withval"])
794 AC_MSG_RESULT($BUILD_LDFLAGS)
796 AC_MSG_CHECKING(for native build linker-libraries)
797 AC_ARG_WITH(build-libs,
798 [ --with-build-libs=XXX the build libraries (${BUILD_LIBS})],
799 [BUILD_LIBS="$withval"])
800 AC_MSG_RESULT($BUILD_LIBS)
802 # this assumes we're on Unix.
806 : ${BUILD_CC:='${CC}'}
808 if { test "$BUILD_CC" = "$CC" || test "$BUILD_CC" = '${CC}'; } ; then
809 AC_MSG_ERROR([Cross-build requires two compilers.
810 Use --with-build-cc to specify the native compiler.])
814 : ${BUILD_CC:='${CC}'}
815 : ${BUILD_CPP:='${CPP}'}
816 : ${BUILD_CFLAGS:='${CFLAGS}'}
817 : ${BUILD_CPPFLAGS:='${CPPFLAGS}'}
818 : ${BUILD_LDFLAGS:='${LDFLAGS}'}
819 : ${BUILD_LIBS:='${LIBS}'}
820 : ${BUILD_EXEEXT:='$x'}
821 : ${BUILD_OBJEXT:='o'}
826 AC_SUBST(BUILD_CFLAGS)
827 AC_SUBST(BUILD_CPPFLAGS)
828 AC_SUBST(BUILD_LDFLAGS)
830 AC_SUBST(BUILD_EXEEXT)
831 AC_SUBST(BUILD_OBJEXT)
833 dnl ---------------------------------------------------------------------------
834 dnl CF_C11_NORETURN version: 3 updated: 2021/03/28 11:36:23
836 AC_DEFUN([CF_C11_NORETURN],
838 AC_MSG_CHECKING(if you want to use C11 _Noreturn feature)
839 CF_ARG_ENABLE(stdnoreturn,
840 [ --enable-stdnoreturn enable C11 _Noreturn feature for diagnostics],
841 [enable_stdnoreturn=yes],
842 [enable_stdnoreturn=no])
843 AC_MSG_RESULT($enable_stdnoreturn)
845 if test $enable_stdnoreturn = yes; then
846 AC_CACHE_CHECK([for C11 _Noreturn feature], cf_cv_c11_noreturn,
850 #include <stdnoreturn.h>
851 static _Noreturn void giveup(void) { exit(0); }
853 [if (feof(stdin)) giveup()],
854 cf_cv_c11_noreturn=yes,
855 cf_cv_c11_noreturn=no)
858 cf_cv_c11_noreturn=no,
861 if test "$cf_cv_c11_noreturn" = yes; then
862 AC_DEFINE(HAVE_STDNORETURN_H, 1,[Define if <stdnoreturn.h> header is available and working])
863 AC_DEFINE_UNQUOTED(STDC_NORETURN,_Noreturn,[Define if C11 _Noreturn keyword is supported])
869 AC_SUBST(HAVE_STDNORETURN_H)
870 AC_SUBST(STDC_NORETURN)
872 dnl ---------------------------------------------------------------------------
873 dnl CF_CC_ENV_FLAGS version: 10 updated: 2020/12/31 18:40:20
875 dnl Check for user's environment-breakage by stuffing CFLAGS/CPPFLAGS content
876 dnl into CC. This will not help with broken scripts that wrap the compiler
877 dnl with options, but eliminates a more common category of user confusion.
879 dnl In particular, it addresses the problem of being able to run the C
880 dnl preprocessor in a consistent manner.
882 dnl Caveat: this also disallows blanks in the pathname for the compiler, but
883 dnl the nuisance of having inconsistent settings for compiler and preprocessor
884 dnl outweighs that limitation.
885 AC_DEFUN([CF_CC_ENV_FLAGS],
887 # This should have been defined by AC_PROG_CC
890 AC_MSG_CHECKING(\$CFLAGS variable)
893 AC_MSG_RESULT(broken)
894 AC_MSG_WARN(your environment uses the CFLAGS variable to hold CPPFLAGS options)
897 for cf_arg in $cf_flags
899 CF_ADD_CFLAGS($cf_arg)
907 AC_MSG_CHECKING(\$CC variable)
910 AC_MSG_RESULT(broken)
911 AC_MSG_WARN(your environment uses the CC variable to hold CFLAGS/CPPFLAGS options)
913 cf_prog=`echo "$CC" | sed -e 's/ / /g' -e 's/[[ ]]* / /g' -e 's/[[ ]]*[[ ]]-[[^ ]].*//'`
914 cf_flags=`echo "$CC" | ${AWK:-awk} -v prog="$cf_prog" '{ printf("%s", [substr]([$]0,1+length(prog))); }'`
916 for cf_arg in $cf_flags
920 CF_ADD_CFLAGS($cf_arg)
927 CF_VERBOSE(resulting CC: '$CC')
928 CF_VERBOSE(resulting CFLAGS: '$CFLAGS')
929 CF_VERBOSE(resulting CPPFLAGS: '$CPPFLAGS')
936 dnl ---------------------------------------------------------------------------
937 dnl CF_CFG_DEFAULTS version: 16 updated: 2021/01/04 19:33:05
939 dnl Determine the default configuration into which we'll install ncurses. This
940 dnl can be overridden by the user's command-line options. There's two items to
942 dnl 1. the prefix (e.g., /usr)
943 dnl 2. the header files (e.g., /usr/include/ncurses)
944 dnl We'll look for a previous installation of ncurses and use the same defaults.
946 dnl We don't use AC_PREFIX_DEFAULT, because it gets evaluated too soon, and
947 dnl we don't use AC_PREFIX_PROGRAM, because we cannot distinguish ncurses's
948 dnl programs from a vendor's.
949 AC_DEFUN([CF_CFG_DEFAULTS],
950 [AC_REQUIRE([AC_PROG_FGREP])dnl
952 AC_MSG_CHECKING(for prefix)
953 if test "x$prefix" = "xNONE" ; then
954 case "$cf_cv_system_name" in
955 # non-vendor systems don't have a conflict
956 (openbsd*|freebsd*|mirbsd*|linux*|cygwin*|msys*|k*bsd*-gnu|mingw*)
959 (*) prefix=$ac_default_prefix
963 AC_MSG_RESULT($prefix)
965 if test "x$prefix" = "xNONE" ; then
966 AC_MSG_CHECKING(for default include-directory)
967 test -n "$verbose" && echo 1>&AC_FD_MSG
970 "$includedir/ncurses" \
972 "$prefix/include/ncurses" \
974 /usr/local/include/ncurses \
978 cf_dir=`eval echo "$cf_symbol"`
979 if test -f "$cf_dir/curses.h" ; then
980 if ( ${FGREP-fgrep} NCURSES_VERSION "$cf_dir/curses.h" >/dev/null 2>&1 ) ; then
981 includedir="$cf_symbol"
982 test -n "$verbose" && echo $ECHO_N " found " 1>&AC_FD_MSG
986 test -n "$verbose" && echo " tested $cf_dir" 1>&AC_FD_MSG
988 AC_MSG_RESULT($includedir)
991 dnl ---------------------------------------------------------------------------
992 dnl CF_CGETENT version: 6 updated: 2017/01/21 11:06:25
994 dnl Check if the terminal-capability database functions are available. If not,
995 dnl ncurses has a much-reduced version.
996 AC_DEFUN([CF_CGETENT],[
997 AC_CACHE_CHECK(for terminal-capability database functions,cf_cv_cgetent,[
999 #include <stdlib.h>],[
1002 char *db_array = temp;
1003 cgetent(&buf, &db_array, "vt100");
1004 cgetcap(buf, "tc", '=');
1005 cgetmatch(buf, "tc");
1007 [cf_cv_cgetent=yes],
1011 if test "$cf_cv_cgetent" = yes
1013 AC_DEFINE(HAVE_BSD_CGETENT,1,[Define to 1 if we have BSD cgetent])
1014 AC_CACHE_CHECK(if cgetent uses const parameter,cf_cv_cgetent_const,[
1016 #pragma GCC diagnostic error "-Wincompatible-pointer-types-discards-qualifiers"
1017 #include <stdlib.h>],[
1020 #ifndef _NETBSD_SOURCE /* given, since April 2004 in stdlib.h */
1021 const char *db_array = temp;
1022 cgetent(&buf, &db_array, "vt100");
1024 cgetcap(buf, "tc", '=');
1025 cgetmatch(buf, "tc");
1027 [cf_cv_cgetent_const=yes],
1028 [cf_cv_cgetent_const=no])
1030 if test "$cf_cv_cgetent_const" = yes
1032 AC_DEFINE_UNQUOTED(CGETENT_CONST,const,[Define to const if needed for some BSD cgetent variations])
1036 dnl ---------------------------------------------------------------------------
1037 dnl CF_CHECK_CACHE version: 13 updated: 2020/12/31 10:54:15
1039 dnl Check if we're accidentally using a cache from a different machine.
1040 dnl Derive the system name, as a check for reusing the autoconf cache.
1042 dnl If we've packaged config.guess and config.sub, run that (since it does a
1043 dnl better job than uname). Normally we'll use AC_CANONICAL_HOST, but allow
1044 dnl an extra parameter that we may override, e.g., for AC_CANONICAL_SYSTEM
1045 dnl which is useful in cross-compiles.
1047 dnl Note: we would use $ac_config_sub, but that is one of the places where
1048 dnl autoconf 2.5x broke compatibility with autoconf 2.13
1049 AC_DEFUN([CF_CHECK_CACHE],
1051 if test -f "$srcdir/config.guess" || test -f "$ac_aux_dir/config.guess" ; then
1052 ifelse([$1],,[AC_CANONICAL_HOST],[$1])
1053 system_name="$host_os"
1055 system_name="`(uname -s -r) 2>/dev/null`"
1056 if test -z "$system_name" ; then
1057 system_name="`(hostname) 2>/dev/null`"
1060 test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name",[Define to the system name.])
1061 AC_CACHE_VAL(cf_cv_system_name,[cf_cv_system_name="$system_name"])
1063 test -z "$system_name" && system_name="$cf_cv_system_name"
1064 test -n "$cf_cv_system_name" && AC_MSG_RESULT(Configuring for $cf_cv_system_name)
1066 if test ".$system_name" != ".$cf_cv_system_name" ; then
1067 AC_MSG_RESULT(Cached system name ($system_name) does not agree with actual ($cf_cv_system_name))
1068 AC_MSG_ERROR("Please remove config.cache and try again.")
1071 dnl ---------------------------------------------------------------------------
1072 dnl CF_CHECK_ENVIRON version: 3 updated: 2010/05/26 16:44:57
1073 dnl ----------------
1074 dnl Check for data that is usually declared in <unistd.h>, e.g., the 'environ'
1075 dnl variable. Define a DECL_xxx symbol if we must declare it ourselves.
1077 dnl $1 = the name to check
1078 dnl $2 = the assumed type
1079 AC_DEFUN([CF_CHECK_ENVIRON],
1081 AC_CACHE_CHECK(if external $1 is declared, cf_cv_dcl_$1,[
1083 #ifdef HAVE_STDLIB_H
1086 #include <unistd.h> ],
1087 ifelse([$2],,int,[$2]) x = (ifelse([$2],,int,[$2])) $1,
1092 if test "$cf_cv_dcl_$1" = no ; then
1093 CF_UPPER(cf_result,decl_$1)
1094 AC_DEFINE_UNQUOTED($cf_result)
1097 # It's possible (for near-UNIX clones) that the data doesn't exist
1098 CF_CHECK_EXTERN_DATA($1,ifelse([$2],,int,[$2]))
1100 dnl ---------------------------------------------------------------------------
1101 dnl CF_CHECK_ERRNO version: 13 updated: 2020/03/10 18:53:47
1103 dnl Check for data that is usually declared in <stdio.h> or <errno.h>, e.g.,
1104 dnl the 'errno' variable. Define a DECL_xxx symbol if we must declare it
1107 dnl $1 = the name to check
1108 dnl $2 = the assumed type
1109 AC_DEFUN([CF_CHECK_ERRNO],
1111 AC_CACHE_CHECK(if external $1 is declared, cf_cv_dcl_$1,[
1113 #ifdef HAVE_STDLIB_H
1117 #include <sys/types.h>
1118 #include <errno.h> ],
1119 ifelse([$2],,int,[$2]) x = (ifelse([$2],,int,[$2])) $1; (void)x,
1124 if test "$cf_cv_dcl_$1" = no ; then
1125 CF_UPPER(cf_result,decl_$1)
1126 AC_DEFINE_UNQUOTED($cf_result)
1129 # It's possible (for near-UNIX clones) that the data doesn't exist
1130 CF_CHECK_EXTERN_DATA($1,ifelse([$2],,int,[$2]))
1132 dnl ---------------------------------------------------------------------------
1133 dnl CF_CHECK_EXTERN_DATA version: 5 updated: 2021/09/04 06:35:04
1134 dnl --------------------
1135 dnl Check for existence of external data in the current set of libraries. If
1136 dnl we can modify it, it is real enough.
1137 dnl $1 = the name to check
1139 AC_DEFUN([CF_CHECK_EXTERN_DATA],
1141 AC_CACHE_CHECK(if external $1 exists, cf_cv_have_$1,[
1147 [cf_cv_have_$1=yes],
1151 if test "$cf_cv_have_$1" = yes ; then
1152 CF_UPPER(cf_result,have_$1)
1153 AC_DEFINE_UNQUOTED($cf_result)
1157 dnl ---------------------------------------------------------------------------
1158 dnl CF_CHECK_FVISIBILITY version: 2 updated: 2020/04/04 16:16:13
1159 dnl --------------------
1160 dnl Check whether the compiler understands -fvisibility=hidden
1163 dnl $2 = compiler-flags variable name
1164 dnl $3 = cache variable to set
1165 AC_DEFUN([CF_CHECK_FVISIBILITY],[
1166 AC_CACHE_CHECK(if $1 -fvisibility=hidden option works,$3,[
1167 cf_save_cflags="[$]$2"
1168 $2="[$]$2 -fvisibility=hidden"
1170 __attribute__ ((visibility("default"))) int somefunc() {return 42;}
1172 if (somefunc()) return 1;
1179 dnl ---------------------------------------------------------------------------
1180 dnl CF_CHECK_GETENV version: 2 updated: 2021/01/02 17:09:14
1182 dnl Check if repeated getenv calls return the same pointer, e.g., it does not
1183 dnl discard the previous pointer when returning a new one.
1184 AC_DEFUN([CF_CHECK_GETENV],
1186 AC_REQUIRE([CF_CHECK_ENVIRON])
1187 AC_CHECK_FUNC( getenv, ,, AC_MSG_ERROR(getenv not found) )
1188 AC_CHECK_FUNCS( putenv setenv strdup )
1189 AC_CACHE_CHECK(if getenv returns consistent values,cf_cv_consistent_getenv,[
1195 #include <sys/types.h>
1197 #if defined(HAVE_ENVIRON) && defined(DECL_ENVIRON) && !defined(environ)
1198 extern char **environ; /* POSIX, but some systems are not... */
1201 #if defined(HAVE_STRDUP)
1202 #define str_alloc(s) strdup(s)
1204 #define str_alloc(s) strcpy(malloc(strlen(s) + 1, s))
1207 static void set_value(const char *name, const char *value)
1209 #if defined(HAVE_SETENV)
1210 setenv(name, value, 1);
1211 #elif defined(HAVE_PUTENV)
1213 sprintf(buffer, "%s=%s", name, value);
1214 putenv(str_alloc(buffer));
1216 #error neither putenv/setenv found
1222 size_t numenv, limit, j;
1227 for (numenv = 0; environ[numenv]; ++numenv) ;
1228 limit = numenv + 10;
1229 mynames = (char **) calloc(limit + 1, sizeof(char *));
1230 myvalues = (char **) calloc(limit + 1, sizeof(char *));
1231 mypointer = (char **) calloc(limit + 1, sizeof(char *));
1232 #if defined(HAVE_ENVIRON)
1233 for (j = 0; environ[j]; ++j) {
1234 mynames[j] = str_alloc(environ[j]);
1235 equals = strchr(mynames[j], '=');
1238 myvalues[j] = str_alloc(equals);
1240 myvalues[j] = str_alloc("");
1244 for (j = numenv; j < limit; ++j) {
1252 sprintf(name, "TERM%lu", (unsigned long) k);
1253 for (jk = 0; jk < j; ++jk) {
1254 if (!strcmp(name, mynames[jk])) {
1261 sprintf(value, "%lu:%p", (unsigned long) k, &mynames[j]);
1262 set_value(name, value);
1263 mynames[j] = str_alloc(name);
1264 myvalues[j] = str_alloc(value);
1266 for (pass = 0; pass < 3; ++pass) {
1267 for (j = 0; j < limit; ++j) {
1268 char *value = getenv(mynames[j]);
1271 fprintf(stderr, "getenv returned null for %s\\n", mynames[j]);
1272 ${cf_cv_main_return:-return}(1);
1273 } else if (value != mypointer[j]) {
1274 fprintf(stderr, "getenv returned different pointer for %s\\n", mynames[j]);
1275 ${cf_cv_main_return:-return}(1);
1276 } else if (strcmp(value, myvalues[j])) {
1277 fprintf(stderr, "getenv returned different value for %s\\n", mynames[j]);
1278 ${cf_cv_main_return:-return}(1);
1282 mypointer[j] = value;
1283 for (k = 0; k < j; ++k) {
1284 if (mypointer[j] == mypointer[k]) {
1285 fprintf(stderr, "getenv returned same pointer for %s and %s\\n", mynames[j], mynames[k]);
1286 ${cf_cv_main_return:-return}(1);
1292 ${cf_cv_main_return:-return}(0);
1295 [cf_cv_consistent_getenv=yes],
1296 [cf_cv_consistent_getenv=no],
1297 [cf_cv_consistent_getenv=unknown])
1300 if test "x$cf_cv_consistent_getenv" = xno
1302 AC_DEFINE(HAVE_CONSISTENT_GETENV,1,[Define to 1 if getenv repeatably returns the same value for a given name])
1305 dnl ---------------------------------------------------------------------------
1306 dnl CF_CHECK_GNAT_VERSION version: 4 updated: 2021/01/01 13:31:04
1307 dnl ---------------------
1308 AC_DEFUN([CF_CHECK_GNAT_VERSION],
1310 AC_REQUIRE([CF_GNAT_VERSION])
1311 case "$cf_cv_gnat_version" in
1312 (3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*|[[1-9]][[0-9]].[[0-9]]*|20[[0-9]][[0-9]])
1313 cf_cv_prog_gnat_correct=yes
1316 AC_MSG_WARN(Unsupported GNAT version $cf_cv_gnat_version. We require 3.11 or better. Disabling Ada95 binding.)
1317 cf_cv_prog_gnat_correct=no
1321 dnl ---------------------------------------------------------------------------
1322 dnl CF_CHECK_GPM_WGETCH version: 6 updated: 2021/01/04 18:48:01
1323 dnl -------------------
1324 dnl Check if GPM is already linked with curses. If so - and if the linkage
1325 dnl is not "weak" - warn about this because it can create problems linking
1326 dnl applications with ncurses.
1327 AC_DEFUN([CF_CHECK_GPM_WGETCH],[
1328 AC_REQUIRE([AC_PROG_EGREP])dnl
1330 AC_CHECK_LIB(gpm,Gpm_Wgetch,[
1332 AC_CACHE_CHECK(if GPM is weakly bound to curses library, cf_cv_check_gpm_wgetch,[
1333 cf_cv_check_gpm_wgetch=unknown
1334 if test "$cross_compiling" != yes ; then
1336 cat >conftest.$ac_ext <<CF_EOF
1341 ${cf_cv_main_return:-return}(0);
1345 cf_save_LIBS="$LIBS"
1346 # This only works if we can look at the symbol table. If a shared
1347 # library is stripped for install, we cannot use that. So we're forced
1348 # to rely on the static library, noting that some packagers may not
1350 LIBS="-static -lgpm -dynamic $LIBS"
1351 if AC_TRY_EVAL(ac_compile) ; then
1352 if AC_TRY_EVAL(ac_link) ; then
1353 cf_cv_check_gpm_wgetch="`nm \"conftest$ac_exeext\" | ${EGREP-egrep} '\<wgetch\>' | ${EGREP-egrep} '\<[[vVwW]]\>'`"
1354 test -n "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=yes
1355 test -z "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=no
1359 LIBS="$cf_save_LIBS"
1363 if test "$cf_cv_check_gpm_wgetch" != yes ; then
1364 AC_MSG_WARN(GPM library is already linked with curses - read the FAQ)
1367 dnl ---------------------------------------------------------------------------
1368 dnl CF_CHECK_LIBSSP version: 1 updated: 2021/10/30 10:40:19
1370 dnl Check if libssp is needed, e.g., to work around misconfigured libraries
1371 dnl used in cross-compiling to MinGW.
1372 AC_DEFUN([CF_CHECK_LIBSSP],[
1373 AC_CACHE_CHECK(if ssp library is needed,cf_cv_need_libssp,[
1375 #include <sys/types.h>
1378 DIR *dp = opendir(".");
1379 ],cf_cv_need_libssp=no,[
1380 cf_save_LIBS="$LIBS"
1383 #include <sys/types.h>
1386 DIR *dp = opendir(".");
1387 ],cf_cv_need_libssp=yes,
1388 cf_cv_need_libssp=maybe)
1389 LIBS="$cf_save_LIBS"
1393 if test "x$cf_cv_need_libssp" = xyes
1398 dnl ---------------------------------------------------------------------------
1399 dnl CF_CHECK_LIBTOOL_VERSION version: 2 updated: 2021/05/01 16:24:34
1400 dnl ------------------------
1401 dnl Show the version of libtool
1403 dnl Save the version in a cache variable - this is not entirely a good thing,
1404 dnl but the version string from libtool is very ugly, and for bug reports it
1405 dnl might be useful to have the original string.
1407 dnl There is an imitation in OpenBSD, which has no apparent use other than to
1408 dnl deny that it is GNU libtool. Just ignore it.
1409 AC_DEFUN([CF_CHECK_LIBTOOL_VERSION],[
1410 if test -n "$LIBTOOL" && test "$LIBTOOL" != none
1412 AC_MSG_CHECKING(version of $LIBTOOL)
1414 AC_MSG_RESULT($cf_cv_libtool_version)
1415 if test -n "$cf_cv_libtool_version"
1417 cf_check_libtool_version=`$LIBTOOL --version 2>&1 | sed -e '/^$/d' -e 's,[[()]],...,g' -e 's,[[ ]],-,g' -e '2,$d'`
1418 case "x$cf_check_libtool_version" in
1419 (*...GNU-libtool...*)
1422 AC_MSG_ERROR(This is not GNU libtool)
1426 AC_MSG_ERROR(No version found for $LIBTOOL)
1429 AC_MSG_ERROR(GNU libtool has not been found)
1432 dnl ---------------------------------------------------------------------------
1433 dnl CF_CHECK_WCHAR_H version: 3 updated: 2021/01/01 13:31:04
1434 dnl ----------------
1435 dnl Check if wchar.h can be used, i.e., without defining _XOPEN_SOURCE_EXTENDED
1436 AC_DEFUN([CF_CHECK_WCHAR_H],[
1441 AC_CACHE_CHECK(if wchar.h can be used as is,cf_cv_wchar_h_okay,[
1448 #ifdef HAVE_WCTYPE_H
1453 int bar = iswpunct(foo)],
1454 [cf_cv_wchar_h_okay=yes],
1455 [cf_cv_wchar_h_okay=no])])
1457 if test "$cf_cv_wchar_h_okay" = no
1459 CF_PREDEFINE(_XOPEN_SOURCE_EXTENDED)
1462 dnl ---------------------------------------------------------------------------
1463 dnl CF_CHECK_WCWIDTH_GRAPHICS version: 2 updated: 2021/01/02 17:09:14
1464 dnl -------------------------
1465 dnl Most "modern" terminal emulators are based to some degree on VT100, and
1466 dnl should support line-drawing. Even with Unicode. There is a problem.
1468 dnl While most of the VT100 graphics characters were incorporated into Unicode,
1469 dnl all of those were combined into a page of useful graphics characters.
1471 dnl So far, so good.
1473 dnl However, while they are useful, there are other considerations. CJK
1474 dnl is (because of poor device resolution) often rendered as double-width
1475 dnl characters. So... for these generally-useful characters, what should
1476 dnl be the width (to make them consistent with adjacent characters)?
1478 dnl The obvious choice would have been to make this locale-dependent, and use
1479 dnl wcwidth() to tell applications what the actual width is. That was too
1480 dnl obvious. Instead, we have a slew of "ambiguous-width" characters.
1482 dnl http://www.unicode.org/reports/tr11/tr11-29.html
1483 dnl http://www.cl.cam.ac.uk/~mgk25/ucs/scw-proposal.html
1485 dnl The EastAsianWidth-6.2.0.txt file from the Unicode organization lists
1486 dnl more than 22,000 characters, with 1281 of those as ambiguous-width. For
1487 dnl instance, it lists half (44/96) of the Latin-1 characters as
1488 dnl ambiguous-width. Also, all of the box-characters at 0x2500 are ambiguous.
1490 dnl What this means for the implementor is that on some systems wcwidth() can
1491 dnl give bad advice. On Solaris, some of the ambiguous widths are returned as
1492 dnl 1 (the Latin-1 characters), while others are returned as 2 (line-drawing
1493 dnl characters). These do not necessarily match the behavior of the terminal
1494 dnl emulator. xterm, for instance, does an optional startup check to find if
1495 dnl this problem (or similar) exists with the system's locale tables, rejecting
1496 dnl them if they are too unreliable.
1497 AC_DEFUN([CF_CHECK_WCWIDTH_GRAPHICS],[
1498 AC_CACHE_CHECK(if wcwidth agrees graphics are single-width, cf_cv_wcwidth_graphics,[
1499 cat >conftest.in <<CF_EOF
1501 0x250c upper left corner
1502 0x2514 lower left corner
1503 0x2510 upper right corner
1504 0x2518 lower right corner
1505 0x251c tee pointing left
1506 0x2524 tee pointing right
1507 0x2534 tee pointing up
1508 0x252c tee pointing down
1509 0x2500 horizontal line
1510 0x2502 vertical line
1511 0x253c large plus or crossover
1515 0x2592 checker board (stipple)
1516 0x00b0 degree symbol
1519 - Teletype 5410v1 symbols
1520 0x2190 arrow pointing left
1521 0x2192 arrow pointing right
1522 0x2193 arrow pointing down
1523 0x2191 arrow pointing up
1524 0x2592 board of squares
1525 0x2603 lantern symbol
1526 0x25ae solid square block
1527 - these defaults were invented for ncurses
1530 0x2264 less-than-or-equal-to
1531 0x2265 greater-than-or-equal-to
1534 0x00a3 pound-sterling symbol
1535 - thick-line-drawing
1536 0x250f upper left corner
1537 0x2517 lower left corner
1538 0x2513 upper right corner
1539 0x251b lower right corner
1540 0x2523 tee pointing left
1541 0x252b tee pointing right
1542 0x253b tee pointing up
1543 0x2533 tee pointing down
1544 0x2501 horizontal line
1545 0x2503 vertical line
1546 0x254b large plus or crossover
1547 - double-line-drawing
1548 0x2554 upper left corner
1549 0x255a lower left corner
1550 0x2557 upper right corner
1551 0x255d lower right corner
1552 0x2563 tee pointing left
1553 0x2560 tee pointing right
1554 0x2569 tee pointing up
1555 0x2566 tee pointing down
1556 0x2550 horizontal line
1557 0x2551 vertical line
1558 0x256c large plus or crossover
1572 char buffer[MY_LEN + 1];
1573 char notes[MY_LEN + 1];
1577 if (setlocale(LC_ALL, "en_US.UTF8") ||
1578 setlocale(LC_ALL, "en_US.UTF-8") ||
1579 setlocale(LC_ALL, "en_US.utf8") ||
1580 setlocale(LC_ALL, "en_US.utf-8")) {
1581 if ((fp = fopen("conftest.in", "r")) != 0) {
1582 while (fgets(buffer, MY_LEN, fp) != 0) {
1583 if (*buffer == '-') {
1584 fprintf(stderr, "\\t%s", buffer);
1585 } else if (sscanf(buffer, "%x %s", &value, notes) == 2) {
1587 if (wcwidth(value) == 1)
1589 fprintf(stderr, "%d\\t%s", wcwidth(value), buffer);
1591 fprintf(stderr, "?\\t%s", buffer);
1596 fprintf(stderr, "%d/%d passed wcwidth/graphics check\\n", passed, totals);
1597 return (totals == passed) ? 0 : 1;
1600 [cf_cv_wcwidth_graphics=yes],
1601 [cf_cv_wcwidth_graphics=no],
1602 [cf_cv_wcwidth_graphics=unknown])
1605 dnl ---------------------------------------------------------------------------
1606 dnl CF_CLANG_COMPILER version: 8 updated: 2021/01/01 13:31:04
1607 dnl -----------------
1608 dnl Check if the given compiler is really clang. clang's C driver defines
1609 dnl __GNUC__ (fooling the configure script into setting $GCC to yes) but does
1610 dnl not ignore some gcc options.
1612 dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
1613 dnl ensure that it is not mistaken for gcc/g++. It is normally invoked from
1614 dnl the wrappers for gcc and g++ warnings.
1616 dnl $1 = GCC (default) or GXX
1617 dnl $2 = CLANG_COMPILER (default)
1618 dnl $3 = CFLAGS (default) or CXXFLAGS
1619 AC_DEFUN([CF_CLANG_COMPILER],[
1620 ifelse([$2],,CLANG_COMPILER,[$2])=no
1622 if test "$ifelse([$1],,[$1],GCC)" = yes ; then
1623 AC_MSG_CHECKING(if this is really Clang ifelse([$1],GXX,C++,C) compiler)
1624 cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
1630 ],[ifelse([$2],,CLANG_COMPILER,[$2])=yes
1632 ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
1633 AC_MSG_RESULT($ifelse([$2],,CLANG_COMPILER,[$2]))
1638 if test "x$ifelse([$2],,CLANG_COMPILER,[$2])" = "xyes" ; then
1640 (c[[1-9]][[0-9]]|*/c[[1-9]][[0-9]])
1641 AC_MSG_WARN(replacing broken compiler alias $CC)
1642 CFLAGS="$CFLAGS -std=`echo "$CC" | sed -e 's%.*/%%'`"
1647 AC_MSG_CHECKING(version of $CC)
1648 CLANG_VERSION="`$CC --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(CLANG[[^)]]*) //' -e 's/^.*(Debian[[^)]]*) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
1649 test -z "$CLANG_VERSION" && CLANG_VERSION=unknown
1650 AC_MSG_RESULT($CLANG_VERSION)
1652 for cf_clang_opt in \
1653 -Qunused-arguments \
1654 -Wno-error=implicit-function-declaration
1656 AC_MSG_CHECKING(if option $cf_clang_opt works)
1657 cf_save_CFLAGS="$CFLAGS"
1658 CFLAGS="$CFLAGS $cf_clang_opt"
1660 #include <stdio.h>],[
1661 printf("hello!\\n");],[
1662 cf_clang_optok=yes],[
1664 AC_MSG_RESULT($cf_clang_optok)
1665 CFLAGS="$cf_save_CFLAGS"
1666 if test "$cf_clang_optok" = yes; then
1667 CF_VERBOSE(adding option $cf_clang_opt)
1668 CF_APPEND_TEXT(CFLAGS,$cf_clang_opt)
1673 dnl ---------------------------------------------------------------------------
1674 dnl CF_CONST_X_STRING version: 7 updated: 2021/06/07 17:39:17
1675 dnl -----------------
1676 dnl The X11R4-X11R6 Xt specification uses an ambiguous String type for most
1677 dnl character-strings.
1679 dnl It is ambiguous because the specification accommodated the pre-ANSI
1680 dnl compilers bundled by more than one vendor in lieu of providing a standard C
1681 dnl compiler other than by costly add-ons. Because of this, the specification
1682 dnl did not take into account the use of const for telling the compiler that
1683 dnl string literals would be in readonly memory.
1685 dnl As a workaround, one could (starting with X11R5) define XTSTRINGDEFINES, to
1686 dnl let the compiler decide how to represent Xt's strings which were #define'd.
1687 dnl That does not solve the problem of using the block of Xt's strings which
1688 dnl are compiled into the library (and is less efficient than one might want).
1690 dnl Xt specification 7 introduces the _CONST_X_STRING symbol which is used both
1691 dnl when compiling the library and compiling using the library, to tell the
1692 dnl compiler that String is const.
1693 AC_DEFUN([CF_CONST_X_STRING],
1695 AC_REQUIRE([AC_PATH_XTRA])
1697 CF_SAVE_XTRA_FLAGS([CF_CONST_X_STRING])
1702 #include <X11/Intrinsic.h>
1704 [String foo = malloc(1); free((void*)foo)],[
1706 AC_CACHE_CHECK(for X11/Xt const-feature,cf_cv_const_x_string,[
1709 #define _CONST_X_STRING /* X11R7.8 (perhaps) */
1710 #undef XTSTRINGDEFINES /* X11R5 and later */
1712 #include <X11/Intrinsic.h>
1713 ],[String foo = malloc(1); *foo = 0],[
1714 cf_cv_const_x_string=no
1716 cf_cv_const_x_string=yes
1720 CF_RESTORE_XTRA_FLAGS([CF_CONST_X_STRING])
1722 case "$cf_cv_const_x_string" in
1724 CF_APPEND_TEXT(CPPFLAGS,-DXTSTRINGDEFINES)
1727 CF_APPEND_TEXT(CPPFLAGS,-D_CONST_X_STRING)
1733 dnl ---------------------------------------------------------------------------
1734 dnl CF_CPP_OVERRIDE version: 1 updated: 2022/08/20 16:07:10
1736 dnl Check if the C++ compiler accepts the override keyword. This is a C++-11
1738 AC_DEFUN([CF_CPP_OVERRIDE],
1740 if test -n "$CXX"; then
1741 AC_CACHE_CHECK(if $CXX accepts override keyword,cf_cv_cpp_override,[
1749 virtual int foo(float x) = 0;
1753 class derived: public base
1756 int foo(float x) override { return x != 0.0 ? 1 : 0; }
1761 [cf_cv_cpp_override=yes],
1762 [cf_cv_cpp_override=no],
1763 [cf_cv_cpp_override=unknown])
1767 test "$cf_cv_cpp_override" = yes && AC_DEFINE(CPP_HAS_OVERRIDE,1,[Define to 1 if C++ has override keyword])
1769 dnl ---------------------------------------------------------------------------
1770 dnl CF_CPP_PARAM_INIT version: 7 updated: 2017/01/21 11:06:25
1771 dnl -----------------
1772 dnl Check if the C++ compiler accepts duplicate parameter initialization. This
1773 dnl is a late feature for the standard and is not in some recent compilers
1775 AC_DEFUN([CF_CPP_PARAM_INIT],
1777 if test -n "$CXX"; then
1778 AC_CACHE_CHECK(if $CXX accepts parameter initialization,cf_cv_cpp_param_init,[
1790 TEST::TEST(int x = 1) // some compilers do not like second initializer
1796 [cf_cv_cpp_param_init=yes],
1797 [cf_cv_cpp_param_init=no],
1798 [cf_cv_cpp_param_init=unknown])
1802 test "$cf_cv_cpp_param_init" = yes && AC_DEFINE(CPP_HAS_PARAM_INIT,1,[Define to 1 if C++ has parameter initialization])
1804 dnl ---------------------------------------------------------------------------
1805 dnl CF_CPP_STATIC_CAST version: 3 updated: 2013/04/13 18:03:21
1806 dnl ------------------
1807 dnl Check if the C++ compiler accepts static_cast in generics. This appears to
1808 dnl not be supported in g++ before 3.0
1809 AC_DEFUN([CF_CPP_STATIC_CAST],
1811 if test -n "$CXX"; then
1813 AC_CACHE_CHECK(if $CXX accepts static_cast,cf_cv_cpp_static_cast,[
1821 NCursesPanel(int nlines,
1831 template<class T> class NCursesUserPanel : public NCursesPanel
1834 NCursesUserPanel (int nlines,
1838 const T* p_UserData = static_cast<T*>(0))
1839 : NCursesPanel (nlines, ncols, begin_y, begin_x)
1842 NCursesUserPanel(const T* p_UserData = static_cast<T*>(0)) : NCursesPanel()
1846 virtual ~NCursesUserPanel() {};
1849 const char* p_UserData = static_cast<char*>(0)],
1850 [cf_cv_cpp_static_cast=yes],
1851 [cf_cv_cpp_static_cast=no])
1858 test "$cf_cv_cpp_static_cast" = yes && AC_DEFINE(CPP_HAS_STATIC_CAST,1,[Define to 1 if C++ has static_cast])
1860 dnl ---------------------------------------------------------------------------
1861 dnl CF_CXX_AR_FLAGS version: 3 updated: 2021/01/01 13:31:04
1863 dnl Setup special archiver flags for given compilers.
1864 AC_DEFUN([CF_CXX_AR_FLAGS],[
1866 CXX_ARFLAGS='$(ARFLAGS)'
1867 case "$cf_cv_system_name" in
1869 if test "$GXX" != yes ; then
1871 CXX_ARFLAGS='-ar -o'
1875 CXXLDFLAGS="-u main"
1878 if test "$GXX" != yes ; then
1880 CXX_ARFLAGS='-xar -o'
1884 AC_SUBST(CXXLDFLAGS)
1886 AC_SUBST(CXX_ARFLAGS)
1888 dnl ---------------------------------------------------------------------------
1889 dnl CF_CXX_IOSTREAM_NAMESPACE version: 2 updated: 2012/10/06 17:56:13
1890 dnl -------------------------
1891 dnl For c++, check if iostream uses "std::" namespace.
1892 AC_DEFUN([CF_CXX_IOSTREAM_NAMESPACE],[
1893 AC_CHECK_HEADERS(iostream)
1894 if test x"$ac_cv_header_iostream" = xyes ; then
1895 AC_MSG_CHECKING(if iostream uses std-namespace)
1900 cerr << "testing" << endl;
1901 ],[cf_iostream_namespace=yes],[cf_iostream_namespace=no])
1902 AC_MSG_RESULT($cf_iostream_namespace)
1903 if test "$cf_iostream_namespace" = yes ; then
1904 AC_DEFINE(IOSTREAM_NAMESPACE,1,[Define to 1 if C++ has namespace iostream])
1908 dnl ---------------------------------------------------------------------------
1909 dnl CF_C_INLINE version: 6 updated: 2019/09/07 13:38:36
1911 dnl Check if the C compiler supports "inline".
1912 dnl $1 is the name of a shell variable to set if inline is supported
1913 dnl $2 is the threshold for gcc 4.x's option controlling maximum inline size
1914 AC_DEFUN([CF_C_INLINE],[
1915 AC_REQUIRE([CF_GCC_VERSION])
1918 if test "$ac_cv_c_inline" != no ; then
1920 if test "$INTEL_COMPILER" = yes
1923 elif test "$CLANG_COMPILER" = yes
1926 elif test "$GCC" = yes
1928 AC_CACHE_CHECK(if $CC supports options to tune inlining,cf_cv_gcc_inline,[
1929 cf_save_CFLAGS=$CFLAGS
1930 CFLAGS="$CFLAGS --param max-inline-insns-single=$2"
1931 AC_TRY_COMPILE([inline int foo(void) { return 1; }],
1932 [${cf_cv_main_return:-return} foo()],
1933 [cf_cv_gcc_inline=yes],
1934 [cf_cv_gcc_inline=no])
1935 CFLAGS=$cf_save_CFLAGS
1937 if test "$cf_cv_gcc_inline" = yes ; then
1938 CF_ADD_CFLAGS([--param max-inline-insns-single=$2])
1944 dnl ---------------------------------------------------------------------------
1945 dnl CF_DIRNAME version: 5 updated: 2020/12/31 20:19:42
1947 dnl "dirname" is not portable, so we fake it with a shell script.
1948 AC_DEFUN([CF_DIRNAME],[$1=`echo "$2" | sed -e 's%/[[^/]]*$%%'`])dnl
1949 dnl ---------------------------------------------------------------------------
1950 dnl CF_DIRS_TO_MAKE version: 4 updated: 2021/01/01 13:31:04
1952 AC_DEFUN([CF_DIRS_TO_MAKE],
1955 for cf_item in $cf_list_models
1957 CF_OBJ_SUBDIR($cf_item,cf_subdir)
1958 for cf_item2 in $DIRS_TO_MAKE
1960 test "$cf_item2" = "$cf_subdir" && break
1962 test ".$cf_item2" != ".$cf_subdir" && DIRS_TO_MAKE="$DIRS_TO_MAKE $cf_subdir"
1964 for cf_dir in $DIRS_TO_MAKE
1966 test ! -d "$cf_dir" && mkdir "$cf_dir"
1968 AC_SUBST(DIRS_TO_MAKE)
1970 dnl ---------------------------------------------------------------------------
1971 dnl CF_DISABLE_ECHO version: 14 updated: 2021/09/04 06:35:04
1973 dnl You can always use "make -n" to see the actual options, but it is hard to
1974 dnl pick out/analyze warning messages when the compile-line is long.
1977 dnl ECHO_LT - symbol to control if libtool is verbose
1978 dnl ECHO_LD - symbol to prefix "cc -o" lines
1979 dnl RULE_CC - symbol to put before implicit "cc -c" lines (e.g., .c.o)
1980 dnl SHOW_CC - symbol to put before explicit "cc -c" lines
1981 dnl ECHO_CC - symbol to put before any "cc" line
1983 AC_DEFUN([CF_DISABLE_ECHO],[
1984 AC_MSG_CHECKING(if you want to see long compiling messages)
1985 CF_ARG_DISABLE(echo,
1986 [ --disable-echo do not display "compiling" commands],
1989 ECHO_LD='@echo linking [$]@;'
1990 RULE_CC='@echo compiling [$]<'
1991 SHOW_CC='@echo compiling [$]@'
2000 AC_MSG_RESULT($enableval)
2007 dnl ---------------------------------------------------------------------------
2008 dnl CF_DISABLE_GNAT_PROJECTS version: 1 updated: 2014/06/01 11:34:00
2009 dnl ------------------------
2010 AC_DEFUN([CF_DISABLE_GNAT_PROJECTS],[
2011 AC_MSG_CHECKING(if we want to use GNAT projects)
2012 CF_ARG_DISABLE(gnat-projects,
2013 [ --disable-gnat-projects test: disable GNAT projects even if usable],
2014 [enable_gnat_projects=no],
2015 [enable_gnat_projects=yes])
2016 AC_MSG_RESULT($enable_gnat_projects)
2018 dnl ---------------------------------------------------------------------------
2019 dnl CF_DISABLE_LEAKS version: 9 updated: 2021/04/03 16:41:50
2020 dnl ----------------
2021 dnl Combine no-leak checks with the libraries or tools that are used for the
2023 AC_DEFUN([CF_DISABLE_LEAKS],[
2025 AC_REQUIRE([CF_WITH_DMALLOC])
2026 AC_REQUIRE([CF_WITH_DBMALLOC])
2027 AC_REQUIRE([CF_WITH_VALGRIND])
2029 AC_MSG_CHECKING(if you want to perform memory-leak testing)
2030 AC_ARG_ENABLE(leaks,
2031 [ --disable-leaks test: free permanent memory, analyze leaks],
2032 [enable_leaks=$enableval],
2034 dnl with_no_leaks is more readable...
2035 if test "x$enable_leaks" = xno; then with_no_leaks=yes; else with_no_leaks=no; fi
2036 AC_MSG_RESULT($with_no_leaks)
2038 if test "$enable_leaks" = no ; then
2039 AC_DEFINE(NO_LEAKS,1,[Define to 1 if you want to perform memory-leak testing.])
2040 AC_DEFINE(YY_NO_LEAKS,1,[Define to 1 if you want to perform memory-leak testing.])
2043 dnl ---------------------------------------------------------------------------
2044 dnl CF_DISABLE_LIBTOOL_VERSION version: 3 updated: 2015/04/17 21:13:04
2045 dnl --------------------------
2046 dnl Check if we should use the libtool 1.5 feature "-version-number" instead of
2047 dnl the older "-version-info" feature. The newer feature allows us to use
2048 dnl version numbering on shared libraries which make them compatible with
2049 dnl various systems.
2050 AC_DEFUN([CF_DISABLE_LIBTOOL_VERSION],
2052 AC_MSG_CHECKING(if libtool -version-number should be used)
2053 CF_ARG_DISABLE(libtool-version,
2054 [ --disable-libtool-version enable to use libtool's incompatible naming scheme],
2055 [cf_libtool_version=no],
2056 [cf_libtool_version=yes])
2057 AC_MSG_RESULT($cf_libtool_version)
2059 if test "$cf_libtool_version" = yes ; then
2060 LIBTOOL_VERSION="-version-number"
2062 LIBTOOL_VERSION="-version-info"
2065 AC_MSG_WARN(VERSION was not set)
2068 ABI_VERSION="$VERSION"
2069 CF_VERBOSE(ABI_VERSION: $ABI_VERSION)
2072 ABI_VERSION=`echo "$VERSION" | sed -e 's/:/./g'`
2073 CF_VERBOSE(ABI_VERSION: $ABI_VERSION)
2076 AC_MSG_WARN(unexpected VERSION value: $VERSION)
2081 AC_SUBST(ABI_VERSION)
2082 AC_SUBST(LIBTOOL_VERSION)
2084 dnl ---------------------------------------------------------------------------
2085 dnl CF_DISABLE_RPATH_HACK version: 3 updated: 2021/01/05 20:14:44
2086 dnl ---------------------
2087 dnl The rpath-hack makes it simpler to build programs, particularly with the
2088 dnl *BSD ports which may have essential libraries in unusual places. But it
2089 dnl can interfere with building an executable for the base system. Use this
2090 dnl option in that case.
2091 AC_DEFUN([CF_DISABLE_RPATH_HACK],
2093 AC_MSG_CHECKING(if rpath-hack should be disabled)
2094 CF_ARG_DISABLE(rpath-hack,
2095 [ --disable-rpath-hack don't add rpath options for additional libraries],
2096 [enable_rpath_hack=no],
2097 [enable_rpath_hack=yes])
2098 dnl TODO - drop cf_disable_rpath_hack
2099 if test "x$enable_rpath_hack" = xno; then cf_disable_rpath_hack=yes; else cf_disable_rpath_hack=no; fi
2100 AC_MSG_RESULT($cf_disable_rpath_hack)
2102 if test "$enable_rpath_hack" = yes ; then
2106 dnl ---------------------------------------------------------------------------
2107 dnl CF_ENABLE_BROKEN_LINKER version: 2 updated: 2021/01/02 17:09:14
2108 dnl -----------------------
2109 dnl Some linkers cannot reference a data-only object. Cygwin used to be one.
2110 dnl This usually follows CF_LINK_DATAONLY, but is not required in case we need
2111 dnl an unconditional feature.
2112 AC_DEFUN([CF_ENABLE_BROKEN_LINKER],[
2114 AC_MSG_CHECKING(if you want broken-linker support code)
2115 AC_ARG_ENABLE(broken_linker,
2116 [ --enable-broken_linker compile with broken-linker support code],
2117 [with_broken_linker=$enableval],
2118 [with_broken_linker=no])
2119 AC_MSG_RESULT($with_broken_linker)
2121 : "${BROKEN_LINKER:=0}"
2122 if test "x$with_broken_linker" = xyes ; then
2123 AC_DEFINE(BROKEN_LINKER,1,[Define to 1 to work around linkers which cannot link data-only modules])
2126 AC_SUBST(BROKEN_LINKER)
2128 dnl ---------------------------------------------------------------------------
2129 dnl CF_ENABLE_PC_FILES version: 16 updated: 2021/11/20 12:48:37
2130 dnl ------------------
2131 dnl This is the "--enable-pc-files" option, which is available if there is a
2132 dnl pkg-config configuration on the local machine.
2133 AC_DEFUN([CF_ENABLE_PC_FILES],[
2134 AC_REQUIRE([CF_PKG_CONFIG])
2135 AC_REQUIRE([CF_WITH_PKG_CONFIG_LIBDIR])
2137 if test "x$PKG_CONFIG" != xnone
2139 AC_MSG_CHECKING(if we should install .pc files for $PKG_CONFIG)
2141 AC_MSG_CHECKING(if we should install .pc files)
2144 AC_ARG_ENABLE(pc-files,
2145 [ --enable-pc-files generate and install .pc files for pkg-config],
2146 [enable_pc_files=$enableval],
2147 [enable_pc_files=no])
2148 AC_MSG_RESULT($enable_pc_files)
2150 if test "x$enable_pc_files" != xno
2153 case "x$PKG_CONFIG_LIBDIR" in
2155 AC_MSG_WARN(no PKG_CONFIG_LIBDIR was found)
2158 cf_pkg_config_libdir="$PKG_CONFIG_LIBDIR"
2159 CF_PATH_SYNTAX(cf_pkg_config_libdir)
2165 AC_SUBST(MAKE_PC_FILES)
2167 dnl ---------------------------------------------------------------------------
2168 dnl CF_ENABLE_RPATH version: 2 updated: 2010/03/27 18:39:42
2170 dnl Check if the rpath option should be used, setting cache variable
2171 dnl cf_cv_enable_rpath if so.
2172 AC_DEFUN([CF_ENABLE_RPATH],
2174 AC_MSG_CHECKING(if rpath option should be used)
2175 AC_ARG_ENABLE(rpath,
2176 [ --enable-rpath use rpath option when generating shared libraries],
2177 [cf_cv_enable_rpath=$enableval],
2178 [cf_cv_enable_rpath=no])
2179 AC_MSG_RESULT($cf_cv_enable_rpath)
2181 dnl ---------------------------------------------------------------------------
2182 dnl CF_ENABLE_STRING_HACKS version: 6 updated: 2021/01/05 19:23:48
2183 dnl ----------------------
2184 dnl On a few platforms, the compiler and/or loader nags with untruthful
2185 dnl comments stating that "most" uses of strcat/strcpy/sprintf are incorrect,
2186 dnl and implying that most uses of the recommended alternatives are correct.
2188 dnl Factually speaking, no one has actually counted the number of uses of these
2189 dnl functions versus the total of incorrect uses. Samples of a few thousand
2190 dnl instances are meaningless compared to the hundreds of millions of lines of
2191 dnl existing C code.
2193 dnl strlcat/strlcpy are (as of 2012) non-standard, and are available on some
2194 dnl platforms, in implementations of varying quality. Likewise, snprintf is
2195 dnl standard - but evolved through phases, and older implementations are likely
2196 dnl to yield surprising results, as documented in manpages on various systems.
2197 AC_DEFUN([CF_ENABLE_STRING_HACKS],
2199 AC_MSG_CHECKING(if you want to work around bogus compiler/loader warnings)
2200 AC_ARG_ENABLE(string-hacks,
2201 [ --enable-string-hacks work around bogus compiler/loader warnings],
2202 [enable_string_hacks=$enableval],
2203 [enable_string_hacks=no])
2204 AC_MSG_RESULT($enable_string_hacks)
2206 if test "x$enable_string_hacks" = "xyes"; then
2207 AC_DEFINE(USE_STRING_HACKS,1,[Define to 1 to work around bogus compiler/loader warnings])
2208 AC_MSG_WARN(enabling string-hacks to work around bogus compiler/loader warnings)
2209 AC_CHECK_FUNC(strlcat,[
2210 AC_DEFINE(HAVE_STRLCAT,1,[Define to 1 if we have strlcat function])
2212 AC_CHECK_LIB(bsd,strlcat,[
2214 AC_CHECK_HEADERS(bsd/string.h)
2215 AC_DEFINE(HAVE_STRLCAT,1,[Define to 1 if we have strlcat function])
2218 AC_CHECK_FUNCS( strlcpy snprintf )
2221 dnl ---------------------------------------------------------------------------
2222 dnl CF_ENABLE_WARNINGS version: 9 updated: 2021/01/05 19:40:50
2223 dnl ------------------
2224 dnl Configure-option to enable gcc warnings
2226 dnl $1 = extra options to add, if supported
2227 dnl $2 = option for checking attributes. By default, this is done when
2228 dnl warnings are enabled. For other values:
2229 dnl yes: always do this, e.g., to use in generated library-headers
2230 dnl no: never do this
2231 AC_DEFUN([CF_ENABLE_WARNINGS],[
2232 if test "$GCC" = yes || test "$GXX" = yes
2234 CF_FIX_WARNINGS(CFLAGS)
2235 CF_FIX_WARNINGS(CPPFLAGS)
2236 CF_FIX_WARNINGS(LDFLAGS)
2237 AC_MSG_CHECKING(if you want to turn on gcc warnings)
2238 CF_ARG_ENABLE(warnings,
2239 [ --enable-warnings test: turn on gcc compiler warnings],
2240 [enable_warnings=yes],
2241 [enable_warnings=no])
2242 AC_MSG_RESULT($enable_warnings)
2243 if test "$enable_warnings" = "yes"
2245 ifelse($2,,[CF_GCC_ATTRIBUTES])
2248 ifelse($2,yes,[CF_GCC_ATTRIBUTES])
2251 dnl ---------------------------------------------------------------------------
2252 dnl CF_ERRNO version: 5 updated: 1997/11/30 12:44:39
2254 dnl Check if 'errno' is declared in <errno.h>
2255 AC_DEFUN([CF_ERRNO],
2257 CF_CHECK_ERRNO(errno)
2259 dnl ---------------------------------------------------------------------------
2260 dnl CF_ETIP_DEFINES version: 6 updated: 2021/01/02 17:09:14
2262 dnl Test for conflicting definitions of exception in gcc 2.8.0, etc., between
2263 dnl math.h and builtin.h, only for ncurses
2264 AC_DEFUN([CF_ETIP_DEFINES],
2266 AC_MSG_CHECKING(for special defines needed for etip.h)
2267 cf_save_CXXFLAGS="$CXXFLAGS"
2270 # etip.h includes ncurses.h which includes ncurses_dll.h
2271 # But ncurses_dll.h is generated - fix here.
2272 test -d include || mkdir include
2273 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
2275 for cf_math in "" MATH_H
2277 for cf_excp in "" MATH_EXCEPTION
2279 CXXFLAGS="$cf_save_CXXFLAGS -I${srcdir}/c++ -I${srcdir}/menu -Iinclude -I${srcdir}/include"
2280 test -n "$cf_math" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_math}"
2281 test -n "$cf_excp" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_excp}"
2283 #include <etip.h.in>
2285 test -n "$cf_math" && AC_DEFINE_UNQUOTED(ETIP_NEEDS_${cf_math})
2286 test -n "$cf_excp" && AC_DEFINE_UNQUOTED(ETIP_NEEDS_${cf_excp})
2287 cf_result="$cf_math $cf_excp"
2292 AC_MSG_RESULT($cf_result)
2293 CXXFLAGS="$cf_save_CXXFLAGS"
2295 dnl ---------------------------------------------------------------------------
2296 dnl CF_FIND_LINKAGE version: 22 updated: 2020/12/31 20:19:42
2298 dnl Find a library (specifically the linkage used in the code fragment),
2299 dnl searching for it if it is not already in the library path.
2300 dnl See also CF_ADD_SEARCHPATH.
2302 dnl Parameters (4-on are optional):
2303 dnl $1 = headers for library entrypoint
2304 dnl $2 = code fragment for library entrypoint
2305 dnl $3 = the library name without the "-l" option or ".so" suffix.
2306 dnl $4 = action to perform if successful (default: update CPPFLAGS, etc)
2307 dnl $5 = action to perform if not successful
2308 dnl $6 = module name, if not the same as the library name
2309 dnl $7 = extra libraries
2311 dnl Sets these variables:
2312 dnl $cf_cv_find_linkage_$3 - yes/no according to whether linkage is found
2313 dnl $cf_cv_header_path_$3 - include-directory if needed
2314 dnl $cf_cv_library_path_$3 - library-directory if needed
2315 dnl $cf_cv_library_file_$3 - library-file if needed, e.g., -l$3
2316 AC_DEFUN([CF_FIND_LINKAGE],[
2318 # If the linkage is not already in the $CPPFLAGS/$LDFLAGS configuration, these
2319 # will be set on completion of the AC_TRY_LINK below.
2320 cf_cv_header_path_$3=
2321 cf_cv_library_path_$3=
2323 CF_MSG_LOG([Starting [FIND_LINKAGE]($3,$6)])
2325 cf_save_LIBS="$LIBS"
2327 AC_TRY_LINK([$1],[$2],[
2328 cf_cv_find_linkage_$3=yes
2329 cf_cv_header_path_$3=/usr/include
2330 cf_cv_library_path_$3=/usr/lib
2333 LIBS="-l$3 $7 $cf_save_LIBS"
2335 AC_TRY_LINK([$1],[$2],[
2336 cf_cv_find_linkage_$3=yes
2337 cf_cv_header_path_$3=/usr/include
2338 cf_cv_library_path_$3=/usr/lib
2339 cf_cv_library_file_$3="-l$3"
2341 cf_cv_find_linkage_$3=no
2342 LIBS="$cf_save_LIBS"
2344 CF_VERBOSE(find linkage for $3 library)
2345 CF_MSG_LOG([Searching for headers in [FIND_LINKAGE]($3,$6)])
2347 cf_save_CPPFLAGS="$CPPFLAGS"
2348 cf_test_CPPFLAGS="$CPPFLAGS"
2350 CF_HEADER_PATH(cf_search,ifelse([$6],,[$3],[$6]))
2351 for cf_cv_header_path_$3 in $cf_search
2353 if test -d "$cf_cv_header_path_$3" ; then
2354 CF_VERBOSE(... testing $cf_cv_header_path_$3)
2355 CPPFLAGS="$cf_save_CPPFLAGS"
2356 CF_APPEND_TEXT(CPPFLAGS,-I$cf_cv_header_path_$3)
2357 AC_TRY_COMPILE([$1],[$2],[
2358 CF_VERBOSE(... found $3 headers in $cf_cv_header_path_$3)
2359 cf_cv_find_linkage_$3=maybe
2360 cf_test_CPPFLAGS="$CPPFLAGS"
2362 CPPFLAGS="$cf_save_CPPFLAGS"
2367 if test "$cf_cv_find_linkage_$3" = maybe ; then
2369 CF_MSG_LOG([Searching for $3 library in [FIND_LINKAGE]($3,$6)])
2371 cf_save_LIBS="$LIBS"
2372 cf_save_LDFLAGS="$LDFLAGS"
2375 CPPFLAGS="$cf_test_CPPFLAGS"
2376 LIBS="-l$3 $7 $cf_save_LIBS"
2377 AC_TRY_LINK([$1],[$2],[
2378 CF_VERBOSE(... found $3 library in system)
2379 cf_cv_find_linkage_$3=yes])
2380 CPPFLAGS="$cf_save_CPPFLAGS"
2381 LIBS="$cf_save_LIBS"
2384 if test "$cf_cv_find_linkage_$3" != yes ; then
2385 CF_LIBRARY_PATH(cf_search,$3)
2386 for cf_cv_library_path_$3 in $cf_search
2388 if test -d "$cf_cv_library_path_$3" ; then
2389 CF_VERBOSE(... testing $cf_cv_library_path_$3)
2390 CPPFLAGS="$cf_test_CPPFLAGS"
2391 LIBS="-l$3 $7 $cf_save_LIBS"
2392 LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_$3"
2393 AC_TRY_LINK([$1],[$2],[
2394 CF_VERBOSE(... found $3 library in $cf_cv_library_path_$3)
2395 cf_cv_find_linkage_$3=yes
2396 cf_cv_library_file_$3="-l$3"
2398 CPPFLAGS="$cf_save_CPPFLAGS"
2399 LIBS="$cf_save_LIBS"
2400 LDFLAGS="$cf_save_LDFLAGS"
2404 CPPFLAGS="$cf_save_CPPFLAGS"
2405 LDFLAGS="$cf_save_LDFLAGS"
2409 cf_cv_find_linkage_$3=no
2414 LIBS="$cf_save_LIBS"
2416 if test "$cf_cv_find_linkage_$3" = yes ; then
2418 CF_ADD_INCDIR($cf_cv_header_path_$3)
2419 CF_ADD_LIBDIR($cf_cv_library_path_$3)
2423 ifelse([$5],,AC_MSG_WARN(Cannot find $3 library),[$5])
2426 dnl ---------------------------------------------------------------------------
2427 dnl CF_FIND_SUB_INCDIR version: 3 updated: 2021/01/01 13:31:04
2428 dnl ------------------
2429 dnl Find an include-directory with the given leaf-name. This is useful for
2430 dnl example with FreeBSD ports, which use this convention to distinguish
2431 dnl different versions of the same port.
2432 AC_DEFUN([CF_FIND_SUB_INCDIR],[
2433 CF_SUBDIR_PATH(cf_search,$1,include)
2434 for cf_item in $cf_search
2438 CF_ADD_INCDIR($cf_item)
2443 dnl ---------------------------------------------------------------------------
2444 dnl CF_FIND_SUB_LIBDIR version: 3 updated: 2021/01/01 13:31:04
2445 dnl ------------------
2446 dnl Find a library-directory with the given leaf-name. This is useful for
2447 dnl example with FreeBSD ports, which use this convention to distinguish
2448 dnl different versions of the same port.
2449 AC_DEFUN([CF_FIND_SUB_LIBDIR],[
2450 CF_SUBDIR_PATH(cf_search,$1,lib)
2451 for cf_item in $cf_search
2455 CF_ADD_LIBDIR($cf_item)
2460 dnl ---------------------------------------------------------------------------
2461 dnl CF_FIXUP_ADAFLAGS version: 2 updated: 2015/04/17 21:13:04
2462 dnl -----------------
2463 dnl make ADAFLAGS consistent with CFLAGS
2464 AC_DEFUN([CF_FIXUP_ADAFLAGS],[
2465 AC_MSG_CHECKING(optimization options for ADAFLAGS)
2473 cf_O_flag=`echo "$CFLAGS" |sed -e 's/^.*-O/-O/' -e 's/[[ ]].*//'`
2474 CF_ADD_ADAFLAGS($cf_O_flag)
2477 AC_MSG_RESULT($ADAFLAGS)
2479 dnl ---------------------------------------------------------------------------
2480 dnl CF_FIX_WARNINGS version: 4 updated: 2021/12/16 18:22:31
2482 dnl Warning flags do not belong in CFLAGS, CPPFLAGS, etc. Any of gcc's
2483 dnl "-Werror" flags can interfere with configure-checks. Those go into
2486 dnl $1 = variable name to repair
2487 define([CF_FIX_WARNINGS],[
2488 if test "$GCC" = yes || test "$GXX" = yes
2493 for cf_temp_scan in [$]$1
2495 case "x$cf_temp_scan" in
2497 CF_APPEND_TEXT(cf_temp_flags,$cf_temp_scan)
2500 CF_APPEND_TEXT(EXTRA_CFLAGS,$cf_temp_scan)
2503 CF_APPEND_TEXT(cf_temp_flags,$cf_temp_scan)
2507 if test "x[$]$1" != "x$cf_temp_flags"
2509 CF_VERBOSE(repairing $1: [$]$1)
2511 CF_VERBOSE(... fixed [$]$1)
2512 CF_VERBOSE(... extra $EXTRA_CFLAGS)
2517 AC_SUBST(EXTRA_CFLAGS)
2519 dnl ---------------------------------------------------------------------------
2520 dnl CF_FOPEN_BIN_R version: 2 updated: 2019/12/31 08:53:54
2522 dnl Check if fopen works when the "b" (binary) flag is added to the mode
2523 dnl parameter. POSIX ignores the "b", which c89 specified. Some very old
2524 dnl systems do not accept it.
2525 AC_DEFUN([CF_FOPEN_BIN_R],[
2526 AC_CACHE_CHECK(if fopen accepts explicit binary mode,cf_cv_fopen_bin_r,[
2530 FILE *fp = fopen("conftest.tmp", "wb");
2534 for (p = 0; p < 256; ++p) {
2538 fp = fopen("conftest.tmp", "rb");
2540 for (p = 0; p < 256; ++p) {
2553 ${cf_cv_main_return:-return} (rc);
2556 [cf_cv_fopen_bin_r=yes],
2557 [cf_cv_fopen_bin_r=no],
2558 [cf_cv_fopen_bin_r=unknown])
2560 test "x$cf_cv_fopen_bin_r" != xno && AC_DEFINE(USE_FOPEN_BIN_R,1,[Define to 1 if fopen accepts explicit binary mode])
2562 dnl ---------------------------------------------------------------------------
2563 dnl CF_FORGET_TOOL version: 1 updated: 2013/04/06 18:03:09
2565 dnl Forget that we saw the given tool.
2566 AC_DEFUN([CF_FORGET_TOOL],[
2567 unset ac_cv_prog_ac_ct_$1
2571 dnl ---------------------------------------------------------------------------
2572 dnl CF_FUNC_DLSYM version: 4 updated: 2015/09/12 14:46:44
2574 dnl Test for dlsym() and related functions, as well as libdl.
2579 AC_DEFUN([CF_FUNC_DLSYM],[
2581 AC_CHECK_FUNC(dlsym,cf_have_dlsym=yes,[
2584 AC_CHECK_LIB(dl,dlsym,[
2586 cf_have_libdl=yes])])
2588 if test "$cf_have_dlsym" = yes ; then
2589 test "$cf_have_libdl" = yes && { CF_ADD_LIB(dl) }
2591 AC_MSG_CHECKING(whether able to link to dl*() functions)
2592 AC_TRY_LINK([#include <dlfcn.h>],[
2594 if ((obj = dlopen("filename", 0)) != 0) {
2595 if (dlsym(obj, "symbolname") == 0) {
2599 AC_DEFINE(HAVE_LIBDL,1,[Define to 1 if we have dl library])],[
2600 AC_MSG_ERROR(Cannot link test program for libdl)])
2603 AC_MSG_ERROR(Cannot find dlsym function)
2606 dnl ---------------------------------------------------------------------------
2607 dnl CF_FUNC_GETTTYNAM version: 1 updated: 2021/12/04 18:29:47
2608 dnl -----------------
2609 dnl Check if the 4.3BSD function getttyname exists, as well as if <ttyent.h>
2610 dnl defines the _PATH_TTYS symbol. If the corresponding file exists, but the
2611 dnl other checks fail, just define HAVE_PATH_TTYS.
2612 AC_DEFUN([CF_FUNC_GETTTYNAM],[
2613 AC_CACHE_CHECK(if _PATH_TTYS is defined in ttyent.h,cf_cv_PATH_TTYS,[
2616 #include <ttyent.h>],[
2617 FILE *fp = fopen(_PATH_TTYS, "r"); (void)fp],
2618 [cf_cv_PATH_TTYS=yes],
2619 [cf_cv_PATH_TTYS=no])])
2621 if test $cf_cv_PATH_TTYS = no
2623 for cf_ttys in /etc/ttytype /etc/ttys
2627 cf_cv_PATH_TTYS=maybe
2628 AC_DEFINE(_PATH_TTYS,$cf_ttys,[define to pathname of file containing mapping from tty name to terminal type])
2634 if test $cf_cv_PATH_TTYS != no
2636 AC_CACHE_CHECK(if _PATH_TTYS file exists,cf_cv_have_PATH_TTYS,[
2641 FILE *fp = fopen(_PATH_TTYS, "r");
2642 ${cf_cv_main_return:-return} (fp == 0);
2644 [cf_cv_have_PATH_TTYS=yes],
2645 [cf_cv_have_PATH_TTYS=no],
2646 [cf_cv_have_PATH_TTYS=unknown])])
2647 test "$cf_cv_have_PATH_TTYS" = no && cf_cv_PATH_TTYS=no
2650 if test $cf_cv_PATH_TTYS != no
2652 AC_DEFINE(HAVE_PATH_TTYS,1,[define to 1 if system can map tty name to terminal type])
2653 AC_CACHE_CHECK(for getttynam,cf_cv_func_getttynam,[
2654 AC_TRY_LINK([#include <ttyent.h>],
2655 [struct ttyent *fp = getttynam("/dev/tty"); (void)fp],
2656 [cf_cv_func_getttynam=yes],
2657 [cf_cv_func_getttynam=no])])
2658 test "$cf_cv_func_getttynam" = yes && AC_DEFINE(HAVE_GETTTYNAM)
2661 dnl ---------------------------------------------------------------------------
2662 dnl CF_FUNC_MEMMOVE version: 9 updated: 2017/01/21 11:06:25
2664 dnl Check for memmove, or a bcopy that can handle overlapping copy. If neither
2665 dnl is found, add our own version of memmove to the list of objects.
2666 AC_DEFUN([CF_FUNC_MEMMOVE],
2668 AC_CHECK_FUNC(memmove,,[
2669 AC_CHECK_FUNC(bcopy,[
2670 AC_CACHE_CHECK(if bcopy does overlapping moves,cf_cv_good_bcopy,[
2673 static char data[] = "abcdefghijklmnopqrstuwwxyz";
2675 bcopy(data, temp, sizeof(data));
2676 bcopy(temp+10, temp, 15);
2677 bcopy(temp+5, temp+15, 10);
2678 ${cf_cv_main_return:-return} (strcmp(temp, "klmnopqrstuwwxypqrstuwwxyz"));
2681 [cf_cv_good_bcopy=yes],
2682 [cf_cv_good_bcopy=no],
2683 [cf_cv_good_bcopy=unknown])
2685 ],[cf_cv_good_bcopy=no])
2686 if test "$cf_cv_good_bcopy" = yes ; then
2687 AC_DEFINE(USE_OK_BCOPY,1,[Define to 1 to use bcopy when memmove is unavailable])
2689 AC_DEFINE(USE_MY_MEMMOVE,1,[Define to 1 to use replacement function when memmove is unavailable])
2692 dnl ---------------------------------------------------------------------------
2693 dnl CF_FUNC_NANOSLEEP version: 5 updated: 2017/01/21 11:06:25
2694 dnl -----------------
2695 dnl Check for existence of workable nanosleep() function. Some systems, e.g.,
2696 dnl AIX 4.x, provide a non-working version.
2697 AC_DEFUN([CF_FUNC_NANOSLEEP],[
2698 AC_CACHE_CHECK(if nanosleep really works,cf_cv_func_nanosleep,[
2704 #ifdef HAVE_SYS_TIME_H
2705 #include <sys/time.h>
2709 struct timespec ts1, ts2;
2712 ts1.tv_nsec = 750000000;
2716 code = nanosleep(&ts1, &ts2); /* on failure errno is ENOSYS. */
2717 ${cf_cv_main_return:-return}(code != 0);
2720 [cf_cv_func_nanosleep=yes],
2721 [cf_cv_func_nanosleep=no],
2722 [cf_cv_func_nanosleep=unknown])])
2724 test "$cf_cv_func_nanosleep" = "yes" && AC_DEFINE(HAVE_NANOSLEEP,1,[Define to 1 if we have nanosleep()])
2726 dnl ---------------------------------------------------------------------------
2727 dnl CF_FUNC_OPENPTY version: 6 updated: 2021/01/01 13:31:04
2729 dnl Check for openpty() function, along with <pty.h> header. It may need the
2730 dnl "util" library as well.
2731 AC_DEFUN([CF_FUNC_OPENPTY],
2733 AC_CHECK_LIB(util,openpty,cf_cv_lib_util=yes,cf_cv_lib_util=no)
2734 AC_CACHE_CHECK(for openpty header,cf_cv_func_openpty,[
2735 cf_save_LIBS="$LIBS"
2736 test "$cf_cv_lib_util" = yes && { CF_ADD_LIB(util) }
2737 for cf_header in pty.h libutil.h util.h
2740 #include <$cf_header>
2742 int x = openpty((int *)0, (int *)0, (char *)0,
2743 (struct termios *)0, (struct winsize *)0);
2745 cf_cv_func_openpty=$cf_header
2748 cf_cv_func_openpty=no
2751 LIBS="$cf_save_LIBS"
2754 dnl ---------------------------------------------------------------------------
2755 dnl CF_FUNC_POLL version: 10 updated: 2021/01/04 19:13:57
2757 dnl See if the poll function really works. Some platforms have poll(), but
2758 dnl it does not work for terminals or files.
2759 AC_DEFUN([CF_FUNC_POLL],[
2760 tty >/dev/null 2>&1 || { AC_CHECK_FUNCS(posix_openpt) }
2761 AC_CACHE_CHECK(if poll really works,cf_cv_working_poll,[
2770 #include <sys/poll.h>
2773 struct pollfd myfds;
2776 /* check for Darwin bug with respect to "devices" */
2777 myfds.fd = open("/dev/null", 1); /* O_WRONLY */
2780 myfds.events = POLLIN;
2783 ret = poll(&myfds, 1, 100);
2785 if (ret < 0 || (myfds.revents & POLLNVAL)) {
2790 fd = open("/dev/tty", 2); /* O_RDWR */
2792 #ifdef HAVE_POSIX_OPENPT
2794 fd = posix_openpt(O_RDWR);
2799 /* also check with standard input */
2801 myfds.events = POLLIN;
2803 ret = poll(&myfds, 1, 100);
2808 ${cf_cv_main_return:-return}(ret < 0);
2810 [cf_cv_working_poll=yes],
2811 [cf_cv_working_poll=no],
2812 [cf_cv_working_poll=unknown])])
2813 test "$cf_cv_working_poll" = "yes" && AC_DEFINE(HAVE_WORKING_POLL,1,[Define to 1 if the poll function seems to work])
2815 dnl ---------------------------------------------------------------------------
2816 dnl CF_FUNC_TERMIOS version: 3 updated: 2012/10/06 17:56:13
2818 dnl Some old/broken variations define tcgetattr() only as a macro in
2820 AC_DEFUN([CF_FUNC_TERMIOS],[
2821 AC_REQUIRE([CF_STRUCT_TERMIOS])
2822 AC_CACHE_CHECK(for tcgetattr, cf_cv_have_tcgetattr,[
2824 #include <sys/types.h>
2825 #ifdef HAVE_UNISTD_H
2828 #ifdef HAVE_TERMIOS_H
2829 #include <termios.h>
2830 #define TTY struct termios
2832 #ifdef HAVE_TERMIO_H
2834 #define TTY struct termio
2839 tcgetattr(1, &foo);],
2840 [cf_cv_have_tcgetattr=yes],
2841 [cf_cv_have_tcgetattr=no])])
2842 test "$cf_cv_have_tcgetattr" = yes && AC_DEFINE(HAVE_TCGETATTR,1,[Define to 1 if we have tcgetattr])
2844 dnl ---------------------------------------------------------------------------
2845 dnl CF_FUNC_VSSCANF version: 7 updated: 2021/01/01 13:31:04
2847 dnl Check for vsscanf() function, which is in c9x but generally not in earlier
2848 dnl versions of C. It is in the GNU C library, and can often be simulated by
2849 dnl other functions.
2850 AC_DEFUN([CF_FUNC_VSSCANF],
2852 AC_CACHE_CHECK(for vsscanf function or workaround,cf_cv_func_vsscanf,[
2855 #include <stdio.h>],[
2857 vsscanf("from", "%d", ap)],[cf_cv_func_vsscanf=vsscanf],[
2860 #include <stdio.h>],[
2864 strbuf._flag = _IOREAD;
2865 strbuf._ptr = strbuf._base = (unsigned char *) str;
2866 strbuf._cnt = strlen(str);
2867 strbuf._file = _NFILE;
2868 return (vfscanf(&strbuf, "%d", ap))],[cf_cv_func_vsscanf=vfscanf],[
2871 #include <stdio.h>],[
2875 strbuf._flag = _IOREAD;
2876 strbuf._ptr = strbuf._base = (unsigned char *) str;
2877 strbuf._cnt = strlen(str);
2878 strbuf._file = _NFILE;
2879 return (_doscan(&strbuf, "%d", ap))],[cf_cv_func_vsscanf=_doscan],[
2880 cf_cv_func_vsscanf=no])])])])
2882 case "$cf_cv_func_vsscanf" in
2883 (vsscanf) AC_DEFINE(HAVE_VSSCANF,1,[Define to 1 if we have vsscanf]);;
2884 (vfscanf) AC_DEFINE(HAVE_VFSCANF,1,[Define to 1 if we have vfscanf]);;
2885 (_doscan) AC_DEFINE(HAVE__DOSCAN,1,[Define to 1 if we have _doscan]);;
2889 dnl ---------------------------------------------------------------------------
2890 dnl CF_GCC_ATTRIBUTES version: 24 updated: 2021/03/20 12:00:25
2891 dnl -----------------
2892 dnl Test for availability of useful gcc __attribute__ directives to quiet
2893 dnl compiler warnings. Though useful, not all are supported -- and contrary
2894 dnl to documentation, unrecognized directives cause older compilers to barf.
2895 AC_DEFUN([CF_GCC_ATTRIBUTES],
2896 [AC_REQUIRE([AC_PROG_FGREP])dnl
2897 AC_REQUIRE([CF_C11_NORETURN])dnl
2899 if test "$GCC" = yes || test "$GXX" = yes
2901 cat > conftest.i <<EOF
2903 #define GCC_PRINTF 0
2908 #ifndef GCC_NORETURN
2909 #define GCC_NORETURN /* nothing */
2912 #define GCC_UNUSED /* nothing */
2915 if test "$GCC" = yes
2917 AC_CHECKING([for $CC __attribute__ directives])
2918 cat > "conftest.$ac_ext" <<EOF
2919 #line __oline__ "${as_me:-configure}"
2920 #include "confdefs.h"
2921 #include "conftest.h"
2922 #include "conftest.i"
2924 #define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
2926 #define GCC_PRINTFLIKE(fmt,var) /*nothing*/
2929 #define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
2931 #define GCC_SCANFLIKE(fmt,var) /*nothing*/
2933 extern void wow(char *,...) GCC_SCANFLIKE(1,2);
2934 extern GCC_NORETURN void oops(char *,...) GCC_PRINTFLIKE(1,2);
2935 extern GCC_NORETURN void foo(void);
2936 int main(int argc GCC_UNUSED, char *argv[[]] GCC_UNUSED) { (void)argc; (void)argv; return 0; }
2938 cf_printf_attribute=no
2939 cf_scanf_attribute=no
2940 for cf_attribute in scanf printf unused noreturn
2942 CF_UPPER(cf_ATTRIBUTE,$cf_attribute)
2943 cf_directive="__attribute__(($cf_attribute))"
2944 echo "checking for $CC $cf_directive" 1>&AC_FD_CC
2946 case "$cf_attribute" in
2948 cf_printf_attribute=yes
2949 cat >conftest.h <<EOF
2950 #define GCC_$cf_ATTRIBUTE 1
2954 cf_scanf_attribute=yes
2955 cat >conftest.h <<EOF
2956 #define GCC_$cf_ATTRIBUTE 1
2960 cat >conftest.h <<EOF
2961 #define GCC_$cf_ATTRIBUTE $cf_directive
2966 if AC_TRY_EVAL(ac_compile); then
2967 test -n "$verbose" && AC_MSG_RESULT(... $cf_attribute)
2968 cat conftest.h >>confdefs.h
2969 case "$cf_attribute" in
2971 AC_DEFINE_UNQUOTED(GCC_NORETURN,$cf_directive,[Define to noreturn-attribute for gcc])
2974 cf_value='/* nothing */'
2975 if test "$cf_printf_attribute" != no ; then
2976 cf_value='__attribute__((format(printf,fmt,var)))'
2977 AC_DEFINE(GCC_PRINTF,1,[Define to 1 if the compiler supports gcc-like printf attribute.])
2979 AC_DEFINE_UNQUOTED(GCC_PRINTFLIKE(fmt,var),$cf_value,[Define to printf-attribute for gcc])
2982 cf_value='/* nothing */'
2983 if test "$cf_scanf_attribute" != no ; then
2984 cf_value='__attribute__((format(scanf,fmt,var)))'
2985 AC_DEFINE(GCC_SCANF,1,[Define to 1 if the compiler supports gcc-like scanf attribute.])
2987 AC_DEFINE_UNQUOTED(GCC_SCANFLIKE(fmt,var),$cf_value,[Define to sscanf-attribute for gcc])
2990 AC_DEFINE_UNQUOTED(GCC_UNUSED,$cf_directive,[Define to unused-attribute for gcc])
2996 ${FGREP-fgrep} define conftest.i >>confdefs.h
3001 dnl ---------------------------------------------------------------------------
3002 dnl CF_GCC_VERSION version: 8 updated: 2019/09/07 13:38:36
3004 dnl Find version of gcc, and (because icc/clang pretend to be gcc without being
3005 dnl compatible), attempt to determine if icc/clang is actually used.
3006 AC_DEFUN([CF_GCC_VERSION],[
3007 AC_REQUIRE([AC_PROG_CC])
3009 if test "$GCC" = yes ; then
3010 AC_MSG_CHECKING(version of $CC)
3011 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.]].*//'`"
3012 test -z "$GCC_VERSION" && GCC_VERSION=unknown
3013 AC_MSG_RESULT($GCC_VERSION)
3015 CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
3016 CF_CLANG_COMPILER(GCC,CLANG_COMPILER,CFLAGS)
3018 dnl ---------------------------------------------------------------------------
3019 dnl CF_GCC_WARNINGS version: 41 updated: 2021/01/01 16:53:59
3021 dnl Check if the compiler supports useful warning options. There's a few that
3022 dnl we don't use, simply because they're too noisy:
3024 dnl -Wconversion (useful in older versions of gcc, but not in gcc 2.7.x)
3025 dnl -Winline (usually not worthwhile)
3026 dnl -Wredundant-decls (system headers make this too noisy)
3027 dnl -Wtraditional (combines too many unrelated messages, only a few useful)
3028 dnl -Wwrite-strings (too noisy, but should review occasionally). This
3029 dnl is enabled for ncurses using "--enable-const".
3033 dnl $1 is an optional list of gcc warning flags that a particular
3034 dnl application might want to use, e.g., "no-unused" for
3037 dnl If $with_ext_const is "yes", add a check for -Wwrite-strings
3039 AC_DEFUN([CF_GCC_WARNINGS],
3041 AC_REQUIRE([CF_GCC_VERSION])
3042 if test "x$have_x" = xyes; then CF_CONST_X_STRING fi
3043 cat > "conftest.$ac_ext" <<EOF
3044 #line __oline__ "${as_me:-configure}"
3045 int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
3047 if test "$INTEL_COMPILER" = yes
3049 # The "-wdXXX" options suppress warnings:
3050 # remark #1419: external declaration in primary source file
3051 # remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
3052 # remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
3053 # remark #193: zero used for undefined preprocessing identifier
3054 # remark #593: variable "curs_sb_left_arrow" was set but never used
3055 # remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
3056 # remark #869: parameter "tw" was never referenced
3057 # remark #981: operands are evaluated in unspecified order
3058 # warning #279: controlling expression is constant
3060 AC_CHECKING([for $CC warning options])
3061 cf_save_CFLAGS="$CFLAGS"
3062 EXTRA_CFLAGS="$EXTRA_CFLAGS -Wall"
3074 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
3075 if AC_TRY_EVAL(ac_compile); then
3076 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
3077 EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
3080 CFLAGS="$cf_save_CFLAGS"
3081 elif test "$GCC" = yes && test "$GCC_VERSION" != "unknown"
3083 AC_CHECKING([for $CC warning options])
3084 cf_save_CFLAGS="$CFLAGS"
3086 test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
3087 cf_gcc_warnings="Wignored-qualifiers Wlogical-op Wvarargs"
3088 test "x$CLANG_COMPILER" = xyes && cf_gcc_warnings=
3089 for cf_opt in W Wall \
3090 Wbad-function-cast \
3093 Wdeclaration-after-statement \
3096 Wmissing-declarations \
3097 Wmissing-prototypes \
3101 Wstrict-prototypes \
3102 Wundef Wno-inline $cf_gcc_warnings $cf_warn_CONST $1
3104 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
3105 if AC_TRY_EVAL(ac_compile); then
3106 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
3109 case "$GCC_VERSION" in
3111 CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
3116 case "$GCC_VERSION" in
3118 CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
3123 EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
3126 CFLAGS="$cf_save_CFLAGS"
3130 AC_SUBST(EXTRA_CFLAGS)
3132 dnl ---------------------------------------------------------------------------
3133 dnl CF_GETOPT_HEADER version: 8 updated: 2021/06/19 19:16:16
3134 dnl ----------------
3135 dnl Check for getopt's variables which are commonly defined in stdlib.h,
3136 dnl unistd.h or (nonstandard) in getopt.h
3137 AC_DEFUN([CF_GETOPT_HEADER],
3139 AC_HAVE_HEADERS(unistd.h getopt.h)
3140 AC_CACHE_CHECK(for header declaring getopt variables,cf_cv_getopt_header,[
3141 cf_cv_getopt_header=none
3142 for cf_header in stdio.h stdlib.h unistd.h getopt.h
3145 #include <$cf_header>],
3146 [int x = optind; char *y = optarg; (void)x; (void)y],
3147 [cf_cv_getopt_header=$cf_header
3151 if test "$cf_cv_getopt_header" != none ; then
3152 AC_DEFINE(HAVE_GETOPT_HEADER,1,[Define to 1 if getopt variables are declared in header])
3154 if test "$cf_cv_getopt_header" = getopt.h ; then
3155 AC_DEFINE(NEED_GETOPT_H,1,[Define to 1 if we must include getopt.h])
3158 dnl ---------------------------------------------------------------------------
3159 dnl CF_GNATPREP_OPT_T version: 1 updated: 2014/08/02 18:37:25
3160 dnl -----------------
3161 AC_DEFUN([CF_GNATPREP_OPT_T],[
3162 AC_CACHE_CHECK(if GNATPREP supports -T option,cf_cv_gnatprep_opt_t,[
3163 cf_cv_gnatprep_opt_t=no
3164 gnatprep -T 2>/dev/null >/dev/null && cf_cv_gnatprep_opt_t=yes
3166 test "$cf_cv_gnatprep_opt_t" = yes && GNATPREP_OPTS="-T $GNATPREP_OPTS"
3167 AC_SUBST(GNATPREP_OPTS)
3169 dnl ---------------------------------------------------------------------------
3170 dnl CF_GNAT_GENERICS version: 7 updated: 2021/01/01 13:31:04
3171 dnl ----------------
3172 AC_DEFUN([CF_GNAT_GENERICS],
3174 AC_REQUIRE([CF_GNAT_VERSION])
3176 AC_MSG_CHECKING(if GNAT supports generics)
3177 case "$cf_cv_gnat_version" in
3178 (3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*|[[1-9]][[0-9]].[[0-9]]*|20[[0-9]][[0-9]])
3179 cf_gnat_generics=yes
3185 AC_MSG_RESULT($cf_gnat_generics)
3187 if test "$cf_gnat_generics" = yes
3189 cf_compile_generics=generics
3190 cf_generic_objects="\${GENOBJS}"
3192 cf_compile_generics=
3196 AC_SUBST(cf_compile_generics)
3197 AC_SUBST(cf_generic_objects)
3199 dnl ---------------------------------------------------------------------------
3200 dnl CF_GNAT_PROJECTS version: 13 updated: 2021/01/02 17:09:14
3201 dnl ----------------
3202 dnl GNAT projects are configured with ".gpr" project files.
3203 dnl GNAT libraries are a further development, using the project feature.
3204 AC_DEFUN([CF_GNAT_PROJECTS],
3206 AC_REQUIRE([CF_GNAT_VERSION])
3207 AC_REQUIRE([CF_DISABLE_GNAT_PROJECTS])
3209 cf_gnat_libraries=no
3212 if test "$enable_gnat_projects" != no ; then
3213 AC_MSG_CHECKING(if GNAT supports project files)
3214 case "$cf_cv_gnat_version" in
3218 case "$cf_cv_system_name" in
3222 rm -rf ./conftest* ./*~conftest*
3223 if mkdir conftest.src conftest.bin conftest.lib
3226 rm -rf ./conftest* ./*~conftest*
3227 cat >>library.gpr <<CF_EOF
3229 Kind := External ("LIB_KIND");
3230 for Library_Name use "ConfTest";
3231 for Object_Dir use ".";
3232 for Library_ALI_Dir use External("LIBRARY_DIR");
3233 for Library_Version use External ("SONAME");
3234 for Library_Kind use Kind;
3235 for Library_Dir use External("BUILD_DIR");
3236 Source_Dir := External ("SOURCE_DIR");
3237 for Source_Dirs use (Source_Dir);
3240 cat >>confpackage.ads <<CF_EOF
3241 package ConfPackage is
3245 cat >>confpackage.adb <<CF_EOF
3247 package body ConfPackage is
3248 procedure conftest is
3250 Text_IO.Put ("Hello World");
3255 if ( "$cf_ada_make" $ADAFLAGS \
3257 -XBUILD_DIR="`cd ../conftest.bin;pwd`" \
3258 -XLIBRARY_DIR="`cd ../conftest.lib;pwd`" \
3259 -XSOURCE_DIR="`pwd`" \
3260 -XSONAME=libConfTest.so.1 \
3261 -XLIB_KIND=static 1>&AC_FD_CC 2>&1 ) ; then
3262 cf_gnat_projects=yes
3266 if test -f conftest.lib/confpackage.ali
3268 cf_gnat_libraries=yes
3270 rm -rf ./conftest* ./*~conftest*
3275 AC_MSG_RESULT($cf_gnat_projects)
3276 fi # enable_gnat_projects
3278 if test "$cf_gnat_projects" = yes
3280 AC_MSG_CHECKING(if GNAT supports libraries)
3281 AC_MSG_RESULT($cf_gnat_libraries)
3284 USE_OLD_MAKERULES=""
3285 USE_GNAT_PROJECTS="#"
3286 USE_GNAT_MAKE_GPR="#"
3287 USE_GNAT_GPRBUILD="#"
3289 if test "$cf_gnat_projects" = yes
3291 USE_OLD_MAKERULES="#"
3292 USE_GNAT_PROJECTS=""
3293 if test "$cf_cv_VERSION_GPRBUILD" != no
3295 USE_GNAT_GPRBUILD=""
3296 elif test "$cf_cv_VERSION_GNATMAKE" != no
3298 USE_GNAT_MAKE_GPR=""
3300 AC_MSG_WARN(use old makefile rules since tools are missing)
3304 if test "$cf_gnat_libraries" = yes
3306 USE_GNAT_LIBRARIES=""
3308 USE_GNAT_LIBRARIES="#"
3311 AC_SUBST(USE_OLD_MAKERULES)
3312 AC_SUBST(USE_GNAT_PROJECTS)
3313 AC_SUBST(USE_GNAT_LIBRARIES)
3314 AC_SUBST(USE_GNAT_MAKE_GPR)
3315 AC_SUBST(USE_GNAT_GPRBUILD)
3317 dnl ---------------------------------------------------------------------------
3318 dnl CF_GNAT_SIGINT version: 2 updated: 2021/01/01 13:31:04
3320 dnl Check if gnat supports SIGINT, and presumably tasking. For the latter, it
3321 dnl is noted that gnat may compile a tasking unit even for configurations which
3322 dnl fail at runtime.
3323 AC_DEFUN([CF_GNAT_SIGINT],[
3324 AC_CACHE_CHECK(if GNAT supports SIGINT,cf_cv_gnat_sigint,[
3325 CF_GNAT_TRY_LINK([with Ada.Interrupts.Names;
3329 pragma Warnings (Off); -- the next pragma exists since 3.11p
3330 pragma Unreserve_All_Interrupts;
3331 pragma Warnings (On);
3333 protected Process is
3335 function Continue return Boolean;
3336 pragma Attach_Handler (Stop, Ada.Interrupts.Names.SIGINT);
3338 Done : Boolean := False;
3342 [package body ConfTest is
3343 protected body Process is
3348 function Continue return Boolean is
3354 [cf_cv_gnat_sigint=yes],
3355 [cf_cv_gnat_sigint=no])])
3357 if test "$cf_cv_gnat_sigint" = yes ; then
3362 AC_SUBST(USE_GNAT_SIGINT)
3364 dnl ---------------------------------------------------------------------------
3365 dnl CF_GNAT_TRY_LINK version: 4 updated: 2021/01/01 13:31:04
3366 dnl ----------------
3367 dnl Verify that a test program compiles/links with GNAT.
3368 dnl $cf_ada_make is set to the program that compiles/links
3369 dnl $ADAFLAGS may be set to the GNAT flags.
3371 dnl $1 is the text of the spec
3372 dnl $2 is the text of the body
3373 dnl $3 is the shell command to execute if successful
3374 dnl $4 is the shell command to execute if not successful
3375 AC_DEFUN([CF_GNAT_TRY_LINK],
3377 rm -rf ./conftest* ./*~conftest*
3378 cat >>conftest.ads <<CF_EOF
3381 cat >>conftest.adb <<CF_EOF
3384 if ( "$cf_ada_make" $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
3385 ifelse($3,, :,[ $3])
3389 rm -rf ./conftest* ./*~conftest*
3391 dnl ---------------------------------------------------------------------------
3392 dnl CF_GNAT_TRY_RUN version: 6 updated: 2021/01/01 13:31:04
3394 dnl Verify that a test program compiles and runs with GNAT
3395 dnl $cf_ada_make is set to the program that compiles/links
3396 dnl $ADAFLAGS may be set to the GNAT flags.
3398 dnl $1 is the text of the spec
3399 dnl $2 is the text of the body
3400 dnl $3 is the shell command to execute if successful
3401 dnl $4 is the shell command to execute if not successful
3402 AC_DEFUN([CF_GNAT_TRY_RUN],
3404 rm -rf ./conftest* ./*~conftest*
3405 cat >>conftest.ads <<CF_EOF
3408 cat >>conftest.adb <<CF_EOF
3411 if ( "$cf_ada_make" $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
3412 if ( ./conftest 1>&AC_FD_CC 2>&1 ) ; then
3413 ifelse($3,, :,[ $3])
3420 rm -rf ./conftest* ./*~conftest*
3422 dnl ---------------------------------------------------------------------------
3423 dnl CF_GNAT_VERSION version: 22 updated: 2019/12/31 08:53:54
3425 dnl $1 = cache variable to update
3426 dnl $2 = program name
3427 dnl Verify version of GNAT or related tool
3428 AC_DEFUN([CF_GNAT_VERSION],
3430 AC_CACHE_CHECK(for ifelse($2,,gnat,$2) version, cf_cv_gnat_version,[
3431 cf_cv_gnat_version=`ifelse($2,,${cf_ada_make:-gnatmake},$2) --version 2>&1 | \
3432 grep '[[0-9]].[[0-9]][[0-9]]*' |\
3433 sed -e '2,$d' -e 's/[[^0-9 \.]]//g' -e 's/^[[ ]]*//' -e 's/ .*//'`
3435 test -z "$cf_cv_gnat_version" && cf_cv_gnat_version=no
3436 ifelse($1,,,[eval $1=$cf_cv_gnat_version; unset cf_cv_gnat_version])
3438 dnl ---------------------------------------------------------------------------
3439 dnl CF_GNU_SOURCE version: 10 updated: 2018/12/10 20:09:41
3441 dnl Check if we must define _GNU_SOURCE to get a reasonable value for
3442 dnl _XOPEN_SOURCE, upon which many POSIX definitions depend. This is a defect
3443 dnl (or misfeature) of glibc2, which breaks portability of many applications,
3444 dnl since it is interwoven with GNU extensions.
3446 dnl Well, yes we could work around it...
3449 dnl $1 is the nominal value for _XOPEN_SOURCE
3450 AC_DEFUN([CF_GNU_SOURCE],
3452 cf_gnu_xopen_source=ifelse($1,,500,$1)
3454 AC_CACHE_CHECK(if this is the GNU C library,cf_cv_gnu_library,[
3455 AC_TRY_COMPILE([#include <sys/types.h>],[
3456 #if __GLIBC__ > 0 && __GLIBC_MINOR__ >= 0
3458 #elif __NEWLIB__ > 0 && __NEWLIB_MINOR__ >= 0
3461 # error not GNU C library
3463 [cf_cv_gnu_library=yes],
3464 [cf_cv_gnu_library=no])
3467 if test x$cf_cv_gnu_library = xyes; then
3469 # With glibc 2.19 (13 years after this check was begun), _DEFAULT_SOURCE
3470 # was changed to help a little. newlib incorporated the change about 4
3472 AC_CACHE_CHECK(if _DEFAULT_SOURCE can be used as a basis,cf_cv_gnu_library_219,[
3474 CF_APPEND_TEXT(CPPFLAGS,-D_DEFAULT_SOURCE)
3475 AC_TRY_COMPILE([#include <sys/types.h>],[
3476 #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 19) || (__GLIBC__ > 2)
3478 #elif (__NEWLIB__ == 2 && __NEWLIB_MINOR__ >= 4) || (__GLIBC__ > 3)
3481 # error GNU C library __GLIBC__.__GLIBC_MINOR__ is too old
3483 [cf_cv_gnu_library_219=yes],
3484 [cf_cv_gnu_library_219=no])
3488 if test "x$cf_cv_gnu_library_219" = xyes; then
3490 AC_CACHE_CHECK(if _XOPEN_SOURCE=$cf_gnu_xopen_source works with _DEFAULT_SOURCE,cf_cv_gnu_dftsrc_219,[
3491 CF_ADD_CFLAGS(-D_DEFAULT_SOURCE -D_XOPEN_SOURCE=$cf_gnu_xopen_source)
3494 #include <sys/types.h>
3496 #if (_XOPEN_SOURCE >= $cf_gnu_xopen_source) && (MB_LEN_MAX > 1)
3499 # error GNU C library is too old
3501 [cf_cv_gnu_dftsrc_219=yes],
3502 [cf_cv_gnu_dftsrc_219=no])
3504 test "x$cf_cv_gnu_dftsrc_219" = "xyes" || CPPFLAGS="$cf_save"
3506 cf_cv_gnu_dftsrc_219=maybe
3509 if test "x$cf_cv_gnu_dftsrc_219" != xyes; then
3511 AC_CACHE_CHECK(if we must define _GNU_SOURCE,cf_cv_gnu_source,[
3512 AC_TRY_COMPILE([#include <sys/types.h>],[
3513 #ifndef _XOPEN_SOURCE
3514 #error expected _XOPEN_SOURCE to be defined
3516 [cf_cv_gnu_source=no],
3517 [cf_save="$CPPFLAGS"
3518 CF_ADD_CFLAGS(-D_GNU_SOURCE)
3519 AC_TRY_COMPILE([#include <sys/types.h>],[
3520 #ifdef _XOPEN_SOURCE
3521 #error expected _XOPEN_SOURCE to be undefined
3523 [cf_cv_gnu_source=no],
3524 [cf_cv_gnu_source=yes])
3529 if test "$cf_cv_gnu_source" = yes
3531 AC_CACHE_CHECK(if we should also define _DEFAULT_SOURCE,cf_cv_default_source,[
3532 CF_APPEND_TEXT(CPPFLAGS,-D_GNU_SOURCE)
3533 AC_TRY_COMPILE([#include <sys/types.h>],[
3534 #ifdef _DEFAULT_SOURCE
3535 #error expected _DEFAULT_SOURCE to be undefined
3537 [cf_cv_default_source=no],
3538 [cf_cv_default_source=yes])
3540 if test "$cf_cv_default_source" = yes
3542 CF_APPEND_TEXT(CPPFLAGS,-D_DEFAULT_SOURCE)
3549 dnl ---------------------------------------------------------------------------
3550 dnl CF_GPP_LIBRARY version: 13 updated: 2021/01/01 13:31:04
3552 dnl If we're trying to use g++, test if libg++ is installed (a rather common
3553 dnl problem :-). If we have the compiler but no library, we'll be able to
3554 dnl configure, but won't be able to build the c++ demo program.
3555 AC_DEFUN([CF_GPP_LIBRARY],
3557 cf_cxx_library=unknown
3558 case "$cf_cv_system_name" in
3566 if test "$GXX" = yes; then
3567 AC_MSG_CHECKING([for lib$cf_gpp_libname])
3569 CF_ADD_LIB($cf_gpp_libname)
3571 #include <$cf_gpp_libname/builtin.h>
3573 [two_arg_error_handler_t foo2 = lib_error_handler],
3575 CF_ADD_LIB($cf_gpp_libname,CXXLIBS)
3576 if test "$cf_gpp_libname" = cpp ; then
3577 AC_DEFINE(HAVE_GPP_BUILTIN_H,1,[Define to 1 if we have gpp builtin.h])
3579 AC_DEFINE(HAVE_GXX_BUILTIN_H,1,[Define to 1 if we have g++ builtin.h])
3582 #include <builtin.h>
3584 [two_arg_error_handler_t foo2 = lib_error_handler],
3586 CF_ADD_LIB($cf_gpp_libname,CXXLIBS)
3587 AC_DEFINE(HAVE_BUILTIN_H,1,[Define to 1 if we have builtin.h])],
3588 [cf_cxx_library=no])])
3590 AC_MSG_RESULT($cf_cxx_library)
3593 dnl ---------------------------------------------------------------------------
3594 dnl CF_GXX_VERSION version: 8 updated: 2017/02/11 14:48:57
3596 dnl Check for version of g++
3597 AC_DEFUN([CF_GXX_VERSION],[
3598 AC_REQUIRE([AC_PROG_CPP])
3600 if test "$GXX" = yes; then
3601 AC_MSG_CHECKING(version of ${CXX:-g++})
3602 GXX_VERSION="`${CXX:-g++} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
3603 if test -z "$GXX_VERSION"
3608 AC_MSG_RESULT($GXX_VERSION)
3611 dnl ---------------------------------------------------------------------------
3612 dnl CF_GXX_WARNINGS version: 11 updated: 2021/01/08 16:50:55
3614 dnl Check if the compiler supports useful warning options.
3616 dnl Most of gcc's options apply to g++, except:
3617 dnl -Wbad-function-cast
3618 dnl -Wmissing-declarations
3619 dnl -Wnested-externs
3621 dnl Omit a few (for now):
3625 dnl $1 is an optional list of g++ warning flags that a particular
3626 dnl application might want to use, e.g., "no-unused" for
3629 dnl If $with_ext_const is "yes", add a check for -Wwrite-strings
3631 AC_DEFUN([CF_GXX_WARNINGS],
3634 CF_INTEL_COMPILER(GXX,INTEL_CPLUSPLUS,CXXFLAGS)
3635 CF_CLANG_COMPILER(GXX,CLANG_CPLUSPLUS,CXXFLAGS)
3637 AC_REQUIRE([CF_GXX_VERSION])
3642 cat > conftest.$ac_ext <<EOF
3643 #line __oline__ "configure"
3644 int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
3647 if test "$INTEL_CPLUSPLUS" = yes
3649 # The "-wdXXX" options suppress warnings:
3650 # remark #1419: external declaration in primary source file
3651 # remark #1682: implicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
3652 # remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
3653 # remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
3654 # remark #193: zero used for undefined preprocessing identifier
3655 # remark #593: variable "curs_sb_left_arrow" was set but never used
3656 # remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
3657 # remark #869: parameter "tw" was never referenced
3658 # remark #981: operands are evaluated in unspecified order
3659 # warning #269: invalid format string conversion
3661 AC_CHECKING([for $CC warning options])
3662 cf_save_CXXFLAGS="$CXXFLAGS"
3663 EXTRA_CXXFLAGS="-Wall"
3676 CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -$cf_opt"
3677 if AC_TRY_EVAL(ac_compile); then
3678 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
3679 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
3682 CXXFLAGS="$cf_save_CXXFLAGS"
3684 elif test "$GXX" = yes
3686 AC_CHECKING([for $CXX warning options])
3687 cf_save_CXXFLAGS="$CXXFLAGS"
3688 EXTRA_CXXFLAGS="-W -Wall"
3689 cf_gxx_extra_warnings=""
3690 test "$with_ext_const" = yes && cf_gxx_extra_warnings="Wwrite-strings"
3691 case "$GXX_VERSION" in
3695 cf_gxx_extra_warnings="$cf_gxx_extra_warnings Weffc++"
3702 Wignored-qualifiers \
3704 Woverloaded-virtual \
3712 Wundef $cf_gxx_extra_warnings $1
3714 CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -Werror -$cf_opt"
3715 if AC_TRY_EVAL(ac_compile); then
3716 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
3717 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
3719 test -n "$verbose" && AC_MSG_RESULT(... no -$cf_opt)
3722 CXXFLAGS="$cf_save_CXXFLAGS"
3727 AC_SUBST(EXTRA_CXXFLAGS)
3729 dnl ---------------------------------------------------------------------------
3730 dnl CF_HASHED_DB version: 7 updated: 2015/04/18 08:56:57
3732 dnl Look for an instance of the Berkeley hashed database.
3734 dnl $1 = optional parameter, to specify install-prefix for the database.
3735 AC_DEFUN([CF_HASHED_DB],
3742 if test -d "$1" ; then
3743 CF_ADD_INCDIR($1/include)
3744 CF_ADD_LIBDIR($1/lib)
3748 AC_MSG_WARN(no such directory $1)
3751 CF_FIND_SUB_INCDIR($1)
3752 CF_FIND_SUB_LIBDIR($1)
3758 AC_CHECK_HEADER(db.h,[
3759 CF_HASHED_DB_VERSION
3760 if test "$cf_cv_hashed_db_version" = unknown ; then
3761 AC_MSG_ERROR(Cannot determine version of db)
3764 if test "$cf_cv_hashed_db_libs" = unknown ; then
3765 AC_MSG_ERROR(Cannot determine library for db)
3766 elif test "$cf_cv_hashed_db_libs" != default ; then
3767 CF_ADD_LIB($cf_cv_hashed_db_libs)
3771 AC_MSG_ERROR(Cannot find db.h)
3774 dnl ---------------------------------------------------------------------------
3775 dnl CF_HASHED_DB_LIBS version: 10 updated: 2021/01/02 17:09:14
3776 dnl -----------------
3777 dnl Given that we have the header and version for hashed database, find the
3778 dnl library information.
3779 AC_DEFUN([CF_HASHED_DB_LIBS],
3781 AC_CACHE_CHECK(for db libraries, cf_cv_hashed_db_libs,[
3782 cf_cv_hashed_db_libs=unknown
3783 for cf_db_libs in "" db$cf_cv_hashed_db_version db-$cf_cv_hashed_db_version db ''
3785 cf_save_libs="$LIBS"
3786 if test -n "$cf_db_libs"; then
3787 CF_ADD_LIB($cf_db_libs)
3789 CF_MSG_LOG(checking for library $cf_db_libs)
3791 $ac_includes_default
3794 char *path = "/tmp/foo";
3795 #ifdef DB_VERSION_MAJOR
3796 #if DB_VERSION_MAJOR >= 4
3798 db_create(&result, NULL, 0);
3799 result->open(result,
3806 #elif DB_VERSION_MAJOR >= 3
3808 db_create(&result, NULL, 0);
3809 result->open(result,
3815 #elif DB_VERSION_MAJOR >= 2
3824 #endif /* DB_VERSION_MAJOR */
3826 DB *result = dbopen(path,
3832 ${cf_cv_main_return:-return}(result != 0)
3834 if test -n "$cf_db_libs" ; then
3835 cf_cv_hashed_db_libs=$cf_db_libs
3837 cf_cv_hashed_db_libs=default
3839 LIBS="$cf_save_libs"
3842 LIBS="$cf_save_libs"
3846 dnl ---------------------------------------------------------------------------
3847 dnl CF_HASHED_DB_VERSION version: 4 updated: 2014/04/12 16:47:01
3848 dnl --------------------
3849 dnl Given that we have the header file for hashed database, find the version
3851 AC_DEFUN([CF_HASHED_DB_VERSION],
3853 AC_CACHE_CHECK(for version of db, cf_cv_hashed_db_version,[
3854 cf_cv_hashed_db_version=unknown
3856 for cf_db_version in 1 2 3 4 5 6
3858 CF_MSG_LOG(checking for db version $cf_db_version)
3860 $ac_includes_default
3863 #ifdef DB_VERSION_MAJOR
3864 /* db2 (DB_VERSION_MAJOR=2) has also DB_VERSION_MINOR, tested with 7 */
3865 #if $cf_db_version == DB_VERSION_MAJOR
3871 #if $cf_db_version == 1
3872 /* ok: assuming this is DB 1.8.5 */
3878 cf_cv_hashed_db_version=$cf_db_version
3884 dnl ---------------------------------------------------------------------------
3885 dnl CF_HEADER_PATH version: 15 updated: 2021/01/01 13:31:04
3887 dnl Construct a search-list of directories for a nonstandard header-file
3890 dnl $1 = the variable to return as result
3891 dnl $2 = the package name
3892 AC_DEFUN([CF_HEADER_PATH],
3896 # collect the current set of include-directories from compiler flags
3897 cf_header_path_list=""
3898 if test -n "${CFLAGS}${CPPFLAGS}" ; then
3899 for cf_header_path in $CPPFLAGS $CFLAGS
3901 case "$cf_header_path" in
3903 cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'`
3904 CF_ADD_SUBDIR_PATH($1,$2,include,$cf_header_path,NONE)
3905 cf_header_path_list="$cf_header_path_list [$]$1"
3911 # add the variations for the package we are looking for
3912 CF_SUBDIR_PATH($1,$2,include)
3914 test "$includedir" != NONE && \
3915 test "$includedir" != "/usr/include" && \
3916 test -d "$includedir" && {
3917 test -d "$includedir" && $1="[$]$1 $includedir"
3918 test -d "$includedir/$2" && $1="[$]$1 $includedir/$2"
3921 test "$oldincludedir" != NONE && \
3922 test "$oldincludedir" != "/usr/include" && \
3923 test -d "$oldincludedir" && {
3924 test -d "$oldincludedir" && $1="[$]$1 $oldincludedir"
3925 test -d "$oldincludedir/$2" && $1="[$]$1 $oldincludedir/$2"
3928 $1="[$]$1 $cf_header_path_list"
3930 dnl ---------------------------------------------------------------------------
3931 dnl CF_HELP_MESSAGE version: 4 updated: 2019/12/31 08:53:54
3933 dnl Insert text into the help-message, for readability, from AC_ARG_WITH.
3934 AC_DEFUN([CF_HELP_MESSAGE],
3935 [CF_ACVERSION_CHECK(2.53,[],[
3936 AC_DIVERT_HELP($1)])dnl
3938 dnl ---------------------------------------------------------------------------
3939 dnl CF_INCLUDE_DIRS version: 10 updated: 2014/09/19 20:58:42
3941 dnl Construct the list of include-options according to whether we're building
3942 dnl in the source directory or using '--srcdir=DIR' option.
3943 AC_DEFUN([CF_INCLUDE_DIRS],
3945 if test "$srcdir" != "."; then
3946 CPPFLAGS="-I\${srcdir}/../include $CPPFLAGS"
3948 CPPFLAGS="-I../include $CPPFLAGS"
3949 if test "$srcdir" != "."; then
3950 CPPFLAGS="-I\${srcdir} $CPPFLAGS"
3952 CPPFLAGS="-I. $CPPFLAGS"
3955 dnl ---------------------------------------------------------------------------
3956 dnl CF_INSTALL_OPTS version: 2 updated: 2018/08/18 12:19:21
3958 dnl prompt for/fill-in useful install-program options
3959 AC_DEFUN([CF_INSTALL_OPTS],
3965 dnl ---------------------------------------------------------------------------
3966 dnl CF_INSTALL_OPT_O version: 3 updated: 2020/12/31 20:19:42
3967 dnl ----------------
3968 dnl Almost all "install" programs default to the current user's ownership.
3969 dnl Almost - MINIX is an exception.
3970 AC_DEFUN([CF_INSTALL_OPT_O],
3972 AC_MSG_CHECKING(if install needs to be told about ownership)
3973 case `$ac_config_guess` in
3982 AC_MSG_RESULT($with_install_o)
3983 if test "x$with_install_o" = xyes
3985 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'`"
3990 AC_SUBST(INSTALL_OPT_O)
3992 dnl ---------------------------------------------------------------------------
3993 dnl CF_INSTALL_OPT_P version: 3 updated: 2021/01/01 13:31:04
3994 dnl ----------------
3995 dnl Some install-programs accept a "-p" option to preserve file modification
3996 dnl timestamps. That can be useful as an install option, as well as a way to
3997 dnl avoid the need for ranlib after copying a static archive.
3998 AC_DEFUN([CF_INSTALL_OPT_P],
4000 : "${INSTALL:=install}"
4001 AC_CACHE_CHECK(if install accepts -p option, cf_cv_install_p,[
4006 if $INSTALL -p conftest.in conftest.out 2>/dev/null
4008 if test -f conftest.out/conftest.in
4010 test conftest.in -nt conftest.out/conftest.in 2>conftest.err && \
4011 test conftest.out/conftest.in -nt conftest.in 2>conftest.err
4012 if test -s conftest.err
4027 dnl ---------------------------------------------------------------------------
4028 dnl CF_INSTALL_OPT_S version: 3 updated: 2021/01/05 19:23:48
4029 dnl ----------------
4030 dnl By default, we should strip executables which are installed, but leave the
4031 dnl ability to suppress that for unit-testing.
4032 AC_DEFUN([CF_INSTALL_OPT_S],
4034 AC_MSG_CHECKING(if you want to install stripped executables)
4035 CF_ARG_DISABLE(stripping,
4036 [ --disable-stripping do not strip (debug info) installed executables],
4037 [enable_stripping=no],
4038 [enable_stripping=yes])
4039 AC_MSG_RESULT($enable_stripping)
4041 if test "$enable_stripping" = yes
4047 AC_SUBST(INSTALL_OPT_S)
4049 dnl ---------------------------------------------------------------------------
4050 dnl CF_INTEL_COMPILER version: 8 updated: 2021/01/01 16:53:59
4051 dnl -----------------
4052 dnl Check if the given compiler is really the Intel compiler for Linux. It
4053 dnl tries to imitate gcc, but does not return an error when it finds a mismatch
4054 dnl between prototypes, e.g., as exercised by CF_MISSING_CHECK.
4056 dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
4057 dnl ensure that it is not mistaken for gcc/g++. It is normally invoked from
4058 dnl the wrappers for gcc and g++ warnings.
4060 dnl $1 = GCC (default) or GXX
4061 dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS
4062 dnl $3 = CFLAGS (default) or CXXFLAGS
4063 AC_DEFUN([CF_INTEL_COMPILER],[
4064 AC_REQUIRE([AC_CANONICAL_HOST])
4065 ifelse([$2],,INTEL_COMPILER,[$2])=no
4067 if test "$ifelse([$1],,[$1],GCC)" = yes ; then
4070 AC_MSG_CHECKING(if this is really Intel ifelse([$1],GXX,C++,C) compiler)
4071 cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
4072 ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -no-gcc"
4074 #ifdef __INTEL_COMPILER
4078 ],[ifelse([$2],,INTEL_COMPILER,[$2])=yes
4079 cf_save_CFLAGS="$cf_save_CFLAGS -we147"
4081 ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
4082 AC_MSG_RESULT($ifelse([$2],,INTEL_COMPILER,[$2]))
4087 dnl ---------------------------------------------------------------------------
4088 dnl CF_ISASCII version: 4 updated: 2012/10/06 17:56:13
4090 dnl Check if we have either a function or macro for 'isascii()'.
4091 AC_DEFUN([CF_ISASCII],
4093 AC_MSG_CHECKING(for isascii)
4094 AC_CACHE_VAL(cf_cv_have_isascii,[
4095 AC_TRY_LINK([#include <ctype.h>],[int x = isascii(' ')],
4096 [cf_cv_have_isascii=yes],
4097 [cf_cv_have_isascii=no])
4099 AC_MSG_RESULT($cf_cv_have_isascii)
4100 test "$cf_cv_have_isascii" = yes && AC_DEFINE(HAVE_ISASCII,1,[Define to 1 if we have isascii()])
4102 dnl ---------------------------------------------------------------------------
4103 dnl CF_LARGEFILE version: 12 updated: 2020/03/19 20:23:48
4105 dnl Add checks for large file support.
4106 AC_DEFUN([CF_LARGEFILE],[
4107 ifdef([AC_FUNC_FSEEKO],[
4109 if test "$enable_largefile" != no ; then
4112 # Normally we would collect these definitions in the config.h,
4113 # but (like _XOPEN_SOURCE), some environments rely on having these
4114 # defined before any of the system headers are included. Another
4115 # case comes up with C++, e.g., on AIX the compiler compiles the
4116 # header files by themselves before looking at the body files it is
4117 # told to compile. For ncurses, those header files do not include
4119 if test "$ac_cv_sys_large_files" != no
4121 CF_APPEND_TEXT(CPPFLAGS,-D_LARGE_FILES)
4123 if test "$ac_cv_sys_largefile_source" != no
4125 CF_APPEND_TEXT(CPPFLAGS,-D_LARGEFILE_SOURCE)
4127 if test "$ac_cv_sys_file_offset_bits" != no
4129 CF_APPEND_TEXT(CPPFLAGS,-D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits)
4132 AC_CACHE_CHECK(whether to use struct dirent64, cf_cv_struct_dirent64,[
4134 #pragma GCC diagnostic error "-Wincompatible-pointer-types"
4135 #include <sys/types.h>
4138 /* if transitional largefile support is setup, this is true */
4139 extern struct dirent64 * readdir(DIR *);
4140 struct dirent64 *x = readdir((DIR *)0);
4141 struct dirent *y = readdir((DIR *)0);
4145 [cf_cv_struct_dirent64=yes],
4146 [cf_cv_struct_dirent64=no])
4148 test "$cf_cv_struct_dirent64" = yes && AC_DEFINE(HAVE_STRUCT_DIRENT64,1,[Define to 1 if we have struct dirent64])
4152 dnl ---------------------------------------------------------------------------
4153 dnl CF_LDFLAGS_STATIC version: 14 updated: 2021/01/02 17:09:14
4154 dnl -----------------
4155 dnl Check for compiler/linker flags used to temporarily force usage of static
4156 dnl libraries. This depends on the compiler and platform. Use this to help
4157 dnl ensure that the linker picks up a given library based on its position in
4158 dnl the list of linker options and libraries.
4159 AC_DEFUN([CF_LDFLAGS_STATIC],[
4161 if test "$GCC" = yes ; then
4162 case "$cf_cv_system_name" in
4163 (OS/2*|os2*|aix[[4]]*|solaris2.1[[0-9]]|darwin*)
4167 (*) # normally, except when broken
4168 LDFLAGS_STATIC=-static
4169 LDFLAGS_SHARED=-dynamic
4173 case "$cf_cv_system_name" in
4174 (aix[[4-7]]*) # from ld manpage
4175 LDFLAGS_STATIC=-bstatic
4176 LDFLAGS_SHARED=-bdynamic
4178 (hpux*) # from ld manpage for hpux10.20, hpux11.11
4179 # We could also use just "archive" and "shared".
4180 LDFLAGS_STATIC=-Wl,-a,archive_shared
4181 LDFLAGS_SHARED=-Wl,-a,shared_archive
4183 (irix*) # from ld manpage IRIX64
4184 LDFLAGS_STATIC=-Bstatic
4185 LDFLAGS_SHARED=-Bdynamic
4187 (osf[[45]]*) # from ld manpage osf4.0d, osf5.1
4188 # alternative "-oldstyle_liblookup" (not in cc manpage)
4189 LDFLAGS_STATIC=-noso
4190 LDFLAGS_SHARED=-so_archive
4193 LDFLAGS_STATIC=-Bstatic
4194 LDFLAGS_SHARED=-Bdynamic
4199 if test -n "$LDFLAGS_STATIC" && test -n "$LDFLAGS_SHARED"
4201 AC_MSG_CHECKING(if linker supports switching between static/dynamic)
4204 cat >conftest.$ac_ext <<EOF
4205 #line __oline__ "configure"
4207 int cf_ldflags_static(FILE *fp) { return fflush(fp); }
4209 if AC_TRY_EVAL(ac_compile) ; then
4210 ( $AR $ARFLAGS libconftest.a conftest.o ) 2>&AC_FD_CC 1>/dev/null
4211 ( eval $RANLIB libconftest.a ) 2>&AC_FD_CC >/dev/null
4215 cf_save_LIBS="$LIBS"
4217 LIBS="$LDFLAGS_STATIC -L`pwd` -lconftest $LDFLAGS_DYNAMIC $LIBS"
4219 #line __oline__ "configure"
4221 int cf_ldflags_static(FILE *fp);
4223 return cf_ldflags_static(stdin);
4225 # some linkers simply ignore the -dynamic
4226 case x`file "conftest$ac_exeext" 2>/dev/null` in
4228 cf_ldflags_static=no
4231 cf_ldflags_static=yes
4234 ],[cf_ldflags_static=no])
4237 LIBS="$cf_save_LIBS"
4239 AC_MSG_RESULT($cf_ldflags_static)
4241 if test "$cf_ldflags_static" != yes
4251 AC_SUBST(LDFLAGS_STATIC)
4252 AC_SUBST(LDFLAGS_SHARED)
4254 dnl ---------------------------------------------------------------------------
4255 dnl CF_LD_RPATH_OPT version: 9 updated: 2021/01/01 13:31:04
4257 dnl For the given system and compiler, find the compiler flags to pass to the
4258 dnl loader to use the "rpath" feature.
4259 AC_DEFUN([CF_LD_RPATH_OPT],
4261 AC_REQUIRE([CF_CHECK_CACHE])
4264 if test "x$cf_cv_enable_rpath" != xno
4266 AC_MSG_CHECKING(for an rpath option)
4267 case "$cf_cv_system_name" in
4269 if test "$GCC" = yes; then
4270 LD_RPATH_OPT="-Wl,-rpath,"
4272 LD_RPATH_OPT="-rpath "
4275 (linux*|gnu*|k*bsd*-gnu|freebsd*)
4276 LD_RPATH_OPT="-Wl,-rpath,"
4278 (openbsd[[2-9]].*|mirbsd*)
4279 LD_RPATH_OPT="-Wl,-rpath,"
4282 LD_RPATH_OPT="-rpath "
4285 LD_RPATH_OPT="-Wl,-rpath,"
4288 LD_RPATH_OPT="-rpath "
4296 AC_MSG_RESULT($LD_RPATH_OPT)
4298 case "x$LD_RPATH_OPT" in
4300 AC_MSG_CHECKING(if we need a space after rpath option)
4301 cf_save_LIBS="$LIBS"
4302 CF_ADD_LIBS(${LD_RPATH_OPT}$libdir)
4303 AC_TRY_LINK(, , cf_rpath_space=no, cf_rpath_space=yes)
4304 LIBS="$cf_save_LIBS"
4305 AC_MSG_RESULT($cf_rpath_space)
4306 test "$cf_rpath_space" = yes && LD_RPATH_OPT="$LD_RPATH_OPT "
4311 dnl ---------------------------------------------------------------------------
4312 dnl CF_LD_SEARCHPATH version: 3 updated: 2021/03/05 19:13:35
4313 dnl ----------------
4314 dnl Try to obtain the linker's search-path, for use in scripts.
4316 dnl Ignore LD_LIBRARY_PATH, etc.
4317 AC_DEFUN([CF_LD_SEARCHPATH],[
4318 AC_CACHE_CHECK(for linker search path,cf_cv_ld_searchpath,[
4320 if test "$cross_compiling" != yes ; then
4322 # GNU binutils' ld does not involve permissions which may stop ldconfig.
4323 cf_pathlist=`ld --verbose 2>/dev/null | grep SEARCH_DIR | sed -e 's,SEARCH_DIR[[("=]][[("=]]*,,g' -e 's/"[[)]];//gp' | sort -u`
4325 # The -NX options tell newer versions of Linux ldconfig to not attempt to
4326 # update the cache, which makes it run faster.
4327 test -z "$cf_pathlist" && \
4328 cf_pathlist=`(ldconfig -NX -v) 2>/dev/null | sed -e '/^[[ ]]/d' -e 's/:$//' | sort -u`
4330 test -z "$cf_pathlist" &&
4331 cf_pathlist=`(ldconfig -v) 2>/dev/null | sed -n -e '/^[[ ]]/d' -e 's/:$//p' | sort -u`
4333 # This works with OpenBSD 6.5, which lists only filenames
4334 test -z "$cf_pathlist" &&
4335 cf_pathlist=`(ldconfig -v) 2>/dev/null | sed -n -e 's,^Adding \(.*\)/.*[$],\1,p' | sort -u`
4337 if test -z "$cf_pathlist"
4339 # dyld default path with MacOS
4340 if test -f /usr/bin/otool && test "x`uname -s`" = xDarwin
4342 # do this to bypass check
4343 cf_cv_ld_searchpath='$HOME/lib'
4344 cf_pathlist="/usr/local/lib /lib /usr/lib"
4348 if test -z "$cf_pathlist"
4350 # Solaris is "SunOS"
4351 if test -f /usr/bin/isainfo && test "x`uname -s`" = xSunOS
4353 case x`(isainfo -b)` in
4355 cf_pathlist="$cf_pathlist /lib/64 /usr/lib/64"
4358 test -d /usr/ccs/lib && cf_pathlist="$cf_pathlist /usr/ccs/lib"
4359 cf_pathlist="$cf_pathlist /lib /usr/lib"
4362 AC_MSG_WARN(problem with Solaris architecture)
4368 if test -z "$cf_pathlist"
4371 if test x"`uname -s`" = xHP-UX
4373 case x`getconf LONG_BIT` in
4375 cf_pathlist="/usr/lib/hpux64"
4378 cf_pathlist="/usr/lib/hpux32"
4386 # If nothing else, assume it is conventional
4387 test -z "$cf_pathlist" && cf_pathlist="/usr/lib /lib"
4389 # Finally, check that this is only directories
4390 for cf_path in [$]0 $cf_pathlist
4392 if test -d "$cf_path"; then
4393 test -n "$cf_cv_ld_searchpath" && cf_cv_ld_searchpath="${cf_cv_ld_searchpath} "
4394 cf_cv_ld_searchpath="${cf_cv_ld_searchpath}${cf_path}"
4398 # Ensure that it is nonempty
4399 test -z "$cf_cv_ld_searchpath" && cf_cv_ld_searchpath=/usr/lib
4402 LD_SEARCHPATH=`echo "$cf_cv_ld_searchpath"|sed -e 's/ /|/g'`
4403 AC_SUBST(LD_SEARCHPATH)
4405 dnl ---------------------------------------------------------------------------
4406 dnl CF_LIBRARY_PATH version: 11 updated: 2021/01/01 13:31:04
4408 dnl Construct a search-list of directories for a nonstandard library-file
4411 dnl $1 = the variable to return as result
4412 dnl $2 = the package name
4413 AC_DEFUN([CF_LIBRARY_PATH],
4416 cf_library_path_list=""
4417 if test -n "${LDFLAGS}${LIBS}" ; then
4418 for cf_library_path in $LDFLAGS $LIBS
4420 case "$cf_library_path" in
4422 cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'`
4423 CF_ADD_SUBDIR_PATH($1,$2,lib,$cf_library_path,NONE)
4424 cf_library_path_list="$cf_library_path_list [$]$1"
4430 CF_SUBDIR_PATH($1,$2,lib)
4432 $1="$cf_library_path_list [$]$1"
4434 dnl ---------------------------------------------------------------------------
4435 dnl CF_LIBTOOL_VERSION version: 1 updated: 2013/04/06 18:03:09
4436 dnl ------------------
4437 AC_DEFUN([CF_LIBTOOL_VERSION],[
4438 if test -n "$LIBTOOL" && test "$LIBTOOL" != none
4440 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.]].*//'`
4442 cf_cv_libtool_version=
4444 test -z "$cf_cv_libtool_version" && unset cf_cv_libtool_version
4446 dnl ---------------------------------------------------------------------------
4447 dnl CF_LIB_PREFIX version: 14 updated: 2021/01/01 13:31:04
4449 dnl Compute the library-prefix for the given host system
4450 dnl $1 = variable to set
4451 define([CF_LIB_PREFIX],
4453 case "$cf_cv_system_name" in
4455 if test "$DFT_LWR_MODEL" = libtool; then
4464 (*) LIB_PREFIX='lib'
4467 ifelse($1,,,[$1=$LIB_PREFIX])
4468 AC_SUBST(LIB_PREFIX)
4470 dnl ---------------------------------------------------------------------------
4471 dnl CF_LIB_RULES version: 97 updated: 2021/07/17 13:10:54
4473 dnl Append definitions and rules for the given models to the subdirectory
4474 dnl Makefiles, and the recursion rule for the top-level Makefile. If the
4475 dnl subdirectory is a library-source directory, modify the Libs_To_Make list in
4476 dnl the corresponding makefile to list the models that we'll generate.
4478 dnl For shared libraries, make a list of symbolic links to construct when
4479 dnl generating each library. The convention used for Linux is the simplest
4482 dnl lib<name>.so.<major> ->
4483 dnl lib<name>.so.<maj>.<minor>
4485 dnl Note: Libs_To_Make is mixed case, since it is not a pure autoconf variable.
4486 AC_DEFUN([CF_LIB_RULES],
4487 [AC_REQUIRE([AC_PROG_FGREP])dnl
4488 AC_REQUIRE([CF_MAKE_PHONY])dnl
4490 cf_prefix=$LIB_PREFIX
4491 AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
4493 case "$cf_cv_shlib_version" in
4494 (cygdll|msysdll|mingw|msvcdll)
4495 TINFO_NAME=$TINFO_ARG_SUFFIX
4500 if test -n "$TINFO_SUFFIX" ; then
4501 case "$TINFO_SUFFIX" in
4503 TINFO_NAME="${TINFO_NAME}tw${EXTRA_SUFFIX}"
4504 TINFO_SUFFIX=`echo "$TINFO_SUFFIX" | sed 's/^tw'$EXTRA_SUFFIX'//'`
4507 TINFO_NAME="${TINFO_NAME}t${EXTRA_SUFFIX}"
4508 TINFO_SUFFIX=`echo "$TINFO_SUFFIX" | sed 's/^t'$EXTRA_SUFFIX'//'`
4511 TINFO_NAME="${TINFO_NAME}w${EXTRA_SUFFIX}"
4512 TINFO_SUFFIX=`echo "$TINFO_SUFFIX" | sed 's/^w'$EXTRA_SUFFIX'//'`
4517 for cf_dir in $SRC_SUBDIRS
4519 if test ! -d "$srcdir/$cf_dir" ; then
4521 elif test -f "$srcdir/$cf_dir/modules" ; then
4526 if test -n "${cf_cv_abi_version}" && test "x${cf_cv_abi_version}" != "x5"
4528 cf_awk_program="$cf_awk_program\
4529 /deprecated in ABI${cf_cv_abi_version}/ { next; }\
4530 { sub(\"NCURSES([[WT]]+)?\", \"&${cf_cv_abi_version}\"); }\
4534 if test "x$WILDCARD_SYMS" = xno
4536 cf_awk_program="$cf_awk_program\
4537 /[[ ]]_\\*;/ { skip=1; next; }\
4541 if test "x$cf_awk_program" != "x"
4543 cat >>$cf_dir/Makefile <<CF_EOF
4545 # Generated by CF_LIB_RULES
4546 resulting.map: $UNALTERED_SYMS
4547 $AWK 'BEGIN { skip = 1; last=""; } \
4549 { if ( last != "" && ( skip == 0 || \[$]\[$]0 !~ /}/ ) ) { print last; }\
4550 skip = 0; last = \[$]\[$]0; } \
4551 END { print last; }' < "$UNALTERED_SYMS" >\[$]@
4558 for cf_item in $cf_LIST_MODELS
4560 CF_LIB_SUFFIX($cf_item,cf_suffix,cf_depsuf)
4561 if test "$cf_dir" = "c++"
4563 CF_MAP_LIB_BASENAME(cf_libname,cxx)
4565 CF_MAP_LIB_BASENAME(cf_libname,$cf_dir)
4567 test -z "$cf_libname" && cf_libname="$cf_dir"
4568 if test "$cf_item" = shared ; then
4569 if test -n "${LIB_SUFFIX}"
4571 cf_shared_suffix=`echo "$cf_suffix" | sed 's/^'"${USE_LIB_SUFFIX}"'//'`
4573 cf_shared_suffix="$cf_suffix"
4575 if test "$cf_cv_do_symlinks" = yes ; then
4578 case "$cf_cv_shlib_version" in
4580 cf_version_name=REL_VERSION
4583 cf_version_name=ABI_VERSION
4587 if test -n "$cf_version_name"
4589 case "$cf_cv_system_name" in
4592 cf_suffix="${USE_LIB_SUFFIX}"'.${'$cf_version_name'}'"$cf_shared_suffix"
4595 cf_suffix="$cf_suffix"'.${'$cf_version_name'}'
4599 if test -n "${USE_LIB_SUFFIX}"
4601 cf_shared_suffix=`echo "$cf_suffix" | sed 's/^'"${USE_LIB_SUFFIX}"'//'`
4603 cf_shared_suffix="$cf_suffix"
4606 # cygwin needs import library, and has unique naming convention
4607 # use autodetected ${cf_prefix} for import lib and static lib, but
4608 # use 'cyg' prefix for shared lib.
4609 case "$cf_cv_shlib_version" in
4611 cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
4612 cf_add_lib="../lib/cyg${cf_libname}${cf_cygsuf}"
4615 cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
4616 cf_add_lib="../lib/msys-${cf_libname}${cf_cygsuf}"
4619 cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
4620 cf_add_lib="../lib/lib${cf_libname}${cf_cygsuf}"
4623 cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
4624 cf_add_lib="../lib/${cf_libname}${cf_cygsuf}"
4630 if test -n "$cf_add_lib"
4632 Libs_To_Make="$Libs_To_Make $cf_add_lib"
4636 cf_add_lib="../lib/${cf_prefix}${cf_libname}${cf_suffix}"
4637 Libs_To_Make="$Libs_To_Make $cf_add_lib"
4640 if test "$cf_dir" = ncurses ; then
4641 cf_subsets="$LIB_SUBSETS"
4642 cf_r_parts="$cf_subsets"
4643 cf_liblist="$Libs_To_Make"
4645 while test -n "$cf_r_parts"
4647 cf_l_parts=`echo "$cf_r_parts" |sed -e 's/ .*$//'`
4648 cf_r_parts=`echo "$cf_r_parts" |sed -e 's/^[[^ ]]* //'`
4649 if test "$cf_l_parts" != "$cf_r_parts" ; then
4651 case "$cf_l_parts" in
4653 cf_add_lib=`echo "$cf_liblist" |sed -e s%${LIB_NAME}${USE_LIB_SUFFIX}%${TINFO_LIB_SUFFIX}%g`
4656 cf_add_lib=`echo "$cf_liblist" |sed -e s%${LIB_NAME}${USE_LIB_SUFFIX}%${TICS_LIB_SUFFIX}%g`
4662 if test -n "$cf_add_lib"; then
4663 Libs_To_Make="$cf_add_lib $Libs_To_Make"
4670 cf_subsets=`echo "$LIB_SUBSETS" | sed -e 's/^termlib.* //'`
4673 if test "$cf_dir" = c++; then
4674 if test "x$with_shared_cxx" != xyes && test -n "$cf_shared_suffix"; then
4676 for cf_item in $Libs_To_Make
4682 cf_item=`echo "$cf_item" | sed -e "s,"$cf_shared_suffix",.a,"`
4685 for cf_test in $cf_list
4687 if test "$cf_test" = "$cf_item"
4689 cf_LIST_MODELS=`echo "$cf_LIST_MODELS" | sed -e 's/normal//'`
4694 test -n "$cf_item" && cf_list="$cf_list $cf_item"
4696 Libs_To_Make="$cf_list"
4700 sed -e "s%@Libs_To_Make@%$Libs_To_Make%" \
4701 -e "s%@SHARED_LIB@%$SHARED_LIB%" \
4702 "$cf_dir/Makefile" >$cf_dir/Makefile.out
4703 mv "$cf_dir/Makefile.out" "$cf_dir/Makefile"
4705 $AWK -f "$srcdir/mk-0th.awk" \
4706 libname="${cf_dir}${LIB_SUFFIX}" subsets="$LIB_SUBSETS" ticlib="$TICS_LIB_SUFFIX" termlib="$TINFO_LIB_SUFFIX" \
4707 "$srcdir/$cf_dir/modules" >>$cf_dir/Makefile
4709 for cf_subset in $cf_subsets
4712 for cf_item in $cf_LIST_MODELS
4715 echo "Appending rules for ${cf_item} model (${cf_dir}: ${cf_subset})"
4716 CF_UPPER(cf_ITEM,$cf_item)
4719 if test "$CXX_MODEL" = SHARED; then
4720 case "$cf_cv_shlib_version" in
4721 (cygdll|msysdll|mingw|msvcdll)
4722 test "x$with_shared_cxx" = xno && CF_VERBOSE(overriding CXX_MODEL to SHARED)
4726 test "x$with_shared_cxx" = xno && CXX_MODEL=NORMAL
4731 CF_LIB_SUFFIX($cf_item,cf_suffix,cf_depsuf)
4732 CF_OBJ_SUBDIR($cf_item,cf_subdir)
4734 # Test for case where we build libtinfo with a different name.
4736 if test "$cf_dir" = ncurses ; then
4737 case "$cf_subset" in
4739 cf_libname=${cf_libname}$USE_LIB_SUFFIX
4742 cf_libname=$TINFO_LIB_SUFFIX
4745 cf_libname=$TICS_LIB_SUFFIX
4748 elif test "$cf_dir" = c++ ; then
4749 CF_MAP_LIB_BASENAME(cf_libname,cxx)
4750 cf_libname=${cf_libname}$USE_LIB_SUFFIX
4752 CF_MAP_LIB_BASENAME(cf_libname,$cf_dir)
4753 cf_libname=${cf_libname}$USE_LIB_SUFFIX
4755 if test -n "${USE_ARG_SUFFIX}" ; then
4756 # undo $USE_LIB_SUFFIX add-on in CF_LIB_SUFFIX
4757 cf_suffix=`echo "$cf_suffix" |sed -e "s%^${USE_LIB_SUFFIX}%%"`
4760 # These dependencies really are for development, not
4761 # builds, but they are useful in porting, too.
4762 cf_depend="../include/ncurses_cfg.h"
4763 if test "$srcdir" = "."; then
4766 cf_reldir="\${srcdir}"
4769 if test -f "$srcdir/$cf_dir/$cf_dir.priv.h" ; then
4770 cf_depend="$cf_depend $cf_reldir/$cf_dir.priv.h"
4771 elif test -f "$srcdir/$cf_dir/curses.priv.h" ; then
4772 cf_depend="$cf_depend $cf_reldir/curses.priv.h"
4776 old_cf_suffix="$cf_suffix"
4777 if test "$cf_cv_shlib_version_infix" = yes ; then
4778 if test -n "$USE_LIB_SUFFIX" ; then
4779 case "$USE_LIB_SUFFIX" in
4781 cf_libname=`echo "$cf_libname" | sed 's/tw'$EXTRA_SUFFIX'$//'`
4782 cf_suffix=`echo "$cf_suffix" | sed 's/^tw'$EXTRA_SUFFIX'//'`
4783 cf_dir_suffix=tw$EXTRA_SUFFIX
4786 cf_libname=`echo "$cf_libname" | sed 's/t'$EXTRA_SUFFIX'$//'`
4787 cf_suffix=`echo "$cf_suffix" | sed 's/^t'$EXTRA_SUFFIX'//'`
4788 cf_dir_suffix=t$EXTRA_SUFFIX
4791 cf_libname=`echo "$cf_libname" | sed 's/w'$EXTRA_SUFFIX'$//'`
4792 cf_suffix=`echo "$cf_suffix" | sed 's/^w'$EXTRA_SUFFIX'//'`
4793 cf_dir_suffix=w$EXTRA_SUFFIX
4796 cf_libname=`echo "$cf_libname" | sed 's/'$EXTRA_SUFFIX'$//'`
4797 cf_suffix=`echo "$cf_suffix" | sed 's/^'$EXTRA_SUFFIX'//'`
4798 cf_dir_suffix=$EXTRA_SUFFIX
4804 $AWK -f "$srcdir/mk-1st.awk" \
4805 name=${cf_libname}${cf_dir_suffix} \
4806 traces=$LIB_TRACING \
4808 CXX_MODEL=$CXX_MODEL \
4809 LIB_SUFFIX=$LIB_SUFFIX \
4810 USE_LIB_SUFFIX=$USE_LIB_SUFFIX \
4811 make_phony="${cf_cv_make_PHONY:-no}" \
4816 driver=$cf_cv_term_driver \
4818 TermlibRoot=$TINFO_NAME \
4819 TermlibSuffix=$TINFO_SUFFIX \
4820 ShlibVer=$cf_cv_shlib_version \
4821 ShlibVerInfix=$cf_cv_shlib_version_infix \
4822 ReLink=${cf_cv_do_relink:-no} \
4823 ReRanlib=${cf_cv_do_reranlib:-yes} \
4824 DoLinks=$cf_cv_do_symlinks \
4825 rmSoLocs=$cf_cv_rm_so_locs \
4826 ldconfig="$LDCONFIG" \
4827 overwrite=$WITH_OVERWRITE \
4828 depend="$cf_depend" \
4830 libtool_version="$LIBTOOL_VERSION" \
4831 "$srcdir/$cf_dir/modules" >>$cf_dir/Makefile
4833 cf_suffix="$old_cf_suffix"
4835 for cf_subdir2 in $cf_subdirs lib
4837 test "$cf_subdir" = "$cf_subdir2" && break
4839 test "${cf_subset}.${cf_subdir2}" != "${cf_subset}.${cf_subdir}" && \
4840 $AWK -f "$srcdir/mk-2nd.awk" \
4842 traces=$LIB_TRACING \
4848 crenames=$cf_cv_prog_CC_c_o \
4849 cxxrenames=$cf_cv_prog_CXX_c_o \
4850 "$srcdir/$cf_dir/modules" >>$cf_dir/Makefile
4851 cf_subdirs="$cf_subdirs $cf_subdir"
4856 echo ' ( cd '$cf_dir' && ${MAKE} ${TOP_MFLAGS} [$]@ )' >>Makefile
4860 echo '# generated by CF_LIB_RULES' >> Makefile
4862 if test "x$cf_cv_make_PHONY" = xyes ; then
4863 cat >> Makefile <<-CF_EOF
4867 .PHONY : install.includes
4868 .PHONY : uninstall.includes
4869 .PHONY : install.libs
4870 .PHONY : uninstall.libs
4874 for cf_dir in $SRC_SUBDIRS
4876 if test ! -d "$srcdir/$cf_dir" ; then
4880 if test -f "$cf_dir/Makefile" ; then
4883 echo 'libs \' >> Makefile
4884 echo 'install.libs \' >> Makefile
4885 echo 'uninstall.libs ::' >> Makefile
4886 echo ' ( cd '$cf_dir' && ${MAKE} ${TOP_MFLAGS} [$]@ )' >> Makefile
4891 if test -f "$srcdir/$cf_dir/modules" ; then
4893 if test "x$cf_cv_make_PHONY" = xyes ; then
4894 cat >> Makefile <<-CF_EOF
4896 .PHONY : install.$cf_dir
4897 .PHONY : uninstall.$cf_dir
4902 if test -f "$srcdir/$cf_dir/headers" ; then
4903 cat >> Makefile <<CF_EOF
4905 uninstall.includes \\
4909 cat >> Makefile <<CF_EOF
4916 uninstall.$cf_dir ::
4917 ( cd "$cf_dir" && \${MAKE} \${TOP_MFLAGS} \[$]@ )
4919 elif test -f "$srcdir/$cf_dir/headers" ; then
4920 cat >> Makefile <<CF_EOF
4926 uninstall.includes ::
4927 ( cd "$cf_dir" && \${MAKE} \${TOP_MFLAGS} \[$]@ )
4932 if test "x$cf_cv_make_PHONY" = xyes ; then
4933 cat >> Makefile <<-CF_EOF
4935 .PHONY : install.data
4936 .PHONY : uninstall.data
4940 if test "x$cf_with_db_install" = xyes; then
4941 cat >> Makefile <<CF_EOF
4943 install.libs uninstall.libs \\
4944 install.data uninstall.data ::
4945 $MAKE_TERMINFO ( cd misc && \${MAKE} \${TOP_MFLAGS} \[$]@ )
4948 cat >> Makefile <<CF_EOF
4950 install.libs uninstall.libs ::
4951 ( cd misc && \${MAKE} \${TOP_MFLAGS} \[$]@ )
4955 if test "x$cf_with_manpages" = xyes; then
4957 if test "x$cf_cv_make_PHONY" = xyes ; then
4958 cat >> Makefile <<-CF_EOF
4960 .PHONY : install.man
4961 .PHONY : uninstall.man
4965 cat >> Makefile <<CF_EOF
4969 ( cd man && \${MAKE} \${TOP_MFLAGS} \[$]@ )
4973 cat >> Makefile <<CF_EOF
4976 rm -f config.cache config.log config.status Makefile include/ncurses_cfg.h
4977 rm -f headers.sh headers.sed mk_shared_lib.sh
4978 rm -f edit_man.* man_alias.*
4979 rm -rf \${DIRS_TO_MAKE}
4982 # Special case: tack's manpage lives in its own directory.
4983 if test "x$cf_with_manpages" = xyes; then
4984 if test "x$cf_with_tack" = "xyes"; then
4985 cat >> Makefile <<CF_EOF
4989 ( cd tack && \${MAKE} \${TOP_MFLAGS} \[$]@ )
4994 dnl If we're installing into a subdirectory of /usr/include, etc., we should
4995 dnl prepend the subdirectory's name to the "#include" paths. It won't hurt
4996 dnl anything, and will make it more standardized. It's awkward to decide this
4997 dnl at configuration because of quoting, so we'll simply make all headers
4998 dnl installed via a script that can do the right thing.
5000 rm -f headers.sed headers.sh
5002 dnl ( generating this script makes the makefiles a little tidier :-)
5003 echo creating headers.sh
5004 cat >headers.sh <<CF_EOF
5006 # This shell script is generated by the 'configure' script. It is invoked in a
5007 # subdirectory of the build tree. It generates a sed-script in the parent
5008 # directory that is used to adjust includes for header files that reside in a
5009 # subdirectory of /usr/include, etc.
5011 while test \[$]# != 3
5013 PRG="\$PRG \[$]1"; shift
5018 TMPSRC=\${TMPDIR:-/tmp}/\`basename \$SRC\`\$\$
5019 TMPSED=\${TMPDIR:-/tmp}/headers.sed\$\$
5020 echo installing \$SRC in \$DST
5023 if test "$WITH_CURSES_H" = yes; then
5024 cat >>headers.sh <<CF_EOF
5027 END=\`basename \$DST\`
5028 for i in \`cat \$REF/../*/headers |${FGREP-fgrep} -v "#"\`
5030 NAME=\`basename \$i\`
5031 echo "s/<\$NAME>/<\$END\/\$NAME>/" >> \$TMPSED
5041 cat >>headers.sh <<CF_EOF
5044 END=\`basename \$DST\`
5045 for i in \`cat \$REF/../*/headers |${FGREP-fgrep} -v "#"\`
5047 NAME=\`basename \$i\`
5048 if test "\$NAME" = "curses.h"
5050 echo "s/<curses.h>/<ncurses.h>/" >> \$TMPSED
5053 echo "s/<\$NAME>/<\$END\/\$NAME>/" >> \$TMPSED
5057 echo "s/<curses.h>/<ncurses.h>/" >> \$TMPSED
5062 cat >>headers.sh <<CF_EOF
5064 sed -f \$TMPSED \$SRC > \$TMPSRC
5065 NAME=\`basename \$SRC\`
5067 if test "$WITH_CURSES_H" != yes; then
5068 cat >>headers.sh <<CF_EOF
5069 test "\$NAME" = "curses.h" && NAME=ncurses.h
5072 cat >>headers.sh <<CF_EOF
5073 # Just in case someone gzip'd manpages, remove the conflicting copy.
5074 test -f \$DST/\$NAME.gz && rm -f \$DST/\$NAME.gz
5076 eval \$PRG \$TMPSRC \$DST/\$NAME
5077 rm -f \$TMPSRC \$TMPSED
5080 chmod 0755 headers.sh
5082 for cf_dir in $SRC_SUBDIRS
5084 if test ! -d "$srcdir/$cf_dir" ; then
5088 if test -f "$srcdir/$cf_dir/headers" ; then
5089 $AWK -f "$srcdir/mk-hdr.awk" \
5090 subset="$LIB_SUBSETS" \
5091 compat="$WITH_CURSES_H" \
5092 "$srcdir/$cf_dir/headers" >>$cf_dir/Makefile
5095 if test -f "$srcdir/$cf_dir/modules" ; then
5096 if test "$cf_dir" != "c++" ; then
5097 if test "x$cf_cv_make_PHONY" = xyes ; then
5098 cat >> $cf_dir/Makefile <<-CF_EOF
5104 cat >>$cf_dir/Makefile <<"CF_EOF"
5105 depend : ${AUTO_SRC}
5106 makedepend -- ${CPPFLAGS} -- ${C_SRC}
5108 # DO NOT DELETE THIS LINE -- make depend depends on it.
5113 AC_SUBST(Libs_To_Make)
5115 dnl ---------------------------------------------------------------------------
5116 dnl CF_LIB_SONAME version: 9 updated: 2021/01/04 18:48:01
5118 dnl Find the and soname for the given shared library. Set the cache variable
5119 dnl cf_cv_$3_soname to this, unless it is not found. Then set the cache
5120 dnl variable to "unknown".
5124 dnl $3 = library name
5125 AC_DEFUN([CF_LIB_SONAME],
5126 [AC_REQUIRE([AC_PROG_FGREP])dnl
5128 AC_CACHE_CHECK(for soname of $3 library,cf_cv_$3_soname,[
5130 cf_cv_$3_soname=unknown
5131 if test "$cross_compiling" != yes ; then
5132 cat >conftest.$ac_ext <<CF_EOF
5137 ${cf_cv_main_return:-return}(0);
5140 cf_save_LIBS="$LIBS"
5142 if AC_TRY_EVAL(ac_compile) ; then
5143 if AC_TRY_EVAL(ac_link) ; then
5144 cf_cv_$3_soname="`ldd \"conftest$ac_exeext\" 2>/dev/null | sed -e 's,^.*/,,' -e 's, .*$,,' | ${FGREP-fgrep} lib$3.`"
5145 test -z "$cf_cv_$3_soname" && cf_cv_$3_soname=unknown
5149 LIBS="$cf_save_LIBS"
5153 dnl ---------------------------------------------------------------------------
5154 dnl CF_LIB_SUFFIX version: 28 updated: 2021/01/01 16:53:59
5156 dnl Compute the library file-suffix from the given model name
5158 dnl $2 = variable to set (the nominal library suffix)
5159 dnl $3 = dependency variable to set (actual filename)
5160 dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
5161 AC_DEFUN([CF_LIB_SUFFIX],
5169 case "$cf_cv_system_name" in
5180 case "$cf_cv_system_name" in
5191 case "$cf_cv_system_name" in
5200 (cygwin*|msys*|mingw*)
5238 if test -n "${LIB_SUFFIX}${EXTRA_SUFFIX}"
5240 $2="${LIB_SUFFIX}${EXTRA_SUFFIX}[$]{$2}"
5241 $3="${LIB_SUFFIX}${EXTRA_SUFFIX}[$]{$3}"
5244 dnl ---------------------------------------------------------------------------
5245 dnl CF_LIB_TYPE version: 5 updated: 2015/04/17 21:13:04
5247 dnl Compute the string to append to -library from the given model name
5249 dnl $2 = variable to set
5250 dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
5251 AC_DEFUN([CF_LIB_TYPE],
5257 (profile) $2='_p' ;;
5260 test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
5262 dnl ---------------------------------------------------------------------------
5263 dnl CF_LINK_DATAONLY version: 13 updated: 2020/02/08 15:59:30
5264 dnl ----------------
5265 dnl Some systems have a non-ANSI linker that doesn't pull in modules that have
5266 dnl only data (i.e., no functions), for example NeXT. On those systems we'll
5267 dnl have to provide wrappers for global tables to ensure they're linked
5269 AC_DEFUN([CF_LINK_DATAONLY],
5271 AC_MSG_CHECKING([if data-only library module links])
5272 AC_CACHE_VAL(cf_cv_link_dataonly,[
5274 cat >conftest.$ac_ext <<EOF
5275 #line __oline__ "configure"
5276 int testdata[[3]] = { 123, 456, 789 };
5278 if AC_TRY_EVAL(ac_compile) ; then
5279 mv conftest.o data.o && \
5280 ( $AR $ARFLAGS conftest.a data.o ) 2>&AC_FD_CC 1>/dev/null
5282 rm -f conftest.$ac_ext data.o
5283 cat >conftest.$ac_ext <<EOF
5284 #line __oline__ "configure"
5288 ${cf_cv_main_return:-return}(1); /* I'm told this linker is broken */
5290 extern int testdata[[3]];
5291 return testdata[[0]] == 123
5292 && testdata[[1]] == 456
5293 && testdata[[2]] == 789;
5297 if AC_TRY_EVAL(ac_compile); then
5298 mv conftest.o func.o && \
5299 ( $AR $ARFLAGS conftest.a func.o ) 2>&AC_FD_CC 1>/dev/null
5301 rm -f conftest.$ac_ext func.o
5302 ( eval $RANLIB conftest.a ) 2>&AC_FD_CC >/dev/null
5304 LIBS="conftest.a $LIBS"
5308 extern int testfunc();
5309 ${cf_cv_main_return:-return} (!testfunc());
5312 [cf_cv_link_dataonly=yes],
5313 [cf_cv_link_dataonly=no],
5314 [cf_cv_link_dataonly=unknown])
5317 AC_MSG_RESULT($cf_cv_link_dataonly)
5319 if test "$cf_cv_link_dataonly" = no ; then
5320 AC_DEFINE(BROKEN_LINKER,1,[if data-only library module does not link])
5323 AC_SUBST(BROKEN_LINKER)
5326 dnl ---------------------------------------------------------------------------
5327 dnl CF_LINK_FUNCS version: 11 updated: 2021/04/18 14:08:47
5329 dnl Most Unix systems have both link and symlink, a few don't have symlink.
5330 dnl A few non-Unix systems implement symlink, but not link.
5331 dnl A few non-systems implement neither (or have nonfunctional versions).
5333 dnl This allows for a 2-second difference in modification times to allow for
5334 dnl some marginal NFS implementations.
5335 AC_DEFUN([CF_LINK_FUNCS],
5344 if test "$cross_compiling" = yes ; then
5349 AC_CACHE_CHECK(if link/symlink functions work,cf_cv_link_funcs,[
5351 for cf_func in link symlink ; do
5354 #include <sys/types.h>
5355 #include <sys/stat.h>
5356 #ifdef HAVE_UNISTD_H
5362 char *src = "conftest.tmp";
5363 char *dst = "conftest.chk";
5364 struct stat src_sb, dst_sb;
5365 FILE *fp = fopen(src, "w");
5366 if (fp == 0) { fail = 3; } else {
5367 fclose(fp); stat(src, &src_sb);
5368 if ($cf_func(src, dst) < 0) {
5370 } else if (stat(dst, &dst_sb) < 0) {
5373 long diff = (dst_sb.st_mtime - src_sb.st_mtime);
5374 if (diff < 0) diff = -diff;
5375 if (diff > 2) fail = 3;
5379 unlink(dst); unlink(src);
5381 remove(dst); remove(src);
5383 ${cf_cv_main_return:-return} (fail);
5386 cf_cv_link_funcs="$cf_cv_link_funcs $cf_func"
5387 eval 'ac_cv_func_'$cf_func'=yes'],[
5388 eval 'ac_cv_func_'$cf_func'=no'],[
5389 eval 'ac_cv_func_'$cf_func'=error'])
5391 test -z "$cf_cv_link_funcs" && cf_cv_link_funcs=no
5393 test "$ac_cv_func_link" = yes && AC_DEFINE(HAVE_LINK,1,[Define to 1 if we have link() function])
5394 test "$ac_cv_func_symlink" = yes && AC_DEFINE(HAVE_SYMLINK,1,[Define to 1 if we have symlink() function])
5397 dnl ---------------------------------------------------------------------------
5398 dnl CF_MAKEFLAGS version: 21 updated: 2021/09/04 06:47:34
5400 dnl Some 'make' programs support ${MAKEFLAGS}, some ${MFLAGS}, to pass 'make'
5401 dnl options to lower-levels. It is very useful for "make -n" -- if we have it.
5402 dnl (GNU 'make' does both, something POSIX 'make', which happens to make the
5403 dnl ${MAKEFLAGS} variable incompatible because it adds the assignments :-)
5404 AC_DEFUN([CF_MAKEFLAGS],
5405 [AC_REQUIRE([AC_PROG_FGREP])dnl
5407 AC_CACHE_CHECK(for makeflags variable, cf_cv_makeflags,[
5409 for cf_option in '-${MAKEFLAGS}' '${MFLAGS}'
5411 cat >cf_makeflags.tmp <<CF_EOF
5414 @ echo '.$cf_option'
5416 cf_result=`${MAKE:-make} -k -f cf_makeflags.tmp 2>/dev/null | ${FGREP-fgrep} -v "ing directory" | sed -e 's,[[ ]]*$,,'`
5417 case "$cf_result" in
5419 cf_result="`${MAKE:-make} -k -f cf_makeflags.tmp CC=cc 2>/dev/null`"
5420 case "$cf_result" in
5421 (.*CC=*) cf_cv_makeflags=
5423 (*) cf_cv_makeflags=$cf_option
5431 CF_MSG_LOG(given option \"$cf_option\", no match \"$cf_result\")
5435 rm -f cf_makeflags.tmp
5438 AC_SUBST(cf_cv_makeflags)
5440 dnl ---------------------------------------------------------------------------
5441 dnl CF_MAKE_PHONY version: 3 updated: 2021/01/08 16:08:21
5443 dnl Check if the make-program handles a ".PHONY" target, e.g,. a target which
5444 dnl acts as a placeholder.
5446 dnl The ".PHONY" feature was proposed in 2011 here
5447 dnl https://www.austingroupbugs.net/view.php?id=523
5448 dnl and is scheduled for release in P1003.1 Issue 8 (late 2022).
5450 dnl This is not supported by SVr4 make (or SunOS 4, 4.3SD, etc), but works with
5451 dnl a few others (i.e., GNU make and the non-POSIX "BSD" make):
5453 dnl + This is a GNU make feature (since April 1988, but in turn from binutils,
5454 dnl date unspecified).
5456 dnl + It was adopted in NetBSD make in June 1995.
5458 dnl + The other BSD make programs are derived from the NetBSD make (and for
5459 dnl that reason are not actually different "implementations").
5461 dnl + Some features of NetBSD make were actually adapted from pmake, which
5462 dnl began as a modified GNU make starting in 1993.
5464 dnl + Version 3.8 of the dmake program in January 1992 also implemented this
5465 dnl GNU make extension, but is less well known than the BSD make.
5466 AC_DEFUN([CF_MAKE_PHONY],[
5467 AC_CACHE_CHECK(for \".PHONY\" make-support, cf_cv_make_PHONY,[
5470 mkdir conftest || exit 1
5472 cat >makefile <<'CF_EOF'
5476 @echo "** making [$]@ [$](DATA)"
5478 @echo "** making [$]@ [$](DATA)"
5480 @echo "** making [$]@ [$](DATA)"
5481 echo [$](DATA) > [$]@
5483 @echo "** making [$]@ [$](DATA)"
5484 echo [$](DATA) > [$]@
5486 for cf_data in 1 2 3
5488 ${MAKE:-make} always DATA=$cf_data
5489 ${MAKE:-make} once DATA=$cf_data
5490 ${MAKE:-make} -t always once
5491 if test -f always ; then
5492 echo "no (case 1)" > ../conftest.tmp
5493 elif test ! -f always.out ; then
5494 echo "no (case 2)" > ../conftest.tmp
5495 elif test ! -f once.out ; then
5496 echo "no (case 3)" > ../conftest.tmp
5497 elif ! cmp -s always.out once.out ; then
5498 echo "no (case 4)" > ../conftest.tmp
5499 diff always.out once.out
5501 cf_check="`cat always.out`"
5502 if test "x$cf_check" != "x$cf_data" ; then
5503 echo "no (case 5)" > ../conftest.tmp
5505 echo yes > ../conftest.tmp
5513 cf_cv_make_PHONY="`cat conftest.tmp`"
5518 test "x$cf_cv_make_PHONY" = xyes && MAKE_PHONY=
5519 test "x$cf_cv_make_PHONY" != xyes && MAKE_NO_PHONY=
5520 AC_SUBST(MAKE_NO_PHONY)
5521 AC_SUBST(MAKE_PHONY)
5523 dnl ---------------------------------------------------------------------------
5524 dnl CF_MAKE_TAGS version: 6 updated: 2010/10/23 15:52:32
5526 dnl Generate tags/TAGS targets for makefiles. Do not generate TAGS if we have
5527 dnl a monocase filesystem.
5528 AC_DEFUN([CF_MAKE_TAGS],[
5529 AC_REQUIRE([CF_MIXEDCASE_FILENAMES])
5531 AC_CHECK_PROGS(CTAGS, exctags ctags)
5532 AC_CHECK_PROGS(ETAGS, exetags etags)
5534 AC_CHECK_PROG(MAKE_LOWER_TAGS, ${CTAGS:-ctags}, yes, no)
5536 if test "$cf_cv_mixedcase" = yes ; then
5537 AC_CHECK_PROG(MAKE_UPPER_TAGS, ${ETAGS:-etags}, yes, no)
5542 if test "$MAKE_UPPER_TAGS" = yes ; then
5548 if test "$MAKE_LOWER_TAGS" = yes ; then
5557 AC_SUBST(MAKE_UPPER_TAGS)
5558 AC_SUBST(MAKE_LOWER_TAGS)
5560 dnl ---------------------------------------------------------------------------
5561 dnl CF_MANPAGE_FORMAT version: 15 updated: 2021/09/04 06:35:04
5562 dnl -----------------
5563 dnl Option to allow user to override automatic configuration of manpage format.
5564 dnl There are several special cases:
5566 dnl gzip - man checks for, can display gzip'd files
5567 dnl compress - man checks for, can display compressed files
5568 dnl BSDI - files in the cat-directories are suffixed ".0"
5569 dnl formatted - installer should format (put files in cat-directory)
5570 dnl catonly - installer should only format, e.g., for a turnkey system.
5572 dnl There are other configurations which this macro does not test, e.g., HPUX's
5573 dnl compressed manpages (but uncompressed manpages are fine, and HPUX's naming
5574 dnl convention would not match our use).
5575 AC_DEFUN([CF_MANPAGE_FORMAT],
5577 AC_REQUIRE([CF_PATHSEP])
5578 AC_MSG_CHECKING(format of man-pages)
5580 AC_ARG_WITH(manpage-format,
5581 [ --with-manpage-format specify manpage-format: gzip/compress/BSDI/normal and
5582 optionally formatted/catonly, e.g., gzip,formatted],
5583 [MANPAGE_FORMAT=$withval],
5584 [MANPAGE_FORMAT=unknown])
5586 test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=unknown
5587 MANPAGE_FORMAT=`echo "$MANPAGE_FORMAT" | sed -e 's/,/ /g'`
5591 case "$MANPAGE_FORMAT" in
5593 if test -z "$MANPATH" ; then
5594 MANPATH="/usr/man:/usr/share/man"
5597 # look for the 'date' man-page (it is most likely to be installed!)
5603 IFS="${IFS:- }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
5604 for cf_dir in $MANPATH; do
5605 test -z "$cf_dir" && cf_dir=/usr/man
5606 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
5608 cf_test=`echo "$cf_name" | sed -e 's/*//'`
5609 if test "x$cf_test" = "x$cf_name" ; then
5612 (*.gz) MANPAGE_FORMAT="$MANPAGE_FORMAT gzip";;
5613 (*.Z) MANPAGE_FORMAT="$MANPAGE_FORMAT compress";;
5614 (*.0) MANPAGE_FORMAT="$MANPAGE_FORMAT BSDI";;
5615 (*) MANPAGE_FORMAT="$MANPAGE_FORMAT normal";;
5629 # if we found a match in either man* or cat*, stop looking
5630 if test -n "$MANPAGE_FORMAT" ; then
5632 test "$cf_preform" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT formatted"
5633 test "$cf_catonly" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT catonly"
5639 test "$cf_found" = yes && break
5642 # only check the first directory in $MANPATH where we find manpages
5643 if test -n "$MANPAGE_FORMAT" ; then
5647 # if we did not find the example, just assume it is normal
5648 test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=normal
5652 for cf_option in $MANPAGE_FORMAT; do
5653 case "$cf_option" in
5654 (gzip|compress|BSDI|normal|formatted|catonly)
5657 cf_unknown="$cf_unknown $cf_option"
5664 AC_MSG_RESULT($MANPAGE_FORMAT)
5665 if test -n "$cf_unknown" ; then
5666 AC_MSG_WARN(Unexpected manpage-format $cf_unknown)
5669 dnl ---------------------------------------------------------------------------
5670 dnl CF_MANPAGE_RENAMES version: 12 updated: 2021/01/01 16:53:59
5671 dnl ------------------
5672 dnl The Debian people have their own naming convention for manpages. This
5673 dnl option lets us override the name of the file containing renaming, or
5674 dnl disable it altogether.
5675 AC_DEFUN([CF_MANPAGE_RENAMES],
5677 AC_MSG_CHECKING(for manpage renaming)
5679 AC_ARG_WITH(manpage-renames,
5680 [ --with-manpage-renames specify manpage-renaming],
5681 [MANPAGE_RENAMES=$withval],
5682 [MANPAGE_RENAMES=yes])
5684 case ".$MANPAGE_RENAMES" in
5688 # Debian 'man' program?
5689 if test -f /etc/debian_version ; then
5690 MANPAGE_RENAMES=`cd "$srcdir" && pwd`/man/man_db.renames
5697 if test "$MANPAGE_RENAMES" != no ; then
5698 if test -f "$srcdir/man/$MANPAGE_RENAMES" ; then
5699 MANPAGE_RENAMES=`cd "$srcdir/man" && pwd`/$MANPAGE_RENAMES
5700 elif test ! -f "$MANPAGE_RENAMES" ; then
5701 AC_MSG_ERROR(not a filename: $MANPAGE_RENAMES)
5704 test ! -d man && mkdir man
5706 # Construct a sed-script to perform renaming within man-pages
5707 if test -n "$MANPAGE_RENAMES" ; then
5708 test ! -d man && mkdir man
5709 $SHELL "$srcdir/man/make_sed.sh" "$MANPAGE_RENAMES" >./edit_man.sed
5713 AC_MSG_RESULT($MANPAGE_RENAMES)
5714 AC_SUBST(MANPAGE_RENAMES)
5716 dnl ---------------------------------------------------------------------------
5717 dnl CF_MANPAGE_SYMLINKS version: 6 updated: 2015/04/17 21:13:04
5718 dnl -------------------
5719 dnl Some people expect each tool to make all aliases for manpages in the
5720 dnl man-directory. This accommodates the older, less-capable implementations
5721 dnl of 'man', and is optional.
5722 AC_DEFUN([CF_MANPAGE_SYMLINKS],
5724 AC_MSG_CHECKING(if manpage aliases will be installed)
5726 AC_ARG_WITH(manpage-aliases,
5727 [ --with-manpage-aliases specify manpage-aliases using .so],
5728 [MANPAGE_ALIASES=$withval],
5729 [MANPAGE_ALIASES=yes])
5731 AC_MSG_RESULT($MANPAGE_ALIASES)
5743 if test "$MANPAGE_ALIASES" = yes ; then
5744 AC_MSG_CHECKING(if manpage symlinks should be used)
5746 AC_ARG_WITH(manpage-symlinks,
5747 [ --with-manpage-symlinks specify manpage-aliases using symlinks],
5748 [MANPAGE_SYMLINKS=$withval],
5749 [MANPAGE_SYMLINKS=$cf_use_symlinks])
5751 if test "$$cf_use_symlinks" = no; then
5752 if test "$MANPAGE_SYMLINKS" = yes ; then
5753 AC_MSG_WARN(cannot make symlinks, will use .so files)
5758 AC_MSG_RESULT($MANPAGE_SYMLINKS)
5762 dnl ---------------------------------------------------------------------------
5763 dnl CF_MANPAGE_TBL version: 3 updated: 2002/01/19 22:51:32
5765 dnl This option causes manpages to be run through tbl(1) to generate tables
5767 AC_DEFUN([CF_MANPAGE_TBL],
5769 AC_MSG_CHECKING(for manpage tbl)
5771 AC_ARG_WITH(manpage-tbl,
5772 [ --with-manpage-tbl specify manpage processing with tbl],
5773 [MANPAGE_TBL=$withval],
5776 AC_MSG_RESULT($MANPAGE_TBL)
5778 dnl ---------------------------------------------------------------------------
5779 dnl CF_MAN_PAGES version: 52 updated: 2022/02/05 12:31:08
5781 dnl Try to determine if the man-pages on the system are compressed, and if
5782 dnl so, what format is used. Use this information to construct a script that
5783 dnl will install man-pages.
5784 AC_DEFUN([CF_MAN_PAGES],
5786 CF_HELP_MESSAGE(Options to Specify How Manpages are Installed:)
5792 if test "$prefix" = "NONE" ; then
5793 cf_prefix="$ac_default_prefix"
5798 case "$MANPAGE_FORMAT" in
5813 test ! -d man && mkdir man
5817 case "$MANPAGE_FORMAT" in
5820 cf_compress=compress
5828 cf_edit_man=./edit_man.sh
5829 cf_man_alias=`pwd`/man_alias.sed
5831 cat >$cf_edit_man <<CF_EOF
5833 # this script is generated by the configure-script CF_MAN_PAGES macro.
5836 datarootdir="$datarootdir"
5839 NCURSES_MAJOR="$NCURSES_MAJOR"
5840 NCURSES_MINOR="$NCURSES_MINOR"
5841 NCURSES_PATCH="$NCURSES_PATCH"
5843 NCURSES_OSPEED="$NCURSES_OSPEED"
5844 TERMINFO="$TERMINFO"
5847 INSTALL_DATA="$INSTALL_DATA"
5849 transform="$program_transform_name"
5851 TMP=\${TMPDIR:=/tmp}/man\$\$
5852 trap "rm -f \$TMP; exit 1" 1 2 3 15
5853 trap "rm -f \$TMP" 0
5865 top_srcdir=\[$]srcdir/..
5868 if test "\$form" = normal ; then
5869 if test "$cf_format" = yes ; then
5870 if test "$cf_inboth" = no ; then
5871 $SHELL "\[$]0" format "\$verb" "\$mandir" "\$srcdir" "\[$]@"
5875 cf_subdir=\$mandir/man
5876 cf_tables=$MANPAGE_TBL
5878 cf_subdir=\$mandir/cat
5882 # process the list of source-files
5883 for i in "\[$]@" ; do
5887 section=\`expr "\$i" : '.*\\.\\([[0-9]]\\)[[xm]]*'\`;
5888 if test "\$verb" = installing ; then
5889 if test ! -d "\$cf_subdir\${section}" ; then
5890 mkdir -p "\$cf_subdir\$section"
5894 # replace variables in man page
5895 if test ! -f "$cf_man_alias" ; then
5896 cat >>$cf_man_alias <<-CF_EOF2
5897 s,@DATADIR@,\$datadir,g
5898 s,@TERMINFO@,\${TERMINFO:="no default value"},g
5899 s,@TERMINFO_DIRS@,\${TERMINFO_DIRS:="no default value"},g
5900 s,@NCURSES_MAJOR@,\${NCURSES_MAJOR:="no default value"},g
5901 s,@NCURSES_MINOR@,\${NCURSES_MINOR:="no default value"},g
5902 s,@NCURSES_PATCH@,\${NCURSES_PATCH:="no default value"},g
5903 s,@NCURSES_OSPEED@,\${NCURSES_OSPEED:="no default value"},g
5908 cf_NAME=`echo "$cf_name" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
5909 cf_name=`echo "$cf_name" | sed "$program_transform_name"`
5910 cat >>$cf_edit_man <<-CF_EOF
5911 s,@$cf_NAME@,$cf_name,g
5915 cat >>$cf_edit_man <<CF_EOF
5917 echo "...made $cf_man_alias"
5921 cf_source=\`basename "\$i"\`
5923 test ! -f "\$inalias" && inalias="\$srcdir/\$inalias"
5924 if test ! -f "\$inalias" ; then
5925 echo ".. skipped \$cf_source"
5930 if test "$MANPAGE_ALIASES" != no ; then
5931 cat >>$cf_edit_man <<CF_EOF
5933 test "$with_curses_h" = yes && nCurses=ncurses.3x
5934 aliases=\`sed -f "\$top_srcdir/man/manlinks.sed" "\$inalias" |sed -f "$cf_man_alias" | sort -u; test "\$inalias" = "\$nCurses" && echo curses\`
5938 if test "$MANPAGE_RENAMES" = no ; then
5939 cat >>$cf_edit_man <<CF_EOF
5940 # perform program transformations for section 1 man pages
5941 if test \$section = 1 ; then
5942 cf_target=\$cf_subdir\${section}/\`echo \$cf_source|sed "\${transform}"\`
5944 cf_target=\$cf_subdir\${section}/\$cf_source
5948 cat >>$cf_edit_man <<CF_EOF
5949 cf_target=\`grep "^\$cf_source" $MANPAGE_RENAMES | $AWK '{print \[$]2}'\`
5950 if test -z "\$cf_target" ; then
5951 echo "? missing rename for \$cf_source"
5952 cf_target="\$cf_source"
5954 cf_target="\$cf_subdir\${section}/\${cf_target}"
5959 cat >>$cf_edit_man <<CF_EOF
5960 sed -f "$cf_man_alias" \\
5963 if test -f "$MANPAGE_RENAMES" ; then
5964 cat >>$cf_edit_man <<CF_EOF
5965 < "\$i" | sed -f `pwd`/edit_man.sed >\$TMP
5968 cat >>$cf_edit_man <<CF_EOF
5973 cat >>$cf_edit_man <<CF_EOF
5974 if test \$cf_tables = yes ; then
5975 tbl \$TMP >\$TMP.out
5980 if test "$with_overwrite" != yes ; then
5981 cat >>$cf_edit_man <<CF_EOF
5982 sed -e "/\\#[ ]*include/s,<curses.h,<ncurses$LIB_SUFFIX/curses.h," < \$TMP >\$TMP.out
5987 if test "$with_curses_h" != yes ; then
5988 cat >>$cf_edit_man <<CF_EOF
5989 sed -e "/\\#[ ]*include/s,curses.h,ncurses.h," < \$TMP >\$TMP.out
5994 cat >>$cf_edit_man <<CF_EOF
5995 if test "\$form" = format ; then
5996 nroff -man \$TMP >\$TMP.out
6001 if test -n "$cf_compress" ; then
6002 cat >>$cf_edit_man <<CF_EOF
6003 if test "\$verb" = installing ; then
6004 if ( "$cf_compress" -f \$TMP )
6006 mv \$TMP.$cf_so_strip \$TMP
6009 cf_target="\$cf_target.$cf_so_strip"
6013 case "$MANPAGE_FORMAT" in
6015 cat >>$cf_edit_man <<CF_EOF
6016 if test "\$form" = format ; then
6017 # BSDI installs only .0 suffixes in the cat directories
6018 cf_target="\`echo \$cf_target|sed -e 's/\\.[[1-9]]\\+[[a-z]]*/.0/'\`"
6024 cat >>$cf_edit_man <<CF_EOF
6025 suffix=\`basename "\$cf_target" | sed -e 's%^[[^.]]*%%'\`
6026 if test "\$verb" = installing ; then
6027 echo "\$verb \$cf_target"
6028 \$INSTALL_DATA \$TMP "\$cf_target"
6029 test -d "\$cf_subdir\${section}" &&
6030 test -n "\$aliases" && (
6031 cd "\$cf_subdir\${section}" && (
6032 cf_source=\`echo "\$cf_target" |sed -e 's%^.*/\\([[^/]][[^/]]*/[[^/]][[^/]]*$\\)%\\1%'\`
6033 test -n "$cf_so_strip" && cf_source=\`echo "\$cf_source" |sed -e 's%\\.$cf_so_strip\$%%'\`
6034 cf_target=\`basename "\$cf_target"\`
6035 for cf_alias in \$aliases
6037 if test "\$section" = 1 ; then
6038 cf_alias=\`echo "\$cf_alias" |sed "\${transform}"\`
6041 if test "$MANPAGE_SYMLINKS" = yes ; then
6042 if test -f "\$cf_alias\${suffix}" ; then
6043 if ( cmp -s "\$cf_target" "\$cf_alias\${suffix}" )
6048 echo ".. \$verb alias \$cf_alias\${suffix}"
6052 cat >>$cf_edit_man <<CF_EOF
6053 $LN_S "\$cf_target" "\$cf_alias\${suffix}"
6057 cat >>$cf_edit_man <<CF_EOF
6058 rm -f "\$cf_alias\${suffix}"
6059 $LN_S "\$cf_target" "\$cf_alias\${suffix}"
6063 cat >>$cf_edit_man <<CF_EOF
6064 elif test "\$cf_target" != "\$cf_alias\${suffix}" ; then
6065 echo ".so \$cf_source" >\$TMP
6067 if test -n "$cf_compress" ; then
6068 cat >>$cf_edit_man <<CF_EOF
6069 if test -n "$cf_so_strip" ; then
6070 "$cf_compress" -f \$TMP
6071 mv \$TMP.$cf_so_strip \$TMP
6075 cat >>$cf_edit_man <<CF_EOF
6076 echo ".. \$verb alias \$cf_alias\${suffix}"
6077 rm -f "\$cf_alias\${suffix}"
6078 \$INSTALL_DATA \$TMP "\$cf_alias\${suffix}"
6083 elif test "\$verb" = removing ; then
6084 test -f "\$cf_target" && (
6085 echo "\$verb \$cf_target"
6088 test -d "\$cf_subdir\${section}" &&
6089 test -n "\$aliases" && (
6090 cd "\$cf_subdir\${section}" && (
6091 for cf_alias in \$aliases
6093 if test "\$section" = 1 ; then
6094 cf_alias=\`echo "\$cf_alias" |sed "\${transform}"\`
6097 echo ".. \$verb alias \$cf_alias\${suffix}"
6098 rm -f "\$cf_alias\${suffix}"
6110 if test "$cf_inboth" = yes ; then
6111 if test "\$form" != format ; then
6112 $SHELL "\[$]0" format "\$verb" "\$mandir" "\$srcdir" "\[$]@"
6118 chmod 755 "$cf_edit_man"
6121 dnl ---------------------------------------------------------------------------
6122 dnl CF_MAP_LIB_BASENAME version: 2 updated: 2021/01/02 17:09:14
6123 dnl -------------------
6124 dnl Convert a default-libname to the actual one used via CF_WITH_LIB_BASENAME.
6126 dnl $1 = variable to set
6127 dnl $2 = default-libname
6128 AC_DEFUN([CF_MAP_LIB_BASENAME],[
6129 CF_UPPER(cf_map_lib_basename,$2)
6130 eval $1="\$${cf_map_lib_basename}_NAME"
6132 dnl ---------------------------------------------------------------------------
6133 dnl CF_MATH_LIB version: 11 updated: 2022/07/27 19:01:48
6135 dnl Checks for libraries. At least one UNIX system, Apple Macintosh
6136 dnl Rhapsody 5.5, does not have -lm. We cannot use the simpler
6137 dnl AC_CHECK_LIB(m,sin), because that fails for C++.
6138 AC_DEFUN([CF_MATH_LIB],
6140 AC_CACHE_CHECK(if -lm needed for math functions,
6147 [double x = rand(); printf("result = %g\\n", ]ifelse([$2],,sin(x),$2)[)],
6148 [cf_cv_need_libm=no],
6149 [cf_cv_need_libm=yes])])
6151 if test "$cf_cv_need_libm" = yes
6154 cf_save_LIBS="$LIBS"
6156 AC_CACHE_CHECK(if -lm is available for math functions,
6163 [double x = rand(); printf("result = %g\\n", ]ifelse([$2],,sin(x),$2)[)],
6164 [cf_cv_have_libm=yes],
6165 [cf_cv_have_libm=no])])
6166 LIBS="$cf_save_LIBS"
6168 if test "$cf_cv_have_libm" = yes
6170 ifelse($1,,[CF_ADD_LIB(m)],[$1=-lm])
6176 if test "$cf_cv_have_libm" = yes
6178 AC_DEFINE(HAVE_MATH_FUNCS,1,[Define to 1 if math functions are available])
6181 dnl ---------------------------------------------------------------------------
6182 dnl CF_MIXEDCASE_FILENAMES version: 9 updated: 2021/01/01 16:53:59
6183 dnl ----------------------
6184 dnl Check if the file-system supports mixed-case filenames. If we're able to
6185 dnl create a lowercase name and see it as uppercase, it doesn't support that.
6186 AC_DEFUN([CF_MIXEDCASE_FILENAMES],
6188 AC_CACHE_CHECK(if filesystem supports mixed-case filenames,cf_cv_mixedcase,[
6189 if test "$cross_compiling" = yes ; then
6190 case "$target_alias" in
6191 (*-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-msys*|*-mingw*|*-uwin*|darwin*)
6199 rm -f conftest CONFTEST
6201 if test -f CONFTEST ; then
6206 rm -f conftest CONFTEST
6209 test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES,1,[Define to 1 if filesystem supports mixed-case filenames.])
6211 dnl ---------------------------------------------------------------------------
6212 dnl CF_MKSTEMP version: 11 updated: 2021/01/01 13:31:04
6214 dnl Check for a working mkstemp. This creates two files, checks that they are
6215 dnl successfully created and distinct (AmigaOS apparently fails on the last).
6216 AC_DEFUN([CF_MKSTEMP],[
6220 AC_CACHE_CHECK(for working mkstemp, cf_cv_func_mkstemp,[
6223 #include <sys/types.h>
6224 #ifdef HAVE_UNISTD_H
6230 #include <sys/stat.h>
6233 char *tmpl = "conftestXXXXXX";
6241 for (n = 0; n < 2; ++n) {
6242 strcpy(name[n], tmpl);
6243 if ((fd = mkstemp(name[n])) >= 0) {
6244 if (!strcmp(name[n], tmpl)
6245 || stat(name[n], &sb) != 0
6246 || (sb.st_mode & S_IFMT) != S_IFREG
6247 || (sb.st_mode & 077) != 0) {
6254 && !strcmp(name[0], name[1]))
6256 ${cf_cv_main_return:-return}(result);
6258 ],[cf_cv_func_mkstemp=yes
6259 ],[cf_cv_func_mkstemp=no
6260 ],[cf_cv_func_mkstemp=maybe])
6262 if test "x$cf_cv_func_mkstemp" = xmaybe ; then
6263 AC_CHECK_FUNC(mkstemp)
6265 if test "x$cf_cv_func_mkstemp" = xyes || test "x$ac_cv_func_mkstemp" = xyes ; then
6266 AC_DEFINE(HAVE_MKSTEMP,1,[Define to 1 if mkstemp() is available and working.])
6269 dnl ---------------------------------------------------------------------------
6270 dnl CF_MSG_LOG version: 5 updated: 2010/10/23 15:52:32
6272 dnl Write a debug message to config.log, along with the line number in the
6273 dnl configure script.
6274 AC_DEFUN([CF_MSG_LOG],[
6275 echo "${as_me:-configure}:__oline__: testing $* ..." 1>&AC_FD_CC
6277 dnl ---------------------------------------------------------------------------
6278 dnl CF_NCURSES_ABI_6 version: 4 updated: 2021/01/01 13:31:04
6279 dnl ----------------
6280 dnl Set ncurses' ABI to 6 unless overridden by explicit configure option, and
6281 dnl warn about this.
6282 AC_DEFUN([CF_NCURSES_ABI_6],[
6283 if test "${with_abi_version+set}" != set; then
6284 case "$cf_cv_rel_version" in
6286 cf_cv_rel_version=6.0
6288 AC_MSG_WARN(overriding ABI version to $cf_cv_abi_version)
6293 dnl ---------------------------------------------------------------------------
6294 dnl CF_NCURSES_WITH_ABI_VERSION version: 3 updated: 2021/01/01 13:31:04
6295 dnl ---------------------------
6296 dnl Allow ncurses's ABI to be overridden. Generally this happens when a
6297 dnl packager has incremented the ABI past that used in the original package,
6298 dnl and wishes to keep doing this.
6300 dnl $1 is the package name, if any, to derive a corresponding {package}_ABI
6302 AC_DEFUN([CF_NCURSES_WITH_ABI_VERSION],[
6303 CF_WITH_ABI_VERSION($1)
6304 if test "x$cf_cv_abi_version" != "x$with_abi_version"
6306 case "$cf_cv_rel_version" in
6308 cf_cv_rel_version=$with_abi_version.0
6313 dnl ---------------------------------------------------------------------------
6314 dnl CF_NO_LEAKS_OPTION version: 9 updated: 2021/06/13 19:45:41
6315 dnl ------------------
6316 dnl see CF_WITH_NO_LEAKS
6318 dnl $1 = option/name
6320 dnl $3 = symbol to define if the option is set
6321 dnl $4 = additional actions to take if the option is set
6322 AC_DEFUN([CF_NO_LEAKS_OPTION],[
6323 AC_MSG_CHECKING(if you want to use $1 for testing)
6326 [case "x$withval" in
6329 : "${with_cflags:=-g}"
6330 : "${enable_leaks:=no}"
6332 AC_DEFINE_UNQUOTED($3,1,"Define to 1 if you want to use $1 for testing.")ifelse([$4],,[
6338 AC_MSG_RESULT(${with_$1:-no})
6340 case ".$with_cflags" in
6352 dnl ---------------------------------------------------------------------------
6353 dnl CF_NUMBER_SYNTAX version: 2 updated: 2015/04/17 21:13:04
6354 dnl ----------------
6355 dnl Check if the given variable is a number. If not, report an error.
6356 dnl $1 is the variable
6357 dnl $2 is the message
6358 AC_DEFUN([CF_NUMBER_SYNTAX],[
6359 if test -n "$1" ; then
6364 AC_MSG_ERROR($2 is not a number: $1)
6368 AC_MSG_ERROR($2 value is empty)
6371 dnl ---------------------------------------------------------------------------
6372 dnl CF_OBJ_SUBDIR version: 8 updated: 2021/01/01 13:31:04
6374 dnl Compute the object-directory name from the given model name
6375 AC_DEFUN([CF_OBJ_SUBDIR],
6378 (libtool) $2='obj_lo' ;;
6379 (normal) $2='objects' ;;
6380 (debug) $2='obj_g' ;;
6381 (profile) $2='obj_p' ;;
6383 case "$cf_cv_system_name" in
6391 dnl ---------------------------------------------------------------------------
6392 dnl CF_PATHSEP version: 8 updated: 2021/01/01 13:31:04
6394 dnl Provide a value for the $PATH and similar separator (or amend the value
6395 dnl as provided in autoconf 2.5x).
6396 AC_DEFUN([CF_PATHSEP],
6398 AC_MSG_CHECKING(for PATH separator)
6399 case "$cf_cv_system_name" in
6400 (os2*) PATH_SEPARATOR=';' ;;
6401 (*) ${PATH_SEPARATOR:=':'} ;;
6403 ifelse([$1],,,[$1=$PATH_SEPARATOR])
6404 AC_SUBST(PATH_SEPARATOR)
6405 AC_MSG_RESULT($PATH_SEPARATOR)
6407 dnl ---------------------------------------------------------------------------
6408 dnl CF_PATH_PROG version: 12 updated: 2021/01/02 09:31:20
6410 dnl Check for a given program, defining corresponding symbol.
6411 dnl $1 = environment variable, which is suffixed by "_PATH" in the #define.
6412 dnl $2 = program name to find.
6413 dnl $3 = optional list of additional program names to test.
6416 dnl If there is more than one token in the result, #define the remaining tokens
6417 dnl to $1_ARGS. We need this for 'install' in particular.
6419 dnl FIXME: we should allow this to be overridden by environment variables
6421 AC_DEFUN([CF_PATH_PROG],[
6422 AC_REQUIRE([CF_PATHSEP])
6423 test -z "[$]$1" && $1="$2"
6424 AC_PATH_PROGS($1,[$]$1 $2 ifelse($3,,,$3),[$]$1, ifelse($4,,,$4))
6428 IFS="${IFS:- }"; cf_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR"
6429 for cf_temp in $ac_cv_path_$1
6431 if test -z "$cf_path_prog" ; then
6432 if test "$with_full_paths" = yes ; then
6433 CF_PATH_SYNTAX(cf_temp,break)
6434 cf_path_prog="$cf_temp"
6436 cf_path_prog="`basename "$cf_temp"`"
6438 elif test -z "$cf_path_args" ; then
6439 cf_path_args="$cf_temp"
6441 cf_path_args="$cf_path_args $cf_temp"
6446 if test -n "$cf_path_prog" ; then
6447 CF_MSG_LOG(defining path for ${cf_path_prog})
6448 AC_DEFINE_UNQUOTED($1_PATH,"$cf_path_prog",Define to pathname $1)
6449 test -n "$cf_path_args" && AC_DEFINE_UNQUOTED($1_ARGS,"$cf_path_args",Define to provide args for $1)
6452 dnl ---------------------------------------------------------------------------
6453 dnl CF_PATH_SYNTAX version: 18 updated: 2020/12/31 18:40:20
6455 dnl Check the argument to see that it looks like a pathname. Rewrite it if it
6456 dnl begins with one of the prefix/exec_prefix variables, and then again if the
6457 dnl result begins with 'NONE'. This is necessary to work around autoconf's
6458 dnl delayed evaluation of those symbols.
6459 AC_DEFUN([CF_PATH_SYNTAX],[
6460 if test "x$prefix" != xNONE; then
6461 cf_path_syntax="$prefix"
6463 cf_path_syntax="$ac_default_prefix"
6467 (.\[$]\(*\)*|.\'*\'*)
6471 (.[[a-zA-Z]]:[[\\/]]*) # OS/2 EMX
6473 (.\[$]\{*prefix\}*|.\[$]\{*dir\}*)
6477 $1=`echo "[$]$1" | sed -e s%NONE%$cf_path_syntax%`
6482 $1=`echo "[$]$1" | sed -e s%NONE%$cf_path_syntax%`
6485 ifelse([$2],,[AC_MSG_ERROR([expected a pathname, not \"[$]$1\"])],$2)
6489 dnl ---------------------------------------------------------------------------
6490 dnl CF_PKG_CONFIG version: 12 updated: 2021/10/10 20:18:09
6492 dnl Check for the package-config program, unless disabled by command-line.
6494 dnl Sets $PKG_CONFIG to the pathname of the pkg-config program.
6495 AC_DEFUN([CF_PKG_CONFIG],
6497 AC_MSG_CHECKING(if you want to use pkg-config)
6498 AC_ARG_WITH(pkg-config,
6499 [ --with-pkg-config{=path} enable/disable use of pkg-config],
6500 [cf_pkg_config=$withval],
6501 [cf_pkg_config=yes])
6502 AC_MSG_RESULT($cf_pkg_config)
6504 case "$cf_pkg_config" in
6509 CF_ACVERSION_CHECK(2.52,
6510 [AC_PATH_TOOL(PKG_CONFIG, pkg-config, none)],
6511 [AC_PATH_PROG(PKG_CONFIG, pkg-config, none)])
6518 test -z "$PKG_CONFIG" && PKG_CONFIG=none
6519 if test "$PKG_CONFIG" != none ; then
6520 CF_PATH_SYNTAX(PKG_CONFIG)
6521 elif test "x$cf_pkg_config" != xno ; then
6522 AC_MSG_WARN(pkg-config is not installed)
6525 AC_SUBST(PKG_CONFIG)
6527 dnl ---------------------------------------------------------------------------
6528 dnl CF_POSIX_C_SOURCE version: 11 updated: 2018/12/31 20:46:17
6529 dnl -----------------
6530 dnl Define _POSIX_C_SOURCE to the given level, and _POSIX_SOURCE if needed.
6532 dnl POSIX.1-1990 _POSIX_SOURCE
6533 dnl POSIX.1-1990 and _POSIX_SOURCE and
6534 dnl POSIX.2-1992 C-Language _POSIX_C_SOURCE=2
6536 dnl POSIX.1b-1993 _POSIX_C_SOURCE=199309L
6537 dnl POSIX.1c-1996 _POSIX_C_SOURCE=199506L
6538 dnl X/Open 2000 _POSIX_C_SOURCE=200112L
6541 dnl $1 is the nominal value for _POSIX_C_SOURCE
6542 AC_DEFUN([CF_POSIX_C_SOURCE],
6543 [AC_REQUIRE([CF_POSIX_VISIBLE])dnl
6545 if test "$cf_cv_posix_visible" = no; then
6547 cf_POSIX_C_SOURCE=ifelse([$1],,199506L,[$1])
6549 cf_save_CFLAGS="$CFLAGS"
6550 cf_save_CPPFLAGS="$CPPFLAGS"
6552 CF_REMOVE_DEFINE(cf_trim_CFLAGS,$cf_save_CFLAGS,_POSIX_C_SOURCE)
6553 CF_REMOVE_DEFINE(cf_trim_CPPFLAGS,$cf_save_CPPFLAGS,_POSIX_C_SOURCE)
6555 AC_CACHE_CHECK(if we should define _POSIX_C_SOURCE,cf_cv_posix_c_source,[
6556 CF_MSG_LOG(if the symbol is already defined go no further)
6557 AC_TRY_COMPILE([#include <sys/types.h>],[
6558 #ifndef _POSIX_C_SOURCE
6561 [cf_cv_posix_c_source=no],
6562 [cf_want_posix_source=no
6563 case .$cf_POSIX_C_SOURCE in
6565 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
6568 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
6569 cf_want_posix_source=yes
6572 cf_want_posix_source=yes
6575 if test "$cf_want_posix_source" = yes ; then
6576 AC_TRY_COMPILE([#include <sys/types.h>],[
6577 #ifdef _POSIX_SOURCE
6580 cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE")
6582 CF_MSG_LOG(ifdef from value $cf_POSIX_C_SOURCE)
6583 CFLAGS="$cf_trim_CFLAGS"
6584 CPPFLAGS="$cf_trim_CPPFLAGS"
6585 CF_APPEND_TEXT(CPPFLAGS,$cf_cv_posix_c_source)
6586 CF_MSG_LOG(if the second compile does not leave our definition intact error)
6587 AC_TRY_COMPILE([#include <sys/types.h>],[
6588 #ifndef _POSIX_C_SOURCE
6591 [cf_cv_posix_c_source=no])
6592 CFLAGS="$cf_save_CFLAGS"
6593 CPPFLAGS="$cf_save_CPPFLAGS"
6597 if test "$cf_cv_posix_c_source" != no ; then
6598 CFLAGS="$cf_trim_CFLAGS"
6599 CPPFLAGS="$cf_trim_CPPFLAGS"
6600 CF_ADD_CFLAGS($cf_cv_posix_c_source)
6603 fi # cf_cv_posix_visible
6606 dnl ---------------------------------------------------------------------------
6607 dnl CF_POSIX_VISIBLE version: 1 updated: 2018/12/31 20:46:17
6608 dnl ----------------
6609 dnl POSIX documents test-macros which an application may set before any system
6610 dnl headers are included to make features available.
6612 dnl Some BSD platforms (originally FreeBSD, but copied by a few others)
6613 dnl diverged from POSIX in 2002 by setting symbols which make all of the most
6614 dnl recent features visible in the system header files unless the application
6615 dnl overrides the corresponding test-macros. Doing that introduces portability
6618 dnl This macro makes a special check for the symbols used for this, to avoid a
6619 dnl conflicting definition.
6620 AC_DEFUN([CF_POSIX_VISIBLE],
6622 AC_CACHE_CHECK(if the POSIX test-macros are already defined,cf_cv_posix_visible,[
6623 AC_TRY_COMPILE([#include <stdio.h>],[
6624 #if defined(__POSIX_VISIBLE) && ((__POSIX_VISIBLE - 0L) > 0) \
6625 && defined(__XSI_VISIBLE) && ((__XSI_VISIBLE - 0L) > 0) \
6626 && defined(__BSD_VISIBLE) && ((__BSD_VISIBLE - 0L) > 0) \
6627 && defined(__ISO_C_VISIBLE) && ((__ISO_C_VISIBLE - 0L) > 0)
6628 #error conflicting symbols found
6630 ],[cf_cv_posix_visible=no],[cf_cv_posix_visible=yes])
6633 dnl ---------------------------------------------------------------------------
6634 dnl CF_PREDEFINE version: 2 updated: 2010/05/26 16:44:57
6636 dnl Add definitions to CPPFLAGS to ensure they're predefined for all compiles.
6638 dnl $1 = symbol to test
6639 dnl $2 = value (if any) to use for a predefinition
6640 AC_DEFUN([CF_PREDEFINE],
6642 AC_MSG_CHECKING(if we must define $1)
6643 AC_TRY_COMPILE([#include <sys/types.h>
6647 #endif],[cf_result=no],[cf_result=yes])
6648 AC_MSG_RESULT($cf_result)
6650 if test "$cf_result" = yes ; then
6651 CPPFLAGS="$CPPFLAGS ifelse([$2],,-D$1,[-D$1=$2])"
6652 elif test "x$2" != "x" ; then
6653 AC_MSG_CHECKING(checking for compatible value versus $2)
6654 AC_TRY_COMPILE([#include <sys/types.h>
6658 #endif],[cf_result=yes],[cf_result=no])
6659 AC_MSG_RESULT($cf_result)
6660 if test "$cf_result" = no ; then
6661 # perhaps we can override it - try...
6662 CPPFLAGS="$CPPFLAGS -D$1=$2"
6666 dnl ---------------------------------------------------------------------------
6667 dnl CF_PRG_RULES version: 2 updated: 2021/01/01 13:31:04
6669 dnl Append definitions and rules for the given programs to the subdirectory
6670 dnl Makefiles, and the recursion rule for the top-level Makefile.
6673 dnl $1 = script to run
6674 dnl $2 = list of subdirectories
6678 AC_DEFUN([CF_PRG_RULES],
6682 if test ! -d "$srcdir/$cf_dir" ; then
6684 elif test -f "$srcdir/$cf_dir/programs" ; then
6685 $AWK -f $1 "$srcdir/$cf_dir/programs" >>$cf_dir/Makefile
6690 dnl ---------------------------------------------------------------------------
6691 dnl CF_PROG_AR version: 1 updated: 2009/01/01 20:15:22
6693 dnl Check for archiver "ar".
6694 AC_DEFUN([CF_PROG_AR],[
6695 AC_CHECK_TOOL(AR, ar, ar)
6697 dnl ---------------------------------------------------------------------------
6698 dnl CF_PROG_AWK version: 1 updated: 2006/09/16 11:40:59
6700 dnl Check for awk, ensure that the check found something.
6701 AC_DEFUN([CF_PROG_AWK],
6704 test -z "$AWK" && AC_MSG_ERROR(No awk program found)
6706 dnl ---------------------------------------------------------------------------
6707 dnl CF_PROG_CC version: 5 updated: 2019/12/31 08:53:54
6709 dnl standard check for CC, plus followup sanity checks
6710 dnl $1 = optional parameter to pass to AC_PROG_CC to specify compiler name
6711 AC_DEFUN([CF_PROG_CC],[
6712 CF_ACVERSION_CHECK(2.53,
6713 [AC_MSG_WARN(this will incorrectly handle gnatgcc choice)
6714 AC_REQUIRE([AC_PROG_CC])],
6716 ifelse($1,,[AC_PROG_CC],[AC_PROG_CC($1)])
6718 CF_ACVERSION_CHECK(2.52,
6723 dnl ---------------------------------------------------------------------------
6724 dnl CF_PROG_CC_C_O version: 6 updated: 2021/01/01 13:31:04
6726 dnl Analogous to AC_PROG_CC_C_O, but more useful: tests only $CC, ensures that
6727 dnl the output file can be renamed, and allows for a shell variable that can
6728 dnl be used later. The parameter is either CC or CXX. The result is the
6730 dnl $cf_cv_prog_CC_c_o
6731 dnl $cf_cv_prog_CXX_c_o
6734 dnl $2 = compiler options, if any
6735 AC_DEFUN([CF_PROG_CC_C_O],
6736 [AC_REQUIRE([AC_PROG_CC])dnl
6737 AC_MSG_CHECKING([whether [$]$1 understands -c and -o together])
6738 AC_CACHE_VAL(cf_cv_prog_$1_c_o,
6740 cat > conftest.$ac_ext <<CF_EOF
6743 ${cf_cv_main_return:-return}(0);
6746 # We do the test twice because some compilers refuse to overwrite an
6747 # existing .o file with -o, though they will create one.
6748 ac_try='[$]$1 $2 -c conftest.$ac_ext -o conftest2.$ac_objext >&AC_FD_CC'
6749 if AC_TRY_EVAL(ac_try) &&
6750 test -f conftest2.$ac_objext && AC_TRY_EVAL(ac_try);
6752 eval cf_cv_prog_$1_c_o=yes
6754 eval cf_cv_prog_$1_c_o=no
6758 if test "$cf_cv_prog_$1_c_o" = yes; then
6759 AC_MSG_RESULT([yes])
6764 dnl ---------------------------------------------------------------------------
6765 dnl CF_PROG_GNAT version: 12 updated: 2021/01/02 17:09:14
6767 dnl Check for gnat/gnatmake/etc, ensure that the toolset is complete.
6768 AC_DEFUN([CF_PROG_GNAT],[
6769 for cf_prog_gnat in gnat gnatmake gprconfig gprbuild
6771 CF_UPPER(cf_upper_prog_gnat,${cf_prog_gnat})
6773 unset ac_cv_path_cf_TEMP_gnat
6775 AC_PATH_PROG(cf_TEMP_gnat,$cf_prog_gnat,no)
6776 eval "cf_cv_PATH_$cf_upper_prog_gnat=[$]ac_cv_path_cf_TEMP_gnat"
6778 if test "x$cf_TEMP_gnat" != xno; then
6779 unset cf_cv_gnat_version
6781 CF_GNAT_VERSION(cf_TEMP_gnat,$cf_prog_gnat)
6783 eval "cf_cv_VERSION_$cf_upper_prog_gnat=[$]cf_TEMP_gnat"
6786 unset cf_cv_gnat_version
6787 unset ac_cv_path_cf_TEMP_gnat
6790 if test "x$cf_cv_VERSION_GNATMAKE" = "xno"; then
6792 cf_cv_prog_gnat_correct=no
6794 cf_ada_make=gnatmake
6795 if test "x$cf_cv_VERSION_GPRCONFIG" = "xno"; then
6796 # gprconfig is newer than gnatmake; we can continue...
6799 rm -rf ./conftest* ./*~conftest*
6800 if mkdir conftest.src
6804 for cf_gprconfig in Ada C
6806 AC_MSG_CHECKING(for gprconfig name for $cf_gprconfig)
6807 if test "$cf_gprconfig" = C
6809 for cf_gprconfig_param in \
6810 "$cf_gprconfig,,,,GNATGCC" \
6811 "$cf_gprconfig,,,,GCC" \
6814 cf_gprconfig_value=`echo s| gprconfig --config=$cf_gprconfig_param 2>&AC_FD_CC | ${AWK:-awk} '/^\*/{print [$]3;}' | head -n 1`
6815 test -n "$cf_gprconfig_value" && break
6818 cf_gprconfig_param=$cf_gprconfig
6819 cf_gprconfig_value=`echo s| gprconfig --config=$cf_gprconfig_param 2>&AC_FD_CC | ${AWK:-awk} '/^\*/{print [$]3;}' | head -n 1`
6821 if test -n "$cf_gprconfig_value"
6823 eval "cf_ada_config_[$]cf_gprconfig=[$]cf_gprconfig_value"
6824 AC_MSG_RESULT($cf_gprconfig_value)
6826 AC_MSG_RESULT(missing)
6832 rm -rf ./conftest* ./*~conftest*
6835 if test "x$cf_ada_config" != "x#"
6838 CF_CHECK_GNAT_VERSION
6839 AC_CHECK_PROG(M4_exists, m4, yes, no)
6840 if test "$ac_cv_prog_M4_exists" = no; then
6841 cf_cv_prog_gnat_correct=no
6842 AC_MSG_WARN(Ada95 binding required program m4 not found. Ada95 binding disabled)
6844 if test "$cf_cv_prog_gnat_correct" = yes; then
6845 AC_MSG_CHECKING(if GNAT works)
6846 CF_GNAT_TRY_RUN([procedure conftest;],
6849 procedure conftest is
6851 Text_IO.Put ("Hello World");
6853 GNAT.OS_Lib.OS_Exit (0);
6855 [cf_cv_prog_gnat_correct=yes],
6856 [cf_cv_prog_gnat_correct=no])
6857 AC_MSG_RESULT($cf_cv_prog_gnat_correct)
6860 cf_cv_prog_gnat_correct=no
6864 AC_SUBST(cf_ada_make)
6865 AC_SUBST(cf_ada_config)
6866 AC_SUBST(cf_ada_config_Ada)
6867 AC_SUBST(cf_ada_config_C)
6869 dnl ---------------------------------------------------------------------------
6870 dnl CF_PROG_INSTALL version: 10 updated: 2021/01/04 19:33:05
6872 dnl Force $INSTALL to be an absolute-path. Otherwise, edit_man.sh and the
6873 dnl misc/tabset install won't work properly. Usually this happens only when
6874 dnl using the fallback mkinstalldirs script
6875 AC_DEFUN([CF_PROG_INSTALL],
6881 CF_DIRNAME(cf_dir,$INSTALL)
6882 test -z "$cf_dir" && cf_dir=.
6883 INSTALL="`cd \"$cf_dir\" && pwd`"/"`echo "$INSTALL" | sed -e 's%^.*/%%'`"
6887 dnl ---------------------------------------------------------------------------
6888 dnl CF_PROG_LDCONFIG version: 5 updated: 2015/04/18 08:56:57
6889 dnl ----------------
6890 dnl Check for ldconfig, needed to fixup shared libraries that would be built
6891 dnl and then used in the install.
6892 AC_DEFUN([CF_PROG_LDCONFIG],[
6893 if test "$cross_compiling" = yes ; then
6896 case "$cf_cv_system_name" in
6897 (dragonfly*|mirbsd*|freebsd*)
6898 test -z "$LDCONFIG" && LDCONFIG="/sbin/ldconfig -R"
6900 (*) LDPATH=$PATH:/sbin:/usr/sbin
6901 AC_PATH_PROG(LDCONFIG,ldconfig,,$LDPATH)
6907 dnl ---------------------------------------------------------------------------
6908 dnl CF_PROG_LINT version: 5 updated: 2022/08/20 15:44:13
6910 AC_DEFUN([CF_PROG_LINT],
6912 AC_CHECK_PROGS(LINT, lint cppcheck splint)
6914 (xcppcheck|x*/cppcheck)
6915 test -z "$LINT_OPTS" && LINT_OPTS="--enable=all"
6921 dnl ---------------------------------------------------------------------------
6922 dnl CF_PROG_LN_S version: 2 updated: 2010/08/14 18:25:37
6924 dnl Combine checks for "ln -s" and "ln -sf", updating $LN_S to include "-f"
6925 dnl option if it is supported.
6926 AC_DEFUN([CF_PROG_LN_S],[
6928 AC_MSG_CHECKING(if $LN_S -f options work)
6930 rm -f conf$$.src conf$$dst
6932 echo first >conf$$.src
6933 if $LN_S -f conf$$.src conf$$.dst 2>/dev/null; then
6938 rm -f conf$$.dst conf$$src
6939 AC_MSG_RESULT($cf_prog_ln_sf)
6941 test "$cf_prog_ln_sf" = yes && LN_S="$LN_S -f"
6943 dnl ---------------------------------------------------------------------------
6944 dnl CF_REGEX version: 18 updated: 2021/01/01 16:53:59
6946 dnl Attempt to determine if we've got one of the flavors of regular-expression
6947 dnl code that we can support.
6948 AC_DEFUN([CF_REGEX],
6955 # -lsystre -ltre -lintl -liconv
6956 AC_CHECK_LIB(systre,regcomp,[
6957 AC_CHECK_LIB(iconv,libiconv_open,[CF_ADD_LIB(iconv)])
6958 AC_CHECK_LIB(intl,libintl_gettext,[CF_ADD_LIB(intl)])
6959 AC_CHECK_LIB(tre,tre_regcomp,[CF_ADD_LIB(tre)])
6961 cf_regex_func=regcomp
6963 AC_CHECK_LIB(gnurx,regcomp,[
6965 cf_regex_func=regcomp])
6969 cf_regex_libs="regex re"
6970 AC_CHECK_FUNC(regcomp,[cf_regex_func=regcomp],[
6971 for cf_regex_lib in $cf_regex_libs
6973 AC_CHECK_LIB($cf_regex_lib,regcomp,[
6974 CF_ADD_LIB($cf_regex_lib)
6975 cf_regex_func=regcomp
6982 if test "$cf_regex_func" = no ; then
6983 AC_CHECK_FUNC(compile,[cf_regex_func=compile],[
6984 AC_CHECK_LIB(gen,compile,[
6986 cf_regex_func=compile])])
6989 if test "$cf_regex_func" = no ; then
6990 AC_MSG_WARN(cannot find regular expression library)
6993 AC_CACHE_CHECK(for regular-expression headers,cf_cv_regex_hdrs,[
6996 case "$cf_regex_func" in
6998 for cf_regex_hdr in regexp.h regexpr.h
7000 AC_TRY_LINK([#include <$cf_regex_hdr>],[
7001 char *p = compile("", "", "", 0);
7002 int x = step("", "");
7006 cf_cv_regex_hdrs=$cf_regex_hdr
7012 for cf_regex_hdr in regex.h
7014 AC_TRY_LINK([#include <sys/types.h>
7015 #include <$cf_regex_hdr>],[
7017 int x = regcomp(p, "", 0);
7018 int y = regexec(p, "", 0, 0, 0);
7023 cf_cv_regex_hdrs=$cf_regex_hdr
7032 case "$cf_cv_regex_hdrs" in
7033 (no) AC_MSG_WARN(no regular expression header found) ;;
7034 (regex.h) AC_DEFINE(HAVE_REGEX_H_FUNCS,1,[Define to 1 to include regex.h for regular expressions]) ;;
7035 (regexp.h) AC_DEFINE(HAVE_REGEXP_H_FUNCS,1,[Define to 1 to include regexp.h for regular expressions]) ;;
7036 (regexpr.h) AC_DEFINE(HAVE_REGEXPR_H_FUNCS,1,[Define to 1 to include regexpr.h for regular expressions]) ;;
7039 dnl ---------------------------------------------------------------------------
7040 dnl CF_REMOVE_CFLAGS version: 3 updated: 2021/09/05 17:25:40
7041 dnl ----------------
7042 dnl Remove a given option from CFLAGS/CPPFLAGS
7043 dnl $1 = option to remove
7044 dnl $2 = variable to update
7045 dnl $3 = nonempty to allow verbose message
7046 define([CF_REMOVE_CFLAGS],
7048 cf_tmp_cflag=`echo "x$1" | sed -e 's/^.//' -e 's/=.*//'`
7051 cf_old_cflag=`echo "x[$]$2" | sed -e 's/^.//' -e 's/[[ ]][[ ]]*-/ -/g' -e "s%$cf_tmp_cflag\\(=[[^ ]][[^ ]]*\\)\?%%" -e 's/^[[ ]]*//' -e 's%[[ ]][[ ]]*-D% -D%g' -e 's%[[ ]][[ ]]*-I% -I%g'`
7052 test "[$]$2" != "$cf_old_cflag" || break
7053 ifelse([$3],,,[CF_VERBOSE(removing old option $1 from $2)])
7057 dnl ---------------------------------------------------------------------------
7058 dnl CF_REMOVE_DEFINE version: 3 updated: 2010/01/09 11:05:50
7059 dnl ----------------
7060 dnl Remove all -U and -D options that refer to the given symbol from a list
7061 dnl of C compiler options. This works around the problem that not all
7062 dnl compilers process -U and -D options from left-to-right, so a -U option
7063 dnl cannot be used to cancel the effect of a preceding -D option.
7065 dnl $1 = target (which could be the same as the source variable)
7066 dnl $2 = source (including '$')
7067 dnl $3 = symbol to remove
7068 define([CF_REMOVE_DEFINE],
7071 sed -e 's/-[[UD]]'"$3"'\(=[[^ ]]*\)\?[[ ]]/ /g' \
7072 -e 's/-[[UD]]'"$3"'\(=[[^ ]]*\)\?[$]//g'`
7074 dnl ---------------------------------------------------------------------------
7075 dnl CF_REMOVE_LIB version: 1 updated: 2007/02/17 14:11:52
7077 dnl Remove the given library from the symbol
7079 dnl $1 = target (which could be the same as the source variable)
7080 dnl $2 = source (including '$')
7081 dnl $3 = library to remove
7082 define([CF_REMOVE_LIB],
7084 # remove $3 library from $2
7085 $1=`echo "$2" | sed -e 's/-l$3[[ ]]//g' -e 's/-l$3[$]//'`
7087 dnl ---------------------------------------------------------------------------
7088 dnl CF_RESTORE_XTRA_FLAGS version: 1 updated: 2020/01/11 16:47:45
7089 dnl ---------------------
7090 dnl Restore flags saved in CF_SAVE_XTRA_FLAGS
7091 dnl $1 = name of current macro
7092 define([CF_RESTORE_XTRA_FLAGS],
7094 LIBS="$cf_save_LIBS_$1"
7095 CFLAGS="$cf_save_CFLAGS_$1"
7096 CPPFLAGS="$cf_save_CPPFLAGS_$1"
7098 dnl ---------------------------------------------------------------------------
7099 dnl CF_RPATH_HACK version: 13 updated: 2021/01/03 18:30:50
7101 AC_DEFUN([CF_RPATH_HACK],
7102 [AC_REQUIRE([AC_PROG_FGREP])dnl
7103 AC_REQUIRE([CF_LD_RPATH_OPT])dnl
7105 AC_MSG_CHECKING(for updated LDFLAGS)
7106 if test -n "$LD_RPATH_OPT" ; then
7107 AC_MSG_RESULT(maybe)
7109 AC_CHECK_PROGS(cf_ldd_prog,ldd,no)
7110 cf_rpath_list="/usr/lib /lib"
7111 if test "$cf_ldd_prog" != no
7115 AC_TRY_LINK([#include <stdio.h>],
7117 [cf_rpath_oops=`"$cf_ldd_prog" "conftest$ac_exeext" | ${FGREP-fgrep} ' not found' | sed -e 's% =>.*$%%' |sort | uniq`
7118 cf_rpath_list=`"$cf_ldd_prog" "conftest$ac_exeext" | ${FGREP-fgrep} / | sed -e 's%^.*[[ ]]/%/%' -e 's%/[[^/]][[^/]]*$%%' |sort | uniq`])
7120 # If we passed the link-test, but get a "not found" on a given library,
7121 # this could be due to inept reconfiguration of gcc to make it only
7122 # partly honor /usr/local/lib (or whatever). Sometimes this behavior
7123 # is intentional, e.g., installing gcc in /usr/bin and suppressing the
7124 # /usr/local libraries.
7125 if test -n "$cf_rpath_oops"
7127 for cf_rpath_src in $cf_rpath_oops
7129 for cf_rpath_dir in \
7134 if test -f "$cf_rpath_dir/lib/$cf_rpath_src"
7136 CF_VERBOSE(...adding -L$cf_rpath_dir/lib to LDFLAGS for $cf_rpath_src)
7137 LDFLAGS="$LDFLAGS -L$cf_rpath_dir/lib"
7145 CF_VERBOSE(...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS)
7147 CF_RPATH_HACK_2(LDFLAGS)
7148 CF_RPATH_HACK_2(LIBS)
7150 CF_VERBOSE(...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS)
7154 AC_SUBST(EXTRA_LDFLAGS)
7156 dnl ---------------------------------------------------------------------------
7157 dnl CF_RPATH_HACK_2 version: 8 updated: 2021/01/01 13:31:04
7159 dnl Do one set of substitutions for CF_RPATH_HACK, adding an rpath option to
7160 dnl EXTRA_LDFLAGS for each -L option found.
7162 dnl $cf_rpath_list contains a list of directories to ignore.
7164 dnl $1 = variable name to update. The LDFLAGS variable should be the only one,
7165 dnl but LIBS often has misplaced -L options.
7166 AC_DEFUN([CF_RPATH_HACK_2],
7168 CF_VERBOSE(...checking $1 [$]$1)
7171 for cf_rpath_src in [$]$1
7173 case "$cf_rpath_src" in
7176 # check if this refers to a directory which we will ignore
7178 if test -n "$cf_rpath_list"
7180 for cf_rpath_item in $cf_rpath_list
7182 if test "x$cf_rpath_src" = "x-L$cf_rpath_item"
7190 if test "$cf_rpath_skip" = no
7192 # transform the option
7193 if test "$LD_RPATH_OPT" = "-R " ; then
7194 cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%-R %"`
7196 cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%$LD_RPATH_OPT%"`
7199 # if we have not already added this, add it now
7200 cf_rpath_tst=`echo "$EXTRA_LDFLAGS" | sed -e "s%$cf_rpath_tmp %%"`
7201 if test "x$cf_rpath_tst" = "x$EXTRA_LDFLAGS"
7203 CF_VERBOSE(...Filter $cf_rpath_src ->$cf_rpath_tmp)
7204 EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS"
7209 cf_rpath_dst="$cf_rpath_dst $cf_rpath_src"
7213 CF_VERBOSE(...checked $1 [$]$1)
7214 AC_SUBST(EXTRA_LDFLAGS)
7216 dnl ---------------------------------------------------------------------------
7217 dnl CF_SAVE_XTRA_FLAGS version: 1 updated: 2020/01/11 16:46:44
7218 dnl ------------------
7219 dnl Use this macro to save CFLAGS/CPPFLAGS/LIBS before checks against X headers
7220 dnl and libraries which do not update those variables.
7222 dnl $1 = name of current macro
7223 define([CF_SAVE_XTRA_FLAGS],
7225 cf_save_LIBS_$1="$LIBS"
7226 cf_save_CFLAGS_$1="$CFLAGS"
7227 cf_save_CPPFLAGS_$1="$CPPFLAGS"
7228 LIBS="$LIBS ${X_PRE_LIBS} ${X_LIBS} ${X_EXTRA_LIBS}"
7229 for cf_X_CFLAGS in $X_CFLAGS
7231 case "x$cf_X_CFLAGS" in
7233 CPPFLAGS="$CPPFLAGS $cf_X_CFLAGS"
7236 CFLAGS="$CFLAGS $cf_X_CFLAGS"
7241 dnl ---------------------------------------------------------------------------
7242 dnl CF_SHARED_OPTS version: 107 updated: 2021/09/04 06:47:34
7245 dnl Attempt to determine the appropriate CC/LD options for creating a shared
7249 dnl a) ${LOCAL_LDFLAGS} is used to link executables that will run within
7250 dnl the build-tree, i.e., by making use of the libraries that are compiled in
7251 dnl $rel_builddir/lib We avoid compiling-in a $rel_builddir/lib path for the
7252 dnl shared library since that can lead to unexpected results at runtime.
7253 dnl b) ${LOCAL_LDFLAGS2} has the same intention but assumes that the shared
7254 dnl libraries are compiled in ../../lib
7256 dnl The variable 'cf_cv_do_symlinks' is used to control whether we configure
7257 dnl to install symbolic links to the rel/abi versions of shared libraries.
7259 dnl The variable 'cf_cv_shlib_version' controls whether we use the rel or abi
7260 dnl version when making symbolic links.
7262 dnl The variable 'cf_cv_shlib_version_infix' controls whether shared library
7263 dnl version numbers are infix (ex: libncurses.<ver>.dylib) or postfix
7264 dnl (ex: libncurses.so.<ver>).
7266 dnl Some loaders leave 'so_locations' lying around. It is nice to clean up.
7267 AC_DEFUN([CF_SHARED_OPTS],
7269 AC_REQUIRE([CF_LD_RPATH_OPT])
7275 INSTALL_LIB="-m 644"
7276 : ${rel_builddir:=.}
7284 cf_cv_do_symlinks=no
7286 test "$cf_cv_enable_rpath" = yes && cf_ld_rpath_opt="$LD_RPATH_OPT"
7288 AC_MSG_CHECKING(if release/abi version should be used for shared libs)
7289 AC_ARG_WITH(shlib-version,
7290 [ --with-shlib-version=X Specify rel or abi version for shared libs],
7291 [test -z "$withval" && withval=auto
7294 cf_cv_shlib_version=auto
7297 cf_cv_shlib_version=$withval
7300 AC_MSG_RESULT($withval)
7301 AC_MSG_ERROR([option value must be one of: rel, abi, or auto])
7304 ],[cf_cv_shlib_version=auto])
7305 AC_MSG_RESULT($cf_cv_shlib_version)
7310 # Some less-capable ports of gcc support only -fpic
7314 if test "$GCC" = yes
7318 case "$cf_cv_system_name" in
7319 (*linux*) # e.g., PGI compiler
7325 if test "$cf_try_fPIC" = yes
7327 AC_MSG_CHECKING(which $CC option to use)
7328 cf_save_CFLAGS="$CFLAGS"
7329 for CC_SHARED_OPTS in -fPIC -fpic ''
7331 CFLAGS="$cf_save_CFLAGS $CC_SHARED_OPTS"
7332 AC_TRY_COMPILE([#include <stdio.h>],[int x = 1],[break],[])
7334 AC_MSG_RESULT($CC_SHARED_OPTS)
7335 CFLAGS="$cf_save_CFLAGS"
7338 cf_cv_shlib_version_infix=no
7340 case "$cf_cv_system_name" in
7341 (aix4.[3-9]*|aix[[5-7]]*)
7342 if test "$GCC" = yes; then
7343 CC_SHARED_OPTS='-Wl,-brtl'
7344 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o [$]@'
7346 CC_SHARED_OPTS='-brtl'
7347 # as well as '-qpic=large -G' or perhaps "-bM:SRE -bnoentry -bexpall"
7348 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -G -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o [$]@'
7352 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -o $[@] -Xlinker -soname=`basename $[@]` -nostart -e 0'
7356 MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
7357 RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
7358 cf_cv_shlib_version=cygdll
7359 cf_cv_shlib_version_infix=cygdll
7362 cat >mk_shared_lib.sh <<-CF_EOF
7365 IMPORT_LIB=\`echo "\[$]1" | sed -e 's/cyg/lib/' -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
7368 Linking shared library
7369 ** SHARED_LIB \[$]SHARED_LIB
7370 ** IMPORT_LIB \[$]IMPORT_LIB
7372 exec \[$]* ${LDFLAGS} -shared -Wl,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB}
7374 chmod +x mk_shared_lib.sh
7378 MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
7379 RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
7380 cf_cv_shlib_version=msysdll
7381 cf_cv_shlib_version_infix=msysdll
7384 cat >mk_shared_lib.sh <<-CF_EOF
7387 IMPORT_LIB=\`echo "\[$]1" | sed -e 's/msys-/lib/' -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
7390 Linking shared library
7391 ** SHARED_LIB \[$]SHARED_LIB
7392 ** IMPORT_LIB \[$]IMPORT_LIB
7394 exec \[$]* ${LDFLAGS} -shared -Wl,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB}
7396 chmod +x mk_shared_lib.sh
7399 cf_try_cflags="no-cpp-precomp"
7400 CC_SHARED_OPTS="-dynamic"
7401 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -dynamiclib -install_name ${libdir}/`basename $[@]` -compatibility_version ${ABI_VERSION} -current_version ${ABI_VERSION} -o $[@]'
7402 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi
7403 cf_cv_shlib_version_infix=yes
7404 AC_CACHE_CHECK([if ld -search_paths_first works], cf_cv_ldflags_search_paths_first, [
7405 cf_save_LDFLAGS=$LDFLAGS
7406 LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
7407 AC_TRY_LINK(, [int i;], cf_cv_ldflags_search_paths_first=yes, cf_cv_ldflags_search_paths_first=no)
7408 LDFLAGS=$cf_save_LDFLAGS])
7409 if test "$cf_cv_ldflags_search_paths_first" = yes; then
7410 LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
7415 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
7418 # HP-UX 8.07 ld lacks "+b" option used for libdir search-list
7419 if test "$GCC" != yes; then
7422 MK_SHARED_LIB='${LD} ${LDFLAGS} -b -o $[@]'
7423 INSTALL_LIB="-m 555"
7426 # (tested with gcc 2.7.2 -- I don't have c89)
7427 if test "$GCC" = yes; then
7428 LD_SHARED_OPTS='-Xlinker +b -Xlinker ${libdir}'
7431 LD_SHARED_OPTS='-Wl,+b,${libdir}'
7433 MK_SHARED_LIB='${LD} ${LDFLAGS} +b ${libdir} -b -o $[@]'
7434 # HP-UX shared libraries must be executable, and should be
7435 # readonly to exploit a quirk in the memory manager.
7436 INSTALL_LIB="-m 555"
7439 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
7440 if test "$cf_cv_shlib_version" = rel; then
7441 cf_shared_soname='`basename $[@] .${REL_VERSION}`.${ABI_VERSION}'
7443 cf_shared_soname='`basename $[@]`'
7446 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-rpath,${RPATH_LIST} -Wl,-h,'$cf_shared_soname' -o $[@]'
7449 if test "$cf_cv_enable_rpath" = yes ; then
7450 EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
7452 # tested with IRIX 5.2 and 'cc'.
7453 if test "$GCC" != yes; then
7454 CC_SHARED_OPTS='-KPIC'
7455 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -rdata_shared -soname `basename $[@]` -o $[@]'
7457 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,`basename $[@]` -o $[@]'
7459 cf_cv_rm_so_locs=yes
7461 (linux*|gnu*|k*bsd*-gnu)
7462 if test "$DFT_LWR_MODEL" = "shared" && test -n "$LD_RPATH_OPT" ; then
7463 LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
7464 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
7466 if test "$cf_cv_enable_rpath" = yes ; then
7467 EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
7470 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
7473 cf_cv_shlib_version=msvcdll
7474 cf_cv_shlib_version_infix=msvcdll
7477 if test "$DFT_LWR_MODEL" = "shared" ; then
7478 LOCAL_LDFLAGS="-link -dll"
7479 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
7480 EXTRA_LDFLAGS="-link -dll $EXTRA_LDFLAGS"
7483 MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ ${LD} [$]{CFLAGS}'
7484 RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.lib"
7485 cat >mk_shared_lib.sh <<-CF_EOF
7488 IMPORT_LIB=\`echo "\[$]1" | sed -e 's/[[0-9]]*\.dll[$]/.dll.lib/'\`
7493 Linking shared library
7494 ** SHARED LIB \$SHARED_LIB
7495 ** IMPORT_LIB \$IMPORT_LIB
7497 args=\$(echo \[$]* | sed -E "s#-l(\w*)#\1.dll.lib#g" | sed -E "s#-L(\w*)#-LIBPATH:\1#g")
7498 exec \$my_ld -DLL -IMPLIB:"\${IMPORT_LIB}" -OUT:"\${SHARED_LIB}" ${LDFLAGS} \$args
7499 mv "\${IMPORT_LIB}" "\${IMPORT_LIB}"
7501 chmod +x mk_shared_lib.sh
7502 cat >mk_prog.sh <<-CF_EOF
7505 # Ignore first argument (compiler) and use LD (link.exe) unconditionally
7508 ldopts=("/subsystem:console")
7511 while test \[$]# -gt 0; do
7514 # ignore -link argument
7516 -M[[TD]] | -M[[TD]]d)
7517 # ignore runtime-library option
7532 libs+=("\`echo \"\[$]1\" | sed \"s/^-l//\"\`")
7535 ldopts+=("\`echo \"\[$]1\" | sed \"s/^-L/-LIBPATH:/\"\`")
7541 for linkarg in \`echo '\[$]1' | sed -e 's/-Wl,//' -e 's/,/ /'\`; do
7542 ldopts+=("\[$]{linkarg}")
7550 ldopts+=("-out:\[$]1")
7559 if [[ "\$isdll" -ne 0 ]]; then
7560 for lib in \[$]{libs[[*]]}; do
7561 ldopts+=("\[$]lib.dll.lib")
7564 for lib in \[$]{libs[[*]]}; do
7565 ldopts+=("\[$]lib.lib")
7570 ** ld options: "\[$]{ldopts[[@]]}"
7572 exec \[$]LD \[$]{ldopts[[@]]}
7575 LINK_PROGS="$SHELL ${rel_builddir}/mk_prog.sh"
7576 LINK_TESTS="$SHELL ${rel_builddir}/mk_prog.sh"
7579 cf_cv_shlib_version=mingw
7580 cf_cv_shlib_version_infix=mingw
7583 if test "$DFT_LWR_MODEL" = "shared" ; then
7584 LOCAL_LDFLAGS="-Wl,--enable-auto-import"
7585 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
7586 EXTRA_LDFLAGS="-Wl,--enable-auto-import $EXTRA_LDFLAGS"
7589 MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
7590 RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
7591 cat >mk_shared_lib.sh <<-CF_EOF
7594 IMPORT_LIB=\`echo "\[$]1" | sed -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
7597 Linking shared library
7598 ** SHARED_LIB \[$]SHARED_LIB
7599 ** IMPORT_LIB \[$]IMPORT_LIB
7601 exec \[$]* ${LDFLAGS} -shared -Wl,--enable-auto-import,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB}
7603 chmod +x mk_shared_lib.sh
7605 (openbsd[[2-9]].*|mirbsd*)
7606 if test "$DFT_LWR_MODEL" = "shared" && test -n "$LD_RPATH_OPT" ; then
7607 LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
7608 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
7610 if test "$cf_cv_enable_rpath" = yes ; then
7611 EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
7613 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
7615 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-Bshareable,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
7619 MK_SHARED_LIB='${LD} -Wshared -Weld=-export_all -o $[@]'
7623 MK_SHARED_LIB='${LD} -Wshared -Wxld=-export_all -o $[@]'
7625 (nto-qnx*|openbsd*|freebsd[[12]].*)
7626 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
7627 MK_SHARED_LIB='${LD} ${LDFLAGS} -Bshareable -o $[@]'
7628 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
7630 (dragonfly*|freebsd*)
7631 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
7632 if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then
7633 LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)"
7634 LOCAL_LDFLAGS2="${cf_ld_rpath_opt}\${RPATH_LIST} $LOCAL_LDFLAGS"
7635 EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
7638 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
7641 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
7642 if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then
7643 LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)"
7644 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
7645 EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
7646 if test "$cf_cv_shlib_version" = auto; then
7647 if test -f /usr/libexec/ld.elf_so; then
7648 cf_cv_shlib_version=abi
7650 cf_cv_shlib_version=rel
7654 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname' -o $[@]'
7656 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -o $[@]'
7660 # tested with OSF/1 V3.2 and 'cc'
7661 # tested with OSF/1 V3.2 and gcc 2.6.3 (but the c++ demo didn't
7662 # link with shared libs).
7663 MK_SHARED_LIB='${LD} ${LDFLAGS} -set_version ${REL_VERSION}:${ABI_VERSION} -expect_unresolved "*" -shared -soname `basename $[@]`'
7666 MK_SHARED_LIB="${MK_SHARED_LIB} -msym"
7669 MK_SHARED_LIB="${MK_SHARED_LIB}"' -o $[@]'
7670 if test "$DFT_LWR_MODEL" = "shared" && test -n "$LD_RPATH_OPT" ; then
7671 LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
7672 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
7674 cf_cv_rm_so_locs=yes
7676 (sco3.2v5*) # also uw2* and UW7: hops 13-Apr-98
7677 # tested with osr5.0.5
7678 if test "$GCC" != yes; then
7679 CC_SHARED_OPTS='-belf -KPIC'
7681 MK_SHARED_LIB='${LD} ${LDFLAGS} -dy -G -h `basename $[@] .${REL_VERSION}`.${ABI_VERSION} -o [$]@'
7682 if test "$cf_cv_enable_rpath" = yes ; then
7683 # only way is to set LD_RUN_PATH but no switch for it
7686 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
7687 LINK_PROGS='LD_RUN_PATH=${libdir}'
7688 LINK_TESTS='Pwd=`pwd`;LD_RUN_PATH=`dirname $${Pwd}`/lib'
7691 # tested with SunOS 4.1.1 and gcc 2.7.0
7692 if test "$GCC" != yes; then
7693 CC_SHARED_OPTS='-KPIC'
7695 MK_SHARED_LIB='${LD} ${LDFLAGS} -assert pure-text -o $[@]'
7696 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
7699 # tested with SunOS 5.5.1 (solaris 2.5.1) and gcc 2.7.2
7700 # tested with SunOS 5.10 (solaris 10) and gcc 3.4.3
7701 if test "$DFT_LWR_MODEL" = "shared" ; then
7702 LOCAL_LDFLAGS="-R \$(LOCAL_LIBDIR):\${libdir}"
7703 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
7705 if test "$cf_cv_enable_rpath" = yes ; then
7706 EXTRA_LDFLAGS="-R \${libdir} $EXTRA_LDFLAGS"
7709 if test "$GCC" != yes; then
7710 cf_save_CFLAGS="$CFLAGS"
7711 for cf_shared_opts in -xcode=pic32 -xcode=pic13 -KPIC -Kpic -O
7713 CFLAGS="$cf_shared_opts $cf_save_CFLAGS"
7714 AC_TRY_COMPILE([#include <stdio.h>],[printf("Hello\\n");],[break])
7716 CFLAGS="$cf_save_CFLAGS"
7717 CC_SHARED_OPTS=$cf_shared_opts
7718 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -dy -G -h '$cf_cv_shared_soname' -o $[@]'
7720 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -dy -G -h '$cf_cv_shared_soname' -o $[@]'
7723 (sysv5uw7*|unix_sv*)
7724 # tested with UnixWare 7.1.0 (gcc 2.95.2 and cc)
7725 if test "$GCC" != yes; then
7726 CC_SHARED_OPTS='-KPIC'
7728 MK_SHARED_LIB='${LD} ${LDFLAGS} -d y -G -o [$]@'
7731 CC_SHARED_OPTS='unknown'
7732 MK_SHARED_LIB='echo unknown'
7736 # This works if the last tokens in $MK_SHARED_LIB are the -o target.
7737 case "$cf_cv_shlib_version" in
7739 case "$MK_SHARED_LIB" in
7741 test "$cf_cv_do_symlinks" = no && cf_cv_do_symlinks=yes
7744 AC_MSG_WARN(ignored --with-shlib-version)
7750 if test -n "$cf_try_cflags"
7752 cat > conftest.$ac_ext <<EOF
7753 #line __oline__ "${as_me:-configure}"
7755 int main(int argc, char *argv[[]])
7758 return (argv[[argc-1]] == 0) ;
7761 cf_save_CFLAGS="$CFLAGS"
7762 for cf_opt in $cf_try_cflags
7764 CFLAGS="$cf_save_CFLAGS -$cf_opt"
7765 AC_MSG_CHECKING(if CFLAGS option -$cf_opt works)
7766 if AC_TRY_EVAL(ac_compile); then
7768 cf_save_CFLAGS="$CFLAGS"
7773 CFLAGS="$cf_save_CFLAGS"
7777 # RPATH_LIST is a colon-separated list of directories
7778 test -n "$cf_ld_rpath_opt" && MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${RPATH_LIST}"
7779 test -z "$RPATH_LIST" && RPATH_LIST="\${libdir}"
7781 test "$cf_cv_rm_so_locs" = yes && RM_SHARED_OPTS="$RM_SHARED_OPTS so_locations"
7783 CF_VERBOSE(CC_SHARED_OPTS: $CC_SHARED_OPTS)
7784 CF_VERBOSE(MK_SHARED_LIB: $MK_SHARED_LIB)
7786 AC_SUBST(CC_SHARED_OPTS)
7787 AC_SUBST(LD_RPATH_OPT)
7788 AC_SUBST(LD_SHARED_OPTS)
7789 AC_SUBST(MK_SHARED_LIB)
7790 AC_SUBST(RM_SHARED_OPTS)
7792 AC_SUBST(LINK_PROGS)
7793 AC_SUBST(LINK_TESTS)
7795 AC_SUBST(EXTRA_LDFLAGS)
7796 AC_SUBST(LOCAL_LDFLAGS)
7797 AC_SUBST(LOCAL_LDFLAGS2)
7799 AC_SUBST(INSTALL_LIB)
7800 AC_SUBST(RPATH_LIST)
7802 dnl ---------------------------------------------------------------------------
7803 dnl CF_SHARED_SONAME version: 3 updated: 2008/09/08 18:34:43
7804 dnl ----------------
7805 dnl utility macro for CF_SHARED_OPTS, constructs "$cf_cv_shared_soname" for
7806 dnl substitution into MK_SHARED_LIB string for the "-soname" (or similar)
7809 dnl $1 is the default that should be used for "$cf_cv_shlib_version".
7810 dnl If missing, use "rel".
7811 define([CF_SHARED_SONAME],
7813 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=ifelse($1,,rel,$1)
7814 if test "$cf_cv_shlib_version" = rel; then
7815 cf_cv_shared_soname='`basename $[@] .${REL_VERSION}`.${ABI_VERSION}'
7817 cf_cv_shared_soname='`basename $[@]`'
7820 dnl ---------------------------------------------------------------------------
7821 dnl CF_SIGWINCH version: 6 updated: 2021/01/01 13:31:04
7823 dnl Use this macro after CF_XOPEN_SOURCE, but do not require it (not all
7824 dnl programs need this test).
7826 dnl This is really a Mac OS X 10.4.3 workaround. Defining _POSIX_C_SOURCE
7827 dnl forces SIGWINCH to be undefined (breaks xterm, ncurses). Oddly, the struct
7828 dnl winsize declaration is left alone - we may revisit this if Apple choose to
7829 dnl break that part of the interface as well.
7830 AC_DEFUN([CF_SIGWINCH],
7832 AC_CACHE_CHECK(if SIGWINCH is defined,cf_cv_define_sigwinch,[
7834 #include <sys/types.h>
7835 #include <sys/signal.h>
7836 ],[int x = SIGWINCH; (void)x],
7837 [cf_cv_define_sigwinch=yes],
7839 #undef _XOPEN_SOURCE
7840 #undef _POSIX_SOURCE
7841 #undef _POSIX_C_SOURCE
7842 #include <sys/types.h>
7843 #include <sys/signal.h>
7844 ],[int x = SIGWINCH; (void)x],
7845 [cf_cv_define_sigwinch=maybe],
7846 [cf_cv_define_sigwinch=no])
7850 if test "$cf_cv_define_sigwinch" = maybe ; then
7851 AC_CACHE_CHECK(for actual SIGWINCH definition,cf_cv_fixup_sigwinch,[
7852 cf_cv_fixup_sigwinch=unknown
7854 while test "$cf_sigwinch" != 1
7857 #undef _XOPEN_SOURCE
7858 #undef _POSIX_SOURCE
7859 #undef _POSIX_C_SOURCE
7860 #include <sys/types.h>
7861 #include <sys/signal.h>
7863 #if SIGWINCH != $cf_sigwinch
7866 int x = SIGWINCH; (void)x],
7867 [cf_cv_fixup_sigwinch=$cf_sigwinch
7870 cf_sigwinch="`expr "$cf_sigwinch" - 1`"
7874 if test "$cf_cv_fixup_sigwinch" != unknown ; then
7875 CPPFLAGS="$CPPFLAGS -DSIGWINCH=$cf_cv_fixup_sigwinch"
7879 dnl ---------------------------------------------------------------------------
7880 dnl CF_SIG_ATOMIC_T version: 5 updated: 2020/03/10 18:53:47
7882 dnl signal handler, but there are some gcc dependencies in that recommendation.
7884 AC_DEFUN([CF_SIG_ATOMIC_T],
7886 AC_MSG_CHECKING(for signal global datatype)
7887 AC_CACHE_VAL(cf_cv_sig_atomic_t,[
7889 "volatile sig_atomic_t" \
7894 #include <sys/types.h>
7900 static void handler(int sig)
7905 [signal(SIGINT, handler);
7907 [cf_cv_sig_atomic_t=$cf_type],
7908 [cf_cv_sig_atomic_t=no])
7909 test "$cf_cv_sig_atomic_t" != no && break
7912 AC_MSG_RESULT($cf_cv_sig_atomic_t)
7913 test "$cf_cv_sig_atomic_t" != no && AC_DEFINE_UNQUOTED(SIG_ATOMIC_T, $cf_cv_sig_atomic_t,[Define to signal global datatype])
7915 dnl ---------------------------------------------------------------------------
7916 dnl CF_SIZECHANGE version: 18 updated: 2021/09/04 06:35:04
7918 dnl Check for definitions & structures needed for window size-changing
7920 dnl https://stackoverflow.com/questions/18878141/difference-between-structures-ttysize-and-winsize/50769952#50769952
7921 AC_DEFUN([CF_SIZECHANGE],
7923 AC_REQUIRE([CF_STRUCT_TERMIOS])
7924 AC_CACHE_CHECK(declaration of size-change, cf_cv_sizechange,[
7925 cf_cv_sizechange=unknown
7926 cf_save_CPPFLAGS="$CPPFLAGS"
7928 for cf_opts in "" "NEED_PTEM_H"
7931 CPPFLAGS="$cf_save_CPPFLAGS"
7932 if test -n "$cf_opts"
7934 CF_APPEND_TEXT(CPPFLAGS,-D$cf_opts)
7936 AC_TRY_COMPILE([#include <sys/types.h>
7937 #ifdef HAVE_TERMIOS_H
7938 #include <termios.h>
7940 #ifdef HAVE_TERMIO_H
7946 /* This is a workaround for SCO: they neglected to define struct winsize in
7947 * termios.h -- it is only in termio.h and ptem.h
7949 #include <sys/stream.h>
7950 #include <sys/ptem.h>
7953 #ifdef HAVE_SYS_IOCTL_H
7954 #include <sys/ioctl.h>
7958 struct ttysize win; /* SunOS 3.0... */
7959 int y = win.ts_lines = 2;
7960 int x = win.ts_cols = 1;
7965 struct winsize win; /* everything else */
7966 int y = win.ws_row = 2;
7967 int x = win.ws_col = 1;
7971 no TIOCGSIZE or TIOCGWINSZ
7972 #endif /* TIOCGWINSZ */
7973 #endif /* TIOCGSIZE */
7975 [cf_cv_sizechange=yes],
7976 [cf_cv_sizechange=no])
7978 CPPFLAGS="$cf_save_CPPFLAGS"
7979 if test "$cf_cv_sizechange" = yes ; then
7980 echo "size-change succeeded ($cf_opts)" >&AC_FD_CC
7981 test -n "$cf_opts" && cf_cv_sizechange="$cf_opts"
7986 if test "$cf_cv_sizechange" != no ; then
7987 AC_DEFINE(HAVE_SIZECHANGE,1,[Define to 1 if sizechange declarations are provided])
7988 case "$cf_cv_sizechange" in
7990 AC_DEFINE_UNQUOTED($cf_cv_sizechange )
7995 dnl ---------------------------------------------------------------------------
7996 dnl CF_SRC_MODULES version: 33 updated: 2021/01/01 13:31:04
7998 dnl For each parameter, test if the source-directory exists, and if it contains
7999 dnl a 'modules' file. If so, add to the list $cf_cv_src_modules which we'll
8000 dnl use in CF_LIB_RULES.
8002 dnl This uses the configured value to make the lists SRC_SUBDIRS and
8003 dnl SUB_MAKEFILES which are used in the makefile-generation scheme.
8004 AC_DEFUN([CF_SRC_MODULES],
8006 AC_REQUIRE([CF_CHECK_GNAT_VERSION])
8007 AC_MSG_CHECKING(for src modules)
8009 # dependencies and linker-arguments for test-programs
8010 TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEPS"
8011 TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEP2"
8012 if test "$DFT_LWR_MODEL" = "libtool"; then
8013 TEST_ARGS="${TEST_DEPS}"
8014 TEST_ARG2="${TEST_DEP2}"
8016 TEST_ARGS="-l${LIB_NAME}${USE_ARG_SUFFIX} $TEST_ARGS"
8017 TEST_ARG2="-l${LIB_NAME}${USE_ARG_SUFFIX} $TEST_ARG2"
8020 PC_MODULES_TO_MAKE="ncurses${USE_ARG_SUFFIX}"
8024 if test -f "$srcdir/$cf_dir/modules" ; then
8026 # We may/may not have tack in the distribution, though the
8028 if test "$cf_dir" = tack ; then
8029 if test "x$cf_with_tack" != "xyes"; then
8034 if test -z "$cf_cv_src_modules"; then
8035 cf_cv_src_modules=$cf_dir
8037 cf_cv_src_modules="$cf_cv_src_modules $cf_dir"
8040 # Make the ncurses_cfg.h file record the library interface files as
8041 # well. These are header files that are the same name as their
8042 # directory. Ncurses is the only library that does not follow
8044 if test "$cf_dir" = tack ; then
8046 elif test -f "$srcdir/${cf_dir}/${cf_dir}.h" ; then
8047 CF_UPPER(cf_have_include,$cf_dir)
8048 AC_DEFINE_UNQUOTED(HAVE_${cf_have_include}_H)
8049 AC_DEFINE_UNQUOTED(HAVE_LIB${cf_have_include})
8050 CF_MAP_LIB_BASENAME(TEST_ROOT,$cf_dir)
8051 TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${TEST_ROOT}${DFT_DEP_SUFFIX} $TEST_DEPS"
8052 TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${TEST_ROOT}${DFT_DEP_SUFFIX} $TEST_DEP2"
8053 if test "$DFT_LWR_MODEL" = "libtool"; then
8054 TEST_ARGS="${TEST_DEPS}"
8055 TEST_ARG2="${TEST_DEP2}"
8057 TEST_ARGS="-l${TEST_ROOT}${USE_ARG_SUFFIX} $TEST_ARGS"
8058 TEST_ARG2="-l${TEST_ROOT}${USE_ARG_SUFFIX} $TEST_ARG2"
8060 PC_MODULES_TO_MAKE="${PC_MODULES_TO_MAKE} ${cf_dir}${USE_ARG_SUFFIX}"
8064 AC_MSG_RESULT($cf_cv_src_modules)
8066 TEST_ARGS="-L${LIB_DIR} $TEST_ARGS"
8067 TEST_ARG2="-L${LIB_2ND} $TEST_ARG2"
8076 if test "x$cf_with_manpages" != xno ; then
8077 SRC_SUBDIRS="$SRC_SUBDIRS man"
8079 SRC_SUBDIRS="$SRC_SUBDIRS include"
8080 for cf_dir in $cf_cv_src_modules
8082 SRC_SUBDIRS="$SRC_SUBDIRS $cf_dir"
8084 if test "x$cf_with_tests" != "xno" ; then
8085 SRC_SUBDIRS="$SRC_SUBDIRS test"
8087 # always make this, to install the ncurses-config script
8088 SRC_SUBDIRS="$SRC_SUBDIRS misc"
8089 if test "$cf_with_cxx_binding" != no; then
8090 PC_MODULES_TO_MAKE="${PC_MODULES_TO_MAKE} ncurses++${USE_ARG_SUFFIX}"
8091 SRC_SUBDIRS="$SRC_SUBDIRS c++"
8094 test "x$with_termlib" != xno && PC_MODULES_TO_MAKE="$PC_MODULES_TO_MAKE $TINFO_ARG_SUFFIX"
8095 test "x$with_ticlib" != xno && PC_MODULES_TO_MAKE="$PC_MODULES_TO_MAKE $TICS_ARG_SUFFIX"
8097 AC_SUBST(PC_MODULES_TO_MAKE)
8100 if test "x$cf_with_ada" = "xyes" && test "x$cf_cv_prog_gnat_correct" = xyes && test -f "$srcdir/Ada95/Makefile.in" ; then
8101 SRC_SUBDIRS="$SRC_SUBDIRS Ada95"
8102 ADA_SUBDIRS="gen src"
8103 if test "x$cf_with_tests" != "xno" ; then
8104 ADA_SUBDIRS="$ADA_SUBDIRS samples"
8109 for cf_dir in $SRC_SUBDIRS
8111 SUB_MAKEFILES="$SUB_MAKEFILES $cf_dir/Makefile"
8114 if test -n "$ADA_SUBDIRS"; then
8115 for cf_dir in $ADA_SUBDIRS
8117 SUB_MAKEFILES="$SUB_MAKEFILES Ada95/$cf_dir/Makefile"
8119 AC_SUBST(ADA_SUBDIRS)
8122 dnl ---------------------------------------------------------------------------
8123 dnl CF_STDCPP_LIBRARY version: 12 updated: 2021/01/01 13:31:04
8124 dnl -----------------
8125 dnl Check for -lstdc++, which is GNU's standard C++ library.
8126 dnl If $CXXLIBS is set, add that to the libraries used for test-linking.
8127 dnl If -lstdc++ was not already added to $LIBS or $CXXLIBS, and is needed,
8128 dnl add it to $CXXLIBS.
8129 AC_DEFUN([CF_STDCPP_LIBRARY],
8131 if test -n "$GXX" ; then
8134 LIBS="$LIBS $CXXLIBS"
8135 AC_MSG_CHECKING(if we already have C++ library)
8137 #include <iostream>],[
8138 std::cout << "Hello World!" << std::endl;],
8139 [cf_have_libstdcpp=yes],
8140 [cf_have_libstdcpp=no])
8141 AC_MSG_RESULT($cf_have_libstdcpp)
8144 if test "$cf_have_libstdcpp" != yes
8146 case "$cf_cv_system_name" in
8148 if test -z "`g++ -dM -E - < /dev/null | grep __KLIBC__`"; then
8149 cf_stdcpp_libname=stdcpp
8151 cf_stdcpp_libname=stdc++
8155 cf_stdcpp_libname=stdc++
8159 AC_CACHE_CHECK(for library $cf_stdcpp_libname,cf_cv_libstdcpp,[
8161 LIBS="$LIBS $CXXLIBS"
8162 CF_ADD_LIB($cf_stdcpp_libname)
8164 #include <iostream>],[
8165 std::cout << "Hello World!" << std::endl;],
8166 [cf_cv_libstdcpp=yes],
8167 [cf_cv_libstdcpp=no])
8170 test "$cf_cv_libstdcpp" = yes && { CF_ADD_LIB($cf_stdcpp_libname,CXXLIBS) }
8174 dnl ---------------------------------------------------------------------------
8175 dnl CF_STRIP_G_OPT version: 4 updated: 2021/01/02 09:31:20
8177 dnl Remove "-g" option from the compiler options
8178 AC_DEFUN([CF_STRIP_G_OPT],
8179 [$1=`echo "${$1}" | CF__SED_TRIMBLANKS(-e 's%-g %%' -e 's%-g$%%')`])dnl
8180 dnl ---------------------------------------------------------------------------
8181 dnl CF_STRUCT_SIGACTION version: 5 updated: 2012/10/06 17:56:13
8182 dnl -------------------
8183 dnl Check if we need _POSIX_SOURCE defined to use struct sigaction. We'll only
8184 dnl do this if we've found the sigaction function.
8185 AC_DEFUN([CF_STRUCT_SIGACTION],[
8186 AC_REQUIRE([CF_XOPEN_SOURCE])
8188 if test "$ac_cv_func_sigaction" = yes; then
8189 AC_MSG_CHECKING(whether sigaction needs _POSIX_SOURCE)
8191 #include <sys/types.h>
8192 #include <signal.h>],
8193 [struct sigaction act],
8197 #define _POSIX_SOURCE
8198 #include <sys/types.h>
8199 #include <signal.h>],
8200 [struct sigaction act],
8202 AC_DEFINE(_POSIX_SOURCE,1,[Define to 1 if we must define _POSIX_SOURCE])],
8203 [sigact_bad=unknown])])
8204 AC_MSG_RESULT($sigact_bad)
8207 dnl ---------------------------------------------------------------------------
8208 dnl CF_STRUCT_TERMIOS version: 11 updated: 2020/03/19 20:46:13
8209 dnl -----------------
8210 dnl Some machines require _POSIX_SOURCE to completely define struct termios.
8211 AC_DEFUN([CF_STRUCT_TERMIOS],[
8212 AC_REQUIRE([CF_XOPEN_SOURCE])
8222 if test "$ac_cv_header_termios_h" = yes ; then
8223 case "$CFLAGS $CPPFLAGS" in
8225 termios_bad=dunno ;;
8226 (*) termios_bad=maybe ;;
8228 if test "$termios_bad" = maybe ; then
8229 AC_MSG_CHECKING(whether termios.h needs _POSIX_SOURCE)
8230 AC_TRY_COMPILE([#include <termios.h>],
8231 [struct termios foo; int x = foo.c_iflag = 1; (void)x],
8234 #define _POSIX_SOURCE
8235 #include <termios.h>],
8236 [struct termios foo; int x = foo.c_iflag = 2; (void)x],
8237 termios_bad=unknown,
8238 termios_bad=yes AC_DEFINE(_POSIX_SOURCE,1,[Define to 1 if we must define _POSIX_SOURCE]))
8240 AC_MSG_RESULT($termios_bad)
8244 dnl ---------------------------------------------------------------------------
8245 dnl CF_SUBDIR_PATH version: 7 updated: 2014/12/04 04:33:06
8247 dnl Construct a search-list for a nonstandard header/lib-file
8248 dnl $1 = the variable to return as result
8249 dnl $2 = the package name
8250 dnl $3 = the subdirectory, e.g., bin, include or lib
8251 AC_DEFUN([CF_SUBDIR_PATH],
8255 CF_ADD_SUBDIR_PATH($1,$2,$3,$prefix,NONE)
8257 for cf_subdir_prefix in \
8265 CF_ADD_SUBDIR_PATH($1,$2,$3,$cf_subdir_prefix,$prefix)
8268 dnl ---------------------------------------------------------------------------
8269 dnl CF_SUBST_IF version: 2 updated: 2006/06/17 12:33:03
8271 dnl Shorthand macro for substituting things that the user may override
8272 dnl with an environment variable.
8274 dnl $1 = condition to pass to "test"
8275 dnl $2 = environment variable
8276 dnl $3 = value if the test succeeds
8277 dnl $4 = value if the test fails
8278 AC_DEFUN([CF_SUBST_IF],
8287 dnl ---------------------------------------------------------------------------
8288 dnl CF_SUBST_NCURSES_VERSION version: 10 updated: 2021/01/04 18:48:01
8289 dnl ------------------------
8290 dnl Get the version-number for use in shared-library naming, etc.
8291 AC_DEFUN([CF_SUBST_NCURSES_VERSION],
8292 [AC_REQUIRE([AC_PROG_EGREP])dnl
8294 NCURSES_MAJOR="`${EGREP-egrep} '^NCURSES_MAJOR[[ ]]*=' "$srcdir/dist.mk" | sed -e 's/^[[^0-9]]*//'`"
8295 NCURSES_MINOR="`${EGREP-egrep} '^NCURSES_MINOR[[ ]]*=' "$srcdir/dist.mk" | sed -e 's/^[[^0-9]]*//'`"
8296 NCURSES_PATCH="`${EGREP-egrep} '^NCURSES_PATCH[[ ]]*=' "$srcdir/dist.mk" | sed -e 's/^[[^0-9]]*//'`"
8297 cf_cv_abi_version=${NCURSES_MAJOR}
8298 cf_cv_rel_version=${NCURSES_MAJOR}.${NCURSES_MINOR}
8299 dnl Show the computed version, for logging
8300 cf_cv_timestamp=`date`
8301 AC_MSG_RESULT(Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp))
8302 dnl We need these values in the generated headers
8303 AC_SUBST(NCURSES_MAJOR)
8304 AC_SUBST(NCURSES_MINOR)
8305 AC_SUBST(NCURSES_PATCH)
8306 dnl We need these values in the generated makefiles
8307 AC_SUBST(cf_cv_rel_version)
8308 AC_SUBST(cf_cv_abi_version)
8309 AC_SUBST(cf_cv_builtin_bool)
8310 AC_SUBST(cf_cv_header_stdbool_h)
8311 AC_SUBST(cf_cv_type_of_bool)dnl
8313 dnl ---------------------------------------------------------------------------
8314 dnl CF_SYS_TIME_SELECT version: 6 updated: 2015/04/18 08:56:57
8315 dnl ------------------
8316 dnl Check if we can include <sys/time.h> with <sys/select.h>; this breaks on
8317 dnl older SCO configurations.
8318 AC_DEFUN([CF_SYS_TIME_SELECT],
8320 AC_MSG_CHECKING(if sys/time.h works with sys/select.h)
8321 AC_CACHE_VAL(cf_cv_sys_time_select,[
8323 #include <sys/types.h>
8324 #ifdef HAVE_SYS_TIME_H
8325 #include <sys/time.h>
8327 #ifdef HAVE_SYS_SELECT_H
8328 #include <sys/select.h>
8330 ],[],[cf_cv_sys_time_select=yes],
8331 [cf_cv_sys_time_select=no])
8333 AC_MSG_RESULT($cf_cv_sys_time_select)
8334 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>])
8336 dnl ---------------------------------------------------------------------------
8337 dnl CF_TOP_BUILDDIR version: 2 updated: 2013/07/27 17:38:32
8339 dnl Define a top_builddir symbol, for applications that need an absolute path.
8340 AC_DEFUN([CF_TOP_BUILDDIR],
8342 top_builddir=ifelse($1,,`pwd`,$1)
8343 AC_SUBST(top_builddir)
8345 dnl ---------------------------------------------------------------------------
8346 dnl CF_TRY_PKG_CONFIG version: 6 updated: 2020/12/31 10:54:15
8347 dnl -----------------
8348 dnl This is a simple wrapper to use for pkg-config, for libraries which may be
8349 dnl available in that form.
8351 dnl $1 = package name, which may be a shell variable
8352 dnl $2 = extra logic to use, if any, after updating CFLAGS and LIBS
8353 dnl $3 = logic to use if pkg-config does not have the package
8354 AC_DEFUN([CF_TRY_PKG_CONFIG],[
8355 AC_REQUIRE([CF_PKG_CONFIG])
8357 if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists "$1"; then
8358 CF_VERBOSE(found package $1)
8359 cf_pkgconfig_incs="`$PKG_CONFIG --cflags "$1" 2>/dev/null`"
8360 cf_pkgconfig_libs="`$PKG_CONFIG --libs "$1" 2>/dev/null`"
8361 CF_VERBOSE(package $1 CFLAGS: $cf_pkgconfig_incs)
8362 CF_VERBOSE(package $1 LIBS: $cf_pkgconfig_libs)
8363 CF_ADD_CFLAGS($cf_pkgconfig_incs)
8364 CF_ADD_LIBS($cf_pkgconfig_libs)
8365 ifelse([$2],,:,[$2])
8369 ifelse([$3],,:,[$3])
8372 dnl ---------------------------------------------------------------------------
8373 dnl CF_TRY_XOPEN_SOURCE version: 3 updated: 2021/08/28 15:20:37
8374 dnl -------------------
8375 dnl If _XOPEN_SOURCE is not defined in the compile environment, check if we
8376 dnl can define it successfully.
8377 AC_DEFUN([CF_TRY_XOPEN_SOURCE],[
8378 AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[
8382 #include <sys/types.h>
8384 #ifndef _XOPEN_SOURCE
8387 [cf_cv_xopen_source=no],
8388 [cf_save="$CPPFLAGS"
8389 CF_APPEND_TEXT(CPPFLAGS,-D_XOPEN_SOURCE=$cf_XOPEN_SOURCE)
8393 #include <sys/types.h>
8395 #ifdef _XOPEN_SOURCE
8398 [cf_cv_xopen_source=no],
8399 [cf_cv_xopen_source=$cf_XOPEN_SOURCE])
8404 if test "$cf_cv_xopen_source" != no ; then
8405 CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE)
8406 CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE)
8407 cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
8408 CF_APPEND_CFLAGS($cf_temp_xopen_source)
8411 dnl ---------------------------------------------------------------------------
8412 dnl CF_TYPEOF_CHTYPE version: 10 updated: 2017/01/21 11:06:25
8413 dnl ----------------
8414 dnl Determine the type we should use for chtype (and attr_t, which is treated
8415 dnl as the same thing). We want around 32 bits, so on most machines want a
8416 dnl long, but on newer 64-bit machines, probably want an int. If we're using
8417 dnl wide characters, we have to have a type compatible with that, as well.
8418 AC_DEFUN([CF_TYPEOF_CHTYPE],
8420 AC_MSG_CHECKING([for type of chtype])
8421 AC_CACHE_VAL(cf_cv_typeof_chtype,[
8423 #define WANT_BITS 31
8427 FILE *fp = fopen("cf_test.out", "w");
8429 char *result = "long";
8430 if (sizeof(unsigned long) > sizeof(unsigned int)) {
8433 for (n = 0; n < WANT_BITS; n++) {
8436 if (y != 1 || x == 0) {
8442 * If x is nonzero, an int is big enough for the bits
8445 result = (x != 0) ? "int" : "long";
8450 ${cf_cv_main_return:-return}(0);
8453 [cf_cv_typeof_chtype=`cat cf_test.out`],
8454 [cf_cv_typeof_chtype=long],
8455 [cf_cv_typeof_chtype=long])
8458 AC_MSG_RESULT($cf_cv_typeof_chtype)
8460 AC_SUBST(cf_cv_typeof_chtype)
8461 AC_DEFINE_UNQUOTED(TYPEOF_CHTYPE,$cf_cv_typeof_chtype,[Define to actual type if needed for chtype])
8463 dnl ---------------------------------------------------------------------------
8464 dnl CF_TYPE_SIGACTION version: 4 updated: 2012/10/06 17:56:13
8465 dnl -----------------
8467 AC_DEFUN([CF_TYPE_SIGACTION],
8469 AC_MSG_CHECKING([for type sigaction_t])
8470 AC_CACHE_VAL(cf_cv_type_sigaction,[
8472 #include <signal.h>],
8474 [cf_cv_type_sigaction=yes],
8475 [cf_cv_type_sigaction=no])])
8476 AC_MSG_RESULT($cf_cv_type_sigaction)
8477 test "$cf_cv_type_sigaction" = yes && AC_DEFINE(HAVE_TYPE_SIGACTION,1,[Define to 1 if we have the sigaction_t type])
8479 dnl ---------------------------------------------------------------------------
8480 dnl CF_UNSIGNED_LITERALS version: 2 updated: 1998/02/07 22:10:16
8481 dnl --------------------
8482 dnl Test if the compiler supports 'U' and 'L' suffixes. Only old compilers
8483 dnl won't, but they're still there.
8484 AC_DEFUN([CF_UNSIGNED_LITERALS],
8486 AC_MSG_CHECKING([if unsigned literals are legal])
8487 AC_CACHE_VAL(cf_cv_unsigned_literals,[
8488 AC_TRY_COMPILE([],[long x = 1L + 1UL + 1U + 1],
8489 [cf_cv_unsigned_literals=yes],
8490 [cf_cv_unsigned_literals=no])
8492 AC_MSG_RESULT($cf_cv_unsigned_literals)
8494 dnl ---------------------------------------------------------------------------
8495 dnl CF_UPPER version: 5 updated: 2001/01/29 23:40:59
8497 dnl Make an uppercase version of a variable
8498 dnl $1=uppercase($2)
8499 AC_DEFUN([CF_UPPER],
8501 $1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
8503 dnl ---------------------------------------------------------------------------
8504 dnl CF_UTF8_LIB version: 9 updated: 2021/05/19 19:35:25
8506 dnl Check for multibyte support, and if not found, utf8 compatibility library
8507 AC_DEFUN([CF_UTF8_LIB],
8509 AC_HAVE_HEADERS(wchar.h)
8510 AC_CACHE_CHECK(for multibyte character support,cf_cv_utf8_lib,[
8511 cf_save_LIBS="$LIBS"
8519 [cf_cv_utf8_lib=yes],
8521 #include <libutf8.h>],[putwc(0,0);],utf8,
8522 [cf_cv_utf8_lib=add-on],
8523 [cf_cv_utf8_lib=no])
8526 # HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
8528 if test "$cf_cv_utf8_lib" = "add-on" ; then
8529 AC_DEFINE(HAVE_LIBUTF8_H,1,[Define to 1 if we should include libutf8.h])
8530 CF_ADD_INCDIR($cf_cv_header_path_utf8)
8531 CF_ADD_LIBDIR($cf_cv_library_path_utf8)
8532 CF_ADD_LIBS($cf_cv_library_file_utf8)
8535 dnl ---------------------------------------------------------------------------
8536 dnl CF_VA_COPY version: 6 updated: 2018/12/04 18:14:25
8538 dnl check for va_copy, part of stdarg.h starting with ISO C 1999.
8539 dnl Also, workaround for glibc's __va_copy, by checking for both.
8540 dnl Finally, try to accommodate pre-ISO C 1999 headers.
8541 AC_DEFUN([CF_VA_COPY],[
8542 AC_CACHE_CHECK(for va_copy, cf_cv_have_va_copy,[
8549 cf_cv_have_va_copy=yes,
8550 cf_cv_have_va_copy=no)])
8552 if test "$cf_cv_have_va_copy" = yes;
8554 AC_DEFINE(HAVE_VA_COPY,1,[Define to 1 if we have va_copy])
8555 else # !cf_cv_have_va_copy
8557 AC_CACHE_CHECK(for __va_copy, cf_cv_have___va_copy,[
8563 __va_copy(dst, src)],
8564 cf_cv_have___va_copy=yes,
8565 cf_cv_have___va_copy=no)])
8567 if test "$cf_cv_have___va_copy" = yes
8569 AC_DEFINE(HAVE___VA_COPY,1,[Define to 1 if we have __va_copy])
8570 else # !cf_cv_have___va_copy
8572 AC_CACHE_CHECK(for __builtin_va_copy, cf_cv_have___builtin_va_copy,[
8578 __builtin_va_copy(dst, src)],
8579 cf_cv_have___builtin_va_copy=yes,
8580 cf_cv_have___builtin_va_copy=no)])
8582 test "$cf_cv_have___builtin_va_copy" = yes &&
8583 AC_DEFINE(HAVE___BUILTIN_VA_COPY,1,[Define to 1 if we have __builtin_va_copy])
8585 fi # cf_cv_have___va_copy
8587 fi # cf_cv_have_va_copy
8589 case "${cf_cv_have_va_copy}${cf_cv_have___va_copy}${cf_cv_have___builtin_va_copy}" in
8594 AC_CACHE_CHECK(if we can simply copy va_list, cf_cv_pointer_va_list,[
8601 cf_cv_pointer_va_list=yes,
8602 cf_cv_pointer_va_list=no)])
8604 if test "$cf_cv_pointer_va_list" = no
8606 AC_CACHE_CHECK(if we can copy va_list indirectly, cf_cv_array_va_list,[
8613 cf_cv_array_va_list=yes,
8614 cf_cv_array_va_list=no)])
8615 test "$cf_cv_array_va_list" = yes && AC_DEFINE(ARRAY_VA_LIST,1,[Define to 1 if we can copy va_list indirectly])
8620 dnl ---------------------------------------------------------------------------
8621 dnl CF_VERBOSE version: 3 updated: 2007/07/29 09:55:12
8623 dnl Use AC_VERBOSE w/o the warnings
8624 AC_DEFUN([CF_VERBOSE],
8625 [test -n "$verbose" && echo " $1" 1>&AC_FD_MSG
8628 dnl ---------------------------------------------------------------------------
8629 dnl CF_VERSION_INFO version: 8 updated: 2021/01/01 13:31:04
8631 dnl Define several useful symbols derived from the VERSION file. A separate
8632 dnl file is preferred to embedding the version numbers in various scripts.
8633 dnl (automake is a textbook-example of why the latter is a bad idea, but there
8636 dnl The file contents are:
8637 dnl libtool-version release-version patch-version
8641 dnl libtool-version (see ?) consists of 3 integers separated by '.'
8642 dnl release-version consists of a major version and minor version
8643 dnl separated by '.', optionally followed by a patch-version
8644 dnl separated by '-'. The minor version need not be an
8645 dnl integer (but it is preferred).
8646 dnl patch-version is an integer in the form yyyymmdd, so ifdef's and
8647 dnl scripts can easily compare versions.
8649 dnl If libtool is used, the first form is required, since CF_WITH_LIBTOOL
8650 dnl simply extracts the first field using 'cut -f1'.
8652 dnl Optional parameters:
8653 dnl $1 = internal name for package
8654 dnl $2 = external name for package
8655 AC_DEFUN([CF_VERSION_INFO],
8657 if test -f "$srcdir/VERSION" ; then
8658 AC_MSG_CHECKING(for package version)
8660 # if there are not enough fields, cut returns the last one...
8661 cf_field1=`sed -e '2,$d' "$srcdir/VERSION" |cut -f1`
8662 cf_field2=`sed -e '2,$d' "$srcdir/VERSION" |cut -f2`
8663 cf_field3=`sed -e '2,$d' "$srcdir/VERSION" |cut -f3`
8665 # this is how CF_BUNDLED_INTL uses $VERSION:
8666 VERSION="$cf_field1"
8668 VERSION_MAJOR=`echo "$cf_field2" | sed -e 's/\..*//'`
8669 test -z "$VERSION_MAJOR" && AC_MSG_ERROR(missing major-version)
8671 VERSION_MINOR=`echo "$cf_field2" | sed -e 's/^[[^.]]*\.//' -e 's/-.*//'`
8672 test -z "$VERSION_MINOR" && AC_MSG_ERROR(missing minor-version)
8674 AC_MSG_RESULT(${VERSION_MAJOR}.${VERSION_MINOR})
8676 AC_MSG_CHECKING(for package patch date)
8677 VERSION_PATCH=`echo "$cf_field3" | sed -e 's/^[[^-]]*-//'`
8678 case .$VERSION_PATCH in
8680 AC_MSG_ERROR(missing patch-date $VERSION_PATCH)
8682 (.[[0-9]][[0-9]][[0-9]][[0-9]][[0-9]][[0-9]][[0-9]][[0-9]])
8685 AC_MSG_ERROR(illegal patch-date $VERSION_PATCH)
8688 AC_MSG_RESULT($VERSION_PATCH)
8690 AC_MSG_ERROR(did not find $srcdir/VERSION)
8693 # show the actual data that we have for versions:
8694 CF_VERBOSE(ABI VERSION $VERSION)
8695 CF_VERBOSE(VERSION_MAJOR $VERSION_MAJOR)
8696 CF_VERBOSE(VERSION_MINOR $VERSION_MINOR)
8697 CF_VERBOSE(VERSION_PATCH $VERSION_PATCH)
8700 AC_SUBST(VERSION_MAJOR)
8701 AC_SUBST(VERSION_MINOR)
8702 AC_SUBST(VERSION_PATCH)
8704 dnl if a package name is given, define its corresponding version info. We
8705 dnl need the package name to ensure that the defined symbols are unique.
8708 PACKAGE=ifelse($2,,$1,$2)
8709 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE",[Define to the package-name])
8711 CF_UPPER(cf_PACKAGE,$cf_PACKAGE)
8712 AC_DEFINE_UNQUOTED(${cf_PACKAGE}_VERSION,"${VERSION_MAJOR}.${VERSION_MINOR}")
8713 AC_DEFINE_UNQUOTED(${cf_PACKAGE}_PATCHDATE,${VERSION_PATCH})
8716 dnl ---------------------------------------------------------------------------
8717 dnl CF_WCHAR_TYPE version: 4 updated: 2012/10/06 16:39:58
8719 dnl Check if type wide-character type $1 is declared, and if so, which header
8720 dnl file is needed. The second parameter is used to set a shell variable when
8721 dnl the type is not found. The first parameter sets a shell variable for the
8723 AC_DEFUN([CF_WCHAR_TYPE],
8725 # This is needed on Tru64 5.0 to declare $1
8726 AC_CACHE_CHECK(if we must include wchar.h to declare $1,cf_cv_$1,[
8731 #ifdef HAVE_LIBUTF8_H
8732 #include <libutf8.h>
8741 #ifdef HAVE_LIBUTF8_H
8742 #include <libutf8.h>
8746 [cf_cv_$1=unknown])])])
8748 if test "$cf_cv_$1" = yes ; then
8749 AC_DEFINE(NEED_WCHAR_H,1,[Define to 1 if we must include wchar.h])
8754 # if we do not find $1 in either place, use substitution to provide a fallback.
8755 if test "$cf_cv_$1" = unknown ; then
8760 # if we find $1 in either place, use substitution to provide a fallback.
8761 if test "$cf_cv_$1" != unknown ; then
8766 dnl ---------------------------------------------------------------------------
8767 dnl CF_WEAK_SYMBOLS version: 1 updated: 2008/08/16 19:18:06
8769 dnl Check for compiler-support for weak symbols.
8770 dnl This works with "recent" gcc.
8771 AC_DEFUN([CF_WEAK_SYMBOLS],[
8772 AC_CACHE_CHECK(if $CC supports weak symbols,cf_cv_weak_symbols,[
8775 #include <stdio.h>],
8777 #if defined(__GNUC__)
8778 # if defined __USE_ISOC99
8779 # define _cat_pragma(exp) _Pragma(#exp)
8780 # define _weak_pragma(exp) _cat_pragma(weak name)
8782 # define _weak_pragma(exp)
8784 # define _declare(name) __extension__ extern __typeof__(name) name
8785 # define weak_symbol(name) _weak_pragma(name) _declare(name) __attribute__((weak))
8789 ],[cf_cv_weak_symbols=yes],[cf_cv_weak_symbols=no])
8792 dnl ---------------------------------------------------------------------------
8793 dnl CF_WITH_ABI_VERSION version: 4 updated: 2021/01/01 13:31:04
8794 dnl -------------------
8795 dnl Allow library's ABI to be overridden. Generally this happens when a
8796 dnl packager has incremented the ABI past that used in the original package,
8797 dnl and wishes to keep doing this.
8799 dnl $1 is the package name, if any, to derive a corresponding {package}_ABI
8801 AC_DEFUN([CF_WITH_ABI_VERSION],[
8802 test -z "$cf_cv_abi_version" && cf_cv_abi_version=0
8803 AC_ARG_WITH(abi-version,
8804 [ --with-abi-version=XXX override derived ABI version],[
8805 if test "x$cf_cv_abi_version" != "x$withval"
8807 AC_MSG_WARN(overriding ABI version $cf_cv_abi_version to $withval)
8808 case "$cf_cv_rel_version" in
8810 cf_cv_rel_version=$withval.0
8813 cf_cv_rel_version=$withval.9 # FIXME: should be 10 as of 6.0 release
8817 cf_cv_abi_version=$withval])
8818 CF_NUMBER_SYNTAX($cf_cv_abi_version,ABI version)
8820 $1_ABI=$cf_cv_abi_version
8823 dnl ---------------------------------------------------------------------------
8824 dnl CF_WITH_ADA_COMPILER version: 2 updated: 2010/06/26 17:35:58
8825 dnl --------------------
8826 dnl Command-line option to specify the Ada95 compiler.
8827 AC_DEFUN([CF_WITH_ADA_COMPILER],[
8828 AC_MSG_CHECKING(for ada-compiler)
8829 AC_ARG_WITH(ada-compiler,
8830 [ --with-ada-compiler=CMD specify Ada95 compiler command (default gnatmake)],
8831 [cf_ada_compiler=$withval],
8832 [cf_ada_compiler=gnatmake])
8833 AC_SUBST(cf_ada_compiler)
8834 AC_MSG_RESULT($cf_ada_compiler)
8836 dnl ---------------------------------------------------------------------------
8837 dnl CF_WITH_ADA_INCLUDE version: 2 updated: 2010/06/26 17:35:58
8838 dnl -------------------
8839 dnl Command-line option to specify where Ada includes will install.
8840 AC_DEFUN([CF_WITH_ADA_INCLUDE],[
8841 AC_MSG_CHECKING(for ada-include)
8842 CF_WITH_PATH(ada-include,
8843 [ --with-ada-include=DIR Ada includes are in DIR],
8845 PREFIX/share/ada/adainclude,
8846 [$]prefix/share/ada/adainclude)
8847 AC_SUBST(ADA_INCLUDE)
8848 AC_MSG_RESULT($ADA_INCLUDE)
8850 dnl ---------------------------------------------------------------------------
8851 dnl CF_WITH_ADA_LIBNAME version: 1 updated: 2019/09/07 18:59:41
8852 dnl -------------------
8853 dnl CF_WITH_ADA_LIBNAME
8854 dnl -------------------
8855 dnl Command-line option to specify how to name the resulting Ada library.
8856 dnl $1 = default value
8857 AC_DEFUN([CF_WITH_ADA_LIBNAME],[
8858 AC_MSG_CHECKING(for ada-libname)
8859 AC_ARG_WITH(ada-libname,
8860 [ --with-ada-libname=XXX override default Ada library-name],
8861 ADA_LIBNAME=[$]withval,
8863 case "x$ADA_LIBNAME" in
8868 AC_SUBST(ADA_LIBNAME)
8869 AC_MSG_RESULT($ADA_LIBNAME)
8871 dnl ---------------------------------------------------------------------------
8872 dnl CF_WITH_ADA_OBJECTS version: 2 updated: 2010/06/26 17:35:58
8873 dnl -------------------
8874 dnl Command-line option to specify where Ada objects will install.
8875 AC_DEFUN([CF_WITH_ADA_OBJECTS],[
8876 AC_MSG_CHECKING(for ada-objects)
8877 CF_WITH_PATH(ada-objects,
8878 [ --with-ada-objects=DIR Ada objects are in DIR],
8880 PREFIX/lib/ada/adalib,
8881 [$]prefix/lib/ada/adalib)
8882 AC_SUBST(ADA_OBJECTS)
8883 AC_MSG_RESULT($ADA_OBJECTS)
8885 dnl ---------------------------------------------------------------------------
8886 dnl CF_WITH_ADA_SHAREDLIB version: 5 updated: 2018/07/21 19:10:35
8887 dnl ---------------------
8888 dnl Command-line option to specify if an Ada95 shared-library should be built,
8889 dnl and optionally what its soname should be.
8890 AC_DEFUN([CF_WITH_ADA_SHAREDLIB],[
8891 AC_REQUIRE([CF_GNAT_PROJECTS])
8892 AC_MSG_CHECKING(if an Ada95 shared-library should be built)
8893 AC_ARG_WITH(ada-sharedlib,
8894 [ --with-ada-sharedlib=soname build shared-library (requires GNAT projects)],
8895 [with_ada_sharedlib=$withval],
8896 [with_ada_sharedlib=no])
8897 AC_MSG_RESULT($with_ada_sharedlib)
8899 if test "x$with_ada_sharedlib" != xno
8901 if test "x$cf_gnat_projects" != xyes
8903 AC_MSG_WARN(disabling shared-library since GNAT projects are not supported)
8904 with_ada_sharedlib=no
8908 ADA_SHAREDLIB='lib$(LIB_NAME).so.1'
8909 MAKE_ADA_SHAREDLIB="#"
8911 if test "x$with_ada_sharedlib" != xno
8914 if test "x$with_ada_sharedlib" != xyes
8916 ADA_SHAREDLIB="$with_ada_sharedlib"
8920 AC_SUBST(ADA_SHAREDLIB)
8921 AC_SUBST(MAKE_ADA_SHAREDLIB)
8923 dnl ---------------------------------------------------------------------------
8924 dnl CF_WITH_DBMALLOC version: 7 updated: 2010/06/21 17:26:47
8925 dnl ----------------
8926 dnl Configure-option for dbmalloc. The optional parameter is used to override
8927 dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
8928 AC_DEFUN([CF_WITH_DBMALLOC],[
8929 CF_NO_LEAKS_OPTION(dbmalloc,
8930 [ --with-dbmalloc test: use Conor Cahill's dbmalloc library],
8933 if test "$with_dbmalloc" = yes ; then
8934 AC_CHECK_HEADER(dbmalloc.h,
8935 [AC_CHECK_LIB(dbmalloc,[debug_malloc]ifelse([$1],,[],[,$1]))])
8938 dnl ---------------------------------------------------------------------------
8939 dnl CF_WITH_DMALLOC version: 7 updated: 2010/06/21 17:26:47
8941 dnl Configure-option for dmalloc. The optional parameter is used to override
8942 dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
8943 AC_DEFUN([CF_WITH_DMALLOC],[
8944 CF_NO_LEAKS_OPTION(dmalloc,
8945 [ --with-dmalloc test: use Gray Watson's dmalloc library],
8948 if test "$with_dmalloc" = yes ; then
8949 AC_CHECK_HEADER(dmalloc.h,
8950 [AC_CHECK_LIB(dmalloc,[dmalloc_debug]ifelse([$1],,[],[,$1]))])
8953 dnl ---------------------------------------------------------------------------
8954 dnl CF_WITH_EXPORT_SYMS version: 3 updated: 2014/12/20 19:16:08
8955 dnl -------------------
8956 dnl Use this with libtool to specify the list of symbols that may be exported.
8957 dnl The input file contains one symbol per line; comments work with "#".
8959 dnl $1 = basename of the ".sym" file (default $PACKAGE)
8960 AC_DEFUN([CF_WITH_EXPORT_SYMS],
8962 AC_MSG_CHECKING(if exported-symbols file should be used)
8963 AC_ARG_WITH(export-syms,
8964 [ --with-export-syms=XXX limit exported symbols using libtool],
8965 [with_export_syms=$withval],
8966 [with_export_syms=no])
8967 if test "x$with_export_syms" = xyes
8969 with_export_syms='${top_srcdir}/package/ifelse($1,,${PACKAGE},[$1]).sym'
8972 AC_MSG_RESULT($with_export_syms)
8973 if test "x$with_export_syms" != xno
8975 EXPORT_SYMS="-export-symbols $with_export_syms"
8976 AC_SUBST(EXPORT_SYMS)
8979 dnl ---------------------------------------------------------------------------
8980 dnl CF_WITH_GPM version: 10 updated: 2017/04/29 18:32:18
8983 dnl The option parameter (if neither yes/no) is assumed to be the name of
8984 dnl the gpm library, e.g., for dynamic loading.
8985 AC_DEFUN([CF_WITH_GPM],
8987 AC_MSG_CHECKING(if you want to link with the GPM mouse library)
8989 [ --with-gpm use Alessandro Rubini's GPM library],
8990 [with_gpm=$withval],
8992 AC_MSG_RESULT($with_gpm)
8994 if test "$with_gpm" != no ; then
8995 AC_CHECK_HEADER(gpm.h,[
8996 AC_DEFINE(HAVE_GPM_H,1,[Define to 1 if we have gpm.h header])
8997 if test "$with_gpm" != yes && test "$with_gpm" != maybe ; then
8998 CF_VERBOSE(assuming we really have GPM library)
8999 AC_DEFINE(HAVE_LIBGPM,1,[Define to 1 if we have the gpm library])
9002 AC_CHECK_LIB(gpm,Gpm_Open,[with_gpm=yes],[
9003 if test "$with_gpm" = maybe; then
9004 AC_MSG_WARN(Cannot link with GPM library)
9007 AC_MSG_ERROR(Cannot link with GPM library)
9012 test "$with_gpm" != maybe && AC_MSG_WARN(Cannot find GPM header)
9017 dnl ---------------------------------------------------------------------------
9018 dnl CF_WITH_LIBTOOL version: 36 updated: 2021/01/01 13:31:04
9020 dnl Provide a configure option to incorporate libtool. Define several useful
9021 dnl symbols for the makefile rules.
9023 dnl The reference to AC_PROG_LIBTOOL does not normally work, since it uses
9024 dnl macros from libtool.m4 which is in the aclocal directory of automake.
9025 dnl Following is a simple script which turns on the AC_PROG_LIBTOOL macro.
9026 dnl But that still does not work properly since the macro is expanded outside
9027 dnl the CF_WITH_LIBTOOL macro:
9030 dnl ACLOCAL=`aclocal --print-ac-dir`
9031 dnl if test -z "$ACLOCAL" ; then
9032 dnl echo cannot find aclocal directory
9034 dnl elif test ! -f $ACLOCAL/libtool.m4 ; then
9035 dnl echo cannot find libtool.m4 file
9039 dnl LOCAL=aclocal.m4
9040 dnl ORIG=aclocal.m4.orig
9042 dnl trap "mv $ORIG $LOCAL" 0 1 2 3 15
9046 dnl # sed the LIBTOOL= assignment to omit the current directory?
9047 dnl sed -e 's/^LIBTOOL=.*/LIBTOOL=${LIBTOOL:-libtool}/' $ACLOCAL/libtool.m4 >>$LOCAL
9048 dnl cat $ORIG >>$LOCAL
9052 AC_DEFUN([CF_WITH_LIBTOOL],
9054 AC_REQUIRE([CF_DISABLE_LIBTOOL_VERSION])
9055 ifdef([AC_PROG_LIBTOOL],,[
9058 # common library maintenance symbols that are convenient for libtool scripts:
9059 LIB_CREATE='${AR} -cr'
9060 LIB_OBJECT='${OBJECTS}'
9064 # symbols used to prop libtool up to enable it to determine what it should be
9072 AC_MSG_CHECKING(if you want to build libraries with libtool)
9073 AC_ARG_WITH(libtool,
9074 [ --with-libtool generate libraries with libtool],
9075 [with_libtool=$withval],
9077 AC_MSG_RESULT($with_libtool)
9078 if test "$with_libtool" != "no"; then
9079 ifdef([AC_PROG_LIBTOOL],[
9080 # missing_content_AC_PROG_LIBTOOL{{
9082 # missing_content_AC_PROG_LIBTOOL}}
9084 if test "$with_libtool" != "yes" ; then
9085 CF_PATH_SYNTAX(with_libtool)
9086 LIBTOOL=$with_libtool
9088 AC_CHECK_TOOLS(LIBTOOL,[libtool glibtool],none)
9090 if test -z "$cf_cv_libtool_version" && test "$LIBTOOL" = libtool
9092 CF_FORGET_TOOL(LIBTOOL)
9093 AC_CHECK_TOOLS(LIBTOOL,[glibtool],none)
9097 if test -z "$LIBTOOL" ; then
9098 AC_MSG_ERROR(Cannot find libtool)
9101 LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${libdir} ${LIBTOOL_VERSION} `cut -f1 ${top_srcdir}/VERSION` ${LIBTOOL_OPTS} ${LT_UNDEF} $(LIBS) -o'
9102 LIB_OBJECT='${OBJECTS:.o=.lo}'
9104 LIB_CLEAN='${LIBTOOL} --mode=clean'
9105 LIB_COMPILE='${LIBTOOL} --mode=compile'
9106 LIB_LINK='${LIBTOOL} --mode=link ${CC} ${LIBTOOL_OPTS}'
9107 LIB_INSTALL='${LIBTOOL} --mode=install'
9108 LIB_UNINSTALL='${LIBTOOL} --mode=uninstall'
9111 CF_CHECK_LIBTOOL_VERSION
9113 # special hack to add -no-undefined (which libtool should do for itself)
9115 case "$cf_cv_system_name" in
9116 (cygwin*|msys*|mingw32*|os2*|uwin*|aix[[4-7]])
9117 LT_UNDEF=-no-undefined
9120 AC_SUBST([LT_UNDEF])
9122 # special hack to add --tag option for C++ compiler
9123 case "$cf_cv_libtool_version" in
9124 (1.[[5-9]]*|[[2-9]].[[0-9.a-z]]*)
9125 LIBTOOL_CXX="$LIBTOOL --tag=CXX"
9126 LIBTOOL="$LIBTOOL --tag=CC"
9129 LIBTOOL_CXX="$LIBTOOL"
9137 test -z "$LIBTOOL" && ECHO_LT=
9140 AC_SUBST(LIBTOOL_CXX)
9141 AC_SUBST(LIBTOOL_OPTS)
9143 AC_SUBST(LIB_CREATE)
9144 AC_SUBST(LIB_OBJECT)
9145 AC_SUBST(LIB_SUFFIX)
9149 AC_SUBST(LIB_COMPILE)
9151 AC_SUBST(LIB_INSTALL)
9152 AC_SUBST(LIB_UNINSTALL)
9155 dnl ---------------------------------------------------------------------------
9156 dnl CF_WITH_LIBTOOL_OPTS version: 4 updated: 2015/04/17 21:13:04
9157 dnl --------------------
9158 dnl Allow user to pass additional libtool options into the library creation
9159 dnl and link steps. The main use for this is to do something like
9160 dnl ./configure --with-libtool-opts=-static
9161 dnl to get the same behavior as automake-flavored
9162 dnl ./configure --enable-static
9163 AC_DEFUN([CF_WITH_LIBTOOL_OPTS],[
9164 AC_MSG_CHECKING(for additional libtool options)
9165 AC_ARG_WITH(libtool-opts,
9166 [ --with-libtool-opts=XXX specify additional libtool options],
9167 [with_libtool_opts=$withval],
9168 [with_libtool_opts=no])
9169 AC_MSG_RESULT($with_libtool_opts)
9171 case .$with_libtool_opts in
9175 LIBTOOL_OPTS="$LIBTOOL_OPTS $with_libtool_opts"
9179 AC_SUBST(LIBTOOL_OPTS)
9181 dnl ---------------------------------------------------------------------------
9182 dnl CF_WITH_LIB_BASENAME version: 1 updated: 2020/03/07 20:05:14
9183 dnl --------------------
9184 dnl Allow for overriding the basename of a library, i.e., the part to which
9185 dnl prefixes/suffixes are attached.
9187 dnl $1 = variable to set
9188 dnl $2 = option name
9189 dnl $3 = default basename for library, if omitted use $2
9190 AC_DEFUN([CF_WITH_LIB_BASENAME],
9192 AC_MSG_CHECKING(for desired basename for $2 library)
9193 AC_ARG_WITH($2-libname,
9194 [ --with-$2-libname=XXX override ifelse($3,,$2,$3) basename of library],
9195 [with_lib_basename=$withval],
9196 [with_lib_basename=ifelse($3,,$2,$3)])
9197 $1="$with_lib_basename"
9201 $1=ifelse($3,,$2,$3)
9207 AC_MSG_RESULT([$]$1)
9210 dnl ---------------------------------------------------------------------------
9211 dnl CF_WITH_LIB_PREFIX version: 2 updated: 2021/01/01 16:53:59
9212 dnl ------------------
9213 dnl Allow the library-prefix to be overridden. OS/2 EMX originally had no
9214 dnl "lib" prefix, e.g., because it used the dll naming convention.
9216 dnl $1 = variable to set
9217 AC_DEFUN([CF_WITH_LIB_PREFIX],
9219 AC_MSG_CHECKING(if you want to have a library-prefix)
9220 AC_ARG_WITH(lib-prefix,
9221 [ --with-lib-prefix override library-prefix],
9222 [with_lib_prefix=$withval],
9223 [with_lib_prefix=auto])
9224 AC_MSG_RESULT($with_lib_prefix)
9226 if test "$with_lib_prefix" = auto
9229 elif test "$with_lib_prefix" = no
9233 LIB_PREFIX=$with_lib_prefix
9236 dnl ---------------------------------------------------------------------------
9237 dnl CF_WITH_PATH version: 12 updated: 2021/09/04 06:35:04
9239 dnl Wrapper for AC_ARG_WITH to ensure that user supplies a pathname, not just
9240 dnl defaulting to yes/no.
9242 dnl $1 = option name
9244 dnl $3 = environment variable to set
9245 dnl $4 = default value, shown in the help-message, must be a constant
9246 dnl $5 = default value, if it is an expression & cannot be in the help-message
9248 AC_DEFUN([CF_WITH_PATH],
9249 [AC_ARG_WITH($1,[$2 ](default: ifelse([$4],,empty,[$4])),,
9250 ifelse([$4],,[withval="${$3}"],[withval="${$3:-ifelse([$5],,[$4],[$5])}"]))dnl
9251 if ifelse([$5],,true,[test -n "$5"]) ; then
9252 CF_PATH_SYNTAX(withval)
9257 dnl ---------------------------------------------------------------------------
9258 dnl CF_WITH_PATHLIST version: 13 updated: 2021/09/04 06:35:04
9259 dnl ----------------
9260 dnl Process an option specifying a list of colon-separated paths.
9262 dnl $1 = option name
9264 dnl $3 = environment variable to set
9265 dnl $4 = default value, shown in the help-message, must be a constant
9266 dnl $5 = default value, if it is an expression & cannot be in the help-message
9267 dnl $6 = flag to tell if we want to define or substitute
9269 AC_DEFUN([CF_WITH_PATHLIST],[
9270 AC_REQUIRE([CF_PATHSEP])
9271 AC_ARG_WITH($1,[$2 ](default: ifelse($4,,empty,$4)),,
9272 ifelse($4,,[withval=${$3}],[withval=${$3:-ifelse($5,,$4,$5)}]))dnl
9274 IFS="${IFS:- }"; ac_save_ifs="$IFS"; IFS="${PATH_SEPARATOR}"
9276 for cf_src_path in $withval
9278 CF_PATH_SYNTAX(cf_src_path)
9279 test -n "$cf_dst_path" && cf_dst_path="${cf_dst_path}$PATH_SEPARATOR"
9280 cf_dst_path="${cf_dst_path}${cf_src_path}"
9285 # Strip single quotes from the value, e.g., when it was supplied as a literal
9287 case "$cf_dst_path" in
9289 cf_dst_path="`echo "$cf_dst_path" |sed -e s/\'// -e s/\'\$//`"
9292 cf_dst_path=`echo "$cf_dst_path" | sed -e 's/\\\\/\\\\\\\\/g'`
9295 # This may use the prefix/exec_prefix symbols which will only yield "NONE"
9296 # so we have to check/work around. We do prefer the result of "eval"...
9297 eval cf_dst_eval="$cf_dst_path"
9298 case "x$cf_dst_eval" in
9309 dnl ---------------------------------------------------------------------------
9310 dnl CF_WITH_PATH_PROG version: 1 updated: 2019/06/30 19:44:43
9311 dnl -----------------
9312 dnl Check for a given program, like CF_PATH_PROG, but allow override using a
9313 dnl "--with-xxx" option.
9316 dnl $1 = environment variable to set/update
9317 dnl $2 = program name
9320 AC_DEFUN([CF_WITH_PATH_PROG],[
9321 AC_ARG_WITH($2-path,
9322 [ --with-$2-path=XXX specify path of $2 ifelse($3,,,$3)],
9323 [AC_MSG_CHECKING(for $2 program ifelse($3,,,$3))
9325 AC_MSG_RESULT([$]$1)
9328 [CF_PATH_PROG($1,$2,,ifelse($4,,,$4))
9331 AC_MSG_WARN(no $2 program found ifelse($3,,,$3))
9335 dnl ---------------------------------------------------------------------------
9336 dnl CF_WITH_PCRE2 version: 6 updated: 2021/08/11 20:35:34
9338 dnl Add PCRE2 (Perl-compatible regular expressions v2) to the build if it is
9339 dnl available and the user requests it. Assume the application will otherwise
9340 dnl use the POSIX interface.
9342 dnl TODO allow $withval to specify package location
9343 AC_DEFUN([CF_WITH_PCRE2],
9345 AC_REQUIRE([CF_PKG_CONFIG])
9347 AC_MSG_CHECKING(if you want to use PCRE2 for regular-expressions)
9349 [ --with-pcre2 use PCRE2 for regular-expressions])
9350 test -z "$with_pcre2" && with_pcre2=no
9351 AC_MSG_RESULT($with_pcre2)
9353 if test "x$with_pcre2" != xno ; then
9355 for cf_with_pcre2 in libpcre2 libpcre2-posix libpcre
9357 CF_TRY_PKG_CONFIG($cf_with_pcre2,[cf_with_pcre2_ok=yes; break])
9359 cf_with_pcre2_ok=yes || AC_MSG_ERROR(Cannot find PCRE2 library)
9361 AC_DEFINE(HAVE_LIB_PCRE2,1,[Define to 1 if we can/should compile with the PCRE2 library])
9363 # if pkgconfig gave no results, look for the libraries directly
9365 (*pcre2-posix*|*pcreposix*)
9368 AC_CHECK_LIB(pcre2-posix,regcomp,[
9369 CF_ADD_LIB(pcre2-posix)],
9370 [AC_CHECK_LIB(pcreposix,regcomp,[
9371 CF_ADD_LIB(pcreposix)
9372 ],[AC_MSG_ERROR(Cannot find PCRE2 POSIX library)])])
9376 # either way, check for the library header files
9377 AC_CHECK_HEADERS(pcre2posix.h pcreposix.h)
9378 AC_CHECK_FUNCS(PCRE2regcomp)
9381 dnl ---------------------------------------------------------------------------
9382 dnl CF_WITH_PKG_CONFIG_LIBDIR version: 20 updated: 2022/01/29 17:03:42
9383 dnl -------------------------
9384 dnl Allow the choice of the pkg-config library directory to be overridden.
9386 dnl pkg-config uses a search-list built from these colon-separated lists of
9388 dnl a) $PKG_CONFIG_PATH (tested first, added if set)
9389 dnl b) $PKG_CONFIG_LIBDIR (tested second, added if set)
9390 dnl c) builtin-list (added if $PKG_CONFIG_LIBDIR is not set)
9392 dnl pkgconf (used with some systems such as FreeBSD in place of pkg-config)
9393 dnl optionally ignores $PKG_CONFIG_LIBDIR.
9394 AC_DEFUN([CF_WITH_PKG_CONFIG_LIBDIR],[
9396 case "$PKG_CONFIG" in
9398 AC_MSG_CHECKING(for pkg-config library directory)
9401 AC_MSG_CHECKING(for $PKG_CONFIG library directory)
9405 # if $PKG_CONFIG_LIBDIR is set, try to use that
9406 cf_search_path=`echo "$PKG_CONFIG_LIBDIR" | sed -e 's/:/ /g' -e 's,^[[ ]]*,,'`
9408 # if the option is used, let that override. otherwise default to "libdir"
9409 AC_ARG_WITH(pkg-config-libdir,
9410 [ --with-pkg-config-libdir=XXX use given directory for installing pc-files],
9411 [cf_search_path=$withval],
9412 [test "x$PKG_CONFIG" != xnone && test -z "$cf_search_path" && cf_search_path=libdir])
9414 case "x$cf_search_path" in
9416 PKG_CONFIG_LIBDIR='${libdir}/pkgconfig'
9417 AC_MSG_RESULT($PKG_CONFIG_LIBDIR)
9426 PKG_CONFIG_LIBDIR="$cf_search_path"
9427 AC_MSG_RESULT($PKG_CONFIG_LIBDIR)
9433 # Look for the library directory using the same prefix as the executable
9434 AC_MSG_CHECKING(for search-list)
9435 if test "x$PKG_CONFIG" != xnone
9437 # works for pkg-config since version 0.24 (2009)
9438 # works for pkgconf since version 0.8.3 (2012)
9439 for cf_pkg_program in \
9440 `echo "$PKG_CONFIG" | sed -e 's,^.*/,,'` \
9444 cf_search_path=`"$PKG_CONFIG" --variable=pc_path "$cf_pkg_program" 2>/dev/null | tr : ' '`
9445 test -n "$cf_search_path" && break
9448 # works for pkg-config since import in 2005 of original 2001 HP code.
9449 test -z "$cf_search_path" && \
9451 "$PKG_CONFIG" --debug --exists no-such-package 2>&1 | $AWK "\
9452 /^Scanning directory (#[1-9][0-9]* )?'.*'$/{ \
9453 sub(\"^[[^']]*'\",\"\"); \
9454 sub(\"'.*\",\"\"); \
9455 printf \" %s\", \\[$]0; } \
9460 AC_MSG_RESULT($cf_search_path)
9463 AC_MSG_ERROR(Unexpected option value: $cf_search_path)
9467 if test -n "$cf_search_path"
9469 AC_MSG_CHECKING(for first directory)
9470 cf_pkg_config_path=none
9471 for cf_config in $cf_search_path
9473 if test -d "$cf_config"
9475 cf_pkg_config_path=$cf_config
9479 AC_MSG_RESULT($cf_pkg_config_path)
9481 if test "x$cf_pkg_config_path" != xnone ; then
9482 # limit this to the first directory found
9483 PKG_CONFIG_LIBDIR="$cf_pkg_config_path"
9486 if test -z "$PKG_CONFIG_LIBDIR" && test -n "$cf_search_path"
9488 AC_MSG_CHECKING(for workaround)
9489 if test "$prefix" = "NONE" ; then
9490 cf_prefix="$ac_default_prefix"
9494 eval cf_libdir=$libdir
9495 cf_libdir=`echo "$cf_libdir" | sed -e "s,^NONE,$cf_prefix,"`
9497 for cf_config in $cf_search_path
9500 $cf_libdir/pkgconfig)
9501 PKG_CONFIG_LIBDIR=$cf_libdir/pkgconfig
9505 test -z "$cf_backup" && cf_backup=$cf_config
9509 test -z "$PKG_CONFIG_LIBDIR" && PKG_CONFIG_LIBDIR=$cf_backup
9510 AC_MSG_RESULT($PKG_CONFIG_LIBDIR)
9514 AC_SUBST(PKG_CONFIG_LIBDIR)
9516 dnl ---------------------------------------------------------------------------
9517 dnl CF_WITH_PTHREAD version: 7 updated: 2015/04/18 08:56:57
9519 dnl Check for POSIX thread library.
9520 AC_DEFUN([CF_WITH_PTHREAD],
9522 AC_MSG_CHECKING(if you want to link with the pthread library)
9523 AC_ARG_WITH(pthread,
9524 [ --with-pthread use POSIX thread library],
9525 [with_pthread=$withval],
9527 AC_MSG_RESULT($with_pthread)
9529 if test "$with_pthread" != no ; then
9530 AC_CHECK_HEADER(pthread.h,[
9531 AC_DEFINE(HAVE_PTHREADS_H,1,[Define to 1 if we have pthreads.h header])
9533 for cf_lib_pthread in pthread c_r
9535 AC_MSG_CHECKING(if we can link with the $cf_lib_pthread library)
9536 cf_save_LIBS="$LIBS"
9537 CF_ADD_LIB($cf_lib_pthread)
9539 #include <pthread.h>
9541 int rc = pthread_create(0,0,0,0);
9542 int r2 = pthread_mutexattr_settype(0, 0);
9543 ],[with_pthread=yes],[with_pthread=no])
9544 LIBS="$cf_save_LIBS"
9545 AC_MSG_RESULT($with_pthread)
9546 test "$with_pthread" = yes && break
9549 if test "$with_pthread" = yes ; then
9550 CF_ADD_LIB($cf_lib_pthread)
9551 AC_DEFINE(HAVE_LIBPTHREADS,1,[Define to 1 if we have pthreads library])
9553 AC_MSG_ERROR(Cannot link with pthread library)
9558 dnl ---------------------------------------------------------------------------
9559 dnl CF_WITH_REL_VERSION version: 1 updated: 2003/09/20 18:12:49
9560 dnl -------------------
9561 dnl Allow library's release-version to be overridden. Generally this happens when a
9562 dnl packager has incremented the release-version past that used in the original package,
9563 dnl and wishes to keep doing this.
9565 dnl $1 is the package name, if any, to derive corresponding {package}_MAJOR
9566 dnl and {package}_MINOR symbols
9568 AC_DEFUN([CF_WITH_REL_VERSION],[
9569 test -z "$cf_cv_rel_version" && cf_cv_rel_version=0.0
9570 AC_ARG_WITH(rel-version,
9571 [ --with-rel-version=XXX override derived release version],
9572 [AC_MSG_WARN(overriding release version $cf_cv_rel_version to $withval)
9573 cf_cv_rel_version=$withval])
9575 CF_NUMBER_SYNTAX($cf_cv_rel_version,Release version)
9577 $1_MAJOR=`echo "$cf_cv_rel_version" | sed -e 's/\..*//'`
9578 $1_MINOR=`echo "$cf_cv_rel_version" | sed -e 's/^[[^.]]*//' -e 's/^\.//' -e 's/\..*//'`
9579 CF_NUMBER_SYNTAX([$]$1_MAJOR,Release major-version)
9580 CF_NUMBER_SYNTAX([$]$1_MINOR,Release minor-version)
9583 dnl ---------------------------------------------------------------------------
9584 dnl CF_WITH_SYSMOUSE version: 3 updated: 2012/10/06 17:56:13
9585 dnl ----------------
9586 dnl If we can compile with sysmouse, make it available unless it is not wanted.
9587 AC_DEFUN([CF_WITH_SYSMOUSE],[
9588 # not everyone has "test -c"
9589 if test -c /dev/sysmouse 2>/dev/null ; then
9590 AC_MSG_CHECKING(if you want to use sysmouse)
9591 AC_ARG_WITH(sysmouse,
9592 [ --with-sysmouse use sysmouse (FreeBSD console)],
9593 [cf_with_sysmouse=$withval],
9594 [cf_with_sysmouse=maybe])
9595 if test "$cf_with_sysmouse" != no ; then
9597 #include <osreldate.h>
9598 #if (__FreeBSD_version >= 400017)
9599 #include <sys/consio.h>
9600 #include <sys/fbio.h>
9602 #include <machine/console.h>
9605 struct mouse_info the_mouse;
9606 ioctl(0, CONS_MOUSECTL, &the_mouse);
9607 ],[cf_with_sysmouse=yes],[cf_with_sysmouse=no])
9609 AC_MSG_RESULT($cf_with_sysmouse)
9610 test "$cf_with_sysmouse" = yes && AC_DEFINE(USE_SYSMOUSE,1,[Define to 1 if we can/should use the sysmouse interface])
9613 dnl ---------------------------------------------------------------------------
9614 dnl CF_WITH_SYSTYPE version: 1 updated: 2013/01/26 16:26:12
9616 dnl For testing, override the derived host system-type which is used to decide
9617 dnl things such as the linker commands used to build shared libraries. This is
9618 dnl normally chosen automatically based on the type of system which you are
9619 dnl building on. We use it for testing the configure script.
9621 dnl This is different from the --host option: it is used only for testing parts
9622 dnl of the configure script which would not be reachable with --host since that
9623 dnl relies on the build environment being real, rather than mocked up.
9624 AC_DEFUN([CF_WITH_SYSTYPE],[
9625 CF_CHECK_CACHE([AC_CANONICAL_SYSTEM])
9626 AC_ARG_WITH(system-type,
9627 [ --with-system-type=XXX test: override derived host system-type],
9628 [AC_MSG_WARN(overriding system type to $withval)
9629 cf_cv_system_name=$withval
9633 dnl ---------------------------------------------------------------------------
9634 dnl CF_WITH_VALGRIND version: 1 updated: 2006/12/14 18:00:21
9635 dnl ----------------
9636 AC_DEFUN([CF_WITH_VALGRIND],[
9637 CF_NO_LEAKS_OPTION(valgrind,
9638 [ --with-valgrind test: use valgrind],
9641 dnl ---------------------------------------------------------------------------
9642 dnl CF_WITH_VERSIONED_SYMS version: 10 updated: 2021/01/04 18:48:01
9643 dnl ----------------------
9644 dnl Use this when building shared library with ELF, to markup symbols with the
9645 dnl version identifier from the given input file. Generally that identifier is
9646 dnl the same as the SONAME at which the symbol was first introduced.
9648 dnl $1 = basename of the ".map" file (default $PACKAGE)
9649 AC_DEFUN([CF_WITH_VERSIONED_SYMS],
9650 [AC_REQUIRE([AC_PROG_FGREP])dnl
9651 AC_REQUIRE([AC_PROG_EGREP])dnl
9653 AC_MSG_CHECKING(if versioned-symbols file should be used)
9654 AC_ARG_WITH(versioned-syms,
9655 [ --with-versioned-syms=X markup versioned symbols using ld],
9656 [with_versioned_syms=$withval],
9657 [with_versioned_syms=no])
9658 case "x$with_versioned_syms" in
9660 with_versioned_syms='${top_srcdir}/package/ifelse($1,,${PACKAGE},[$1]).map'
9666 test -f "$with_versioned_syms" || AC_MSG_ERROR(expected a filename: $with_versioned_syms)
9669 test -f "$with_versioned_syms" || AC_MSG_ERROR(expected a filename: $with_versioned_syms)
9670 with_versioned_syms=`pwd`/"$with_versioned_syms"
9673 AC_MSG_RESULT($with_versioned_syms)
9679 if test "x$with_versioned_syms" != xno
9681 RESULTING_SYMS=$with_versioned_syms
9682 case "x$MK_SHARED_LIB" in
9684 VERSIONED_SYMS="-Wl,--version-script,\${RESULTING_SYMS}"
9685 MK_SHARED_LIB=`echo "$MK_SHARED_LIB" | sed -e "s%-Wl,%\\[$]{VERSIONED_SYMS} -Wl,%"`
9686 CF_VERBOSE(MK_SHARED_LIB: $MK_SHARED_LIB)
9689 VERSIONED_SYMS="-Wl,-M,\${RESULTING_SYMS}"
9690 MK_SHARED_LIB=`echo "$MK_SHARED_LIB" | sed -e "s%-dy%\\[$]{VERSIONED_SYMS} -dy%"`
9691 CF_VERBOSE(MK_SHARED_LIB: $MK_SHARED_LIB)
9694 AC_MSG_WARN(this system does not support versioned-symbols)
9698 # Linux ld can selectively override scope, e.g., of symbols beginning with
9699 # "_" by first declaring some as global, and then using a wildcard to
9700 # declare the others as local. Some other loaders cannot do this. Check
9701 # by constructing a (very) simple shared library and inspecting its
9703 if test "x$VERSIONED_SYMS" != "x"
9705 AC_MSG_CHECKING(if wildcards can be used to selectively omit symbols)
9711 cat >conftest.ver <<EOF
9740 cat >conftest.$ac_ext <<EOF
9741 #line __oline__ "configure"
9742 int _ismissing(void) { return 1; }
9743 int _localf1(void) { return 1; }
9744 int _localf2(void) { return 2; }
9745 int globalf1(void) { return 1; }
9746 int globalf2(void) { return 2; }
9747 int _sublocalf1(void) { return 1; }
9748 int _sublocalf2(void) { return 2; }
9749 int subglobalf1(void) { return 1; }
9750 int subglobalf2(void) { return 2; }
9752 cat >conftest.mk <<EOF
9755 CPPFLAGS=${CPPFLAGS}
9758 VERSIONED_SYMS=${VERSIONED_SYMS}
9759 RESULTING_SYMS=conftest.ver
9760 MK_SHARED_LIB=${MK_SHARED_LIB}
9761 conftest.so: conftest.$ac_cv_objext
9762 \$(MK_SHARED_LIB) conftest.$ac_cv_objext
9765 # compile source, make library
9766 if make -f conftest.mk 2>&AC_FD_CC >/dev/null
9768 # test for missing symbol in either Data or Text section
9769 cf_missing="`nm -P conftest.so 2>&AC_FD_CC |${FGREP-fgrep} _ismissing | ${EGREP-egrep} '[[ ]][[DT]][[ ]]'`"
9770 test -n "$cf_missing" && WILDCARD_SYMS=yes
9772 AC_MSG_RESULT($WILDCARD_SYMS)
9776 AC_SUBST(RESULTING_SYMS)
9777 AC_SUBST(VERSIONED_SYMS)
9778 AC_SUBST(WILDCARD_SYMS)
9780 dnl ---------------------------------------------------------------------------
9781 dnl CF_WITH_X11_RGB version: 2 updated: 2019/12/31 08:53:54
9783 dnl Handle configure option "--with-x11-rgb", setting these shell
9786 dnl $RGB_PATH is the option value, used for finding the X11 rgb file.
9787 dnl $no_x11_rgb is a "#" (comment) if "--without-x11-rgb" is given.
9789 dnl Most Linux's use this:
9790 dnl /usr/share/X11/rgb.txt
9791 dnl Debian uses this:
9792 dnl /etc/X11/rgb.txt
9793 dnl DragonFlyBSD ports uses this:
9794 dnl /usr/pkg/lib/X11/rgb.txt
9795 dnl FreeBSD ports use these:
9796 dnl /usr/local/lib/X11/rgb.txt
9797 dnl /usr/local/share/X11/rgb.txt
9798 dnl Mandriva has these:
9799 dnl /usr/lib/X11/rgb.txt
9800 dnl /usr/lib64/X11/rgb.txt
9801 dnl NetBSD has these
9802 dnl /usr/X11R7/lib/X11/rgb.txt
9803 dnl OpenSolaris uses
9805 dnl /usr/X11/etc/X11/rgb.txt
9806 dnl /usr/X11/share/X11/rgb.txt
9807 dnl /usr/X11/lib/X11/rgb.txt
9809 dnl /opt/local/share/X11/rgb.txt (MacPorts)
9810 dnl /opt/X11/share/X11/rgb.txt (non-ports)
9812 dnl /usr/X11/etc/X11/rgb.txt
9813 dnl /usr/X11/share/X11/rgb.txt (perhaps)
9814 dnl /usr/X11/lib/amd64/X11/rgb.txt
9815 dnl Solaris10 uses (in this order):
9816 dnl /usr/openwin/lib/X11/rgb.txt
9817 dnl /usr/X11/lib/X11/rgb.txt
9818 AC_DEFUN([CF_WITH_X11_RGB],[
9819 AC_MSG_CHECKING(for X11 rgb file)
9820 AC_ARG_WITH(x11-rgb,
9821 [ --with-x11-rgb=FILE file containing X11 rgb information (EPREFIX/lib/X11/rgb.txt)],
9822 [RGB_PATH=$withval],
9825 if test "x[$]RGB_PATH" = xauto
9827 RGB_PATH='${exec_prefix}/lib/X11/rgb.txt'
9829 /opt/local/share/X11/rgb.txt \
9830 /opt/X11/share/X11/rgb.txt \
9831 /usr/share/X11/rgb.txt \
9832 /usr/X11/share/X11/rgb.txt \
9833 /usr/X11/lib/X11/rgb.txt \
9834 /usr/lib/X11/rgb.txt \
9836 /usr/pkg/lib/X11/rgb.txt \
9837 /usr/X11R7/lib/X11/rgb.txt \
9838 /usr/X11R6/lib/X11/rgb.txt \
9839 /usr/X11R5/lib/X11/rgb.txt \
9840 /usr/X11R4/lib/X11/rgb.txt \
9841 /usr/local/lib/X11/rgb.txt \
9842 /usr/local/share/X11/rgb.txt \
9843 /usr/lib64/X11/rgb.txt
9845 if test -f "$cf_path" ; then
9852 CF_PATH_SYNTAX(cf_path)
9855 AC_MSG_RESULT($RGB_PATH)
9857 AC_DEFINE_UNQUOTED(RGB_PATH,"$cf_path",[Define to the full pathname of rgb.txt])
9860 if test "$RGB_PATH" = no
9864 AC_SUBST(no_x11_rgb)
9866 dnl ---------------------------------------------------------------------------
9867 dnl CF_XOPEN_SOURCE version: 59 updated: 2021/08/28 15:20:37
9869 dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
9870 dnl or adapt to the vendor's definitions to get equivalent functionality,
9871 dnl without losing the common non-POSIX features.
9874 dnl $1 is the nominal value for _XOPEN_SOURCE
9875 dnl $2 is the nominal value for _POSIX_C_SOURCE
9876 AC_DEFUN([CF_XOPEN_SOURCE],[
9877 AC_REQUIRE([AC_CANONICAL_HOST])
9878 AC_REQUIRE([CF_POSIX_VISIBLE])
9880 if test "$cf_cv_posix_visible" = no; then
9882 cf_XOPEN_SOURCE=ifelse([$1],,500,[$1])
9883 cf_POSIX_C_SOURCE=ifelse([$2],,199506L,[$2])
9888 cf_xopen_source="-D_ALL_SOURCE"
9894 cf_xopen_source="-D_APPLE_C_SOURCE"
9897 cf_xopen_source="-D_DARWIN_C_SOURCE"
9900 (freebsd*|dragonfly*|midnightbsd*)
9901 # 5.x headers associate
9902 # _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L
9903 # _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L
9904 cf_POSIX_C_SOURCE=200112L
9906 cf_xopen_source="-D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
9909 cf_xopen_source="-D_HPUX_SOURCE -D_XOPEN_SOURCE=500"
9912 cf_xopen_source="-D_HPUX_SOURCE"
9915 cf_xopen_source="-D_SGI_SOURCE"
9918 (linux*|uclinux*|gnu*|mint*|k*bsd*-gnu|cygwin)
9919 CF_GNU_SOURCE($cf_XOPEN_SOURCE)
9922 cf_xopen_source="-D_NETBSD_SOURCE" # POSIX.1-2001 features are ifdef'd with this...
9925 # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <sys/select.h> and other headers which use u_int / u_short types
9927 CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
9930 cf_xopen_source="-D_NETBSD_SOURCE" # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
9933 # OpenBSD 6.x has broken locale support, both compile-time and runtime.
9934 # see https://www.mail-archive.com/bugs@openbsd.org/msg13200.html
9935 # Abusing the conformance level is a workaround.
9936 AC_MSG_WARN(this system does not provide usable locale support)
9937 cf_xopen_source="-D_BSD_SOURCE"
9941 # setting _XOPEN_SOURCE lower than 500 breaks g++ compile with wchar.h, needed for ncursesw
9942 cf_xopen_source="-D_BSD_SOURCE"
9946 # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
9949 cf_xopen_source="-D_OSF_SOURCE"
9952 cf_xopen_source="-D_QNX_SOURCE"
9955 # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
9958 cf_xopen_source="-D__EXTENSIONS__"
9959 cf_cv_xopen_source=broken
9961 (sysv4.2uw2.*) # Novell/SCO UnixWare 2.x (tested on 2.1.2)
9967 CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
9971 if test -n "$cf_xopen_source" ; then
9972 CF_APPEND_CFLAGS($cf_xopen_source,true)
9975 dnl In anything but the default case, we may have system-specific setting
9976 dnl which is still not guaranteed to provide all of the entrypoints that
9977 dnl _XOPEN_SOURCE would yield.
9978 if test -n "$cf_XOPEN_SOURCE" && test -z "$cf_cv_xopen_source" ; then
9979 AC_MSG_CHECKING(if _XOPEN_SOURCE really is set)
9980 AC_TRY_COMPILE([#include <stdlib.h>],[
9981 #ifndef _XOPEN_SOURCE
9984 [cf_XOPEN_SOURCE_set=yes],
9985 [cf_XOPEN_SOURCE_set=no])
9986 AC_MSG_RESULT($cf_XOPEN_SOURCE_set)
9987 if test "$cf_XOPEN_SOURCE_set" = yes
9989 AC_TRY_COMPILE([#include <stdlib.h>],[
9990 #if (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE
9993 [cf_XOPEN_SOURCE_set_ok=yes],
9994 [cf_XOPEN_SOURCE_set_ok=no])
9995 if test "$cf_XOPEN_SOURCE_set_ok" = no
9997 AC_MSG_WARN(_XOPEN_SOURCE is lower than requested)
10000 CF_TRY_XOPEN_SOURCE
10003 fi # cf_cv_posix_visible
10005 dnl ---------------------------------------------------------------------------
10006 dnl CF__SED_TRIMBLANKS version: 1 updated: 2021/01/02 09:31:20
10007 dnl ------------------
10008 dnl Trim something using sed, then trim extra whitespace
10009 dnl $1 = extra parameters, e.g., in CF_STRIP_G_OPT
10010 define([CF__SED_TRIMBLANKS],[sed ifelse($1,,,[$1] )-e 's%[[ ]]% %g' -e 's% [[ ]]*% %g' -e 's%^ %%' -e 's% [$]%%'])dnl