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.1007 2022/07/27 23:34:31 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_PARAM_INIT version: 7 updated: 2017/01/21 11:06:25
1735 dnl -----------------
1736 dnl Check if the C++ compiler accepts duplicate parameter initialization. This
1737 dnl is a late feature for the standard and is not in some recent compilers
1739 AC_DEFUN([CF_CPP_PARAM_INIT],
1741 if test -n "$CXX"; then
1742 AC_CACHE_CHECK(if $CXX accepts parameter initialization,cf_cv_cpp_param_init,[
1754 TEST::TEST(int x = 1) // some compilers do not like second initializer
1760 [cf_cv_cpp_param_init=yes],
1761 [cf_cv_cpp_param_init=no],
1762 [cf_cv_cpp_param_init=unknown])
1766 test "$cf_cv_cpp_param_init" = yes && AC_DEFINE(CPP_HAS_PARAM_INIT,1,[Define to 1 if C++ has parameter initialization])
1768 dnl ---------------------------------------------------------------------------
1769 dnl CF_CPP_STATIC_CAST version: 3 updated: 2013/04/13 18:03:21
1770 dnl ------------------
1771 dnl Check if the C++ compiler accepts static_cast in generics. This appears to
1772 dnl not be supported in g++ before 3.0
1773 AC_DEFUN([CF_CPP_STATIC_CAST],
1775 if test -n "$CXX"; then
1777 AC_CACHE_CHECK(if $CXX accepts static_cast,cf_cv_cpp_static_cast,[
1785 NCursesPanel(int nlines,
1795 template<class T> class NCursesUserPanel : public NCursesPanel
1798 NCursesUserPanel (int nlines,
1802 const T* p_UserData = static_cast<T*>(0))
1803 : NCursesPanel (nlines, ncols, begin_y, begin_x)
1806 NCursesUserPanel(const T* p_UserData = static_cast<T*>(0)) : NCursesPanel()
1810 virtual ~NCursesUserPanel() {};
1813 const char* p_UserData = static_cast<char*>(0)],
1814 [cf_cv_cpp_static_cast=yes],
1815 [cf_cv_cpp_static_cast=no])
1822 test "$cf_cv_cpp_static_cast" = yes && AC_DEFINE(CPP_HAS_STATIC_CAST,1,[Define to 1 if C++ has static_cast])
1824 dnl ---------------------------------------------------------------------------
1825 dnl CF_CXX_AR_FLAGS version: 3 updated: 2021/01/01 13:31:04
1827 dnl Setup special archiver flags for given compilers.
1828 AC_DEFUN([CF_CXX_AR_FLAGS],[
1830 CXX_ARFLAGS='$(ARFLAGS)'
1831 case "$cf_cv_system_name" in
1833 if test "$GXX" != yes ; then
1835 CXX_ARFLAGS='-ar -o'
1839 CXXLDFLAGS="-u main"
1842 if test "$GXX" != yes ; then
1844 CXX_ARFLAGS='-xar -o'
1848 AC_SUBST(CXXLDFLAGS)
1850 AC_SUBST(CXX_ARFLAGS)
1852 dnl ---------------------------------------------------------------------------
1853 dnl CF_CXX_IOSTREAM_NAMESPACE version: 2 updated: 2012/10/06 17:56:13
1854 dnl -------------------------
1855 dnl For c++, check if iostream uses "std::" namespace.
1856 AC_DEFUN([CF_CXX_IOSTREAM_NAMESPACE],[
1857 AC_CHECK_HEADERS(iostream)
1858 if test x"$ac_cv_header_iostream" = xyes ; then
1859 AC_MSG_CHECKING(if iostream uses std-namespace)
1864 cerr << "testing" << endl;
1865 ],[cf_iostream_namespace=yes],[cf_iostream_namespace=no])
1866 AC_MSG_RESULT($cf_iostream_namespace)
1867 if test "$cf_iostream_namespace" = yes ; then
1868 AC_DEFINE(IOSTREAM_NAMESPACE,1,[Define to 1 if C++ has namespace iostream])
1872 dnl ---------------------------------------------------------------------------
1873 dnl CF_C_INLINE version: 6 updated: 2019/09/07 13:38:36
1875 dnl Check if the C compiler supports "inline".
1876 dnl $1 is the name of a shell variable to set if inline is supported
1877 dnl $2 is the threshold for gcc 4.x's option controlling maximum inline size
1878 AC_DEFUN([CF_C_INLINE],[
1879 AC_REQUIRE([CF_GCC_VERSION])
1882 if test "$ac_cv_c_inline" != no ; then
1884 if test "$INTEL_COMPILER" = yes
1887 elif test "$CLANG_COMPILER" = yes
1890 elif test "$GCC" = yes
1892 AC_CACHE_CHECK(if $CC supports options to tune inlining,cf_cv_gcc_inline,[
1893 cf_save_CFLAGS=$CFLAGS
1894 CFLAGS="$CFLAGS --param max-inline-insns-single=$2"
1895 AC_TRY_COMPILE([inline int foo(void) { return 1; }],
1896 [${cf_cv_main_return:-return} foo()],
1897 [cf_cv_gcc_inline=yes],
1898 [cf_cv_gcc_inline=no])
1899 CFLAGS=$cf_save_CFLAGS
1901 if test "$cf_cv_gcc_inline" = yes ; then
1902 CF_ADD_CFLAGS([--param max-inline-insns-single=$2])
1908 dnl ---------------------------------------------------------------------------
1909 dnl CF_DIRNAME version: 5 updated: 2020/12/31 20:19:42
1911 dnl "dirname" is not portable, so we fake it with a shell script.
1912 AC_DEFUN([CF_DIRNAME],[$1=`echo "$2" | sed -e 's%/[[^/]]*$%%'`])dnl
1913 dnl ---------------------------------------------------------------------------
1914 dnl CF_DIRS_TO_MAKE version: 4 updated: 2021/01/01 13:31:04
1916 AC_DEFUN([CF_DIRS_TO_MAKE],
1919 for cf_item in $cf_list_models
1921 CF_OBJ_SUBDIR($cf_item,cf_subdir)
1922 for cf_item2 in $DIRS_TO_MAKE
1924 test "$cf_item2" = "$cf_subdir" && break
1926 test ".$cf_item2" != ".$cf_subdir" && DIRS_TO_MAKE="$DIRS_TO_MAKE $cf_subdir"
1928 for cf_dir in $DIRS_TO_MAKE
1930 test ! -d "$cf_dir" && mkdir "$cf_dir"
1932 AC_SUBST(DIRS_TO_MAKE)
1934 dnl ---------------------------------------------------------------------------
1935 dnl CF_DISABLE_ECHO version: 14 updated: 2021/09/04 06:35:04
1937 dnl You can always use "make -n" to see the actual options, but it is hard to
1938 dnl pick out/analyze warning messages when the compile-line is long.
1941 dnl ECHO_LT - symbol to control if libtool is verbose
1942 dnl ECHO_LD - symbol to prefix "cc -o" lines
1943 dnl RULE_CC - symbol to put before implicit "cc -c" lines (e.g., .c.o)
1944 dnl SHOW_CC - symbol to put before explicit "cc -c" lines
1945 dnl ECHO_CC - symbol to put before any "cc" line
1947 AC_DEFUN([CF_DISABLE_ECHO],[
1948 AC_MSG_CHECKING(if you want to see long compiling messages)
1949 CF_ARG_DISABLE(echo,
1950 [ --disable-echo do not display "compiling" commands],
1953 ECHO_LD='@echo linking [$]@;'
1954 RULE_CC='@echo compiling [$]<'
1955 SHOW_CC='@echo compiling [$]@'
1964 AC_MSG_RESULT($enableval)
1971 dnl ---------------------------------------------------------------------------
1972 dnl CF_DISABLE_GNAT_PROJECTS version: 1 updated: 2014/06/01 11:34:00
1973 dnl ------------------------
1974 AC_DEFUN([CF_DISABLE_GNAT_PROJECTS],[
1975 AC_MSG_CHECKING(if we want to use GNAT projects)
1976 CF_ARG_DISABLE(gnat-projects,
1977 [ --disable-gnat-projects test: disable GNAT projects even if usable],
1978 [enable_gnat_projects=no],
1979 [enable_gnat_projects=yes])
1980 AC_MSG_RESULT($enable_gnat_projects)
1982 dnl ---------------------------------------------------------------------------
1983 dnl CF_DISABLE_LEAKS version: 9 updated: 2021/04/03 16:41:50
1984 dnl ----------------
1985 dnl Combine no-leak checks with the libraries or tools that are used for the
1987 AC_DEFUN([CF_DISABLE_LEAKS],[
1989 AC_REQUIRE([CF_WITH_DMALLOC])
1990 AC_REQUIRE([CF_WITH_DBMALLOC])
1991 AC_REQUIRE([CF_WITH_VALGRIND])
1993 AC_MSG_CHECKING(if you want to perform memory-leak testing)
1994 AC_ARG_ENABLE(leaks,
1995 [ --disable-leaks test: free permanent memory, analyze leaks],
1996 [enable_leaks=$enableval],
1998 dnl with_no_leaks is more readable...
1999 if test "x$enable_leaks" = xno; then with_no_leaks=yes; else with_no_leaks=no; fi
2000 AC_MSG_RESULT($with_no_leaks)
2002 if test "$enable_leaks" = no ; then
2003 AC_DEFINE(NO_LEAKS,1,[Define to 1 if you want to perform memory-leak testing.])
2004 AC_DEFINE(YY_NO_LEAKS,1,[Define to 1 if you want to perform memory-leak testing.])
2007 dnl ---------------------------------------------------------------------------
2008 dnl CF_DISABLE_LIBTOOL_VERSION version: 3 updated: 2015/04/17 21:13:04
2009 dnl --------------------------
2010 dnl Check if we should use the libtool 1.5 feature "-version-number" instead of
2011 dnl the older "-version-info" feature. The newer feature allows us to use
2012 dnl version numbering on shared libraries which make them compatible with
2013 dnl various systems.
2014 AC_DEFUN([CF_DISABLE_LIBTOOL_VERSION],
2016 AC_MSG_CHECKING(if libtool -version-number should be used)
2017 CF_ARG_DISABLE(libtool-version,
2018 [ --disable-libtool-version enable to use libtool's incompatible naming scheme],
2019 [cf_libtool_version=no],
2020 [cf_libtool_version=yes])
2021 AC_MSG_RESULT($cf_libtool_version)
2023 if test "$cf_libtool_version" = yes ; then
2024 LIBTOOL_VERSION="-version-number"
2026 LIBTOOL_VERSION="-version-info"
2029 AC_MSG_WARN(VERSION was not set)
2032 ABI_VERSION="$VERSION"
2033 CF_VERBOSE(ABI_VERSION: $ABI_VERSION)
2036 ABI_VERSION=`echo "$VERSION" | sed -e 's/:/./g'`
2037 CF_VERBOSE(ABI_VERSION: $ABI_VERSION)
2040 AC_MSG_WARN(unexpected VERSION value: $VERSION)
2045 AC_SUBST(ABI_VERSION)
2046 AC_SUBST(LIBTOOL_VERSION)
2048 dnl ---------------------------------------------------------------------------
2049 dnl CF_DISABLE_RPATH_HACK version: 3 updated: 2021/01/05 20:14:44
2050 dnl ---------------------
2051 dnl The rpath-hack makes it simpler to build programs, particularly with the
2052 dnl *BSD ports which may have essential libraries in unusual places. But it
2053 dnl can interfere with building an executable for the base system. Use this
2054 dnl option in that case.
2055 AC_DEFUN([CF_DISABLE_RPATH_HACK],
2057 AC_MSG_CHECKING(if rpath-hack should be disabled)
2058 CF_ARG_DISABLE(rpath-hack,
2059 [ --disable-rpath-hack don't add rpath options for additional libraries],
2060 [enable_rpath_hack=no],
2061 [enable_rpath_hack=yes])
2062 dnl TODO - drop cf_disable_rpath_hack
2063 if test "x$enable_rpath_hack" = xno; then cf_disable_rpath_hack=yes; else cf_disable_rpath_hack=no; fi
2064 AC_MSG_RESULT($cf_disable_rpath_hack)
2066 if test "$enable_rpath_hack" = yes ; then
2070 dnl ---------------------------------------------------------------------------
2071 dnl CF_ENABLE_BROKEN_LINKER version: 2 updated: 2021/01/02 17:09:14
2072 dnl -----------------------
2073 dnl Some linkers cannot reference a data-only object. Cygwin used to be one.
2074 dnl This usually follows CF_LINK_DATAONLY, but is not required in case we need
2075 dnl an unconditional feature.
2076 AC_DEFUN([CF_ENABLE_BROKEN_LINKER],[
2078 AC_MSG_CHECKING(if you want broken-linker support code)
2079 AC_ARG_ENABLE(broken_linker,
2080 [ --enable-broken_linker compile with broken-linker support code],
2081 [with_broken_linker=$enableval],
2082 [with_broken_linker=no])
2083 AC_MSG_RESULT($with_broken_linker)
2085 : "${BROKEN_LINKER:=0}"
2086 if test "x$with_broken_linker" = xyes ; then
2087 AC_DEFINE(BROKEN_LINKER,1,[Define to 1 to work around linkers which cannot link data-only modules])
2090 AC_SUBST(BROKEN_LINKER)
2092 dnl ---------------------------------------------------------------------------
2093 dnl CF_ENABLE_PC_FILES version: 16 updated: 2021/11/20 12:48:37
2094 dnl ------------------
2095 dnl This is the "--enable-pc-files" option, which is available if there is a
2096 dnl pkg-config configuration on the local machine.
2097 AC_DEFUN([CF_ENABLE_PC_FILES],[
2098 AC_REQUIRE([CF_PKG_CONFIG])
2099 AC_REQUIRE([CF_WITH_PKG_CONFIG_LIBDIR])
2101 if test "x$PKG_CONFIG" != xnone
2103 AC_MSG_CHECKING(if we should install .pc files for $PKG_CONFIG)
2105 AC_MSG_CHECKING(if we should install .pc files)
2108 AC_ARG_ENABLE(pc-files,
2109 [ --enable-pc-files generate and install .pc files for pkg-config],
2110 [enable_pc_files=$enableval],
2111 [enable_pc_files=no])
2112 AC_MSG_RESULT($enable_pc_files)
2114 if test "x$enable_pc_files" != xno
2117 case "x$PKG_CONFIG_LIBDIR" in
2119 AC_MSG_WARN(no PKG_CONFIG_LIBDIR was found)
2122 cf_pkg_config_libdir="$PKG_CONFIG_LIBDIR"
2123 CF_PATH_SYNTAX(cf_pkg_config_libdir)
2129 AC_SUBST(MAKE_PC_FILES)
2131 dnl ---------------------------------------------------------------------------
2132 dnl CF_ENABLE_RPATH version: 2 updated: 2010/03/27 18:39:42
2134 dnl Check if the rpath option should be used, setting cache variable
2135 dnl cf_cv_enable_rpath if so.
2136 AC_DEFUN([CF_ENABLE_RPATH],
2138 AC_MSG_CHECKING(if rpath option should be used)
2139 AC_ARG_ENABLE(rpath,
2140 [ --enable-rpath use rpath option when generating shared libraries],
2141 [cf_cv_enable_rpath=$enableval],
2142 [cf_cv_enable_rpath=no])
2143 AC_MSG_RESULT($cf_cv_enable_rpath)
2145 dnl ---------------------------------------------------------------------------
2146 dnl CF_ENABLE_STRING_HACKS version: 6 updated: 2021/01/05 19:23:48
2147 dnl ----------------------
2148 dnl On a few platforms, the compiler and/or loader nags with untruthful
2149 dnl comments stating that "most" uses of strcat/strcpy/sprintf are incorrect,
2150 dnl and implying that most uses of the recommended alternatives are correct.
2152 dnl Factually speaking, no one has actually counted the number of uses of these
2153 dnl functions versus the total of incorrect uses. Samples of a few thousand
2154 dnl instances are meaningless compared to the hundreds of millions of lines of
2155 dnl existing C code.
2157 dnl strlcat/strlcpy are (as of 2012) non-standard, and are available on some
2158 dnl platforms, in implementations of varying quality. Likewise, snprintf is
2159 dnl standard - but evolved through phases, and older implementations are likely
2160 dnl to yield surprising results, as documented in manpages on various systems.
2161 AC_DEFUN([CF_ENABLE_STRING_HACKS],
2163 AC_MSG_CHECKING(if you want to work around bogus compiler/loader warnings)
2164 AC_ARG_ENABLE(string-hacks,
2165 [ --enable-string-hacks work around bogus compiler/loader warnings],
2166 [enable_string_hacks=$enableval],
2167 [enable_string_hacks=no])
2168 AC_MSG_RESULT($enable_string_hacks)
2170 if test "x$enable_string_hacks" = "xyes"; then
2171 AC_DEFINE(USE_STRING_HACKS,1,[Define to 1 to work around bogus compiler/loader warnings])
2172 AC_MSG_WARN(enabling string-hacks to work around bogus compiler/loader warnings)
2173 AC_CHECK_FUNC(strlcat,[
2174 AC_DEFINE(HAVE_STRLCAT,1,[Define to 1 if we have strlcat function])
2176 AC_CHECK_LIB(bsd,strlcat,[
2178 AC_CHECK_HEADERS(bsd/string.h)
2179 AC_DEFINE(HAVE_STRLCAT,1,[Define to 1 if we have strlcat function])
2182 AC_CHECK_FUNCS( strlcpy snprintf )
2185 dnl ---------------------------------------------------------------------------
2186 dnl CF_ENABLE_WARNINGS version: 9 updated: 2021/01/05 19:40:50
2187 dnl ------------------
2188 dnl Configure-option to enable gcc warnings
2190 dnl $1 = extra options to add, if supported
2191 dnl $2 = option for checking attributes. By default, this is done when
2192 dnl warnings are enabled. For other values:
2193 dnl yes: always do this, e.g., to use in generated library-headers
2194 dnl no: never do this
2195 AC_DEFUN([CF_ENABLE_WARNINGS],[
2196 if test "$GCC" = yes || test "$GXX" = yes
2198 CF_FIX_WARNINGS(CFLAGS)
2199 CF_FIX_WARNINGS(CPPFLAGS)
2200 CF_FIX_WARNINGS(LDFLAGS)
2201 AC_MSG_CHECKING(if you want to turn on gcc warnings)
2202 CF_ARG_ENABLE(warnings,
2203 [ --enable-warnings test: turn on gcc compiler warnings],
2204 [enable_warnings=yes],
2205 [enable_warnings=no])
2206 AC_MSG_RESULT($enable_warnings)
2207 if test "$enable_warnings" = "yes"
2209 ifelse($2,,[CF_GCC_ATTRIBUTES])
2212 ifelse($2,yes,[CF_GCC_ATTRIBUTES])
2215 dnl ---------------------------------------------------------------------------
2216 dnl CF_ERRNO version: 5 updated: 1997/11/30 12:44:39
2218 dnl Check if 'errno' is declared in <errno.h>
2219 AC_DEFUN([CF_ERRNO],
2221 CF_CHECK_ERRNO(errno)
2223 dnl ---------------------------------------------------------------------------
2224 dnl CF_ETIP_DEFINES version: 6 updated: 2021/01/02 17:09:14
2226 dnl Test for conflicting definitions of exception in gcc 2.8.0, etc., between
2227 dnl math.h and builtin.h, only for ncurses
2228 AC_DEFUN([CF_ETIP_DEFINES],
2230 AC_MSG_CHECKING(for special defines needed for etip.h)
2231 cf_save_CXXFLAGS="$CXXFLAGS"
2234 # etip.h includes ncurses.h which includes ncurses_dll.h
2235 # But ncurses_dll.h is generated - fix here.
2236 test -d include || mkdir include
2237 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
2239 for cf_math in "" MATH_H
2241 for cf_excp in "" MATH_EXCEPTION
2243 CXXFLAGS="$cf_save_CXXFLAGS -I${srcdir}/c++ -I${srcdir}/menu -Iinclude -I${srcdir}/include"
2244 test -n "$cf_math" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_math}"
2245 test -n "$cf_excp" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_excp}"
2247 #include <etip.h.in>
2249 test -n "$cf_math" && AC_DEFINE_UNQUOTED(ETIP_NEEDS_${cf_math})
2250 test -n "$cf_excp" && AC_DEFINE_UNQUOTED(ETIP_NEEDS_${cf_excp})
2251 cf_result="$cf_math $cf_excp"
2256 AC_MSG_RESULT($cf_result)
2257 CXXFLAGS="$cf_save_CXXFLAGS"
2259 dnl ---------------------------------------------------------------------------
2260 dnl CF_FIND_LINKAGE version: 22 updated: 2020/12/31 20:19:42
2262 dnl Find a library (specifically the linkage used in the code fragment),
2263 dnl searching for it if it is not already in the library path.
2264 dnl See also CF_ADD_SEARCHPATH.
2266 dnl Parameters (4-on are optional):
2267 dnl $1 = headers for library entrypoint
2268 dnl $2 = code fragment for library entrypoint
2269 dnl $3 = the library name without the "-l" option or ".so" suffix.
2270 dnl $4 = action to perform if successful (default: update CPPFLAGS, etc)
2271 dnl $5 = action to perform if not successful
2272 dnl $6 = module name, if not the same as the library name
2273 dnl $7 = extra libraries
2275 dnl Sets these variables:
2276 dnl $cf_cv_find_linkage_$3 - yes/no according to whether linkage is found
2277 dnl $cf_cv_header_path_$3 - include-directory if needed
2278 dnl $cf_cv_library_path_$3 - library-directory if needed
2279 dnl $cf_cv_library_file_$3 - library-file if needed, e.g., -l$3
2280 AC_DEFUN([CF_FIND_LINKAGE],[
2282 # If the linkage is not already in the $CPPFLAGS/$LDFLAGS configuration, these
2283 # will be set on completion of the AC_TRY_LINK below.
2284 cf_cv_header_path_$3=
2285 cf_cv_library_path_$3=
2287 CF_MSG_LOG([Starting [FIND_LINKAGE]($3,$6)])
2289 cf_save_LIBS="$LIBS"
2291 AC_TRY_LINK([$1],[$2],[
2292 cf_cv_find_linkage_$3=yes
2293 cf_cv_header_path_$3=/usr/include
2294 cf_cv_library_path_$3=/usr/lib
2297 LIBS="-l$3 $7 $cf_save_LIBS"
2299 AC_TRY_LINK([$1],[$2],[
2300 cf_cv_find_linkage_$3=yes
2301 cf_cv_header_path_$3=/usr/include
2302 cf_cv_library_path_$3=/usr/lib
2303 cf_cv_library_file_$3="-l$3"
2305 cf_cv_find_linkage_$3=no
2306 LIBS="$cf_save_LIBS"
2308 CF_VERBOSE(find linkage for $3 library)
2309 CF_MSG_LOG([Searching for headers in [FIND_LINKAGE]($3,$6)])
2311 cf_save_CPPFLAGS="$CPPFLAGS"
2312 cf_test_CPPFLAGS="$CPPFLAGS"
2314 CF_HEADER_PATH(cf_search,ifelse([$6],,[$3],[$6]))
2315 for cf_cv_header_path_$3 in $cf_search
2317 if test -d "$cf_cv_header_path_$3" ; then
2318 CF_VERBOSE(... testing $cf_cv_header_path_$3)
2319 CPPFLAGS="$cf_save_CPPFLAGS"
2320 CF_APPEND_TEXT(CPPFLAGS,-I$cf_cv_header_path_$3)
2321 AC_TRY_COMPILE([$1],[$2],[
2322 CF_VERBOSE(... found $3 headers in $cf_cv_header_path_$3)
2323 cf_cv_find_linkage_$3=maybe
2324 cf_test_CPPFLAGS="$CPPFLAGS"
2326 CPPFLAGS="$cf_save_CPPFLAGS"
2331 if test "$cf_cv_find_linkage_$3" = maybe ; then
2333 CF_MSG_LOG([Searching for $3 library in [FIND_LINKAGE]($3,$6)])
2335 cf_save_LIBS="$LIBS"
2336 cf_save_LDFLAGS="$LDFLAGS"
2339 CPPFLAGS="$cf_test_CPPFLAGS"
2340 LIBS="-l$3 $7 $cf_save_LIBS"
2341 AC_TRY_LINK([$1],[$2],[
2342 CF_VERBOSE(... found $3 library in system)
2343 cf_cv_find_linkage_$3=yes])
2344 CPPFLAGS="$cf_save_CPPFLAGS"
2345 LIBS="$cf_save_LIBS"
2348 if test "$cf_cv_find_linkage_$3" != yes ; then
2349 CF_LIBRARY_PATH(cf_search,$3)
2350 for cf_cv_library_path_$3 in $cf_search
2352 if test -d "$cf_cv_library_path_$3" ; then
2353 CF_VERBOSE(... testing $cf_cv_library_path_$3)
2354 CPPFLAGS="$cf_test_CPPFLAGS"
2355 LIBS="-l$3 $7 $cf_save_LIBS"
2356 LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_$3"
2357 AC_TRY_LINK([$1],[$2],[
2358 CF_VERBOSE(... found $3 library in $cf_cv_library_path_$3)
2359 cf_cv_find_linkage_$3=yes
2360 cf_cv_library_file_$3="-l$3"
2362 CPPFLAGS="$cf_save_CPPFLAGS"
2363 LIBS="$cf_save_LIBS"
2364 LDFLAGS="$cf_save_LDFLAGS"
2368 CPPFLAGS="$cf_save_CPPFLAGS"
2369 LDFLAGS="$cf_save_LDFLAGS"
2373 cf_cv_find_linkage_$3=no
2378 LIBS="$cf_save_LIBS"
2380 if test "$cf_cv_find_linkage_$3" = yes ; then
2382 CF_ADD_INCDIR($cf_cv_header_path_$3)
2383 CF_ADD_LIBDIR($cf_cv_library_path_$3)
2387 ifelse([$5],,AC_MSG_WARN(Cannot find $3 library),[$5])
2390 dnl ---------------------------------------------------------------------------
2391 dnl CF_FIND_SUB_INCDIR version: 3 updated: 2021/01/01 13:31:04
2392 dnl ------------------
2393 dnl Find an include-directory with the given leaf-name. This is useful for
2394 dnl example with FreeBSD ports, which use this convention to distinguish
2395 dnl different versions of the same port.
2396 AC_DEFUN([CF_FIND_SUB_INCDIR],[
2397 CF_SUBDIR_PATH(cf_search,$1,include)
2398 for cf_item in $cf_search
2402 CF_ADD_INCDIR($cf_item)
2407 dnl ---------------------------------------------------------------------------
2408 dnl CF_FIND_SUB_LIBDIR version: 3 updated: 2021/01/01 13:31:04
2409 dnl ------------------
2410 dnl Find a library-directory with the given leaf-name. This is useful for
2411 dnl example with FreeBSD ports, which use this convention to distinguish
2412 dnl different versions of the same port.
2413 AC_DEFUN([CF_FIND_SUB_LIBDIR],[
2414 CF_SUBDIR_PATH(cf_search,$1,lib)
2415 for cf_item in $cf_search
2419 CF_ADD_LIBDIR($cf_item)
2424 dnl ---------------------------------------------------------------------------
2425 dnl CF_FIXUP_ADAFLAGS version: 2 updated: 2015/04/17 21:13:04
2426 dnl -----------------
2427 dnl make ADAFLAGS consistent with CFLAGS
2428 AC_DEFUN([CF_FIXUP_ADAFLAGS],[
2429 AC_MSG_CHECKING(optimization options for ADAFLAGS)
2437 cf_O_flag=`echo "$CFLAGS" |sed -e 's/^.*-O/-O/' -e 's/[[ ]].*//'`
2438 CF_ADD_ADAFLAGS($cf_O_flag)
2441 AC_MSG_RESULT($ADAFLAGS)
2443 dnl ---------------------------------------------------------------------------
2444 dnl CF_FIX_WARNINGS version: 4 updated: 2021/12/16 18:22:31
2446 dnl Warning flags do not belong in CFLAGS, CPPFLAGS, etc. Any of gcc's
2447 dnl "-Werror" flags can interfere with configure-checks. Those go into
2450 dnl $1 = variable name to repair
2451 define([CF_FIX_WARNINGS],[
2452 if test "$GCC" = yes || test "$GXX" = yes
2457 for cf_temp_scan in [$]$1
2459 case "x$cf_temp_scan" in
2461 CF_APPEND_TEXT(cf_temp_flags,$cf_temp_scan)
2464 CF_APPEND_TEXT(EXTRA_CFLAGS,$cf_temp_scan)
2467 CF_APPEND_TEXT(cf_temp_flags,$cf_temp_scan)
2471 if test "x[$]$1" != "x$cf_temp_flags"
2473 CF_VERBOSE(repairing $1: [$]$1)
2475 CF_VERBOSE(... fixed [$]$1)
2476 CF_VERBOSE(... extra $EXTRA_CFLAGS)
2481 AC_SUBST(EXTRA_CFLAGS)
2483 dnl ---------------------------------------------------------------------------
2484 dnl CF_FOPEN_BIN_R version: 2 updated: 2019/12/31 08:53:54
2486 dnl Check if fopen works when the "b" (binary) flag is added to the mode
2487 dnl parameter. POSIX ignores the "b", which c89 specified. Some very old
2488 dnl systems do not accept it.
2489 AC_DEFUN([CF_FOPEN_BIN_R],[
2490 AC_CACHE_CHECK(if fopen accepts explicit binary mode,cf_cv_fopen_bin_r,[
2494 FILE *fp = fopen("conftest.tmp", "wb");
2498 for (p = 0; p < 256; ++p) {
2502 fp = fopen("conftest.tmp", "rb");
2504 for (p = 0; p < 256; ++p) {
2517 ${cf_cv_main_return:-return} (rc);
2520 [cf_cv_fopen_bin_r=yes],
2521 [cf_cv_fopen_bin_r=no],
2522 [cf_cv_fopen_bin_r=unknown])
2524 test "x$cf_cv_fopen_bin_r" != xno && AC_DEFINE(USE_FOPEN_BIN_R,1,[Define to 1 if fopen accepts explicit binary mode])
2526 dnl ---------------------------------------------------------------------------
2527 dnl CF_FORGET_TOOL version: 1 updated: 2013/04/06 18:03:09
2529 dnl Forget that we saw the given tool.
2530 AC_DEFUN([CF_FORGET_TOOL],[
2531 unset ac_cv_prog_ac_ct_$1
2535 dnl ---------------------------------------------------------------------------
2536 dnl CF_FUNC_DLSYM version: 4 updated: 2015/09/12 14:46:44
2538 dnl Test for dlsym() and related functions, as well as libdl.
2543 AC_DEFUN([CF_FUNC_DLSYM],[
2545 AC_CHECK_FUNC(dlsym,cf_have_dlsym=yes,[
2548 AC_CHECK_LIB(dl,dlsym,[
2550 cf_have_libdl=yes])])
2552 if test "$cf_have_dlsym" = yes ; then
2553 test "$cf_have_libdl" = yes && { CF_ADD_LIB(dl) }
2555 AC_MSG_CHECKING(whether able to link to dl*() functions)
2556 AC_TRY_LINK([#include <dlfcn.h>],[
2558 if ((obj = dlopen("filename", 0)) != 0) {
2559 if (dlsym(obj, "symbolname") == 0) {
2563 AC_DEFINE(HAVE_LIBDL,1,[Define to 1 if we have dl library])],[
2564 AC_MSG_ERROR(Cannot link test program for libdl)])
2567 AC_MSG_ERROR(Cannot find dlsym function)
2570 dnl ---------------------------------------------------------------------------
2571 dnl CF_FUNC_GETTTYNAM version: 1 updated: 2021/12/04 18:29:47
2572 dnl -----------------
2573 dnl Check if the 4.3BSD function getttyname exists, as well as if <ttyent.h>
2574 dnl defines the _PATH_TTYS symbol. If the corresponding file exists, but the
2575 dnl other checks fail, just define HAVE_PATH_TTYS.
2576 AC_DEFUN([CF_FUNC_GETTTYNAM],[
2577 AC_CACHE_CHECK(if _PATH_TTYS is defined in ttyent.h,cf_cv_PATH_TTYS,[
2580 #include <ttyent.h>],[
2581 FILE *fp = fopen(_PATH_TTYS, "r"); (void)fp],
2582 [cf_cv_PATH_TTYS=yes],
2583 [cf_cv_PATH_TTYS=no])])
2585 if test $cf_cv_PATH_TTYS = no
2587 for cf_ttys in /etc/ttytype /etc/ttys
2591 cf_cv_PATH_TTYS=maybe
2592 AC_DEFINE(_PATH_TTYS,$cf_ttys,[define to pathname of file containing mapping from tty name to terminal type])
2598 if test $cf_cv_PATH_TTYS != no
2600 AC_CACHE_CHECK(if _PATH_TTYS file exists,cf_cv_have_PATH_TTYS,[
2605 FILE *fp = fopen(_PATH_TTYS, "r");
2606 ${cf_cv_main_return:-return} (fp == 0);
2608 [cf_cv_have_PATH_TTYS=yes],
2609 [cf_cv_have_PATH_TTYS=no],
2610 [cf_cv_have_PATH_TTYS=unknown])])
2611 test "$cf_cv_have_PATH_TTYS" = no && cf_cv_PATH_TTYS=no
2614 if test $cf_cv_PATH_TTYS != no
2616 AC_DEFINE(HAVE_PATH_TTYS,1,[define to 1 if system can map tty name to terminal type])
2617 AC_CACHE_CHECK(for getttynam,cf_cv_func_getttynam,[
2618 AC_TRY_LINK([#include <ttyent.h>],
2619 [struct ttyent *fp = getttynam("/dev/tty"); (void)fp],
2620 [cf_cv_func_getttynam=yes],
2621 [cf_cv_func_getttynam=no])])
2622 test "$cf_cv_func_getttynam" = yes && AC_DEFINE(HAVE_GETTTYNAM)
2625 dnl ---------------------------------------------------------------------------
2626 dnl CF_FUNC_MEMMOVE version: 9 updated: 2017/01/21 11:06:25
2628 dnl Check for memmove, or a bcopy that can handle overlapping copy. If neither
2629 dnl is found, add our own version of memmove to the list of objects.
2630 AC_DEFUN([CF_FUNC_MEMMOVE],
2632 AC_CHECK_FUNC(memmove,,[
2633 AC_CHECK_FUNC(bcopy,[
2634 AC_CACHE_CHECK(if bcopy does overlapping moves,cf_cv_good_bcopy,[
2637 static char data[] = "abcdefghijklmnopqrstuwwxyz";
2639 bcopy(data, temp, sizeof(data));
2640 bcopy(temp+10, temp, 15);
2641 bcopy(temp+5, temp+15, 10);
2642 ${cf_cv_main_return:-return} (strcmp(temp, "klmnopqrstuwwxypqrstuwwxyz"));
2645 [cf_cv_good_bcopy=yes],
2646 [cf_cv_good_bcopy=no],
2647 [cf_cv_good_bcopy=unknown])
2649 ],[cf_cv_good_bcopy=no])
2650 if test "$cf_cv_good_bcopy" = yes ; then
2651 AC_DEFINE(USE_OK_BCOPY,1,[Define to 1 to use bcopy when memmove is unavailable])
2653 AC_DEFINE(USE_MY_MEMMOVE,1,[Define to 1 to use replacement function when memmove is unavailable])
2656 dnl ---------------------------------------------------------------------------
2657 dnl CF_FUNC_NANOSLEEP version: 5 updated: 2017/01/21 11:06:25
2658 dnl -----------------
2659 dnl Check for existence of workable nanosleep() function. Some systems, e.g.,
2660 dnl AIX 4.x, provide a non-working version.
2661 AC_DEFUN([CF_FUNC_NANOSLEEP],[
2662 AC_CACHE_CHECK(if nanosleep really works,cf_cv_func_nanosleep,[
2668 #ifdef HAVE_SYS_TIME_H
2669 #include <sys/time.h>
2673 struct timespec ts1, ts2;
2676 ts1.tv_nsec = 750000000;
2680 code = nanosleep(&ts1, &ts2); /* on failure errno is ENOSYS. */
2681 ${cf_cv_main_return:-return}(code != 0);
2684 [cf_cv_func_nanosleep=yes],
2685 [cf_cv_func_nanosleep=no],
2686 [cf_cv_func_nanosleep=unknown])])
2688 test "$cf_cv_func_nanosleep" = "yes" && AC_DEFINE(HAVE_NANOSLEEP,1,[Define to 1 if we have nanosleep()])
2690 dnl ---------------------------------------------------------------------------
2691 dnl CF_FUNC_OPENPTY version: 6 updated: 2021/01/01 13:31:04
2693 dnl Check for openpty() function, along with <pty.h> header. It may need the
2694 dnl "util" library as well.
2695 AC_DEFUN([CF_FUNC_OPENPTY],
2697 AC_CHECK_LIB(util,openpty,cf_cv_lib_util=yes,cf_cv_lib_util=no)
2698 AC_CACHE_CHECK(for openpty header,cf_cv_func_openpty,[
2699 cf_save_LIBS="$LIBS"
2700 test "$cf_cv_lib_util" = yes && { CF_ADD_LIB(util) }
2701 for cf_header in pty.h libutil.h util.h
2704 #include <$cf_header>
2706 int x = openpty((int *)0, (int *)0, (char *)0,
2707 (struct termios *)0, (struct winsize *)0);
2709 cf_cv_func_openpty=$cf_header
2712 cf_cv_func_openpty=no
2715 LIBS="$cf_save_LIBS"
2718 dnl ---------------------------------------------------------------------------
2719 dnl CF_FUNC_POLL version: 10 updated: 2021/01/04 19:13:57
2721 dnl See if the poll function really works. Some platforms have poll(), but
2722 dnl it does not work for terminals or files.
2723 AC_DEFUN([CF_FUNC_POLL],[
2724 tty >/dev/null 2>&1 || { AC_CHECK_FUNCS(posix_openpt) }
2725 AC_CACHE_CHECK(if poll really works,cf_cv_working_poll,[
2734 #include <sys/poll.h>
2737 struct pollfd myfds;
2740 /* check for Darwin bug with respect to "devices" */
2741 myfds.fd = open("/dev/null", 1); /* O_WRONLY */
2744 myfds.events = POLLIN;
2747 ret = poll(&myfds, 1, 100);
2749 if (ret < 0 || (myfds.revents & POLLNVAL)) {
2754 fd = open("/dev/tty", 2); /* O_RDWR */
2756 #ifdef HAVE_POSIX_OPENPT
2758 fd = posix_openpt(O_RDWR);
2763 /* also check with standard input */
2765 myfds.events = POLLIN;
2767 ret = poll(&myfds, 1, 100);
2772 ${cf_cv_main_return:-return}(ret < 0);
2774 [cf_cv_working_poll=yes],
2775 [cf_cv_working_poll=no],
2776 [cf_cv_working_poll=unknown])])
2777 test "$cf_cv_working_poll" = "yes" && AC_DEFINE(HAVE_WORKING_POLL,1,[Define to 1 if the poll function seems to work])
2779 dnl ---------------------------------------------------------------------------
2780 dnl CF_FUNC_TERMIOS version: 3 updated: 2012/10/06 17:56:13
2782 dnl Some old/broken variations define tcgetattr() only as a macro in
2784 AC_DEFUN([CF_FUNC_TERMIOS],[
2785 AC_REQUIRE([CF_STRUCT_TERMIOS])
2786 AC_CACHE_CHECK(for tcgetattr, cf_cv_have_tcgetattr,[
2788 #include <sys/types.h>
2789 #ifdef HAVE_UNISTD_H
2792 #ifdef HAVE_TERMIOS_H
2793 #include <termios.h>
2794 #define TTY struct termios
2796 #ifdef HAVE_TERMIO_H
2798 #define TTY struct termio
2803 tcgetattr(1, &foo);],
2804 [cf_cv_have_tcgetattr=yes],
2805 [cf_cv_have_tcgetattr=no])])
2806 test "$cf_cv_have_tcgetattr" = yes && AC_DEFINE(HAVE_TCGETATTR,1,[Define to 1 if we have tcgetattr])
2808 dnl ---------------------------------------------------------------------------
2809 dnl CF_FUNC_VSSCANF version: 7 updated: 2021/01/01 13:31:04
2811 dnl Check for vsscanf() function, which is in c9x but generally not in earlier
2812 dnl versions of C. It is in the GNU C library, and can often be simulated by
2813 dnl other functions.
2814 AC_DEFUN([CF_FUNC_VSSCANF],
2816 AC_CACHE_CHECK(for vsscanf function or workaround,cf_cv_func_vsscanf,[
2819 #include <stdio.h>],[
2821 vsscanf("from", "%d", ap)],[cf_cv_func_vsscanf=vsscanf],[
2824 #include <stdio.h>],[
2828 strbuf._flag = _IOREAD;
2829 strbuf._ptr = strbuf._base = (unsigned char *) str;
2830 strbuf._cnt = strlen(str);
2831 strbuf._file = _NFILE;
2832 return (vfscanf(&strbuf, "%d", ap))],[cf_cv_func_vsscanf=vfscanf],[
2835 #include <stdio.h>],[
2839 strbuf._flag = _IOREAD;
2840 strbuf._ptr = strbuf._base = (unsigned char *) str;
2841 strbuf._cnt = strlen(str);
2842 strbuf._file = _NFILE;
2843 return (_doscan(&strbuf, "%d", ap))],[cf_cv_func_vsscanf=_doscan],[
2844 cf_cv_func_vsscanf=no])])])])
2846 case "$cf_cv_func_vsscanf" in
2847 (vsscanf) AC_DEFINE(HAVE_VSSCANF,1,[Define to 1 if we have vsscanf]);;
2848 (vfscanf) AC_DEFINE(HAVE_VFSCANF,1,[Define to 1 if we have vfscanf]);;
2849 (_doscan) AC_DEFINE(HAVE__DOSCAN,1,[Define to 1 if we have _doscan]);;
2853 dnl ---------------------------------------------------------------------------
2854 dnl CF_GCC_ATTRIBUTES version: 24 updated: 2021/03/20 12:00:25
2855 dnl -----------------
2856 dnl Test for availability of useful gcc __attribute__ directives to quiet
2857 dnl compiler warnings. Though useful, not all are supported -- and contrary
2858 dnl to documentation, unrecognized directives cause older compilers to barf.
2859 AC_DEFUN([CF_GCC_ATTRIBUTES],
2860 [AC_REQUIRE([AC_PROG_FGREP])dnl
2861 AC_REQUIRE([CF_C11_NORETURN])dnl
2863 if test "$GCC" = yes || test "$GXX" = yes
2865 cat > conftest.i <<EOF
2867 #define GCC_PRINTF 0
2872 #ifndef GCC_NORETURN
2873 #define GCC_NORETURN /* nothing */
2876 #define GCC_UNUSED /* nothing */
2879 if test "$GCC" = yes
2881 AC_CHECKING([for $CC __attribute__ directives])
2882 cat > "conftest.$ac_ext" <<EOF
2883 #line __oline__ "${as_me:-configure}"
2884 #include "confdefs.h"
2885 #include "conftest.h"
2886 #include "conftest.i"
2888 #define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
2890 #define GCC_PRINTFLIKE(fmt,var) /*nothing*/
2893 #define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
2895 #define GCC_SCANFLIKE(fmt,var) /*nothing*/
2897 extern void wow(char *,...) GCC_SCANFLIKE(1,2);
2898 extern GCC_NORETURN void oops(char *,...) GCC_PRINTFLIKE(1,2);
2899 extern GCC_NORETURN void foo(void);
2900 int main(int argc GCC_UNUSED, char *argv[[]] GCC_UNUSED) { (void)argc; (void)argv; return 0; }
2902 cf_printf_attribute=no
2903 cf_scanf_attribute=no
2904 for cf_attribute in scanf printf unused noreturn
2906 CF_UPPER(cf_ATTRIBUTE,$cf_attribute)
2907 cf_directive="__attribute__(($cf_attribute))"
2908 echo "checking for $CC $cf_directive" 1>&AC_FD_CC
2910 case "$cf_attribute" in
2912 cf_printf_attribute=yes
2913 cat >conftest.h <<EOF
2914 #define GCC_$cf_ATTRIBUTE 1
2918 cf_scanf_attribute=yes
2919 cat >conftest.h <<EOF
2920 #define GCC_$cf_ATTRIBUTE 1
2924 cat >conftest.h <<EOF
2925 #define GCC_$cf_ATTRIBUTE $cf_directive
2930 if AC_TRY_EVAL(ac_compile); then
2931 test -n "$verbose" && AC_MSG_RESULT(... $cf_attribute)
2932 cat conftest.h >>confdefs.h
2933 case "$cf_attribute" in
2935 AC_DEFINE_UNQUOTED(GCC_NORETURN,$cf_directive,[Define to noreturn-attribute for gcc])
2938 cf_value='/* nothing */'
2939 if test "$cf_printf_attribute" != no ; then
2940 cf_value='__attribute__((format(printf,fmt,var)))'
2941 AC_DEFINE(GCC_PRINTF,1,[Define to 1 if the compiler supports gcc-like printf attribute.])
2943 AC_DEFINE_UNQUOTED(GCC_PRINTFLIKE(fmt,var),$cf_value,[Define to printf-attribute for gcc])
2946 cf_value='/* nothing */'
2947 if test "$cf_scanf_attribute" != no ; then
2948 cf_value='__attribute__((format(scanf,fmt,var)))'
2949 AC_DEFINE(GCC_SCANF,1,[Define to 1 if the compiler supports gcc-like scanf attribute.])
2951 AC_DEFINE_UNQUOTED(GCC_SCANFLIKE(fmt,var),$cf_value,[Define to sscanf-attribute for gcc])
2954 AC_DEFINE_UNQUOTED(GCC_UNUSED,$cf_directive,[Define to unused-attribute for gcc])
2960 ${FGREP-fgrep} define conftest.i >>confdefs.h
2965 dnl ---------------------------------------------------------------------------
2966 dnl CF_GCC_VERSION version: 8 updated: 2019/09/07 13:38:36
2968 dnl Find version of gcc, and (because icc/clang pretend to be gcc without being
2969 dnl compatible), attempt to determine if icc/clang is actually used.
2970 AC_DEFUN([CF_GCC_VERSION],[
2971 AC_REQUIRE([AC_PROG_CC])
2973 if test "$GCC" = yes ; then
2974 AC_MSG_CHECKING(version of $CC)
2975 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.]].*//'`"
2976 test -z "$GCC_VERSION" && GCC_VERSION=unknown
2977 AC_MSG_RESULT($GCC_VERSION)
2979 CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
2980 CF_CLANG_COMPILER(GCC,CLANG_COMPILER,CFLAGS)
2982 dnl ---------------------------------------------------------------------------
2983 dnl CF_GCC_WARNINGS version: 41 updated: 2021/01/01 16:53:59
2985 dnl Check if the compiler supports useful warning options. There's a few that
2986 dnl we don't use, simply because they're too noisy:
2988 dnl -Wconversion (useful in older versions of gcc, but not in gcc 2.7.x)
2989 dnl -Winline (usually not worthwhile)
2990 dnl -Wredundant-decls (system headers make this too noisy)
2991 dnl -Wtraditional (combines too many unrelated messages, only a few useful)
2992 dnl -Wwrite-strings (too noisy, but should review occasionally). This
2993 dnl is enabled for ncurses using "--enable-const".
2997 dnl $1 is an optional list of gcc warning flags that a particular
2998 dnl application might want to use, e.g., "no-unused" for
3001 dnl If $with_ext_const is "yes", add a check for -Wwrite-strings
3003 AC_DEFUN([CF_GCC_WARNINGS],
3005 AC_REQUIRE([CF_GCC_VERSION])
3006 if test "x$have_x" = xyes; then CF_CONST_X_STRING fi
3007 cat > "conftest.$ac_ext" <<EOF
3008 #line __oline__ "${as_me:-configure}"
3009 int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
3011 if test "$INTEL_COMPILER" = yes
3013 # The "-wdXXX" options suppress warnings:
3014 # remark #1419: external declaration in primary source file
3015 # remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
3016 # remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
3017 # remark #193: zero used for undefined preprocessing identifier
3018 # remark #593: variable "curs_sb_left_arrow" was set but never used
3019 # remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
3020 # remark #869: parameter "tw" was never referenced
3021 # remark #981: operands are evaluated in unspecified order
3022 # warning #279: controlling expression is constant
3024 AC_CHECKING([for $CC warning options])
3025 cf_save_CFLAGS="$CFLAGS"
3026 EXTRA_CFLAGS="$EXTRA_CFLAGS -Wall"
3038 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
3039 if AC_TRY_EVAL(ac_compile); then
3040 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
3041 EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
3044 CFLAGS="$cf_save_CFLAGS"
3045 elif test "$GCC" = yes && test "$GCC_VERSION" != "unknown"
3047 AC_CHECKING([for $CC warning options])
3048 cf_save_CFLAGS="$CFLAGS"
3050 test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
3051 cf_gcc_warnings="Wignored-qualifiers Wlogical-op Wvarargs"
3052 test "x$CLANG_COMPILER" = xyes && cf_gcc_warnings=
3053 for cf_opt in W Wall \
3054 Wbad-function-cast \
3057 Wdeclaration-after-statement \
3060 Wmissing-declarations \
3061 Wmissing-prototypes \
3065 Wstrict-prototypes \
3066 Wundef Wno-inline $cf_gcc_warnings $cf_warn_CONST $1
3068 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
3069 if AC_TRY_EVAL(ac_compile); then
3070 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
3073 case "$GCC_VERSION" in
3075 CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
3080 case "$GCC_VERSION" in
3082 CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
3087 EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
3090 CFLAGS="$cf_save_CFLAGS"
3094 AC_SUBST(EXTRA_CFLAGS)
3096 dnl ---------------------------------------------------------------------------
3097 dnl CF_GETOPT_HEADER version: 8 updated: 2021/06/19 19:16:16
3098 dnl ----------------
3099 dnl Check for getopt's variables which are commonly defined in stdlib.h,
3100 dnl unistd.h or (nonstandard) in getopt.h
3101 AC_DEFUN([CF_GETOPT_HEADER],
3103 AC_HAVE_HEADERS(unistd.h getopt.h)
3104 AC_CACHE_CHECK(for header declaring getopt variables,cf_cv_getopt_header,[
3105 cf_cv_getopt_header=none
3106 for cf_header in stdio.h stdlib.h unistd.h getopt.h
3109 #include <$cf_header>],
3110 [int x = optind; char *y = optarg; (void)x; (void)y],
3111 [cf_cv_getopt_header=$cf_header
3115 if test "$cf_cv_getopt_header" != none ; then
3116 AC_DEFINE(HAVE_GETOPT_HEADER,1,[Define to 1 if getopt variables are declared in header])
3118 if test "$cf_cv_getopt_header" = getopt.h ; then
3119 AC_DEFINE(NEED_GETOPT_H,1,[Define to 1 if we must include getopt.h])
3122 dnl ---------------------------------------------------------------------------
3123 dnl CF_GNATPREP_OPT_T version: 1 updated: 2014/08/02 18:37:25
3124 dnl -----------------
3125 AC_DEFUN([CF_GNATPREP_OPT_T],[
3126 AC_CACHE_CHECK(if GNATPREP supports -T option,cf_cv_gnatprep_opt_t,[
3127 cf_cv_gnatprep_opt_t=no
3128 gnatprep -T 2>/dev/null >/dev/null && cf_cv_gnatprep_opt_t=yes
3130 test "$cf_cv_gnatprep_opt_t" = yes && GNATPREP_OPTS="-T $GNATPREP_OPTS"
3131 AC_SUBST(GNATPREP_OPTS)
3133 dnl ---------------------------------------------------------------------------
3134 dnl CF_GNAT_GENERICS version: 7 updated: 2021/01/01 13:31:04
3135 dnl ----------------
3136 AC_DEFUN([CF_GNAT_GENERICS],
3138 AC_REQUIRE([CF_GNAT_VERSION])
3140 AC_MSG_CHECKING(if GNAT supports generics)
3141 case "$cf_cv_gnat_version" in
3142 (3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*|[[1-9]][[0-9]].[[0-9]]*|20[[0-9]][[0-9]])
3143 cf_gnat_generics=yes
3149 AC_MSG_RESULT($cf_gnat_generics)
3151 if test "$cf_gnat_generics" = yes
3153 cf_compile_generics=generics
3154 cf_generic_objects="\${GENOBJS}"
3156 cf_compile_generics=
3160 AC_SUBST(cf_compile_generics)
3161 AC_SUBST(cf_generic_objects)
3163 dnl ---------------------------------------------------------------------------
3164 dnl CF_GNAT_PROJECTS version: 13 updated: 2021/01/02 17:09:14
3165 dnl ----------------
3166 dnl GNAT projects are configured with ".gpr" project files.
3167 dnl GNAT libraries are a further development, using the project feature.
3168 AC_DEFUN([CF_GNAT_PROJECTS],
3170 AC_REQUIRE([CF_GNAT_VERSION])
3171 AC_REQUIRE([CF_DISABLE_GNAT_PROJECTS])
3173 cf_gnat_libraries=no
3176 if test "$enable_gnat_projects" != no ; then
3177 AC_MSG_CHECKING(if GNAT supports project files)
3178 case "$cf_cv_gnat_version" in
3182 case "$cf_cv_system_name" in
3186 rm -rf ./conftest* ./*~conftest*
3187 if mkdir conftest.src conftest.bin conftest.lib
3190 rm -rf ./conftest* ./*~conftest*
3191 cat >>library.gpr <<CF_EOF
3193 Kind := External ("LIB_KIND");
3194 for Library_Name use "ConfTest";
3195 for Object_Dir use ".";
3196 for Library_ALI_Dir use External("LIBRARY_DIR");
3197 for Library_Version use External ("SONAME");
3198 for Library_Kind use Kind;
3199 for Library_Dir use External("BUILD_DIR");
3200 Source_Dir := External ("SOURCE_DIR");
3201 for Source_Dirs use (Source_Dir);
3204 cat >>confpackage.ads <<CF_EOF
3205 package ConfPackage is
3209 cat >>confpackage.adb <<CF_EOF
3211 package body ConfPackage is
3212 procedure conftest is
3214 Text_IO.Put ("Hello World");
3219 if ( "$cf_ada_make" $ADAFLAGS \
3221 -XBUILD_DIR="`cd ../conftest.bin;pwd`" \
3222 -XLIBRARY_DIR="`cd ../conftest.lib;pwd`" \
3223 -XSOURCE_DIR="`pwd`" \
3224 -XSONAME=libConfTest.so.1 \
3225 -XLIB_KIND=static 1>&AC_FD_CC 2>&1 ) ; then
3226 cf_gnat_projects=yes
3230 if test -f conftest.lib/confpackage.ali
3232 cf_gnat_libraries=yes
3234 rm -rf ./conftest* ./*~conftest*
3239 AC_MSG_RESULT($cf_gnat_projects)
3240 fi # enable_gnat_projects
3242 if test "$cf_gnat_projects" = yes
3244 AC_MSG_CHECKING(if GNAT supports libraries)
3245 AC_MSG_RESULT($cf_gnat_libraries)
3248 USE_OLD_MAKERULES=""
3249 USE_GNAT_PROJECTS="#"
3250 USE_GNAT_MAKE_GPR="#"
3251 USE_GNAT_GPRBUILD="#"
3253 if test "$cf_gnat_projects" = yes
3255 USE_OLD_MAKERULES="#"
3256 USE_GNAT_PROJECTS=""
3257 if test "$cf_cv_VERSION_GPRBUILD" != no
3259 USE_GNAT_GPRBUILD=""
3260 elif test "$cf_cv_VERSION_GNATMAKE" != no
3262 USE_GNAT_MAKE_GPR=""
3264 AC_MSG_WARN(use old makefile rules since tools are missing)
3268 if test "$cf_gnat_libraries" = yes
3270 USE_GNAT_LIBRARIES=""
3272 USE_GNAT_LIBRARIES="#"
3275 AC_SUBST(USE_OLD_MAKERULES)
3276 AC_SUBST(USE_GNAT_PROJECTS)
3277 AC_SUBST(USE_GNAT_LIBRARIES)
3278 AC_SUBST(USE_GNAT_MAKE_GPR)
3279 AC_SUBST(USE_GNAT_GPRBUILD)
3281 dnl ---------------------------------------------------------------------------
3282 dnl CF_GNAT_SIGINT version: 2 updated: 2021/01/01 13:31:04
3284 dnl Check if gnat supports SIGINT, and presumably tasking. For the latter, it
3285 dnl is noted that gnat may compile a tasking unit even for configurations which
3286 dnl fail at runtime.
3287 AC_DEFUN([CF_GNAT_SIGINT],[
3288 AC_CACHE_CHECK(if GNAT supports SIGINT,cf_cv_gnat_sigint,[
3289 CF_GNAT_TRY_LINK([with Ada.Interrupts.Names;
3293 pragma Warnings (Off); -- the next pragma exists since 3.11p
3294 pragma Unreserve_All_Interrupts;
3295 pragma Warnings (On);
3297 protected Process is
3299 function Continue return Boolean;
3300 pragma Attach_Handler (Stop, Ada.Interrupts.Names.SIGINT);
3302 Done : Boolean := False;
3306 [package body ConfTest is
3307 protected body Process is
3312 function Continue return Boolean is
3318 [cf_cv_gnat_sigint=yes],
3319 [cf_cv_gnat_sigint=no])])
3321 if test "$cf_cv_gnat_sigint" = yes ; then
3326 AC_SUBST(USE_GNAT_SIGINT)
3328 dnl ---------------------------------------------------------------------------
3329 dnl CF_GNAT_TRY_LINK version: 4 updated: 2021/01/01 13:31:04
3330 dnl ----------------
3331 dnl Verify that a test program compiles/links with GNAT.
3332 dnl $cf_ada_make is set to the program that compiles/links
3333 dnl $ADAFLAGS may be set to the GNAT flags.
3335 dnl $1 is the text of the spec
3336 dnl $2 is the text of the body
3337 dnl $3 is the shell command to execute if successful
3338 dnl $4 is the shell command to execute if not successful
3339 AC_DEFUN([CF_GNAT_TRY_LINK],
3341 rm -rf ./conftest* ./*~conftest*
3342 cat >>conftest.ads <<CF_EOF
3345 cat >>conftest.adb <<CF_EOF
3348 if ( "$cf_ada_make" $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
3349 ifelse($3,, :,[ $3])
3353 rm -rf ./conftest* ./*~conftest*
3355 dnl ---------------------------------------------------------------------------
3356 dnl CF_GNAT_TRY_RUN version: 6 updated: 2021/01/01 13:31:04
3358 dnl Verify that a test program compiles and runs with GNAT
3359 dnl $cf_ada_make is set to the program that compiles/links
3360 dnl $ADAFLAGS may be set to the GNAT flags.
3362 dnl $1 is the text of the spec
3363 dnl $2 is the text of the body
3364 dnl $3 is the shell command to execute if successful
3365 dnl $4 is the shell command to execute if not successful
3366 AC_DEFUN([CF_GNAT_TRY_RUN],
3368 rm -rf ./conftest* ./*~conftest*
3369 cat >>conftest.ads <<CF_EOF
3372 cat >>conftest.adb <<CF_EOF
3375 if ( "$cf_ada_make" $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
3376 if ( ./conftest 1>&AC_FD_CC 2>&1 ) ; then
3377 ifelse($3,, :,[ $3])
3384 rm -rf ./conftest* ./*~conftest*
3386 dnl ---------------------------------------------------------------------------
3387 dnl CF_GNAT_VERSION version: 22 updated: 2019/12/31 08:53:54
3389 dnl $1 = cache variable to update
3390 dnl $2 = program name
3391 dnl Verify version of GNAT or related tool
3392 AC_DEFUN([CF_GNAT_VERSION],
3394 AC_CACHE_CHECK(for ifelse($2,,gnat,$2) version, cf_cv_gnat_version,[
3395 cf_cv_gnat_version=`ifelse($2,,${cf_ada_make:-gnatmake},$2) --version 2>&1 | \
3396 grep '[[0-9]].[[0-9]][[0-9]]*' |\
3397 sed -e '2,$d' -e 's/[[^0-9 \.]]//g' -e 's/^[[ ]]*//' -e 's/ .*//'`
3399 test -z "$cf_cv_gnat_version" && cf_cv_gnat_version=no
3400 ifelse($1,,,[eval $1=$cf_cv_gnat_version; unset cf_cv_gnat_version])
3402 dnl ---------------------------------------------------------------------------
3403 dnl CF_GNU_SOURCE version: 10 updated: 2018/12/10 20:09:41
3405 dnl Check if we must define _GNU_SOURCE to get a reasonable value for
3406 dnl _XOPEN_SOURCE, upon which many POSIX definitions depend. This is a defect
3407 dnl (or misfeature) of glibc2, which breaks portability of many applications,
3408 dnl since it is interwoven with GNU extensions.
3410 dnl Well, yes we could work around it...
3413 dnl $1 is the nominal value for _XOPEN_SOURCE
3414 AC_DEFUN([CF_GNU_SOURCE],
3416 cf_gnu_xopen_source=ifelse($1,,500,$1)
3418 AC_CACHE_CHECK(if this is the GNU C library,cf_cv_gnu_library,[
3419 AC_TRY_COMPILE([#include <sys/types.h>],[
3420 #if __GLIBC__ > 0 && __GLIBC_MINOR__ >= 0
3422 #elif __NEWLIB__ > 0 && __NEWLIB_MINOR__ >= 0
3425 # error not GNU C library
3427 [cf_cv_gnu_library=yes],
3428 [cf_cv_gnu_library=no])
3431 if test x$cf_cv_gnu_library = xyes; then
3433 # With glibc 2.19 (13 years after this check was begun), _DEFAULT_SOURCE
3434 # was changed to help a little. newlib incorporated the change about 4
3436 AC_CACHE_CHECK(if _DEFAULT_SOURCE can be used as a basis,cf_cv_gnu_library_219,[
3438 CF_APPEND_TEXT(CPPFLAGS,-D_DEFAULT_SOURCE)
3439 AC_TRY_COMPILE([#include <sys/types.h>],[
3440 #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 19) || (__GLIBC__ > 2)
3442 #elif (__NEWLIB__ == 2 && __NEWLIB_MINOR__ >= 4) || (__GLIBC__ > 3)
3445 # error GNU C library __GLIBC__.__GLIBC_MINOR__ is too old
3447 [cf_cv_gnu_library_219=yes],
3448 [cf_cv_gnu_library_219=no])
3452 if test "x$cf_cv_gnu_library_219" = xyes; then
3454 AC_CACHE_CHECK(if _XOPEN_SOURCE=$cf_gnu_xopen_source works with _DEFAULT_SOURCE,cf_cv_gnu_dftsrc_219,[
3455 CF_ADD_CFLAGS(-D_DEFAULT_SOURCE -D_XOPEN_SOURCE=$cf_gnu_xopen_source)
3458 #include <sys/types.h>
3460 #if (_XOPEN_SOURCE >= $cf_gnu_xopen_source) && (MB_LEN_MAX > 1)
3463 # error GNU C library is too old
3465 [cf_cv_gnu_dftsrc_219=yes],
3466 [cf_cv_gnu_dftsrc_219=no])
3468 test "x$cf_cv_gnu_dftsrc_219" = "xyes" || CPPFLAGS="$cf_save"
3470 cf_cv_gnu_dftsrc_219=maybe
3473 if test "x$cf_cv_gnu_dftsrc_219" != xyes; then
3475 AC_CACHE_CHECK(if we must define _GNU_SOURCE,cf_cv_gnu_source,[
3476 AC_TRY_COMPILE([#include <sys/types.h>],[
3477 #ifndef _XOPEN_SOURCE
3478 #error expected _XOPEN_SOURCE to be defined
3480 [cf_cv_gnu_source=no],
3481 [cf_save="$CPPFLAGS"
3482 CF_ADD_CFLAGS(-D_GNU_SOURCE)
3483 AC_TRY_COMPILE([#include <sys/types.h>],[
3484 #ifdef _XOPEN_SOURCE
3485 #error expected _XOPEN_SOURCE to be undefined
3487 [cf_cv_gnu_source=no],
3488 [cf_cv_gnu_source=yes])
3493 if test "$cf_cv_gnu_source" = yes
3495 AC_CACHE_CHECK(if we should also define _DEFAULT_SOURCE,cf_cv_default_source,[
3496 CF_APPEND_TEXT(CPPFLAGS,-D_GNU_SOURCE)
3497 AC_TRY_COMPILE([#include <sys/types.h>],[
3498 #ifdef _DEFAULT_SOURCE
3499 #error expected _DEFAULT_SOURCE to be undefined
3501 [cf_cv_default_source=no],
3502 [cf_cv_default_source=yes])
3504 if test "$cf_cv_default_source" = yes
3506 CF_APPEND_TEXT(CPPFLAGS,-D_DEFAULT_SOURCE)
3513 dnl ---------------------------------------------------------------------------
3514 dnl CF_GPP_LIBRARY version: 13 updated: 2021/01/01 13:31:04
3516 dnl If we're trying to use g++, test if libg++ is installed (a rather common
3517 dnl problem :-). If we have the compiler but no library, we'll be able to
3518 dnl configure, but won't be able to build the c++ demo program.
3519 AC_DEFUN([CF_GPP_LIBRARY],
3521 cf_cxx_library=unknown
3522 case "$cf_cv_system_name" in
3530 if test "$GXX" = yes; then
3531 AC_MSG_CHECKING([for lib$cf_gpp_libname])
3533 CF_ADD_LIB($cf_gpp_libname)
3535 #include <$cf_gpp_libname/builtin.h>
3537 [two_arg_error_handler_t foo2 = lib_error_handler],
3539 CF_ADD_LIB($cf_gpp_libname,CXXLIBS)
3540 if test "$cf_gpp_libname" = cpp ; then
3541 AC_DEFINE(HAVE_GPP_BUILTIN_H,1,[Define to 1 if we have gpp builtin.h])
3543 AC_DEFINE(HAVE_GXX_BUILTIN_H,1,[Define to 1 if we have g++ builtin.h])
3546 #include <builtin.h>
3548 [two_arg_error_handler_t foo2 = lib_error_handler],
3550 CF_ADD_LIB($cf_gpp_libname,CXXLIBS)
3551 AC_DEFINE(HAVE_BUILTIN_H,1,[Define to 1 if we have builtin.h])],
3552 [cf_cxx_library=no])])
3554 AC_MSG_RESULT($cf_cxx_library)
3557 dnl ---------------------------------------------------------------------------
3558 dnl CF_GXX_VERSION version: 8 updated: 2017/02/11 14:48:57
3560 dnl Check for version of g++
3561 AC_DEFUN([CF_GXX_VERSION],[
3562 AC_REQUIRE([AC_PROG_CPP])
3564 if test "$GXX" = yes; then
3565 AC_MSG_CHECKING(version of ${CXX:-g++})
3566 GXX_VERSION="`${CXX:-g++} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
3567 if test -z "$GXX_VERSION"
3572 AC_MSG_RESULT($GXX_VERSION)
3575 dnl ---------------------------------------------------------------------------
3576 dnl CF_GXX_WARNINGS version: 11 updated: 2021/01/08 16:50:55
3578 dnl Check if the compiler supports useful warning options.
3580 dnl Most of gcc's options apply to g++, except:
3581 dnl -Wbad-function-cast
3582 dnl -Wmissing-declarations
3583 dnl -Wnested-externs
3585 dnl Omit a few (for now):
3589 dnl $1 is an optional list of g++ warning flags that a particular
3590 dnl application might want to use, e.g., "no-unused" for
3593 dnl If $with_ext_const is "yes", add a check for -Wwrite-strings
3595 AC_DEFUN([CF_GXX_WARNINGS],
3598 CF_INTEL_COMPILER(GXX,INTEL_CPLUSPLUS,CXXFLAGS)
3599 CF_CLANG_COMPILER(GXX,CLANG_CPLUSPLUS,CXXFLAGS)
3601 AC_REQUIRE([CF_GXX_VERSION])
3606 cat > conftest.$ac_ext <<EOF
3607 #line __oline__ "configure"
3608 int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
3611 if test "$INTEL_CPLUSPLUS" = yes
3613 # The "-wdXXX" options suppress warnings:
3614 # remark #1419: external declaration in primary source file
3615 # remark #1682: implicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
3616 # remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
3617 # remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
3618 # remark #193: zero used for undefined preprocessing identifier
3619 # remark #593: variable "curs_sb_left_arrow" was set but never used
3620 # remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
3621 # remark #869: parameter "tw" was never referenced
3622 # remark #981: operands are evaluated in unspecified order
3623 # warning #269: invalid format string conversion
3625 AC_CHECKING([for $CC warning options])
3626 cf_save_CXXFLAGS="$CXXFLAGS"
3627 EXTRA_CXXFLAGS="-Wall"
3640 CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -$cf_opt"
3641 if AC_TRY_EVAL(ac_compile); then
3642 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
3643 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
3646 CXXFLAGS="$cf_save_CXXFLAGS"
3648 elif test "$GXX" = yes
3650 AC_CHECKING([for $CXX warning options])
3651 cf_save_CXXFLAGS="$CXXFLAGS"
3652 EXTRA_CXXFLAGS="-W -Wall"
3653 cf_gxx_extra_warnings=""
3654 test "$with_ext_const" = yes && cf_gxx_extra_warnings="Wwrite-strings"
3655 case "$GXX_VERSION" in
3659 cf_gxx_extra_warnings="$cf_gxx_extra_warnings Weffc++"
3666 Wignored-qualifiers \
3668 Woverloaded-virtual \
3676 Wundef $cf_gxx_extra_warnings $1
3678 CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -Werror -$cf_opt"
3679 if AC_TRY_EVAL(ac_compile); then
3680 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
3681 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
3683 test -n "$verbose" && AC_MSG_RESULT(... no -$cf_opt)
3686 CXXFLAGS="$cf_save_CXXFLAGS"
3691 AC_SUBST(EXTRA_CXXFLAGS)
3693 dnl ---------------------------------------------------------------------------
3694 dnl CF_HASHED_DB version: 7 updated: 2015/04/18 08:56:57
3696 dnl Look for an instance of the Berkeley hashed database.
3698 dnl $1 = optional parameter, to specify install-prefix for the database.
3699 AC_DEFUN([CF_HASHED_DB],
3706 if test -d "$1" ; then
3707 CF_ADD_INCDIR($1/include)
3708 CF_ADD_LIBDIR($1/lib)
3712 AC_MSG_WARN(no such directory $1)
3715 CF_FIND_SUB_INCDIR($1)
3716 CF_FIND_SUB_LIBDIR($1)
3722 AC_CHECK_HEADER(db.h,[
3723 CF_HASHED_DB_VERSION
3724 if test "$cf_cv_hashed_db_version" = unknown ; then
3725 AC_MSG_ERROR(Cannot determine version of db)
3728 if test "$cf_cv_hashed_db_libs" = unknown ; then
3729 AC_MSG_ERROR(Cannot determine library for db)
3730 elif test "$cf_cv_hashed_db_libs" != default ; then
3731 CF_ADD_LIB($cf_cv_hashed_db_libs)
3735 AC_MSG_ERROR(Cannot find db.h)
3738 dnl ---------------------------------------------------------------------------
3739 dnl CF_HASHED_DB_LIBS version: 10 updated: 2021/01/02 17:09:14
3740 dnl -----------------
3741 dnl Given that we have the header and version for hashed database, find the
3742 dnl library information.
3743 AC_DEFUN([CF_HASHED_DB_LIBS],
3745 AC_CACHE_CHECK(for db libraries, cf_cv_hashed_db_libs,[
3746 cf_cv_hashed_db_libs=unknown
3747 for cf_db_libs in "" db$cf_cv_hashed_db_version db-$cf_cv_hashed_db_version db ''
3749 cf_save_libs="$LIBS"
3750 if test -n "$cf_db_libs"; then
3751 CF_ADD_LIB($cf_db_libs)
3753 CF_MSG_LOG(checking for library $cf_db_libs)
3755 $ac_includes_default
3758 char *path = "/tmp/foo";
3759 #ifdef DB_VERSION_MAJOR
3760 #if DB_VERSION_MAJOR >= 4
3762 db_create(&result, NULL, 0);
3763 result->open(result,
3770 #elif DB_VERSION_MAJOR >= 3
3772 db_create(&result, NULL, 0);
3773 result->open(result,
3779 #elif DB_VERSION_MAJOR >= 2
3788 #endif /* DB_VERSION_MAJOR */
3790 DB *result = dbopen(path,
3796 ${cf_cv_main_return:-return}(result != 0)
3798 if test -n "$cf_db_libs" ; then
3799 cf_cv_hashed_db_libs=$cf_db_libs
3801 cf_cv_hashed_db_libs=default
3803 LIBS="$cf_save_libs"
3806 LIBS="$cf_save_libs"
3810 dnl ---------------------------------------------------------------------------
3811 dnl CF_HASHED_DB_VERSION version: 4 updated: 2014/04/12 16:47:01
3812 dnl --------------------
3813 dnl Given that we have the header file for hashed database, find the version
3815 AC_DEFUN([CF_HASHED_DB_VERSION],
3817 AC_CACHE_CHECK(for version of db, cf_cv_hashed_db_version,[
3818 cf_cv_hashed_db_version=unknown
3820 for cf_db_version in 1 2 3 4 5 6
3822 CF_MSG_LOG(checking for db version $cf_db_version)
3824 $ac_includes_default
3827 #ifdef DB_VERSION_MAJOR
3828 /* db2 (DB_VERSION_MAJOR=2) has also DB_VERSION_MINOR, tested with 7 */
3829 #if $cf_db_version == DB_VERSION_MAJOR
3835 #if $cf_db_version == 1
3836 /* ok: assuming this is DB 1.8.5 */
3842 cf_cv_hashed_db_version=$cf_db_version
3848 dnl ---------------------------------------------------------------------------
3849 dnl CF_HEADER_PATH version: 15 updated: 2021/01/01 13:31:04
3851 dnl Construct a search-list of directories for a nonstandard header-file
3854 dnl $1 = the variable to return as result
3855 dnl $2 = the package name
3856 AC_DEFUN([CF_HEADER_PATH],
3860 # collect the current set of include-directories from compiler flags
3861 cf_header_path_list=""
3862 if test -n "${CFLAGS}${CPPFLAGS}" ; then
3863 for cf_header_path in $CPPFLAGS $CFLAGS
3865 case "$cf_header_path" in
3867 cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'`
3868 CF_ADD_SUBDIR_PATH($1,$2,include,$cf_header_path,NONE)
3869 cf_header_path_list="$cf_header_path_list [$]$1"
3875 # add the variations for the package we are looking for
3876 CF_SUBDIR_PATH($1,$2,include)
3878 test "$includedir" != NONE && \
3879 test "$includedir" != "/usr/include" && \
3880 test -d "$includedir" && {
3881 test -d "$includedir" && $1="[$]$1 $includedir"
3882 test -d "$includedir/$2" && $1="[$]$1 $includedir/$2"
3885 test "$oldincludedir" != NONE && \
3886 test "$oldincludedir" != "/usr/include" && \
3887 test -d "$oldincludedir" && {
3888 test -d "$oldincludedir" && $1="[$]$1 $oldincludedir"
3889 test -d "$oldincludedir/$2" && $1="[$]$1 $oldincludedir/$2"
3892 $1="[$]$1 $cf_header_path_list"
3894 dnl ---------------------------------------------------------------------------
3895 dnl CF_HELP_MESSAGE version: 4 updated: 2019/12/31 08:53:54
3897 dnl Insert text into the help-message, for readability, from AC_ARG_WITH.
3898 AC_DEFUN([CF_HELP_MESSAGE],
3899 [CF_ACVERSION_CHECK(2.53,[],[
3900 AC_DIVERT_HELP($1)])dnl
3902 dnl ---------------------------------------------------------------------------
3903 dnl CF_INCLUDE_DIRS version: 10 updated: 2014/09/19 20:58:42
3905 dnl Construct the list of include-options according to whether we're building
3906 dnl in the source directory or using '--srcdir=DIR' option.
3907 AC_DEFUN([CF_INCLUDE_DIRS],
3909 if test "$srcdir" != "."; then
3910 CPPFLAGS="-I\${srcdir}/../include $CPPFLAGS"
3912 CPPFLAGS="-I../include $CPPFLAGS"
3913 if test "$srcdir" != "."; then
3914 CPPFLAGS="-I\${srcdir} $CPPFLAGS"
3916 CPPFLAGS="-I. $CPPFLAGS"
3919 dnl ---------------------------------------------------------------------------
3920 dnl CF_INSTALL_OPTS version: 2 updated: 2018/08/18 12:19:21
3922 dnl prompt for/fill-in useful install-program options
3923 AC_DEFUN([CF_INSTALL_OPTS],
3929 dnl ---------------------------------------------------------------------------
3930 dnl CF_INSTALL_OPT_O version: 3 updated: 2020/12/31 20:19:42
3931 dnl ----------------
3932 dnl Almost all "install" programs default to the current user's ownership.
3933 dnl Almost - MINIX is an exception.
3934 AC_DEFUN([CF_INSTALL_OPT_O],
3936 AC_MSG_CHECKING(if install needs to be told about ownership)
3937 case `$ac_config_guess` in
3946 AC_MSG_RESULT($with_install_o)
3947 if test "x$with_install_o" = xyes
3949 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'`"
3954 AC_SUBST(INSTALL_OPT_O)
3956 dnl ---------------------------------------------------------------------------
3957 dnl CF_INSTALL_OPT_P version: 3 updated: 2021/01/01 13:31:04
3958 dnl ----------------
3959 dnl Some install-programs accept a "-p" option to preserve file modification
3960 dnl timestamps. That can be useful as an install option, as well as a way to
3961 dnl avoid the need for ranlib after copying a static archive.
3962 AC_DEFUN([CF_INSTALL_OPT_P],
3964 : "${INSTALL:=install}"
3965 AC_CACHE_CHECK(if install accepts -p option, cf_cv_install_p,[
3970 if $INSTALL -p conftest.in conftest.out 2>/dev/null
3972 if test -f conftest.out/conftest.in
3974 test conftest.in -nt conftest.out/conftest.in 2>conftest.err && \
3975 test conftest.out/conftest.in -nt conftest.in 2>conftest.err
3976 if test -s conftest.err
3991 dnl ---------------------------------------------------------------------------
3992 dnl CF_INSTALL_OPT_S version: 3 updated: 2021/01/05 19:23:48
3993 dnl ----------------
3994 dnl By default, we should strip executables which are installed, but leave the
3995 dnl ability to suppress that for unit-testing.
3996 AC_DEFUN([CF_INSTALL_OPT_S],
3998 AC_MSG_CHECKING(if you want to install stripped executables)
3999 CF_ARG_DISABLE(stripping,
4000 [ --disable-stripping do not strip (debug info) installed executables],
4001 [enable_stripping=no],
4002 [enable_stripping=yes])
4003 AC_MSG_RESULT($enable_stripping)
4005 if test "$enable_stripping" = yes
4011 AC_SUBST(INSTALL_OPT_S)
4013 dnl ---------------------------------------------------------------------------
4014 dnl CF_INTEL_COMPILER version: 8 updated: 2021/01/01 16:53:59
4015 dnl -----------------
4016 dnl Check if the given compiler is really the Intel compiler for Linux. It
4017 dnl tries to imitate gcc, but does not return an error when it finds a mismatch
4018 dnl between prototypes, e.g., as exercised by CF_MISSING_CHECK.
4020 dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
4021 dnl ensure that it is not mistaken for gcc/g++. It is normally invoked from
4022 dnl the wrappers for gcc and g++ warnings.
4024 dnl $1 = GCC (default) or GXX
4025 dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS
4026 dnl $3 = CFLAGS (default) or CXXFLAGS
4027 AC_DEFUN([CF_INTEL_COMPILER],[
4028 AC_REQUIRE([AC_CANONICAL_HOST])
4029 ifelse([$2],,INTEL_COMPILER,[$2])=no
4031 if test "$ifelse([$1],,[$1],GCC)" = yes ; then
4034 AC_MSG_CHECKING(if this is really Intel ifelse([$1],GXX,C++,C) compiler)
4035 cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
4036 ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -no-gcc"
4038 #ifdef __INTEL_COMPILER
4042 ],[ifelse([$2],,INTEL_COMPILER,[$2])=yes
4043 cf_save_CFLAGS="$cf_save_CFLAGS -we147"
4045 ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
4046 AC_MSG_RESULT($ifelse([$2],,INTEL_COMPILER,[$2]))
4051 dnl ---------------------------------------------------------------------------
4052 dnl CF_ISASCII version: 4 updated: 2012/10/06 17:56:13
4054 dnl Check if we have either a function or macro for 'isascii()'.
4055 AC_DEFUN([CF_ISASCII],
4057 AC_MSG_CHECKING(for isascii)
4058 AC_CACHE_VAL(cf_cv_have_isascii,[
4059 AC_TRY_LINK([#include <ctype.h>],[int x = isascii(' ')],
4060 [cf_cv_have_isascii=yes],
4061 [cf_cv_have_isascii=no])
4063 AC_MSG_RESULT($cf_cv_have_isascii)
4064 test "$cf_cv_have_isascii" = yes && AC_DEFINE(HAVE_ISASCII,1,[Define to 1 if we have isascii()])
4066 dnl ---------------------------------------------------------------------------
4067 dnl CF_LARGEFILE version: 12 updated: 2020/03/19 20:23:48
4069 dnl Add checks for large file support.
4070 AC_DEFUN([CF_LARGEFILE],[
4071 ifdef([AC_FUNC_FSEEKO],[
4073 if test "$enable_largefile" != no ; then
4076 # Normally we would collect these definitions in the config.h,
4077 # but (like _XOPEN_SOURCE), some environments rely on having these
4078 # defined before any of the system headers are included. Another
4079 # case comes up with C++, e.g., on AIX the compiler compiles the
4080 # header files by themselves before looking at the body files it is
4081 # told to compile. For ncurses, those header files do not include
4083 if test "$ac_cv_sys_large_files" != no
4085 CF_APPEND_TEXT(CPPFLAGS,-D_LARGE_FILES)
4087 if test "$ac_cv_sys_largefile_source" != no
4089 CF_APPEND_TEXT(CPPFLAGS,-D_LARGEFILE_SOURCE)
4091 if test "$ac_cv_sys_file_offset_bits" != no
4093 CF_APPEND_TEXT(CPPFLAGS,-D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits)
4096 AC_CACHE_CHECK(whether to use struct dirent64, cf_cv_struct_dirent64,[
4098 #pragma GCC diagnostic error "-Wincompatible-pointer-types"
4099 #include <sys/types.h>
4102 /* if transitional largefile support is setup, this is true */
4103 extern struct dirent64 * readdir(DIR *);
4104 struct dirent64 *x = readdir((DIR *)0);
4105 struct dirent *y = readdir((DIR *)0);
4109 [cf_cv_struct_dirent64=yes],
4110 [cf_cv_struct_dirent64=no])
4112 test "$cf_cv_struct_dirent64" = yes && AC_DEFINE(HAVE_STRUCT_DIRENT64,1,[Define to 1 if we have struct dirent64])
4116 dnl ---------------------------------------------------------------------------
4117 dnl CF_LDFLAGS_STATIC version: 14 updated: 2021/01/02 17:09:14
4118 dnl -----------------
4119 dnl Check for compiler/linker flags used to temporarily force usage of static
4120 dnl libraries. This depends on the compiler and platform. Use this to help
4121 dnl ensure that the linker picks up a given library based on its position in
4122 dnl the list of linker options and libraries.
4123 AC_DEFUN([CF_LDFLAGS_STATIC],[
4125 if test "$GCC" = yes ; then
4126 case "$cf_cv_system_name" in
4127 (OS/2*|os2*|aix[[4]]*|solaris2.1[[0-9]]|darwin*)
4131 (*) # normally, except when broken
4132 LDFLAGS_STATIC=-static
4133 LDFLAGS_SHARED=-dynamic
4137 case "$cf_cv_system_name" in
4138 (aix[[4-7]]*) # from ld manpage
4139 LDFLAGS_STATIC=-bstatic
4140 LDFLAGS_SHARED=-bdynamic
4142 (hpux*) # from ld manpage for hpux10.20, hpux11.11
4143 # We could also use just "archive" and "shared".
4144 LDFLAGS_STATIC=-Wl,-a,archive_shared
4145 LDFLAGS_SHARED=-Wl,-a,shared_archive
4147 (irix*) # from ld manpage IRIX64
4148 LDFLAGS_STATIC=-Bstatic
4149 LDFLAGS_SHARED=-Bdynamic
4151 (osf[[45]]*) # from ld manpage osf4.0d, osf5.1
4152 # alternative "-oldstyle_liblookup" (not in cc manpage)
4153 LDFLAGS_STATIC=-noso
4154 LDFLAGS_SHARED=-so_archive
4157 LDFLAGS_STATIC=-Bstatic
4158 LDFLAGS_SHARED=-Bdynamic
4163 if test -n "$LDFLAGS_STATIC" && test -n "$LDFLAGS_SHARED"
4165 AC_MSG_CHECKING(if linker supports switching between static/dynamic)
4168 cat >conftest.$ac_ext <<EOF
4169 #line __oline__ "configure"
4171 int cf_ldflags_static(FILE *fp) { return fflush(fp); }
4173 if AC_TRY_EVAL(ac_compile) ; then
4174 ( $AR $ARFLAGS libconftest.a conftest.o ) 2>&AC_FD_CC 1>/dev/null
4175 ( eval $RANLIB libconftest.a ) 2>&AC_FD_CC >/dev/null
4179 cf_save_LIBS="$LIBS"
4181 LIBS="$LDFLAGS_STATIC -L`pwd` -lconftest $LDFLAGS_DYNAMIC $LIBS"
4183 #line __oline__ "configure"
4185 int cf_ldflags_static(FILE *fp);
4187 return cf_ldflags_static(stdin);
4189 # some linkers simply ignore the -dynamic
4190 case x`file "conftest$ac_exeext" 2>/dev/null` in
4192 cf_ldflags_static=no
4195 cf_ldflags_static=yes
4198 ],[cf_ldflags_static=no])
4201 LIBS="$cf_save_LIBS"
4203 AC_MSG_RESULT($cf_ldflags_static)
4205 if test "$cf_ldflags_static" != yes
4215 AC_SUBST(LDFLAGS_STATIC)
4216 AC_SUBST(LDFLAGS_SHARED)
4218 dnl ---------------------------------------------------------------------------
4219 dnl CF_LD_RPATH_OPT version: 9 updated: 2021/01/01 13:31:04
4221 dnl For the given system and compiler, find the compiler flags to pass to the
4222 dnl loader to use the "rpath" feature.
4223 AC_DEFUN([CF_LD_RPATH_OPT],
4225 AC_REQUIRE([CF_CHECK_CACHE])
4228 if test "x$cf_cv_enable_rpath" != xno
4230 AC_MSG_CHECKING(for an rpath option)
4231 case "$cf_cv_system_name" in
4233 if test "$GCC" = yes; then
4234 LD_RPATH_OPT="-Wl,-rpath,"
4236 LD_RPATH_OPT="-rpath "
4239 (linux*|gnu*|k*bsd*-gnu|freebsd*)
4240 LD_RPATH_OPT="-Wl,-rpath,"
4242 (openbsd[[2-9]].*|mirbsd*)
4243 LD_RPATH_OPT="-Wl,-rpath,"
4246 LD_RPATH_OPT="-rpath "
4249 LD_RPATH_OPT="-Wl,-rpath,"
4252 LD_RPATH_OPT="-rpath "
4260 AC_MSG_RESULT($LD_RPATH_OPT)
4262 case "x$LD_RPATH_OPT" in
4264 AC_MSG_CHECKING(if we need a space after rpath option)
4265 cf_save_LIBS="$LIBS"
4266 CF_ADD_LIBS(${LD_RPATH_OPT}$libdir)
4267 AC_TRY_LINK(, , cf_rpath_space=no, cf_rpath_space=yes)
4268 LIBS="$cf_save_LIBS"
4269 AC_MSG_RESULT($cf_rpath_space)
4270 test "$cf_rpath_space" = yes && LD_RPATH_OPT="$LD_RPATH_OPT "
4275 dnl ---------------------------------------------------------------------------
4276 dnl CF_LD_SEARCHPATH version: 3 updated: 2021/03/05 19:13:35
4277 dnl ----------------
4278 dnl Try to obtain the linker's search-path, for use in scripts.
4280 dnl Ignore LD_LIBRARY_PATH, etc.
4281 AC_DEFUN([CF_LD_SEARCHPATH],[
4282 AC_CACHE_CHECK(for linker search path,cf_cv_ld_searchpath,[
4284 if test "$cross_compiling" != yes ; then
4286 # GNU binutils' ld does not involve permissions which may stop ldconfig.
4287 cf_pathlist=`ld --verbose 2>/dev/null | grep SEARCH_DIR | sed -e 's,SEARCH_DIR[[("=]][[("=]]*,,g' -e 's/"[[)]];//gp' | sort -u`
4289 # The -NX options tell newer versions of Linux ldconfig to not attempt to
4290 # update the cache, which makes it run faster.
4291 test -z "$cf_pathlist" && \
4292 cf_pathlist=`(ldconfig -NX -v) 2>/dev/null | sed -e '/^[[ ]]/d' -e 's/:$//' | sort -u`
4294 test -z "$cf_pathlist" &&
4295 cf_pathlist=`(ldconfig -v) 2>/dev/null | sed -n -e '/^[[ ]]/d' -e 's/:$//p' | sort -u`
4297 # This works with OpenBSD 6.5, which lists only filenames
4298 test -z "$cf_pathlist" &&
4299 cf_pathlist=`(ldconfig -v) 2>/dev/null | sed -n -e 's,^Adding \(.*\)/.*[$],\1,p' | sort -u`
4301 if test -z "$cf_pathlist"
4303 # dyld default path with MacOS
4304 if test -f /usr/bin/otool && test "x`uname -s`" = xDarwin
4306 # do this to bypass check
4307 cf_cv_ld_searchpath='$HOME/lib'
4308 cf_pathlist="/usr/local/lib /lib /usr/lib"
4312 if test -z "$cf_pathlist"
4314 # Solaris is "SunOS"
4315 if test -f /usr/bin/isainfo && test "x`uname -s`" = xSunOS
4317 case x`(isainfo -b)` in
4319 cf_pathlist="$cf_pathlist /lib/64 /usr/lib/64"
4322 test -d /usr/ccs/lib && cf_pathlist="$cf_pathlist /usr/ccs/lib"
4323 cf_pathlist="$cf_pathlist /lib /usr/lib"
4326 AC_MSG_WARN(problem with Solaris architecture)
4332 if test -z "$cf_pathlist"
4335 if test x"`uname -s`" = xHP-UX
4337 case x`getconf LONG_BIT` in
4339 cf_pathlist="/usr/lib/hpux64"
4342 cf_pathlist="/usr/lib/hpux32"
4350 # If nothing else, assume it is conventional
4351 test -z "$cf_pathlist" && cf_pathlist="/usr/lib /lib"
4353 # Finally, check that this is only directories
4354 for cf_path in [$]0 $cf_pathlist
4356 if test -d "$cf_path"; then
4357 test -n "$cf_cv_ld_searchpath" && cf_cv_ld_searchpath="${cf_cv_ld_searchpath} "
4358 cf_cv_ld_searchpath="${cf_cv_ld_searchpath}${cf_path}"
4362 # Ensure that it is nonempty
4363 test -z "$cf_cv_ld_searchpath" && cf_cv_ld_searchpath=/usr/lib
4366 LD_SEARCHPATH=`echo "$cf_cv_ld_searchpath"|sed -e 's/ /|/g'`
4367 AC_SUBST(LD_SEARCHPATH)
4369 dnl ---------------------------------------------------------------------------
4370 dnl CF_LIBRARY_PATH version: 11 updated: 2021/01/01 13:31:04
4372 dnl Construct a search-list of directories for a nonstandard library-file
4375 dnl $1 = the variable to return as result
4376 dnl $2 = the package name
4377 AC_DEFUN([CF_LIBRARY_PATH],
4380 cf_library_path_list=""
4381 if test -n "${LDFLAGS}${LIBS}" ; then
4382 for cf_library_path in $LDFLAGS $LIBS
4384 case "$cf_library_path" in
4386 cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'`
4387 CF_ADD_SUBDIR_PATH($1,$2,lib,$cf_library_path,NONE)
4388 cf_library_path_list="$cf_library_path_list [$]$1"
4394 CF_SUBDIR_PATH($1,$2,lib)
4396 $1="$cf_library_path_list [$]$1"
4398 dnl ---------------------------------------------------------------------------
4399 dnl CF_LIBTOOL_VERSION version: 1 updated: 2013/04/06 18:03:09
4400 dnl ------------------
4401 AC_DEFUN([CF_LIBTOOL_VERSION],[
4402 if test -n "$LIBTOOL" && test "$LIBTOOL" != none
4404 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.]].*//'`
4406 cf_cv_libtool_version=
4408 test -z "$cf_cv_libtool_version" && unset cf_cv_libtool_version
4410 dnl ---------------------------------------------------------------------------
4411 dnl CF_LIB_PREFIX version: 14 updated: 2021/01/01 13:31:04
4413 dnl Compute the library-prefix for the given host system
4414 dnl $1 = variable to set
4415 define([CF_LIB_PREFIX],
4417 case "$cf_cv_system_name" in
4419 if test "$DFT_LWR_MODEL" = libtool; then
4428 (*) LIB_PREFIX='lib'
4431 ifelse($1,,,[$1=$LIB_PREFIX])
4432 AC_SUBST(LIB_PREFIX)
4434 dnl ---------------------------------------------------------------------------
4435 dnl CF_LIB_RULES version: 97 updated: 2021/07/17 13:10:54
4437 dnl Append definitions and rules for the given models to the subdirectory
4438 dnl Makefiles, and the recursion rule for the top-level Makefile. If the
4439 dnl subdirectory is a library-source directory, modify the Libs_To_Make list in
4440 dnl the corresponding makefile to list the models that we'll generate.
4442 dnl For shared libraries, make a list of symbolic links to construct when
4443 dnl generating each library. The convention used for Linux is the simplest
4446 dnl lib<name>.so.<major> ->
4447 dnl lib<name>.so.<maj>.<minor>
4449 dnl Note: Libs_To_Make is mixed case, since it is not a pure autoconf variable.
4450 AC_DEFUN([CF_LIB_RULES],
4451 [AC_REQUIRE([AC_PROG_FGREP])dnl
4452 AC_REQUIRE([CF_MAKE_PHONY])dnl
4454 cf_prefix=$LIB_PREFIX
4455 AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
4457 case "$cf_cv_shlib_version" in
4458 (cygdll|msysdll|mingw|msvcdll)
4459 TINFO_NAME=$TINFO_ARG_SUFFIX
4464 if test -n "$TINFO_SUFFIX" ; then
4465 case "$TINFO_SUFFIX" in
4467 TINFO_NAME="${TINFO_NAME}tw${EXTRA_SUFFIX}"
4468 TINFO_SUFFIX=`echo "$TINFO_SUFFIX" | sed 's/^tw'$EXTRA_SUFFIX'//'`
4471 TINFO_NAME="${TINFO_NAME}t${EXTRA_SUFFIX}"
4472 TINFO_SUFFIX=`echo "$TINFO_SUFFIX" | sed 's/^t'$EXTRA_SUFFIX'//'`
4475 TINFO_NAME="${TINFO_NAME}w${EXTRA_SUFFIX}"
4476 TINFO_SUFFIX=`echo "$TINFO_SUFFIX" | sed 's/^w'$EXTRA_SUFFIX'//'`
4481 for cf_dir in $SRC_SUBDIRS
4483 if test ! -d "$srcdir/$cf_dir" ; then
4485 elif test -f "$srcdir/$cf_dir/modules" ; then
4490 if test -n "${cf_cv_abi_version}" && test "x${cf_cv_abi_version}" != "x5"
4492 cf_awk_program="$cf_awk_program\
4493 /deprecated in ABI${cf_cv_abi_version}/ { next; }\
4494 { sub(\"NCURSES([[WT]]+)?\", \"&${cf_cv_abi_version}\"); }\
4498 if test "x$WILDCARD_SYMS" = xno
4500 cf_awk_program="$cf_awk_program\
4501 /[[ ]]_\\*;/ { skip=1; next; }\
4505 if test "x$cf_awk_program" != "x"
4507 cat >>$cf_dir/Makefile <<CF_EOF
4509 # Generated by CF_LIB_RULES
4510 resulting.map: $UNALTERED_SYMS
4511 $AWK 'BEGIN { skip = 1; last=""; } \
4513 { if ( last != "" && ( skip == 0 || \[$]\[$]0 !~ /}/ ) ) { print last; }\
4514 skip = 0; last = \[$]\[$]0; } \
4515 END { print last; }' < "$UNALTERED_SYMS" >\[$]@
4522 for cf_item in $cf_LIST_MODELS
4524 CF_LIB_SUFFIX($cf_item,cf_suffix,cf_depsuf)
4525 if test "$cf_dir" = "c++"
4527 CF_MAP_LIB_BASENAME(cf_libname,cxx)
4529 CF_MAP_LIB_BASENAME(cf_libname,$cf_dir)
4531 test -z "$cf_libname" && cf_libname="$cf_dir"
4532 if test "$cf_item" = shared ; then
4533 if test -n "${LIB_SUFFIX}"
4535 cf_shared_suffix=`echo "$cf_suffix" | sed 's/^'"${USE_LIB_SUFFIX}"'//'`
4537 cf_shared_suffix="$cf_suffix"
4539 if test "$cf_cv_do_symlinks" = yes ; then
4542 case "$cf_cv_shlib_version" in
4544 cf_version_name=REL_VERSION
4547 cf_version_name=ABI_VERSION
4551 if test -n "$cf_version_name"
4553 case "$cf_cv_system_name" in
4556 cf_suffix="${USE_LIB_SUFFIX}"'.${'$cf_version_name'}'"$cf_shared_suffix"
4559 cf_suffix="$cf_suffix"'.${'$cf_version_name'}'
4563 if test -n "${USE_LIB_SUFFIX}"
4565 cf_shared_suffix=`echo "$cf_suffix" | sed 's/^'"${USE_LIB_SUFFIX}"'//'`
4567 cf_shared_suffix="$cf_suffix"
4570 # cygwin needs import library, and has unique naming convention
4571 # use autodetected ${cf_prefix} for import lib and static lib, but
4572 # use 'cyg' prefix for shared lib.
4573 case "$cf_cv_shlib_version" in
4575 cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
4576 cf_add_lib="../lib/cyg${cf_libname}${cf_cygsuf}"
4579 cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
4580 cf_add_lib="../lib/msys-${cf_libname}${cf_cygsuf}"
4583 cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
4584 cf_add_lib="../lib/lib${cf_libname}${cf_cygsuf}"
4587 cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
4588 cf_add_lib="../lib/${cf_libname}${cf_cygsuf}"
4594 if test -n "$cf_add_lib"
4596 Libs_To_Make="$Libs_To_Make $cf_add_lib"
4600 cf_add_lib="../lib/${cf_prefix}${cf_libname}${cf_suffix}"
4601 Libs_To_Make="$Libs_To_Make $cf_add_lib"
4604 if test "$cf_dir" = ncurses ; then
4605 cf_subsets="$LIB_SUBSETS"
4606 cf_r_parts="$cf_subsets"
4607 cf_liblist="$Libs_To_Make"
4609 while test -n "$cf_r_parts"
4611 cf_l_parts=`echo "$cf_r_parts" |sed -e 's/ .*$//'`
4612 cf_r_parts=`echo "$cf_r_parts" |sed -e 's/^[[^ ]]* //'`
4613 if test "$cf_l_parts" != "$cf_r_parts" ; then
4615 case "$cf_l_parts" in
4617 cf_add_lib=`echo "$cf_liblist" |sed -e s%${LIB_NAME}${USE_LIB_SUFFIX}%${TINFO_LIB_SUFFIX}%g`
4620 cf_add_lib=`echo "$cf_liblist" |sed -e s%${LIB_NAME}${USE_LIB_SUFFIX}%${TICS_LIB_SUFFIX}%g`
4626 if test -n "$cf_add_lib"; then
4627 Libs_To_Make="$cf_add_lib $Libs_To_Make"
4634 cf_subsets=`echo "$LIB_SUBSETS" | sed -e 's/^termlib.* //'`
4637 if test "$cf_dir" = c++; then
4638 if test "x$with_shared_cxx" != xyes && test -n "$cf_shared_suffix"; then
4640 for cf_item in $Libs_To_Make
4646 cf_item=`echo "$cf_item" | sed -e "s,"$cf_shared_suffix",.a,"`
4649 for cf_test in $cf_list
4651 if test "$cf_test" = "$cf_item"
4653 cf_LIST_MODELS=`echo "$cf_LIST_MODELS" | sed -e 's/normal//'`
4658 test -n "$cf_item" && cf_list="$cf_list $cf_item"
4660 Libs_To_Make="$cf_list"
4664 sed -e "s%@Libs_To_Make@%$Libs_To_Make%" \
4665 -e "s%@SHARED_LIB@%$SHARED_LIB%" \
4666 "$cf_dir/Makefile" >$cf_dir/Makefile.out
4667 mv "$cf_dir/Makefile.out" "$cf_dir/Makefile"
4669 $AWK -f "$srcdir/mk-0th.awk" \
4670 libname="${cf_dir}${LIB_SUFFIX}" subsets="$LIB_SUBSETS" ticlib="$TICS_LIB_SUFFIX" termlib="$TINFO_LIB_SUFFIX" \
4671 "$srcdir/$cf_dir/modules" >>$cf_dir/Makefile
4673 for cf_subset in $cf_subsets
4676 for cf_item in $cf_LIST_MODELS
4679 echo "Appending rules for ${cf_item} model (${cf_dir}: ${cf_subset})"
4680 CF_UPPER(cf_ITEM,$cf_item)
4683 if test "$CXX_MODEL" = SHARED; then
4684 case "$cf_cv_shlib_version" in
4685 (cygdll|msysdll|mingw|msvcdll)
4686 test "x$with_shared_cxx" = xno && CF_VERBOSE(overriding CXX_MODEL to SHARED)
4690 test "x$with_shared_cxx" = xno && CXX_MODEL=NORMAL
4695 CF_LIB_SUFFIX($cf_item,cf_suffix,cf_depsuf)
4696 CF_OBJ_SUBDIR($cf_item,cf_subdir)
4698 # Test for case where we build libtinfo with a different name.
4700 if test "$cf_dir" = ncurses ; then
4701 case "$cf_subset" in
4703 cf_libname=${cf_libname}$USE_LIB_SUFFIX
4706 cf_libname=$TINFO_LIB_SUFFIX
4709 cf_libname=$TICS_LIB_SUFFIX
4712 elif test "$cf_dir" = c++ ; then
4713 CF_MAP_LIB_BASENAME(cf_libname,cxx)
4714 cf_libname=${cf_libname}$USE_LIB_SUFFIX
4716 CF_MAP_LIB_BASENAME(cf_libname,$cf_dir)
4717 cf_libname=${cf_libname}$USE_LIB_SUFFIX
4719 if test -n "${USE_ARG_SUFFIX}" ; then
4720 # undo $USE_LIB_SUFFIX add-on in CF_LIB_SUFFIX
4721 cf_suffix=`echo "$cf_suffix" |sed -e "s%^${USE_LIB_SUFFIX}%%"`
4724 # These dependencies really are for development, not
4725 # builds, but they are useful in porting, too.
4726 cf_depend="../include/ncurses_cfg.h"
4727 if test "$srcdir" = "."; then
4730 cf_reldir="\${srcdir}"
4733 if test -f "$srcdir/$cf_dir/$cf_dir.priv.h" ; then
4734 cf_depend="$cf_depend $cf_reldir/$cf_dir.priv.h"
4735 elif test -f "$srcdir/$cf_dir/curses.priv.h" ; then
4736 cf_depend="$cf_depend $cf_reldir/curses.priv.h"
4740 old_cf_suffix="$cf_suffix"
4741 if test "$cf_cv_shlib_version_infix" = yes ; then
4742 if test -n "$USE_LIB_SUFFIX" ; then
4743 case "$USE_LIB_SUFFIX" in
4745 cf_libname=`echo "$cf_libname" | sed 's/tw'$EXTRA_SUFFIX'$//'`
4746 cf_suffix=`echo "$cf_suffix" | sed 's/^tw'$EXTRA_SUFFIX'//'`
4747 cf_dir_suffix=tw$EXTRA_SUFFIX
4750 cf_libname=`echo "$cf_libname" | sed 's/t'$EXTRA_SUFFIX'$//'`
4751 cf_suffix=`echo "$cf_suffix" | sed 's/^t'$EXTRA_SUFFIX'//'`
4752 cf_dir_suffix=t$EXTRA_SUFFIX
4755 cf_libname=`echo "$cf_libname" | sed 's/w'$EXTRA_SUFFIX'$//'`
4756 cf_suffix=`echo "$cf_suffix" | sed 's/^w'$EXTRA_SUFFIX'//'`
4757 cf_dir_suffix=w$EXTRA_SUFFIX
4760 cf_libname=`echo "$cf_libname" | sed 's/'$EXTRA_SUFFIX'$//'`
4761 cf_suffix=`echo "$cf_suffix" | sed 's/^'$EXTRA_SUFFIX'//'`
4762 cf_dir_suffix=$EXTRA_SUFFIX
4768 $AWK -f "$srcdir/mk-1st.awk" \
4769 name=${cf_libname}${cf_dir_suffix} \
4770 traces=$LIB_TRACING \
4772 CXX_MODEL=$CXX_MODEL \
4773 LIB_SUFFIX=$LIB_SUFFIX \
4774 USE_LIB_SUFFIX=$USE_LIB_SUFFIX \
4775 make_phony="${cf_cv_make_PHONY:-no}" \
4780 driver=$cf_cv_term_driver \
4782 TermlibRoot=$TINFO_NAME \
4783 TermlibSuffix=$TINFO_SUFFIX \
4784 ShlibVer=$cf_cv_shlib_version \
4785 ShlibVerInfix=$cf_cv_shlib_version_infix \
4786 ReLink=${cf_cv_do_relink:-no} \
4787 ReRanlib=${cf_cv_do_reranlib:-yes} \
4788 DoLinks=$cf_cv_do_symlinks \
4789 rmSoLocs=$cf_cv_rm_so_locs \
4790 ldconfig="$LDCONFIG" \
4791 overwrite=$WITH_OVERWRITE \
4792 depend="$cf_depend" \
4794 libtool_version="$LIBTOOL_VERSION" \
4795 "$srcdir/$cf_dir/modules" >>$cf_dir/Makefile
4797 cf_suffix="$old_cf_suffix"
4799 for cf_subdir2 in $cf_subdirs lib
4801 test "$cf_subdir" = "$cf_subdir2" && break
4803 test "${cf_subset}.${cf_subdir2}" != "${cf_subset}.${cf_subdir}" && \
4804 $AWK -f "$srcdir/mk-2nd.awk" \
4806 traces=$LIB_TRACING \
4812 crenames=$cf_cv_prog_CC_c_o \
4813 cxxrenames=$cf_cv_prog_CXX_c_o \
4814 "$srcdir/$cf_dir/modules" >>$cf_dir/Makefile
4815 cf_subdirs="$cf_subdirs $cf_subdir"
4820 echo ' ( cd '$cf_dir' && ${MAKE} ${TOP_MFLAGS} [$]@ )' >>Makefile
4824 echo '# generated by CF_LIB_RULES' >> Makefile
4826 if test "x$cf_cv_make_PHONY" = xyes ; then
4827 cat >> Makefile <<-CF_EOF
4831 .PHONY : install.includes
4832 .PHONY : uninstall.includes
4833 .PHONY : install.libs
4834 .PHONY : uninstall.libs
4838 for cf_dir in $SRC_SUBDIRS
4840 if test ! -d "$srcdir/$cf_dir" ; then
4844 if test -f "$cf_dir/Makefile" ; then
4847 echo 'libs \' >> Makefile
4848 echo 'install.libs \' >> Makefile
4849 echo 'uninstall.libs ::' >> Makefile
4850 echo ' ( cd '$cf_dir' && ${MAKE} ${TOP_MFLAGS} [$]@ )' >> Makefile
4855 if test -f "$srcdir/$cf_dir/modules" ; then
4857 if test "x$cf_cv_make_PHONY" = xyes ; then
4858 cat >> Makefile <<-CF_EOF
4860 .PHONY : install.$cf_dir
4861 .PHONY : uninstall.$cf_dir
4866 if test -f "$srcdir/$cf_dir/headers" ; then
4867 cat >> Makefile <<CF_EOF
4869 uninstall.includes \\
4873 cat >> Makefile <<CF_EOF
4880 uninstall.$cf_dir ::
4881 ( cd "$cf_dir" && \${MAKE} \${TOP_MFLAGS} \[$]@ )
4883 elif test -f "$srcdir/$cf_dir/headers" ; then
4884 cat >> Makefile <<CF_EOF
4890 uninstall.includes ::
4891 ( cd "$cf_dir" && \${MAKE} \${TOP_MFLAGS} \[$]@ )
4896 if test "x$cf_cv_make_PHONY" = xyes ; then
4897 cat >> Makefile <<-CF_EOF
4899 .PHONY : install.data
4900 .PHONY : uninstall.data
4904 if test "x$cf_with_db_install" = xyes; then
4905 cat >> Makefile <<CF_EOF
4907 install.libs uninstall.libs \\
4908 install.data uninstall.data ::
4909 $MAKE_TERMINFO ( cd misc && \${MAKE} \${TOP_MFLAGS} \[$]@ )
4912 cat >> Makefile <<CF_EOF
4914 install.libs uninstall.libs ::
4915 ( cd misc && \${MAKE} \${TOP_MFLAGS} \[$]@ )
4919 if test "x$cf_with_manpages" = xyes; then
4921 if test "x$cf_cv_make_PHONY" = xyes ; then
4922 cat >> Makefile <<-CF_EOF
4924 .PHONY : install.man
4925 .PHONY : uninstall.man
4929 cat >> Makefile <<CF_EOF
4933 ( cd man && \${MAKE} \${TOP_MFLAGS} \[$]@ )
4937 cat >> Makefile <<CF_EOF
4940 rm -f config.cache config.log config.status Makefile include/ncurses_cfg.h
4941 rm -f headers.sh headers.sed mk_shared_lib.sh
4942 rm -f edit_man.* man_alias.*
4943 rm -rf \${DIRS_TO_MAKE}
4946 # Special case: tack's manpage lives in its own directory.
4947 if test "x$cf_with_manpages" = xyes; then
4948 if test "x$cf_with_tack" = "xyes"; then
4949 cat >> Makefile <<CF_EOF
4953 ( cd tack && \${MAKE} \${TOP_MFLAGS} \[$]@ )
4958 dnl If we're installing into a subdirectory of /usr/include, etc., we should
4959 dnl prepend the subdirectory's name to the "#include" paths. It won't hurt
4960 dnl anything, and will make it more standardized. It's awkward to decide this
4961 dnl at configuration because of quoting, so we'll simply make all headers
4962 dnl installed via a script that can do the right thing.
4964 rm -f headers.sed headers.sh
4966 dnl ( generating this script makes the makefiles a little tidier :-)
4967 echo creating headers.sh
4968 cat >headers.sh <<CF_EOF
4970 # This shell script is generated by the 'configure' script. It is invoked in a
4971 # subdirectory of the build tree. It generates a sed-script in the parent
4972 # directory that is used to adjust includes for header files that reside in a
4973 # subdirectory of /usr/include, etc.
4975 while test \[$]# != 3
4977 PRG="\$PRG \[$]1"; shift
4982 TMPSRC=\${TMPDIR:-/tmp}/\`basename \$SRC\`\$\$
4983 TMPSED=\${TMPDIR:-/tmp}/headers.sed\$\$
4984 echo installing \$SRC in \$DST
4987 if test "$WITH_CURSES_H" = yes; then
4988 cat >>headers.sh <<CF_EOF
4991 END=\`basename \$DST\`
4992 for i in \`cat \$REF/../*/headers |${FGREP-fgrep} -v "#"\`
4994 NAME=\`basename \$i\`
4995 echo "s/<\$NAME>/<\$END\/\$NAME>/" >> \$TMPSED
5005 cat >>headers.sh <<CF_EOF
5008 END=\`basename \$DST\`
5009 for i in \`cat \$REF/../*/headers |${FGREP-fgrep} -v "#"\`
5011 NAME=\`basename \$i\`
5012 if test "\$NAME" = "curses.h"
5014 echo "s/<curses.h>/<ncurses.h>/" >> \$TMPSED
5017 echo "s/<\$NAME>/<\$END\/\$NAME>/" >> \$TMPSED
5021 echo "s/<curses.h>/<ncurses.h>/" >> \$TMPSED
5026 cat >>headers.sh <<CF_EOF
5028 sed -f \$TMPSED \$SRC > \$TMPSRC
5029 NAME=\`basename \$SRC\`
5031 if test "$WITH_CURSES_H" != yes; then
5032 cat >>headers.sh <<CF_EOF
5033 test "\$NAME" = "curses.h" && NAME=ncurses.h
5036 cat >>headers.sh <<CF_EOF
5037 # Just in case someone gzip'd manpages, remove the conflicting copy.
5038 test -f \$DST/\$NAME.gz && rm -f \$DST/\$NAME.gz
5040 eval \$PRG \$TMPSRC \$DST/\$NAME
5041 rm -f \$TMPSRC \$TMPSED
5044 chmod 0755 headers.sh
5046 for cf_dir in $SRC_SUBDIRS
5048 if test ! -d "$srcdir/$cf_dir" ; then
5052 if test -f "$srcdir/$cf_dir/headers" ; then
5053 $AWK -f "$srcdir/mk-hdr.awk" \
5054 subset="$LIB_SUBSETS" \
5055 compat="$WITH_CURSES_H" \
5056 "$srcdir/$cf_dir/headers" >>$cf_dir/Makefile
5059 if test -f "$srcdir/$cf_dir/modules" ; then
5060 if test "$cf_dir" != "c++" ; then
5061 if test "x$cf_cv_make_PHONY" = xyes ; then
5062 cat >> $cf_dir/Makefile <<-CF_EOF
5068 cat >>$cf_dir/Makefile <<"CF_EOF"
5069 depend : ${AUTO_SRC}
5070 makedepend -- ${CPPFLAGS} -- ${C_SRC}
5072 # DO NOT DELETE THIS LINE -- make depend depends on it.
5077 AC_SUBST(Libs_To_Make)
5079 dnl ---------------------------------------------------------------------------
5080 dnl CF_LIB_SONAME version: 9 updated: 2021/01/04 18:48:01
5082 dnl Find the and soname for the given shared library. Set the cache variable
5083 dnl cf_cv_$3_soname to this, unless it is not found. Then set the cache
5084 dnl variable to "unknown".
5088 dnl $3 = library name
5089 AC_DEFUN([CF_LIB_SONAME],
5090 [AC_REQUIRE([AC_PROG_FGREP])dnl
5092 AC_CACHE_CHECK(for soname of $3 library,cf_cv_$3_soname,[
5094 cf_cv_$3_soname=unknown
5095 if test "$cross_compiling" != yes ; then
5096 cat >conftest.$ac_ext <<CF_EOF
5101 ${cf_cv_main_return:-return}(0);
5104 cf_save_LIBS="$LIBS"
5106 if AC_TRY_EVAL(ac_compile) ; then
5107 if AC_TRY_EVAL(ac_link) ; then
5108 cf_cv_$3_soname="`ldd \"conftest$ac_exeext\" 2>/dev/null | sed -e 's,^.*/,,' -e 's, .*$,,' | ${FGREP-fgrep} lib$3.`"
5109 test -z "$cf_cv_$3_soname" && cf_cv_$3_soname=unknown
5113 LIBS="$cf_save_LIBS"
5117 dnl ---------------------------------------------------------------------------
5118 dnl CF_LIB_SUFFIX version: 28 updated: 2021/01/01 16:53:59
5120 dnl Compute the library file-suffix from the given model name
5122 dnl $2 = variable to set (the nominal library suffix)
5123 dnl $3 = dependency variable to set (actual filename)
5124 dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
5125 AC_DEFUN([CF_LIB_SUFFIX],
5133 case "$cf_cv_system_name" in
5144 case "$cf_cv_system_name" in
5155 case "$cf_cv_system_name" in
5164 (cygwin*|msys*|mingw*)
5202 if test -n "${LIB_SUFFIX}${EXTRA_SUFFIX}"
5204 $2="${LIB_SUFFIX}${EXTRA_SUFFIX}[$]{$2}"
5205 $3="${LIB_SUFFIX}${EXTRA_SUFFIX}[$]{$3}"
5208 dnl ---------------------------------------------------------------------------
5209 dnl CF_LIB_TYPE version: 5 updated: 2015/04/17 21:13:04
5211 dnl Compute the string to append to -library from the given model name
5213 dnl $2 = variable to set
5214 dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
5215 AC_DEFUN([CF_LIB_TYPE],
5221 (profile) $2='_p' ;;
5224 test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
5226 dnl ---------------------------------------------------------------------------
5227 dnl CF_LINK_DATAONLY version: 13 updated: 2020/02/08 15:59:30
5228 dnl ----------------
5229 dnl Some systems have a non-ANSI linker that doesn't pull in modules that have
5230 dnl only data (i.e., no functions), for example NeXT. On those systems we'll
5231 dnl have to provide wrappers for global tables to ensure they're linked
5233 AC_DEFUN([CF_LINK_DATAONLY],
5235 AC_MSG_CHECKING([if data-only library module links])
5236 AC_CACHE_VAL(cf_cv_link_dataonly,[
5238 cat >conftest.$ac_ext <<EOF
5239 #line __oline__ "configure"
5240 int testdata[[3]] = { 123, 456, 789 };
5242 if AC_TRY_EVAL(ac_compile) ; then
5243 mv conftest.o data.o && \
5244 ( $AR $ARFLAGS conftest.a data.o ) 2>&AC_FD_CC 1>/dev/null
5246 rm -f conftest.$ac_ext data.o
5247 cat >conftest.$ac_ext <<EOF
5248 #line __oline__ "configure"
5252 ${cf_cv_main_return:-return}(1); /* I'm told this linker is broken */
5254 extern int testdata[[3]];
5255 return testdata[[0]] == 123
5256 && testdata[[1]] == 456
5257 && testdata[[2]] == 789;
5261 if AC_TRY_EVAL(ac_compile); then
5262 mv conftest.o func.o && \
5263 ( $AR $ARFLAGS conftest.a func.o ) 2>&AC_FD_CC 1>/dev/null
5265 rm -f conftest.$ac_ext func.o
5266 ( eval $RANLIB conftest.a ) 2>&AC_FD_CC >/dev/null
5268 LIBS="conftest.a $LIBS"
5272 extern int testfunc();
5273 ${cf_cv_main_return:-return} (!testfunc());
5276 [cf_cv_link_dataonly=yes],
5277 [cf_cv_link_dataonly=no],
5278 [cf_cv_link_dataonly=unknown])
5281 AC_MSG_RESULT($cf_cv_link_dataonly)
5283 if test "$cf_cv_link_dataonly" = no ; then
5284 AC_DEFINE(BROKEN_LINKER,1,[if data-only library module does not link])
5287 AC_SUBST(BROKEN_LINKER)
5290 dnl ---------------------------------------------------------------------------
5291 dnl CF_LINK_FUNCS version: 11 updated: 2021/04/18 14:08:47
5293 dnl Most Unix systems have both link and symlink, a few don't have symlink.
5294 dnl A few non-Unix systems implement symlink, but not link.
5295 dnl A few non-systems implement neither (or have nonfunctional versions).
5297 dnl This allows for a 2-second difference in modification times to allow for
5298 dnl some marginal NFS implementations.
5299 AC_DEFUN([CF_LINK_FUNCS],
5308 if test "$cross_compiling" = yes ; then
5313 AC_CACHE_CHECK(if link/symlink functions work,cf_cv_link_funcs,[
5315 for cf_func in link symlink ; do
5318 #include <sys/types.h>
5319 #include <sys/stat.h>
5320 #ifdef HAVE_UNISTD_H
5326 char *src = "conftest.tmp";
5327 char *dst = "conftest.chk";
5328 struct stat src_sb, dst_sb;
5329 FILE *fp = fopen(src, "w");
5330 if (fp == 0) { fail = 3; } else {
5331 fclose(fp); stat(src, &src_sb);
5332 if ($cf_func(src, dst) < 0) {
5334 } else if (stat(dst, &dst_sb) < 0) {
5337 long diff = (dst_sb.st_mtime - src_sb.st_mtime);
5338 if (diff < 0) diff = -diff;
5339 if (diff > 2) fail = 3;
5343 unlink(dst); unlink(src);
5345 remove(dst); remove(src);
5347 ${cf_cv_main_return:-return} (fail);
5350 cf_cv_link_funcs="$cf_cv_link_funcs $cf_func"
5351 eval 'ac_cv_func_'$cf_func'=yes'],[
5352 eval 'ac_cv_func_'$cf_func'=no'],[
5353 eval 'ac_cv_func_'$cf_func'=error'])
5355 test -z "$cf_cv_link_funcs" && cf_cv_link_funcs=no
5357 test "$ac_cv_func_link" = yes && AC_DEFINE(HAVE_LINK,1,[Define to 1 if we have link() function])
5358 test "$ac_cv_func_symlink" = yes && AC_DEFINE(HAVE_SYMLINK,1,[Define to 1 if we have symlink() function])
5361 dnl ---------------------------------------------------------------------------
5362 dnl CF_MAKEFLAGS version: 21 updated: 2021/09/04 06:47:34
5364 dnl Some 'make' programs support ${MAKEFLAGS}, some ${MFLAGS}, to pass 'make'
5365 dnl options to lower-levels. It is very useful for "make -n" -- if we have it.
5366 dnl (GNU 'make' does both, something POSIX 'make', which happens to make the
5367 dnl ${MAKEFLAGS} variable incompatible because it adds the assignments :-)
5368 AC_DEFUN([CF_MAKEFLAGS],
5369 [AC_REQUIRE([AC_PROG_FGREP])dnl
5371 AC_CACHE_CHECK(for makeflags variable, cf_cv_makeflags,[
5373 for cf_option in '-${MAKEFLAGS}' '${MFLAGS}'
5375 cat >cf_makeflags.tmp <<CF_EOF
5378 @ echo '.$cf_option'
5380 cf_result=`${MAKE:-make} -k -f cf_makeflags.tmp 2>/dev/null | ${FGREP-fgrep} -v "ing directory" | sed -e 's,[[ ]]*$,,'`
5381 case "$cf_result" in
5383 cf_result="`${MAKE:-make} -k -f cf_makeflags.tmp CC=cc 2>/dev/null`"
5384 case "$cf_result" in
5385 (.*CC=*) cf_cv_makeflags=
5387 (*) cf_cv_makeflags=$cf_option
5395 CF_MSG_LOG(given option \"$cf_option\", no match \"$cf_result\")
5399 rm -f cf_makeflags.tmp
5402 AC_SUBST(cf_cv_makeflags)
5404 dnl ---------------------------------------------------------------------------
5405 dnl CF_MAKE_PHONY version: 3 updated: 2021/01/08 16:08:21
5407 dnl Check if the make-program handles a ".PHONY" target, e.g,. a target which
5408 dnl acts as a placeholder.
5410 dnl The ".PHONY" feature was proposed in 2011 here
5411 dnl https://www.austingroupbugs.net/view.php?id=523
5412 dnl and is scheduled for release in P1003.1 Issue 8 (late 2022).
5414 dnl This is not supported by SVr4 make (or SunOS 4, 4.3SD, etc), but works with
5415 dnl a few others (i.e., GNU make and the non-POSIX "BSD" make):
5417 dnl + This is a GNU make feature (since April 1988, but in turn from binutils,
5418 dnl date unspecified).
5420 dnl + It was adopted in NetBSD make in June 1995.
5422 dnl + The other BSD make programs are derived from the NetBSD make (and for
5423 dnl that reason are not actually different "implementations").
5425 dnl + Some features of NetBSD make were actually adapted from pmake, which
5426 dnl began as a modified GNU make starting in 1993.
5428 dnl + Version 3.8 of the dmake program in January 1992 also implemented this
5429 dnl GNU make extension, but is less well known than the BSD make.
5430 AC_DEFUN([CF_MAKE_PHONY],[
5431 AC_CACHE_CHECK(for \".PHONY\" make-support, cf_cv_make_PHONY,[
5434 mkdir conftest || exit 1
5436 cat >makefile <<'CF_EOF'
5440 @echo "** making [$]@ [$](DATA)"
5442 @echo "** making [$]@ [$](DATA)"
5444 @echo "** making [$]@ [$](DATA)"
5445 echo [$](DATA) > [$]@
5447 @echo "** making [$]@ [$](DATA)"
5448 echo [$](DATA) > [$]@
5450 for cf_data in 1 2 3
5452 ${MAKE:-make} always DATA=$cf_data
5453 ${MAKE:-make} once DATA=$cf_data
5454 ${MAKE:-make} -t always once
5455 if test -f always ; then
5456 echo "no (case 1)" > ../conftest.tmp
5457 elif test ! -f always.out ; then
5458 echo "no (case 2)" > ../conftest.tmp
5459 elif test ! -f once.out ; then
5460 echo "no (case 3)" > ../conftest.tmp
5461 elif ! cmp -s always.out once.out ; then
5462 echo "no (case 4)" > ../conftest.tmp
5463 diff always.out once.out
5465 cf_check="`cat always.out`"
5466 if test "x$cf_check" != "x$cf_data" ; then
5467 echo "no (case 5)" > ../conftest.tmp
5469 echo yes > ../conftest.tmp
5477 cf_cv_make_PHONY="`cat conftest.tmp`"
5482 test "x$cf_cv_make_PHONY" = xyes && MAKE_PHONY=
5483 test "x$cf_cv_make_PHONY" != xyes && MAKE_NO_PHONY=
5484 AC_SUBST(MAKE_NO_PHONY)
5485 AC_SUBST(MAKE_PHONY)
5487 dnl ---------------------------------------------------------------------------
5488 dnl CF_MAKE_TAGS version: 6 updated: 2010/10/23 15:52:32
5490 dnl Generate tags/TAGS targets for makefiles. Do not generate TAGS if we have
5491 dnl a monocase filesystem.
5492 AC_DEFUN([CF_MAKE_TAGS],[
5493 AC_REQUIRE([CF_MIXEDCASE_FILENAMES])
5495 AC_CHECK_PROGS(CTAGS, exctags ctags)
5496 AC_CHECK_PROGS(ETAGS, exetags etags)
5498 AC_CHECK_PROG(MAKE_LOWER_TAGS, ${CTAGS:-ctags}, yes, no)
5500 if test "$cf_cv_mixedcase" = yes ; then
5501 AC_CHECK_PROG(MAKE_UPPER_TAGS, ${ETAGS:-etags}, yes, no)
5506 if test "$MAKE_UPPER_TAGS" = yes ; then
5512 if test "$MAKE_LOWER_TAGS" = yes ; then
5521 AC_SUBST(MAKE_UPPER_TAGS)
5522 AC_SUBST(MAKE_LOWER_TAGS)
5524 dnl ---------------------------------------------------------------------------
5525 dnl CF_MANPAGE_FORMAT version: 15 updated: 2021/09/04 06:35:04
5526 dnl -----------------
5527 dnl Option to allow user to override automatic configuration of manpage format.
5528 dnl There are several special cases:
5530 dnl gzip - man checks for, can display gzip'd files
5531 dnl compress - man checks for, can display compressed files
5532 dnl BSDI - files in the cat-directories are suffixed ".0"
5533 dnl formatted - installer should format (put files in cat-directory)
5534 dnl catonly - installer should only format, e.g., for a turnkey system.
5536 dnl There are other configurations which this macro does not test, e.g., HPUX's
5537 dnl compressed manpages (but uncompressed manpages are fine, and HPUX's naming
5538 dnl convention would not match our use).
5539 AC_DEFUN([CF_MANPAGE_FORMAT],
5541 AC_REQUIRE([CF_PATHSEP])
5542 AC_MSG_CHECKING(format of man-pages)
5544 AC_ARG_WITH(manpage-format,
5545 [ --with-manpage-format specify manpage-format: gzip/compress/BSDI/normal and
5546 optionally formatted/catonly, e.g., gzip,formatted],
5547 [MANPAGE_FORMAT=$withval],
5548 [MANPAGE_FORMAT=unknown])
5550 test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=unknown
5551 MANPAGE_FORMAT=`echo "$MANPAGE_FORMAT" | sed -e 's/,/ /g'`
5555 case "$MANPAGE_FORMAT" in
5557 if test -z "$MANPATH" ; then
5558 MANPATH="/usr/man:/usr/share/man"
5561 # look for the 'date' man-page (it is most likely to be installed!)
5567 IFS="${IFS:- }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
5568 for cf_dir in $MANPATH; do
5569 test -z "$cf_dir" && cf_dir=/usr/man
5570 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
5572 cf_test=`echo "$cf_name" | sed -e 's/*//'`
5573 if test "x$cf_test" = "x$cf_name" ; then
5576 (*.gz) MANPAGE_FORMAT="$MANPAGE_FORMAT gzip";;
5577 (*.Z) MANPAGE_FORMAT="$MANPAGE_FORMAT compress";;
5578 (*.0) MANPAGE_FORMAT="$MANPAGE_FORMAT BSDI";;
5579 (*) MANPAGE_FORMAT="$MANPAGE_FORMAT normal";;
5593 # if we found a match in either man* or cat*, stop looking
5594 if test -n "$MANPAGE_FORMAT" ; then
5596 test "$cf_preform" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT formatted"
5597 test "$cf_catonly" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT catonly"
5603 test "$cf_found" = yes && break
5606 # only check the first directory in $MANPATH where we find manpages
5607 if test -n "$MANPAGE_FORMAT" ; then
5611 # if we did not find the example, just assume it is normal
5612 test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=normal
5616 for cf_option in $MANPAGE_FORMAT; do
5617 case "$cf_option" in
5618 (gzip|compress|BSDI|normal|formatted|catonly)
5621 cf_unknown="$cf_unknown $cf_option"
5628 AC_MSG_RESULT($MANPAGE_FORMAT)
5629 if test -n "$cf_unknown" ; then
5630 AC_MSG_WARN(Unexpected manpage-format $cf_unknown)
5633 dnl ---------------------------------------------------------------------------
5634 dnl CF_MANPAGE_RENAMES version: 12 updated: 2021/01/01 16:53:59
5635 dnl ------------------
5636 dnl The Debian people have their own naming convention for manpages. This
5637 dnl option lets us override the name of the file containing renaming, or
5638 dnl disable it altogether.
5639 AC_DEFUN([CF_MANPAGE_RENAMES],
5641 AC_MSG_CHECKING(for manpage renaming)
5643 AC_ARG_WITH(manpage-renames,
5644 [ --with-manpage-renames specify manpage-renaming],
5645 [MANPAGE_RENAMES=$withval],
5646 [MANPAGE_RENAMES=yes])
5648 case ".$MANPAGE_RENAMES" in
5652 # Debian 'man' program?
5653 if test -f /etc/debian_version ; then
5654 MANPAGE_RENAMES=`cd "$srcdir" && pwd`/man/man_db.renames
5661 if test "$MANPAGE_RENAMES" != no ; then
5662 if test -f "$srcdir/man/$MANPAGE_RENAMES" ; then
5663 MANPAGE_RENAMES=`cd "$srcdir/man" && pwd`/$MANPAGE_RENAMES
5664 elif test ! -f "$MANPAGE_RENAMES" ; then
5665 AC_MSG_ERROR(not a filename: $MANPAGE_RENAMES)
5668 test ! -d man && mkdir man
5670 # Construct a sed-script to perform renaming within man-pages
5671 if test -n "$MANPAGE_RENAMES" ; then
5672 test ! -d man && mkdir man
5673 $SHELL "$srcdir/man/make_sed.sh" "$MANPAGE_RENAMES" >./edit_man.sed
5677 AC_MSG_RESULT($MANPAGE_RENAMES)
5678 AC_SUBST(MANPAGE_RENAMES)
5680 dnl ---------------------------------------------------------------------------
5681 dnl CF_MANPAGE_SYMLINKS version: 6 updated: 2015/04/17 21:13:04
5682 dnl -------------------
5683 dnl Some people expect each tool to make all aliases for manpages in the
5684 dnl man-directory. This accommodates the older, less-capable implementations
5685 dnl of 'man', and is optional.
5686 AC_DEFUN([CF_MANPAGE_SYMLINKS],
5688 AC_MSG_CHECKING(if manpage aliases will be installed)
5690 AC_ARG_WITH(manpage-aliases,
5691 [ --with-manpage-aliases specify manpage-aliases using .so],
5692 [MANPAGE_ALIASES=$withval],
5693 [MANPAGE_ALIASES=yes])
5695 AC_MSG_RESULT($MANPAGE_ALIASES)
5707 if test "$MANPAGE_ALIASES" = yes ; then
5708 AC_MSG_CHECKING(if manpage symlinks should be used)
5710 AC_ARG_WITH(manpage-symlinks,
5711 [ --with-manpage-symlinks specify manpage-aliases using symlinks],
5712 [MANPAGE_SYMLINKS=$withval],
5713 [MANPAGE_SYMLINKS=$cf_use_symlinks])
5715 if test "$$cf_use_symlinks" = no; then
5716 if test "$MANPAGE_SYMLINKS" = yes ; then
5717 AC_MSG_WARN(cannot make symlinks, will use .so files)
5722 AC_MSG_RESULT($MANPAGE_SYMLINKS)
5726 dnl ---------------------------------------------------------------------------
5727 dnl CF_MANPAGE_TBL version: 3 updated: 2002/01/19 22:51:32
5729 dnl This option causes manpages to be run through tbl(1) to generate tables
5731 AC_DEFUN([CF_MANPAGE_TBL],
5733 AC_MSG_CHECKING(for manpage tbl)
5735 AC_ARG_WITH(manpage-tbl,
5736 [ --with-manpage-tbl specify manpage processing with tbl],
5737 [MANPAGE_TBL=$withval],
5740 AC_MSG_RESULT($MANPAGE_TBL)
5742 dnl ---------------------------------------------------------------------------
5743 dnl CF_MAN_PAGES version: 52 updated: 2022/02/05 12:31:08
5745 dnl Try to determine if the man-pages on the system are compressed, and if
5746 dnl so, what format is used. Use this information to construct a script that
5747 dnl will install man-pages.
5748 AC_DEFUN([CF_MAN_PAGES],
5750 CF_HELP_MESSAGE(Options to Specify How Manpages are Installed:)
5756 if test "$prefix" = "NONE" ; then
5757 cf_prefix="$ac_default_prefix"
5762 case "$MANPAGE_FORMAT" in
5777 test ! -d man && mkdir man
5781 case "$MANPAGE_FORMAT" in
5784 cf_compress=compress
5792 cf_edit_man=./edit_man.sh
5793 cf_man_alias=`pwd`/man_alias.sed
5795 cat >$cf_edit_man <<CF_EOF
5797 # this script is generated by the configure-script CF_MAN_PAGES macro.
5800 datarootdir="$datarootdir"
5803 NCURSES_MAJOR="$NCURSES_MAJOR"
5804 NCURSES_MINOR="$NCURSES_MINOR"
5805 NCURSES_PATCH="$NCURSES_PATCH"
5807 NCURSES_OSPEED="$NCURSES_OSPEED"
5808 TERMINFO="$TERMINFO"
5811 INSTALL_DATA="$INSTALL_DATA"
5813 transform="$program_transform_name"
5815 TMP=\${TMPDIR:=/tmp}/man\$\$
5816 trap "rm -f \$TMP; exit 1" 1 2 3 15
5817 trap "rm -f \$TMP" 0
5829 top_srcdir=\[$]srcdir/..
5832 if test "\$form" = normal ; then
5833 if test "$cf_format" = yes ; then
5834 if test "$cf_inboth" = no ; then
5835 $SHELL "\[$]0" format "\$verb" "\$mandir" "\$srcdir" "\[$]@"
5839 cf_subdir=\$mandir/man
5840 cf_tables=$MANPAGE_TBL
5842 cf_subdir=\$mandir/cat
5846 # process the list of source-files
5847 for i in "\[$]@" ; do
5851 section=\`expr "\$i" : '.*\\.\\([[0-9]]\\)[[xm]]*'\`;
5852 if test "\$verb" = installing ; then
5853 if test ! -d "\$cf_subdir\${section}" ; then
5854 mkdir -p "\$cf_subdir\$section"
5858 # replace variables in man page
5859 if test ! -f "$cf_man_alias" ; then
5860 cat >>$cf_man_alias <<-CF_EOF2
5861 s,@DATADIR@,\$datadir,g
5862 s,@TERMINFO@,\${TERMINFO:="no default value"},g
5863 s,@TERMINFO_DIRS@,\${TERMINFO_DIRS:="no default value"},g
5864 s,@NCURSES_MAJOR@,\${NCURSES_MAJOR:="no default value"},g
5865 s,@NCURSES_MINOR@,\${NCURSES_MINOR:="no default value"},g
5866 s,@NCURSES_PATCH@,\${NCURSES_PATCH:="no default value"},g
5867 s,@NCURSES_OSPEED@,\${NCURSES_OSPEED:="no default value"},g
5872 cf_NAME=`echo "$cf_name" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
5873 cf_name=`echo "$cf_name" | sed "$program_transform_name"`
5874 cat >>$cf_edit_man <<-CF_EOF
5875 s,@$cf_NAME@,$cf_name,g
5879 cat >>$cf_edit_man <<CF_EOF
5881 echo "...made $cf_man_alias"
5885 cf_source=\`basename "\$i"\`
5887 test ! -f "\$inalias" && inalias="\$srcdir/\$inalias"
5888 if test ! -f "\$inalias" ; then
5889 echo ".. skipped \$cf_source"
5894 if test "$MANPAGE_ALIASES" != no ; then
5895 cat >>$cf_edit_man <<CF_EOF
5897 test "$with_curses_h" = yes && nCurses=ncurses.3x
5898 aliases=\`sed -f "\$top_srcdir/man/manlinks.sed" "\$inalias" |sed -f "$cf_man_alias" | sort -u; test "\$inalias" = "\$nCurses" && echo curses\`
5902 if test "$MANPAGE_RENAMES" = no ; then
5903 cat >>$cf_edit_man <<CF_EOF
5904 # perform program transformations for section 1 man pages
5905 if test \$section = 1 ; then
5906 cf_target=\$cf_subdir\${section}/\`echo \$cf_source|sed "\${transform}"\`
5908 cf_target=\$cf_subdir\${section}/\$cf_source
5912 cat >>$cf_edit_man <<CF_EOF
5913 cf_target=\`grep "^\$cf_source" $MANPAGE_RENAMES | $AWK '{print \[$]2}'\`
5914 if test -z "\$cf_target" ; then
5915 echo "? missing rename for \$cf_source"
5916 cf_target="\$cf_source"
5918 cf_target="\$cf_subdir\${section}/\${cf_target}"
5923 cat >>$cf_edit_man <<CF_EOF
5924 sed -f "$cf_man_alias" \\
5927 if test -f "$MANPAGE_RENAMES" ; then
5928 cat >>$cf_edit_man <<CF_EOF
5929 < "\$i" | sed -f `pwd`/edit_man.sed >\$TMP
5932 cat >>$cf_edit_man <<CF_EOF
5937 cat >>$cf_edit_man <<CF_EOF
5938 if test \$cf_tables = yes ; then
5939 tbl \$TMP >\$TMP.out
5944 if test "$with_overwrite" != yes ; then
5945 cat >>$cf_edit_man <<CF_EOF
5946 sed -e "/\\#[ ]*include/s,<curses.h,<ncurses$LIB_SUFFIX/curses.h," < \$TMP >\$TMP.out
5951 if test "$with_curses_h" != yes ; then
5952 cat >>$cf_edit_man <<CF_EOF
5953 sed -e "/\\#[ ]*include/s,curses.h,ncurses.h," < \$TMP >\$TMP.out
5958 cat >>$cf_edit_man <<CF_EOF
5959 if test "\$form" = format ; then
5960 nroff -man \$TMP >\$TMP.out
5965 if test -n "$cf_compress" ; then
5966 cat >>$cf_edit_man <<CF_EOF
5967 if test "\$verb" = installing ; then
5968 if ( "$cf_compress" -f \$TMP )
5970 mv \$TMP.$cf_so_strip \$TMP
5973 cf_target="\$cf_target.$cf_so_strip"
5977 case "$MANPAGE_FORMAT" in
5979 cat >>$cf_edit_man <<CF_EOF
5980 if test "\$form" = format ; then
5981 # BSDI installs only .0 suffixes in the cat directories
5982 cf_target="\`echo \$cf_target|sed -e 's/\\.[[1-9]]\\+[[a-z]]*/.0/'\`"
5988 cat >>$cf_edit_man <<CF_EOF
5989 suffix=\`basename "\$cf_target" | sed -e 's%^[[^.]]*%%'\`
5990 if test "\$verb" = installing ; then
5991 echo "\$verb \$cf_target"
5992 \$INSTALL_DATA \$TMP "\$cf_target"
5993 test -d "\$cf_subdir\${section}" &&
5994 test -n "\$aliases" && (
5995 cd "\$cf_subdir\${section}" && (
5996 cf_source=\`echo "\$cf_target" |sed -e 's%^.*/\\([[^/]][[^/]]*/[[^/]][[^/]]*$\\)%\\1%'\`
5997 test -n "$cf_so_strip" && cf_source=\`echo "\$cf_source" |sed -e 's%\\.$cf_so_strip\$%%'\`
5998 cf_target=\`basename "\$cf_target"\`
5999 for cf_alias in \$aliases
6001 if test "\$section" = 1 ; then
6002 cf_alias=\`echo "\$cf_alias" |sed "\${transform}"\`
6005 if test "$MANPAGE_SYMLINKS" = yes ; then
6006 if test -f "\$cf_alias\${suffix}" ; then
6007 if ( cmp -s "\$cf_target" "\$cf_alias\${suffix}" )
6012 echo ".. \$verb alias \$cf_alias\${suffix}"
6016 cat >>$cf_edit_man <<CF_EOF
6017 $LN_S "\$cf_target" "\$cf_alias\${suffix}"
6021 cat >>$cf_edit_man <<CF_EOF
6022 rm -f "\$cf_alias\${suffix}"
6023 $LN_S "\$cf_target" "\$cf_alias\${suffix}"
6027 cat >>$cf_edit_man <<CF_EOF
6028 elif test "\$cf_target" != "\$cf_alias\${suffix}" ; then
6029 echo ".so \$cf_source" >\$TMP
6031 if test -n "$cf_compress" ; then
6032 cat >>$cf_edit_man <<CF_EOF
6033 if test -n "$cf_so_strip" ; then
6034 "$cf_compress" -f \$TMP
6035 mv \$TMP.$cf_so_strip \$TMP
6039 cat >>$cf_edit_man <<CF_EOF
6040 echo ".. \$verb alias \$cf_alias\${suffix}"
6041 rm -f "\$cf_alias\${suffix}"
6042 \$INSTALL_DATA \$TMP "\$cf_alias\${suffix}"
6047 elif test "\$verb" = removing ; then
6048 test -f "\$cf_target" && (
6049 echo "\$verb \$cf_target"
6052 test -d "\$cf_subdir\${section}" &&
6053 test -n "\$aliases" && (
6054 cd "\$cf_subdir\${section}" && (
6055 for cf_alias in \$aliases
6057 if test "\$section" = 1 ; then
6058 cf_alias=\`echo "\$cf_alias" |sed "\${transform}"\`
6061 echo ".. \$verb alias \$cf_alias\${suffix}"
6062 rm -f "\$cf_alias\${suffix}"
6074 if test "$cf_inboth" = yes ; then
6075 if test "\$form" != format ; then
6076 $SHELL "\[$]0" format "\$verb" "\$mandir" "\$srcdir" "\[$]@"
6082 chmod 755 "$cf_edit_man"
6085 dnl ---------------------------------------------------------------------------
6086 dnl CF_MAP_LIB_BASENAME version: 2 updated: 2021/01/02 17:09:14
6087 dnl -------------------
6088 dnl Convert a default-libname to the actual one used via CF_WITH_LIB_BASENAME.
6090 dnl $1 = variable to set
6091 dnl $2 = default-libname
6092 AC_DEFUN([CF_MAP_LIB_BASENAME],[
6093 CF_UPPER(cf_map_lib_basename,$2)
6094 eval $1="\$${cf_map_lib_basename}_NAME"
6096 dnl ---------------------------------------------------------------------------
6097 dnl CF_MATH_LIB version: 11 updated: 2022/07/27 19:01:48
6099 dnl Checks for libraries. At least one UNIX system, Apple Macintosh
6100 dnl Rhapsody 5.5, does not have -lm. We cannot use the simpler
6101 dnl AC_CHECK_LIB(m,sin), because that fails for C++.
6102 AC_DEFUN([CF_MATH_LIB],
6104 AC_CACHE_CHECK(if -lm needed for math functions,
6111 [double x = rand(); printf("result = %g\\n", ]ifelse([$2],,sin(x),$2)[)],
6112 [cf_cv_need_libm=no],
6113 [cf_cv_need_libm=yes])])
6115 if test "$cf_cv_need_libm" = yes
6118 cf_save_LIBS="$LIBS"
6120 AC_CACHE_CHECK(if -lm is available for math functions,
6127 [double x = rand(); printf("result = %g\\n", ]ifelse([$2],,sin(x),$2)[)],
6128 [cf_cv_have_libm=yes],
6129 [cf_cv_have_libm=no])])
6130 LIBS="$cf_save_LIBS"
6132 if test "$cf_cv_have_libm" = yes
6134 ifelse($1,,[CF_ADD_LIB(m)],[$1=-lm])
6140 if test "$cf_cv_have_libm" = yes
6142 AC_DEFINE(HAVE_MATH_FUNCS,1,[Define to 1 if math functions are available])
6145 dnl ---------------------------------------------------------------------------
6146 dnl CF_MIXEDCASE_FILENAMES version: 9 updated: 2021/01/01 16:53:59
6147 dnl ----------------------
6148 dnl Check if the file-system supports mixed-case filenames. If we're able to
6149 dnl create a lowercase name and see it as uppercase, it doesn't support that.
6150 AC_DEFUN([CF_MIXEDCASE_FILENAMES],
6152 AC_CACHE_CHECK(if filesystem supports mixed-case filenames,cf_cv_mixedcase,[
6153 if test "$cross_compiling" = yes ; then
6154 case "$target_alias" in
6155 (*-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-msys*|*-mingw*|*-uwin*|darwin*)
6163 rm -f conftest CONFTEST
6165 if test -f CONFTEST ; then
6170 rm -f conftest CONFTEST
6173 test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES,1,[Define to 1 if filesystem supports mixed-case filenames.])
6175 dnl ---------------------------------------------------------------------------
6176 dnl CF_MKSTEMP version: 11 updated: 2021/01/01 13:31:04
6178 dnl Check for a working mkstemp. This creates two files, checks that they are
6179 dnl successfully created and distinct (AmigaOS apparently fails on the last).
6180 AC_DEFUN([CF_MKSTEMP],[
6184 AC_CACHE_CHECK(for working mkstemp, cf_cv_func_mkstemp,[
6187 #include <sys/types.h>
6188 #ifdef HAVE_UNISTD_H
6194 #include <sys/stat.h>
6197 char *tmpl = "conftestXXXXXX";
6205 for (n = 0; n < 2; ++n) {
6206 strcpy(name[n], tmpl);
6207 if ((fd = mkstemp(name[n])) >= 0) {
6208 if (!strcmp(name[n], tmpl)
6209 || stat(name[n], &sb) != 0
6210 || (sb.st_mode & S_IFMT) != S_IFREG
6211 || (sb.st_mode & 077) != 0) {
6218 && !strcmp(name[0], name[1]))
6220 ${cf_cv_main_return:-return}(result);
6222 ],[cf_cv_func_mkstemp=yes
6223 ],[cf_cv_func_mkstemp=no
6224 ],[cf_cv_func_mkstemp=maybe])
6226 if test "x$cf_cv_func_mkstemp" = xmaybe ; then
6227 AC_CHECK_FUNC(mkstemp)
6229 if test "x$cf_cv_func_mkstemp" = xyes || test "x$ac_cv_func_mkstemp" = xyes ; then
6230 AC_DEFINE(HAVE_MKSTEMP,1,[Define to 1 if mkstemp() is available and working.])
6233 dnl ---------------------------------------------------------------------------
6234 dnl CF_MSG_LOG version: 5 updated: 2010/10/23 15:52:32
6236 dnl Write a debug message to config.log, along with the line number in the
6237 dnl configure script.
6238 AC_DEFUN([CF_MSG_LOG],[
6239 echo "${as_me:-configure}:__oline__: testing $* ..." 1>&AC_FD_CC
6241 dnl ---------------------------------------------------------------------------
6242 dnl CF_NCURSES_ABI_6 version: 4 updated: 2021/01/01 13:31:04
6243 dnl ----------------
6244 dnl Set ncurses' ABI to 6 unless overridden by explicit configure option, and
6245 dnl warn about this.
6246 AC_DEFUN([CF_NCURSES_ABI_6],[
6247 if test "${with_abi_version+set}" != set; then
6248 case "$cf_cv_rel_version" in
6250 cf_cv_rel_version=6.0
6252 AC_MSG_WARN(overriding ABI version to $cf_cv_abi_version)
6257 dnl ---------------------------------------------------------------------------
6258 dnl CF_NCURSES_WITH_ABI_VERSION version: 3 updated: 2021/01/01 13:31:04
6259 dnl ---------------------------
6260 dnl Allow ncurses's ABI to be overridden. Generally this happens when a
6261 dnl packager has incremented the ABI past that used in the original package,
6262 dnl and wishes to keep doing this.
6264 dnl $1 is the package name, if any, to derive a corresponding {package}_ABI
6266 AC_DEFUN([CF_NCURSES_WITH_ABI_VERSION],[
6267 CF_WITH_ABI_VERSION($1)
6268 if test "x$cf_cv_abi_version" != "x$with_abi_version"
6270 case "$cf_cv_rel_version" in
6272 cf_cv_rel_version=$with_abi_version.0
6277 dnl ---------------------------------------------------------------------------
6278 dnl CF_NO_LEAKS_OPTION version: 9 updated: 2021/06/13 19:45:41
6279 dnl ------------------
6280 dnl see CF_WITH_NO_LEAKS
6282 dnl $1 = option/name
6284 dnl $3 = symbol to define if the option is set
6285 dnl $4 = additional actions to take if the option is set
6286 AC_DEFUN([CF_NO_LEAKS_OPTION],[
6287 AC_MSG_CHECKING(if you want to use $1 for testing)
6290 [case "x$withval" in
6293 : "${with_cflags:=-g}"
6294 : "${enable_leaks:=no}"
6296 AC_DEFINE_UNQUOTED($3,1,"Define to 1 if you want to use $1 for testing.")ifelse([$4],,[
6302 AC_MSG_RESULT(${with_$1:-no})
6304 case ".$with_cflags" in
6316 dnl ---------------------------------------------------------------------------
6317 dnl CF_NUMBER_SYNTAX version: 2 updated: 2015/04/17 21:13:04
6318 dnl ----------------
6319 dnl Check if the given variable is a number. If not, report an error.
6320 dnl $1 is the variable
6321 dnl $2 is the message
6322 AC_DEFUN([CF_NUMBER_SYNTAX],[
6323 if test -n "$1" ; then
6328 AC_MSG_ERROR($2 is not a number: $1)
6332 AC_MSG_ERROR($2 value is empty)
6335 dnl ---------------------------------------------------------------------------
6336 dnl CF_OBJ_SUBDIR version: 8 updated: 2021/01/01 13:31:04
6338 dnl Compute the object-directory name from the given model name
6339 AC_DEFUN([CF_OBJ_SUBDIR],
6342 (libtool) $2='obj_lo' ;;
6343 (normal) $2='objects' ;;
6344 (debug) $2='obj_g' ;;
6345 (profile) $2='obj_p' ;;
6347 case "$cf_cv_system_name" in
6355 dnl ---------------------------------------------------------------------------
6356 dnl CF_PATHSEP version: 8 updated: 2021/01/01 13:31:04
6358 dnl Provide a value for the $PATH and similar separator (or amend the value
6359 dnl as provided in autoconf 2.5x).
6360 AC_DEFUN([CF_PATHSEP],
6362 AC_MSG_CHECKING(for PATH separator)
6363 case "$cf_cv_system_name" in
6364 (os2*) PATH_SEPARATOR=';' ;;
6365 (*) ${PATH_SEPARATOR:=':'} ;;
6367 ifelse([$1],,,[$1=$PATH_SEPARATOR])
6368 AC_SUBST(PATH_SEPARATOR)
6369 AC_MSG_RESULT($PATH_SEPARATOR)
6371 dnl ---------------------------------------------------------------------------
6372 dnl CF_PATH_PROG version: 12 updated: 2021/01/02 09:31:20
6374 dnl Check for a given program, defining corresponding symbol.
6375 dnl $1 = environment variable, which is suffixed by "_PATH" in the #define.
6376 dnl $2 = program name to find.
6377 dnl $3 = optional list of additional program names to test.
6380 dnl If there is more than one token in the result, #define the remaining tokens
6381 dnl to $1_ARGS. We need this for 'install' in particular.
6383 dnl FIXME: we should allow this to be overridden by environment variables
6385 AC_DEFUN([CF_PATH_PROG],[
6386 AC_REQUIRE([CF_PATHSEP])
6387 test -z "[$]$1" && $1="$2"
6388 AC_PATH_PROGS($1,[$]$1 $2 ifelse($3,,,$3),[$]$1, ifelse($4,,,$4))
6392 IFS="${IFS:- }"; cf_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR"
6393 for cf_temp in $ac_cv_path_$1
6395 if test -z "$cf_path_prog" ; then
6396 if test "$with_full_paths" = yes ; then
6397 CF_PATH_SYNTAX(cf_temp,break)
6398 cf_path_prog="$cf_temp"
6400 cf_path_prog="`basename "$cf_temp"`"
6402 elif test -z "$cf_path_args" ; then
6403 cf_path_args="$cf_temp"
6405 cf_path_args="$cf_path_args $cf_temp"
6410 if test -n "$cf_path_prog" ; then
6411 CF_MSG_LOG(defining path for ${cf_path_prog})
6412 AC_DEFINE_UNQUOTED($1_PATH,"$cf_path_prog",Define to pathname $1)
6413 test -n "$cf_path_args" && AC_DEFINE_UNQUOTED($1_ARGS,"$cf_path_args",Define to provide args for $1)
6416 dnl ---------------------------------------------------------------------------
6417 dnl CF_PATH_SYNTAX version: 18 updated: 2020/12/31 18:40:20
6419 dnl Check the argument to see that it looks like a pathname. Rewrite it if it
6420 dnl begins with one of the prefix/exec_prefix variables, and then again if the
6421 dnl result begins with 'NONE'. This is necessary to work around autoconf's
6422 dnl delayed evaluation of those symbols.
6423 AC_DEFUN([CF_PATH_SYNTAX],[
6424 if test "x$prefix" != xNONE; then
6425 cf_path_syntax="$prefix"
6427 cf_path_syntax="$ac_default_prefix"
6431 (.\[$]\(*\)*|.\'*\'*)
6435 (.[[a-zA-Z]]:[[\\/]]*) # OS/2 EMX
6437 (.\[$]\{*prefix\}*|.\[$]\{*dir\}*)
6441 $1=`echo "[$]$1" | sed -e s%NONE%$cf_path_syntax%`
6446 $1=`echo "[$]$1" | sed -e s%NONE%$cf_path_syntax%`
6449 ifelse([$2],,[AC_MSG_ERROR([expected a pathname, not \"[$]$1\"])],$2)
6453 dnl ---------------------------------------------------------------------------
6454 dnl CF_PKG_CONFIG version: 12 updated: 2021/10/10 20:18:09
6456 dnl Check for the package-config program, unless disabled by command-line.
6458 dnl Sets $PKG_CONFIG to the pathname of the pkg-config program.
6459 AC_DEFUN([CF_PKG_CONFIG],
6461 AC_MSG_CHECKING(if you want to use pkg-config)
6462 AC_ARG_WITH(pkg-config,
6463 [ --with-pkg-config{=path} enable/disable use of pkg-config],
6464 [cf_pkg_config=$withval],
6465 [cf_pkg_config=yes])
6466 AC_MSG_RESULT($cf_pkg_config)
6468 case "$cf_pkg_config" in
6473 CF_ACVERSION_CHECK(2.52,
6474 [AC_PATH_TOOL(PKG_CONFIG, pkg-config, none)],
6475 [AC_PATH_PROG(PKG_CONFIG, pkg-config, none)])
6482 test -z "$PKG_CONFIG" && PKG_CONFIG=none
6483 if test "$PKG_CONFIG" != none ; then
6484 CF_PATH_SYNTAX(PKG_CONFIG)
6485 elif test "x$cf_pkg_config" != xno ; then
6486 AC_MSG_WARN(pkg-config is not installed)
6489 AC_SUBST(PKG_CONFIG)
6491 dnl ---------------------------------------------------------------------------
6492 dnl CF_POSIX_C_SOURCE version: 11 updated: 2018/12/31 20:46:17
6493 dnl -----------------
6494 dnl Define _POSIX_C_SOURCE to the given level, and _POSIX_SOURCE if needed.
6496 dnl POSIX.1-1990 _POSIX_SOURCE
6497 dnl POSIX.1-1990 and _POSIX_SOURCE and
6498 dnl POSIX.2-1992 C-Language _POSIX_C_SOURCE=2
6500 dnl POSIX.1b-1993 _POSIX_C_SOURCE=199309L
6501 dnl POSIX.1c-1996 _POSIX_C_SOURCE=199506L
6502 dnl X/Open 2000 _POSIX_C_SOURCE=200112L
6505 dnl $1 is the nominal value for _POSIX_C_SOURCE
6506 AC_DEFUN([CF_POSIX_C_SOURCE],
6507 [AC_REQUIRE([CF_POSIX_VISIBLE])dnl
6509 if test "$cf_cv_posix_visible" = no; then
6511 cf_POSIX_C_SOURCE=ifelse([$1],,199506L,[$1])
6513 cf_save_CFLAGS="$CFLAGS"
6514 cf_save_CPPFLAGS="$CPPFLAGS"
6516 CF_REMOVE_DEFINE(cf_trim_CFLAGS,$cf_save_CFLAGS,_POSIX_C_SOURCE)
6517 CF_REMOVE_DEFINE(cf_trim_CPPFLAGS,$cf_save_CPPFLAGS,_POSIX_C_SOURCE)
6519 AC_CACHE_CHECK(if we should define _POSIX_C_SOURCE,cf_cv_posix_c_source,[
6520 CF_MSG_LOG(if the symbol is already defined go no further)
6521 AC_TRY_COMPILE([#include <sys/types.h>],[
6522 #ifndef _POSIX_C_SOURCE
6525 [cf_cv_posix_c_source=no],
6526 [cf_want_posix_source=no
6527 case .$cf_POSIX_C_SOURCE in
6529 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
6532 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
6533 cf_want_posix_source=yes
6536 cf_want_posix_source=yes
6539 if test "$cf_want_posix_source" = yes ; then
6540 AC_TRY_COMPILE([#include <sys/types.h>],[
6541 #ifdef _POSIX_SOURCE
6544 cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE")
6546 CF_MSG_LOG(ifdef from value $cf_POSIX_C_SOURCE)
6547 CFLAGS="$cf_trim_CFLAGS"
6548 CPPFLAGS="$cf_trim_CPPFLAGS"
6549 CF_APPEND_TEXT(CPPFLAGS,$cf_cv_posix_c_source)
6550 CF_MSG_LOG(if the second compile does not leave our definition intact error)
6551 AC_TRY_COMPILE([#include <sys/types.h>],[
6552 #ifndef _POSIX_C_SOURCE
6555 [cf_cv_posix_c_source=no])
6556 CFLAGS="$cf_save_CFLAGS"
6557 CPPFLAGS="$cf_save_CPPFLAGS"
6561 if test "$cf_cv_posix_c_source" != no ; then
6562 CFLAGS="$cf_trim_CFLAGS"
6563 CPPFLAGS="$cf_trim_CPPFLAGS"
6564 CF_ADD_CFLAGS($cf_cv_posix_c_source)
6567 fi # cf_cv_posix_visible
6570 dnl ---------------------------------------------------------------------------
6571 dnl CF_POSIX_VISIBLE version: 1 updated: 2018/12/31 20:46:17
6572 dnl ----------------
6573 dnl POSIX documents test-macros which an application may set before any system
6574 dnl headers are included to make features available.
6576 dnl Some BSD platforms (originally FreeBSD, but copied by a few others)
6577 dnl diverged from POSIX in 2002 by setting symbols which make all of the most
6578 dnl recent features visible in the system header files unless the application
6579 dnl overrides the corresponding test-macros. Doing that introduces portability
6582 dnl This macro makes a special check for the symbols used for this, to avoid a
6583 dnl conflicting definition.
6584 AC_DEFUN([CF_POSIX_VISIBLE],
6586 AC_CACHE_CHECK(if the POSIX test-macros are already defined,cf_cv_posix_visible,[
6587 AC_TRY_COMPILE([#include <stdio.h>],[
6588 #if defined(__POSIX_VISIBLE) && ((__POSIX_VISIBLE - 0L) > 0) \
6589 && defined(__XSI_VISIBLE) && ((__XSI_VISIBLE - 0L) > 0) \
6590 && defined(__BSD_VISIBLE) && ((__BSD_VISIBLE - 0L) > 0) \
6591 && defined(__ISO_C_VISIBLE) && ((__ISO_C_VISIBLE - 0L) > 0)
6592 #error conflicting symbols found
6594 ],[cf_cv_posix_visible=no],[cf_cv_posix_visible=yes])
6597 dnl ---------------------------------------------------------------------------
6598 dnl CF_PREDEFINE version: 2 updated: 2010/05/26 16:44:57
6600 dnl Add definitions to CPPFLAGS to ensure they're predefined for all compiles.
6602 dnl $1 = symbol to test
6603 dnl $2 = value (if any) to use for a predefinition
6604 AC_DEFUN([CF_PREDEFINE],
6606 AC_MSG_CHECKING(if we must define $1)
6607 AC_TRY_COMPILE([#include <sys/types.h>
6611 #endif],[cf_result=no],[cf_result=yes])
6612 AC_MSG_RESULT($cf_result)
6614 if test "$cf_result" = yes ; then
6615 CPPFLAGS="$CPPFLAGS ifelse([$2],,-D$1,[-D$1=$2])"
6616 elif test "x$2" != "x" ; then
6617 AC_MSG_CHECKING(checking for compatible value versus $2)
6618 AC_TRY_COMPILE([#include <sys/types.h>
6622 #endif],[cf_result=yes],[cf_result=no])
6623 AC_MSG_RESULT($cf_result)
6624 if test "$cf_result" = no ; then
6625 # perhaps we can override it - try...
6626 CPPFLAGS="$CPPFLAGS -D$1=$2"
6630 dnl ---------------------------------------------------------------------------
6631 dnl CF_PRG_RULES version: 2 updated: 2021/01/01 13:31:04
6633 dnl Append definitions and rules for the given programs to the subdirectory
6634 dnl Makefiles, and the recursion rule for the top-level Makefile.
6637 dnl $1 = script to run
6638 dnl $2 = list of subdirectories
6642 AC_DEFUN([CF_PRG_RULES],
6646 if test ! -d "$srcdir/$cf_dir" ; then
6648 elif test -f "$srcdir/$cf_dir/programs" ; then
6649 $AWK -f $1 "$srcdir/$cf_dir/programs" >>$cf_dir/Makefile
6654 dnl ---------------------------------------------------------------------------
6655 dnl CF_PROG_AR version: 1 updated: 2009/01/01 20:15:22
6657 dnl Check for archiver "ar".
6658 AC_DEFUN([CF_PROG_AR],[
6659 AC_CHECK_TOOL(AR, ar, ar)
6661 dnl ---------------------------------------------------------------------------
6662 dnl CF_PROG_AWK version: 1 updated: 2006/09/16 11:40:59
6664 dnl Check for awk, ensure that the check found something.
6665 AC_DEFUN([CF_PROG_AWK],
6668 test -z "$AWK" && AC_MSG_ERROR(No awk program found)
6670 dnl ---------------------------------------------------------------------------
6671 dnl CF_PROG_CC version: 5 updated: 2019/12/31 08:53:54
6673 dnl standard check for CC, plus followup sanity checks
6674 dnl $1 = optional parameter to pass to AC_PROG_CC to specify compiler name
6675 AC_DEFUN([CF_PROG_CC],[
6676 CF_ACVERSION_CHECK(2.53,
6677 [AC_MSG_WARN(this will incorrectly handle gnatgcc choice)
6678 AC_REQUIRE([AC_PROG_CC])],
6680 ifelse($1,,[AC_PROG_CC],[AC_PROG_CC($1)])
6682 CF_ACVERSION_CHECK(2.52,
6687 dnl ---------------------------------------------------------------------------
6688 dnl CF_PROG_CC_C_O version: 6 updated: 2021/01/01 13:31:04
6690 dnl Analogous to AC_PROG_CC_C_O, but more useful: tests only $CC, ensures that
6691 dnl the output file can be renamed, and allows for a shell variable that can
6692 dnl be used later. The parameter is either CC or CXX. The result is the
6694 dnl $cf_cv_prog_CC_c_o
6695 dnl $cf_cv_prog_CXX_c_o
6698 dnl $2 = compiler options, if any
6699 AC_DEFUN([CF_PROG_CC_C_O],
6700 [AC_REQUIRE([AC_PROG_CC])dnl
6701 AC_MSG_CHECKING([whether [$]$1 understands -c and -o together])
6702 AC_CACHE_VAL(cf_cv_prog_$1_c_o,
6704 cat > conftest.$ac_ext <<CF_EOF
6707 ${cf_cv_main_return:-return}(0);
6710 # We do the test twice because some compilers refuse to overwrite an
6711 # existing .o file with -o, though they will create one.
6712 ac_try='[$]$1 $2 -c conftest.$ac_ext -o conftest2.$ac_objext >&AC_FD_CC'
6713 if AC_TRY_EVAL(ac_try) &&
6714 test -f conftest2.$ac_objext && AC_TRY_EVAL(ac_try);
6716 eval cf_cv_prog_$1_c_o=yes
6718 eval cf_cv_prog_$1_c_o=no
6722 if test "$cf_cv_prog_$1_c_o" = yes; then
6723 AC_MSG_RESULT([yes])
6728 dnl ---------------------------------------------------------------------------
6729 dnl CF_PROG_GNAT version: 12 updated: 2021/01/02 17:09:14
6731 dnl Check for gnat/gnatmake/etc, ensure that the toolset is complete.
6732 AC_DEFUN([CF_PROG_GNAT],[
6733 for cf_prog_gnat in gnat gnatmake gprconfig gprbuild
6735 CF_UPPER(cf_upper_prog_gnat,${cf_prog_gnat})
6737 unset ac_cv_path_cf_TEMP_gnat
6739 AC_PATH_PROG(cf_TEMP_gnat,$cf_prog_gnat,no)
6740 eval "cf_cv_PATH_$cf_upper_prog_gnat=[$]ac_cv_path_cf_TEMP_gnat"
6742 if test "x$cf_TEMP_gnat" != xno; then
6743 unset cf_cv_gnat_version
6745 CF_GNAT_VERSION(cf_TEMP_gnat,$cf_prog_gnat)
6747 eval "cf_cv_VERSION_$cf_upper_prog_gnat=[$]cf_TEMP_gnat"
6750 unset cf_cv_gnat_version
6751 unset ac_cv_path_cf_TEMP_gnat
6754 if test "x$cf_cv_VERSION_GNATMAKE" = "xno"; then
6756 cf_cv_prog_gnat_correct=no
6758 cf_ada_make=gnatmake
6759 if test "x$cf_cv_VERSION_GPRCONFIG" = "xno"; then
6760 # gprconfig is newer than gnatmake; we can continue...
6763 rm -rf ./conftest* ./*~conftest*
6764 if mkdir conftest.src
6768 for cf_gprconfig in Ada C
6770 AC_MSG_CHECKING(for gprconfig name for $cf_gprconfig)
6771 if test "$cf_gprconfig" = C
6773 for cf_gprconfig_param in \
6774 "$cf_gprconfig,,,,GNATGCC" \
6775 "$cf_gprconfig,,,,GCC" \
6778 cf_gprconfig_value=`echo s| gprconfig --config=$cf_gprconfig_param 2>&AC_FD_CC | ${AWK:-awk} '/^\*/{print [$]3;}' | head -n 1`
6779 test -n "$cf_gprconfig_value" && break
6782 cf_gprconfig_param=$cf_gprconfig
6783 cf_gprconfig_value=`echo s| gprconfig --config=$cf_gprconfig_param 2>&AC_FD_CC | ${AWK:-awk} '/^\*/{print [$]3;}' | head -n 1`
6785 if test -n "$cf_gprconfig_value"
6787 eval "cf_ada_config_[$]cf_gprconfig=[$]cf_gprconfig_value"
6788 AC_MSG_RESULT($cf_gprconfig_value)
6790 AC_MSG_RESULT(missing)
6796 rm -rf ./conftest* ./*~conftest*
6799 if test "x$cf_ada_config" != "x#"
6802 CF_CHECK_GNAT_VERSION
6803 AC_CHECK_PROG(M4_exists, m4, yes, no)
6804 if test "$ac_cv_prog_M4_exists" = no; then
6805 cf_cv_prog_gnat_correct=no
6806 AC_MSG_WARN(Ada95 binding required program m4 not found. Ada95 binding disabled)
6808 if test "$cf_cv_prog_gnat_correct" = yes; then
6809 AC_MSG_CHECKING(if GNAT works)
6810 CF_GNAT_TRY_RUN([procedure conftest;],
6813 procedure conftest is
6815 Text_IO.Put ("Hello World");
6817 GNAT.OS_Lib.OS_Exit (0);
6819 [cf_cv_prog_gnat_correct=yes],
6820 [cf_cv_prog_gnat_correct=no])
6821 AC_MSG_RESULT($cf_cv_prog_gnat_correct)
6824 cf_cv_prog_gnat_correct=no
6828 AC_SUBST(cf_ada_make)
6829 AC_SUBST(cf_ada_config)
6830 AC_SUBST(cf_ada_config_Ada)
6831 AC_SUBST(cf_ada_config_C)
6833 dnl ---------------------------------------------------------------------------
6834 dnl CF_PROG_INSTALL version: 10 updated: 2021/01/04 19:33:05
6836 dnl Force $INSTALL to be an absolute-path. Otherwise, edit_man.sh and the
6837 dnl misc/tabset install won't work properly. Usually this happens only when
6838 dnl using the fallback mkinstalldirs script
6839 AC_DEFUN([CF_PROG_INSTALL],
6845 CF_DIRNAME(cf_dir,$INSTALL)
6846 test -z "$cf_dir" && cf_dir=.
6847 INSTALL="`cd \"$cf_dir\" && pwd`"/"`echo "$INSTALL" | sed -e 's%^.*/%%'`"
6851 dnl ---------------------------------------------------------------------------
6852 dnl CF_PROG_LDCONFIG version: 5 updated: 2015/04/18 08:56:57
6853 dnl ----------------
6854 dnl Check for ldconfig, needed to fixup shared libraries that would be built
6855 dnl and then used in the install.
6856 AC_DEFUN([CF_PROG_LDCONFIG],[
6857 if test "$cross_compiling" = yes ; then
6860 case "$cf_cv_system_name" in
6861 (dragonfly*|mirbsd*|freebsd*)
6862 test -z "$LDCONFIG" && LDCONFIG="/sbin/ldconfig -R"
6864 (*) LDPATH=$PATH:/sbin:/usr/sbin
6865 AC_PATH_PROG(LDCONFIG,ldconfig,,$LDPATH)
6871 dnl ---------------------------------------------------------------------------
6872 dnl CF_PROG_LINT version: 4 updated: 2019/11/20 18:55:37
6874 AC_DEFUN([CF_PROG_LINT],
6876 AC_CHECK_PROGS(LINT, lint cppcheck splint)
6878 (xcppcheck|x*/cppcheck)
6879 test -z "$LINT_OPTS" && LINT_OPTS="--enable=all"
6884 dnl ---------------------------------------------------------------------------
6885 dnl CF_PROG_LN_S version: 2 updated: 2010/08/14 18:25:37
6887 dnl Combine checks for "ln -s" and "ln -sf", updating $LN_S to include "-f"
6888 dnl option if it is supported.
6889 AC_DEFUN([CF_PROG_LN_S],[
6891 AC_MSG_CHECKING(if $LN_S -f options work)
6893 rm -f conf$$.src conf$$dst
6895 echo first >conf$$.src
6896 if $LN_S -f conf$$.src conf$$.dst 2>/dev/null; then
6901 rm -f conf$$.dst conf$$src
6902 AC_MSG_RESULT($cf_prog_ln_sf)
6904 test "$cf_prog_ln_sf" = yes && LN_S="$LN_S -f"
6906 dnl ---------------------------------------------------------------------------
6907 dnl CF_REGEX version: 18 updated: 2021/01/01 16:53:59
6909 dnl Attempt to determine if we've got one of the flavors of regular-expression
6910 dnl code that we can support.
6911 AC_DEFUN([CF_REGEX],
6918 # -lsystre -ltre -lintl -liconv
6919 AC_CHECK_LIB(systre,regcomp,[
6920 AC_CHECK_LIB(iconv,libiconv_open,[CF_ADD_LIB(iconv)])
6921 AC_CHECK_LIB(intl,libintl_gettext,[CF_ADD_LIB(intl)])
6922 AC_CHECK_LIB(tre,tre_regcomp,[CF_ADD_LIB(tre)])
6924 cf_regex_func=regcomp
6926 AC_CHECK_LIB(gnurx,regcomp,[
6928 cf_regex_func=regcomp])
6932 cf_regex_libs="regex re"
6933 AC_CHECK_FUNC(regcomp,[cf_regex_func=regcomp],[
6934 for cf_regex_lib in $cf_regex_libs
6936 AC_CHECK_LIB($cf_regex_lib,regcomp,[
6937 CF_ADD_LIB($cf_regex_lib)
6938 cf_regex_func=regcomp
6945 if test "$cf_regex_func" = no ; then
6946 AC_CHECK_FUNC(compile,[cf_regex_func=compile],[
6947 AC_CHECK_LIB(gen,compile,[
6949 cf_regex_func=compile])])
6952 if test "$cf_regex_func" = no ; then
6953 AC_MSG_WARN(cannot find regular expression library)
6956 AC_CACHE_CHECK(for regular-expression headers,cf_cv_regex_hdrs,[
6959 case "$cf_regex_func" in
6961 for cf_regex_hdr in regexp.h regexpr.h
6963 AC_TRY_LINK([#include <$cf_regex_hdr>],[
6964 char *p = compile("", "", "", 0);
6965 int x = step("", "");
6969 cf_cv_regex_hdrs=$cf_regex_hdr
6975 for cf_regex_hdr in regex.h
6977 AC_TRY_LINK([#include <sys/types.h>
6978 #include <$cf_regex_hdr>],[
6980 int x = regcomp(p, "", 0);
6981 int y = regexec(p, "", 0, 0, 0);
6986 cf_cv_regex_hdrs=$cf_regex_hdr
6995 case "$cf_cv_regex_hdrs" in
6996 (no) AC_MSG_WARN(no regular expression header found) ;;
6997 (regex.h) AC_DEFINE(HAVE_REGEX_H_FUNCS,1,[Define to 1 to include regex.h for regular expressions]) ;;
6998 (regexp.h) AC_DEFINE(HAVE_REGEXP_H_FUNCS,1,[Define to 1 to include regexp.h for regular expressions]) ;;
6999 (regexpr.h) AC_DEFINE(HAVE_REGEXPR_H_FUNCS,1,[Define to 1 to include regexpr.h for regular expressions]) ;;
7002 dnl ---------------------------------------------------------------------------
7003 dnl CF_REMOVE_CFLAGS version: 3 updated: 2021/09/05 17:25:40
7004 dnl ----------------
7005 dnl Remove a given option from CFLAGS/CPPFLAGS
7006 dnl $1 = option to remove
7007 dnl $2 = variable to update
7008 dnl $3 = nonempty to allow verbose message
7009 define([CF_REMOVE_CFLAGS],
7011 cf_tmp_cflag=`echo "x$1" | sed -e 's/^.//' -e 's/=.*//'`
7014 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'`
7015 test "[$]$2" != "$cf_old_cflag" || break
7016 ifelse([$3],,,[CF_VERBOSE(removing old option $1 from $2)])
7020 dnl ---------------------------------------------------------------------------
7021 dnl CF_REMOVE_DEFINE version: 3 updated: 2010/01/09 11:05:50
7022 dnl ----------------
7023 dnl Remove all -U and -D options that refer to the given symbol from a list
7024 dnl of C compiler options. This works around the problem that not all
7025 dnl compilers process -U and -D options from left-to-right, so a -U option
7026 dnl cannot be used to cancel the effect of a preceding -D option.
7028 dnl $1 = target (which could be the same as the source variable)
7029 dnl $2 = source (including '$')
7030 dnl $3 = symbol to remove
7031 define([CF_REMOVE_DEFINE],
7034 sed -e 's/-[[UD]]'"$3"'\(=[[^ ]]*\)\?[[ ]]/ /g' \
7035 -e 's/-[[UD]]'"$3"'\(=[[^ ]]*\)\?[$]//g'`
7037 dnl ---------------------------------------------------------------------------
7038 dnl CF_REMOVE_LIB version: 1 updated: 2007/02/17 14:11:52
7040 dnl Remove the given library from the symbol
7042 dnl $1 = target (which could be the same as the source variable)
7043 dnl $2 = source (including '$')
7044 dnl $3 = library to remove
7045 define([CF_REMOVE_LIB],
7047 # remove $3 library from $2
7048 $1=`echo "$2" | sed -e 's/-l$3[[ ]]//g' -e 's/-l$3[$]//'`
7050 dnl ---------------------------------------------------------------------------
7051 dnl CF_RESTORE_XTRA_FLAGS version: 1 updated: 2020/01/11 16:47:45
7052 dnl ---------------------
7053 dnl Restore flags saved in CF_SAVE_XTRA_FLAGS
7054 dnl $1 = name of current macro
7055 define([CF_RESTORE_XTRA_FLAGS],
7057 LIBS="$cf_save_LIBS_$1"
7058 CFLAGS="$cf_save_CFLAGS_$1"
7059 CPPFLAGS="$cf_save_CPPFLAGS_$1"
7061 dnl ---------------------------------------------------------------------------
7062 dnl CF_RPATH_HACK version: 13 updated: 2021/01/03 18:30:50
7064 AC_DEFUN([CF_RPATH_HACK],
7065 [AC_REQUIRE([AC_PROG_FGREP])dnl
7066 AC_REQUIRE([CF_LD_RPATH_OPT])dnl
7068 AC_MSG_CHECKING(for updated LDFLAGS)
7069 if test -n "$LD_RPATH_OPT" ; then
7070 AC_MSG_RESULT(maybe)
7072 AC_CHECK_PROGS(cf_ldd_prog,ldd,no)
7073 cf_rpath_list="/usr/lib /lib"
7074 if test "$cf_ldd_prog" != no
7078 AC_TRY_LINK([#include <stdio.h>],
7080 [cf_rpath_oops=`"$cf_ldd_prog" "conftest$ac_exeext" | ${FGREP-fgrep} ' not found' | sed -e 's% =>.*$%%' |sort | uniq`
7081 cf_rpath_list=`"$cf_ldd_prog" "conftest$ac_exeext" | ${FGREP-fgrep} / | sed -e 's%^.*[[ ]]/%/%' -e 's%/[[^/]][[^/]]*$%%' |sort | uniq`])
7083 # If we passed the link-test, but get a "not found" on a given library,
7084 # this could be due to inept reconfiguration of gcc to make it only
7085 # partly honor /usr/local/lib (or whatever). Sometimes this behavior
7086 # is intentional, e.g., installing gcc in /usr/bin and suppressing the
7087 # /usr/local libraries.
7088 if test -n "$cf_rpath_oops"
7090 for cf_rpath_src in $cf_rpath_oops
7092 for cf_rpath_dir in \
7097 if test -f "$cf_rpath_dir/lib/$cf_rpath_src"
7099 CF_VERBOSE(...adding -L$cf_rpath_dir/lib to LDFLAGS for $cf_rpath_src)
7100 LDFLAGS="$LDFLAGS -L$cf_rpath_dir/lib"
7108 CF_VERBOSE(...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS)
7110 CF_RPATH_HACK_2(LDFLAGS)
7111 CF_RPATH_HACK_2(LIBS)
7113 CF_VERBOSE(...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS)
7117 AC_SUBST(EXTRA_LDFLAGS)
7119 dnl ---------------------------------------------------------------------------
7120 dnl CF_RPATH_HACK_2 version: 8 updated: 2021/01/01 13:31:04
7122 dnl Do one set of substitutions for CF_RPATH_HACK, adding an rpath option to
7123 dnl EXTRA_LDFLAGS for each -L option found.
7125 dnl $cf_rpath_list contains a list of directories to ignore.
7127 dnl $1 = variable name to update. The LDFLAGS variable should be the only one,
7128 dnl but LIBS often has misplaced -L options.
7129 AC_DEFUN([CF_RPATH_HACK_2],
7131 CF_VERBOSE(...checking $1 [$]$1)
7134 for cf_rpath_src in [$]$1
7136 case "$cf_rpath_src" in
7139 # check if this refers to a directory which we will ignore
7141 if test -n "$cf_rpath_list"
7143 for cf_rpath_item in $cf_rpath_list
7145 if test "x$cf_rpath_src" = "x-L$cf_rpath_item"
7153 if test "$cf_rpath_skip" = no
7155 # transform the option
7156 if test "$LD_RPATH_OPT" = "-R " ; then
7157 cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%-R %"`
7159 cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%$LD_RPATH_OPT%"`
7162 # if we have not already added this, add it now
7163 cf_rpath_tst=`echo "$EXTRA_LDFLAGS" | sed -e "s%$cf_rpath_tmp %%"`
7164 if test "x$cf_rpath_tst" = "x$EXTRA_LDFLAGS"
7166 CF_VERBOSE(...Filter $cf_rpath_src ->$cf_rpath_tmp)
7167 EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS"
7172 cf_rpath_dst="$cf_rpath_dst $cf_rpath_src"
7176 CF_VERBOSE(...checked $1 [$]$1)
7177 AC_SUBST(EXTRA_LDFLAGS)
7179 dnl ---------------------------------------------------------------------------
7180 dnl CF_SAVE_XTRA_FLAGS version: 1 updated: 2020/01/11 16:46:44
7181 dnl ------------------
7182 dnl Use this macro to save CFLAGS/CPPFLAGS/LIBS before checks against X headers
7183 dnl and libraries which do not update those variables.
7185 dnl $1 = name of current macro
7186 define([CF_SAVE_XTRA_FLAGS],
7188 cf_save_LIBS_$1="$LIBS"
7189 cf_save_CFLAGS_$1="$CFLAGS"
7190 cf_save_CPPFLAGS_$1="$CPPFLAGS"
7191 LIBS="$LIBS ${X_PRE_LIBS} ${X_LIBS} ${X_EXTRA_LIBS}"
7192 for cf_X_CFLAGS in $X_CFLAGS
7194 case "x$cf_X_CFLAGS" in
7196 CPPFLAGS="$CPPFLAGS $cf_X_CFLAGS"
7199 CFLAGS="$CFLAGS $cf_X_CFLAGS"
7204 dnl ---------------------------------------------------------------------------
7205 dnl CF_SHARED_OPTS version: 107 updated: 2021/09/04 06:47:34
7208 dnl Attempt to determine the appropriate CC/LD options for creating a shared
7212 dnl a) ${LOCAL_LDFLAGS} is used to link executables that will run within
7213 dnl the build-tree, i.e., by making use of the libraries that are compiled in
7214 dnl $rel_builddir/lib We avoid compiling-in a $rel_builddir/lib path for the
7215 dnl shared library since that can lead to unexpected results at runtime.
7216 dnl b) ${LOCAL_LDFLAGS2} has the same intention but assumes that the shared
7217 dnl libraries are compiled in ../../lib
7219 dnl The variable 'cf_cv_do_symlinks' is used to control whether we configure
7220 dnl to install symbolic links to the rel/abi versions of shared libraries.
7222 dnl The variable 'cf_cv_shlib_version' controls whether we use the rel or abi
7223 dnl version when making symbolic links.
7225 dnl The variable 'cf_cv_shlib_version_infix' controls whether shared library
7226 dnl version numbers are infix (ex: libncurses.<ver>.dylib) or postfix
7227 dnl (ex: libncurses.so.<ver>).
7229 dnl Some loaders leave 'so_locations' lying around. It is nice to clean up.
7230 AC_DEFUN([CF_SHARED_OPTS],
7232 AC_REQUIRE([CF_LD_RPATH_OPT])
7238 INSTALL_LIB="-m 644"
7239 : ${rel_builddir:=.}
7247 cf_cv_do_symlinks=no
7249 test "$cf_cv_enable_rpath" = yes && cf_ld_rpath_opt="$LD_RPATH_OPT"
7251 AC_MSG_CHECKING(if release/abi version should be used for shared libs)
7252 AC_ARG_WITH(shlib-version,
7253 [ --with-shlib-version=X Specify rel or abi version for shared libs],
7254 [test -z "$withval" && withval=auto
7257 cf_cv_shlib_version=auto
7260 cf_cv_shlib_version=$withval
7263 AC_MSG_RESULT($withval)
7264 AC_MSG_ERROR([option value must be one of: rel, abi, or auto])
7267 ],[cf_cv_shlib_version=auto])
7268 AC_MSG_RESULT($cf_cv_shlib_version)
7273 # Some less-capable ports of gcc support only -fpic
7277 if test "$GCC" = yes
7281 case "$cf_cv_system_name" in
7282 (*linux*) # e.g., PGI compiler
7288 if test "$cf_try_fPIC" = yes
7290 AC_MSG_CHECKING(which $CC option to use)
7291 cf_save_CFLAGS="$CFLAGS"
7292 for CC_SHARED_OPTS in -fPIC -fpic ''
7294 CFLAGS="$cf_save_CFLAGS $CC_SHARED_OPTS"
7295 AC_TRY_COMPILE([#include <stdio.h>],[int x = 1],[break],[])
7297 AC_MSG_RESULT($CC_SHARED_OPTS)
7298 CFLAGS="$cf_save_CFLAGS"
7301 cf_cv_shlib_version_infix=no
7303 case "$cf_cv_system_name" in
7304 (aix4.[3-9]*|aix[[5-7]]*)
7305 if test "$GCC" = yes; then
7306 CC_SHARED_OPTS='-Wl,-brtl'
7307 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o [$]@'
7309 CC_SHARED_OPTS='-brtl'
7310 # as well as '-qpic=large -G' or perhaps "-bM:SRE -bnoentry -bexpall"
7311 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -G -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o [$]@'
7315 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -o $[@] -Xlinker -soname=`basename $[@]` -nostart -e 0'
7319 MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
7320 RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
7321 cf_cv_shlib_version=cygdll
7322 cf_cv_shlib_version_infix=cygdll
7325 cat >mk_shared_lib.sh <<-CF_EOF
7328 IMPORT_LIB=\`echo "\[$]1" | sed -e 's/cyg/lib/' -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
7331 Linking shared library
7332 ** SHARED_LIB \[$]SHARED_LIB
7333 ** IMPORT_LIB \[$]IMPORT_LIB
7335 exec \[$]* ${LDFLAGS} -shared -Wl,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB}
7337 chmod +x mk_shared_lib.sh
7341 MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
7342 RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
7343 cf_cv_shlib_version=msysdll
7344 cf_cv_shlib_version_infix=msysdll
7347 cat >mk_shared_lib.sh <<-CF_EOF
7350 IMPORT_LIB=\`echo "\[$]1" | sed -e 's/msys-/lib/' -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
7353 Linking shared library
7354 ** SHARED_LIB \[$]SHARED_LIB
7355 ** IMPORT_LIB \[$]IMPORT_LIB
7357 exec \[$]* ${LDFLAGS} -shared -Wl,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB}
7359 chmod +x mk_shared_lib.sh
7362 cf_try_cflags="no-cpp-precomp"
7363 CC_SHARED_OPTS="-dynamic"
7364 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -dynamiclib -install_name ${libdir}/`basename $[@]` -compatibility_version ${ABI_VERSION} -current_version ${ABI_VERSION} -o $[@]'
7365 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi
7366 cf_cv_shlib_version_infix=yes
7367 AC_CACHE_CHECK([if ld -search_paths_first works], cf_cv_ldflags_search_paths_first, [
7368 cf_save_LDFLAGS=$LDFLAGS
7369 LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
7370 AC_TRY_LINK(, [int i;], cf_cv_ldflags_search_paths_first=yes, cf_cv_ldflags_search_paths_first=no)
7371 LDFLAGS=$cf_save_LDFLAGS])
7372 if test "$cf_cv_ldflags_search_paths_first" = yes; then
7373 LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
7378 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
7381 # HP-UX 8.07 ld lacks "+b" option used for libdir search-list
7382 if test "$GCC" != yes; then
7385 MK_SHARED_LIB='${LD} ${LDFLAGS} -b -o $[@]'
7386 INSTALL_LIB="-m 555"
7389 # (tested with gcc 2.7.2 -- I don't have c89)
7390 if test "$GCC" = yes; then
7391 LD_SHARED_OPTS='-Xlinker +b -Xlinker ${libdir}'
7394 LD_SHARED_OPTS='-Wl,+b,${libdir}'
7396 MK_SHARED_LIB='${LD} ${LDFLAGS} +b ${libdir} -b -o $[@]'
7397 # HP-UX shared libraries must be executable, and should be
7398 # readonly to exploit a quirk in the memory manager.
7399 INSTALL_LIB="-m 555"
7402 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
7403 if test "$cf_cv_shlib_version" = rel; then
7404 cf_shared_soname='`basename $[@] .${REL_VERSION}`.${ABI_VERSION}'
7406 cf_shared_soname='`basename $[@]`'
7409 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-rpath,${RPATH_LIST} -Wl,-h,'$cf_shared_soname' -o $[@]'
7412 if test "$cf_cv_enable_rpath" = yes ; then
7413 EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
7415 # tested with IRIX 5.2 and 'cc'.
7416 if test "$GCC" != yes; then
7417 CC_SHARED_OPTS='-KPIC'
7418 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -rdata_shared -soname `basename $[@]` -o $[@]'
7420 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,`basename $[@]` -o $[@]'
7422 cf_cv_rm_so_locs=yes
7424 (linux*|gnu*|k*bsd*-gnu)
7425 if test "$DFT_LWR_MODEL" = "shared" && test -n "$LD_RPATH_OPT" ; then
7426 LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
7427 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
7429 if test "$cf_cv_enable_rpath" = yes ; then
7430 EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
7433 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
7436 cf_cv_shlib_version=msvcdll
7437 cf_cv_shlib_version_infix=msvcdll
7440 if test "$DFT_LWR_MODEL" = "shared" ; then
7441 LOCAL_LDFLAGS="-link -dll"
7442 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
7443 EXTRA_LDFLAGS="-link -dll $EXTRA_LDFLAGS"
7446 MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ ${LD} [$]{CFLAGS}'
7447 RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.lib"
7448 cat >mk_shared_lib.sh <<-CF_EOF
7451 IMPORT_LIB=\`echo "\[$]1" | sed -e 's/[[0-9]]*\.dll[$]/.dll.lib/'\`
7456 Linking shared library
7457 ** SHARED LIB \$SHARED_LIB
7458 ** IMPORT_LIB \$IMPORT_LIB
7460 args=\$(echo \[$]* | sed -E "s#-l(\w*)#\1.dll.lib#g" | sed -E "s#-L(\w*)#-LIBPATH:\1#g")
7461 exec \$my_ld -DLL -IMPLIB:"\${IMPORT_LIB}" -OUT:"\${SHARED_LIB}" ${LDFLAGS} \$args
7462 mv "\${IMPORT_LIB}" "\${IMPORT_LIB}"
7464 chmod +x mk_shared_lib.sh
7465 cat >mk_prog.sh <<-CF_EOF
7468 # Ignore first argument (compiler) and use LD (link.exe) unconditionally
7471 ldopts=("/subsystem:console")
7474 while test \[$]# -gt 0; do
7477 # ignore -link argument
7479 -M[[TD]] | -M[[TD]]d)
7480 # ignore runtime-library option
7495 libs+=("\`echo \"\[$]1\" | sed \"s/^-l//\"\`")
7498 ldopts+=("\`echo \"\[$]1\" | sed \"s/^-L/-LIBPATH:/\"\`")
7504 for linkarg in \`echo '\[$]1' | sed -e 's/-Wl,//' -e 's/,/ /'\`; do
7505 ldopts+=("\[$]{linkarg}")
7513 ldopts+=("-out:\[$]1")
7522 if [[ "\$isdll" -ne 0 ]]; then
7523 for lib in \[$]{libs[[*]]}; do
7524 ldopts+=("\[$]lib.dll.lib")
7527 for lib in \[$]{libs[[*]]}; do
7528 ldopts+=("\[$]lib.lib")
7533 ** ld options: "\[$]{ldopts[[@]]}"
7535 exec \[$]LD \[$]{ldopts[[@]]}
7538 LINK_PROGS="$SHELL ${rel_builddir}/mk_prog.sh"
7539 LINK_TESTS="$SHELL ${rel_builddir}/mk_prog.sh"
7542 cf_cv_shlib_version=mingw
7543 cf_cv_shlib_version_infix=mingw
7546 if test "$DFT_LWR_MODEL" = "shared" ; then
7547 LOCAL_LDFLAGS="-Wl,--enable-auto-import"
7548 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
7549 EXTRA_LDFLAGS="-Wl,--enable-auto-import $EXTRA_LDFLAGS"
7552 MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
7553 RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
7554 cat >mk_shared_lib.sh <<-CF_EOF
7557 IMPORT_LIB=\`echo "\[$]1" | sed -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
7560 Linking shared library
7561 ** SHARED_LIB \[$]SHARED_LIB
7562 ** IMPORT_LIB \[$]IMPORT_LIB
7564 exec \[$]* ${LDFLAGS} -shared -Wl,--enable-auto-import,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB}
7566 chmod +x mk_shared_lib.sh
7568 (openbsd[[2-9]].*|mirbsd*)
7569 if test "$DFT_LWR_MODEL" = "shared" && test -n "$LD_RPATH_OPT" ; then
7570 LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
7571 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
7573 if test "$cf_cv_enable_rpath" = yes ; then
7574 EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
7576 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
7578 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-Bshareable,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
7582 MK_SHARED_LIB='${LD} -Wshared -Weld=-export_all -o $[@]'
7586 MK_SHARED_LIB='${LD} -Wshared -Wxld=-export_all -o $[@]'
7588 (nto-qnx*|openbsd*|freebsd[[12]].*)
7589 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
7590 MK_SHARED_LIB='${LD} ${LDFLAGS} -Bshareable -o $[@]'
7591 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
7593 (dragonfly*|freebsd*)
7594 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
7595 if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then
7596 LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)"
7597 LOCAL_LDFLAGS2="${cf_ld_rpath_opt}\${RPATH_LIST} $LOCAL_LDFLAGS"
7598 EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
7601 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
7604 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
7605 if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then
7606 LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)"
7607 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
7608 EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
7609 if test "$cf_cv_shlib_version" = auto; then
7610 if test -f /usr/libexec/ld.elf_so; then
7611 cf_cv_shlib_version=abi
7613 cf_cv_shlib_version=rel
7617 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname' -o $[@]'
7619 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -o $[@]'
7623 # tested with OSF/1 V3.2 and 'cc'
7624 # tested with OSF/1 V3.2 and gcc 2.6.3 (but the c++ demo didn't
7625 # link with shared libs).
7626 MK_SHARED_LIB='${LD} ${LDFLAGS} -set_version ${REL_VERSION}:${ABI_VERSION} -expect_unresolved "*" -shared -soname `basename $[@]`'
7629 MK_SHARED_LIB="${MK_SHARED_LIB} -msym"
7632 MK_SHARED_LIB="${MK_SHARED_LIB}"' -o $[@]'
7633 if test "$DFT_LWR_MODEL" = "shared" && test -n "$LD_RPATH_OPT" ; then
7634 LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
7635 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
7637 cf_cv_rm_so_locs=yes
7639 (sco3.2v5*) # also uw2* and UW7: hops 13-Apr-98
7640 # tested with osr5.0.5
7641 if test "$GCC" != yes; then
7642 CC_SHARED_OPTS='-belf -KPIC'
7644 MK_SHARED_LIB='${LD} ${LDFLAGS} -dy -G -h `basename $[@] .${REL_VERSION}`.${ABI_VERSION} -o [$]@'
7645 if test "$cf_cv_enable_rpath" = yes ; then
7646 # only way is to set LD_RUN_PATH but no switch for it
7649 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
7650 LINK_PROGS='LD_RUN_PATH=${libdir}'
7651 LINK_TESTS='Pwd=`pwd`;LD_RUN_PATH=`dirname $${Pwd}`/lib'
7654 # tested with SunOS 4.1.1 and gcc 2.7.0
7655 if test "$GCC" != yes; then
7656 CC_SHARED_OPTS='-KPIC'
7658 MK_SHARED_LIB='${LD} ${LDFLAGS} -assert pure-text -o $[@]'
7659 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
7662 # tested with SunOS 5.5.1 (solaris 2.5.1) and gcc 2.7.2
7663 # tested with SunOS 5.10 (solaris 10) and gcc 3.4.3
7664 if test "$DFT_LWR_MODEL" = "shared" ; then
7665 LOCAL_LDFLAGS="-R \$(LOCAL_LIBDIR):\${libdir}"
7666 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
7668 if test "$cf_cv_enable_rpath" = yes ; then
7669 EXTRA_LDFLAGS="-R \${libdir} $EXTRA_LDFLAGS"
7672 if test "$GCC" != yes; then
7673 cf_save_CFLAGS="$CFLAGS"
7674 for cf_shared_opts in -xcode=pic32 -xcode=pic13 -KPIC -Kpic -O
7676 CFLAGS="$cf_shared_opts $cf_save_CFLAGS"
7677 AC_TRY_COMPILE([#include <stdio.h>],[printf("Hello\\n");],[break])
7679 CFLAGS="$cf_save_CFLAGS"
7680 CC_SHARED_OPTS=$cf_shared_opts
7681 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -dy -G -h '$cf_cv_shared_soname' -o $[@]'
7683 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -dy -G -h '$cf_cv_shared_soname' -o $[@]'
7686 (sysv5uw7*|unix_sv*)
7687 # tested with UnixWare 7.1.0 (gcc 2.95.2 and cc)
7688 if test "$GCC" != yes; then
7689 CC_SHARED_OPTS='-KPIC'
7691 MK_SHARED_LIB='${LD} ${LDFLAGS} -d y -G -o [$]@'
7694 CC_SHARED_OPTS='unknown'
7695 MK_SHARED_LIB='echo unknown'
7699 # This works if the last tokens in $MK_SHARED_LIB are the -o target.
7700 case "$cf_cv_shlib_version" in
7702 case "$MK_SHARED_LIB" in
7704 test "$cf_cv_do_symlinks" = no && cf_cv_do_symlinks=yes
7707 AC_MSG_WARN(ignored --with-shlib-version)
7713 if test -n "$cf_try_cflags"
7715 cat > conftest.$ac_ext <<EOF
7716 #line __oline__ "${as_me:-configure}"
7718 int main(int argc, char *argv[[]])
7721 return (argv[[argc-1]] == 0) ;
7724 cf_save_CFLAGS="$CFLAGS"
7725 for cf_opt in $cf_try_cflags
7727 CFLAGS="$cf_save_CFLAGS -$cf_opt"
7728 AC_MSG_CHECKING(if CFLAGS option -$cf_opt works)
7729 if AC_TRY_EVAL(ac_compile); then
7731 cf_save_CFLAGS="$CFLAGS"
7736 CFLAGS="$cf_save_CFLAGS"
7740 # RPATH_LIST is a colon-separated list of directories
7741 test -n "$cf_ld_rpath_opt" && MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${RPATH_LIST}"
7742 test -z "$RPATH_LIST" && RPATH_LIST="\${libdir}"
7744 test "$cf_cv_rm_so_locs" = yes && RM_SHARED_OPTS="$RM_SHARED_OPTS so_locations"
7746 CF_VERBOSE(CC_SHARED_OPTS: $CC_SHARED_OPTS)
7747 CF_VERBOSE(MK_SHARED_LIB: $MK_SHARED_LIB)
7749 AC_SUBST(CC_SHARED_OPTS)
7750 AC_SUBST(LD_RPATH_OPT)
7751 AC_SUBST(LD_SHARED_OPTS)
7752 AC_SUBST(MK_SHARED_LIB)
7753 AC_SUBST(RM_SHARED_OPTS)
7755 AC_SUBST(LINK_PROGS)
7756 AC_SUBST(LINK_TESTS)
7758 AC_SUBST(EXTRA_LDFLAGS)
7759 AC_SUBST(LOCAL_LDFLAGS)
7760 AC_SUBST(LOCAL_LDFLAGS2)
7762 AC_SUBST(INSTALL_LIB)
7763 AC_SUBST(RPATH_LIST)
7765 dnl ---------------------------------------------------------------------------
7766 dnl CF_SHARED_SONAME version: 3 updated: 2008/09/08 18:34:43
7767 dnl ----------------
7768 dnl utility macro for CF_SHARED_OPTS, constructs "$cf_cv_shared_soname" for
7769 dnl substitution into MK_SHARED_LIB string for the "-soname" (or similar)
7772 dnl $1 is the default that should be used for "$cf_cv_shlib_version".
7773 dnl If missing, use "rel".
7774 define([CF_SHARED_SONAME],
7776 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=ifelse($1,,rel,$1)
7777 if test "$cf_cv_shlib_version" = rel; then
7778 cf_cv_shared_soname='`basename $[@] .${REL_VERSION}`.${ABI_VERSION}'
7780 cf_cv_shared_soname='`basename $[@]`'
7783 dnl ---------------------------------------------------------------------------
7784 dnl CF_SIGWINCH version: 6 updated: 2021/01/01 13:31:04
7786 dnl Use this macro after CF_XOPEN_SOURCE, but do not require it (not all
7787 dnl programs need this test).
7789 dnl This is really a Mac OS X 10.4.3 workaround. Defining _POSIX_C_SOURCE
7790 dnl forces SIGWINCH to be undefined (breaks xterm, ncurses). Oddly, the struct
7791 dnl winsize declaration is left alone - we may revisit this if Apple choose to
7792 dnl break that part of the interface as well.
7793 AC_DEFUN([CF_SIGWINCH],
7795 AC_CACHE_CHECK(if SIGWINCH is defined,cf_cv_define_sigwinch,[
7797 #include <sys/types.h>
7798 #include <sys/signal.h>
7799 ],[int x = SIGWINCH; (void)x],
7800 [cf_cv_define_sigwinch=yes],
7802 #undef _XOPEN_SOURCE
7803 #undef _POSIX_SOURCE
7804 #undef _POSIX_C_SOURCE
7805 #include <sys/types.h>
7806 #include <sys/signal.h>
7807 ],[int x = SIGWINCH; (void)x],
7808 [cf_cv_define_sigwinch=maybe],
7809 [cf_cv_define_sigwinch=no])
7813 if test "$cf_cv_define_sigwinch" = maybe ; then
7814 AC_CACHE_CHECK(for actual SIGWINCH definition,cf_cv_fixup_sigwinch,[
7815 cf_cv_fixup_sigwinch=unknown
7817 while test "$cf_sigwinch" != 1
7820 #undef _XOPEN_SOURCE
7821 #undef _POSIX_SOURCE
7822 #undef _POSIX_C_SOURCE
7823 #include <sys/types.h>
7824 #include <sys/signal.h>
7826 #if SIGWINCH != $cf_sigwinch
7829 int x = SIGWINCH; (void)x],
7830 [cf_cv_fixup_sigwinch=$cf_sigwinch
7833 cf_sigwinch="`expr "$cf_sigwinch" - 1`"
7837 if test "$cf_cv_fixup_sigwinch" != unknown ; then
7838 CPPFLAGS="$CPPFLAGS -DSIGWINCH=$cf_cv_fixup_sigwinch"
7842 dnl ---------------------------------------------------------------------------
7843 dnl CF_SIG_ATOMIC_T version: 5 updated: 2020/03/10 18:53:47
7845 dnl signal handler, but there are some gcc dependencies in that recommendation.
7847 AC_DEFUN([CF_SIG_ATOMIC_T],
7849 AC_MSG_CHECKING(for signal global datatype)
7850 AC_CACHE_VAL(cf_cv_sig_atomic_t,[
7852 "volatile sig_atomic_t" \
7857 #include <sys/types.h>
7863 static void handler(int sig)
7868 [signal(SIGINT, handler);
7870 [cf_cv_sig_atomic_t=$cf_type],
7871 [cf_cv_sig_atomic_t=no])
7872 test "$cf_cv_sig_atomic_t" != no && break
7875 AC_MSG_RESULT($cf_cv_sig_atomic_t)
7876 test "$cf_cv_sig_atomic_t" != no && AC_DEFINE_UNQUOTED(SIG_ATOMIC_T, $cf_cv_sig_atomic_t,[Define to signal global datatype])
7878 dnl ---------------------------------------------------------------------------
7879 dnl CF_SIZECHANGE version: 18 updated: 2021/09/04 06:35:04
7881 dnl Check for definitions & structures needed for window size-changing
7883 dnl https://stackoverflow.com/questions/18878141/difference-between-structures-ttysize-and-winsize/50769952#50769952
7884 AC_DEFUN([CF_SIZECHANGE],
7886 AC_REQUIRE([CF_STRUCT_TERMIOS])
7887 AC_CACHE_CHECK(declaration of size-change, cf_cv_sizechange,[
7888 cf_cv_sizechange=unknown
7889 cf_save_CPPFLAGS="$CPPFLAGS"
7891 for cf_opts in "" "NEED_PTEM_H"
7894 CPPFLAGS="$cf_save_CPPFLAGS"
7895 if test -n "$cf_opts"
7897 CF_APPEND_TEXT(CPPFLAGS,-D$cf_opts)
7899 AC_TRY_COMPILE([#include <sys/types.h>
7900 #ifdef HAVE_TERMIOS_H
7901 #include <termios.h>
7903 #ifdef HAVE_TERMIO_H
7909 /* This is a workaround for SCO: they neglected to define struct winsize in
7910 * termios.h -- it is only in termio.h and ptem.h
7912 #include <sys/stream.h>
7913 #include <sys/ptem.h>
7916 #ifdef HAVE_SYS_IOCTL_H
7917 #include <sys/ioctl.h>
7921 struct ttysize win; /* SunOS 3.0... */
7922 int y = win.ts_lines = 2;
7923 int x = win.ts_cols = 1;
7928 struct winsize win; /* everything else */
7929 int y = win.ws_row = 2;
7930 int x = win.ws_col = 1;
7934 no TIOCGSIZE or TIOCGWINSZ
7935 #endif /* TIOCGWINSZ */
7936 #endif /* TIOCGSIZE */
7938 [cf_cv_sizechange=yes],
7939 [cf_cv_sizechange=no])
7941 CPPFLAGS="$cf_save_CPPFLAGS"
7942 if test "$cf_cv_sizechange" = yes ; then
7943 echo "size-change succeeded ($cf_opts)" >&AC_FD_CC
7944 test -n "$cf_opts" && cf_cv_sizechange="$cf_opts"
7949 if test "$cf_cv_sizechange" != no ; then
7950 AC_DEFINE(HAVE_SIZECHANGE,1,[Define to 1 if sizechange declarations are provided])
7951 case "$cf_cv_sizechange" in
7953 AC_DEFINE_UNQUOTED($cf_cv_sizechange )
7958 dnl ---------------------------------------------------------------------------
7959 dnl CF_SRC_MODULES version: 33 updated: 2021/01/01 13:31:04
7961 dnl For each parameter, test if the source-directory exists, and if it contains
7962 dnl a 'modules' file. If so, add to the list $cf_cv_src_modules which we'll
7963 dnl use in CF_LIB_RULES.
7965 dnl This uses the configured value to make the lists SRC_SUBDIRS and
7966 dnl SUB_MAKEFILES which are used in the makefile-generation scheme.
7967 AC_DEFUN([CF_SRC_MODULES],
7969 AC_REQUIRE([CF_CHECK_GNAT_VERSION])
7970 AC_MSG_CHECKING(for src modules)
7972 # dependencies and linker-arguments for test-programs
7973 TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEPS"
7974 TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEP2"
7975 if test "$DFT_LWR_MODEL" = "libtool"; then
7976 TEST_ARGS="${TEST_DEPS}"
7977 TEST_ARG2="${TEST_DEP2}"
7979 TEST_ARGS="-l${LIB_NAME}${USE_ARG_SUFFIX} $TEST_ARGS"
7980 TEST_ARG2="-l${LIB_NAME}${USE_ARG_SUFFIX} $TEST_ARG2"
7983 PC_MODULES_TO_MAKE="ncurses${USE_ARG_SUFFIX}"
7987 if test -f "$srcdir/$cf_dir/modules" ; then
7989 # We may/may not have tack in the distribution, though the
7991 if test "$cf_dir" = tack ; then
7992 if test "x$cf_with_tack" != "xyes"; then
7997 if test -z "$cf_cv_src_modules"; then
7998 cf_cv_src_modules=$cf_dir
8000 cf_cv_src_modules="$cf_cv_src_modules $cf_dir"
8003 # Make the ncurses_cfg.h file record the library interface files as
8004 # well. These are header files that are the same name as their
8005 # directory. Ncurses is the only library that does not follow
8007 if test "$cf_dir" = tack ; then
8009 elif test -f "$srcdir/${cf_dir}/${cf_dir}.h" ; then
8010 CF_UPPER(cf_have_include,$cf_dir)
8011 AC_DEFINE_UNQUOTED(HAVE_${cf_have_include}_H)
8012 AC_DEFINE_UNQUOTED(HAVE_LIB${cf_have_include})
8013 CF_MAP_LIB_BASENAME(TEST_ROOT,$cf_dir)
8014 TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${TEST_ROOT}${DFT_DEP_SUFFIX} $TEST_DEPS"
8015 TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${TEST_ROOT}${DFT_DEP_SUFFIX} $TEST_DEP2"
8016 if test "$DFT_LWR_MODEL" = "libtool"; then
8017 TEST_ARGS="${TEST_DEPS}"
8018 TEST_ARG2="${TEST_DEP2}"
8020 TEST_ARGS="-l${TEST_ROOT}${USE_ARG_SUFFIX} $TEST_ARGS"
8021 TEST_ARG2="-l${TEST_ROOT}${USE_ARG_SUFFIX} $TEST_ARG2"
8023 PC_MODULES_TO_MAKE="${PC_MODULES_TO_MAKE} ${cf_dir}${USE_ARG_SUFFIX}"
8027 AC_MSG_RESULT($cf_cv_src_modules)
8029 TEST_ARGS="-L${LIB_DIR} $TEST_ARGS"
8030 TEST_ARG2="-L${LIB_2ND} $TEST_ARG2"
8039 if test "x$cf_with_manpages" != xno ; then
8040 SRC_SUBDIRS="$SRC_SUBDIRS man"
8042 SRC_SUBDIRS="$SRC_SUBDIRS include"
8043 for cf_dir in $cf_cv_src_modules
8045 SRC_SUBDIRS="$SRC_SUBDIRS $cf_dir"
8047 if test "x$cf_with_tests" != "xno" ; then
8048 SRC_SUBDIRS="$SRC_SUBDIRS test"
8050 # always make this, to install the ncurses-config script
8051 SRC_SUBDIRS="$SRC_SUBDIRS misc"
8052 if test "$cf_with_cxx_binding" != no; then
8053 PC_MODULES_TO_MAKE="${PC_MODULES_TO_MAKE} ncurses++${USE_ARG_SUFFIX}"
8054 SRC_SUBDIRS="$SRC_SUBDIRS c++"
8057 test "x$with_termlib" != xno && PC_MODULES_TO_MAKE="$PC_MODULES_TO_MAKE $TINFO_ARG_SUFFIX"
8058 test "x$with_ticlib" != xno && PC_MODULES_TO_MAKE="$PC_MODULES_TO_MAKE $TICS_ARG_SUFFIX"
8060 AC_SUBST(PC_MODULES_TO_MAKE)
8063 if test "x$cf_with_ada" = "xyes" && test "x$cf_cv_prog_gnat_correct" = xyes && test -f "$srcdir/Ada95/Makefile.in" ; then
8064 SRC_SUBDIRS="$SRC_SUBDIRS Ada95"
8065 ADA_SUBDIRS="gen src"
8066 if test "x$cf_with_tests" != "xno" ; then
8067 ADA_SUBDIRS="$ADA_SUBDIRS samples"
8072 for cf_dir in $SRC_SUBDIRS
8074 SUB_MAKEFILES="$SUB_MAKEFILES $cf_dir/Makefile"
8077 if test -n "$ADA_SUBDIRS"; then
8078 for cf_dir in $ADA_SUBDIRS
8080 SUB_MAKEFILES="$SUB_MAKEFILES Ada95/$cf_dir/Makefile"
8082 AC_SUBST(ADA_SUBDIRS)
8085 dnl ---------------------------------------------------------------------------
8086 dnl CF_STDCPP_LIBRARY version: 12 updated: 2021/01/01 13:31:04
8087 dnl -----------------
8088 dnl Check for -lstdc++, which is GNU's standard C++ library.
8089 dnl If $CXXLIBS is set, add that to the libraries used for test-linking.
8090 dnl If -lstdc++ was not already added to $LIBS or $CXXLIBS, and is needed,
8091 dnl add it to $CXXLIBS.
8092 AC_DEFUN([CF_STDCPP_LIBRARY],
8094 if test -n "$GXX" ; then
8097 LIBS="$LIBS $CXXLIBS"
8098 AC_MSG_CHECKING(if we already have C++ library)
8100 #include <iostream>],[
8101 std::cout << "Hello World!" << std::endl;],
8102 [cf_have_libstdcpp=yes],
8103 [cf_have_libstdcpp=no])
8104 AC_MSG_RESULT($cf_have_libstdcpp)
8107 if test "$cf_have_libstdcpp" != yes
8109 case "$cf_cv_system_name" in
8111 if test -z "`g++ -dM -E - < /dev/null | grep __KLIBC__`"; then
8112 cf_stdcpp_libname=stdcpp
8114 cf_stdcpp_libname=stdc++
8118 cf_stdcpp_libname=stdc++
8122 AC_CACHE_CHECK(for library $cf_stdcpp_libname,cf_cv_libstdcpp,[
8124 LIBS="$LIBS $CXXLIBS"
8125 CF_ADD_LIB($cf_stdcpp_libname)
8127 #include <iostream>],[
8128 std::cout << "Hello World!" << std::endl;],
8129 [cf_cv_libstdcpp=yes],
8130 [cf_cv_libstdcpp=no])
8133 test "$cf_cv_libstdcpp" = yes && { CF_ADD_LIB($cf_stdcpp_libname,CXXLIBS) }
8137 dnl ---------------------------------------------------------------------------
8138 dnl CF_STRIP_G_OPT version: 4 updated: 2021/01/02 09:31:20
8140 dnl Remove "-g" option from the compiler options
8141 AC_DEFUN([CF_STRIP_G_OPT],
8142 [$1=`echo "${$1}" | CF__SED_TRIMBLANKS(-e 's%-g %%' -e 's%-g$%%')`])dnl
8143 dnl ---------------------------------------------------------------------------
8144 dnl CF_STRUCT_SIGACTION version: 5 updated: 2012/10/06 17:56:13
8145 dnl -------------------
8146 dnl Check if we need _POSIX_SOURCE defined to use struct sigaction. We'll only
8147 dnl do this if we've found the sigaction function.
8148 AC_DEFUN([CF_STRUCT_SIGACTION],[
8149 AC_REQUIRE([CF_XOPEN_SOURCE])
8151 if test "$ac_cv_func_sigaction" = yes; then
8152 AC_MSG_CHECKING(whether sigaction needs _POSIX_SOURCE)
8154 #include <sys/types.h>
8155 #include <signal.h>],
8156 [struct sigaction act],
8160 #define _POSIX_SOURCE
8161 #include <sys/types.h>
8162 #include <signal.h>],
8163 [struct sigaction act],
8165 AC_DEFINE(_POSIX_SOURCE,1,[Define to 1 if we must define _POSIX_SOURCE])],
8166 [sigact_bad=unknown])])
8167 AC_MSG_RESULT($sigact_bad)
8170 dnl ---------------------------------------------------------------------------
8171 dnl CF_STRUCT_TERMIOS version: 11 updated: 2020/03/19 20:46:13
8172 dnl -----------------
8173 dnl Some machines require _POSIX_SOURCE to completely define struct termios.
8174 AC_DEFUN([CF_STRUCT_TERMIOS],[
8175 AC_REQUIRE([CF_XOPEN_SOURCE])
8185 if test "$ac_cv_header_termios_h" = yes ; then
8186 case "$CFLAGS $CPPFLAGS" in
8188 termios_bad=dunno ;;
8189 (*) termios_bad=maybe ;;
8191 if test "$termios_bad" = maybe ; then
8192 AC_MSG_CHECKING(whether termios.h needs _POSIX_SOURCE)
8193 AC_TRY_COMPILE([#include <termios.h>],
8194 [struct termios foo; int x = foo.c_iflag = 1; (void)x],
8197 #define _POSIX_SOURCE
8198 #include <termios.h>],
8199 [struct termios foo; int x = foo.c_iflag = 2; (void)x],
8200 termios_bad=unknown,
8201 termios_bad=yes AC_DEFINE(_POSIX_SOURCE,1,[Define to 1 if we must define _POSIX_SOURCE]))
8203 AC_MSG_RESULT($termios_bad)
8207 dnl ---------------------------------------------------------------------------
8208 dnl CF_SUBDIR_PATH version: 7 updated: 2014/12/04 04:33:06
8210 dnl Construct a search-list for a nonstandard header/lib-file
8211 dnl $1 = the variable to return as result
8212 dnl $2 = the package name
8213 dnl $3 = the subdirectory, e.g., bin, include or lib
8214 AC_DEFUN([CF_SUBDIR_PATH],
8218 CF_ADD_SUBDIR_PATH($1,$2,$3,$prefix,NONE)
8220 for cf_subdir_prefix in \
8228 CF_ADD_SUBDIR_PATH($1,$2,$3,$cf_subdir_prefix,$prefix)
8231 dnl ---------------------------------------------------------------------------
8232 dnl CF_SUBST_IF version: 2 updated: 2006/06/17 12:33:03
8234 dnl Shorthand macro for substituting things that the user may override
8235 dnl with an environment variable.
8237 dnl $1 = condition to pass to "test"
8238 dnl $2 = environment variable
8239 dnl $3 = value if the test succeeds
8240 dnl $4 = value if the test fails
8241 AC_DEFUN([CF_SUBST_IF],
8250 dnl ---------------------------------------------------------------------------
8251 dnl CF_SUBST_NCURSES_VERSION version: 10 updated: 2021/01/04 18:48:01
8252 dnl ------------------------
8253 dnl Get the version-number for use in shared-library naming, etc.
8254 AC_DEFUN([CF_SUBST_NCURSES_VERSION],
8255 [AC_REQUIRE([AC_PROG_EGREP])dnl
8257 NCURSES_MAJOR="`${EGREP-egrep} '^NCURSES_MAJOR[[ ]]*=' "$srcdir/dist.mk" | sed -e 's/^[[^0-9]]*//'`"
8258 NCURSES_MINOR="`${EGREP-egrep} '^NCURSES_MINOR[[ ]]*=' "$srcdir/dist.mk" | sed -e 's/^[[^0-9]]*//'`"
8259 NCURSES_PATCH="`${EGREP-egrep} '^NCURSES_PATCH[[ ]]*=' "$srcdir/dist.mk" | sed -e 's/^[[^0-9]]*//'`"
8260 cf_cv_abi_version=${NCURSES_MAJOR}
8261 cf_cv_rel_version=${NCURSES_MAJOR}.${NCURSES_MINOR}
8262 dnl Show the computed version, for logging
8263 cf_cv_timestamp=`date`
8264 AC_MSG_RESULT(Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp))
8265 dnl We need these values in the generated headers
8266 AC_SUBST(NCURSES_MAJOR)
8267 AC_SUBST(NCURSES_MINOR)
8268 AC_SUBST(NCURSES_PATCH)
8269 dnl We need these values in the generated makefiles
8270 AC_SUBST(cf_cv_rel_version)
8271 AC_SUBST(cf_cv_abi_version)
8272 AC_SUBST(cf_cv_builtin_bool)
8273 AC_SUBST(cf_cv_header_stdbool_h)
8274 AC_SUBST(cf_cv_type_of_bool)dnl
8276 dnl ---------------------------------------------------------------------------
8277 dnl CF_SYS_TIME_SELECT version: 6 updated: 2015/04/18 08:56:57
8278 dnl ------------------
8279 dnl Check if we can include <sys/time.h> with <sys/select.h>; this breaks on
8280 dnl older SCO configurations.
8281 AC_DEFUN([CF_SYS_TIME_SELECT],
8283 AC_MSG_CHECKING(if sys/time.h works with sys/select.h)
8284 AC_CACHE_VAL(cf_cv_sys_time_select,[
8286 #include <sys/types.h>
8287 #ifdef HAVE_SYS_TIME_H
8288 #include <sys/time.h>
8290 #ifdef HAVE_SYS_SELECT_H
8291 #include <sys/select.h>
8293 ],[],[cf_cv_sys_time_select=yes],
8294 [cf_cv_sys_time_select=no])
8296 AC_MSG_RESULT($cf_cv_sys_time_select)
8297 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>])
8299 dnl ---------------------------------------------------------------------------
8300 dnl CF_TOP_BUILDDIR version: 2 updated: 2013/07/27 17:38:32
8302 dnl Define a top_builddir symbol, for applications that need an absolute path.
8303 AC_DEFUN([CF_TOP_BUILDDIR],
8305 top_builddir=ifelse($1,,`pwd`,$1)
8306 AC_SUBST(top_builddir)
8308 dnl ---------------------------------------------------------------------------
8309 dnl CF_TRY_PKG_CONFIG version: 6 updated: 2020/12/31 10:54:15
8310 dnl -----------------
8311 dnl This is a simple wrapper to use for pkg-config, for libraries which may be
8312 dnl available in that form.
8314 dnl $1 = package name, which may be a shell variable
8315 dnl $2 = extra logic to use, if any, after updating CFLAGS and LIBS
8316 dnl $3 = logic to use if pkg-config does not have the package
8317 AC_DEFUN([CF_TRY_PKG_CONFIG],[
8318 AC_REQUIRE([CF_PKG_CONFIG])
8320 if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists "$1"; then
8321 CF_VERBOSE(found package $1)
8322 cf_pkgconfig_incs="`$PKG_CONFIG --cflags "$1" 2>/dev/null`"
8323 cf_pkgconfig_libs="`$PKG_CONFIG --libs "$1" 2>/dev/null`"
8324 CF_VERBOSE(package $1 CFLAGS: $cf_pkgconfig_incs)
8325 CF_VERBOSE(package $1 LIBS: $cf_pkgconfig_libs)
8326 CF_ADD_CFLAGS($cf_pkgconfig_incs)
8327 CF_ADD_LIBS($cf_pkgconfig_libs)
8328 ifelse([$2],,:,[$2])
8332 ifelse([$3],,:,[$3])
8335 dnl ---------------------------------------------------------------------------
8336 dnl CF_TRY_XOPEN_SOURCE version: 3 updated: 2021/08/28 15:20:37
8337 dnl -------------------
8338 dnl If _XOPEN_SOURCE is not defined in the compile environment, check if we
8339 dnl can define it successfully.
8340 AC_DEFUN([CF_TRY_XOPEN_SOURCE],[
8341 AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[
8345 #include <sys/types.h>
8347 #ifndef _XOPEN_SOURCE
8350 [cf_cv_xopen_source=no],
8351 [cf_save="$CPPFLAGS"
8352 CF_APPEND_TEXT(CPPFLAGS,-D_XOPEN_SOURCE=$cf_XOPEN_SOURCE)
8356 #include <sys/types.h>
8358 #ifdef _XOPEN_SOURCE
8361 [cf_cv_xopen_source=no],
8362 [cf_cv_xopen_source=$cf_XOPEN_SOURCE])
8367 if test "$cf_cv_xopen_source" != no ; then
8368 CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE)
8369 CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE)
8370 cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
8371 CF_APPEND_CFLAGS($cf_temp_xopen_source)
8374 dnl ---------------------------------------------------------------------------
8375 dnl CF_TYPEOF_CHTYPE version: 10 updated: 2017/01/21 11:06:25
8376 dnl ----------------
8377 dnl Determine the type we should use for chtype (and attr_t, which is treated
8378 dnl as the same thing). We want around 32 bits, so on most machines want a
8379 dnl long, but on newer 64-bit machines, probably want an int. If we're using
8380 dnl wide characters, we have to have a type compatible with that, as well.
8381 AC_DEFUN([CF_TYPEOF_CHTYPE],
8383 AC_MSG_CHECKING([for type of chtype])
8384 AC_CACHE_VAL(cf_cv_typeof_chtype,[
8386 #define WANT_BITS 31
8390 FILE *fp = fopen("cf_test.out", "w");
8392 char *result = "long";
8393 if (sizeof(unsigned long) > sizeof(unsigned int)) {
8396 for (n = 0; n < WANT_BITS; n++) {
8399 if (y != 1 || x == 0) {
8405 * If x is nonzero, an int is big enough for the bits
8408 result = (x != 0) ? "int" : "long";
8413 ${cf_cv_main_return:-return}(0);
8416 [cf_cv_typeof_chtype=`cat cf_test.out`],
8417 [cf_cv_typeof_chtype=long],
8418 [cf_cv_typeof_chtype=long])
8421 AC_MSG_RESULT($cf_cv_typeof_chtype)
8423 AC_SUBST(cf_cv_typeof_chtype)
8424 AC_DEFINE_UNQUOTED(TYPEOF_CHTYPE,$cf_cv_typeof_chtype,[Define to actual type if needed for chtype])
8426 dnl ---------------------------------------------------------------------------
8427 dnl CF_TYPE_SIGACTION version: 4 updated: 2012/10/06 17:56:13
8428 dnl -----------------
8430 AC_DEFUN([CF_TYPE_SIGACTION],
8432 AC_MSG_CHECKING([for type sigaction_t])
8433 AC_CACHE_VAL(cf_cv_type_sigaction,[
8435 #include <signal.h>],
8437 [cf_cv_type_sigaction=yes],
8438 [cf_cv_type_sigaction=no])])
8439 AC_MSG_RESULT($cf_cv_type_sigaction)
8440 test "$cf_cv_type_sigaction" = yes && AC_DEFINE(HAVE_TYPE_SIGACTION,1,[Define to 1 if we have the sigaction_t type])
8442 dnl ---------------------------------------------------------------------------
8443 dnl CF_UNSIGNED_LITERALS version: 2 updated: 1998/02/07 22:10:16
8444 dnl --------------------
8445 dnl Test if the compiler supports 'U' and 'L' suffixes. Only old compilers
8446 dnl won't, but they're still there.
8447 AC_DEFUN([CF_UNSIGNED_LITERALS],
8449 AC_MSG_CHECKING([if unsigned literals are legal])
8450 AC_CACHE_VAL(cf_cv_unsigned_literals,[
8451 AC_TRY_COMPILE([],[long x = 1L + 1UL + 1U + 1],
8452 [cf_cv_unsigned_literals=yes],
8453 [cf_cv_unsigned_literals=no])
8455 AC_MSG_RESULT($cf_cv_unsigned_literals)
8457 dnl ---------------------------------------------------------------------------
8458 dnl CF_UPPER version: 5 updated: 2001/01/29 23:40:59
8460 dnl Make an uppercase version of a variable
8461 dnl $1=uppercase($2)
8462 AC_DEFUN([CF_UPPER],
8464 $1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
8466 dnl ---------------------------------------------------------------------------
8467 dnl CF_UTF8_LIB version: 9 updated: 2021/05/19 19:35:25
8469 dnl Check for multibyte support, and if not found, utf8 compatibility library
8470 AC_DEFUN([CF_UTF8_LIB],
8472 AC_HAVE_HEADERS(wchar.h)
8473 AC_CACHE_CHECK(for multibyte character support,cf_cv_utf8_lib,[
8474 cf_save_LIBS="$LIBS"
8482 [cf_cv_utf8_lib=yes],
8484 #include <libutf8.h>],[putwc(0,0);],utf8,
8485 [cf_cv_utf8_lib=add-on],
8486 [cf_cv_utf8_lib=no])
8489 # HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
8491 if test "$cf_cv_utf8_lib" = "add-on" ; then
8492 AC_DEFINE(HAVE_LIBUTF8_H,1,[Define to 1 if we should include libutf8.h])
8493 CF_ADD_INCDIR($cf_cv_header_path_utf8)
8494 CF_ADD_LIBDIR($cf_cv_library_path_utf8)
8495 CF_ADD_LIBS($cf_cv_library_file_utf8)
8498 dnl ---------------------------------------------------------------------------
8499 dnl CF_VA_COPY version: 6 updated: 2018/12/04 18:14:25
8501 dnl check for va_copy, part of stdarg.h starting with ISO C 1999.
8502 dnl Also, workaround for glibc's __va_copy, by checking for both.
8503 dnl Finally, try to accommodate pre-ISO C 1999 headers.
8504 AC_DEFUN([CF_VA_COPY],[
8505 AC_CACHE_CHECK(for va_copy, cf_cv_have_va_copy,[
8512 cf_cv_have_va_copy=yes,
8513 cf_cv_have_va_copy=no)])
8515 if test "$cf_cv_have_va_copy" = yes;
8517 AC_DEFINE(HAVE_VA_COPY,1,[Define to 1 if we have va_copy])
8518 else # !cf_cv_have_va_copy
8520 AC_CACHE_CHECK(for __va_copy, cf_cv_have___va_copy,[
8526 __va_copy(dst, src)],
8527 cf_cv_have___va_copy=yes,
8528 cf_cv_have___va_copy=no)])
8530 if test "$cf_cv_have___va_copy" = yes
8532 AC_DEFINE(HAVE___VA_COPY,1,[Define to 1 if we have __va_copy])
8533 else # !cf_cv_have___va_copy
8535 AC_CACHE_CHECK(for __builtin_va_copy, cf_cv_have___builtin_va_copy,[
8541 __builtin_va_copy(dst, src)],
8542 cf_cv_have___builtin_va_copy=yes,
8543 cf_cv_have___builtin_va_copy=no)])
8545 test "$cf_cv_have___builtin_va_copy" = yes &&
8546 AC_DEFINE(HAVE___BUILTIN_VA_COPY,1,[Define to 1 if we have __builtin_va_copy])
8548 fi # cf_cv_have___va_copy
8550 fi # cf_cv_have_va_copy
8552 case "${cf_cv_have_va_copy}${cf_cv_have___va_copy}${cf_cv_have___builtin_va_copy}" in
8557 AC_CACHE_CHECK(if we can simply copy va_list, cf_cv_pointer_va_list,[
8564 cf_cv_pointer_va_list=yes,
8565 cf_cv_pointer_va_list=no)])
8567 if test "$cf_cv_pointer_va_list" = no
8569 AC_CACHE_CHECK(if we can copy va_list indirectly, cf_cv_array_va_list,[
8576 cf_cv_array_va_list=yes,
8577 cf_cv_array_va_list=no)])
8578 test "$cf_cv_array_va_list" = yes && AC_DEFINE(ARRAY_VA_LIST,1,[Define to 1 if we can copy va_list indirectly])
8583 dnl ---------------------------------------------------------------------------
8584 dnl CF_VERBOSE version: 3 updated: 2007/07/29 09:55:12
8586 dnl Use AC_VERBOSE w/o the warnings
8587 AC_DEFUN([CF_VERBOSE],
8588 [test -n "$verbose" && echo " $1" 1>&AC_FD_MSG
8591 dnl ---------------------------------------------------------------------------
8592 dnl CF_VERSION_INFO version: 8 updated: 2021/01/01 13:31:04
8594 dnl Define several useful symbols derived from the VERSION file. A separate
8595 dnl file is preferred to embedding the version numbers in various scripts.
8596 dnl (automake is a textbook-example of why the latter is a bad idea, but there
8599 dnl The file contents are:
8600 dnl libtool-version release-version patch-version
8604 dnl libtool-version (see ?) consists of 3 integers separated by '.'
8605 dnl release-version consists of a major version and minor version
8606 dnl separated by '.', optionally followed by a patch-version
8607 dnl separated by '-'. The minor version need not be an
8608 dnl integer (but it is preferred).
8609 dnl patch-version is an integer in the form yyyymmdd, so ifdef's and
8610 dnl scripts can easily compare versions.
8612 dnl If libtool is used, the first form is required, since CF_WITH_LIBTOOL
8613 dnl simply extracts the first field using 'cut -f1'.
8615 dnl Optional parameters:
8616 dnl $1 = internal name for package
8617 dnl $2 = external name for package
8618 AC_DEFUN([CF_VERSION_INFO],
8620 if test -f "$srcdir/VERSION" ; then
8621 AC_MSG_CHECKING(for package version)
8623 # if there are not enough fields, cut returns the last one...
8624 cf_field1=`sed -e '2,$d' "$srcdir/VERSION" |cut -f1`
8625 cf_field2=`sed -e '2,$d' "$srcdir/VERSION" |cut -f2`
8626 cf_field3=`sed -e '2,$d' "$srcdir/VERSION" |cut -f3`
8628 # this is how CF_BUNDLED_INTL uses $VERSION:
8629 VERSION="$cf_field1"
8631 VERSION_MAJOR=`echo "$cf_field2" | sed -e 's/\..*//'`
8632 test -z "$VERSION_MAJOR" && AC_MSG_ERROR(missing major-version)
8634 VERSION_MINOR=`echo "$cf_field2" | sed -e 's/^[[^.]]*\.//' -e 's/-.*//'`
8635 test -z "$VERSION_MINOR" && AC_MSG_ERROR(missing minor-version)
8637 AC_MSG_RESULT(${VERSION_MAJOR}.${VERSION_MINOR})
8639 AC_MSG_CHECKING(for package patch date)
8640 VERSION_PATCH=`echo "$cf_field3" | sed -e 's/^[[^-]]*-//'`
8641 case .$VERSION_PATCH in
8643 AC_MSG_ERROR(missing patch-date $VERSION_PATCH)
8645 (.[[0-9]][[0-9]][[0-9]][[0-9]][[0-9]][[0-9]][[0-9]][[0-9]])
8648 AC_MSG_ERROR(illegal patch-date $VERSION_PATCH)
8651 AC_MSG_RESULT($VERSION_PATCH)
8653 AC_MSG_ERROR(did not find $srcdir/VERSION)
8656 # show the actual data that we have for versions:
8657 CF_VERBOSE(ABI VERSION $VERSION)
8658 CF_VERBOSE(VERSION_MAJOR $VERSION_MAJOR)
8659 CF_VERBOSE(VERSION_MINOR $VERSION_MINOR)
8660 CF_VERBOSE(VERSION_PATCH $VERSION_PATCH)
8663 AC_SUBST(VERSION_MAJOR)
8664 AC_SUBST(VERSION_MINOR)
8665 AC_SUBST(VERSION_PATCH)
8667 dnl if a package name is given, define its corresponding version info. We
8668 dnl need the package name to ensure that the defined symbols are unique.
8671 PACKAGE=ifelse($2,,$1,$2)
8672 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE",[Define to the package-name])
8674 CF_UPPER(cf_PACKAGE,$cf_PACKAGE)
8675 AC_DEFINE_UNQUOTED(${cf_PACKAGE}_VERSION,"${VERSION_MAJOR}.${VERSION_MINOR}")
8676 AC_DEFINE_UNQUOTED(${cf_PACKAGE}_PATCHDATE,${VERSION_PATCH})
8679 dnl ---------------------------------------------------------------------------
8680 dnl CF_WCHAR_TYPE version: 4 updated: 2012/10/06 16:39:58
8682 dnl Check if type wide-character type $1 is declared, and if so, which header
8683 dnl file is needed. The second parameter is used to set a shell variable when
8684 dnl the type is not found. The first parameter sets a shell variable for the
8686 AC_DEFUN([CF_WCHAR_TYPE],
8688 # This is needed on Tru64 5.0 to declare $1
8689 AC_CACHE_CHECK(if we must include wchar.h to declare $1,cf_cv_$1,[
8694 #ifdef HAVE_LIBUTF8_H
8695 #include <libutf8.h>
8704 #ifdef HAVE_LIBUTF8_H
8705 #include <libutf8.h>
8709 [cf_cv_$1=unknown])])])
8711 if test "$cf_cv_$1" = yes ; then
8712 AC_DEFINE(NEED_WCHAR_H,1,[Define to 1 if we must include wchar.h])
8717 # if we do not find $1 in either place, use substitution to provide a fallback.
8718 if test "$cf_cv_$1" = unknown ; then
8723 # if we find $1 in either place, use substitution to provide a fallback.
8724 if test "$cf_cv_$1" != unknown ; then
8729 dnl ---------------------------------------------------------------------------
8730 dnl CF_WEAK_SYMBOLS version: 1 updated: 2008/08/16 19:18:06
8732 dnl Check for compiler-support for weak symbols.
8733 dnl This works with "recent" gcc.
8734 AC_DEFUN([CF_WEAK_SYMBOLS],[
8735 AC_CACHE_CHECK(if $CC supports weak symbols,cf_cv_weak_symbols,[
8738 #include <stdio.h>],
8740 #if defined(__GNUC__)
8741 # if defined __USE_ISOC99
8742 # define _cat_pragma(exp) _Pragma(#exp)
8743 # define _weak_pragma(exp) _cat_pragma(weak name)
8745 # define _weak_pragma(exp)
8747 # define _declare(name) __extension__ extern __typeof__(name) name
8748 # define weak_symbol(name) _weak_pragma(name) _declare(name) __attribute__((weak))
8752 ],[cf_cv_weak_symbols=yes],[cf_cv_weak_symbols=no])
8755 dnl ---------------------------------------------------------------------------
8756 dnl CF_WITH_ABI_VERSION version: 4 updated: 2021/01/01 13:31:04
8757 dnl -------------------
8758 dnl Allow library's ABI to be overridden. Generally this happens when a
8759 dnl packager has incremented the ABI past that used in the original package,
8760 dnl and wishes to keep doing this.
8762 dnl $1 is the package name, if any, to derive a corresponding {package}_ABI
8764 AC_DEFUN([CF_WITH_ABI_VERSION],[
8765 test -z "$cf_cv_abi_version" && cf_cv_abi_version=0
8766 AC_ARG_WITH(abi-version,
8767 [ --with-abi-version=XXX override derived ABI version],[
8768 if test "x$cf_cv_abi_version" != "x$withval"
8770 AC_MSG_WARN(overriding ABI version $cf_cv_abi_version to $withval)
8771 case "$cf_cv_rel_version" in
8773 cf_cv_rel_version=$withval.0
8776 cf_cv_rel_version=$withval.9 # FIXME: should be 10 as of 6.0 release
8780 cf_cv_abi_version=$withval])
8781 CF_NUMBER_SYNTAX($cf_cv_abi_version,ABI version)
8783 $1_ABI=$cf_cv_abi_version
8786 dnl ---------------------------------------------------------------------------
8787 dnl CF_WITH_ADA_COMPILER version: 2 updated: 2010/06/26 17:35:58
8788 dnl --------------------
8789 dnl Command-line option to specify the Ada95 compiler.
8790 AC_DEFUN([CF_WITH_ADA_COMPILER],[
8791 AC_MSG_CHECKING(for ada-compiler)
8792 AC_ARG_WITH(ada-compiler,
8793 [ --with-ada-compiler=CMD specify Ada95 compiler command (default gnatmake)],
8794 [cf_ada_compiler=$withval],
8795 [cf_ada_compiler=gnatmake])
8796 AC_SUBST(cf_ada_compiler)
8797 AC_MSG_RESULT($cf_ada_compiler)
8799 dnl ---------------------------------------------------------------------------
8800 dnl CF_WITH_ADA_INCLUDE version: 2 updated: 2010/06/26 17:35:58
8801 dnl -------------------
8802 dnl Command-line option to specify where Ada includes will install.
8803 AC_DEFUN([CF_WITH_ADA_INCLUDE],[
8804 AC_MSG_CHECKING(for ada-include)
8805 CF_WITH_PATH(ada-include,
8806 [ --with-ada-include=DIR Ada includes are in DIR],
8808 PREFIX/share/ada/adainclude,
8809 [$]prefix/share/ada/adainclude)
8810 AC_SUBST(ADA_INCLUDE)
8811 AC_MSG_RESULT($ADA_INCLUDE)
8813 dnl ---------------------------------------------------------------------------
8814 dnl CF_WITH_ADA_LIBNAME version: 1 updated: 2019/09/07 18:59:41
8815 dnl -------------------
8816 dnl CF_WITH_ADA_LIBNAME
8817 dnl -------------------
8818 dnl Command-line option to specify how to name the resulting Ada library.
8819 dnl $1 = default value
8820 AC_DEFUN([CF_WITH_ADA_LIBNAME],[
8821 AC_MSG_CHECKING(for ada-libname)
8822 AC_ARG_WITH(ada-libname,
8823 [ --with-ada-libname=XXX override default Ada library-name],
8824 ADA_LIBNAME=[$]withval,
8826 case "x$ADA_LIBNAME" in
8831 AC_SUBST(ADA_LIBNAME)
8832 AC_MSG_RESULT($ADA_LIBNAME)
8834 dnl ---------------------------------------------------------------------------
8835 dnl CF_WITH_ADA_OBJECTS version: 2 updated: 2010/06/26 17:35:58
8836 dnl -------------------
8837 dnl Command-line option to specify where Ada objects will install.
8838 AC_DEFUN([CF_WITH_ADA_OBJECTS],[
8839 AC_MSG_CHECKING(for ada-objects)
8840 CF_WITH_PATH(ada-objects,
8841 [ --with-ada-objects=DIR Ada objects are in DIR],
8843 PREFIX/lib/ada/adalib,
8844 [$]prefix/lib/ada/adalib)
8845 AC_SUBST(ADA_OBJECTS)
8846 AC_MSG_RESULT($ADA_OBJECTS)
8848 dnl ---------------------------------------------------------------------------
8849 dnl CF_WITH_ADA_SHAREDLIB version: 5 updated: 2018/07/21 19:10:35
8850 dnl ---------------------
8851 dnl Command-line option to specify if an Ada95 shared-library should be built,
8852 dnl and optionally what its soname should be.
8853 AC_DEFUN([CF_WITH_ADA_SHAREDLIB],[
8854 AC_REQUIRE([CF_GNAT_PROJECTS])
8855 AC_MSG_CHECKING(if an Ada95 shared-library should be built)
8856 AC_ARG_WITH(ada-sharedlib,
8857 [ --with-ada-sharedlib=soname build shared-library (requires GNAT projects)],
8858 [with_ada_sharedlib=$withval],
8859 [with_ada_sharedlib=no])
8860 AC_MSG_RESULT($with_ada_sharedlib)
8862 if test "x$with_ada_sharedlib" != xno
8864 if test "x$cf_gnat_projects" != xyes
8866 AC_MSG_WARN(disabling shared-library since GNAT projects are not supported)
8867 with_ada_sharedlib=no
8871 ADA_SHAREDLIB='lib$(LIB_NAME).so.1'
8872 MAKE_ADA_SHAREDLIB="#"
8874 if test "x$with_ada_sharedlib" != xno
8877 if test "x$with_ada_sharedlib" != xyes
8879 ADA_SHAREDLIB="$with_ada_sharedlib"
8883 AC_SUBST(ADA_SHAREDLIB)
8884 AC_SUBST(MAKE_ADA_SHAREDLIB)
8886 dnl ---------------------------------------------------------------------------
8887 dnl CF_WITH_DBMALLOC version: 7 updated: 2010/06/21 17:26:47
8888 dnl ----------------
8889 dnl Configure-option for dbmalloc. The optional parameter is used to override
8890 dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
8891 AC_DEFUN([CF_WITH_DBMALLOC],[
8892 CF_NO_LEAKS_OPTION(dbmalloc,
8893 [ --with-dbmalloc test: use Conor Cahill's dbmalloc library],
8896 if test "$with_dbmalloc" = yes ; then
8897 AC_CHECK_HEADER(dbmalloc.h,
8898 [AC_CHECK_LIB(dbmalloc,[debug_malloc]ifelse([$1],,[],[,$1]))])
8901 dnl ---------------------------------------------------------------------------
8902 dnl CF_WITH_DMALLOC version: 7 updated: 2010/06/21 17:26:47
8904 dnl Configure-option for dmalloc. The optional parameter is used to override
8905 dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
8906 AC_DEFUN([CF_WITH_DMALLOC],[
8907 CF_NO_LEAKS_OPTION(dmalloc,
8908 [ --with-dmalloc test: use Gray Watson's dmalloc library],
8911 if test "$with_dmalloc" = yes ; then
8912 AC_CHECK_HEADER(dmalloc.h,
8913 [AC_CHECK_LIB(dmalloc,[dmalloc_debug]ifelse([$1],,[],[,$1]))])
8916 dnl ---------------------------------------------------------------------------
8917 dnl CF_WITH_EXPORT_SYMS version: 3 updated: 2014/12/20 19:16:08
8918 dnl -------------------
8919 dnl Use this with libtool to specify the list of symbols that may be exported.
8920 dnl The input file contains one symbol per line; comments work with "#".
8922 dnl $1 = basename of the ".sym" file (default $PACKAGE)
8923 AC_DEFUN([CF_WITH_EXPORT_SYMS],
8925 AC_MSG_CHECKING(if exported-symbols file should be used)
8926 AC_ARG_WITH(export-syms,
8927 [ --with-export-syms=XXX limit exported symbols using libtool],
8928 [with_export_syms=$withval],
8929 [with_export_syms=no])
8930 if test "x$with_export_syms" = xyes
8932 with_export_syms='${top_srcdir}/package/ifelse($1,,${PACKAGE},[$1]).sym'
8935 AC_MSG_RESULT($with_export_syms)
8936 if test "x$with_export_syms" != xno
8938 EXPORT_SYMS="-export-symbols $with_export_syms"
8939 AC_SUBST(EXPORT_SYMS)
8942 dnl ---------------------------------------------------------------------------
8943 dnl CF_WITH_GPM version: 10 updated: 2017/04/29 18:32:18
8946 dnl The option parameter (if neither yes/no) is assumed to be the name of
8947 dnl the gpm library, e.g., for dynamic loading.
8948 AC_DEFUN([CF_WITH_GPM],
8950 AC_MSG_CHECKING(if you want to link with the GPM mouse library)
8952 [ --with-gpm use Alessandro Rubini's GPM library],
8953 [with_gpm=$withval],
8955 AC_MSG_RESULT($with_gpm)
8957 if test "$with_gpm" != no ; then
8958 AC_CHECK_HEADER(gpm.h,[
8959 AC_DEFINE(HAVE_GPM_H,1,[Define to 1 if we have gpm.h header])
8960 if test "$with_gpm" != yes && test "$with_gpm" != maybe ; then
8961 CF_VERBOSE(assuming we really have GPM library)
8962 AC_DEFINE(HAVE_LIBGPM,1,[Define to 1 if we have the gpm library])
8965 AC_CHECK_LIB(gpm,Gpm_Open,[with_gpm=yes],[
8966 if test "$with_gpm" = maybe; then
8967 AC_MSG_WARN(Cannot link with GPM library)
8970 AC_MSG_ERROR(Cannot link with GPM library)
8975 test "$with_gpm" != maybe && AC_MSG_WARN(Cannot find GPM header)
8980 dnl ---------------------------------------------------------------------------
8981 dnl CF_WITH_LIBTOOL version: 36 updated: 2021/01/01 13:31:04
8983 dnl Provide a configure option to incorporate libtool. Define several useful
8984 dnl symbols for the makefile rules.
8986 dnl The reference to AC_PROG_LIBTOOL does not normally work, since it uses
8987 dnl macros from libtool.m4 which is in the aclocal directory of automake.
8988 dnl Following is a simple script which turns on the AC_PROG_LIBTOOL macro.
8989 dnl But that still does not work properly since the macro is expanded outside
8990 dnl the CF_WITH_LIBTOOL macro:
8993 dnl ACLOCAL=`aclocal --print-ac-dir`
8994 dnl if test -z "$ACLOCAL" ; then
8995 dnl echo cannot find aclocal directory
8997 dnl elif test ! -f $ACLOCAL/libtool.m4 ; then
8998 dnl echo cannot find libtool.m4 file
9002 dnl LOCAL=aclocal.m4
9003 dnl ORIG=aclocal.m4.orig
9005 dnl trap "mv $ORIG $LOCAL" 0 1 2 3 15
9009 dnl # sed the LIBTOOL= assignment to omit the current directory?
9010 dnl sed -e 's/^LIBTOOL=.*/LIBTOOL=${LIBTOOL:-libtool}/' $ACLOCAL/libtool.m4 >>$LOCAL
9011 dnl cat $ORIG >>$LOCAL
9015 AC_DEFUN([CF_WITH_LIBTOOL],
9017 AC_REQUIRE([CF_DISABLE_LIBTOOL_VERSION])
9018 ifdef([AC_PROG_LIBTOOL],,[
9021 # common library maintenance symbols that are convenient for libtool scripts:
9022 LIB_CREATE='${AR} -cr'
9023 LIB_OBJECT='${OBJECTS}'
9027 # symbols used to prop libtool up to enable it to determine what it should be
9035 AC_MSG_CHECKING(if you want to build libraries with libtool)
9036 AC_ARG_WITH(libtool,
9037 [ --with-libtool generate libraries with libtool],
9038 [with_libtool=$withval],
9040 AC_MSG_RESULT($with_libtool)
9041 if test "$with_libtool" != "no"; then
9042 ifdef([AC_PROG_LIBTOOL],[
9043 # missing_content_AC_PROG_LIBTOOL{{
9045 # missing_content_AC_PROG_LIBTOOL}}
9047 if test "$with_libtool" != "yes" ; then
9048 CF_PATH_SYNTAX(with_libtool)
9049 LIBTOOL=$with_libtool
9051 AC_CHECK_TOOLS(LIBTOOL,[libtool glibtool],none)
9053 if test -z "$cf_cv_libtool_version" && test "$LIBTOOL" = libtool
9055 CF_FORGET_TOOL(LIBTOOL)
9056 AC_CHECK_TOOLS(LIBTOOL,[glibtool],none)
9060 if test -z "$LIBTOOL" ; then
9061 AC_MSG_ERROR(Cannot find libtool)
9064 LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${libdir} ${LIBTOOL_VERSION} `cut -f1 ${top_srcdir}/VERSION` ${LIBTOOL_OPTS} ${LT_UNDEF} $(LIBS) -o'
9065 LIB_OBJECT='${OBJECTS:.o=.lo}'
9067 LIB_CLEAN='${LIBTOOL} --mode=clean'
9068 LIB_COMPILE='${LIBTOOL} --mode=compile'
9069 LIB_LINK='${LIBTOOL} --mode=link ${CC} ${LIBTOOL_OPTS}'
9070 LIB_INSTALL='${LIBTOOL} --mode=install'
9071 LIB_UNINSTALL='${LIBTOOL} --mode=uninstall'
9074 CF_CHECK_LIBTOOL_VERSION
9076 # special hack to add -no-undefined (which libtool should do for itself)
9078 case "$cf_cv_system_name" in
9079 (cygwin*|msys*|mingw32*|os2*|uwin*|aix[[4-7]])
9080 LT_UNDEF=-no-undefined
9083 AC_SUBST([LT_UNDEF])
9085 # special hack to add --tag option for C++ compiler
9086 case "$cf_cv_libtool_version" in
9087 (1.[[5-9]]*|[[2-9]].[[0-9.a-z]]*)
9088 LIBTOOL_CXX="$LIBTOOL --tag=CXX"
9089 LIBTOOL="$LIBTOOL --tag=CC"
9092 LIBTOOL_CXX="$LIBTOOL"
9100 test -z "$LIBTOOL" && ECHO_LT=
9103 AC_SUBST(LIBTOOL_CXX)
9104 AC_SUBST(LIBTOOL_OPTS)
9106 AC_SUBST(LIB_CREATE)
9107 AC_SUBST(LIB_OBJECT)
9108 AC_SUBST(LIB_SUFFIX)
9112 AC_SUBST(LIB_COMPILE)
9114 AC_SUBST(LIB_INSTALL)
9115 AC_SUBST(LIB_UNINSTALL)
9118 dnl ---------------------------------------------------------------------------
9119 dnl CF_WITH_LIBTOOL_OPTS version: 4 updated: 2015/04/17 21:13:04
9120 dnl --------------------
9121 dnl Allow user to pass additional libtool options into the library creation
9122 dnl and link steps. The main use for this is to do something like
9123 dnl ./configure --with-libtool-opts=-static
9124 dnl to get the same behavior as automake-flavored
9125 dnl ./configure --enable-static
9126 AC_DEFUN([CF_WITH_LIBTOOL_OPTS],[
9127 AC_MSG_CHECKING(for additional libtool options)
9128 AC_ARG_WITH(libtool-opts,
9129 [ --with-libtool-opts=XXX specify additional libtool options],
9130 [with_libtool_opts=$withval],
9131 [with_libtool_opts=no])
9132 AC_MSG_RESULT($with_libtool_opts)
9134 case .$with_libtool_opts in
9138 LIBTOOL_OPTS="$LIBTOOL_OPTS $with_libtool_opts"
9142 AC_SUBST(LIBTOOL_OPTS)
9144 dnl ---------------------------------------------------------------------------
9145 dnl CF_WITH_LIB_BASENAME version: 1 updated: 2020/03/07 20:05:14
9146 dnl --------------------
9147 dnl Allow for overriding the basename of a library, i.e., the part to which
9148 dnl prefixes/suffixes are attached.
9150 dnl $1 = variable to set
9151 dnl $2 = option name
9152 dnl $3 = default basename for library, if omitted use $2
9153 AC_DEFUN([CF_WITH_LIB_BASENAME],
9155 AC_MSG_CHECKING(for desired basename for $2 library)
9156 AC_ARG_WITH($2-libname,
9157 [ --with-$2-libname=XXX override ifelse($3,,$2,$3) basename of library],
9158 [with_lib_basename=$withval],
9159 [with_lib_basename=ifelse($3,,$2,$3)])
9160 $1="$with_lib_basename"
9164 $1=ifelse($3,,$2,$3)
9170 AC_MSG_RESULT([$]$1)
9173 dnl ---------------------------------------------------------------------------
9174 dnl CF_WITH_LIB_PREFIX version: 2 updated: 2021/01/01 16:53:59
9175 dnl ------------------
9176 dnl Allow the library-prefix to be overridden. OS/2 EMX originally had no
9177 dnl "lib" prefix, e.g., because it used the dll naming convention.
9179 dnl $1 = variable to set
9180 AC_DEFUN([CF_WITH_LIB_PREFIX],
9182 AC_MSG_CHECKING(if you want to have a library-prefix)
9183 AC_ARG_WITH(lib-prefix,
9184 [ --with-lib-prefix override library-prefix],
9185 [with_lib_prefix=$withval],
9186 [with_lib_prefix=auto])
9187 AC_MSG_RESULT($with_lib_prefix)
9189 if test "$with_lib_prefix" = auto
9192 elif test "$with_lib_prefix" = no
9196 LIB_PREFIX=$with_lib_prefix
9199 dnl ---------------------------------------------------------------------------
9200 dnl CF_WITH_PATH version: 12 updated: 2021/09/04 06:35:04
9202 dnl Wrapper for AC_ARG_WITH to ensure that user supplies a pathname, not just
9203 dnl defaulting to yes/no.
9205 dnl $1 = option name
9207 dnl $3 = environment variable to set
9208 dnl $4 = default value, shown in the help-message, must be a constant
9209 dnl $5 = default value, if it is an expression & cannot be in the help-message
9211 AC_DEFUN([CF_WITH_PATH],
9212 [AC_ARG_WITH($1,[$2 ](default: ifelse([$4],,empty,[$4])),,
9213 ifelse([$4],,[withval="${$3}"],[withval="${$3:-ifelse([$5],,[$4],[$5])}"]))dnl
9214 if ifelse([$5],,true,[test -n "$5"]) ; then
9215 CF_PATH_SYNTAX(withval)
9220 dnl ---------------------------------------------------------------------------
9221 dnl CF_WITH_PATHLIST version: 13 updated: 2021/09/04 06:35:04
9222 dnl ----------------
9223 dnl Process an option specifying a list of colon-separated paths.
9225 dnl $1 = option name
9227 dnl $3 = environment variable to set
9228 dnl $4 = default value, shown in the help-message, must be a constant
9229 dnl $5 = default value, if it is an expression & cannot be in the help-message
9230 dnl $6 = flag to tell if we want to define or substitute
9232 AC_DEFUN([CF_WITH_PATHLIST],[
9233 AC_REQUIRE([CF_PATHSEP])
9234 AC_ARG_WITH($1,[$2 ](default: ifelse($4,,empty,$4)),,
9235 ifelse($4,,[withval=${$3}],[withval=${$3:-ifelse($5,,$4,$5)}]))dnl
9237 IFS="${IFS:- }"; ac_save_ifs="$IFS"; IFS="${PATH_SEPARATOR}"
9239 for cf_src_path in $withval
9241 CF_PATH_SYNTAX(cf_src_path)
9242 test -n "$cf_dst_path" && cf_dst_path="${cf_dst_path}$PATH_SEPARATOR"
9243 cf_dst_path="${cf_dst_path}${cf_src_path}"
9248 # Strip single quotes from the value, e.g., when it was supplied as a literal
9250 case "$cf_dst_path" in
9252 cf_dst_path="`echo "$cf_dst_path" |sed -e s/\'// -e s/\'\$//`"
9255 cf_dst_path=`echo "$cf_dst_path" | sed -e 's/\\\\/\\\\\\\\/g'`
9258 # This may use the prefix/exec_prefix symbols which will only yield "NONE"
9259 # so we have to check/work around. We do prefer the result of "eval"...
9260 eval cf_dst_eval="$cf_dst_path"
9261 case "x$cf_dst_eval" in
9272 dnl ---------------------------------------------------------------------------
9273 dnl CF_WITH_PATH_PROG version: 1 updated: 2019/06/30 19:44:43
9274 dnl -----------------
9275 dnl Check for a given program, like CF_PATH_PROG, but allow override using a
9276 dnl "--with-xxx" option.
9279 dnl $1 = environment variable to set/update
9280 dnl $2 = program name
9283 AC_DEFUN([CF_WITH_PATH_PROG],[
9284 AC_ARG_WITH($2-path,
9285 [ --with-$2-path=XXX specify path of $2 ifelse($3,,,$3)],
9286 [AC_MSG_CHECKING(for $2 program ifelse($3,,,$3))
9288 AC_MSG_RESULT([$]$1)
9291 [CF_PATH_PROG($1,$2,,ifelse($4,,,$4))
9294 AC_MSG_WARN(no $2 program found ifelse($3,,,$3))
9298 dnl ---------------------------------------------------------------------------
9299 dnl CF_WITH_PCRE2 version: 6 updated: 2021/08/11 20:35:34
9301 dnl Add PCRE2 (Perl-compatible regular expressions v2) to the build if it is
9302 dnl available and the user requests it. Assume the application will otherwise
9303 dnl use the POSIX interface.
9305 dnl TODO allow $withval to specify package location
9306 AC_DEFUN([CF_WITH_PCRE2],
9308 AC_REQUIRE([CF_PKG_CONFIG])
9310 AC_MSG_CHECKING(if you want to use PCRE2 for regular-expressions)
9312 [ --with-pcre2 use PCRE2 for regular-expressions])
9313 test -z "$with_pcre2" && with_pcre2=no
9314 AC_MSG_RESULT($with_pcre2)
9316 if test "x$with_pcre2" != xno ; then
9318 for cf_with_pcre2 in libpcre2 libpcre2-posix libpcre
9320 CF_TRY_PKG_CONFIG($cf_with_pcre2,[cf_with_pcre2_ok=yes; break])
9322 cf_with_pcre2_ok=yes || AC_MSG_ERROR(Cannot find PCRE2 library)
9324 AC_DEFINE(HAVE_LIB_PCRE2,1,[Define to 1 if we can/should compile with the PCRE2 library])
9326 # if pkgconfig gave no results, look for the libraries directly
9328 (*pcre2-posix*|*pcreposix*)
9331 AC_CHECK_LIB(pcre2-posix,regcomp,[
9332 CF_ADD_LIB(pcre2-posix)],
9333 [AC_CHECK_LIB(pcreposix,regcomp,[
9334 CF_ADD_LIB(pcreposix)
9335 ],[AC_MSG_ERROR(Cannot find PCRE2 POSIX library)])])
9339 # either way, check for the library header files
9340 AC_CHECK_HEADERS(pcre2posix.h pcreposix.h)
9341 AC_CHECK_FUNCS(PCRE2regcomp)
9344 dnl ---------------------------------------------------------------------------
9345 dnl CF_WITH_PKG_CONFIG_LIBDIR version: 20 updated: 2022/01/29 17:03:42
9346 dnl -------------------------
9347 dnl Allow the choice of the pkg-config library directory to be overridden.
9349 dnl pkg-config uses a search-list built from these colon-separated lists of
9351 dnl a) $PKG_CONFIG_PATH (tested first, added if set)
9352 dnl b) $PKG_CONFIG_LIBDIR (tested second, added if set)
9353 dnl c) builtin-list (added if $PKG_CONFIG_LIBDIR is not set)
9355 dnl pkgconf (used with some systems such as FreeBSD in place of pkg-config)
9356 dnl optionally ignores $PKG_CONFIG_LIBDIR.
9357 AC_DEFUN([CF_WITH_PKG_CONFIG_LIBDIR],[
9359 case "$PKG_CONFIG" in
9361 AC_MSG_CHECKING(for pkg-config library directory)
9364 AC_MSG_CHECKING(for $PKG_CONFIG library directory)
9368 # if $PKG_CONFIG_LIBDIR is set, try to use that
9369 cf_search_path=`echo "$PKG_CONFIG_LIBDIR" | sed -e 's/:/ /g' -e 's,^[[ ]]*,,'`
9371 # if the option is used, let that override. otherwise default to "libdir"
9372 AC_ARG_WITH(pkg-config-libdir,
9373 [ --with-pkg-config-libdir=XXX use given directory for installing pc-files],
9374 [cf_search_path=$withval],
9375 [test "x$PKG_CONFIG" != xnone && test -z "$cf_search_path" && cf_search_path=libdir])
9377 case "x$cf_search_path" in
9379 PKG_CONFIG_LIBDIR='${libdir}/pkgconfig'
9380 AC_MSG_RESULT($PKG_CONFIG_LIBDIR)
9389 PKG_CONFIG_LIBDIR="$cf_search_path"
9390 AC_MSG_RESULT($PKG_CONFIG_LIBDIR)
9396 # Look for the library directory using the same prefix as the executable
9397 AC_MSG_CHECKING(for search-list)
9398 if test "x$PKG_CONFIG" != xnone
9400 # works for pkg-config since version 0.24 (2009)
9401 # works for pkgconf since version 0.8.3 (2012)
9402 for cf_pkg_program in \
9403 `echo "$PKG_CONFIG" | sed -e 's,^.*/,,'` \
9407 cf_search_path=`"$PKG_CONFIG" --variable=pc_path "$cf_pkg_program" 2>/dev/null | tr : ' '`
9408 test -n "$cf_search_path" && break
9411 # works for pkg-config since import in 2005 of original 2001 HP code.
9412 test -z "$cf_search_path" && \
9414 "$PKG_CONFIG" --debug --exists no-such-package 2>&1 | $AWK "\
9415 /^Scanning directory (#[1-9][0-9]* )?'.*'$/{ \
9416 sub(\"^[[^']]*'\",\"\"); \
9417 sub(\"'.*\",\"\"); \
9418 printf \" %s\", \\[$]0; } \
9423 AC_MSG_RESULT($cf_search_path)
9426 AC_MSG_ERROR(Unexpected option value: $cf_search_path)
9430 if test -n "$cf_search_path"
9432 AC_MSG_CHECKING(for first directory)
9433 cf_pkg_config_path=none
9434 for cf_config in $cf_search_path
9436 if test -d "$cf_config"
9438 cf_pkg_config_path=$cf_config
9442 AC_MSG_RESULT($cf_pkg_config_path)
9444 if test "x$cf_pkg_config_path" != xnone ; then
9445 # limit this to the first directory found
9446 PKG_CONFIG_LIBDIR="$cf_pkg_config_path"
9449 if test -z "$PKG_CONFIG_LIBDIR" && test -n "$cf_search_path"
9451 AC_MSG_CHECKING(for workaround)
9452 if test "$prefix" = "NONE" ; then
9453 cf_prefix="$ac_default_prefix"
9457 eval cf_libdir=$libdir
9458 cf_libdir=`echo "$cf_libdir" | sed -e "s,^NONE,$cf_prefix,"`
9460 for cf_config in $cf_search_path
9463 $cf_libdir/pkgconfig)
9464 PKG_CONFIG_LIBDIR=$cf_libdir/pkgconfig
9468 test -z "$cf_backup" && cf_backup=$cf_config
9472 test -z "$PKG_CONFIG_LIBDIR" && PKG_CONFIG_LIBDIR=$cf_backup
9473 AC_MSG_RESULT($PKG_CONFIG_LIBDIR)
9477 AC_SUBST(PKG_CONFIG_LIBDIR)
9479 dnl ---------------------------------------------------------------------------
9480 dnl CF_WITH_PTHREAD version: 7 updated: 2015/04/18 08:56:57
9482 dnl Check for POSIX thread library.
9483 AC_DEFUN([CF_WITH_PTHREAD],
9485 AC_MSG_CHECKING(if you want to link with the pthread library)
9486 AC_ARG_WITH(pthread,
9487 [ --with-pthread use POSIX thread library],
9488 [with_pthread=$withval],
9490 AC_MSG_RESULT($with_pthread)
9492 if test "$with_pthread" != no ; then
9493 AC_CHECK_HEADER(pthread.h,[
9494 AC_DEFINE(HAVE_PTHREADS_H,1,[Define to 1 if we have pthreads.h header])
9496 for cf_lib_pthread in pthread c_r
9498 AC_MSG_CHECKING(if we can link with the $cf_lib_pthread library)
9499 cf_save_LIBS="$LIBS"
9500 CF_ADD_LIB($cf_lib_pthread)
9502 #include <pthread.h>
9504 int rc = pthread_create(0,0,0,0);
9505 int r2 = pthread_mutexattr_settype(0, 0);
9506 ],[with_pthread=yes],[with_pthread=no])
9507 LIBS="$cf_save_LIBS"
9508 AC_MSG_RESULT($with_pthread)
9509 test "$with_pthread" = yes && break
9512 if test "$with_pthread" = yes ; then
9513 CF_ADD_LIB($cf_lib_pthread)
9514 AC_DEFINE(HAVE_LIBPTHREADS,1,[Define to 1 if we have pthreads library])
9516 AC_MSG_ERROR(Cannot link with pthread library)
9521 dnl ---------------------------------------------------------------------------
9522 dnl CF_WITH_REL_VERSION version: 1 updated: 2003/09/20 18:12:49
9523 dnl -------------------
9524 dnl Allow library's release-version to be overridden. Generally this happens when a
9525 dnl packager has incremented the release-version past that used in the original package,
9526 dnl and wishes to keep doing this.
9528 dnl $1 is the package name, if any, to derive corresponding {package}_MAJOR
9529 dnl and {package}_MINOR symbols
9531 AC_DEFUN([CF_WITH_REL_VERSION],[
9532 test -z "$cf_cv_rel_version" && cf_cv_rel_version=0.0
9533 AC_ARG_WITH(rel-version,
9534 [ --with-rel-version=XXX override derived release version],
9535 [AC_MSG_WARN(overriding release version $cf_cv_rel_version to $withval)
9536 cf_cv_rel_version=$withval])
9538 CF_NUMBER_SYNTAX($cf_cv_rel_version,Release version)
9540 $1_MAJOR=`echo "$cf_cv_rel_version" | sed -e 's/\..*//'`
9541 $1_MINOR=`echo "$cf_cv_rel_version" | sed -e 's/^[[^.]]*//' -e 's/^\.//' -e 's/\..*//'`
9542 CF_NUMBER_SYNTAX([$]$1_MAJOR,Release major-version)
9543 CF_NUMBER_SYNTAX([$]$1_MINOR,Release minor-version)
9546 dnl ---------------------------------------------------------------------------
9547 dnl CF_WITH_SYSMOUSE version: 3 updated: 2012/10/06 17:56:13
9548 dnl ----------------
9549 dnl If we can compile with sysmouse, make it available unless it is not wanted.
9550 AC_DEFUN([CF_WITH_SYSMOUSE],[
9551 # not everyone has "test -c"
9552 if test -c /dev/sysmouse 2>/dev/null ; then
9553 AC_MSG_CHECKING(if you want to use sysmouse)
9554 AC_ARG_WITH(sysmouse,
9555 [ --with-sysmouse use sysmouse (FreeBSD console)],
9556 [cf_with_sysmouse=$withval],
9557 [cf_with_sysmouse=maybe])
9558 if test "$cf_with_sysmouse" != no ; then
9560 #include <osreldate.h>
9561 #if (__FreeBSD_version >= 400017)
9562 #include <sys/consio.h>
9563 #include <sys/fbio.h>
9565 #include <machine/console.h>
9568 struct mouse_info the_mouse;
9569 ioctl(0, CONS_MOUSECTL, &the_mouse);
9570 ],[cf_with_sysmouse=yes],[cf_with_sysmouse=no])
9572 AC_MSG_RESULT($cf_with_sysmouse)
9573 test "$cf_with_sysmouse" = yes && AC_DEFINE(USE_SYSMOUSE,1,[Define to 1 if we can/should use the sysmouse interface])
9576 dnl ---------------------------------------------------------------------------
9577 dnl CF_WITH_SYSTYPE version: 1 updated: 2013/01/26 16:26:12
9579 dnl For testing, override the derived host system-type which is used to decide
9580 dnl things such as the linker commands used to build shared libraries. This is
9581 dnl normally chosen automatically based on the type of system which you are
9582 dnl building on. We use it for testing the configure script.
9584 dnl This is different from the --host option: it is used only for testing parts
9585 dnl of the configure script which would not be reachable with --host since that
9586 dnl relies on the build environment being real, rather than mocked up.
9587 AC_DEFUN([CF_WITH_SYSTYPE],[
9588 CF_CHECK_CACHE([AC_CANONICAL_SYSTEM])
9589 AC_ARG_WITH(system-type,
9590 [ --with-system-type=XXX test: override derived host system-type],
9591 [AC_MSG_WARN(overriding system type to $withval)
9592 cf_cv_system_name=$withval
9596 dnl ---------------------------------------------------------------------------
9597 dnl CF_WITH_VALGRIND version: 1 updated: 2006/12/14 18:00:21
9598 dnl ----------------
9599 AC_DEFUN([CF_WITH_VALGRIND],[
9600 CF_NO_LEAKS_OPTION(valgrind,
9601 [ --with-valgrind test: use valgrind],
9604 dnl ---------------------------------------------------------------------------
9605 dnl CF_WITH_VERSIONED_SYMS version: 10 updated: 2021/01/04 18:48:01
9606 dnl ----------------------
9607 dnl Use this when building shared library with ELF, to markup symbols with the
9608 dnl version identifier from the given input file. Generally that identifier is
9609 dnl the same as the SONAME at which the symbol was first introduced.
9611 dnl $1 = basename of the ".map" file (default $PACKAGE)
9612 AC_DEFUN([CF_WITH_VERSIONED_SYMS],
9613 [AC_REQUIRE([AC_PROG_FGREP])dnl
9614 AC_REQUIRE([AC_PROG_EGREP])dnl
9616 AC_MSG_CHECKING(if versioned-symbols file should be used)
9617 AC_ARG_WITH(versioned-syms,
9618 [ --with-versioned-syms=X markup versioned symbols using ld],
9619 [with_versioned_syms=$withval],
9620 [with_versioned_syms=no])
9621 case "x$with_versioned_syms" in
9623 with_versioned_syms='${top_srcdir}/package/ifelse($1,,${PACKAGE},[$1]).map'
9629 test -f "$with_versioned_syms" || AC_MSG_ERROR(expected a filename: $with_versioned_syms)
9632 test -f "$with_versioned_syms" || AC_MSG_ERROR(expected a filename: $with_versioned_syms)
9633 with_versioned_syms=`pwd`/"$with_versioned_syms"
9636 AC_MSG_RESULT($with_versioned_syms)
9642 if test "x$with_versioned_syms" != xno
9644 RESULTING_SYMS=$with_versioned_syms
9645 case "x$MK_SHARED_LIB" in
9647 VERSIONED_SYMS="-Wl,--version-script,\${RESULTING_SYMS}"
9648 MK_SHARED_LIB=`echo "$MK_SHARED_LIB" | sed -e "s%-Wl,%\\[$]{VERSIONED_SYMS} -Wl,%"`
9649 CF_VERBOSE(MK_SHARED_LIB: $MK_SHARED_LIB)
9652 VERSIONED_SYMS="-Wl,-M,\${RESULTING_SYMS}"
9653 MK_SHARED_LIB=`echo "$MK_SHARED_LIB" | sed -e "s%-dy%\\[$]{VERSIONED_SYMS} -dy%"`
9654 CF_VERBOSE(MK_SHARED_LIB: $MK_SHARED_LIB)
9657 AC_MSG_WARN(this system does not support versioned-symbols)
9661 # Linux ld can selectively override scope, e.g., of symbols beginning with
9662 # "_" by first declaring some as global, and then using a wildcard to
9663 # declare the others as local. Some other loaders cannot do this. Check
9664 # by constructing a (very) simple shared library and inspecting its
9666 if test "x$VERSIONED_SYMS" != "x"
9668 AC_MSG_CHECKING(if wildcards can be used to selectively omit symbols)
9674 cat >conftest.ver <<EOF
9703 cat >conftest.$ac_ext <<EOF
9704 #line __oline__ "configure"
9705 int _ismissing(void) { return 1; }
9706 int _localf1(void) { return 1; }
9707 int _localf2(void) { return 2; }
9708 int globalf1(void) { return 1; }
9709 int globalf2(void) { return 2; }
9710 int _sublocalf1(void) { return 1; }
9711 int _sublocalf2(void) { return 2; }
9712 int subglobalf1(void) { return 1; }
9713 int subglobalf2(void) { return 2; }
9715 cat >conftest.mk <<EOF
9718 CPPFLAGS=${CPPFLAGS}
9721 VERSIONED_SYMS=${VERSIONED_SYMS}
9722 RESULTING_SYMS=conftest.ver
9723 MK_SHARED_LIB=${MK_SHARED_LIB}
9724 conftest.so: conftest.$ac_cv_objext
9725 \$(MK_SHARED_LIB) conftest.$ac_cv_objext
9728 # compile source, make library
9729 if make -f conftest.mk 2>&AC_FD_CC >/dev/null
9731 # test for missing symbol in either Data or Text section
9732 cf_missing="`nm -P conftest.so 2>&AC_FD_CC |${FGREP-fgrep} _ismissing | ${EGREP-egrep} '[[ ]][[DT]][[ ]]'`"
9733 test -n "$cf_missing" && WILDCARD_SYMS=yes
9735 AC_MSG_RESULT($WILDCARD_SYMS)
9739 AC_SUBST(RESULTING_SYMS)
9740 AC_SUBST(VERSIONED_SYMS)
9741 AC_SUBST(WILDCARD_SYMS)
9743 dnl ---------------------------------------------------------------------------
9744 dnl CF_WITH_X11_RGB version: 2 updated: 2019/12/31 08:53:54
9746 dnl Handle configure option "--with-x11-rgb", setting these shell
9749 dnl $RGB_PATH is the option value, used for finding the X11 rgb file.
9750 dnl $no_x11_rgb is a "#" (comment) if "--without-x11-rgb" is given.
9752 dnl Most Linux's use this:
9753 dnl /usr/share/X11/rgb.txt
9754 dnl Debian uses this:
9755 dnl /etc/X11/rgb.txt
9756 dnl DragonFlyBSD ports uses this:
9757 dnl /usr/pkg/lib/X11/rgb.txt
9758 dnl FreeBSD ports use these:
9759 dnl /usr/local/lib/X11/rgb.txt
9760 dnl /usr/local/share/X11/rgb.txt
9761 dnl Mandriva has these:
9762 dnl /usr/lib/X11/rgb.txt
9763 dnl /usr/lib64/X11/rgb.txt
9764 dnl NetBSD has these
9765 dnl /usr/X11R7/lib/X11/rgb.txt
9766 dnl OpenSolaris uses
9768 dnl /usr/X11/etc/X11/rgb.txt
9769 dnl /usr/X11/share/X11/rgb.txt
9770 dnl /usr/X11/lib/X11/rgb.txt
9772 dnl /opt/local/share/X11/rgb.txt (MacPorts)
9773 dnl /opt/X11/share/X11/rgb.txt (non-ports)
9775 dnl /usr/X11/etc/X11/rgb.txt
9776 dnl /usr/X11/share/X11/rgb.txt (perhaps)
9777 dnl /usr/X11/lib/amd64/X11/rgb.txt
9778 dnl Solaris10 uses (in this order):
9779 dnl /usr/openwin/lib/X11/rgb.txt
9780 dnl /usr/X11/lib/X11/rgb.txt
9781 AC_DEFUN([CF_WITH_X11_RGB],[
9782 AC_MSG_CHECKING(for X11 rgb file)
9783 AC_ARG_WITH(x11-rgb,
9784 [ --with-x11-rgb=FILE file containing X11 rgb information (EPREFIX/lib/X11/rgb.txt)],
9785 [RGB_PATH=$withval],
9788 if test "x[$]RGB_PATH" = xauto
9790 RGB_PATH='${exec_prefix}/lib/X11/rgb.txt'
9792 /opt/local/share/X11/rgb.txt \
9793 /opt/X11/share/X11/rgb.txt \
9794 /usr/share/X11/rgb.txt \
9795 /usr/X11/share/X11/rgb.txt \
9796 /usr/X11/lib/X11/rgb.txt \
9797 /usr/lib/X11/rgb.txt \
9799 /usr/pkg/lib/X11/rgb.txt \
9800 /usr/X11R7/lib/X11/rgb.txt \
9801 /usr/X11R6/lib/X11/rgb.txt \
9802 /usr/X11R5/lib/X11/rgb.txt \
9803 /usr/X11R4/lib/X11/rgb.txt \
9804 /usr/local/lib/X11/rgb.txt \
9805 /usr/local/share/X11/rgb.txt \
9806 /usr/lib64/X11/rgb.txt
9808 if test -f "$cf_path" ; then
9815 CF_PATH_SYNTAX(cf_path)
9818 AC_MSG_RESULT($RGB_PATH)
9820 AC_DEFINE_UNQUOTED(RGB_PATH,"$cf_path",[Define to the full pathname of rgb.txt])
9823 if test "$RGB_PATH" = no
9827 AC_SUBST(no_x11_rgb)
9829 dnl ---------------------------------------------------------------------------
9830 dnl CF_XOPEN_SOURCE version: 59 updated: 2021/08/28 15:20:37
9832 dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
9833 dnl or adapt to the vendor's definitions to get equivalent functionality,
9834 dnl without losing the common non-POSIX features.
9837 dnl $1 is the nominal value for _XOPEN_SOURCE
9838 dnl $2 is the nominal value for _POSIX_C_SOURCE
9839 AC_DEFUN([CF_XOPEN_SOURCE],[
9840 AC_REQUIRE([AC_CANONICAL_HOST])
9841 AC_REQUIRE([CF_POSIX_VISIBLE])
9843 if test "$cf_cv_posix_visible" = no; then
9845 cf_XOPEN_SOURCE=ifelse([$1],,500,[$1])
9846 cf_POSIX_C_SOURCE=ifelse([$2],,199506L,[$2])
9851 cf_xopen_source="-D_ALL_SOURCE"
9857 cf_xopen_source="-D_APPLE_C_SOURCE"
9860 cf_xopen_source="-D_DARWIN_C_SOURCE"
9863 (freebsd*|dragonfly*|midnightbsd*)
9864 # 5.x headers associate
9865 # _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L
9866 # _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L
9867 cf_POSIX_C_SOURCE=200112L
9869 cf_xopen_source="-D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
9872 cf_xopen_source="-D_HPUX_SOURCE -D_XOPEN_SOURCE=500"
9875 cf_xopen_source="-D_HPUX_SOURCE"
9878 cf_xopen_source="-D_SGI_SOURCE"
9881 (linux*|uclinux*|gnu*|mint*|k*bsd*-gnu|cygwin)
9882 CF_GNU_SOURCE($cf_XOPEN_SOURCE)
9885 cf_xopen_source="-D_NETBSD_SOURCE" # POSIX.1-2001 features are ifdef'd with this...
9888 # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <sys/select.h> and other headers which use u_int / u_short types
9890 CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
9893 cf_xopen_source="-D_NETBSD_SOURCE" # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
9896 # OpenBSD 6.x has broken locale support, both compile-time and runtime.
9897 # see https://www.mail-archive.com/bugs@openbsd.org/msg13200.html
9898 # Abusing the conformance level is a workaround.
9899 AC_MSG_WARN(this system does not provide usable locale support)
9900 cf_xopen_source="-D_BSD_SOURCE"
9904 # setting _XOPEN_SOURCE lower than 500 breaks g++ compile with wchar.h, needed for ncursesw
9905 cf_xopen_source="-D_BSD_SOURCE"
9909 # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
9912 cf_xopen_source="-D_OSF_SOURCE"
9915 cf_xopen_source="-D_QNX_SOURCE"
9918 # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
9921 cf_xopen_source="-D__EXTENSIONS__"
9922 cf_cv_xopen_source=broken
9924 (sysv4.2uw2.*) # Novell/SCO UnixWare 2.x (tested on 2.1.2)
9930 CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
9934 if test -n "$cf_xopen_source" ; then
9935 CF_APPEND_CFLAGS($cf_xopen_source,true)
9938 dnl In anything but the default case, we may have system-specific setting
9939 dnl which is still not guaranteed to provide all of the entrypoints that
9940 dnl _XOPEN_SOURCE would yield.
9941 if test -n "$cf_XOPEN_SOURCE" && test -z "$cf_cv_xopen_source" ; then
9942 AC_MSG_CHECKING(if _XOPEN_SOURCE really is set)
9943 AC_TRY_COMPILE([#include <stdlib.h>],[
9944 #ifndef _XOPEN_SOURCE
9947 [cf_XOPEN_SOURCE_set=yes],
9948 [cf_XOPEN_SOURCE_set=no])
9949 AC_MSG_RESULT($cf_XOPEN_SOURCE_set)
9950 if test "$cf_XOPEN_SOURCE_set" = yes
9952 AC_TRY_COMPILE([#include <stdlib.h>],[
9953 #if (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE
9956 [cf_XOPEN_SOURCE_set_ok=yes],
9957 [cf_XOPEN_SOURCE_set_ok=no])
9958 if test "$cf_XOPEN_SOURCE_set_ok" = no
9960 AC_MSG_WARN(_XOPEN_SOURCE is lower than requested)
9966 fi # cf_cv_posix_visible
9968 dnl ---------------------------------------------------------------------------
9969 dnl CF__SED_TRIMBLANKS version: 1 updated: 2021/01/02 09:31:20
9970 dnl ------------------
9971 dnl Trim something using sed, then trim extra whitespace
9972 dnl $1 = extra parameters, e.g., in CF_STRIP_G_OPT
9973 define([CF__SED_TRIMBLANKS],[sed ifelse($1,,,[$1] )-e 's%[[ ]]% %g' -e 's% [[ ]]*% %g' -e 's%^ %%' -e 's% [$]%%'])dnl