1 dnl***************************************************************************
2 dnl Copyright 2018-2020,2021 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.999 2021/12/04 23:30:56 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: 2 updated: 2015/06/06 13:49:58
70 dnl Provide configure-script defaults for different ncurses ABIs.
71 AC_DEFUN([CF_ABI_DEFAULTS],[
72 AC_REQUIRE([CF_NCURSES_WITH_ABI_VERSION])
73 case x$cf_cv_abi_version in
79 cf_dft_ext_spfuncs=yes
80 cf_dft_filter_syms=yes
81 cf_dft_chtype=uint32_t
82 cf_dft_mmask_t=uint32_t
84 cf_dft_tparm_arg=intptr_t
102 dnl ---------------------------------------------------------------------------
103 dnl CF_ACVERSION_CHECK version: 5 updated: 2014/06/04 19:11:49
104 dnl ------------------
105 dnl Conditionally generate script according to whether we're using a given autoconf.
107 dnl $1 = version to compare against
108 dnl $2 = code to use if AC_ACVERSION is at least as high as $1.
109 dnl $3 = code to use if AC_ACVERSION is older than $1.
110 define([CF_ACVERSION_CHECK],
112 ifdef([AC_ACVERSION], ,[ifdef([AC_AUTOCONF_VERSION],[m4_copy([AC_AUTOCONF_VERSION],[AC_ACVERSION])],[m4_copy([m4_PACKAGE_VERSION],[AC_ACVERSION])])])dnl
113 ifdef([m4_version_compare],
114 [m4_if(m4_version_compare(m4_defn([AC_ACVERSION]), [$1]), -1, [$3], [$2])],
115 [CF_ACVERSION_COMPARE(
116 AC_PREREQ_CANON(AC_PREREQ_SPLIT([$1])),
117 AC_PREREQ_CANON(AC_PREREQ_SPLIT(AC_ACVERSION)), AC_ACVERSION, [$2], [$3])])])dnl
118 dnl ---------------------------------------------------------------------------
119 dnl CF_ACVERSION_COMPARE version: 3 updated: 2012/10/03 18:39:53
120 dnl --------------------
121 dnl CF_ACVERSION_COMPARE(MAJOR1, MINOR1, TERNARY1,
122 dnl MAJOR2, MINOR2, TERNARY2,
123 dnl PRINTABLE2, not FOUND, FOUND)
124 define([CF_ACVERSION_COMPARE],
125 [ifelse(builtin([eval], [$2 < $5]), 1,
126 [ifelse([$8], , ,[$8])],
127 [ifelse([$9], , ,[$9])])])dnl
128 dnl ---------------------------------------------------------------------------
129 dnl CF_ADA_INCLUDE_DIRS version: 8 updated: 2013/10/14 04:24:07
130 dnl -------------------
131 dnl Construct the list of include-options for the C programs in the Ada95
133 AC_DEFUN([CF_ADA_INCLUDE_DIRS],
135 ACPPFLAGS="-I. -I../include -I../../include $ACPPFLAGS"
136 if test "$srcdir" != "."; then
137 ACPPFLAGS="-I\${srcdir}/../../include $ACPPFLAGS"
139 if test "$GCC" != yes; then
140 ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
141 elif test "$includedir" != "/usr/include"; then
142 if test "$includedir" = '${prefix}/include' ; then
143 if test x$prefix != x/usr ; then
144 ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
147 ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
152 dnl ---------------------------------------------------------------------------
153 dnl CF_ADD_ADAFLAGS version: 1 updated: 2010/06/19 15:22:18
155 dnl Add to $ADAFLAGS, which is substituted into makefile and scripts.
156 AC_DEFUN([CF_ADD_ADAFLAGS],[
157 ADAFLAGS="$ADAFLAGS $1"
160 dnl ---------------------------------------------------------------------------
161 dnl CF_ADD_CFLAGS version: 15 updated: 2020/12/31 10:54:15
163 dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS
164 dnl $1 = flags to add
165 dnl $2 = if given makes this macro verbose.
167 dnl Put any preprocessor definitions that use quoted strings in $EXTRA_CPPFLAGS,
168 dnl to simplify use of $CPPFLAGS in compiler checks, etc., that are easily
169 dnl confused by the quotes (which require backslashes to keep them usable).
170 AC_DEFUN([CF_ADD_CFLAGS],
175 cf_new_extra_cppflags=
177 for cf_add_cflags in $1
179 case "$cf_fix_cppflags" in
181 case "$cf_add_cflags" in
182 (-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C)
183 case "$cf_add_cflags" in
185 cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^-D[[^=]]*='\''\"[[^"]]*//'`
187 test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
188 && test -z "${cf_tst_cflags}" \
189 && cf_fix_cppflags=yes
191 if test "$cf_fix_cppflags" = yes ; then
192 CF_APPEND_TEXT(cf_new_extra_cppflags,$cf_add_cflags)
194 elif test "${cf_tst_cflags}" = "\"'" ; then
195 CF_APPEND_TEXT(cf_new_extra_cppflags,$cf_add_cflags)
204 case "$cf_add_cflags" in
206 cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
207 CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,$cf_tst_cppflags)
210 CF_APPEND_TEXT(cf_new_cppflags,$cf_add_cflags)
215 CF_APPEND_TEXT(cf_new_cflags,$cf_add_cflags)
220 CF_APPEND_TEXT(cf_new_extra_cppflags,$cf_add_cflags)
222 cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^[[^"]]*"'\''//'`
224 test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
225 && test -z "${cf_tst_cflags}" \
226 && cf_fix_cppflags=no
231 if test -n "$cf_new_cflags" ; then
232 ifelse([$2],,,[CF_VERBOSE(add to \$CFLAGS $cf_new_cflags)])
233 CF_APPEND_TEXT(CFLAGS,$cf_new_cflags)
236 if test -n "$cf_new_cppflags" ; then
237 ifelse([$2],,,[CF_VERBOSE(add to \$CPPFLAGS $cf_new_cppflags)])
238 CF_APPEND_TEXT(CPPFLAGS,$cf_new_cppflags)
241 if test -n "$cf_new_extra_cppflags" ; then
242 ifelse([$2],,,[CF_VERBOSE(add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags)])
243 CF_APPEND_TEXT(EXTRA_CPPFLAGS,$cf_new_extra_cppflags)
246 AC_SUBST(EXTRA_CPPFLAGS)
249 dnl ---------------------------------------------------------------------------
250 dnl CF_ADD_CXXFLAGS version: 1 updated: 2020/04/04 16:16:13
252 dnl Copy non-preprocessor flags to $CXXFLAGS, preprocessor flags to $CPPFLAGS
253 dnl The second parameter if given makes this macro verbose.
255 dnl Put any preprocessor definitions that use quoted strings in $EXTRA_CPPFLAGS,
256 dnl to simplify use of $CPPFLAGS in compiler checks, etc., that are easily
257 dnl confused by the quotes (which require backslashes to keep them usable).
258 AC_DEFUN([CF_ADD_CXXFLAGS],
260 cf_save_CXXFLAGS="$CFLAGS"
262 CF_ADD_CFLAGS($1 ifelse($2,,,[,$2]))
264 CFLAGS="$cf_save_CXXFLAGS"
266 dnl ---------------------------------------------------------------------------
267 dnl CF_ADD_INCDIR version: 17 updated: 2021/09/04 06:35:04
269 dnl Add an include-directory to $CPPFLAGS. Don't add /usr/include, since it is
270 dnl redundant. We don't normally need to add -I/usr/local/include for gcc,
271 dnl but old versions (and some misinstalled ones) need that. To make things
272 dnl worse, gcc 3.x may give error messages if -I/usr/local/include is added to
273 dnl the include-path).
274 AC_DEFUN([CF_ADD_INCDIR],
276 if test -n "$1" ; then
277 for cf_add_incdir in $1
279 while test "$cf_add_incdir" != /usr/include
281 if test -d "$cf_add_incdir"
284 if test -n "$CFLAGS$CPPFLAGS" ; then
285 # a loop is needed to ensure we can add subdirs of existing dirs
286 for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
287 if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
288 cf_have_incdir=yes; break
293 if test "$cf_have_incdir" = no ; then
294 if test "$cf_add_incdir" = /usr/local/include ; then
297 cf_save_CPPFLAGS=$CPPFLAGS
298 CF_APPEND_TEXT(CPPFLAGS,-I$cf_add_incdir)
299 AC_TRY_COMPILE([#include <stdio.h>],
302 [cf_have_incdir=yes])
303 CPPFLAGS=$cf_save_CPPFLAGS
308 if test "$cf_have_incdir" = no ; then
309 CF_VERBOSE(adding $cf_add_incdir to include-path)
310 ifelse([$2],,CPPFLAGS,[$2])="$ifelse([$2],,CPPFLAGS,[$2]) -I$cf_add_incdir"
312 cf_top_incdir=`echo "$cf_add_incdir" | sed -e 's%/include/.*$%/include%'`
313 test "$cf_top_incdir" = "$cf_add_incdir" && break
314 cf_add_incdir="$cf_top_incdir"
325 dnl ---------------------------------------------------------------------------
326 dnl CF_ADD_LIB version: 2 updated: 2010/06/02 05:03:05
328 dnl Add a library, used to enforce consistency.
330 dnl $1 = library to add, without the "-l"
331 dnl $2 = variable to update (default $LIBS)
332 AC_DEFUN([CF_ADD_LIB],[CF_ADD_LIBS(-l$1,ifelse($2,,LIBS,[$2]))])dnl
333 dnl ---------------------------------------------------------------------------
334 dnl CF_ADD_LIBDIR version: 11 updated: 2020/12/31 20:19:42
336 dnl Adds to the library-path
338 dnl Some machines have trouble with multiple -L options.
340 dnl $1 is the (list of) directory(s) to add
341 dnl $2 is the optional name of the variable to update (default LDFLAGS)
343 AC_DEFUN([CF_ADD_LIBDIR],
345 if test -n "$1" ; then
346 for cf_add_libdir in $1
348 if test "$cf_add_libdir" = /usr/lib ; then
350 elif test -d "$cf_add_libdir"
353 if test -n "$LDFLAGS$LIBS" ; then
354 # a loop is needed to ensure we can add subdirs of existing dirs
355 for cf_test_libdir in $LDFLAGS $LIBS ; do
356 if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
357 cf_have_libdir=yes; break
361 if test "$cf_have_libdir" = no ; then
362 CF_VERBOSE(adding $cf_add_libdir to library-path)
363 ifelse([$2],,LDFLAGS,[$2])="-L$cf_add_libdir $ifelse([$2],,LDFLAGS,[$2])"
369 dnl ---------------------------------------------------------------------------
370 dnl CF_ADD_LIBS version: 3 updated: 2019/11/02 16:47:33
372 dnl Add one or more libraries, used to enforce consistency. Libraries are
373 dnl prepended to an existing list, since their dependencies are assumed to
374 dnl already exist in the list.
376 dnl $1 = libraries to add, with the "-l", etc.
377 dnl $2 = variable to update (default $LIBS)
378 AC_DEFUN([CF_ADD_LIBS],[
379 cf_add_libs="[$]ifelse($2,,LIBS,[$2])"
382 for cf_add_1lib in $1; do cf_add_0lib="$cf_add_1lib $cf_add_0lib"; done
384 for cf_add_1lib in $cf_add_0lib; do
385 for cf_add_2lib in $cf_add_libs; do
386 if test "x$cf_add_1lib" = "x$cf_add_2lib"; then
391 test -n "$cf_add_1lib" && cf_add_libs="$cf_add_1lib $cf_add_libs"
393 ifelse($2,,LIBS,[$2])="$cf_add_libs"
395 dnl ---------------------------------------------------------------------------
396 dnl CF_ADD_SUBDIR_PATH version: 5 updated: 2020/12/31 20:19:42
397 dnl ------------------
398 dnl Append to a search-list for a nonstandard header/lib-file
399 dnl $1 = the variable to return as result
400 dnl $2 = the package name
401 dnl $3 = the subdirectory, e.g., bin, include or lib
402 dnl $4 = the directory under which we will test for subdirectories
403 dnl $5 = a directory that we do not want $4 to match
404 AC_DEFUN([CF_ADD_SUBDIR_PATH],
406 test "x$4" != "x$5" && \
408 ifelse([$5],NONE,,[{ test -z "$5" || test "x$5" = xNONE || test "x$4" != "x$5"; } &&]) {
409 test -n "$verbose" && echo " ... testing for $3-directories under $4"
410 test -d "$4/$3" && $1="[$]$1 $4/$3"
411 test -d "$4/$3/$2" && $1="[$]$1 $4/$3/$2"
412 test -d "$4/$3/$2/$3" && $1="[$]$1 $4/$3/$2/$3"
413 test -d "$4/$2/$3" && $1="[$]$1 $4/$2/$3"
414 test -d "$4/$2/$3/$2" && $1="[$]$1 $4/$2/$3/$2"
417 dnl ---------------------------------------------------------------------------
418 dnl CF_APPEND_CFLAGS version: 3 updated: 2021/09/05 17:25:40
420 dnl Use CF_ADD_CFLAGS after first checking for potential redefinitions.
421 dnl $1 = flags to add
422 dnl $2 = if given makes this macro verbose.
423 define([CF_APPEND_CFLAGS],
425 for cf_add_cflags in $1
427 case "x$cf_add_cflags" in
429 CF_REMOVE_CFLAGS($cf_add_cflags,CFLAGS,[$2])
430 CF_REMOVE_CFLAGS($cf_add_cflags,CPPFLAGS,[$2])
433 CF_ADD_CFLAGS([$cf_add_cflags],[$2])
436 dnl ---------------------------------------------------------------------------
437 dnl CF_APPEND_TEXT version: 1 updated: 2017/02/25 18:58:55
439 dnl use this macro for appending text without introducing an extra blank at
441 define([CF_APPEND_TEXT],
443 test -n "[$]$1" && $1="[$]$1 "
446 dnl ---------------------------------------------------------------------------
447 dnl CF_ARG_DISABLE version: 3 updated: 1999/03/30 17:24:31
449 dnl Allow user to disable a normally-on option.
450 AC_DEFUN([CF_ARG_DISABLE],
451 [CF_ARG_OPTION($1,[$2],[$3],[$4],yes)])dnl
452 dnl ---------------------------------------------------------------------------
453 dnl CF_ARG_ENABLE version: 3 updated: 1999/03/30 17:24:31
455 dnl Allow user to enable a normally-off option.
456 AC_DEFUN([CF_ARG_ENABLE],
457 [CF_ARG_OPTION($1,[$2],[$3],[$4],no)])dnl
458 dnl ---------------------------------------------------------------------------
459 dnl CF_ARG_OPTION version: 5 updated: 2015/05/10 19:52:14
461 dnl Restricted form of AC_ARG_ENABLE that ensures user doesn't give bogus
467 dnl $3 = action to perform if option is not default
468 dnl $4 = action if perform if option is default
469 dnl $5 = default option value (either 'yes' or 'no')
470 AC_DEFUN([CF_ARG_OPTION],
471 [AC_ARG_ENABLE([$1],[$2],[test "$enableval" != ifelse([$5],no,yes,no) && enableval=ifelse([$5],no,no,yes)
472 if test "$enableval" != "$5" ; then
474 ,[ $3]) ifelse([$4],,,[
477 fi],[enableval=$5 ifelse([$4],,,[
481 dnl ---------------------------------------------------------------------------
482 dnl CF_AR_FLAGS version: 9 updated: 2021/01/01 13:31:04
484 dnl Check for suitable "ar" (archiver) options for updating an archive.
486 dnl In particular, handle some obsolete cases where the "-" might be omitted,
487 dnl as well as a workaround for breakage of make's archive rules by the GNU
488 dnl binutils "ar" program.
489 AC_DEFUN([CF_AR_FLAGS],[
490 AC_REQUIRE([CF_PROG_AR])
492 AC_CACHE_CHECK(for options to update archives, cf_cv_ar_flags,[
493 case "$cf_cv_system_name" in
496 cat >mk_static_lib.sh <<-EOF
501 exec \[$]MSVC_BIN -out:"\[$]out" \[$]@
503 chmod +x mk_static_lib.sh
504 AR=`pwd`/mk_static_lib.sh
507 cf_cv_ar_flags=unknown
508 for cf_ar_flags in -curvU -curv curv -crv crv -cqv cqv -rv rv
511 # check if $ARFLAGS already contains this choice
512 if test "x$ARFLAGS" != "x" ; then
513 cf_check_ar_flags=`echo "x$ARFLAGS" | sed -e "s/$cf_ar_flags\$//" -e "s/$cf_ar_flags / /"`
514 if test "x$ARFLAGS" != "$cf_check_ar_flags" ; then
520 rm -f "conftest.$ac_cv_objext"
523 cat >"conftest.$ac_ext" <<EOF
524 #line __oline__ "configure"
525 int testdata[[3]] = { 123, 456, 789 };
527 if AC_TRY_EVAL(ac_compile) ; then
528 echo "$AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext" >&AC_FD_CC
529 $AR $ARFLAGS "$cf_ar_flags" conftest.a "conftest.$ac_cv_objext" 2>&AC_FD_CC 1>/dev/null
530 if test -f conftest.a ; then
531 cf_cv_ar_flags="$cf_ar_flags"
535 CF_VERBOSE(cannot compile test-program)
539 rm -f conftest.a "conftest.$ac_ext" "conftest.$ac_cv_objext"
544 if test -n "$ARFLAGS" ; then
545 if test -n "$cf_cv_ar_flags" ; then
546 ARFLAGS="$ARFLAGS $cf_cv_ar_flags"
549 ARFLAGS=$cf_cv_ar_flags
554 dnl ---------------------------------------------------------------------------
555 dnl CF_AWK_BIG_PRINTF version: 5 updated: 2015/04/17 21:13:04
556 dnl -----------------
557 dnl Check if awk can handle big strings using printf. Some older versions of
558 dnl awk choke on large strings passed via "%s".
560 dnl $1 = desired string size
561 dnl $2 = variable to set with result
562 AC_DEFUN([CF_AWK_BIG_PRINTF],
569 if ( ${AWK} 'BEGIN { xx = "x"; while (length(xx) < $1) { xx = xx "x"; }; printf("%s\n", xx); }' 2>/dev/null \
570 | $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
578 dnl ---------------------------------------------------------------------------
579 dnl CF_BOOL_DECL version: 8 updated: 2004/01/30 15:51:18
581 dnl Test if 'bool' is a builtin type in the configured C++ compiler. Some
582 dnl older compilers (e.g., gcc 2.5.8) don't support 'bool' directly; gcc
583 dnl 2.6.3 does, in anticipation of the ANSI C++ standard.
585 dnl Treat the configuration-variable specially here, since we're directly
586 dnl substituting its value (i.e., 1/0).
588 dnl $1 is the shell variable to store the result in, if not $cv_cv_builtin_bool
589 AC_DEFUN([CF_BOOL_DECL],
591 AC_MSG_CHECKING(if we should include stdbool.h)
593 AC_CACHE_VAL(cf_cv_header_stdbool_h,[
594 AC_TRY_COMPILE([],[bool foo = false],
595 [cf_cv_header_stdbool_h=0],
600 ],[bool foo = false],
601 [cf_cv_header_stdbool_h=1],
602 [cf_cv_header_stdbool_h=0])])])
604 if test "$cf_cv_header_stdbool_h" = 1
605 then AC_MSG_RESULT(yes)
606 else AC_MSG_RESULT(no)
609 AC_MSG_CHECKING([for builtin bool type])
611 AC_CACHE_VAL(ifelse($1,,cf_cv_builtin_bool,[$1]),[
614 #include <sys/types.h>
616 [ifelse($1,,cf_cv_builtin_bool,[$1])=1],
617 [ifelse($1,,cf_cv_builtin_bool,[$1])=0])
620 if test "$ifelse($1,,cf_cv_builtin_bool,[$1])" = 1
621 then AC_MSG_RESULT(yes)
622 else AC_MSG_RESULT(no)
625 dnl ---------------------------------------------------------------------------
626 dnl CF_BOOL_SIZE version: 18 updated: 2021/09/04 06:35:04
628 dnl Test for the size of 'bool' in the configured C++ compiler (e.g., a type).
629 dnl Don't bother looking for bool.h, since it has been deprecated.
631 dnl If the current compiler is C rather than C++, we get the bool definition
632 dnl from <stdbool.h>.
633 AC_DEFUN([CF_BOOL_SIZE],
635 AC_CHECK_SIZEOF(bool,,[
639 #if defined(__cplusplus)
641 #ifdef HAVE_GXX_BUILTIN_H
642 #include <g++/builtin.h>
643 #elif HAVE_GPP_BUILTIN_H
644 #include <gpp/builtin.h>
651 #if $cf_cv_header_stdbool_h
658 AC_CACHE_CHECK(for type of bool, cf_cv_type_of_bool,[
664 #if defined(__cplusplus)
666 #ifdef HAVE_GXX_BUILTIN_H
667 #include <g++/builtin.h>
668 #elif HAVE_GPP_BUILTIN_H
669 #include <gpp/builtin.h>
676 #if $cf_cv_header_stdbool_h
684 FILE *fp = fopen("cf_test.out", "w");
688 fputs("unsigned ", fp);
689 if (sizeof(x) == sizeof(int)) fputs("int", fp);
690 else if (sizeof(x) == sizeof(char)) fputs("char", fp);
691 else if (sizeof(x) == sizeof(short))fputs("short",fp);
692 else if (sizeof(x) == sizeof(long)) fputs("long", fp);
695 ${cf_cv_main_return:-return}(0);
698 [cf_cv_type_of_bool=`cat cf_test.out`
699 if test -z "$cf_cv_type_of_bool"; then
700 cf_cv_type_of_bool=unknown
702 [cf_cv_type_of_bool=unknown],
704 case x$ac_cv_sizeof_bool in
705 (x1) cf_cv_type_of_bool="unsigned char";;
706 (x2) cf_cv_type_of_bool="unsigned short";;
707 (x4) cf_cv_type_of_bool="unsigned int";;
708 (x8) cf_cv_type_of_bool="unsigned long";;
709 (*) cf_cv_type_of_bool=unknown;;
715 if test "$cf_cv_type_of_bool" = unknown ; then
716 case .$NCURSES_BOOL in
717 (.auto|.) NCURSES_BOOL=unsigned;;
719 AC_MSG_WARN(Assuming $NCURSES_BOOL for type of bool)
720 cf_cv_type_of_bool=$NCURSES_BOOL
723 dnl ---------------------------------------------------------------------------
724 dnl CF_BUILD_CC version: 9 updated: 2021/01/02 09:31:20
726 dnl If we're cross-compiling, allow the user to override the tools and their
727 dnl options. The configure script is oriented toward identifying the host
728 dnl compiler, etc., but we need a build compiler to generate parts of the
731 dnl $1 = default for $CPPFLAGS
732 dnl $2 = default for $LIBS
733 AC_DEFUN([CF_BUILD_CC],[
734 CF_ACVERSION_CHECK(2.52,,
735 [AC_REQUIRE([CF_PROG_EXT])])
736 if test "$cross_compiling" = yes ; then
738 # defaults that we might want to override
739 : ${BUILD_CFLAGS:=''}
740 : ${BUILD_CPPFLAGS:='ifelse([$1],,,[$1])'}
741 : ${BUILD_LDFLAGS:=''}
742 : ${BUILD_LIBS:='ifelse([$2],,,[$2])'}
743 : ${BUILD_EXEEXT:='$x'}
744 : ${BUILD_OBJEXT:='o'}
746 AC_ARG_WITH(build-cc,
747 [ --with-build-cc=XXX the build C compiler ($BUILD_CC)],
748 [BUILD_CC="$withval"],
749 [AC_CHECK_PROGS(BUILD_CC, [gcc clang c99 c89 cc cl],none)])
750 AC_MSG_CHECKING(for native build C compiler)
751 AC_MSG_RESULT($BUILD_CC)
753 AC_MSG_CHECKING(for native build C preprocessor)
754 AC_ARG_WITH(build-cpp,
755 [ --with-build-cpp=XXX the build C preprocessor ($BUILD_CPP)],
756 [BUILD_CPP="$withval"],
757 [BUILD_CPP='${BUILD_CC} -E'])
758 AC_MSG_RESULT($BUILD_CPP)
760 AC_MSG_CHECKING(for native build C flags)
761 AC_ARG_WITH(build-cflags,
762 [ --with-build-cflags=XXX the build C compiler-flags ($BUILD_CFLAGS)],
763 [BUILD_CFLAGS="$withval"])
764 AC_MSG_RESULT($BUILD_CFLAGS)
766 AC_MSG_CHECKING(for native build C preprocessor-flags)
767 AC_ARG_WITH(build-cppflags,
768 [ --with-build-cppflags=XXX the build C preprocessor-flags ($BUILD_CPPFLAGS)],
769 [BUILD_CPPFLAGS="$withval"])
770 AC_MSG_RESULT($BUILD_CPPFLAGS)
772 AC_MSG_CHECKING(for native build linker-flags)
773 AC_ARG_WITH(build-ldflags,
774 [ --with-build-ldflags=XXX the build linker-flags ($BUILD_LDFLAGS)],
775 [BUILD_LDFLAGS="$withval"])
776 AC_MSG_RESULT($BUILD_LDFLAGS)
778 AC_MSG_CHECKING(for native build linker-libraries)
779 AC_ARG_WITH(build-libs,
780 [ --with-build-libs=XXX the build libraries (${BUILD_LIBS})],
781 [BUILD_LIBS="$withval"])
782 AC_MSG_RESULT($BUILD_LIBS)
784 # this assumes we're on Unix.
788 : ${BUILD_CC:='${CC}'}
790 if { test "$BUILD_CC" = "$CC" || test "$BUILD_CC" = '${CC}'; } ; then
791 AC_MSG_ERROR([Cross-build requires two compilers.
792 Use --with-build-cc to specify the native compiler.])
796 : ${BUILD_CC:='${CC}'}
797 : ${BUILD_CPP:='${CPP}'}
798 : ${BUILD_CFLAGS:='${CFLAGS}'}
799 : ${BUILD_CPPFLAGS:='${CPPFLAGS}'}
800 : ${BUILD_LDFLAGS:='${LDFLAGS}'}
801 : ${BUILD_LIBS:='${LIBS}'}
802 : ${BUILD_EXEEXT:='$x'}
803 : ${BUILD_OBJEXT:='o'}
808 AC_SUBST(BUILD_CFLAGS)
809 AC_SUBST(BUILD_CPPFLAGS)
810 AC_SUBST(BUILD_LDFLAGS)
812 AC_SUBST(BUILD_EXEEXT)
813 AC_SUBST(BUILD_OBJEXT)
815 dnl ---------------------------------------------------------------------------
816 dnl CF_C11_NORETURN version: 3 updated: 2021/03/28 11:36:23
818 AC_DEFUN([CF_C11_NORETURN],
820 AC_MSG_CHECKING(if you want to use C11 _Noreturn feature)
821 CF_ARG_ENABLE(stdnoreturn,
822 [ --enable-stdnoreturn enable C11 _Noreturn feature for diagnostics],
823 [enable_stdnoreturn=yes],
824 [enable_stdnoreturn=no])
825 AC_MSG_RESULT($enable_stdnoreturn)
827 if test $enable_stdnoreturn = yes; then
828 AC_CACHE_CHECK([for C11 _Noreturn feature], cf_cv_c11_noreturn,
832 #include <stdnoreturn.h>
833 static _Noreturn void giveup(void) { exit(0); }
835 [if (feof(stdin)) giveup()],
836 cf_cv_c11_noreturn=yes,
837 cf_cv_c11_noreturn=no)
840 cf_cv_c11_noreturn=no,
843 if test "$cf_cv_c11_noreturn" = yes; then
844 AC_DEFINE(HAVE_STDNORETURN_H, 1,[Define if <stdnoreturn.h> header is available and working])
845 AC_DEFINE_UNQUOTED(STDC_NORETURN,_Noreturn,[Define if C11 _Noreturn keyword is supported])
851 AC_SUBST(HAVE_STDNORETURN_H)
852 AC_SUBST(STDC_NORETURN)
854 dnl ---------------------------------------------------------------------------
855 dnl CF_CC_ENV_FLAGS version: 10 updated: 2020/12/31 18:40:20
857 dnl Check for user's environment-breakage by stuffing CFLAGS/CPPFLAGS content
858 dnl into CC. This will not help with broken scripts that wrap the compiler
859 dnl with options, but eliminates a more common category of user confusion.
861 dnl In particular, it addresses the problem of being able to run the C
862 dnl preprocessor in a consistent manner.
864 dnl Caveat: this also disallows blanks in the pathname for the compiler, but
865 dnl the nuisance of having inconsistent settings for compiler and preprocessor
866 dnl outweighs that limitation.
867 AC_DEFUN([CF_CC_ENV_FLAGS],
869 # This should have been defined by AC_PROG_CC
872 AC_MSG_CHECKING(\$CFLAGS variable)
875 AC_MSG_RESULT(broken)
876 AC_MSG_WARN(your environment uses the CFLAGS variable to hold CPPFLAGS options)
879 for cf_arg in $cf_flags
881 CF_ADD_CFLAGS($cf_arg)
889 AC_MSG_CHECKING(\$CC variable)
892 AC_MSG_RESULT(broken)
893 AC_MSG_WARN(your environment uses the CC variable to hold CFLAGS/CPPFLAGS options)
895 cf_prog=`echo "$CC" | sed -e 's/ / /g' -e 's/[[ ]]* / /g' -e 's/[[ ]]*[[ ]]-[[^ ]].*//'`
896 cf_flags=`echo "$CC" | ${AWK:-awk} -v prog="$cf_prog" '{ printf("%s", [substr]([$]0,1+length(prog))); }'`
898 for cf_arg in $cf_flags
902 CF_ADD_CFLAGS($cf_arg)
909 CF_VERBOSE(resulting CC: '$CC')
910 CF_VERBOSE(resulting CFLAGS: '$CFLAGS')
911 CF_VERBOSE(resulting CPPFLAGS: '$CPPFLAGS')
918 dnl ---------------------------------------------------------------------------
919 dnl CF_CFG_DEFAULTS version: 16 updated: 2021/01/04 19:33:05
921 dnl Determine the default configuration into which we'll install ncurses. This
922 dnl can be overridden by the user's command-line options. There's two items to
924 dnl 1. the prefix (e.g., /usr)
925 dnl 2. the header files (e.g., /usr/include/ncurses)
926 dnl We'll look for a previous installation of ncurses and use the same defaults.
928 dnl We don't use AC_PREFIX_DEFAULT, because it gets evaluated too soon, and
929 dnl we don't use AC_PREFIX_PROGRAM, because we cannot distinguish ncurses's
930 dnl programs from a vendor's.
931 AC_DEFUN([CF_CFG_DEFAULTS],
932 [AC_REQUIRE([AC_PROG_FGREP])dnl
934 AC_MSG_CHECKING(for prefix)
935 if test "x$prefix" = "xNONE" ; then
936 case "$cf_cv_system_name" in
937 # non-vendor systems don't have a conflict
938 (openbsd*|freebsd*|mirbsd*|linux*|cygwin*|msys*|k*bsd*-gnu|mingw*)
941 (*) prefix=$ac_default_prefix
945 AC_MSG_RESULT($prefix)
947 if test "x$prefix" = "xNONE" ; then
948 AC_MSG_CHECKING(for default include-directory)
949 test -n "$verbose" && echo 1>&AC_FD_MSG
952 "$includedir/ncurses" \
954 "$prefix/include/ncurses" \
956 /usr/local/include/ncurses \
960 cf_dir=`eval echo "$cf_symbol"`
961 if test -f "$cf_dir/curses.h" ; then
962 if ( ${FGREP-fgrep} NCURSES_VERSION "$cf_dir/curses.h" >/dev/null 2>&1 ) ; then
963 includedir="$cf_symbol"
964 test -n "$verbose" && echo $ECHO_N " found " 1>&AC_FD_MSG
968 test -n "$verbose" && echo " tested $cf_dir" 1>&AC_FD_MSG
970 AC_MSG_RESULT($includedir)
973 dnl ---------------------------------------------------------------------------
974 dnl CF_CGETENT version: 6 updated: 2017/01/21 11:06:25
976 dnl Check if the terminal-capability database functions are available. If not,
977 dnl ncurses has a much-reduced version.
978 AC_DEFUN([CF_CGETENT],[
979 AC_CACHE_CHECK(for terminal-capability database functions,cf_cv_cgetent,[
981 #include <stdlib.h>],[
984 char *db_array = temp;
985 cgetent(&buf, &db_array, "vt100");
986 cgetcap(buf, "tc", '=');
987 cgetmatch(buf, "tc");
993 if test "$cf_cv_cgetent" = yes
995 AC_DEFINE(HAVE_BSD_CGETENT,1,[Define to 1 if we have BSD cgetent])
996 AC_CACHE_CHECK(if cgetent uses const parameter,cf_cv_cgetent_const,[
998 #pragma GCC diagnostic error "-Wincompatible-pointer-types-discards-qualifiers"
999 #include <stdlib.h>],[
1002 #ifndef _NETBSD_SOURCE /* given, since April 2004 in stdlib.h */
1003 const char *db_array = temp;
1004 cgetent(&buf, &db_array, "vt100");
1006 cgetcap(buf, "tc", '=');
1007 cgetmatch(buf, "tc");
1009 [cf_cv_cgetent_const=yes],
1010 [cf_cv_cgetent_const=no])
1012 if test "$cf_cv_cgetent_const" = yes
1014 AC_DEFINE_UNQUOTED(CGETENT_CONST,const,[Define to const if needed for some BSD cgetent variations])
1018 dnl ---------------------------------------------------------------------------
1019 dnl CF_CHECK_CACHE version: 13 updated: 2020/12/31 10:54:15
1021 dnl Check if we're accidentally using a cache from a different machine.
1022 dnl Derive the system name, as a check for reusing the autoconf cache.
1024 dnl If we've packaged config.guess and config.sub, run that (since it does a
1025 dnl better job than uname). Normally we'll use AC_CANONICAL_HOST, but allow
1026 dnl an extra parameter that we may override, e.g., for AC_CANONICAL_SYSTEM
1027 dnl which is useful in cross-compiles.
1029 dnl Note: we would use $ac_config_sub, but that is one of the places where
1030 dnl autoconf 2.5x broke compatibility with autoconf 2.13
1031 AC_DEFUN([CF_CHECK_CACHE],
1033 if test -f "$srcdir/config.guess" || test -f "$ac_aux_dir/config.guess" ; then
1034 ifelse([$1],,[AC_CANONICAL_HOST],[$1])
1035 system_name="$host_os"
1037 system_name="`(uname -s -r) 2>/dev/null`"
1038 if test -z "$system_name" ; then
1039 system_name="`(hostname) 2>/dev/null`"
1042 test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name",[Define to the system name.])
1043 AC_CACHE_VAL(cf_cv_system_name,[cf_cv_system_name="$system_name"])
1045 test -z "$system_name" && system_name="$cf_cv_system_name"
1046 test -n "$cf_cv_system_name" && AC_MSG_RESULT(Configuring for $cf_cv_system_name)
1048 if test ".$system_name" != ".$cf_cv_system_name" ; then
1049 AC_MSG_RESULT(Cached system name ($system_name) does not agree with actual ($cf_cv_system_name))
1050 AC_MSG_ERROR("Please remove config.cache and try again.")
1053 dnl ---------------------------------------------------------------------------
1054 dnl CF_CHECK_ENVIRON version: 3 updated: 2010/05/26 16:44:57
1055 dnl ----------------
1056 dnl Check for data that is usually declared in <unistd.h>, e.g., the 'environ'
1057 dnl variable. Define a DECL_xxx symbol if we must declare it ourselves.
1059 dnl $1 = the name to check
1060 dnl $2 = the assumed type
1061 AC_DEFUN([CF_CHECK_ENVIRON],
1063 AC_CACHE_CHECK(if external $1 is declared, cf_cv_dcl_$1,[
1065 #ifdef HAVE_STDLIB_H
1068 #include <unistd.h> ],
1069 ifelse([$2],,int,[$2]) x = (ifelse([$2],,int,[$2])) $1,
1074 if test "$cf_cv_dcl_$1" = no ; then
1075 CF_UPPER(cf_result,decl_$1)
1076 AC_DEFINE_UNQUOTED($cf_result)
1079 # It's possible (for near-UNIX clones) that the data doesn't exist
1080 CF_CHECK_EXTERN_DATA($1,ifelse([$2],,int,[$2]))
1082 dnl ---------------------------------------------------------------------------
1083 dnl CF_CHECK_ERRNO version: 13 updated: 2020/03/10 18:53:47
1085 dnl Check for data that is usually declared in <stdio.h> or <errno.h>, e.g.,
1086 dnl the 'errno' variable. Define a DECL_xxx symbol if we must declare it
1089 dnl $1 = the name to check
1090 dnl $2 = the assumed type
1091 AC_DEFUN([CF_CHECK_ERRNO],
1093 AC_CACHE_CHECK(if external $1 is declared, cf_cv_dcl_$1,[
1095 #ifdef HAVE_STDLIB_H
1099 #include <sys/types.h>
1100 #include <errno.h> ],
1101 ifelse([$2],,int,[$2]) x = (ifelse([$2],,int,[$2])) $1; (void)x,
1106 if test "$cf_cv_dcl_$1" = no ; then
1107 CF_UPPER(cf_result,decl_$1)
1108 AC_DEFINE_UNQUOTED($cf_result)
1111 # It's possible (for near-UNIX clones) that the data doesn't exist
1112 CF_CHECK_EXTERN_DATA($1,ifelse([$2],,int,[$2]))
1114 dnl ---------------------------------------------------------------------------
1115 dnl CF_CHECK_EXTERN_DATA version: 5 updated: 2021/09/04 06:35:04
1116 dnl --------------------
1117 dnl Check for existence of external data in the current set of libraries. If
1118 dnl we can modify it, it is real enough.
1119 dnl $1 = the name to check
1121 AC_DEFUN([CF_CHECK_EXTERN_DATA],
1123 AC_CACHE_CHECK(if external $1 exists, cf_cv_have_$1,[
1129 [cf_cv_have_$1=yes],
1133 if test "$cf_cv_have_$1" = yes ; then
1134 CF_UPPER(cf_result,have_$1)
1135 AC_DEFINE_UNQUOTED($cf_result)
1139 dnl ---------------------------------------------------------------------------
1140 dnl CF_CHECK_FVISIBILITY version: 2 updated: 2020/04/04 16:16:13
1141 dnl --------------------
1142 dnl Check whether the compiler understands -fvisibility=hidden
1145 dnl $2 = compiler-flags variable name
1146 dnl $3 = cache variable to set
1147 AC_DEFUN([CF_CHECK_FVISIBILITY],[
1148 AC_CACHE_CHECK(if $1 -fvisibility=hidden option works,$3,[
1149 cf_save_cflags="[$]$2"
1150 $2="[$]$2 -fvisibility=hidden"
1152 __attribute__ ((visibility("default"))) int somefunc() {return 42;}
1154 if (somefunc()) return 1;
1161 dnl ---------------------------------------------------------------------------
1162 dnl CF_CHECK_GETENV version: 2 updated: 2021/01/02 17:09:14
1164 dnl Check if repeated getenv calls return the same pointer, e.g., it does not
1165 dnl discard the previous pointer when returning a new one.
1166 AC_DEFUN([CF_CHECK_GETENV],
1168 AC_REQUIRE([CF_CHECK_ENVIRON])
1169 AC_CHECK_FUNC( getenv, ,, AC_MSG_ERROR(getenv not found) )
1170 AC_CHECK_FUNCS( putenv setenv strdup )
1171 AC_CACHE_CHECK(if getenv returns consistent values,cf_cv_consistent_getenv,[
1177 #include <sys/types.h>
1179 #if defined(HAVE_ENVIRON) && defined(DECL_ENVIRON) && !defined(environ)
1180 extern char **environ; /* POSIX, but some systems are not... */
1183 #if defined(HAVE_STRDUP)
1184 #define str_alloc(s) strdup(s)
1186 #define str_alloc(s) strcpy(malloc(strlen(s) + 1, s))
1189 static void set_value(const char *name, const char *value)
1191 #if defined(HAVE_SETENV)
1192 setenv(name, value, 1);
1193 #elif defined(HAVE_PUTENV)
1195 sprintf(buffer, "%s=%s", name, value);
1196 putenv(str_alloc(buffer));
1198 #error neither putenv/setenv found
1204 size_t numenv, limit, j;
1209 for (numenv = 0; environ[numenv]; ++numenv) ;
1210 limit = numenv + 10;
1211 mynames = (char **) calloc(limit + 1, sizeof(char *));
1212 myvalues = (char **) calloc(limit + 1, sizeof(char *));
1213 mypointer = (char **) calloc(limit + 1, sizeof(char *));
1214 #if defined(HAVE_ENVIRON)
1215 for (j = 0; environ[j]; ++j) {
1216 mynames[j] = str_alloc(environ[j]);
1217 equals = strchr(mynames[j], '=');
1220 myvalues[j] = str_alloc(equals);
1222 myvalues[j] = str_alloc("");
1226 for (j = numenv; j < limit; ++j) {
1234 sprintf(name, "TERM%lu", (unsigned long) k);
1235 for (jk = 0; jk < j; ++jk) {
1236 if (!strcmp(name, mynames[jk])) {
1243 sprintf(value, "%lu:%p", (unsigned long) k, &mynames[j]);
1244 set_value(name, value);
1245 mynames[j] = str_alloc(name);
1246 myvalues[j] = str_alloc(value);
1248 for (pass = 0; pass < 3; ++pass) {
1249 for (j = 0; j < limit; ++j) {
1250 char *value = getenv(mynames[j]);
1253 fprintf(stderr, "getenv returned null for %s\\n", mynames[j]);
1254 ${cf_cv_main_return:-return}(1);
1255 } else if (value != mypointer[j]) {
1256 fprintf(stderr, "getenv returned different pointer for %s\\n", mynames[j]);
1257 ${cf_cv_main_return:-return}(1);
1258 } else if (strcmp(value, myvalues[j])) {
1259 fprintf(stderr, "getenv returned different value for %s\\n", mynames[j]);
1260 ${cf_cv_main_return:-return}(1);
1264 mypointer[j] = value;
1265 for (k = 0; k < j; ++k) {
1266 if (mypointer[j] == mypointer[k]) {
1267 fprintf(stderr, "getenv returned same pointer for %s and %s\\n", mynames[j], mynames[k]);
1268 ${cf_cv_main_return:-return}(1);
1274 ${cf_cv_main_return:-return}(0);
1277 [cf_cv_consistent_getenv=yes],
1278 [cf_cv_consistent_getenv=no],
1279 [cf_cv_consistent_getenv=unknown])
1282 if test "x$cf_cv_consistent_getenv" = xno
1284 AC_DEFINE(HAVE_CONSISTENT_GETENV,1,[Define to 1 if getenv repeatably returns the same value for a given name])
1287 dnl ---------------------------------------------------------------------------
1288 dnl CF_CHECK_GNAT_VERSION version: 4 updated: 2021/01/01 13:31:04
1289 dnl ---------------------
1290 AC_DEFUN([CF_CHECK_GNAT_VERSION],
1292 AC_REQUIRE([CF_GNAT_VERSION])
1293 case "$cf_cv_gnat_version" in
1294 (3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*|[[1-9]][[0-9]].[[0-9]]*|20[[0-9]][[0-9]])
1295 cf_cv_prog_gnat_correct=yes
1298 AC_MSG_WARN(Unsupported GNAT version $cf_cv_gnat_version. We require 3.11 or better. Disabling Ada95 binding.)
1299 cf_cv_prog_gnat_correct=no
1303 dnl ---------------------------------------------------------------------------
1304 dnl CF_CHECK_GPM_WGETCH version: 6 updated: 2021/01/04 18:48:01
1305 dnl -------------------
1306 dnl Check if GPM is already linked with curses. If so - and if the linkage
1307 dnl is not "weak" - warn about this because it can create problems linking
1308 dnl applications with ncurses.
1309 AC_DEFUN([CF_CHECK_GPM_WGETCH],[
1310 AC_REQUIRE([AC_PROG_EGREP])dnl
1312 AC_CHECK_LIB(gpm,Gpm_Wgetch,[
1314 AC_CACHE_CHECK(if GPM is weakly bound to curses library, cf_cv_check_gpm_wgetch,[
1315 cf_cv_check_gpm_wgetch=unknown
1316 if test "$cross_compiling" != yes ; then
1318 cat >conftest.$ac_ext <<CF_EOF
1323 ${cf_cv_main_return:-return}(0);
1327 cf_save_LIBS="$LIBS"
1328 # This only works if we can look at the symbol table. If a shared
1329 # library is stripped for install, we cannot use that. So we're forced
1330 # to rely on the static library, noting that some packagers may not
1332 LIBS="-static -lgpm -dynamic $LIBS"
1333 if AC_TRY_EVAL(ac_compile) ; then
1334 if AC_TRY_EVAL(ac_link) ; then
1335 cf_cv_check_gpm_wgetch="`nm \"conftest$ac_exeext\" | ${EGREP-egrep} '\<wgetch\>' | ${EGREP-egrep} '\<[[vVwW]]\>'`"
1336 test -n "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=yes
1337 test -z "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=no
1341 LIBS="$cf_save_LIBS"
1345 if test "$cf_cv_check_gpm_wgetch" != yes ; then
1346 AC_MSG_WARN(GPM library is already linked with curses - read the FAQ)
1349 dnl ---------------------------------------------------------------------------
1350 dnl CF_CHECK_LIBSSP version: 1 updated: 2021/10/30 10:40:19
1352 dnl Check if libssp is needed, e.g., to work around misconfigured libraries
1353 dnl used in cross-compiling to MinGW.
1354 AC_DEFUN([CF_CHECK_LIBSSP],[
1355 AC_CACHE_CHECK(if ssp library is needed,cf_cv_need_libssp,[
1357 #include <sys/types.h>
1360 DIR *dp = opendir(".");
1361 ],cf_cv_need_libssp=no,[
1362 cf_save_LIBS="$LIBS"
1365 #include <sys/types.h>
1368 DIR *dp = opendir(".");
1369 ],cf_cv_need_libssp=yes,
1370 cf_cv_need_libssp=maybe)
1371 LIBS="$cf_save_LIBS"
1375 if test "x$cf_cv_need_libssp" = xyes
1380 dnl ---------------------------------------------------------------------------
1381 dnl CF_CHECK_LIBTOOL_VERSION version: 2 updated: 2021/05/01 16:24:34
1382 dnl ------------------------
1383 dnl Show the version of libtool
1385 dnl Save the version in a cache variable - this is not entirely a good thing,
1386 dnl but the version string from libtool is very ugly, and for bug reports it
1387 dnl might be useful to have the original string.
1389 dnl There is an imitation in OpenBSD, which has no apparent use other than to
1390 dnl deny that it is GNU libtool. Just ignore it.
1391 AC_DEFUN([CF_CHECK_LIBTOOL_VERSION],[
1392 if test -n "$LIBTOOL" && test "$LIBTOOL" != none
1394 AC_MSG_CHECKING(version of $LIBTOOL)
1396 AC_MSG_RESULT($cf_cv_libtool_version)
1397 if test -n "$cf_cv_libtool_version"
1399 cf_check_libtool_version=`$LIBTOOL --version 2>&1 | sed -e '/^$/d' -e 's,[[()]],...,g' -e 's,[[ ]],-,g' -e '2,$d'`
1400 case "x$cf_check_libtool_version" in
1401 (*...GNU-libtool...*)
1404 AC_MSG_ERROR(This is not GNU libtool)
1408 AC_MSG_ERROR(No version found for $LIBTOOL)
1411 AC_MSG_ERROR(GNU libtool has not been found)
1414 dnl ---------------------------------------------------------------------------
1415 dnl CF_CHECK_WCHAR_H version: 3 updated: 2021/01/01 13:31:04
1416 dnl ----------------
1417 dnl Check if wchar.h can be used, i.e., without defining _XOPEN_SOURCE_EXTENDED
1418 AC_DEFUN([CF_CHECK_WCHAR_H],[
1423 AC_CACHE_CHECK(if wchar.h can be used as is,cf_cv_wchar_h_okay,[
1430 #ifdef HAVE_WCTYPE_H
1435 int bar = iswpunct(foo)],
1436 [cf_cv_wchar_h_okay=yes],
1437 [cf_cv_wchar_h_okay=no])])
1439 if test "$cf_cv_wchar_h_okay" = no
1441 CF_PREDEFINE(_XOPEN_SOURCE_EXTENDED)
1444 dnl ---------------------------------------------------------------------------
1445 dnl CF_CHECK_WCWIDTH_GRAPHICS version: 2 updated: 2021/01/02 17:09:14
1446 dnl -------------------------
1447 dnl Most "modern" terminal emulators are based to some degree on VT100, and
1448 dnl should support line-drawing. Even with Unicode. There is a problem.
1450 dnl While most of the VT100 graphics characters were incorporated into Unicode,
1451 dnl all of those were combined into a page of useful graphics characters.
1453 dnl So far, so good.
1455 dnl However, while they are useful, there are other considerations. CJK
1456 dnl is (because of poor device resolution) often rendered as double-width
1457 dnl characters. So... for these generally-useful characters, what should
1458 dnl be the width (to make them consistent with adjacent characters)?
1460 dnl The obvious choice would have been to make this locale-dependent, and use
1461 dnl wcwidth() to tell applications what the actual width is. That was too
1462 dnl obvious. Instead, we have a slew of "ambiguous-width" characters.
1464 dnl http://www.unicode.org/reports/tr11/tr11-29.html
1465 dnl http://www.cl.cam.ac.uk/~mgk25/ucs/scw-proposal.html
1467 dnl The EastAsianWidth-6.2.0.txt file from the Unicode organization lists
1468 dnl more than 22,000 characters, with 1281 of those as ambiguous-width. For
1469 dnl instance, it lists half (44/96) of the Latin-1 characters as
1470 dnl ambiguous-width. Also, all of the box-characters at 0x2500 are ambiguous.
1472 dnl What this means for the implementor is that on some systems wcwidth() can
1473 dnl give bad advice. On Solaris, some of the ambiguous widths are returned as
1474 dnl 1 (the Latin-1 characters), while others are returned as 2 (line-drawing
1475 dnl characters). These do not necessarily match the behavior of the terminal
1476 dnl emulator. xterm, for instance, does an optional startup check to find if
1477 dnl this problem (or similar) exists with the system's locale tables, rejecting
1478 dnl them if they are too unreliable.
1479 AC_DEFUN([CF_CHECK_WCWIDTH_GRAPHICS],[
1480 AC_CACHE_CHECK(if wcwidth agrees graphics are single-width, cf_cv_wcwidth_graphics,[
1481 cat >conftest.in <<CF_EOF
1483 0x250c upper left corner
1484 0x2514 lower left corner
1485 0x2510 upper right corner
1486 0x2518 lower right corner
1487 0x251c tee pointing left
1488 0x2524 tee pointing right
1489 0x2534 tee pointing up
1490 0x252c tee pointing down
1491 0x2500 horizontal line
1492 0x2502 vertical line
1493 0x253c large plus or crossover
1497 0x2592 checker board (stipple)
1498 0x00b0 degree symbol
1501 - Teletype 5410v1 symbols
1502 0x2190 arrow pointing left
1503 0x2192 arrow pointing right
1504 0x2193 arrow pointing down
1505 0x2191 arrow pointing up
1506 0x2592 board of squares
1507 0x2603 lantern symbol
1508 0x25ae solid square block
1509 - these defaults were invented for ncurses
1512 0x2264 less-than-or-equal-to
1513 0x2265 greater-than-or-equal-to
1516 0x00a3 pound-sterling symbol
1517 - thick-line-drawing
1518 0x250f upper left corner
1519 0x2517 lower left corner
1520 0x2513 upper right corner
1521 0x251b lower right corner
1522 0x2523 tee pointing left
1523 0x252b tee pointing right
1524 0x253b tee pointing up
1525 0x2533 tee pointing down
1526 0x2501 horizontal line
1527 0x2503 vertical line
1528 0x254b large plus or crossover
1529 - double-line-drawing
1530 0x2554 upper left corner
1531 0x255a lower left corner
1532 0x2557 upper right corner
1533 0x255d lower right corner
1534 0x2563 tee pointing left
1535 0x2560 tee pointing right
1536 0x2569 tee pointing up
1537 0x2566 tee pointing down
1538 0x2550 horizontal line
1539 0x2551 vertical line
1540 0x256c large plus or crossover
1554 char buffer[MY_LEN + 1];
1555 char notes[MY_LEN + 1];
1559 if (setlocale(LC_ALL, "en_US.UTF8") ||
1560 setlocale(LC_ALL, "en_US.UTF-8") ||
1561 setlocale(LC_ALL, "en_US.utf8") ||
1562 setlocale(LC_ALL, "en_US.utf-8")) {
1563 if ((fp = fopen("conftest.in", "r")) != 0) {
1564 while (fgets(buffer, MY_LEN, fp) != 0) {
1565 if (*buffer == '-') {
1566 fprintf(stderr, "\\t%s", buffer);
1567 } else if (sscanf(buffer, "%x %s", &value, notes) == 2) {
1569 if (wcwidth(value) == 1)
1571 fprintf(stderr, "%d\\t%s", wcwidth(value), buffer);
1573 fprintf(stderr, "?\\t%s", buffer);
1578 fprintf(stderr, "%d/%d passed wcwidth/graphics check\\n", passed, totals);
1579 return (totals == passed) ? 0 : 1;
1582 [cf_cv_wcwidth_graphics=yes],
1583 [cf_cv_wcwidth_graphics=no],
1584 [cf_cv_wcwidth_graphics=unknown])
1587 dnl ---------------------------------------------------------------------------
1588 dnl CF_CLANG_COMPILER version: 8 updated: 2021/01/01 13:31:04
1589 dnl -----------------
1590 dnl Check if the given compiler is really clang. clang's C driver defines
1591 dnl __GNUC__ (fooling the configure script into setting $GCC to yes) but does
1592 dnl not ignore some gcc options.
1594 dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
1595 dnl ensure that it is not mistaken for gcc/g++. It is normally invoked from
1596 dnl the wrappers for gcc and g++ warnings.
1598 dnl $1 = GCC (default) or GXX
1599 dnl $2 = CLANG_COMPILER (default)
1600 dnl $3 = CFLAGS (default) or CXXFLAGS
1601 AC_DEFUN([CF_CLANG_COMPILER],[
1602 ifelse([$2],,CLANG_COMPILER,[$2])=no
1604 if test "$ifelse([$1],,[$1],GCC)" = yes ; then
1605 AC_MSG_CHECKING(if this is really Clang ifelse([$1],GXX,C++,C) compiler)
1606 cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
1612 ],[ifelse([$2],,CLANG_COMPILER,[$2])=yes
1614 ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
1615 AC_MSG_RESULT($ifelse([$2],,CLANG_COMPILER,[$2]))
1620 if test "x$ifelse([$2],,CLANG_COMPILER,[$2])" = "xyes" ; then
1622 (c[[1-9]][[0-9]]|*/c[[1-9]][[0-9]])
1623 AC_MSG_WARN(replacing broken compiler alias $CC)
1624 CFLAGS="$CFLAGS -std=`echo "$CC" | sed -e 's%.*/%%'`"
1629 AC_MSG_CHECKING(version of $CC)
1630 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.]].*//'`"
1631 test -z "$CLANG_VERSION" && CLANG_VERSION=unknown
1632 AC_MSG_RESULT($CLANG_VERSION)
1634 for cf_clang_opt in \
1635 -Qunused-arguments \
1636 -Wno-error=implicit-function-declaration
1638 AC_MSG_CHECKING(if option $cf_clang_opt works)
1639 cf_save_CFLAGS="$CFLAGS"
1640 CFLAGS="$CFLAGS $cf_clang_opt"
1642 #include <stdio.h>],[
1643 printf("hello!\\n");],[
1644 cf_clang_optok=yes],[
1646 AC_MSG_RESULT($cf_clang_optok)
1647 CFLAGS="$cf_save_CFLAGS"
1648 if test "$cf_clang_optok" = yes; then
1649 CF_VERBOSE(adding option $cf_clang_opt)
1650 CF_APPEND_TEXT(CFLAGS,$cf_clang_opt)
1655 dnl ---------------------------------------------------------------------------
1656 dnl CF_CONST_X_STRING version: 7 updated: 2021/06/07 17:39:17
1657 dnl -----------------
1658 dnl The X11R4-X11R6 Xt specification uses an ambiguous String type for most
1659 dnl character-strings.
1661 dnl It is ambiguous because the specification accommodated the pre-ANSI
1662 dnl compilers bundled by more than one vendor in lieu of providing a standard C
1663 dnl compiler other than by costly add-ons. Because of this, the specification
1664 dnl did not take into account the use of const for telling the compiler that
1665 dnl string literals would be in readonly memory.
1667 dnl As a workaround, one could (starting with X11R5) define XTSTRINGDEFINES, to
1668 dnl let the compiler decide how to represent Xt's strings which were #define'd.
1669 dnl That does not solve the problem of using the block of Xt's strings which
1670 dnl are compiled into the library (and is less efficient than one might want).
1672 dnl Xt specification 7 introduces the _CONST_X_STRING symbol which is used both
1673 dnl when compiling the library and compiling using the library, to tell the
1674 dnl compiler that String is const.
1675 AC_DEFUN([CF_CONST_X_STRING],
1677 AC_REQUIRE([AC_PATH_XTRA])
1679 CF_SAVE_XTRA_FLAGS([CF_CONST_X_STRING])
1684 #include <X11/Intrinsic.h>
1686 [String foo = malloc(1); free((void*)foo)],[
1688 AC_CACHE_CHECK(for X11/Xt const-feature,cf_cv_const_x_string,[
1691 #define _CONST_X_STRING /* X11R7.8 (perhaps) */
1692 #undef XTSTRINGDEFINES /* X11R5 and later */
1694 #include <X11/Intrinsic.h>
1695 ],[String foo = malloc(1); *foo = 0],[
1696 cf_cv_const_x_string=no
1698 cf_cv_const_x_string=yes
1702 CF_RESTORE_XTRA_FLAGS([CF_CONST_X_STRING])
1704 case "$cf_cv_const_x_string" in
1706 CF_APPEND_TEXT(CPPFLAGS,-DXTSTRINGDEFINES)
1709 CF_APPEND_TEXT(CPPFLAGS,-D_CONST_X_STRING)
1715 dnl ---------------------------------------------------------------------------
1716 dnl CF_CPP_PARAM_INIT version: 7 updated: 2017/01/21 11:06:25
1717 dnl -----------------
1718 dnl Check if the C++ compiler accepts duplicate parameter initialization. This
1719 dnl is a late feature for the standard and is not in some recent compilers
1721 AC_DEFUN([CF_CPP_PARAM_INIT],
1723 if test -n "$CXX"; then
1724 AC_CACHE_CHECK(if $CXX accepts parameter initialization,cf_cv_cpp_param_init,[
1736 TEST::TEST(int x = 1) // some compilers do not like second initializer
1742 [cf_cv_cpp_param_init=yes],
1743 [cf_cv_cpp_param_init=no],
1744 [cf_cv_cpp_param_init=unknown])
1748 test "$cf_cv_cpp_param_init" = yes && AC_DEFINE(CPP_HAS_PARAM_INIT,1,[Define to 1 if C++ has parameter initialization])
1750 dnl ---------------------------------------------------------------------------
1751 dnl CF_CPP_STATIC_CAST version: 3 updated: 2013/04/13 18:03:21
1752 dnl ------------------
1753 dnl Check if the C++ compiler accepts static_cast in generics. This appears to
1754 dnl not be supported in g++ before 3.0
1755 AC_DEFUN([CF_CPP_STATIC_CAST],
1757 if test -n "$CXX"; then
1759 AC_CACHE_CHECK(if $CXX accepts static_cast,cf_cv_cpp_static_cast,[
1767 NCursesPanel(int nlines,
1777 template<class T> class NCursesUserPanel : public NCursesPanel
1780 NCursesUserPanel (int nlines,
1784 const T* p_UserData = static_cast<T*>(0))
1785 : NCursesPanel (nlines, ncols, begin_y, begin_x)
1788 NCursesUserPanel(const T* p_UserData = static_cast<T*>(0)) : NCursesPanel()
1792 virtual ~NCursesUserPanel() {};
1795 const char* p_UserData = static_cast<char*>(0)],
1796 [cf_cv_cpp_static_cast=yes],
1797 [cf_cv_cpp_static_cast=no])
1804 test "$cf_cv_cpp_static_cast" = yes && AC_DEFINE(CPP_HAS_STATIC_CAST,1,[Define to 1 if C++ has static_cast])
1806 dnl ---------------------------------------------------------------------------
1807 dnl CF_CXX_AR_FLAGS version: 3 updated: 2021/01/01 13:31:04
1809 dnl Setup special archiver flags for given compilers.
1810 AC_DEFUN([CF_CXX_AR_FLAGS],[
1812 CXX_ARFLAGS='$(ARFLAGS)'
1813 case "$cf_cv_system_name" in
1815 if test "$GXX" != yes ; then
1817 CXX_ARFLAGS='-ar -o'
1821 CXXLDFLAGS="-u main"
1824 if test "$GXX" != yes ; then
1826 CXX_ARFLAGS='-xar -o'
1830 AC_SUBST(CXXLDFLAGS)
1832 AC_SUBST(CXX_ARFLAGS)
1834 dnl ---------------------------------------------------------------------------
1835 dnl CF_CXX_IOSTREAM_NAMESPACE version: 2 updated: 2012/10/06 17:56:13
1836 dnl -------------------------
1837 dnl For c++, check if iostream uses "std::" namespace.
1838 AC_DEFUN([CF_CXX_IOSTREAM_NAMESPACE],[
1839 AC_CHECK_HEADERS(iostream)
1840 if test x"$ac_cv_header_iostream" = xyes ; then
1841 AC_MSG_CHECKING(if iostream uses std-namespace)
1846 cerr << "testing" << endl;
1847 ],[cf_iostream_namespace=yes],[cf_iostream_namespace=no])
1848 AC_MSG_RESULT($cf_iostream_namespace)
1849 if test "$cf_iostream_namespace" = yes ; then
1850 AC_DEFINE(IOSTREAM_NAMESPACE,1,[Define to 1 if C++ has namespace iostream])
1854 dnl ---------------------------------------------------------------------------
1855 dnl CF_C_INLINE version: 6 updated: 2019/09/07 13:38:36
1857 dnl Check if the C compiler supports "inline".
1858 dnl $1 is the name of a shell variable to set if inline is supported
1859 dnl $2 is the threshold for gcc 4.x's option controlling maximum inline size
1860 AC_DEFUN([CF_C_INLINE],[
1861 AC_REQUIRE([CF_GCC_VERSION])
1864 if test "$ac_cv_c_inline" != no ; then
1866 if test "$INTEL_COMPILER" = yes
1869 elif test "$CLANG_COMPILER" = yes
1872 elif test "$GCC" = yes
1874 AC_CACHE_CHECK(if $CC supports options to tune inlining,cf_cv_gcc_inline,[
1875 cf_save_CFLAGS=$CFLAGS
1876 CFLAGS="$CFLAGS --param max-inline-insns-single=$2"
1877 AC_TRY_COMPILE([inline int foo(void) { return 1; }],
1878 [${cf_cv_main_return:-return} foo()],
1879 [cf_cv_gcc_inline=yes],
1880 [cf_cv_gcc_inline=no])
1881 CFLAGS=$cf_save_CFLAGS
1883 if test "$cf_cv_gcc_inline" = yes ; then
1884 CF_ADD_CFLAGS([--param max-inline-insns-single=$2])
1890 dnl ---------------------------------------------------------------------------
1891 dnl CF_DIRNAME version: 5 updated: 2020/12/31 20:19:42
1893 dnl "dirname" is not portable, so we fake it with a shell script.
1894 AC_DEFUN([CF_DIRNAME],[$1=`echo "$2" | sed -e 's%/[[^/]]*$%%'`])dnl
1895 dnl ---------------------------------------------------------------------------
1896 dnl CF_DIRS_TO_MAKE version: 4 updated: 2021/01/01 13:31:04
1898 AC_DEFUN([CF_DIRS_TO_MAKE],
1901 for cf_item in $cf_list_models
1903 CF_OBJ_SUBDIR($cf_item,cf_subdir)
1904 for cf_item2 in $DIRS_TO_MAKE
1906 test "$cf_item2" = "$cf_subdir" && break
1908 test ".$cf_item2" != ".$cf_subdir" && DIRS_TO_MAKE="$DIRS_TO_MAKE $cf_subdir"
1910 for cf_dir in $DIRS_TO_MAKE
1912 test ! -d "$cf_dir" && mkdir "$cf_dir"
1914 AC_SUBST(DIRS_TO_MAKE)
1916 dnl ---------------------------------------------------------------------------
1917 dnl CF_DISABLE_ECHO version: 14 updated: 2021/09/04 06:35:04
1919 dnl You can always use "make -n" to see the actual options, but it is hard to
1920 dnl pick out/analyze warning messages when the compile-line is long.
1923 dnl ECHO_LT - symbol to control if libtool is verbose
1924 dnl ECHO_LD - symbol to prefix "cc -o" lines
1925 dnl RULE_CC - symbol to put before implicit "cc -c" lines (e.g., .c.o)
1926 dnl SHOW_CC - symbol to put before explicit "cc -c" lines
1927 dnl ECHO_CC - symbol to put before any "cc" line
1929 AC_DEFUN([CF_DISABLE_ECHO],[
1930 AC_MSG_CHECKING(if you want to see long compiling messages)
1931 CF_ARG_DISABLE(echo,
1932 [ --disable-echo do not display "compiling" commands],
1935 ECHO_LD='@echo linking [$]@;'
1936 RULE_CC='@echo compiling [$]<'
1937 SHOW_CC='@echo compiling [$]@'
1946 AC_MSG_RESULT($enableval)
1953 dnl ---------------------------------------------------------------------------
1954 dnl CF_DISABLE_GNAT_PROJECTS version: 1 updated: 2014/06/01 11:34:00
1955 dnl ------------------------
1956 AC_DEFUN([CF_DISABLE_GNAT_PROJECTS],[
1957 AC_MSG_CHECKING(if we want to use GNAT projects)
1958 CF_ARG_DISABLE(gnat-projects,
1959 [ --disable-gnat-projects test: disable GNAT projects even if usable],
1960 [enable_gnat_projects=no],
1961 [enable_gnat_projects=yes])
1962 AC_MSG_RESULT($enable_gnat_projects)
1964 dnl ---------------------------------------------------------------------------
1965 dnl CF_DISABLE_LEAKS version: 9 updated: 2021/04/03 16:41:50
1966 dnl ----------------
1967 dnl Combine no-leak checks with the libraries or tools that are used for the
1969 AC_DEFUN([CF_DISABLE_LEAKS],[
1971 AC_REQUIRE([CF_WITH_DMALLOC])
1972 AC_REQUIRE([CF_WITH_DBMALLOC])
1973 AC_REQUIRE([CF_WITH_VALGRIND])
1975 AC_MSG_CHECKING(if you want to perform memory-leak testing)
1976 AC_ARG_ENABLE(leaks,
1977 [ --disable-leaks test: free permanent memory, analyze leaks],
1978 [enable_leaks=$enableval],
1980 dnl with_no_leaks is more readable...
1981 if test "x$enable_leaks" = xno; then with_no_leaks=yes; else with_no_leaks=no; fi
1982 AC_MSG_RESULT($with_no_leaks)
1984 if test "$enable_leaks" = no ; then
1985 AC_DEFINE(NO_LEAKS,1,[Define to 1 if you want to perform memory-leak testing.])
1986 AC_DEFINE(YY_NO_LEAKS,1,[Define to 1 if you want to perform memory-leak testing.])
1989 dnl ---------------------------------------------------------------------------
1990 dnl CF_DISABLE_LIBTOOL_VERSION version: 3 updated: 2015/04/17 21:13:04
1991 dnl --------------------------
1992 dnl Check if we should use the libtool 1.5 feature "-version-number" instead of
1993 dnl the older "-version-info" feature. The newer feature allows us to use
1994 dnl version numbering on shared libraries which make them compatible with
1995 dnl various systems.
1996 AC_DEFUN([CF_DISABLE_LIBTOOL_VERSION],
1998 AC_MSG_CHECKING(if libtool -version-number should be used)
1999 CF_ARG_DISABLE(libtool-version,
2000 [ --disable-libtool-version enable to use libtool's incompatible naming scheme],
2001 [cf_libtool_version=no],
2002 [cf_libtool_version=yes])
2003 AC_MSG_RESULT($cf_libtool_version)
2005 if test "$cf_libtool_version" = yes ; then
2006 LIBTOOL_VERSION="-version-number"
2008 LIBTOOL_VERSION="-version-info"
2011 AC_MSG_WARN(VERSION was not set)
2014 ABI_VERSION="$VERSION"
2015 CF_VERBOSE(ABI_VERSION: $ABI_VERSION)
2018 ABI_VERSION=`echo "$VERSION" | sed -e 's/:/./g'`
2019 CF_VERBOSE(ABI_VERSION: $ABI_VERSION)
2022 AC_MSG_WARN(unexpected VERSION value: $VERSION)
2027 AC_SUBST(ABI_VERSION)
2028 AC_SUBST(LIBTOOL_VERSION)
2030 dnl ---------------------------------------------------------------------------
2031 dnl CF_DISABLE_RPATH_HACK version: 3 updated: 2021/01/05 20:14:44
2032 dnl ---------------------
2033 dnl The rpath-hack makes it simpler to build programs, particularly with the
2034 dnl *BSD ports which may have essential libraries in unusual places. But it
2035 dnl can interfere with building an executable for the base system. Use this
2036 dnl option in that case.
2037 AC_DEFUN([CF_DISABLE_RPATH_HACK],
2039 AC_MSG_CHECKING(if rpath-hack should be disabled)
2040 CF_ARG_DISABLE(rpath-hack,
2041 [ --disable-rpath-hack don't add rpath options for additional libraries],
2042 [enable_rpath_hack=no],
2043 [enable_rpath_hack=yes])
2044 dnl TODO - drop cf_disable_rpath_hack
2045 if test "x$enable_rpath_hack" = xno; then cf_disable_rpath_hack=yes; else cf_disable_rpath_hack=no; fi
2046 AC_MSG_RESULT($cf_disable_rpath_hack)
2048 if test "$enable_rpath_hack" = yes ; then
2052 dnl ---------------------------------------------------------------------------
2053 dnl CF_ENABLE_BROKEN_LINKER version: 2 updated: 2021/01/02 17:09:14
2054 dnl -----------------------
2055 dnl Some linkers cannot reference a data-only object. Cygwin used to be one.
2056 dnl This usually follows CF_LINK_DATAONLY, but is not required in case we need
2057 dnl an unconditional feature.
2058 AC_DEFUN([CF_ENABLE_BROKEN_LINKER],[
2060 AC_MSG_CHECKING(if you want broken-linker support code)
2061 AC_ARG_ENABLE(broken_linker,
2062 [ --enable-broken_linker compile with broken-linker support code],
2063 [with_broken_linker=$enableval],
2064 [with_broken_linker=no])
2065 AC_MSG_RESULT($with_broken_linker)
2067 : "${BROKEN_LINKER:=0}"
2068 if test "x$with_broken_linker" = xyes ; then
2069 AC_DEFINE(BROKEN_LINKER,1,[Define to 1 to work around linkers which cannot link data-only modules])
2072 AC_SUBST(BROKEN_LINKER)
2074 dnl ---------------------------------------------------------------------------
2075 dnl CF_ENABLE_PC_FILES version: 16 updated: 2021/11/20 12:48:37
2076 dnl ------------------
2077 dnl This is the "--enable-pc-files" option, which is available if there is a
2078 dnl pkg-config configuration on the local machine.
2079 AC_DEFUN([CF_ENABLE_PC_FILES],[
2080 AC_REQUIRE([CF_PKG_CONFIG])
2081 AC_REQUIRE([CF_WITH_PKG_CONFIG_LIBDIR])
2083 if test "x$PKG_CONFIG" != xnone
2085 AC_MSG_CHECKING(if we should install .pc files for $PKG_CONFIG)
2087 AC_MSG_CHECKING(if we should install .pc files)
2090 AC_ARG_ENABLE(pc-files,
2091 [ --enable-pc-files generate and install .pc files for pkg-config],
2092 [enable_pc_files=$enableval],
2093 [enable_pc_files=no])
2094 AC_MSG_RESULT($enable_pc_files)
2096 if test "x$enable_pc_files" != xno
2099 case "x$PKG_CONFIG_LIBDIR" in
2101 AC_MSG_WARN(no PKG_CONFIG_LIBDIR was found)
2104 cf_pkg_config_libdir="$PKG_CONFIG_LIBDIR"
2105 CF_PATH_SYNTAX(cf_pkg_config_libdir)
2111 AC_SUBST(MAKE_PC_FILES)
2113 dnl ---------------------------------------------------------------------------
2114 dnl CF_ENABLE_RPATH version: 2 updated: 2010/03/27 18:39:42
2116 dnl Check if the rpath option should be used, setting cache variable
2117 dnl cf_cv_enable_rpath if so.
2118 AC_DEFUN([CF_ENABLE_RPATH],
2120 AC_MSG_CHECKING(if rpath option should be used)
2121 AC_ARG_ENABLE(rpath,
2122 [ --enable-rpath use rpath option when generating shared libraries],
2123 [cf_cv_enable_rpath=$enableval],
2124 [cf_cv_enable_rpath=no])
2125 AC_MSG_RESULT($cf_cv_enable_rpath)
2127 dnl ---------------------------------------------------------------------------
2128 dnl CF_ENABLE_STRING_HACKS version: 6 updated: 2021/01/05 19:23:48
2129 dnl ----------------------
2130 dnl On a few platforms, the compiler and/or loader nags with untruthful
2131 dnl comments stating that "most" uses of strcat/strcpy/sprintf are incorrect,
2132 dnl and implying that most uses of the recommended alternatives are correct.
2134 dnl Factually speaking, no one has actually counted the number of uses of these
2135 dnl functions versus the total of incorrect uses. Samples of a few thousand
2136 dnl instances are meaningless compared to the hundreds of millions of lines of
2137 dnl existing C code.
2139 dnl strlcat/strlcpy are (as of 2012) non-standard, and are available on some
2140 dnl platforms, in implementations of varying quality. Likewise, snprintf is
2141 dnl standard - but evolved through phases, and older implementations are likely
2142 dnl to yield surprising results, as documented in manpages on various systems.
2143 AC_DEFUN([CF_ENABLE_STRING_HACKS],
2145 AC_MSG_CHECKING(if you want to work around bogus compiler/loader warnings)
2146 AC_ARG_ENABLE(string-hacks,
2147 [ --enable-string-hacks work around bogus compiler/loader warnings],
2148 [enable_string_hacks=$enableval],
2149 [enable_string_hacks=no])
2150 AC_MSG_RESULT($enable_string_hacks)
2152 if test "x$enable_string_hacks" = "xyes"; then
2153 AC_DEFINE(USE_STRING_HACKS,1,[Define to 1 to work around bogus compiler/loader warnings])
2154 AC_MSG_WARN(enabling string-hacks to work around bogus compiler/loader warnings)
2155 AC_CHECK_FUNC(strlcat,[
2156 AC_DEFINE(HAVE_STRLCAT,1,[Define to 1 if we have strlcat function])
2158 AC_CHECK_LIB(bsd,strlcat,[
2160 AC_CHECK_HEADERS(bsd/string.h)
2161 AC_DEFINE(HAVE_STRLCAT,1,[Define to 1 if we have strlcat function])
2164 AC_CHECK_FUNCS( strlcpy snprintf )
2167 dnl ---------------------------------------------------------------------------
2168 dnl CF_ENABLE_WARNINGS version: 9 updated: 2021/01/05 19:40:50
2169 dnl ------------------
2170 dnl Configure-option to enable gcc warnings
2172 dnl $1 = extra options to add, if supported
2173 dnl $2 = option for checking attributes. By default, this is done when
2174 dnl warnings are enabled. For other values:
2175 dnl yes: always do this, e.g., to use in generated library-headers
2176 dnl no: never do this
2177 AC_DEFUN([CF_ENABLE_WARNINGS],[
2178 if test "$GCC" = yes || test "$GXX" = yes
2180 CF_FIX_WARNINGS(CFLAGS)
2181 CF_FIX_WARNINGS(CPPFLAGS)
2182 CF_FIX_WARNINGS(LDFLAGS)
2183 AC_MSG_CHECKING(if you want to turn on gcc warnings)
2184 CF_ARG_ENABLE(warnings,
2185 [ --enable-warnings test: turn on gcc compiler warnings],
2186 [enable_warnings=yes],
2187 [enable_warnings=no])
2188 AC_MSG_RESULT($enable_warnings)
2189 if test "$enable_warnings" = "yes"
2191 ifelse($2,,[CF_GCC_ATTRIBUTES])
2194 ifelse($2,yes,[CF_GCC_ATTRIBUTES])
2197 dnl ---------------------------------------------------------------------------
2198 dnl CF_ERRNO version: 5 updated: 1997/11/30 12:44:39
2200 dnl Check if 'errno' is declared in <errno.h>
2201 AC_DEFUN([CF_ERRNO],
2203 CF_CHECK_ERRNO(errno)
2205 dnl ---------------------------------------------------------------------------
2206 dnl CF_ETIP_DEFINES version: 6 updated: 2021/01/02 17:09:14
2208 dnl Test for conflicting definitions of exception in gcc 2.8.0, etc., between
2209 dnl math.h and builtin.h, only for ncurses
2210 AC_DEFUN([CF_ETIP_DEFINES],
2212 AC_MSG_CHECKING(for special defines needed for etip.h)
2213 cf_save_CXXFLAGS="$CXXFLAGS"
2216 # etip.h includes ncurses.h which includes ncurses_dll.h
2217 # But ncurses_dll.h is generated - fix here.
2218 test -d include || mkdir include
2219 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
2221 for cf_math in "" MATH_H
2223 for cf_excp in "" MATH_EXCEPTION
2225 CXXFLAGS="$cf_save_CXXFLAGS -I${srcdir}/c++ -I${srcdir}/menu -Iinclude -I${srcdir}/include"
2226 test -n "$cf_math" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_math}"
2227 test -n "$cf_excp" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_excp}"
2229 #include <etip.h.in>
2231 test -n "$cf_math" && AC_DEFINE_UNQUOTED(ETIP_NEEDS_${cf_math})
2232 test -n "$cf_excp" && AC_DEFINE_UNQUOTED(ETIP_NEEDS_${cf_excp})
2233 cf_result="$cf_math $cf_excp"
2238 AC_MSG_RESULT($cf_result)
2239 CXXFLAGS="$cf_save_CXXFLAGS"
2241 dnl ---------------------------------------------------------------------------
2242 dnl CF_FIND_LINKAGE version: 22 updated: 2020/12/31 20:19:42
2244 dnl Find a library (specifically the linkage used in the code fragment),
2245 dnl searching for it if it is not already in the library path.
2246 dnl See also CF_ADD_SEARCHPATH.
2248 dnl Parameters (4-on are optional):
2249 dnl $1 = headers for library entrypoint
2250 dnl $2 = code fragment for library entrypoint
2251 dnl $3 = the library name without the "-l" option or ".so" suffix.
2252 dnl $4 = action to perform if successful (default: update CPPFLAGS, etc)
2253 dnl $5 = action to perform if not successful
2254 dnl $6 = module name, if not the same as the library name
2255 dnl $7 = extra libraries
2257 dnl Sets these variables:
2258 dnl $cf_cv_find_linkage_$3 - yes/no according to whether linkage is found
2259 dnl $cf_cv_header_path_$3 - include-directory if needed
2260 dnl $cf_cv_library_path_$3 - library-directory if needed
2261 dnl $cf_cv_library_file_$3 - library-file if needed, e.g., -l$3
2262 AC_DEFUN([CF_FIND_LINKAGE],[
2264 # If the linkage is not already in the $CPPFLAGS/$LDFLAGS configuration, these
2265 # will be set on completion of the AC_TRY_LINK below.
2266 cf_cv_header_path_$3=
2267 cf_cv_library_path_$3=
2269 CF_MSG_LOG([Starting [FIND_LINKAGE]($3,$6)])
2271 cf_save_LIBS="$LIBS"
2273 AC_TRY_LINK([$1],[$2],[
2274 cf_cv_find_linkage_$3=yes
2275 cf_cv_header_path_$3=/usr/include
2276 cf_cv_library_path_$3=/usr/lib
2279 LIBS="-l$3 $7 $cf_save_LIBS"
2281 AC_TRY_LINK([$1],[$2],[
2282 cf_cv_find_linkage_$3=yes
2283 cf_cv_header_path_$3=/usr/include
2284 cf_cv_library_path_$3=/usr/lib
2285 cf_cv_library_file_$3="-l$3"
2287 cf_cv_find_linkage_$3=no
2288 LIBS="$cf_save_LIBS"
2290 CF_VERBOSE(find linkage for $3 library)
2291 CF_MSG_LOG([Searching for headers in [FIND_LINKAGE]($3,$6)])
2293 cf_save_CPPFLAGS="$CPPFLAGS"
2294 cf_test_CPPFLAGS="$CPPFLAGS"
2296 CF_HEADER_PATH(cf_search,ifelse([$6],,[$3],[$6]))
2297 for cf_cv_header_path_$3 in $cf_search
2299 if test -d "$cf_cv_header_path_$3" ; then
2300 CF_VERBOSE(... testing $cf_cv_header_path_$3)
2301 CPPFLAGS="$cf_save_CPPFLAGS"
2302 CF_APPEND_TEXT(CPPFLAGS,-I$cf_cv_header_path_$3)
2303 AC_TRY_COMPILE([$1],[$2],[
2304 CF_VERBOSE(... found $3 headers in $cf_cv_header_path_$3)
2305 cf_cv_find_linkage_$3=maybe
2306 cf_test_CPPFLAGS="$CPPFLAGS"
2308 CPPFLAGS="$cf_save_CPPFLAGS"
2313 if test "$cf_cv_find_linkage_$3" = maybe ; then
2315 CF_MSG_LOG([Searching for $3 library in [FIND_LINKAGE]($3,$6)])
2317 cf_save_LIBS="$LIBS"
2318 cf_save_LDFLAGS="$LDFLAGS"
2321 CPPFLAGS="$cf_test_CPPFLAGS"
2322 LIBS="-l$3 $7 $cf_save_LIBS"
2323 AC_TRY_LINK([$1],[$2],[
2324 CF_VERBOSE(... found $3 library in system)
2325 cf_cv_find_linkage_$3=yes])
2326 CPPFLAGS="$cf_save_CPPFLAGS"
2327 LIBS="$cf_save_LIBS"
2330 if test "$cf_cv_find_linkage_$3" != yes ; then
2331 CF_LIBRARY_PATH(cf_search,$3)
2332 for cf_cv_library_path_$3 in $cf_search
2334 if test -d "$cf_cv_library_path_$3" ; then
2335 CF_VERBOSE(... testing $cf_cv_library_path_$3)
2336 CPPFLAGS="$cf_test_CPPFLAGS"
2337 LIBS="-l$3 $7 $cf_save_LIBS"
2338 LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_$3"
2339 AC_TRY_LINK([$1],[$2],[
2340 CF_VERBOSE(... found $3 library in $cf_cv_library_path_$3)
2341 cf_cv_find_linkage_$3=yes
2342 cf_cv_library_file_$3="-l$3"
2344 CPPFLAGS="$cf_save_CPPFLAGS"
2345 LIBS="$cf_save_LIBS"
2346 LDFLAGS="$cf_save_LDFLAGS"
2350 CPPFLAGS="$cf_save_CPPFLAGS"
2351 LDFLAGS="$cf_save_LDFLAGS"
2355 cf_cv_find_linkage_$3=no
2360 LIBS="$cf_save_LIBS"
2362 if test "$cf_cv_find_linkage_$3" = yes ; then
2364 CF_ADD_INCDIR($cf_cv_header_path_$3)
2365 CF_ADD_LIBDIR($cf_cv_library_path_$3)
2369 ifelse([$5],,AC_MSG_WARN(Cannot find $3 library),[$5])
2372 dnl ---------------------------------------------------------------------------
2373 dnl CF_FIND_SUB_INCDIR version: 3 updated: 2021/01/01 13:31:04
2374 dnl ------------------
2375 dnl Find an include-directory with the given leaf-name. This is useful for
2376 dnl example with FreeBSD ports, which use this convention to distinguish
2377 dnl different versions of the same port.
2378 AC_DEFUN([CF_FIND_SUB_INCDIR],[
2379 CF_SUBDIR_PATH(cf_search,$1,include)
2380 for cf_item in $cf_search
2384 CF_ADD_INCDIR($cf_item)
2389 dnl ---------------------------------------------------------------------------
2390 dnl CF_FIND_SUB_LIBDIR version: 3 updated: 2021/01/01 13:31:04
2391 dnl ------------------
2392 dnl Find a library-directory with the given leaf-name. This is useful for
2393 dnl example with FreeBSD ports, which use this convention to distinguish
2394 dnl different versions of the same port.
2395 AC_DEFUN([CF_FIND_SUB_LIBDIR],[
2396 CF_SUBDIR_PATH(cf_search,$1,lib)
2397 for cf_item in $cf_search
2401 CF_ADD_LIBDIR($cf_item)
2406 dnl ---------------------------------------------------------------------------
2407 dnl CF_FIXUP_ADAFLAGS version: 2 updated: 2015/04/17 21:13:04
2408 dnl -----------------
2409 dnl make ADAFLAGS consistent with CFLAGS
2410 AC_DEFUN([CF_FIXUP_ADAFLAGS],[
2411 AC_MSG_CHECKING(optimization options for ADAFLAGS)
2419 cf_O_flag=`echo "$CFLAGS" |sed -e 's/^.*-O/-O/' -e 's/[[ ]].*//'`
2420 CF_ADD_ADAFLAGS($cf_O_flag)
2423 AC_MSG_RESULT($ADAFLAGS)
2425 dnl ---------------------------------------------------------------------------
2426 dnl CF_FIX_WARNINGS version: 3 updated: 2020/12/31 18:40:20
2428 dnl Warning flags do not belong in CFLAGS, CPPFLAGS, etc. Any of gcc's
2429 dnl "-Werror" flags can interfere with configure-checks. Those go into
2432 dnl $1 = variable name to repair
2433 define([CF_FIX_WARNINGS],[
2434 if test "$GCC" = yes || test "$GXX" = yes
2438 CF_VERBOSE(repairing $1: [$]$1)
2440 for cf_temp_scan in [$]$1
2442 case "x$cf_temp_scan" in
2444 CF_APPEND_TEXT(EXTRA_CFLAGS,$cf_temp_scan)
2447 CF_APPEND_TEXT(cf_temp_flags,$cf_temp_scan)
2452 CF_VERBOSE(... fixed [$]$1)
2453 CF_VERBOSE(... extra $EXTRA_CFLAGS)
2457 AC_SUBST(EXTRA_CFLAGS)
2459 dnl ---------------------------------------------------------------------------
2460 dnl CF_FOPEN_BIN_R version: 2 updated: 2019/12/31 08:53:54
2462 dnl Check if fopen works when the "b" (binary) flag is added to the mode
2463 dnl parameter. POSIX ignores the "b", which c89 specified. Some very old
2464 dnl systems do not accept it.
2465 AC_DEFUN([CF_FOPEN_BIN_R],[
2466 AC_CACHE_CHECK(if fopen accepts explicit binary mode,cf_cv_fopen_bin_r,[
2470 FILE *fp = fopen("conftest.tmp", "wb");
2474 for (p = 0; p < 256; ++p) {
2478 fp = fopen("conftest.tmp", "rb");
2480 for (p = 0; p < 256; ++p) {
2493 ${cf_cv_main_return:-return} (rc);
2496 [cf_cv_fopen_bin_r=yes],
2497 [cf_cv_fopen_bin_r=no],
2498 [cf_cv_fopen_bin_r=unknown])
2500 test "x$cf_cv_fopen_bin_r" != xno && AC_DEFINE(USE_FOPEN_BIN_R,1,[Define to 1 if fopen accepts explicit binary mode])
2502 dnl ---------------------------------------------------------------------------
2503 dnl CF_FORGET_TOOL version: 1 updated: 2013/04/06 18:03:09
2505 dnl Forget that we saw the given tool.
2506 AC_DEFUN([CF_FORGET_TOOL],[
2507 unset ac_cv_prog_ac_ct_$1
2511 dnl ---------------------------------------------------------------------------
2512 dnl CF_FUNC_DLSYM version: 4 updated: 2015/09/12 14:46:44
2514 dnl Test for dlsym() and related functions, as well as libdl.
2519 AC_DEFUN([CF_FUNC_DLSYM],[
2521 AC_CHECK_FUNC(dlsym,cf_have_dlsym=yes,[
2524 AC_CHECK_LIB(dl,dlsym,[
2526 cf_have_libdl=yes])])
2528 if test "$cf_have_dlsym" = yes ; then
2529 test "$cf_have_libdl" = yes && { CF_ADD_LIB(dl) }
2531 AC_MSG_CHECKING(whether able to link to dl*() functions)
2532 AC_TRY_LINK([#include <dlfcn.h>],[
2534 if ((obj = dlopen("filename", 0)) != 0) {
2535 if (dlsym(obj, "symbolname") == 0) {
2539 AC_DEFINE(HAVE_LIBDL,1,[Define to 1 if we have dl library])],[
2540 AC_MSG_ERROR(Cannot link test program for libdl)])
2543 AC_MSG_ERROR(Cannot find dlsym function)
2546 dnl ---------------------------------------------------------------------------
2547 dnl CF_FUNC_GETTTYNAM version: 1 updated: 2021/12/04 18:29:47
2548 dnl -----------------
2549 dnl Check if the 4.3BSD function getttyname exists, as well as if <ttyent.h>
2550 dnl defines the _PATH_TTYS symbol. If the corresponding file exists, but the
2551 dnl other checks fail, just define HAVE_PATH_TTYS.
2552 AC_DEFUN([CF_FUNC_GETTTYNAM],[
2553 AC_CACHE_CHECK(if _PATH_TTYS is defined in ttyent.h,cf_cv_PATH_TTYS,[
2556 #include <ttyent.h>],[
2557 FILE *fp = fopen(_PATH_TTYS, "r"); (void)fp],
2558 [cf_cv_PATH_TTYS=yes],
2559 [cf_cv_PATH_TTYS=no])])
2561 if test $cf_cv_PATH_TTYS = no
2563 for cf_ttys in /etc/ttytype /etc/ttys
2567 cf_cv_PATH_TTYS=maybe
2568 AC_DEFINE(_PATH_TTYS,$cf_ttys,[define to pathname of file containing mapping from tty name to terminal type])
2574 if test $cf_cv_PATH_TTYS != no
2576 AC_CACHE_CHECK(if _PATH_TTYS file exists,cf_cv_have_PATH_TTYS,[
2581 FILE *fp = fopen(_PATH_TTYS, "r");
2582 ${cf_cv_main_return:-return} (fp == 0);
2584 [cf_cv_have_PATH_TTYS=yes],
2585 [cf_cv_have_PATH_TTYS=no],
2586 [cf_cv_have_PATH_TTYS=unknown])])
2587 test "$cf_cv_have_PATH_TTYS" = no && cf_cv_PATH_TTYS=no
2590 if test $cf_cv_PATH_TTYS != no
2592 AC_DEFINE(HAVE_PATH_TTYS,1,[define to 1 if system can map tty name to terminal type])
2593 AC_CACHE_CHECK(for getttynam,cf_cv_func_getttynam,[
2594 AC_TRY_LINK([#include <ttyent.h>],
2595 [struct ttyent *fp = getttynam("/dev/tty"); (void)fp],
2596 [cf_cv_func_getttynam=yes],
2597 [cf_cv_func_getttynam=no])])
2598 test "$cf_cv_func_getttynam" = yes && AC_DEFINE(HAVE_GETTTYNAM)
2601 dnl ---------------------------------------------------------------------------
2602 dnl CF_FUNC_MEMMOVE version: 9 updated: 2017/01/21 11:06:25
2604 dnl Check for memmove, or a bcopy that can handle overlapping copy. If neither
2605 dnl is found, add our own version of memmove to the list of objects.
2606 AC_DEFUN([CF_FUNC_MEMMOVE],
2608 AC_CHECK_FUNC(memmove,,[
2609 AC_CHECK_FUNC(bcopy,[
2610 AC_CACHE_CHECK(if bcopy does overlapping moves,cf_cv_good_bcopy,[
2613 static char data[] = "abcdefghijklmnopqrstuwwxyz";
2615 bcopy(data, temp, sizeof(data));
2616 bcopy(temp+10, temp, 15);
2617 bcopy(temp+5, temp+15, 10);
2618 ${cf_cv_main_return:-return} (strcmp(temp, "klmnopqrstuwwxypqrstuwwxyz"));
2621 [cf_cv_good_bcopy=yes],
2622 [cf_cv_good_bcopy=no],
2623 [cf_cv_good_bcopy=unknown])
2625 ],[cf_cv_good_bcopy=no])
2626 if test "$cf_cv_good_bcopy" = yes ; then
2627 AC_DEFINE(USE_OK_BCOPY,1,[Define to 1 to use bcopy when memmove is unavailable])
2629 AC_DEFINE(USE_MY_MEMMOVE,1,[Define to 1 to use replacement function when memmove is unavailable])
2632 dnl ---------------------------------------------------------------------------
2633 dnl CF_FUNC_NANOSLEEP version: 5 updated: 2017/01/21 11:06:25
2634 dnl -----------------
2635 dnl Check for existence of workable nanosleep() function. Some systems, e.g.,
2636 dnl AIX 4.x, provide a non-working version.
2637 AC_DEFUN([CF_FUNC_NANOSLEEP],[
2638 AC_CACHE_CHECK(if nanosleep really works,cf_cv_func_nanosleep,[
2644 #ifdef HAVE_SYS_TIME_H
2645 #include <sys/time.h>
2649 struct timespec ts1, ts2;
2652 ts1.tv_nsec = 750000000;
2656 code = nanosleep(&ts1, &ts2); /* on failure errno is ENOSYS. */
2657 ${cf_cv_main_return:-return}(code != 0);
2660 [cf_cv_func_nanosleep=yes],
2661 [cf_cv_func_nanosleep=no],
2662 [cf_cv_func_nanosleep=unknown])])
2664 test "$cf_cv_func_nanosleep" = "yes" && AC_DEFINE(HAVE_NANOSLEEP,1,[Define to 1 if we have nanosleep()])
2666 dnl ---------------------------------------------------------------------------
2667 dnl CF_FUNC_OPENPTY version: 6 updated: 2021/01/01 13:31:04
2669 dnl Check for openpty() function, along with <pty.h> header. It may need the
2670 dnl "util" library as well.
2671 AC_DEFUN([CF_FUNC_OPENPTY],
2673 AC_CHECK_LIB(util,openpty,cf_cv_lib_util=yes,cf_cv_lib_util=no)
2674 AC_CACHE_CHECK(for openpty header,cf_cv_func_openpty,[
2675 cf_save_LIBS="$LIBS"
2676 test "$cf_cv_lib_util" = yes && { CF_ADD_LIB(util) }
2677 for cf_header in pty.h libutil.h util.h
2680 #include <$cf_header>
2682 int x = openpty((int *)0, (int *)0, (char *)0,
2683 (struct termios *)0, (struct winsize *)0);
2685 cf_cv_func_openpty=$cf_header
2688 cf_cv_func_openpty=no
2691 LIBS="$cf_save_LIBS"
2694 dnl ---------------------------------------------------------------------------
2695 dnl CF_FUNC_POLL version: 10 updated: 2021/01/04 19:13:57
2697 dnl See if the poll function really works. Some platforms have poll(), but
2698 dnl it does not work for terminals or files.
2699 AC_DEFUN([CF_FUNC_POLL],[
2700 tty >/dev/null 2>&1 || { AC_CHECK_FUNCS(posix_openpt) }
2701 AC_CACHE_CHECK(if poll really works,cf_cv_working_poll,[
2710 #include <sys/poll.h>
2713 struct pollfd myfds;
2716 /* check for Darwin bug with respect to "devices" */
2717 myfds.fd = open("/dev/null", 1); /* O_WRONLY */
2720 myfds.events = POLLIN;
2723 ret = poll(&myfds, 1, 100);
2725 if (ret < 0 || (myfds.revents & POLLNVAL)) {
2730 fd = open("/dev/tty", 2); /* O_RDWR */
2732 #ifdef HAVE_POSIX_OPENPT
2734 fd = posix_openpt(O_RDWR);
2739 /* also check with standard input */
2741 myfds.events = POLLIN;
2743 ret = poll(&myfds, 1, 100);
2748 ${cf_cv_main_return:-return}(ret < 0);
2750 [cf_cv_working_poll=yes],
2751 [cf_cv_working_poll=no],
2752 [cf_cv_working_poll=unknown])])
2753 test "$cf_cv_working_poll" = "yes" && AC_DEFINE(HAVE_WORKING_POLL,1,[Define to 1 if the poll function seems to work])
2755 dnl ---------------------------------------------------------------------------
2756 dnl CF_FUNC_TERMIOS version: 3 updated: 2012/10/06 17:56:13
2758 dnl Some old/broken variations define tcgetattr() only as a macro in
2760 AC_DEFUN([CF_FUNC_TERMIOS],[
2761 AC_REQUIRE([CF_STRUCT_TERMIOS])
2762 AC_CACHE_CHECK(for tcgetattr, cf_cv_have_tcgetattr,[
2764 #include <sys/types.h>
2765 #ifdef HAVE_UNISTD_H
2768 #ifdef HAVE_TERMIOS_H
2769 #include <termios.h>
2770 #define TTY struct termios
2772 #ifdef HAVE_TERMIO_H
2774 #define TTY struct termio
2779 tcgetattr(1, &foo);],
2780 [cf_cv_have_tcgetattr=yes],
2781 [cf_cv_have_tcgetattr=no])])
2782 test "$cf_cv_have_tcgetattr" = yes && AC_DEFINE(HAVE_TCGETATTR,1,[Define to 1 if we have tcgetattr])
2784 dnl ---------------------------------------------------------------------------
2785 dnl CF_FUNC_VSSCANF version: 7 updated: 2021/01/01 13:31:04
2787 dnl Check for vsscanf() function, which is in c9x but generally not in earlier
2788 dnl versions of C. It is in the GNU C library, and can often be simulated by
2789 dnl other functions.
2790 AC_DEFUN([CF_FUNC_VSSCANF],
2792 AC_CACHE_CHECK(for vsscanf function or workaround,cf_cv_func_vsscanf,[
2795 #include <stdio.h>],[
2797 vsscanf("from", "%d", ap)],[cf_cv_func_vsscanf=vsscanf],[
2800 #include <stdio.h>],[
2804 strbuf._flag = _IOREAD;
2805 strbuf._ptr = strbuf._base = (unsigned char *) str;
2806 strbuf._cnt = strlen(str);
2807 strbuf._file = _NFILE;
2808 return (vfscanf(&strbuf, "%d", ap))],[cf_cv_func_vsscanf=vfscanf],[
2811 #include <stdio.h>],[
2815 strbuf._flag = _IOREAD;
2816 strbuf._ptr = strbuf._base = (unsigned char *) str;
2817 strbuf._cnt = strlen(str);
2818 strbuf._file = _NFILE;
2819 return (_doscan(&strbuf, "%d", ap))],[cf_cv_func_vsscanf=_doscan],[
2820 cf_cv_func_vsscanf=no])])])])
2822 case "$cf_cv_func_vsscanf" in
2823 (vsscanf) AC_DEFINE(HAVE_VSSCANF,1,[Define to 1 if we have vsscanf]);;
2824 (vfscanf) AC_DEFINE(HAVE_VFSCANF,1,[Define to 1 if we have vfscanf]);;
2825 (_doscan) AC_DEFINE(HAVE__DOSCAN,1,[Define to 1 if we have _doscan]);;
2829 dnl ---------------------------------------------------------------------------
2830 dnl CF_GCC_ATTRIBUTES version: 24 updated: 2021/03/20 12:00:25
2831 dnl -----------------
2832 dnl Test for availability of useful gcc __attribute__ directives to quiet
2833 dnl compiler warnings. Though useful, not all are supported -- and contrary
2834 dnl to documentation, unrecognized directives cause older compilers to barf.
2835 AC_DEFUN([CF_GCC_ATTRIBUTES],
2836 [AC_REQUIRE([AC_PROG_FGREP])dnl
2837 AC_REQUIRE([CF_C11_NORETURN])dnl
2839 if test "$GCC" = yes || test "$GXX" = yes
2841 cat > conftest.i <<EOF
2843 #define GCC_PRINTF 0
2848 #ifndef GCC_NORETURN
2849 #define GCC_NORETURN /* nothing */
2852 #define GCC_UNUSED /* nothing */
2855 if test "$GCC" = yes
2857 AC_CHECKING([for $CC __attribute__ directives])
2858 cat > "conftest.$ac_ext" <<EOF
2859 #line __oline__ "${as_me:-configure}"
2860 #include "confdefs.h"
2861 #include "conftest.h"
2862 #include "conftest.i"
2864 #define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
2866 #define GCC_PRINTFLIKE(fmt,var) /*nothing*/
2869 #define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
2871 #define GCC_SCANFLIKE(fmt,var) /*nothing*/
2873 extern void wow(char *,...) GCC_SCANFLIKE(1,2);
2874 extern GCC_NORETURN void oops(char *,...) GCC_PRINTFLIKE(1,2);
2875 extern GCC_NORETURN void foo(void);
2876 int main(int argc GCC_UNUSED, char *argv[[]] GCC_UNUSED) { (void)argc; (void)argv; return 0; }
2878 cf_printf_attribute=no
2879 cf_scanf_attribute=no
2880 for cf_attribute in scanf printf unused noreturn
2882 CF_UPPER(cf_ATTRIBUTE,$cf_attribute)
2883 cf_directive="__attribute__(($cf_attribute))"
2884 echo "checking for $CC $cf_directive" 1>&AC_FD_CC
2886 case "$cf_attribute" in
2888 cf_printf_attribute=yes
2889 cat >conftest.h <<EOF
2890 #define GCC_$cf_ATTRIBUTE 1
2894 cf_scanf_attribute=yes
2895 cat >conftest.h <<EOF
2896 #define GCC_$cf_ATTRIBUTE 1
2900 cat >conftest.h <<EOF
2901 #define GCC_$cf_ATTRIBUTE $cf_directive
2906 if AC_TRY_EVAL(ac_compile); then
2907 test -n "$verbose" && AC_MSG_RESULT(... $cf_attribute)
2908 cat conftest.h >>confdefs.h
2909 case "$cf_attribute" in
2911 AC_DEFINE_UNQUOTED(GCC_NORETURN,$cf_directive,[Define to noreturn-attribute for gcc])
2914 cf_value='/* nothing */'
2915 if test "$cf_printf_attribute" != no ; then
2916 cf_value='__attribute__((format(printf,fmt,var)))'
2917 AC_DEFINE(GCC_PRINTF,1,[Define to 1 if the compiler supports gcc-like printf attribute.])
2919 AC_DEFINE_UNQUOTED(GCC_PRINTFLIKE(fmt,var),$cf_value,[Define to printf-attribute for gcc])
2922 cf_value='/* nothing */'
2923 if test "$cf_scanf_attribute" != no ; then
2924 cf_value='__attribute__((format(scanf,fmt,var)))'
2925 AC_DEFINE(GCC_SCANF,1,[Define to 1 if the compiler supports gcc-like scanf attribute.])
2927 AC_DEFINE_UNQUOTED(GCC_SCANFLIKE(fmt,var),$cf_value,[Define to sscanf-attribute for gcc])
2930 AC_DEFINE_UNQUOTED(GCC_UNUSED,$cf_directive,[Define to unused-attribute for gcc])
2936 ${FGREP-fgrep} define conftest.i >>confdefs.h
2941 dnl ---------------------------------------------------------------------------
2942 dnl CF_GCC_VERSION version: 8 updated: 2019/09/07 13:38:36
2944 dnl Find version of gcc, and (because icc/clang pretend to be gcc without being
2945 dnl compatible), attempt to determine if icc/clang is actually used.
2946 AC_DEFUN([CF_GCC_VERSION],[
2947 AC_REQUIRE([AC_PROG_CC])
2949 if test "$GCC" = yes ; then
2950 AC_MSG_CHECKING(version of $CC)
2951 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.]].*//'`"
2952 test -z "$GCC_VERSION" && GCC_VERSION=unknown
2953 AC_MSG_RESULT($GCC_VERSION)
2955 CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
2956 CF_CLANG_COMPILER(GCC,CLANG_COMPILER,CFLAGS)
2958 dnl ---------------------------------------------------------------------------
2959 dnl CF_GCC_WARNINGS version: 41 updated: 2021/01/01 16:53:59
2961 dnl Check if the compiler supports useful warning options. There's a few that
2962 dnl we don't use, simply because they're too noisy:
2964 dnl -Wconversion (useful in older versions of gcc, but not in gcc 2.7.x)
2965 dnl -Winline (usually not worthwhile)
2966 dnl -Wredundant-decls (system headers make this too noisy)
2967 dnl -Wtraditional (combines too many unrelated messages, only a few useful)
2968 dnl -Wwrite-strings (too noisy, but should review occasionally). This
2969 dnl is enabled for ncurses using "--enable-const".
2973 dnl $1 is an optional list of gcc warning flags that a particular
2974 dnl application might want to use, e.g., "no-unused" for
2977 dnl If $with_ext_const is "yes", add a check for -Wwrite-strings
2979 AC_DEFUN([CF_GCC_WARNINGS],
2981 AC_REQUIRE([CF_GCC_VERSION])
2982 if test "x$have_x" = xyes; then CF_CONST_X_STRING fi
2983 cat > "conftest.$ac_ext" <<EOF
2984 #line __oline__ "${as_me:-configure}"
2985 int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
2987 if test "$INTEL_COMPILER" = yes
2989 # The "-wdXXX" options suppress warnings:
2990 # remark #1419: external declaration in primary source file
2991 # remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
2992 # remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
2993 # remark #193: zero used for undefined preprocessing identifier
2994 # remark #593: variable "curs_sb_left_arrow" was set but never used
2995 # remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
2996 # remark #869: parameter "tw" was never referenced
2997 # remark #981: operands are evaluated in unspecified order
2998 # warning #279: controlling expression is constant
3000 AC_CHECKING([for $CC warning options])
3001 cf_save_CFLAGS="$CFLAGS"
3002 EXTRA_CFLAGS="$EXTRA_CFLAGS -Wall"
3014 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
3015 if AC_TRY_EVAL(ac_compile); then
3016 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
3017 EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
3020 CFLAGS="$cf_save_CFLAGS"
3021 elif test "$GCC" = yes && test "$GCC_VERSION" != "unknown"
3023 AC_CHECKING([for $CC warning options])
3024 cf_save_CFLAGS="$CFLAGS"
3026 test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
3027 cf_gcc_warnings="Wignored-qualifiers Wlogical-op Wvarargs"
3028 test "x$CLANG_COMPILER" = xyes && cf_gcc_warnings=
3029 for cf_opt in W Wall \
3030 Wbad-function-cast \
3033 Wdeclaration-after-statement \
3036 Wmissing-declarations \
3037 Wmissing-prototypes \
3041 Wstrict-prototypes \
3042 Wundef Wno-inline $cf_gcc_warnings $cf_warn_CONST $1
3044 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
3045 if AC_TRY_EVAL(ac_compile); then
3046 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
3049 case "$GCC_VERSION" in
3051 CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
3056 case "$GCC_VERSION" in
3058 CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
3063 EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
3066 CFLAGS="$cf_save_CFLAGS"
3070 AC_SUBST(EXTRA_CFLAGS)
3072 dnl ---------------------------------------------------------------------------
3073 dnl CF_GETOPT_HEADER version: 8 updated: 2021/06/19 19:16:16
3074 dnl ----------------
3075 dnl Check for getopt's variables which are commonly defined in stdlib.h,
3076 dnl unistd.h or (nonstandard) in getopt.h
3077 AC_DEFUN([CF_GETOPT_HEADER],
3079 AC_HAVE_HEADERS(unistd.h getopt.h)
3080 AC_CACHE_CHECK(for header declaring getopt variables,cf_cv_getopt_header,[
3081 cf_cv_getopt_header=none
3082 for cf_header in stdio.h stdlib.h unistd.h getopt.h
3085 #include <$cf_header>],
3086 [int x = optind; char *y = optarg; (void)x; (void)y],
3087 [cf_cv_getopt_header=$cf_header
3091 if test "$cf_cv_getopt_header" != none ; then
3092 AC_DEFINE(HAVE_GETOPT_HEADER,1,[Define to 1 if getopt variables are declared in header])
3094 if test "$cf_cv_getopt_header" = getopt.h ; then
3095 AC_DEFINE(NEED_GETOPT_H,1,[Define to 1 if we must include getopt.h])
3098 dnl ---------------------------------------------------------------------------
3099 dnl CF_GNATPREP_OPT_T version: 1 updated: 2014/08/02 18:37:25
3100 dnl -----------------
3101 AC_DEFUN([CF_GNATPREP_OPT_T],[
3102 AC_CACHE_CHECK(if GNATPREP supports -T option,cf_cv_gnatprep_opt_t,[
3103 cf_cv_gnatprep_opt_t=no
3104 gnatprep -T 2>/dev/null >/dev/null && cf_cv_gnatprep_opt_t=yes
3106 test "$cf_cv_gnatprep_opt_t" = yes && GNATPREP_OPTS="-T $GNATPREP_OPTS"
3107 AC_SUBST(GNATPREP_OPTS)
3109 dnl ---------------------------------------------------------------------------
3110 dnl CF_GNAT_GENERICS version: 7 updated: 2021/01/01 13:31:04
3111 dnl ----------------
3112 AC_DEFUN([CF_GNAT_GENERICS],
3114 AC_REQUIRE([CF_GNAT_VERSION])
3116 AC_MSG_CHECKING(if GNAT supports generics)
3117 case "$cf_cv_gnat_version" in
3118 (3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*|[[1-9]][[0-9]].[[0-9]]*|20[[0-9]][[0-9]])
3119 cf_gnat_generics=yes
3125 AC_MSG_RESULT($cf_gnat_generics)
3127 if test "$cf_gnat_generics" = yes
3129 cf_compile_generics=generics
3130 cf_generic_objects="\${GENOBJS}"
3132 cf_compile_generics=
3136 AC_SUBST(cf_compile_generics)
3137 AC_SUBST(cf_generic_objects)
3139 dnl ---------------------------------------------------------------------------
3140 dnl CF_GNAT_PROJECTS version: 13 updated: 2021/01/02 17:09:14
3141 dnl ----------------
3142 dnl GNAT projects are configured with ".gpr" project files.
3143 dnl GNAT libraries are a further development, using the project feature.
3144 AC_DEFUN([CF_GNAT_PROJECTS],
3146 AC_REQUIRE([CF_GNAT_VERSION])
3147 AC_REQUIRE([CF_DISABLE_GNAT_PROJECTS])
3149 cf_gnat_libraries=no
3152 if test "$enable_gnat_projects" != no ; then
3153 AC_MSG_CHECKING(if GNAT supports project files)
3154 case "$cf_cv_gnat_version" in
3158 case "$cf_cv_system_name" in
3162 rm -rf ./conftest* ./*~conftest*
3163 if mkdir conftest.src conftest.bin conftest.lib
3166 rm -rf ./conftest* ./*~conftest*
3167 cat >>library.gpr <<CF_EOF
3169 Kind := External ("LIB_KIND");
3170 for Library_Name use "ConfTest";
3171 for Object_Dir use ".";
3172 for Library_ALI_Dir use External("LIBRARY_DIR");
3173 for Library_Version use External ("SONAME");
3174 for Library_Kind use Kind;
3175 for Library_Dir use External("BUILD_DIR");
3176 Source_Dir := External ("SOURCE_DIR");
3177 for Source_Dirs use (Source_Dir);
3180 cat >>confpackage.ads <<CF_EOF
3181 package ConfPackage is
3185 cat >>confpackage.adb <<CF_EOF
3187 package body ConfPackage is
3188 procedure conftest is
3190 Text_IO.Put ("Hello World");
3195 if ( "$cf_ada_make" $ADAFLAGS \
3197 -XBUILD_DIR="`cd ../conftest.bin;pwd`" \
3198 -XLIBRARY_DIR="`cd ../conftest.lib;pwd`" \
3199 -XSOURCE_DIR="`pwd`" \
3200 -XSONAME=libConfTest.so.1 \
3201 -XLIB_KIND=static 1>&AC_FD_CC 2>&1 ) ; then
3202 cf_gnat_projects=yes
3206 if test -f conftest.lib/confpackage.ali
3208 cf_gnat_libraries=yes
3210 rm -rf ./conftest* ./*~conftest*
3215 AC_MSG_RESULT($cf_gnat_projects)
3216 fi # enable_gnat_projects
3218 if test "$cf_gnat_projects" = yes
3220 AC_MSG_CHECKING(if GNAT supports libraries)
3221 AC_MSG_RESULT($cf_gnat_libraries)
3224 USE_OLD_MAKERULES=""
3225 USE_GNAT_PROJECTS="#"
3226 USE_GNAT_MAKE_GPR="#"
3227 USE_GNAT_GPRBUILD="#"
3229 if test "$cf_gnat_projects" = yes
3231 USE_OLD_MAKERULES="#"
3232 USE_GNAT_PROJECTS=""
3233 if test "$cf_cv_VERSION_GPRBUILD" != no
3235 USE_GNAT_GPRBUILD=""
3236 elif test "$cf_cv_VERSION_GNATMAKE" != no
3238 USE_GNAT_MAKE_GPR=""
3240 AC_MSG_WARN(use old makefile rules since tools are missing)
3244 if test "$cf_gnat_libraries" = yes
3246 USE_GNAT_LIBRARIES=""
3248 USE_GNAT_LIBRARIES="#"
3251 AC_SUBST(USE_OLD_MAKERULES)
3252 AC_SUBST(USE_GNAT_PROJECTS)
3253 AC_SUBST(USE_GNAT_LIBRARIES)
3254 AC_SUBST(USE_GNAT_MAKE_GPR)
3255 AC_SUBST(USE_GNAT_GPRBUILD)
3257 dnl ---------------------------------------------------------------------------
3258 dnl CF_GNAT_SIGINT version: 2 updated: 2021/01/01 13:31:04
3260 dnl Check if gnat supports SIGINT, and presumably tasking. For the latter, it
3261 dnl is noted that gnat may compile a tasking unit even for configurations which
3262 dnl fail at runtime.
3263 AC_DEFUN([CF_GNAT_SIGINT],[
3264 AC_CACHE_CHECK(if GNAT supports SIGINT,cf_cv_gnat_sigint,[
3265 CF_GNAT_TRY_LINK([with Ada.Interrupts.Names;
3269 pragma Warnings (Off); -- the next pragma exists since 3.11p
3270 pragma Unreserve_All_Interrupts;
3271 pragma Warnings (On);
3273 protected Process is
3275 function Continue return Boolean;
3276 pragma Attach_Handler (Stop, Ada.Interrupts.Names.SIGINT);
3278 Done : Boolean := False;
3282 [package body ConfTest is
3283 protected body Process is
3288 function Continue return Boolean is
3294 [cf_cv_gnat_sigint=yes],
3295 [cf_cv_gnat_sigint=no])])
3297 if test "$cf_cv_gnat_sigint" = yes ; then
3302 AC_SUBST(USE_GNAT_SIGINT)
3304 dnl ---------------------------------------------------------------------------
3305 dnl CF_GNAT_TRY_LINK version: 4 updated: 2021/01/01 13:31:04
3306 dnl ----------------
3307 dnl Verify that a test program compiles/links with GNAT.
3308 dnl $cf_ada_make is set to the program that compiles/links
3309 dnl $ADAFLAGS may be set to the GNAT flags.
3311 dnl $1 is the text of the spec
3312 dnl $2 is the text of the body
3313 dnl $3 is the shell command to execute if successful
3314 dnl $4 is the shell command to execute if not successful
3315 AC_DEFUN([CF_GNAT_TRY_LINK],
3317 rm -rf ./conftest* ./*~conftest*
3318 cat >>conftest.ads <<CF_EOF
3321 cat >>conftest.adb <<CF_EOF
3324 if ( "$cf_ada_make" $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
3325 ifelse($3,, :,[ $3])
3329 rm -rf ./conftest* ./*~conftest*
3331 dnl ---------------------------------------------------------------------------
3332 dnl CF_GNAT_TRY_RUN version: 6 updated: 2021/01/01 13:31:04
3334 dnl Verify that a test program compiles and runs with GNAT
3335 dnl $cf_ada_make is set to the program that compiles/links
3336 dnl $ADAFLAGS may be set to the GNAT flags.
3338 dnl $1 is the text of the spec
3339 dnl $2 is the text of the body
3340 dnl $3 is the shell command to execute if successful
3341 dnl $4 is the shell command to execute if not successful
3342 AC_DEFUN([CF_GNAT_TRY_RUN],
3344 rm -rf ./conftest* ./*~conftest*
3345 cat >>conftest.ads <<CF_EOF
3348 cat >>conftest.adb <<CF_EOF
3351 if ( "$cf_ada_make" $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
3352 if ( ./conftest 1>&AC_FD_CC 2>&1 ) ; then
3353 ifelse($3,, :,[ $3])
3360 rm -rf ./conftest* ./*~conftest*
3362 dnl ---------------------------------------------------------------------------
3363 dnl CF_GNAT_VERSION version: 22 updated: 2019/12/31 08:53:54
3365 dnl $1 = cache variable to update
3366 dnl $2 = program name
3367 dnl Verify version of GNAT or related tool
3368 AC_DEFUN([CF_GNAT_VERSION],
3370 AC_CACHE_CHECK(for ifelse($2,,gnat,$2) version, cf_cv_gnat_version,[
3371 cf_cv_gnat_version=`ifelse($2,,${cf_ada_make:-gnatmake},$2) --version 2>&1 | \
3372 grep '[[0-9]].[[0-9]][[0-9]]*' |\
3373 sed -e '2,$d' -e 's/[[^0-9 \.]]//g' -e 's/^[[ ]]*//' -e 's/ .*//'`
3375 test -z "$cf_cv_gnat_version" && cf_cv_gnat_version=no
3376 ifelse($1,,,[eval $1=$cf_cv_gnat_version; unset cf_cv_gnat_version])
3378 dnl ---------------------------------------------------------------------------
3379 dnl CF_GNU_SOURCE version: 10 updated: 2018/12/10 20:09:41
3381 dnl Check if we must define _GNU_SOURCE to get a reasonable value for
3382 dnl _XOPEN_SOURCE, upon which many POSIX definitions depend. This is a defect
3383 dnl (or misfeature) of glibc2, which breaks portability of many applications,
3384 dnl since it is interwoven with GNU extensions.
3386 dnl Well, yes we could work around it...
3389 dnl $1 is the nominal value for _XOPEN_SOURCE
3390 AC_DEFUN([CF_GNU_SOURCE],
3392 cf_gnu_xopen_source=ifelse($1,,500,$1)
3394 AC_CACHE_CHECK(if this is the GNU C library,cf_cv_gnu_library,[
3395 AC_TRY_COMPILE([#include <sys/types.h>],[
3396 #if __GLIBC__ > 0 && __GLIBC_MINOR__ >= 0
3398 #elif __NEWLIB__ > 0 && __NEWLIB_MINOR__ >= 0
3401 # error not GNU C library
3403 [cf_cv_gnu_library=yes],
3404 [cf_cv_gnu_library=no])
3407 if test x$cf_cv_gnu_library = xyes; then
3409 # With glibc 2.19 (13 years after this check was begun), _DEFAULT_SOURCE
3410 # was changed to help a little. newlib incorporated the change about 4
3412 AC_CACHE_CHECK(if _DEFAULT_SOURCE can be used as a basis,cf_cv_gnu_library_219,[
3414 CF_APPEND_TEXT(CPPFLAGS,-D_DEFAULT_SOURCE)
3415 AC_TRY_COMPILE([#include <sys/types.h>],[
3416 #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 19) || (__GLIBC__ > 2)
3418 #elif (__NEWLIB__ == 2 && __NEWLIB_MINOR__ >= 4) || (__GLIBC__ > 3)
3421 # error GNU C library __GLIBC__.__GLIBC_MINOR__ is too old
3423 [cf_cv_gnu_library_219=yes],
3424 [cf_cv_gnu_library_219=no])
3428 if test "x$cf_cv_gnu_library_219" = xyes; then
3430 AC_CACHE_CHECK(if _XOPEN_SOURCE=$cf_gnu_xopen_source works with _DEFAULT_SOURCE,cf_cv_gnu_dftsrc_219,[
3431 CF_ADD_CFLAGS(-D_DEFAULT_SOURCE -D_XOPEN_SOURCE=$cf_gnu_xopen_source)
3434 #include <sys/types.h>
3436 #if (_XOPEN_SOURCE >= $cf_gnu_xopen_source) && (MB_LEN_MAX > 1)
3439 # error GNU C library is too old
3441 [cf_cv_gnu_dftsrc_219=yes],
3442 [cf_cv_gnu_dftsrc_219=no])
3444 test "x$cf_cv_gnu_dftsrc_219" = "xyes" || CPPFLAGS="$cf_save"
3446 cf_cv_gnu_dftsrc_219=maybe
3449 if test "x$cf_cv_gnu_dftsrc_219" != xyes; then
3451 AC_CACHE_CHECK(if we must define _GNU_SOURCE,cf_cv_gnu_source,[
3452 AC_TRY_COMPILE([#include <sys/types.h>],[
3453 #ifndef _XOPEN_SOURCE
3454 #error expected _XOPEN_SOURCE to be defined
3456 [cf_cv_gnu_source=no],
3457 [cf_save="$CPPFLAGS"
3458 CF_ADD_CFLAGS(-D_GNU_SOURCE)
3459 AC_TRY_COMPILE([#include <sys/types.h>],[
3460 #ifdef _XOPEN_SOURCE
3461 #error expected _XOPEN_SOURCE to be undefined
3463 [cf_cv_gnu_source=no],
3464 [cf_cv_gnu_source=yes])
3469 if test "$cf_cv_gnu_source" = yes
3471 AC_CACHE_CHECK(if we should also define _DEFAULT_SOURCE,cf_cv_default_source,[
3472 CF_APPEND_TEXT(CPPFLAGS,-D_GNU_SOURCE)
3473 AC_TRY_COMPILE([#include <sys/types.h>],[
3474 #ifdef _DEFAULT_SOURCE
3475 #error expected _DEFAULT_SOURCE to be undefined
3477 [cf_cv_default_source=no],
3478 [cf_cv_default_source=yes])
3480 if test "$cf_cv_default_source" = yes
3482 CF_APPEND_TEXT(CPPFLAGS,-D_DEFAULT_SOURCE)
3489 dnl ---------------------------------------------------------------------------
3490 dnl CF_GPP_LIBRARY version: 13 updated: 2021/01/01 13:31:04
3492 dnl If we're trying to use g++, test if libg++ is installed (a rather common
3493 dnl problem :-). If we have the compiler but no library, we'll be able to
3494 dnl configure, but won't be able to build the c++ demo program.
3495 AC_DEFUN([CF_GPP_LIBRARY],
3497 cf_cxx_library=unknown
3498 case "$cf_cv_system_name" in
3506 if test "$GXX" = yes; then
3507 AC_MSG_CHECKING([for lib$cf_gpp_libname])
3509 CF_ADD_LIB($cf_gpp_libname)
3511 #include <$cf_gpp_libname/builtin.h>
3513 [two_arg_error_handler_t foo2 = lib_error_handler],
3515 CF_ADD_LIB($cf_gpp_libname,CXXLIBS)
3516 if test "$cf_gpp_libname" = cpp ; then
3517 AC_DEFINE(HAVE_GPP_BUILTIN_H,1,[Define to 1 if we have gpp builtin.h])
3519 AC_DEFINE(HAVE_GXX_BUILTIN_H,1,[Define to 1 if we have g++ builtin.h])
3522 #include <builtin.h>
3524 [two_arg_error_handler_t foo2 = lib_error_handler],
3526 CF_ADD_LIB($cf_gpp_libname,CXXLIBS)
3527 AC_DEFINE(HAVE_BUILTIN_H,1,[Define to 1 if we have builtin.h])],
3528 [cf_cxx_library=no])])
3530 AC_MSG_RESULT($cf_cxx_library)
3533 dnl ---------------------------------------------------------------------------
3534 dnl CF_GXX_VERSION version: 8 updated: 2017/02/11 14:48:57
3536 dnl Check for version of g++
3537 AC_DEFUN([CF_GXX_VERSION],[
3538 AC_REQUIRE([AC_PROG_CPP])
3540 if test "$GXX" = yes; then
3541 AC_MSG_CHECKING(version of ${CXX:-g++})
3542 GXX_VERSION="`${CXX:-g++} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
3543 if test -z "$GXX_VERSION"
3548 AC_MSG_RESULT($GXX_VERSION)
3551 dnl ---------------------------------------------------------------------------
3552 dnl CF_GXX_WARNINGS version: 11 updated: 2021/01/08 16:50:55
3554 dnl Check if the compiler supports useful warning options.
3556 dnl Most of gcc's options apply to g++, except:
3557 dnl -Wbad-function-cast
3558 dnl -Wmissing-declarations
3559 dnl -Wnested-externs
3561 dnl Omit a few (for now):
3565 dnl $1 is an optional list of g++ warning flags that a particular
3566 dnl application might want to use, e.g., "no-unused" for
3569 dnl If $with_ext_const is "yes", add a check for -Wwrite-strings
3571 AC_DEFUN([CF_GXX_WARNINGS],
3574 CF_INTEL_COMPILER(GXX,INTEL_CPLUSPLUS,CXXFLAGS)
3575 CF_CLANG_COMPILER(GXX,CLANG_CPLUSPLUS,CXXFLAGS)
3577 AC_REQUIRE([CF_GXX_VERSION])
3582 cat > conftest.$ac_ext <<EOF
3583 #line __oline__ "configure"
3584 int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
3587 if test "$INTEL_CPLUSPLUS" = yes
3589 # The "-wdXXX" options suppress warnings:
3590 # remark #1419: external declaration in primary source file
3591 # remark #1682: implicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
3592 # remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
3593 # remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
3594 # remark #193: zero used for undefined preprocessing identifier
3595 # remark #593: variable "curs_sb_left_arrow" was set but never used
3596 # remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
3597 # remark #869: parameter "tw" was never referenced
3598 # remark #981: operands are evaluated in unspecified order
3599 # warning #269: invalid format string conversion
3601 AC_CHECKING([for $CC warning options])
3602 cf_save_CXXFLAGS="$CXXFLAGS"
3603 EXTRA_CXXFLAGS="-Wall"
3616 CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -$cf_opt"
3617 if AC_TRY_EVAL(ac_compile); then
3618 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
3619 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
3622 CXXFLAGS="$cf_save_CXXFLAGS"
3624 elif test "$GXX" = yes
3626 AC_CHECKING([for $CXX warning options])
3627 cf_save_CXXFLAGS="$CXXFLAGS"
3628 EXTRA_CXXFLAGS="-W -Wall"
3629 cf_gxx_extra_warnings=""
3630 test "$with_ext_const" = yes && cf_gxx_extra_warnings="Wwrite-strings"
3631 case "$GXX_VERSION" in
3635 cf_gxx_extra_warnings="$cf_gxx_extra_warnings Weffc++"
3642 Wignored-qualifiers \
3644 Woverloaded-virtual \
3652 Wundef $cf_gxx_extra_warnings $1
3654 CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -Werror -$cf_opt"
3655 if AC_TRY_EVAL(ac_compile); then
3656 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
3657 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
3659 test -n "$verbose" && AC_MSG_RESULT(... no -$cf_opt)
3662 CXXFLAGS="$cf_save_CXXFLAGS"
3667 AC_SUBST(EXTRA_CXXFLAGS)
3669 dnl ---------------------------------------------------------------------------
3670 dnl CF_HASHED_DB version: 7 updated: 2015/04/18 08:56:57
3672 dnl Look for an instance of the Berkeley hashed database.
3674 dnl $1 = optional parameter, to specify install-prefix for the database.
3675 AC_DEFUN([CF_HASHED_DB],
3682 if test -d "$1" ; then
3683 CF_ADD_INCDIR($1/include)
3684 CF_ADD_LIBDIR($1/lib)
3688 AC_MSG_WARN(no such directory $1)
3691 CF_FIND_SUB_INCDIR($1)
3692 CF_FIND_SUB_LIBDIR($1)
3698 AC_CHECK_HEADER(db.h,[
3699 CF_HASHED_DB_VERSION
3700 if test "$cf_cv_hashed_db_version" = unknown ; then
3701 AC_MSG_ERROR(Cannot determine version of db)
3704 if test "$cf_cv_hashed_db_libs" = unknown ; then
3705 AC_MSG_ERROR(Cannot determine library for db)
3706 elif test "$cf_cv_hashed_db_libs" != default ; then
3707 CF_ADD_LIB($cf_cv_hashed_db_libs)
3711 AC_MSG_ERROR(Cannot find db.h)
3714 dnl ---------------------------------------------------------------------------
3715 dnl CF_HASHED_DB_LIBS version: 10 updated: 2021/01/02 17:09:14
3716 dnl -----------------
3717 dnl Given that we have the header and version for hashed database, find the
3718 dnl library information.
3719 AC_DEFUN([CF_HASHED_DB_LIBS],
3721 AC_CACHE_CHECK(for db libraries, cf_cv_hashed_db_libs,[
3722 cf_cv_hashed_db_libs=unknown
3723 for cf_db_libs in "" db$cf_cv_hashed_db_version db-$cf_cv_hashed_db_version db ''
3725 cf_save_libs="$LIBS"
3726 if test -n "$cf_db_libs"; then
3727 CF_ADD_LIB($cf_db_libs)
3729 CF_MSG_LOG(checking for library $cf_db_libs)
3731 $ac_includes_default
3734 char *path = "/tmp/foo";
3735 #ifdef DB_VERSION_MAJOR
3736 #if DB_VERSION_MAJOR >= 4
3738 db_create(&result, NULL, 0);
3739 result->open(result,
3746 #elif DB_VERSION_MAJOR >= 3
3748 db_create(&result, NULL, 0);
3749 result->open(result,
3755 #elif DB_VERSION_MAJOR >= 2
3764 #endif /* DB_VERSION_MAJOR */
3766 DB *result = dbopen(path,
3772 ${cf_cv_main_return:-return}(result != 0)
3774 if test -n "$cf_db_libs" ; then
3775 cf_cv_hashed_db_libs=$cf_db_libs
3777 cf_cv_hashed_db_libs=default
3779 LIBS="$cf_save_libs"
3782 LIBS="$cf_save_libs"
3786 dnl ---------------------------------------------------------------------------
3787 dnl CF_HASHED_DB_VERSION version: 4 updated: 2014/04/12 16:47:01
3788 dnl --------------------
3789 dnl Given that we have the header file for hashed database, find the version
3791 AC_DEFUN([CF_HASHED_DB_VERSION],
3793 AC_CACHE_CHECK(for version of db, cf_cv_hashed_db_version,[
3794 cf_cv_hashed_db_version=unknown
3796 for cf_db_version in 1 2 3 4 5 6
3798 CF_MSG_LOG(checking for db version $cf_db_version)
3800 $ac_includes_default
3803 #ifdef DB_VERSION_MAJOR
3804 /* db2 (DB_VERSION_MAJOR=2) has also DB_VERSION_MINOR, tested with 7 */
3805 #if $cf_db_version == DB_VERSION_MAJOR
3811 #if $cf_db_version == 1
3812 /* ok: assuming this is DB 1.8.5 */
3818 cf_cv_hashed_db_version=$cf_db_version
3824 dnl ---------------------------------------------------------------------------
3825 dnl CF_HEADER_PATH version: 15 updated: 2021/01/01 13:31:04
3827 dnl Construct a search-list of directories for a nonstandard header-file
3830 dnl $1 = the variable to return as result
3831 dnl $2 = the package name
3832 AC_DEFUN([CF_HEADER_PATH],
3836 # collect the current set of include-directories from compiler flags
3837 cf_header_path_list=""
3838 if test -n "${CFLAGS}${CPPFLAGS}" ; then
3839 for cf_header_path in $CPPFLAGS $CFLAGS
3841 case "$cf_header_path" in
3843 cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'`
3844 CF_ADD_SUBDIR_PATH($1,$2,include,$cf_header_path,NONE)
3845 cf_header_path_list="$cf_header_path_list [$]$1"
3851 # add the variations for the package we are looking for
3852 CF_SUBDIR_PATH($1,$2,include)
3854 test "$includedir" != NONE && \
3855 test "$includedir" != "/usr/include" && \
3856 test -d "$includedir" && {
3857 test -d "$includedir" && $1="[$]$1 $includedir"
3858 test -d "$includedir/$2" && $1="[$]$1 $includedir/$2"
3861 test "$oldincludedir" != NONE && \
3862 test "$oldincludedir" != "/usr/include" && \
3863 test -d "$oldincludedir" && {
3864 test -d "$oldincludedir" && $1="[$]$1 $oldincludedir"
3865 test -d "$oldincludedir/$2" && $1="[$]$1 $oldincludedir/$2"
3868 $1="[$]$1 $cf_header_path_list"
3870 dnl ---------------------------------------------------------------------------
3871 dnl CF_HELP_MESSAGE version: 4 updated: 2019/12/31 08:53:54
3873 dnl Insert text into the help-message, for readability, from AC_ARG_WITH.
3874 AC_DEFUN([CF_HELP_MESSAGE],
3875 [CF_ACVERSION_CHECK(2.53,[],[
3876 AC_DIVERT_HELP($1)])dnl
3878 dnl ---------------------------------------------------------------------------
3879 dnl CF_INCLUDE_DIRS version: 10 updated: 2014/09/19 20:58:42
3881 dnl Construct the list of include-options according to whether we're building
3882 dnl in the source directory or using '--srcdir=DIR' option.
3883 AC_DEFUN([CF_INCLUDE_DIRS],
3885 if test "$srcdir" != "."; then
3886 CPPFLAGS="-I\${srcdir}/../include $CPPFLAGS"
3888 CPPFLAGS="-I../include $CPPFLAGS"
3889 if test "$srcdir" != "."; then
3890 CPPFLAGS="-I\${srcdir} $CPPFLAGS"
3892 CPPFLAGS="-I. $CPPFLAGS"
3895 dnl ---------------------------------------------------------------------------
3896 dnl CF_INSTALL_OPTS version: 2 updated: 2018/08/18 12:19:21
3898 dnl prompt for/fill-in useful install-program options
3899 AC_DEFUN([CF_INSTALL_OPTS],
3905 dnl ---------------------------------------------------------------------------
3906 dnl CF_INSTALL_OPT_O version: 3 updated: 2020/12/31 20:19:42
3907 dnl ----------------
3908 dnl Almost all "install" programs default to the current user's ownership.
3909 dnl Almost - MINIX is an exception.
3910 AC_DEFUN([CF_INSTALL_OPT_O],
3912 AC_MSG_CHECKING(if install needs to be told about ownership)
3913 case `$ac_config_guess` in
3922 AC_MSG_RESULT($with_install_o)
3923 if test "x$with_install_o" = xyes
3925 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'`"
3930 AC_SUBST(INSTALL_OPT_O)
3932 dnl ---------------------------------------------------------------------------
3933 dnl CF_INSTALL_OPT_P version: 3 updated: 2021/01/01 13:31:04
3934 dnl ----------------
3935 dnl Some install-programs accept a "-p" option to preserve file modification
3936 dnl timestamps. That can be useful as an install option, as well as a way to
3937 dnl avoid the need for ranlib after copying a static archive.
3938 AC_DEFUN([CF_INSTALL_OPT_P],
3940 : "${INSTALL:=install}"
3941 AC_CACHE_CHECK(if install accepts -p option, cf_cv_install_p,[
3946 if $INSTALL -p conftest.in conftest.out 2>/dev/null
3948 if test -f conftest.out/conftest.in
3950 test conftest.in -nt conftest.out/conftest.in 2>conftest.err && \
3951 test conftest.out/conftest.in -nt conftest.in 2>conftest.err
3952 if test -s conftest.err
3967 dnl ---------------------------------------------------------------------------
3968 dnl CF_INSTALL_OPT_S version: 3 updated: 2021/01/05 19:23:48
3969 dnl ----------------
3970 dnl By default, we should strip executables which are installed, but leave the
3971 dnl ability to suppress that for unit-testing.
3972 AC_DEFUN([CF_INSTALL_OPT_S],
3974 AC_MSG_CHECKING(if you want to install stripped executables)
3975 CF_ARG_DISABLE(stripping,
3976 [ --disable-stripping do not strip (debug info) installed executables],
3977 [enable_stripping=no],
3978 [enable_stripping=yes])
3979 AC_MSG_RESULT($enable_stripping)
3981 if test "$enable_stripping" = yes
3987 AC_SUBST(INSTALL_OPT_S)
3989 dnl ---------------------------------------------------------------------------
3990 dnl CF_INTEL_COMPILER version: 8 updated: 2021/01/01 16:53:59
3991 dnl -----------------
3992 dnl Check if the given compiler is really the Intel compiler for Linux. It
3993 dnl tries to imitate gcc, but does not return an error when it finds a mismatch
3994 dnl between prototypes, e.g., as exercised by CF_MISSING_CHECK.
3996 dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
3997 dnl ensure that it is not mistaken for gcc/g++. It is normally invoked from
3998 dnl the wrappers for gcc and g++ warnings.
4000 dnl $1 = GCC (default) or GXX
4001 dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS
4002 dnl $3 = CFLAGS (default) or CXXFLAGS
4003 AC_DEFUN([CF_INTEL_COMPILER],[
4004 AC_REQUIRE([AC_CANONICAL_HOST])
4005 ifelse([$2],,INTEL_COMPILER,[$2])=no
4007 if test "$ifelse([$1],,[$1],GCC)" = yes ; then
4010 AC_MSG_CHECKING(if this is really Intel ifelse([$1],GXX,C++,C) compiler)
4011 cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
4012 ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -no-gcc"
4014 #ifdef __INTEL_COMPILER
4018 ],[ifelse([$2],,INTEL_COMPILER,[$2])=yes
4019 cf_save_CFLAGS="$cf_save_CFLAGS -we147"
4021 ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
4022 AC_MSG_RESULT($ifelse([$2],,INTEL_COMPILER,[$2]))
4027 dnl ---------------------------------------------------------------------------
4028 dnl CF_ISASCII version: 4 updated: 2012/10/06 17:56:13
4030 dnl Check if we have either a function or macro for 'isascii()'.
4031 AC_DEFUN([CF_ISASCII],
4033 AC_MSG_CHECKING(for isascii)
4034 AC_CACHE_VAL(cf_cv_have_isascii,[
4035 AC_TRY_LINK([#include <ctype.h>],[int x = isascii(' ')],
4036 [cf_cv_have_isascii=yes],
4037 [cf_cv_have_isascii=no])
4039 AC_MSG_RESULT($cf_cv_have_isascii)
4040 test "$cf_cv_have_isascii" = yes && AC_DEFINE(HAVE_ISASCII,1,[Define to 1 if we have isascii()])
4042 dnl ---------------------------------------------------------------------------
4043 dnl CF_LARGEFILE version: 12 updated: 2020/03/19 20:23:48
4045 dnl Add checks for large file support.
4046 AC_DEFUN([CF_LARGEFILE],[
4047 ifdef([AC_FUNC_FSEEKO],[
4049 if test "$enable_largefile" != no ; then
4052 # Normally we would collect these definitions in the config.h,
4053 # but (like _XOPEN_SOURCE), some environments rely on having these
4054 # defined before any of the system headers are included. Another
4055 # case comes up with C++, e.g., on AIX the compiler compiles the
4056 # header files by themselves before looking at the body files it is
4057 # told to compile. For ncurses, those header files do not include
4059 if test "$ac_cv_sys_large_files" != no
4061 CF_APPEND_TEXT(CPPFLAGS,-D_LARGE_FILES)
4063 if test "$ac_cv_sys_largefile_source" != no
4065 CF_APPEND_TEXT(CPPFLAGS,-D_LARGEFILE_SOURCE)
4067 if test "$ac_cv_sys_file_offset_bits" != no
4069 CF_APPEND_TEXT(CPPFLAGS,-D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits)
4072 AC_CACHE_CHECK(whether to use struct dirent64, cf_cv_struct_dirent64,[
4074 #pragma GCC diagnostic error "-Wincompatible-pointer-types"
4075 #include <sys/types.h>
4078 /* if transitional largefile support is setup, this is true */
4079 extern struct dirent64 * readdir(DIR *);
4080 struct dirent64 *x = readdir((DIR *)0);
4081 struct dirent *y = readdir((DIR *)0);
4085 [cf_cv_struct_dirent64=yes],
4086 [cf_cv_struct_dirent64=no])
4088 test "$cf_cv_struct_dirent64" = yes && AC_DEFINE(HAVE_STRUCT_DIRENT64,1,[Define to 1 if we have struct dirent64])
4092 dnl ---------------------------------------------------------------------------
4093 dnl CF_LDFLAGS_STATIC version: 14 updated: 2021/01/02 17:09:14
4094 dnl -----------------
4095 dnl Check for compiler/linker flags used to temporarily force usage of static
4096 dnl libraries. This depends on the compiler and platform. Use this to help
4097 dnl ensure that the linker picks up a given library based on its position in
4098 dnl the list of linker options and libraries.
4099 AC_DEFUN([CF_LDFLAGS_STATIC],[
4101 if test "$GCC" = yes ; then
4102 case "$cf_cv_system_name" in
4103 (OS/2*|os2*|aix[[4]]*|solaris2.1[[0-9]]|darwin*)
4107 (*) # normally, except when broken
4108 LDFLAGS_STATIC=-static
4109 LDFLAGS_SHARED=-dynamic
4113 case "$cf_cv_system_name" in
4114 (aix[[4-7]]*) # from ld manpage
4115 LDFLAGS_STATIC=-bstatic
4116 LDFLAGS_SHARED=-bdynamic
4118 (hpux*) # from ld manpage for hpux10.20, hpux11.11
4119 # We could also use just "archive" and "shared".
4120 LDFLAGS_STATIC=-Wl,-a,archive_shared
4121 LDFLAGS_SHARED=-Wl,-a,shared_archive
4123 (irix*) # from ld manpage IRIX64
4124 LDFLAGS_STATIC=-Bstatic
4125 LDFLAGS_SHARED=-Bdynamic
4127 (osf[[45]]*) # from ld manpage osf4.0d, osf5.1
4128 # alternative "-oldstyle_liblookup" (not in cc manpage)
4129 LDFLAGS_STATIC=-noso
4130 LDFLAGS_SHARED=-so_archive
4133 LDFLAGS_STATIC=-Bstatic
4134 LDFLAGS_SHARED=-Bdynamic
4139 if test -n "$LDFLAGS_STATIC" && test -n "$LDFLAGS_SHARED"
4141 AC_MSG_CHECKING(if linker supports switching between static/dynamic)
4144 cat >conftest.$ac_ext <<EOF
4145 #line __oline__ "configure"
4147 int cf_ldflags_static(FILE *fp) { return fflush(fp); }
4149 if AC_TRY_EVAL(ac_compile) ; then
4150 ( $AR $ARFLAGS libconftest.a conftest.o ) 2>&AC_FD_CC 1>/dev/null
4151 ( eval $RANLIB libconftest.a ) 2>&AC_FD_CC >/dev/null
4155 cf_save_LIBS="$LIBS"
4157 LIBS="$LDFLAGS_STATIC -L`pwd` -lconftest $LDFLAGS_DYNAMIC $LIBS"
4159 #line __oline__ "configure"
4161 int cf_ldflags_static(FILE *fp);
4163 return cf_ldflags_static(stdin);
4165 # some linkers simply ignore the -dynamic
4166 case x`file "conftest$ac_exeext" 2>/dev/null` in
4168 cf_ldflags_static=no
4171 cf_ldflags_static=yes
4174 ],[cf_ldflags_static=no])
4177 LIBS="$cf_save_LIBS"
4179 AC_MSG_RESULT($cf_ldflags_static)
4181 if test "$cf_ldflags_static" != yes
4191 AC_SUBST(LDFLAGS_STATIC)
4192 AC_SUBST(LDFLAGS_SHARED)
4194 dnl ---------------------------------------------------------------------------
4195 dnl CF_LD_RPATH_OPT version: 9 updated: 2021/01/01 13:31:04
4197 dnl For the given system and compiler, find the compiler flags to pass to the
4198 dnl loader to use the "rpath" feature.
4199 AC_DEFUN([CF_LD_RPATH_OPT],
4201 AC_REQUIRE([CF_CHECK_CACHE])
4204 if test "x$cf_cv_enable_rpath" != xno
4206 AC_MSG_CHECKING(for an rpath option)
4207 case "$cf_cv_system_name" in
4209 if test "$GCC" = yes; then
4210 LD_RPATH_OPT="-Wl,-rpath,"
4212 LD_RPATH_OPT="-rpath "
4215 (linux*|gnu*|k*bsd*-gnu|freebsd*)
4216 LD_RPATH_OPT="-Wl,-rpath,"
4218 (openbsd[[2-9]].*|mirbsd*)
4219 LD_RPATH_OPT="-Wl,-rpath,"
4222 LD_RPATH_OPT="-rpath "
4225 LD_RPATH_OPT="-Wl,-rpath,"
4228 LD_RPATH_OPT="-rpath "
4236 AC_MSG_RESULT($LD_RPATH_OPT)
4238 case "x$LD_RPATH_OPT" in
4240 AC_MSG_CHECKING(if we need a space after rpath option)
4241 cf_save_LIBS="$LIBS"
4242 CF_ADD_LIBS(${LD_RPATH_OPT}$libdir)
4243 AC_TRY_LINK(, , cf_rpath_space=no, cf_rpath_space=yes)
4244 LIBS="$cf_save_LIBS"
4245 AC_MSG_RESULT($cf_rpath_space)
4246 test "$cf_rpath_space" = yes && LD_RPATH_OPT="$LD_RPATH_OPT "
4251 dnl ---------------------------------------------------------------------------
4252 dnl CF_LD_SEARCHPATH version: 3 updated: 2021/03/05 19:13:35
4253 dnl ----------------
4254 dnl Try to obtain the linker's search-path, for use in scripts.
4256 dnl Ignore LD_LIBRARY_PATH, etc.
4257 AC_DEFUN([CF_LD_SEARCHPATH],[
4258 AC_CACHE_CHECK(for linker search path,cf_cv_ld_searchpath,[
4260 if test "$cross_compiling" != yes ; then
4262 # GNU binutils' ld does not involve permissions which may stop ldconfig.
4263 cf_pathlist=`ld --verbose 2>/dev/null | grep SEARCH_DIR | sed -e 's,SEARCH_DIR[[("=]][[("=]]*,,g' -e 's/"[[)]];//gp' | sort -u`
4265 # The -NX options tell newer versions of Linux ldconfig to not attempt to
4266 # update the cache, which makes it run faster.
4267 test -z "$cf_pathlist" && \
4268 cf_pathlist=`(ldconfig -NX -v) 2>/dev/null | sed -e '/^[[ ]]/d' -e 's/:$//' | sort -u`
4270 test -z "$cf_pathlist" &&
4271 cf_pathlist=`(ldconfig -v) 2>/dev/null | sed -n -e '/^[[ ]]/d' -e 's/:$//p' | sort -u`
4273 # This works with OpenBSD 6.5, which lists only filenames
4274 test -z "$cf_pathlist" &&
4275 cf_pathlist=`(ldconfig -v) 2>/dev/null | sed -n -e 's,^Adding \(.*\)/.*[$],\1,p' | sort -u`
4277 if test -z "$cf_pathlist"
4279 # dyld default path with MacOS
4280 if test -f /usr/bin/otool && test "x`uname -s`" = xDarwin
4282 # do this to bypass check
4283 cf_cv_ld_searchpath='$HOME/lib'
4284 cf_pathlist="/usr/local/lib /lib /usr/lib"
4288 if test -z "$cf_pathlist"
4290 # Solaris is "SunOS"
4291 if test -f /usr/bin/isainfo && test "x`uname -s`" = xSunOS
4293 case x`(isainfo -b)` in
4295 cf_pathlist="$cf_pathlist /lib/64 /usr/lib/64"
4298 test -d /usr/ccs/lib && cf_pathlist="$cf_pathlist /usr/ccs/lib"
4299 cf_pathlist="$cf_pathlist /lib /usr/lib"
4302 AC_MSG_WARN(problem with Solaris architecture)
4308 if test -z "$cf_pathlist"
4311 if test x"`uname -s`" = xHP-UX
4313 case x`getconf LONG_BIT` in
4315 cf_pathlist="/usr/lib/hpux64"
4318 cf_pathlist="/usr/lib/hpux32"
4326 # If nothing else, assume it is conventional
4327 test -z "$cf_pathlist" && cf_pathlist="/usr/lib /lib"
4329 # Finally, check that this is only directories
4330 for cf_path in [$]0 $cf_pathlist
4332 if test -d "$cf_path"; then
4333 test -n "$cf_cv_ld_searchpath" && cf_cv_ld_searchpath="${cf_cv_ld_searchpath} "
4334 cf_cv_ld_searchpath="${cf_cv_ld_searchpath}${cf_path}"
4338 # Ensure that it is nonempty
4339 test -z "$cf_cv_ld_searchpath" && cf_cv_ld_searchpath=/usr/lib
4342 LD_SEARCHPATH=`echo "$cf_cv_ld_searchpath"|sed -e 's/ /|/g'`
4343 AC_SUBST(LD_SEARCHPATH)
4345 dnl ---------------------------------------------------------------------------
4346 dnl CF_LIBRARY_PATH version: 11 updated: 2021/01/01 13:31:04
4348 dnl Construct a search-list of directories for a nonstandard library-file
4351 dnl $1 = the variable to return as result
4352 dnl $2 = the package name
4353 AC_DEFUN([CF_LIBRARY_PATH],
4356 cf_library_path_list=""
4357 if test -n "${LDFLAGS}${LIBS}" ; then
4358 for cf_library_path in $LDFLAGS $LIBS
4360 case "$cf_library_path" in
4362 cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'`
4363 CF_ADD_SUBDIR_PATH($1,$2,lib,$cf_library_path,NONE)
4364 cf_library_path_list="$cf_library_path_list [$]$1"
4370 CF_SUBDIR_PATH($1,$2,lib)
4372 $1="$cf_library_path_list [$]$1"
4374 dnl ---------------------------------------------------------------------------
4375 dnl CF_LIBTOOL_VERSION version: 1 updated: 2013/04/06 18:03:09
4376 dnl ------------------
4377 AC_DEFUN([CF_LIBTOOL_VERSION],[
4378 if test -n "$LIBTOOL" && test "$LIBTOOL" != none
4380 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.]].*//'`
4382 cf_cv_libtool_version=
4384 test -z "$cf_cv_libtool_version" && unset cf_cv_libtool_version
4386 dnl ---------------------------------------------------------------------------
4387 dnl CF_LIB_PREFIX version: 14 updated: 2021/01/01 13:31:04
4389 dnl Compute the library-prefix for the given host system
4390 dnl $1 = variable to set
4391 define([CF_LIB_PREFIX],
4393 case "$cf_cv_system_name" in
4395 if test "$DFT_LWR_MODEL" = libtool; then
4404 (*) LIB_PREFIX='lib'
4407 ifelse($1,,,[$1=$LIB_PREFIX])
4408 AC_SUBST(LIB_PREFIX)
4410 dnl ---------------------------------------------------------------------------
4411 dnl CF_LIB_RULES version: 97 updated: 2021/07/17 13:10:54
4413 dnl Append definitions and rules for the given models to the subdirectory
4414 dnl Makefiles, and the recursion rule for the top-level Makefile. If the
4415 dnl subdirectory is a library-source directory, modify the Libs_To_Make list in
4416 dnl the corresponding makefile to list the models that we'll generate.
4418 dnl For shared libraries, make a list of symbolic links to construct when
4419 dnl generating each library. The convention used for Linux is the simplest
4422 dnl lib<name>.so.<major> ->
4423 dnl lib<name>.so.<maj>.<minor>
4425 dnl Note: Libs_To_Make is mixed case, since it is not a pure autoconf variable.
4426 AC_DEFUN([CF_LIB_RULES],
4427 [AC_REQUIRE([AC_PROG_FGREP])dnl
4428 AC_REQUIRE([CF_MAKE_PHONY])dnl
4430 cf_prefix=$LIB_PREFIX
4431 AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
4433 case "$cf_cv_shlib_version" in
4434 (cygdll|msysdll|mingw|msvcdll)
4435 TINFO_NAME=$TINFO_ARG_SUFFIX
4440 if test -n "$TINFO_SUFFIX" ; then
4441 case "$TINFO_SUFFIX" in
4443 TINFO_NAME="${TINFO_NAME}tw${EXTRA_SUFFIX}"
4444 TINFO_SUFFIX=`echo "$TINFO_SUFFIX" | sed 's/^tw'$EXTRA_SUFFIX'//'`
4447 TINFO_NAME="${TINFO_NAME}t${EXTRA_SUFFIX}"
4448 TINFO_SUFFIX=`echo "$TINFO_SUFFIX" | sed 's/^t'$EXTRA_SUFFIX'//'`
4451 TINFO_NAME="${TINFO_NAME}w${EXTRA_SUFFIX}"
4452 TINFO_SUFFIX=`echo "$TINFO_SUFFIX" | sed 's/^w'$EXTRA_SUFFIX'//'`
4457 for cf_dir in $SRC_SUBDIRS
4459 if test ! -d "$srcdir/$cf_dir" ; then
4461 elif test -f "$srcdir/$cf_dir/modules" ; then
4466 if test -n "${cf_cv_abi_version}" && test "x${cf_cv_abi_version}" != "x5"
4468 cf_awk_program="$cf_awk_program\
4469 /deprecated in ABI${cf_cv_abi_version}/ { next; }\
4470 { sub(\"NCURSES([[WT]]+)?\", \"&${cf_cv_abi_version}\"); }\
4474 if test "x$WILDCARD_SYMS" = xno
4476 cf_awk_program="$cf_awk_program\
4477 /[[ ]]_\\*;/ { skip=1; next; }\
4481 if test "x$cf_awk_program" != "x"
4483 cat >>$cf_dir/Makefile <<CF_EOF
4485 # Generated by CF_LIB_RULES
4486 resulting.map: $UNALTERED_SYMS
4487 $AWK 'BEGIN { skip = 1; last=""; } \
4489 { if ( last != "" && ( skip == 0 || \[$]\[$]0 !~ /}/ ) ) { print last; }\
4490 skip = 0; last = \[$]\[$]0; } \
4491 END { print last; }' < "$UNALTERED_SYMS" >\[$]@
4498 for cf_item in $cf_LIST_MODELS
4500 CF_LIB_SUFFIX($cf_item,cf_suffix,cf_depsuf)
4501 if test "$cf_dir" = "c++"
4503 CF_MAP_LIB_BASENAME(cf_libname,cxx)
4505 CF_MAP_LIB_BASENAME(cf_libname,$cf_dir)
4507 test -z "$cf_libname" && cf_libname="$cf_dir"
4508 if test "$cf_item" = shared ; then
4509 if test -n "${LIB_SUFFIX}"
4511 cf_shared_suffix=`echo "$cf_suffix" | sed 's/^'"${USE_LIB_SUFFIX}"'//'`
4513 cf_shared_suffix="$cf_suffix"
4515 if test "$cf_cv_do_symlinks" = yes ; then
4518 case "$cf_cv_shlib_version" in
4520 cf_version_name=REL_VERSION
4523 cf_version_name=ABI_VERSION
4527 if test -n "$cf_version_name"
4529 case "$cf_cv_system_name" in
4532 cf_suffix="${USE_LIB_SUFFIX}"'.${'$cf_version_name'}'"$cf_shared_suffix"
4535 cf_suffix="$cf_suffix"'.${'$cf_version_name'}'
4539 if test -n "${USE_LIB_SUFFIX}"
4541 cf_shared_suffix=`echo "$cf_suffix" | sed 's/^'"${USE_LIB_SUFFIX}"'//'`
4543 cf_shared_suffix="$cf_suffix"
4546 # cygwin needs import library, and has unique naming convention
4547 # use autodetected ${cf_prefix} for import lib and static lib, but
4548 # use 'cyg' prefix for shared lib.
4549 case "$cf_cv_shlib_version" in
4551 cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
4552 cf_add_lib="../lib/cyg${cf_libname}${cf_cygsuf}"
4555 cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
4556 cf_add_lib="../lib/msys-${cf_libname}${cf_cygsuf}"
4559 cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
4560 cf_add_lib="../lib/lib${cf_libname}${cf_cygsuf}"
4563 cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
4564 cf_add_lib="../lib/${cf_libname}${cf_cygsuf}"
4570 if test -n "$cf_add_lib"
4572 Libs_To_Make="$Libs_To_Make $cf_add_lib"
4576 cf_add_lib="../lib/${cf_prefix}${cf_libname}${cf_suffix}"
4577 Libs_To_Make="$Libs_To_Make $cf_add_lib"
4580 if test "$cf_dir" = ncurses ; then
4581 cf_subsets="$LIB_SUBSETS"
4582 cf_r_parts="$cf_subsets"
4583 cf_liblist="$Libs_To_Make"
4585 while test -n "$cf_r_parts"
4587 cf_l_parts=`echo "$cf_r_parts" |sed -e 's/ .*$//'`
4588 cf_r_parts=`echo "$cf_r_parts" |sed -e 's/^[[^ ]]* //'`
4589 if test "$cf_l_parts" != "$cf_r_parts" ; then
4591 case "$cf_l_parts" in
4593 cf_add_lib=`echo "$cf_liblist" |sed -e s%${LIB_NAME}${USE_LIB_SUFFIX}%${TINFO_LIB_SUFFIX}%g`
4596 cf_add_lib=`echo "$cf_liblist" |sed -e s%${LIB_NAME}${USE_LIB_SUFFIX}%${TICS_LIB_SUFFIX}%g`
4602 if test -n "$cf_add_lib"; then
4603 Libs_To_Make="$cf_add_lib $Libs_To_Make"
4610 cf_subsets=`echo "$LIB_SUBSETS" | sed -e 's/^termlib.* //'`
4613 if test "$cf_dir" = c++; then
4614 if test "x$with_shared_cxx" != xyes && test -n "$cf_shared_suffix"; then
4616 for cf_item in $Libs_To_Make
4622 cf_item=`echo "$cf_item" | sed -e "s,"$cf_shared_suffix",.a,"`
4625 for cf_test in $cf_list
4627 if test "$cf_test" = "$cf_item"
4629 cf_LIST_MODELS=`echo "$cf_LIST_MODELS" | sed -e 's/normal//'`
4634 test -n "$cf_item" && cf_list="$cf_list $cf_item"
4636 Libs_To_Make="$cf_list"
4640 sed -e "s%@Libs_To_Make@%$Libs_To_Make%" \
4641 -e "s%@SHARED_LIB@%$SHARED_LIB%" \
4642 "$cf_dir/Makefile" >$cf_dir/Makefile.out
4643 mv "$cf_dir/Makefile.out" "$cf_dir/Makefile"
4645 $AWK -f "$srcdir/mk-0th.awk" \
4646 libname="${cf_dir}${LIB_SUFFIX}" subsets="$LIB_SUBSETS" ticlib="$TICS_LIB_SUFFIX" termlib="$TINFO_LIB_SUFFIX" \
4647 "$srcdir/$cf_dir/modules" >>$cf_dir/Makefile
4649 for cf_subset in $cf_subsets
4652 for cf_item in $cf_LIST_MODELS
4655 echo "Appending rules for ${cf_item} model (${cf_dir}: ${cf_subset})"
4656 CF_UPPER(cf_ITEM,$cf_item)
4659 if test "$CXX_MODEL" = SHARED; then
4660 case "$cf_cv_shlib_version" in
4661 (cygdll|msysdll|mingw|msvcdll)
4662 test "x$with_shared_cxx" = xno && CF_VERBOSE(overriding CXX_MODEL to SHARED)
4666 test "x$with_shared_cxx" = xno && CXX_MODEL=NORMAL
4671 CF_LIB_SUFFIX($cf_item,cf_suffix,cf_depsuf)
4672 CF_OBJ_SUBDIR($cf_item,cf_subdir)
4674 # Test for case where we build libtinfo with a different name.
4676 if test "$cf_dir" = ncurses ; then
4677 case "$cf_subset" in
4679 cf_libname=${cf_libname}$USE_LIB_SUFFIX
4682 cf_libname=$TINFO_LIB_SUFFIX
4685 cf_libname=$TICS_LIB_SUFFIX
4688 elif test "$cf_dir" = c++ ; then
4689 CF_MAP_LIB_BASENAME(cf_libname,cxx)
4690 cf_libname=${cf_libname}$USE_LIB_SUFFIX
4692 CF_MAP_LIB_BASENAME(cf_libname,$cf_dir)
4693 cf_libname=${cf_libname}$USE_LIB_SUFFIX
4695 if test -n "${USE_ARG_SUFFIX}" ; then
4696 # undo $USE_LIB_SUFFIX add-on in CF_LIB_SUFFIX
4697 cf_suffix=`echo "$cf_suffix" |sed -e "s%^${USE_LIB_SUFFIX}%%"`
4700 # These dependencies really are for development, not
4701 # builds, but they are useful in porting, too.
4702 cf_depend="../include/ncurses_cfg.h"
4703 if test "$srcdir" = "."; then
4706 cf_reldir="\${srcdir}"
4709 if test -f "$srcdir/$cf_dir/$cf_dir.priv.h" ; then
4710 cf_depend="$cf_depend $cf_reldir/$cf_dir.priv.h"
4711 elif test -f "$srcdir/$cf_dir/curses.priv.h" ; then
4712 cf_depend="$cf_depend $cf_reldir/curses.priv.h"
4716 old_cf_suffix="$cf_suffix"
4717 if test "$cf_cv_shlib_version_infix" = yes ; then
4718 if test -n "$USE_LIB_SUFFIX" ; then
4719 case "$USE_LIB_SUFFIX" in
4721 cf_libname=`echo "$cf_libname" | sed 's/tw'$EXTRA_SUFFIX'$//'`
4722 cf_suffix=`echo "$cf_suffix" | sed 's/^tw'$EXTRA_SUFFIX'//'`
4723 cf_dir_suffix=tw$EXTRA_SUFFIX
4726 cf_libname=`echo "$cf_libname" | sed 's/t'$EXTRA_SUFFIX'$//'`
4727 cf_suffix=`echo "$cf_suffix" | sed 's/^t'$EXTRA_SUFFIX'//'`
4728 cf_dir_suffix=t$EXTRA_SUFFIX
4731 cf_libname=`echo "$cf_libname" | sed 's/w'$EXTRA_SUFFIX'$//'`
4732 cf_suffix=`echo "$cf_suffix" | sed 's/^w'$EXTRA_SUFFIX'//'`
4733 cf_dir_suffix=w$EXTRA_SUFFIX
4736 cf_libname=`echo "$cf_libname" | sed 's/'$EXTRA_SUFFIX'$//'`
4737 cf_suffix=`echo "$cf_suffix" | sed 's/^'$EXTRA_SUFFIX'//'`
4738 cf_dir_suffix=$EXTRA_SUFFIX
4744 $AWK -f "$srcdir/mk-1st.awk" \
4745 name=${cf_libname}${cf_dir_suffix} \
4746 traces=$LIB_TRACING \
4748 CXX_MODEL=$CXX_MODEL \
4749 LIB_SUFFIX=$LIB_SUFFIX \
4750 USE_LIB_SUFFIX=$USE_LIB_SUFFIX \
4751 make_phony="${cf_cv_make_PHONY:-no}" \
4756 driver=$cf_cv_term_driver \
4758 TermlibRoot=$TINFO_NAME \
4759 TermlibSuffix=$TINFO_SUFFIX \
4760 ShlibVer=$cf_cv_shlib_version \
4761 ShlibVerInfix=$cf_cv_shlib_version_infix \
4762 ReLink=${cf_cv_do_relink:-no} \
4763 ReRanlib=${cf_cv_do_reranlib:-yes} \
4764 DoLinks=$cf_cv_do_symlinks \
4765 rmSoLocs=$cf_cv_rm_so_locs \
4766 ldconfig="$LDCONFIG" \
4767 overwrite=$WITH_OVERWRITE \
4768 depend="$cf_depend" \
4770 libtool_version="$LIBTOOL_VERSION" \
4771 "$srcdir/$cf_dir/modules" >>$cf_dir/Makefile
4773 cf_suffix="$old_cf_suffix"
4775 for cf_subdir2 in $cf_subdirs lib
4777 test "$cf_subdir" = "$cf_subdir2" && break
4779 test "${cf_subset}.${cf_subdir2}" != "${cf_subset}.${cf_subdir}" && \
4780 $AWK -f "$srcdir/mk-2nd.awk" \
4782 traces=$LIB_TRACING \
4788 crenames=$cf_cv_prog_CC_c_o \
4789 cxxrenames=$cf_cv_prog_CXX_c_o \
4790 "$srcdir/$cf_dir/modules" >>$cf_dir/Makefile
4791 cf_subdirs="$cf_subdirs $cf_subdir"
4796 echo ' ( cd '$cf_dir' && ${MAKE} ${TOP_MFLAGS} [$]@ )' >>Makefile
4800 echo '# generated by CF_LIB_RULES' >> Makefile
4802 if test "x$cf_cv_make_PHONY" = xyes ; then
4803 cat >> Makefile <<-CF_EOF
4807 .PHONY : install.includes
4808 .PHONY : uninstall.includes
4809 .PHONY : install.libs
4810 .PHONY : uninstall.libs
4814 for cf_dir in $SRC_SUBDIRS
4816 if test ! -d "$srcdir/$cf_dir" ; then
4820 if test -f "$cf_dir/Makefile" ; then
4823 echo 'libs \' >> Makefile
4824 echo 'install.libs \' >> Makefile
4825 echo 'uninstall.libs ::' >> Makefile
4826 echo ' ( cd '$cf_dir' && ${MAKE} ${TOP_MFLAGS} [$]@ )' >> Makefile
4831 if test -f "$srcdir/$cf_dir/modules" ; then
4833 if test "x$cf_cv_make_PHONY" = xyes ; then
4834 cat >> Makefile <<-CF_EOF
4836 .PHONY : install.$cf_dir
4837 .PHONY : uninstall.$cf_dir
4842 if test -f "$srcdir/$cf_dir/headers" ; then
4843 cat >> Makefile <<CF_EOF
4845 uninstall.includes \\
4849 cat >> Makefile <<CF_EOF
4856 uninstall.$cf_dir ::
4857 ( cd "$cf_dir" && \${MAKE} \${TOP_MFLAGS} \[$]@ )
4859 elif test -f "$srcdir/$cf_dir/headers" ; then
4860 cat >> Makefile <<CF_EOF
4866 uninstall.includes ::
4867 ( cd "$cf_dir" && \${MAKE} \${TOP_MFLAGS} \[$]@ )
4872 if test "x$cf_cv_make_PHONY" = xyes ; then
4873 cat >> Makefile <<-CF_EOF
4875 .PHONY : install.data
4876 .PHONY : uninstall.data
4880 if test "x$cf_with_db_install" = xyes; then
4881 cat >> Makefile <<CF_EOF
4883 install.libs uninstall.libs \\
4884 install.data uninstall.data ::
4885 $MAKE_TERMINFO ( cd misc && \${MAKE} \${TOP_MFLAGS} \[$]@ )
4888 cat >> Makefile <<CF_EOF
4890 install.libs uninstall.libs ::
4891 ( cd misc && \${MAKE} \${TOP_MFLAGS} \[$]@ )
4895 if test "x$cf_with_manpages" = xyes; then
4897 if test "x$cf_cv_make_PHONY" = xyes ; then
4898 cat >> Makefile <<-CF_EOF
4900 .PHONY : install.man
4901 .PHONY : uninstall.man
4905 cat >> Makefile <<CF_EOF
4909 ( cd man && \${MAKE} \${TOP_MFLAGS} \[$]@ )
4913 cat >> Makefile <<CF_EOF
4916 rm -f config.cache config.log config.status Makefile include/ncurses_cfg.h
4917 rm -f headers.sh headers.sed mk_shared_lib.sh
4918 rm -f edit_man.* man_alias.*
4919 rm -rf \${DIRS_TO_MAKE}
4922 # Special case: tack's manpage lives in its own directory.
4923 if test "x$cf_with_manpages" = xyes; then
4924 if test "x$cf_with_tack" = "xyes"; then
4925 cat >> Makefile <<CF_EOF
4929 ( cd tack && \${MAKE} \${TOP_MFLAGS} \[$]@ )
4934 dnl If we're installing into a subdirectory of /usr/include, etc., we should
4935 dnl prepend the subdirectory's name to the "#include" paths. It won't hurt
4936 dnl anything, and will make it more standardized. It's awkward to decide this
4937 dnl at configuration because of quoting, so we'll simply make all headers
4938 dnl installed via a script that can do the right thing.
4940 rm -f headers.sed headers.sh
4942 dnl ( generating this script makes the makefiles a little tidier :-)
4943 echo creating headers.sh
4944 cat >headers.sh <<CF_EOF
4946 # This shell script is generated by the 'configure' script. It is invoked in a
4947 # subdirectory of the build tree. It generates a sed-script in the parent
4948 # directory that is used to adjust includes for header files that reside in a
4949 # subdirectory of /usr/include, etc.
4951 while test \[$]# != 3
4953 PRG="\$PRG \[$]1"; shift
4958 TMPSRC=\${TMPDIR:-/tmp}/\`basename \$SRC\`\$\$
4959 TMPSED=\${TMPDIR:-/tmp}/headers.sed\$\$
4960 echo installing \$SRC in \$DST
4963 if test "$WITH_CURSES_H" = yes; then
4964 cat >>headers.sh <<CF_EOF
4967 END=\`basename \$DST\`
4968 for i in \`cat \$REF/../*/headers |${FGREP-fgrep} -v "#"\`
4970 NAME=\`basename \$i\`
4971 echo "s/<\$NAME>/<\$END\/\$NAME>/" >> \$TMPSED
4981 cat >>headers.sh <<CF_EOF
4984 END=\`basename \$DST\`
4985 for i in \`cat \$REF/../*/headers |${FGREP-fgrep} -v "#"\`
4987 NAME=\`basename \$i\`
4988 if test "\$NAME" = "curses.h"
4990 echo "s/<curses.h>/<ncurses.h>/" >> \$TMPSED
4993 echo "s/<\$NAME>/<\$END\/\$NAME>/" >> \$TMPSED
4997 echo "s/<curses.h>/<ncurses.h>/" >> \$TMPSED
5002 cat >>headers.sh <<CF_EOF
5004 sed -f \$TMPSED \$SRC > \$TMPSRC
5005 NAME=\`basename \$SRC\`
5007 if test "$WITH_CURSES_H" != yes; then
5008 cat >>headers.sh <<CF_EOF
5009 test "\$NAME" = "curses.h" && NAME=ncurses.h
5012 cat >>headers.sh <<CF_EOF
5013 # Just in case someone gzip'd manpages, remove the conflicting copy.
5014 test -f \$DST/\$NAME.gz && rm -f \$DST/\$NAME.gz
5016 eval \$PRG \$TMPSRC \$DST/\$NAME
5017 rm -f \$TMPSRC \$TMPSED
5020 chmod 0755 headers.sh
5022 for cf_dir in $SRC_SUBDIRS
5024 if test ! -d "$srcdir/$cf_dir" ; then
5028 if test -f "$srcdir/$cf_dir/headers" ; then
5029 $AWK -f "$srcdir/mk-hdr.awk" \
5030 subset="$LIB_SUBSETS" \
5031 compat="$WITH_CURSES_H" \
5032 "$srcdir/$cf_dir/headers" >>$cf_dir/Makefile
5035 if test -f "$srcdir/$cf_dir/modules" ; then
5036 if test "$cf_dir" != "c++" ; then
5037 if test "x$cf_cv_make_PHONY" = xyes ; then
5038 cat >> $cf_dir/Makefile <<-CF_EOF
5044 cat >>$cf_dir/Makefile <<"CF_EOF"
5045 depend : ${AUTO_SRC}
5046 makedepend -- ${CPPFLAGS} -- ${C_SRC}
5048 # DO NOT DELETE THIS LINE -- make depend depends on it.
5053 AC_SUBST(Libs_To_Make)
5055 dnl ---------------------------------------------------------------------------
5056 dnl CF_LIB_SONAME version: 9 updated: 2021/01/04 18:48:01
5058 dnl Find the and soname for the given shared library. Set the cache variable
5059 dnl cf_cv_$3_soname to this, unless it is not found. Then set the cache
5060 dnl variable to "unknown".
5064 dnl $3 = library name
5065 AC_DEFUN([CF_LIB_SONAME],
5066 [AC_REQUIRE([AC_PROG_FGREP])dnl
5068 AC_CACHE_CHECK(for soname of $3 library,cf_cv_$3_soname,[
5070 cf_cv_$3_soname=unknown
5071 if test "$cross_compiling" != yes ; then
5072 cat >conftest.$ac_ext <<CF_EOF
5077 ${cf_cv_main_return:-return}(0);
5080 cf_save_LIBS="$LIBS"
5082 if AC_TRY_EVAL(ac_compile) ; then
5083 if AC_TRY_EVAL(ac_link) ; then
5084 cf_cv_$3_soname="`ldd \"conftest$ac_exeext\" 2>/dev/null | sed -e 's,^.*/,,' -e 's, .*$,,' | ${FGREP-fgrep} lib$3.`"
5085 test -z "$cf_cv_$3_soname" && cf_cv_$3_soname=unknown
5089 LIBS="$cf_save_LIBS"
5093 dnl ---------------------------------------------------------------------------
5094 dnl CF_LIB_SUFFIX version: 28 updated: 2021/01/01 16:53:59
5096 dnl Compute the library file-suffix from the given model name
5098 dnl $2 = variable to set (the nominal library suffix)
5099 dnl $3 = dependency variable to set (actual filename)
5100 dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
5101 AC_DEFUN([CF_LIB_SUFFIX],
5109 case "$cf_cv_system_name" in
5120 case "$cf_cv_system_name" in
5131 case "$cf_cv_system_name" in
5140 (cygwin*|msys*|mingw*)
5178 if test -n "${LIB_SUFFIX}${EXTRA_SUFFIX}"
5180 $2="${LIB_SUFFIX}${EXTRA_SUFFIX}[$]{$2}"
5181 $3="${LIB_SUFFIX}${EXTRA_SUFFIX}[$]{$3}"
5184 dnl ---------------------------------------------------------------------------
5185 dnl CF_LIB_TYPE version: 5 updated: 2015/04/17 21:13:04
5187 dnl Compute the string to append to -library from the given model name
5189 dnl $2 = variable to set
5190 dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
5191 AC_DEFUN([CF_LIB_TYPE],
5197 (profile) $2='_p' ;;
5200 test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
5202 dnl ---------------------------------------------------------------------------
5203 dnl CF_LINK_DATAONLY version: 13 updated: 2020/02/08 15:59:30
5204 dnl ----------------
5205 dnl Some systems have a non-ANSI linker that doesn't pull in modules that have
5206 dnl only data (i.e., no functions), for example NeXT. On those systems we'll
5207 dnl have to provide wrappers for global tables to ensure they're linked
5209 AC_DEFUN([CF_LINK_DATAONLY],
5211 AC_MSG_CHECKING([if data-only library module links])
5212 AC_CACHE_VAL(cf_cv_link_dataonly,[
5214 cat >conftest.$ac_ext <<EOF
5215 #line __oline__ "configure"
5216 int testdata[[3]] = { 123, 456, 789 };
5218 if AC_TRY_EVAL(ac_compile) ; then
5219 mv conftest.o data.o && \
5220 ( $AR $ARFLAGS conftest.a data.o ) 2>&AC_FD_CC 1>/dev/null
5222 rm -f conftest.$ac_ext data.o
5223 cat >conftest.$ac_ext <<EOF
5224 #line __oline__ "configure"
5228 ${cf_cv_main_return:-return}(1); /* I'm told this linker is broken */
5230 extern int testdata[[3]];
5231 return testdata[[0]] == 123
5232 && testdata[[1]] == 456
5233 && testdata[[2]] == 789;
5237 if AC_TRY_EVAL(ac_compile); then
5238 mv conftest.o func.o && \
5239 ( $AR $ARFLAGS conftest.a func.o ) 2>&AC_FD_CC 1>/dev/null
5241 rm -f conftest.$ac_ext func.o
5242 ( eval $RANLIB conftest.a ) 2>&AC_FD_CC >/dev/null
5244 LIBS="conftest.a $LIBS"
5248 extern int testfunc();
5249 ${cf_cv_main_return:-return} (!testfunc());
5252 [cf_cv_link_dataonly=yes],
5253 [cf_cv_link_dataonly=no],
5254 [cf_cv_link_dataonly=unknown])
5257 AC_MSG_RESULT($cf_cv_link_dataonly)
5259 if test "$cf_cv_link_dataonly" = no ; then
5260 AC_DEFINE(BROKEN_LINKER,1,[if data-only library module does not link])
5263 AC_SUBST(BROKEN_LINKER)
5266 dnl ---------------------------------------------------------------------------
5267 dnl CF_LINK_FUNCS version: 11 updated: 2021/04/18 14:08:47
5269 dnl Most Unix systems have both link and symlink, a few don't have symlink.
5270 dnl A few non-Unix systems implement symlink, but not link.
5271 dnl A few non-systems implement neither (or have nonfunctional versions).
5273 dnl This allows for a 2-second difference in modification times to allow for
5274 dnl some marginal NFS implementations.
5275 AC_DEFUN([CF_LINK_FUNCS],
5284 if test "$cross_compiling" = yes ; then
5289 AC_CACHE_CHECK(if link/symlink functions work,cf_cv_link_funcs,[
5291 for cf_func in link symlink ; do
5294 #include <sys/types.h>
5295 #include <sys/stat.h>
5296 #ifdef HAVE_UNISTD_H
5302 char *src = "conftest.tmp";
5303 char *dst = "conftest.chk";
5304 struct stat src_sb, dst_sb;
5305 FILE *fp = fopen(src, "w");
5306 if (fp == 0) { fail = 3; } else {
5307 fclose(fp); stat(src, &src_sb);
5308 if ($cf_func(src, dst) < 0) {
5310 } else if (stat(dst, &dst_sb) < 0) {
5313 long diff = (dst_sb.st_mtime - src_sb.st_mtime);
5314 if (diff < 0) diff = -diff;
5315 if (diff > 2) fail = 3;
5319 unlink(dst); unlink(src);
5321 remove(dst); remove(src);
5323 ${cf_cv_main_return:-return} (fail);
5326 cf_cv_link_funcs="$cf_cv_link_funcs $cf_func"
5327 eval 'ac_cv_func_'$cf_func'=yes'],[
5328 eval 'ac_cv_func_'$cf_func'=no'],[
5329 eval 'ac_cv_func_'$cf_func'=error'])
5331 test -z "$cf_cv_link_funcs" && cf_cv_link_funcs=no
5333 test "$ac_cv_func_link" = yes && AC_DEFINE(HAVE_LINK,1,[Define to 1 if we have link() function])
5334 test "$ac_cv_func_symlink" = yes && AC_DEFINE(HAVE_SYMLINK,1,[Define to 1 if we have symlink() function])
5337 dnl ---------------------------------------------------------------------------
5338 dnl CF_MAKEFLAGS version: 21 updated: 2021/09/04 06:47:34
5340 dnl Some 'make' programs support ${MAKEFLAGS}, some ${MFLAGS}, to pass 'make'
5341 dnl options to lower-levels. It is very useful for "make -n" -- if we have it.
5342 dnl (GNU 'make' does both, something POSIX 'make', which happens to make the
5343 dnl ${MAKEFLAGS} variable incompatible because it adds the assignments :-)
5344 AC_DEFUN([CF_MAKEFLAGS],
5345 [AC_REQUIRE([AC_PROG_FGREP])dnl
5347 AC_CACHE_CHECK(for makeflags variable, cf_cv_makeflags,[
5349 for cf_option in '-${MAKEFLAGS}' '${MFLAGS}'
5351 cat >cf_makeflags.tmp <<CF_EOF
5354 @ echo '.$cf_option'
5356 cf_result=`${MAKE:-make} -k -f cf_makeflags.tmp 2>/dev/null | ${FGREP-fgrep} -v "ing directory" | sed -e 's,[[ ]]*$,,'`
5357 case "$cf_result" in
5359 cf_result="`${MAKE:-make} -k -f cf_makeflags.tmp CC=cc 2>/dev/null`"
5360 case "$cf_result" in
5361 (.*CC=*) cf_cv_makeflags=
5363 (*) cf_cv_makeflags=$cf_option
5371 CF_MSG_LOG(given option \"$cf_option\", no match \"$cf_result\")
5375 rm -f cf_makeflags.tmp
5378 AC_SUBST(cf_cv_makeflags)
5380 dnl ---------------------------------------------------------------------------
5381 dnl CF_MAKE_PHONY version: 3 updated: 2021/01/08 16:08:21
5383 dnl Check if the make-program handles a ".PHONY" target, e.g,. a target which
5384 dnl acts as a placeholder.
5386 dnl The ".PHONY" feature was proposed in 2011 here
5387 dnl https://www.austingroupbugs.net/view.php?id=523
5388 dnl and is scheduled for release in P1003.1 Issue 8 (late 2022).
5390 dnl This is not supported by SVr4 make (or SunOS 4, 4.3SD, etc), but works with
5391 dnl a few others (i.e., GNU make and the non-POSIX "BSD" make):
5393 dnl + This is a GNU make feature (since April 1988, but in turn from binutils,
5394 dnl date unspecified).
5396 dnl + It was adopted in NetBSD make in June 1995.
5398 dnl + The other BSD make programs are derived from the NetBSD make (and for
5399 dnl that reason are not actually different "implementations").
5401 dnl + Some features of NetBSD make were actually adapted from pmake, which
5402 dnl began as a modified GNU make starting in 1993.
5404 dnl + Version 3.8 of the dmake program in January 1992 also implemented this
5405 dnl GNU make extension, but is less well known than the BSD make.
5406 AC_DEFUN([CF_MAKE_PHONY],[
5407 AC_CACHE_CHECK(for \".PHONY\" make-support, cf_cv_make_PHONY,[
5410 mkdir conftest || exit 1
5412 cat >makefile <<'CF_EOF'
5416 @echo "** making [$]@ [$](DATA)"
5418 @echo "** making [$]@ [$](DATA)"
5420 @echo "** making [$]@ [$](DATA)"
5421 echo [$](DATA) > [$]@
5423 @echo "** making [$]@ [$](DATA)"
5424 echo [$](DATA) > [$]@
5426 for cf_data in 1 2 3
5428 ${MAKE:-make} always DATA=$cf_data
5429 ${MAKE:-make} once DATA=$cf_data
5430 ${MAKE:-make} -t always once
5431 if test -f always ; then
5432 echo "no (case 1)" > ../conftest.tmp
5433 elif test ! -f always.out ; then
5434 echo "no (case 2)" > ../conftest.tmp
5435 elif test ! -f once.out ; then
5436 echo "no (case 3)" > ../conftest.tmp
5437 elif ! cmp -s always.out once.out ; then
5438 echo "no (case 4)" > ../conftest.tmp
5439 diff always.out once.out
5441 cf_check="`cat always.out`"
5442 if test "x$cf_check" != "x$cf_data" ; then
5443 echo "no (case 5)" > ../conftest.tmp
5445 echo yes > ../conftest.tmp
5453 cf_cv_make_PHONY="`cat conftest.tmp`"
5458 test "x$cf_cv_make_PHONY" = xyes && MAKE_PHONY=
5459 test "x$cf_cv_make_PHONY" != xyes && MAKE_NO_PHONY=
5460 AC_SUBST(MAKE_NO_PHONY)
5461 AC_SUBST(MAKE_PHONY)
5463 dnl ---------------------------------------------------------------------------
5464 dnl CF_MAKE_TAGS version: 6 updated: 2010/10/23 15:52:32
5466 dnl Generate tags/TAGS targets for makefiles. Do not generate TAGS if we have
5467 dnl a monocase filesystem.
5468 AC_DEFUN([CF_MAKE_TAGS],[
5469 AC_REQUIRE([CF_MIXEDCASE_FILENAMES])
5471 AC_CHECK_PROGS(CTAGS, exctags ctags)
5472 AC_CHECK_PROGS(ETAGS, exetags etags)
5474 AC_CHECK_PROG(MAKE_LOWER_TAGS, ${CTAGS:-ctags}, yes, no)
5476 if test "$cf_cv_mixedcase" = yes ; then
5477 AC_CHECK_PROG(MAKE_UPPER_TAGS, ${ETAGS:-etags}, yes, no)
5482 if test "$MAKE_UPPER_TAGS" = yes ; then
5488 if test "$MAKE_LOWER_TAGS" = yes ; then
5497 AC_SUBST(MAKE_UPPER_TAGS)
5498 AC_SUBST(MAKE_LOWER_TAGS)
5500 dnl ---------------------------------------------------------------------------
5501 dnl CF_MANPAGE_FORMAT version: 15 updated: 2021/09/04 06:35:04
5502 dnl -----------------
5503 dnl Option to allow user to override automatic configuration of manpage format.
5504 dnl There are several special cases:
5506 dnl gzip - man checks for, can display gzip'd files
5507 dnl compress - man checks for, can display compressed files
5508 dnl BSDI - files in the cat-directories are suffixed ".0"
5509 dnl formatted - installer should format (put files in cat-directory)
5510 dnl catonly - installer should only format, e.g., for a turnkey system.
5512 dnl There are other configurations which this macro does not test, e.g., HPUX's
5513 dnl compressed manpages (but uncompressed manpages are fine, and HPUX's naming
5514 dnl convention would not match our use).
5515 AC_DEFUN([CF_MANPAGE_FORMAT],
5517 AC_REQUIRE([CF_PATHSEP])
5518 AC_MSG_CHECKING(format of man-pages)
5520 AC_ARG_WITH(manpage-format,
5521 [ --with-manpage-format specify manpage-format: gzip/compress/BSDI/normal and
5522 optionally formatted/catonly, e.g., gzip,formatted],
5523 [MANPAGE_FORMAT=$withval],
5524 [MANPAGE_FORMAT=unknown])
5526 test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=unknown
5527 MANPAGE_FORMAT=`echo "$MANPAGE_FORMAT" | sed -e 's/,/ /g'`
5531 case "$MANPAGE_FORMAT" in
5533 if test -z "$MANPATH" ; then
5534 MANPATH="/usr/man:/usr/share/man"
5537 # look for the 'date' man-page (it is most likely to be installed!)
5543 IFS="${IFS:- }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
5544 for cf_dir in $MANPATH; do
5545 test -z "$cf_dir" && cf_dir=/usr/man
5546 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
5548 cf_test=`echo "$cf_name" | sed -e 's/*//'`
5549 if test "x$cf_test" = "x$cf_name" ; then
5552 (*.gz) MANPAGE_FORMAT="$MANPAGE_FORMAT gzip";;
5553 (*.Z) MANPAGE_FORMAT="$MANPAGE_FORMAT compress";;
5554 (*.0) MANPAGE_FORMAT="$MANPAGE_FORMAT BSDI";;
5555 (*) MANPAGE_FORMAT="$MANPAGE_FORMAT normal";;
5569 # if we found a match in either man* or cat*, stop looking
5570 if test -n "$MANPAGE_FORMAT" ; then
5572 test "$cf_preform" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT formatted"
5573 test "$cf_catonly" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT catonly"
5579 test "$cf_found" = yes && break
5582 # only check the first directory in $MANPATH where we find manpages
5583 if test -n "$MANPAGE_FORMAT" ; then
5587 # if we did not find the example, just assume it is normal
5588 test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=normal
5592 for cf_option in $MANPAGE_FORMAT; do
5593 case "$cf_option" in
5594 (gzip|compress|BSDI|normal|formatted|catonly)
5597 cf_unknown="$cf_unknown $cf_option"
5604 AC_MSG_RESULT($MANPAGE_FORMAT)
5605 if test -n "$cf_unknown" ; then
5606 AC_MSG_WARN(Unexpected manpage-format $cf_unknown)
5609 dnl ---------------------------------------------------------------------------
5610 dnl CF_MANPAGE_RENAMES version: 12 updated: 2021/01/01 16:53:59
5611 dnl ------------------
5612 dnl The Debian people have their own naming convention for manpages. This
5613 dnl option lets us override the name of the file containing renaming, or
5614 dnl disable it altogether.
5615 AC_DEFUN([CF_MANPAGE_RENAMES],
5617 AC_MSG_CHECKING(for manpage renaming)
5619 AC_ARG_WITH(manpage-renames,
5620 [ --with-manpage-renames specify manpage-renaming],
5621 [MANPAGE_RENAMES=$withval],
5622 [MANPAGE_RENAMES=yes])
5624 case ".$MANPAGE_RENAMES" in
5628 # Debian 'man' program?
5629 if test -f /etc/debian_version ; then
5630 MANPAGE_RENAMES=`cd "$srcdir" && pwd`/man/man_db.renames
5637 if test "$MANPAGE_RENAMES" != no ; then
5638 if test -f "$srcdir/man/$MANPAGE_RENAMES" ; then
5639 MANPAGE_RENAMES=`cd "$srcdir/man" && pwd`/$MANPAGE_RENAMES
5640 elif test ! -f "$MANPAGE_RENAMES" ; then
5641 AC_MSG_ERROR(not a filename: $MANPAGE_RENAMES)
5644 test ! -d man && mkdir man
5646 # Construct a sed-script to perform renaming within man-pages
5647 if test -n "$MANPAGE_RENAMES" ; then
5648 test ! -d man && mkdir man
5649 $SHELL "$srcdir/man/make_sed.sh" "$MANPAGE_RENAMES" >./edit_man.sed
5653 AC_MSG_RESULT($MANPAGE_RENAMES)
5654 AC_SUBST(MANPAGE_RENAMES)
5656 dnl ---------------------------------------------------------------------------
5657 dnl CF_MANPAGE_SYMLINKS version: 6 updated: 2015/04/17 21:13:04
5658 dnl -------------------
5659 dnl Some people expect each tool to make all aliases for manpages in the
5660 dnl man-directory. This accommodates the older, less-capable implementations
5661 dnl of 'man', and is optional.
5662 AC_DEFUN([CF_MANPAGE_SYMLINKS],
5664 AC_MSG_CHECKING(if manpage aliases will be installed)
5666 AC_ARG_WITH(manpage-aliases,
5667 [ --with-manpage-aliases specify manpage-aliases using .so],
5668 [MANPAGE_ALIASES=$withval],
5669 [MANPAGE_ALIASES=yes])
5671 AC_MSG_RESULT($MANPAGE_ALIASES)
5683 if test "$MANPAGE_ALIASES" = yes ; then
5684 AC_MSG_CHECKING(if manpage symlinks should be used)
5686 AC_ARG_WITH(manpage-symlinks,
5687 [ --with-manpage-symlinks specify manpage-aliases using symlinks],
5688 [MANPAGE_SYMLINKS=$withval],
5689 [MANPAGE_SYMLINKS=$cf_use_symlinks])
5691 if test "$$cf_use_symlinks" = no; then
5692 if test "$MANPAGE_SYMLINKS" = yes ; then
5693 AC_MSG_WARN(cannot make symlinks, will use .so files)
5698 AC_MSG_RESULT($MANPAGE_SYMLINKS)
5702 dnl ---------------------------------------------------------------------------
5703 dnl CF_MANPAGE_TBL version: 3 updated: 2002/01/19 22:51:32
5705 dnl This option causes manpages to be run through tbl(1) to generate tables
5707 AC_DEFUN([CF_MANPAGE_TBL],
5709 AC_MSG_CHECKING(for manpage tbl)
5711 AC_ARG_WITH(manpage-tbl,
5712 [ --with-manpage-tbl specify manpage processing with tbl],
5713 [MANPAGE_TBL=$withval],
5716 AC_MSG_RESULT($MANPAGE_TBL)
5718 dnl ---------------------------------------------------------------------------
5719 dnl CF_MAN_PAGES version: 51 updated: 2021/01/05 16:29:19
5721 dnl Try to determine if the man-pages on the system are compressed, and if
5722 dnl so, what format is used. Use this information to construct a script that
5723 dnl will install man-pages.
5724 AC_DEFUN([CF_MAN_PAGES],
5726 CF_HELP_MESSAGE(Options to Specify How Manpages are Installed:)
5732 if test "$prefix" = "NONE" ; then
5733 cf_prefix="$ac_default_prefix"
5738 case "$MANPAGE_FORMAT" in
5753 test ! -d man && mkdir man
5757 case "$MANPAGE_FORMAT" in
5760 cf_compress=compress
5768 cf_edit_man=./edit_man.sh
5769 cf_man_alias=`pwd`/man_alias.sed
5771 cat >$cf_edit_man <<CF_EOF
5773 # this script is generated by the configure-script CF_MAN_PAGES macro.
5776 datarootdir="$datarootdir"
5779 NCURSES_MAJOR="$NCURSES_MAJOR"
5780 NCURSES_MINOR="$NCURSES_MINOR"
5781 NCURSES_PATCH="$NCURSES_PATCH"
5783 NCURSES_OSPEED="$NCURSES_OSPEED"
5784 TERMINFO="$TERMINFO"
5787 INSTALL_DATA="$INSTALL_DATA"
5789 transform="$program_transform_name"
5791 TMP=\${TMPDIR:=/tmp}/man\$\$
5792 trap "rm -f \$TMP" 0 1 2 3 15
5804 top_srcdir=\[$]srcdir/..
5807 if test "\$form" = normal ; then
5808 if test "$cf_format" = yes ; then
5809 if test "$cf_inboth" = no ; then
5810 $SHELL "\[$]0" format "\$verb" "\$mandir" "\$srcdir" "\[$]@"
5814 cf_subdir=\$mandir/man
5815 cf_tables=$MANPAGE_TBL
5817 cf_subdir=\$mandir/cat
5821 # process the list of source-files
5822 for i in "\[$]@" ; do
5826 section=\`expr "\$i" : '.*\\.\\([[0-9]]\\)[[xm]]*'\`;
5827 if test "\$verb" = installing ; then
5828 if test ! -d "\$cf_subdir\${section}" ; then
5829 mkdir -p "\$cf_subdir\$section"
5833 # replace variables in man page
5834 if test ! -f "$cf_man_alias" ; then
5835 cat >>$cf_man_alias <<-CF_EOF2
5836 s,@DATADIR@,\$datadir,g
5837 s,@TERMINFO@,\${TERMINFO:="no default value"},g
5838 s,@TERMINFO_DIRS@,\${TERMINFO_DIRS:="no default value"},g
5839 s,@NCURSES_MAJOR@,\${NCURSES_MAJOR:="no default value"},g
5840 s,@NCURSES_MINOR@,\${NCURSES_MINOR:="no default value"},g
5841 s,@NCURSES_PATCH@,\${NCURSES_PATCH:="no default value"},g
5842 s,@NCURSES_OSPEED@,\${NCURSES_OSPEED:="no default value"},g
5847 cf_NAME=`echo "$cf_name" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
5848 cf_name=`echo "$cf_name" | sed "$program_transform_name"`
5849 cat >>$cf_edit_man <<-CF_EOF
5850 s,@$cf_NAME@,$cf_name,g
5854 cat >>$cf_edit_man <<CF_EOF
5856 echo "...made $cf_man_alias"
5860 cf_source=\`basename "\$i"\`
5862 test ! -f "\$inalias" && inalias="\$srcdir/\$inalias"
5863 if test ! -f "\$inalias" ; then
5864 echo ".. skipped \$cf_source"
5869 if test "$MANPAGE_ALIASES" != no ; then
5870 cat >>$cf_edit_man <<CF_EOF
5872 test "$with_curses_h" = yes && nCurses=ncurses.3x
5873 aliases=\`sed -f "\$top_srcdir/man/manlinks.sed" "\$inalias" |sed -f "$cf_man_alias" | sort -u; test "\$inalias" = "\$nCurses" && echo curses\`
5877 if test "$MANPAGE_RENAMES" = no ; then
5878 cat >>$cf_edit_man <<CF_EOF
5879 # perform program transformations for section 1 man pages
5880 if test \$section = 1 ; then
5881 cf_target=\$cf_subdir\${section}/\`echo \$cf_source|sed "\${transform}"\`
5883 cf_target=\$cf_subdir\${section}/\$cf_source
5887 cat >>$cf_edit_man <<CF_EOF
5888 cf_target=\`grep "^\$cf_source" $MANPAGE_RENAMES | $AWK '{print \[$]2}'\`
5889 if test -z "\$cf_target" ; then
5890 echo "? missing rename for \$cf_source"
5891 cf_target="\$cf_source"
5893 cf_target="\$cf_subdir\${section}/\${cf_target}"
5898 cat >>$cf_edit_man <<CF_EOF
5899 sed -f "$cf_man_alias" \\
5902 if test -f "$MANPAGE_RENAMES" ; then
5903 cat >>$cf_edit_man <<CF_EOF
5904 < "\$i" | sed -f `pwd`/edit_man.sed >\$TMP
5907 cat >>$cf_edit_man <<CF_EOF
5912 cat >>$cf_edit_man <<CF_EOF
5913 if test \$cf_tables = yes ; then
5914 tbl \$TMP >\$TMP.out
5919 if test "$with_overwrite" != yes ; then
5920 cat >>$cf_edit_man <<CF_EOF
5921 sed -e "/\\#[ ]*include/s,<curses.h,<ncurses$LIB_SUFFIX/curses.h," < \$TMP >\$TMP.out
5926 if test "$with_curses_h" != yes ; then
5927 cat >>$cf_edit_man <<CF_EOF
5928 sed -e "/\\#[ ]*include/s,curses.h,ncurses.h," < \$TMP >\$TMP.out
5933 cat >>$cf_edit_man <<CF_EOF
5934 if test "\$form" = format ; then
5935 nroff -man \$TMP >\$TMP.out
5940 if test -n "$cf_compress" ; then
5941 cat >>$cf_edit_man <<CF_EOF
5942 if test "\$verb" = installing ; then
5943 if ( "$cf_compress" -f \$TMP )
5945 mv \$TMP.$cf_so_strip \$TMP
5948 cf_target="\$cf_target.$cf_so_strip"
5952 case "$MANPAGE_FORMAT" in
5954 cat >>$cf_edit_man <<CF_EOF
5955 if test "\$form" = format ; then
5956 # BSDI installs only .0 suffixes in the cat directories
5957 cf_target="\`echo \$cf_target|sed -e 's/\\.[[1-9]]\\+[[a-z]]*/.0/'\`"
5963 cat >>$cf_edit_man <<CF_EOF
5964 suffix=\`basename "\$cf_target" | sed -e 's%^[[^.]]*%%'\`
5965 if test "\$verb" = installing ; then
5966 echo "\$verb \$cf_target"
5967 \$INSTALL_DATA \$TMP "\$cf_target"
5968 test -d "\$cf_subdir\${section}" &&
5969 test -n "\$aliases" && (
5970 cd "\$cf_subdir\${section}" && (
5971 cf_source=\`echo "\$cf_target" |sed -e 's%^.*/\\([[^/]][[^/]]*/[[^/]][[^/]]*$\\)%\\1%'\`
5972 test -n "$cf_so_strip" && cf_source=\`echo "\$cf_source" |sed -e 's%\\.$cf_so_strip\$%%'\`
5973 cf_target=\`basename "\$cf_target"\`
5974 for cf_alias in \$aliases
5976 if test "\$section" = 1 ; then
5977 cf_alias=\`echo "\$cf_alias" |sed "\${transform}"\`
5980 if test "$MANPAGE_SYMLINKS" = yes ; then
5981 if test -f "\$cf_alias\${suffix}" ; then
5982 if ( cmp -s "\$cf_target" "\$cf_alias\${suffix}" )
5987 echo ".. \$verb alias \$cf_alias\${suffix}"
5991 cat >>$cf_edit_man <<CF_EOF
5992 $LN_S "\$cf_target" "\$cf_alias\${suffix}"
5996 cat >>$cf_edit_man <<CF_EOF
5997 rm -f "\$cf_alias\${suffix}"
5998 $LN_S "\$cf_target" "\$cf_alias\${suffix}"
6002 cat >>$cf_edit_man <<CF_EOF
6003 elif test "\$cf_target" != "\$cf_alias\${suffix}" ; then
6004 echo ".so \$cf_source" >\$TMP
6006 if test -n "$cf_compress" ; then
6007 cat >>$cf_edit_man <<CF_EOF
6008 if test -n "$cf_so_strip" ; then
6009 "$cf_compress" -f \$TMP
6010 mv \$TMP.$cf_so_strip \$TMP
6014 cat >>$cf_edit_man <<CF_EOF
6015 echo ".. \$verb alias \$cf_alias\${suffix}"
6016 rm -f "\$cf_alias\${suffix}"
6017 \$INSTALL_DATA \$TMP "\$cf_alias\${suffix}"
6022 elif test "\$verb" = removing ; then
6023 test -f "\$cf_target" && (
6024 echo "\$verb \$cf_target"
6027 test -d "\$cf_subdir\${section}" &&
6028 test -n "\$aliases" && (
6029 cd "\$cf_subdir\${section}" && (
6030 for cf_alias in \$aliases
6032 if test "\$section" = 1 ; then
6033 cf_alias=\`echo "\$cf_alias" |sed "\${transform}"\`
6036 echo ".. \$verb alias \$cf_alias\${suffix}"
6037 rm -f "\$cf_alias\${suffix}"
6049 if test "$cf_inboth" = yes ; then
6050 if test "\$form" != format ; then
6051 $SHELL "\[$]0" format "\$verb" "\$mandir" "\$srcdir" "\[$]@"
6057 chmod 755 "$cf_edit_man"
6060 dnl ---------------------------------------------------------------------------
6061 dnl CF_MAP_LIB_BASENAME version: 2 updated: 2021/01/02 17:09:14
6062 dnl -------------------
6063 dnl Convert a default-libname to the actual one used via CF_WITH_LIB_BASENAME.
6065 dnl $1 = variable to set
6066 dnl $2 = default-libname
6067 AC_DEFUN([CF_MAP_LIB_BASENAME],[
6068 CF_UPPER(cf_map_lib_basename,$2)
6069 eval $1="\$${cf_map_lib_basename}_NAME"
6071 dnl ---------------------------------------------------------------------------
6072 dnl CF_MATH_LIB version: 10 updated: 2020/12/31 18:40:20
6074 dnl Checks for libraries. At least one UNIX system, Apple Macintosh
6075 dnl Rhapsody 5.5, does not have -lm. We cannot use the simpler
6076 dnl AC_CHECK_LIB(m,sin), because that fails for C++.
6077 AC_DEFUN([CF_MATH_LIB],
6079 AC_CACHE_CHECK(if -lm needed for math functions,
6086 [double x = rand(); printf("result = %g\\n", ]ifelse([$2],,sin(x),$2)[)],
6087 [cf_cv_need_libm=no],
6088 [cf_cv_need_libm=yes])])
6089 if test "$cf_cv_need_libm" = yes
6096 dnl ---------------------------------------------------------------------------
6097 dnl CF_MIXEDCASE_FILENAMES version: 9 updated: 2021/01/01 16:53:59
6098 dnl ----------------------
6099 dnl Check if the file-system supports mixed-case filenames. If we're able to
6100 dnl create a lowercase name and see it as uppercase, it doesn't support that.
6101 AC_DEFUN([CF_MIXEDCASE_FILENAMES],
6103 AC_CACHE_CHECK(if filesystem supports mixed-case filenames,cf_cv_mixedcase,[
6104 if test "$cross_compiling" = yes ; then
6105 case "$target_alias" in
6106 (*-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-msys*|*-mingw*|*-uwin*|darwin*)
6114 rm -f conftest CONFTEST
6116 if test -f CONFTEST ; then
6121 rm -f conftest CONFTEST
6124 test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES,1,[Define to 1 if filesystem supports mixed-case filenames.])
6126 dnl ---------------------------------------------------------------------------
6127 dnl CF_MKSTEMP version: 11 updated: 2021/01/01 13:31:04
6129 dnl Check for a working mkstemp. This creates two files, checks that they are
6130 dnl successfully created and distinct (AmigaOS apparently fails on the last).
6131 AC_DEFUN([CF_MKSTEMP],[
6135 AC_CACHE_CHECK(for working mkstemp, cf_cv_func_mkstemp,[
6138 #include <sys/types.h>
6139 #ifdef HAVE_UNISTD_H
6145 #include <sys/stat.h>
6148 char *tmpl = "conftestXXXXXX";
6156 for (n = 0; n < 2; ++n) {
6157 strcpy(name[n], tmpl);
6158 if ((fd = mkstemp(name[n])) >= 0) {
6159 if (!strcmp(name[n], tmpl)
6160 || stat(name[n], &sb) != 0
6161 || (sb.st_mode & S_IFMT) != S_IFREG
6162 || (sb.st_mode & 077) != 0) {
6169 && !strcmp(name[0], name[1]))
6171 ${cf_cv_main_return:-return}(result);
6173 ],[cf_cv_func_mkstemp=yes
6174 ],[cf_cv_func_mkstemp=no
6175 ],[cf_cv_func_mkstemp=maybe])
6177 if test "x$cf_cv_func_mkstemp" = xmaybe ; then
6178 AC_CHECK_FUNC(mkstemp)
6180 if test "x$cf_cv_func_mkstemp" = xyes || test "x$ac_cv_func_mkstemp" = xyes ; then
6181 AC_DEFINE(HAVE_MKSTEMP,1,[Define to 1 if mkstemp() is available and working.])
6184 dnl ---------------------------------------------------------------------------
6185 dnl CF_MSG_LOG version: 5 updated: 2010/10/23 15:52:32
6187 dnl Write a debug message to config.log, along with the line number in the
6188 dnl configure script.
6189 AC_DEFUN([CF_MSG_LOG],[
6190 echo "${as_me:-configure}:__oline__: testing $* ..." 1>&AC_FD_CC
6192 dnl ---------------------------------------------------------------------------
6193 dnl CF_NCURSES_ABI_6 version: 4 updated: 2021/01/01 13:31:04
6194 dnl ----------------
6195 dnl Set ncurses' ABI to 6 unless overridden by explicit configure option, and
6196 dnl warn about this.
6197 AC_DEFUN([CF_NCURSES_ABI_6],[
6198 if test "${with_abi_version+set}" != set; then
6199 case "$cf_cv_rel_version" in
6201 cf_cv_rel_version=6.0
6203 AC_MSG_WARN(overriding ABI version to $cf_cv_abi_version)
6208 dnl ---------------------------------------------------------------------------
6209 dnl CF_NCURSES_WITH_ABI_VERSION version: 3 updated: 2021/01/01 13:31:04
6210 dnl ---------------------------
6211 dnl Allow ncurses's ABI to be overridden. Generally this happens when a
6212 dnl packager has incremented the ABI past that used in the original package,
6213 dnl and wishes to keep doing this.
6215 dnl $1 is the package name, if any, to derive a corresponding {package}_ABI
6217 AC_DEFUN([CF_NCURSES_WITH_ABI_VERSION],[
6218 CF_WITH_ABI_VERSION($1)
6219 if test "x$cf_cv_abi_version" != "x$with_abi_version"
6221 case "$cf_cv_rel_version" in
6223 cf_cv_rel_version=$with_abi_version.0
6228 dnl ---------------------------------------------------------------------------
6229 dnl CF_NO_LEAKS_OPTION version: 9 updated: 2021/06/13 19:45:41
6230 dnl ------------------
6231 dnl see CF_WITH_NO_LEAKS
6233 dnl $1 = option/name
6235 dnl $3 = symbol to define if the option is set
6236 dnl $4 = additional actions to take if the option is set
6237 AC_DEFUN([CF_NO_LEAKS_OPTION],[
6238 AC_MSG_CHECKING(if you want to use $1 for testing)
6241 [case "x$withval" in
6244 : "${with_cflags:=-g}"
6245 : "${enable_leaks:=no}"
6247 AC_DEFINE_UNQUOTED($3,1,"Define to 1 if you want to use $1 for testing.")ifelse([$4],,[
6253 AC_MSG_RESULT(${with_$1:-no})
6255 case ".$with_cflags" in
6267 dnl ---------------------------------------------------------------------------
6268 dnl CF_NUMBER_SYNTAX version: 2 updated: 2015/04/17 21:13:04
6269 dnl ----------------
6270 dnl Check if the given variable is a number. If not, report an error.
6271 dnl $1 is the variable
6272 dnl $2 is the message
6273 AC_DEFUN([CF_NUMBER_SYNTAX],[
6274 if test -n "$1" ; then
6279 AC_MSG_ERROR($2 is not a number: $1)
6283 AC_MSG_ERROR($2 value is empty)
6286 dnl ---------------------------------------------------------------------------
6287 dnl CF_OBJ_SUBDIR version: 8 updated: 2021/01/01 13:31:04
6289 dnl Compute the object-directory name from the given model name
6290 AC_DEFUN([CF_OBJ_SUBDIR],
6293 (libtool) $2='obj_lo' ;;
6294 (normal) $2='objects' ;;
6295 (debug) $2='obj_g' ;;
6296 (profile) $2='obj_p' ;;
6298 case "$cf_cv_system_name" in
6306 dnl ---------------------------------------------------------------------------
6307 dnl CF_PATHSEP version: 8 updated: 2021/01/01 13:31:04
6309 dnl Provide a value for the $PATH and similar separator (or amend the value
6310 dnl as provided in autoconf 2.5x).
6311 AC_DEFUN([CF_PATHSEP],
6313 AC_MSG_CHECKING(for PATH separator)
6314 case "$cf_cv_system_name" in
6315 (os2*) PATH_SEPARATOR=';' ;;
6316 (*) ${PATH_SEPARATOR:=':'} ;;
6318 ifelse([$1],,,[$1=$PATH_SEPARATOR])
6319 AC_SUBST(PATH_SEPARATOR)
6320 AC_MSG_RESULT($PATH_SEPARATOR)
6322 dnl ---------------------------------------------------------------------------
6323 dnl CF_PATH_PROG version: 12 updated: 2021/01/02 09:31:20
6325 dnl Check for a given program, defining corresponding symbol.
6326 dnl $1 = environment variable, which is suffixed by "_PATH" in the #define.
6327 dnl $2 = program name to find.
6328 dnl $3 = optional list of additional program names to test.
6331 dnl If there is more than one token in the result, #define the remaining tokens
6332 dnl to $1_ARGS. We need this for 'install' in particular.
6334 dnl FIXME: we should allow this to be overridden by environment variables
6336 AC_DEFUN([CF_PATH_PROG],[
6337 AC_REQUIRE([CF_PATHSEP])
6338 test -z "[$]$1" && $1="$2"
6339 AC_PATH_PROGS($1,[$]$1 $2 ifelse($3,,,$3),[$]$1, ifelse($4,,,$4))
6343 IFS="${IFS:- }"; cf_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR"
6344 for cf_temp in $ac_cv_path_$1
6346 if test -z "$cf_path_prog" ; then
6347 if test "$with_full_paths" = yes ; then
6348 CF_PATH_SYNTAX(cf_temp,break)
6349 cf_path_prog="$cf_temp"
6351 cf_path_prog="`basename "$cf_temp"`"
6353 elif test -z "$cf_path_args" ; then
6354 cf_path_args="$cf_temp"
6356 cf_path_args="$cf_path_args $cf_temp"
6361 if test -n "$cf_path_prog" ; then
6362 CF_MSG_LOG(defining path for ${cf_path_prog})
6363 AC_DEFINE_UNQUOTED($1_PATH,"$cf_path_prog",Define to pathname $1)
6364 test -n "$cf_path_args" && AC_DEFINE_UNQUOTED($1_ARGS,"$cf_path_args",Define to provide args for $1)
6367 dnl ---------------------------------------------------------------------------
6368 dnl CF_PATH_SYNTAX version: 18 updated: 2020/12/31 18:40:20
6370 dnl Check the argument to see that it looks like a pathname. Rewrite it if it
6371 dnl begins with one of the prefix/exec_prefix variables, and then again if the
6372 dnl result begins with 'NONE'. This is necessary to work around autoconf's
6373 dnl delayed evaluation of those symbols.
6374 AC_DEFUN([CF_PATH_SYNTAX],[
6375 if test "x$prefix" != xNONE; then
6376 cf_path_syntax="$prefix"
6378 cf_path_syntax="$ac_default_prefix"
6382 (.\[$]\(*\)*|.\'*\'*)
6386 (.[[a-zA-Z]]:[[\\/]]*) # OS/2 EMX
6388 (.\[$]\{*prefix\}*|.\[$]\{*dir\}*)
6392 $1=`echo "[$]$1" | sed -e s%NONE%$cf_path_syntax%`
6397 $1=`echo "[$]$1" | sed -e s%NONE%$cf_path_syntax%`
6400 ifelse([$2],,[AC_MSG_ERROR([expected a pathname, not \"[$]$1\"])],$2)
6404 dnl ---------------------------------------------------------------------------
6405 dnl CF_PKG_CONFIG version: 12 updated: 2021/10/10 20:18:09
6407 dnl Check for the package-config program, unless disabled by command-line.
6409 dnl Sets $PKG_CONFIG to the pathname of the pkg-config program.
6410 AC_DEFUN([CF_PKG_CONFIG],
6412 AC_MSG_CHECKING(if you want to use pkg-config)
6413 AC_ARG_WITH(pkg-config,
6414 [ --with-pkg-config{=path} enable/disable use of pkg-config],
6415 [cf_pkg_config=$withval],
6416 [cf_pkg_config=yes])
6417 AC_MSG_RESULT($cf_pkg_config)
6419 case "$cf_pkg_config" in
6424 CF_ACVERSION_CHECK(2.52,
6425 [AC_PATH_TOOL(PKG_CONFIG, pkg-config, none)],
6426 [AC_PATH_PROG(PKG_CONFIG, pkg-config, none)])
6433 test -z "$PKG_CONFIG" && PKG_CONFIG=none
6434 if test "$PKG_CONFIG" != none ; then
6435 CF_PATH_SYNTAX(PKG_CONFIG)
6436 elif test "x$cf_pkg_config" != xno ; then
6437 AC_MSG_WARN(pkg-config is not installed)
6440 AC_SUBST(PKG_CONFIG)
6442 dnl ---------------------------------------------------------------------------
6443 dnl CF_POSIX_C_SOURCE version: 11 updated: 2018/12/31 20:46:17
6444 dnl -----------------
6445 dnl Define _POSIX_C_SOURCE to the given level, and _POSIX_SOURCE if needed.
6447 dnl POSIX.1-1990 _POSIX_SOURCE
6448 dnl POSIX.1-1990 and _POSIX_SOURCE and
6449 dnl POSIX.2-1992 C-Language _POSIX_C_SOURCE=2
6451 dnl POSIX.1b-1993 _POSIX_C_SOURCE=199309L
6452 dnl POSIX.1c-1996 _POSIX_C_SOURCE=199506L
6453 dnl X/Open 2000 _POSIX_C_SOURCE=200112L
6456 dnl $1 is the nominal value for _POSIX_C_SOURCE
6457 AC_DEFUN([CF_POSIX_C_SOURCE],
6458 [AC_REQUIRE([CF_POSIX_VISIBLE])dnl
6460 if test "$cf_cv_posix_visible" = no; then
6462 cf_POSIX_C_SOURCE=ifelse([$1],,199506L,[$1])
6464 cf_save_CFLAGS="$CFLAGS"
6465 cf_save_CPPFLAGS="$CPPFLAGS"
6467 CF_REMOVE_DEFINE(cf_trim_CFLAGS,$cf_save_CFLAGS,_POSIX_C_SOURCE)
6468 CF_REMOVE_DEFINE(cf_trim_CPPFLAGS,$cf_save_CPPFLAGS,_POSIX_C_SOURCE)
6470 AC_CACHE_CHECK(if we should define _POSIX_C_SOURCE,cf_cv_posix_c_source,[
6471 CF_MSG_LOG(if the symbol is already defined go no further)
6472 AC_TRY_COMPILE([#include <sys/types.h>],[
6473 #ifndef _POSIX_C_SOURCE
6476 [cf_cv_posix_c_source=no],
6477 [cf_want_posix_source=no
6478 case .$cf_POSIX_C_SOURCE in
6480 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
6483 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
6484 cf_want_posix_source=yes
6487 cf_want_posix_source=yes
6490 if test "$cf_want_posix_source" = yes ; then
6491 AC_TRY_COMPILE([#include <sys/types.h>],[
6492 #ifdef _POSIX_SOURCE
6495 cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE")
6497 CF_MSG_LOG(ifdef from value $cf_POSIX_C_SOURCE)
6498 CFLAGS="$cf_trim_CFLAGS"
6499 CPPFLAGS="$cf_trim_CPPFLAGS"
6500 CF_APPEND_TEXT(CPPFLAGS,$cf_cv_posix_c_source)
6501 CF_MSG_LOG(if the second compile does not leave our definition intact error)
6502 AC_TRY_COMPILE([#include <sys/types.h>],[
6503 #ifndef _POSIX_C_SOURCE
6506 [cf_cv_posix_c_source=no])
6507 CFLAGS="$cf_save_CFLAGS"
6508 CPPFLAGS="$cf_save_CPPFLAGS"
6512 if test "$cf_cv_posix_c_source" != no ; then
6513 CFLAGS="$cf_trim_CFLAGS"
6514 CPPFLAGS="$cf_trim_CPPFLAGS"
6515 CF_ADD_CFLAGS($cf_cv_posix_c_source)
6518 fi # cf_cv_posix_visible
6521 dnl ---------------------------------------------------------------------------
6522 dnl CF_POSIX_VISIBLE version: 1 updated: 2018/12/31 20:46:17
6523 dnl ----------------
6524 dnl POSIX documents test-macros which an application may set before any system
6525 dnl headers are included to make features available.
6527 dnl Some BSD platforms (originally FreeBSD, but copied by a few others)
6528 dnl diverged from POSIX in 2002 by setting symbols which make all of the most
6529 dnl recent features visible in the system header files unless the application
6530 dnl overrides the corresponding test-macros. Doing that introduces portability
6533 dnl This macro makes a special check for the symbols used for this, to avoid a
6534 dnl conflicting definition.
6535 AC_DEFUN([CF_POSIX_VISIBLE],
6537 AC_CACHE_CHECK(if the POSIX test-macros are already defined,cf_cv_posix_visible,[
6538 AC_TRY_COMPILE([#include <stdio.h>],[
6539 #if defined(__POSIX_VISIBLE) && ((__POSIX_VISIBLE - 0L) > 0) \
6540 && defined(__XSI_VISIBLE) && ((__XSI_VISIBLE - 0L) > 0) \
6541 && defined(__BSD_VISIBLE) && ((__BSD_VISIBLE - 0L) > 0) \
6542 && defined(__ISO_C_VISIBLE) && ((__ISO_C_VISIBLE - 0L) > 0)
6543 #error conflicting symbols found
6545 ],[cf_cv_posix_visible=no],[cf_cv_posix_visible=yes])
6548 dnl ---------------------------------------------------------------------------
6549 dnl CF_PREDEFINE version: 2 updated: 2010/05/26 16:44:57
6551 dnl Add definitions to CPPFLAGS to ensure they're predefined for all compiles.
6553 dnl $1 = symbol to test
6554 dnl $2 = value (if any) to use for a predefinition
6555 AC_DEFUN([CF_PREDEFINE],
6557 AC_MSG_CHECKING(if we must define $1)
6558 AC_TRY_COMPILE([#include <sys/types.h>
6562 #endif],[cf_result=no],[cf_result=yes])
6563 AC_MSG_RESULT($cf_result)
6565 if test "$cf_result" = yes ; then
6566 CPPFLAGS="$CPPFLAGS ifelse([$2],,-D$1,[-D$1=$2])"
6567 elif test "x$2" != "x" ; then
6568 AC_MSG_CHECKING(checking for compatible value versus $2)
6569 AC_TRY_COMPILE([#include <sys/types.h>
6573 #endif],[cf_result=yes],[cf_result=no])
6574 AC_MSG_RESULT($cf_result)
6575 if test "$cf_result" = no ; then
6576 # perhaps we can override it - try...
6577 CPPFLAGS="$CPPFLAGS -D$1=$2"
6581 dnl ---------------------------------------------------------------------------
6582 dnl CF_PRG_RULES version: 2 updated: 2021/01/01 13:31:04
6584 dnl Append definitions and rules for the given programs to the subdirectory
6585 dnl Makefiles, and the recursion rule for the top-level Makefile.
6588 dnl $1 = script to run
6589 dnl $2 = list of subdirectories
6593 AC_DEFUN([CF_PRG_RULES],
6597 if test ! -d "$srcdir/$cf_dir" ; then
6599 elif test -f "$srcdir/$cf_dir/programs" ; then
6600 $AWK -f $1 "$srcdir/$cf_dir/programs" >>$cf_dir/Makefile
6605 dnl ---------------------------------------------------------------------------
6606 dnl CF_PROG_AR version: 1 updated: 2009/01/01 20:15:22
6608 dnl Check for archiver "ar".
6609 AC_DEFUN([CF_PROG_AR],[
6610 AC_CHECK_TOOL(AR, ar, ar)
6612 dnl ---------------------------------------------------------------------------
6613 dnl CF_PROG_AWK version: 1 updated: 2006/09/16 11:40:59
6615 dnl Check for awk, ensure that the check found something.
6616 AC_DEFUN([CF_PROG_AWK],
6619 test -z "$AWK" && AC_MSG_ERROR(No awk program found)
6621 dnl ---------------------------------------------------------------------------
6622 dnl CF_PROG_CC version: 5 updated: 2019/12/31 08:53:54
6624 dnl standard check for CC, plus followup sanity checks
6625 dnl $1 = optional parameter to pass to AC_PROG_CC to specify compiler name
6626 AC_DEFUN([CF_PROG_CC],[
6627 CF_ACVERSION_CHECK(2.53,
6628 [AC_MSG_WARN(this will incorrectly handle gnatgcc choice)
6629 AC_REQUIRE([AC_PROG_CC])],
6631 ifelse($1,,[AC_PROG_CC],[AC_PROG_CC($1)])
6633 CF_ACVERSION_CHECK(2.52,
6638 dnl ---------------------------------------------------------------------------
6639 dnl CF_PROG_CC_C_O version: 6 updated: 2021/01/01 13:31:04
6641 dnl Analogous to AC_PROG_CC_C_O, but more useful: tests only $CC, ensures that
6642 dnl the output file can be renamed, and allows for a shell variable that can
6643 dnl be used later. The parameter is either CC or CXX. The result is the
6645 dnl $cf_cv_prog_CC_c_o
6646 dnl $cf_cv_prog_CXX_c_o
6649 dnl $2 = compiler options, if any
6650 AC_DEFUN([CF_PROG_CC_C_O],
6651 [AC_REQUIRE([AC_PROG_CC])dnl
6652 AC_MSG_CHECKING([whether [$]$1 understands -c and -o together])
6653 AC_CACHE_VAL(cf_cv_prog_$1_c_o,
6655 cat > conftest.$ac_ext <<CF_EOF
6658 ${cf_cv_main_return:-return}(0);
6661 # We do the test twice because some compilers refuse to overwrite an
6662 # existing .o file with -o, though they will create one.
6663 ac_try='[$]$1 $2 -c conftest.$ac_ext -o conftest2.$ac_objext >&AC_FD_CC'
6664 if AC_TRY_EVAL(ac_try) &&
6665 test -f conftest2.$ac_objext && AC_TRY_EVAL(ac_try);
6667 eval cf_cv_prog_$1_c_o=yes
6669 eval cf_cv_prog_$1_c_o=no
6673 if test "$cf_cv_prog_$1_c_o" = yes; then
6674 AC_MSG_RESULT([yes])
6679 dnl ---------------------------------------------------------------------------
6680 dnl CF_PROG_GNAT version: 12 updated: 2021/01/02 17:09:14
6682 dnl Check for gnat/gnatmake/etc, ensure that the toolset is complete.
6683 AC_DEFUN([CF_PROG_GNAT],[
6684 for cf_prog_gnat in gnat gnatmake gprconfig gprbuild
6686 CF_UPPER(cf_upper_prog_gnat,${cf_prog_gnat})
6688 unset ac_cv_path_cf_TEMP_gnat
6690 AC_PATH_PROG(cf_TEMP_gnat,$cf_prog_gnat,no)
6691 eval "cf_cv_PATH_$cf_upper_prog_gnat=[$]ac_cv_path_cf_TEMP_gnat"
6693 if test "x$cf_TEMP_gnat" != xno; then
6694 unset cf_cv_gnat_version
6696 CF_GNAT_VERSION(cf_TEMP_gnat,$cf_prog_gnat)
6698 eval "cf_cv_VERSION_$cf_upper_prog_gnat=[$]cf_TEMP_gnat"
6701 unset cf_cv_gnat_version
6702 unset ac_cv_path_cf_TEMP_gnat
6705 if test "x$cf_cv_VERSION_GNATMAKE" = "xno"; then
6707 cf_cv_prog_gnat_correct=no
6709 cf_ada_make=gnatmake
6710 if test "x$cf_cv_VERSION_GPRCONFIG" = "xno"; then
6711 # gprconfig is newer than gnatmake; we can continue...
6714 rm -rf ./conftest* ./*~conftest*
6715 if mkdir conftest.src
6719 for cf_gprconfig in Ada C
6721 AC_MSG_CHECKING(for gprconfig name for $cf_gprconfig)
6722 if test "$cf_gprconfig" = C
6724 for cf_gprconfig_param in \
6725 "$cf_gprconfig,,,,GNATGCC" \
6726 "$cf_gprconfig,,,,GCC" \
6729 cf_gprconfig_value=`echo s| gprconfig --config=$cf_gprconfig_param 2>&AC_FD_CC | ${AWK:-awk} '/^\*/{print [$]3;}' | head -n 1`
6730 test -n "$cf_gprconfig_value" && break
6733 cf_gprconfig_param=$cf_gprconfig
6734 cf_gprconfig_value=`echo s| gprconfig --config=$cf_gprconfig_param 2>&AC_FD_CC | ${AWK:-awk} '/^\*/{print [$]3;}' | head -n 1`
6736 if test -n "$cf_gprconfig_value"
6738 eval "cf_ada_config_[$]cf_gprconfig=[$]cf_gprconfig_value"
6739 AC_MSG_RESULT($cf_gprconfig_value)
6741 AC_MSG_RESULT(missing)
6747 rm -rf ./conftest* ./*~conftest*
6750 if test "x$cf_ada_config" != "x#"
6753 CF_CHECK_GNAT_VERSION
6754 AC_CHECK_PROG(M4_exists, m4, yes, no)
6755 if test "$ac_cv_prog_M4_exists" = no; then
6756 cf_cv_prog_gnat_correct=no
6757 AC_MSG_WARN(Ada95 binding required program m4 not found. Ada95 binding disabled)
6759 if test "$cf_cv_prog_gnat_correct" = yes; then
6760 AC_MSG_CHECKING(if GNAT works)
6761 CF_GNAT_TRY_RUN([procedure conftest;],
6764 procedure conftest is
6766 Text_IO.Put ("Hello World");
6768 GNAT.OS_Lib.OS_Exit (0);
6770 [cf_cv_prog_gnat_correct=yes],
6771 [cf_cv_prog_gnat_correct=no])
6772 AC_MSG_RESULT($cf_cv_prog_gnat_correct)
6775 cf_cv_prog_gnat_correct=no
6779 AC_SUBST(cf_ada_make)
6780 AC_SUBST(cf_ada_config)
6781 AC_SUBST(cf_ada_config_Ada)
6782 AC_SUBST(cf_ada_config_C)
6784 dnl ---------------------------------------------------------------------------
6785 dnl CF_PROG_INSTALL version: 10 updated: 2021/01/04 19:33:05
6787 dnl Force $INSTALL to be an absolute-path. Otherwise, edit_man.sh and the
6788 dnl misc/tabset install won't work properly. Usually this happens only when
6789 dnl using the fallback mkinstalldirs script
6790 AC_DEFUN([CF_PROG_INSTALL],
6796 CF_DIRNAME(cf_dir,$INSTALL)
6797 test -z "$cf_dir" && cf_dir=.
6798 INSTALL="`cd \"$cf_dir\" && pwd`"/"`echo "$INSTALL" | sed -e 's%^.*/%%'`"
6802 dnl ---------------------------------------------------------------------------
6803 dnl CF_PROG_LDCONFIG version: 5 updated: 2015/04/18 08:56:57
6804 dnl ----------------
6805 dnl Check for ldconfig, needed to fixup shared libraries that would be built
6806 dnl and then used in the install.
6807 AC_DEFUN([CF_PROG_LDCONFIG],[
6808 if test "$cross_compiling" = yes ; then
6811 case "$cf_cv_system_name" in
6812 (dragonfly*|mirbsd*|freebsd*)
6813 test -z "$LDCONFIG" && LDCONFIG="/sbin/ldconfig -R"
6815 (*) LDPATH=$PATH:/sbin:/usr/sbin
6816 AC_PATH_PROG(LDCONFIG,ldconfig,,$LDPATH)
6822 dnl ---------------------------------------------------------------------------
6823 dnl CF_PROG_LINT version: 4 updated: 2019/11/20 18:55:37
6825 AC_DEFUN([CF_PROG_LINT],
6827 AC_CHECK_PROGS(LINT, lint cppcheck splint)
6829 (xcppcheck|x*/cppcheck)
6830 test -z "$LINT_OPTS" && LINT_OPTS="--enable=all"
6835 dnl ---------------------------------------------------------------------------
6836 dnl CF_PROG_LN_S version: 2 updated: 2010/08/14 18:25:37
6838 dnl Combine checks for "ln -s" and "ln -sf", updating $LN_S to include "-f"
6839 dnl option if it is supported.
6840 AC_DEFUN([CF_PROG_LN_S],[
6842 AC_MSG_CHECKING(if $LN_S -f options work)
6844 rm -f conf$$.src conf$$dst
6846 echo first >conf$$.src
6847 if $LN_S -f conf$$.src conf$$.dst 2>/dev/null; then
6852 rm -f conf$$.dst conf$$src
6853 AC_MSG_RESULT($cf_prog_ln_sf)
6855 test "$cf_prog_ln_sf" = yes && LN_S="$LN_S -f"
6857 dnl ---------------------------------------------------------------------------
6858 dnl CF_REGEX version: 18 updated: 2021/01/01 16:53:59
6860 dnl Attempt to determine if we've got one of the flavors of regular-expression
6861 dnl code that we can support.
6862 AC_DEFUN([CF_REGEX],
6869 # -lsystre -ltre -lintl -liconv
6870 AC_CHECK_LIB(systre,regcomp,[
6871 AC_CHECK_LIB(iconv,libiconv_open,[CF_ADD_LIB(iconv)])
6872 AC_CHECK_LIB(intl,libintl_gettext,[CF_ADD_LIB(intl)])
6873 AC_CHECK_LIB(tre,tre_regcomp,[CF_ADD_LIB(tre)])
6875 cf_regex_func=regcomp
6877 AC_CHECK_LIB(gnurx,regcomp,[
6879 cf_regex_func=regcomp])
6883 cf_regex_libs="regex re"
6884 AC_CHECK_FUNC(regcomp,[cf_regex_func=regcomp],[
6885 for cf_regex_lib in $cf_regex_libs
6887 AC_CHECK_LIB($cf_regex_lib,regcomp,[
6888 CF_ADD_LIB($cf_regex_lib)
6889 cf_regex_func=regcomp
6896 if test "$cf_regex_func" = no ; then
6897 AC_CHECK_FUNC(compile,[cf_regex_func=compile],[
6898 AC_CHECK_LIB(gen,compile,[
6900 cf_regex_func=compile])])
6903 if test "$cf_regex_func" = no ; then
6904 AC_MSG_WARN(cannot find regular expression library)
6907 AC_CACHE_CHECK(for regular-expression headers,cf_cv_regex_hdrs,[
6910 case "$cf_regex_func" in
6912 for cf_regex_hdr in regexp.h regexpr.h
6914 AC_TRY_LINK([#include <$cf_regex_hdr>],[
6915 char *p = compile("", "", "", 0);
6916 int x = step("", "");
6920 cf_cv_regex_hdrs=$cf_regex_hdr
6926 for cf_regex_hdr in regex.h
6928 AC_TRY_LINK([#include <sys/types.h>
6929 #include <$cf_regex_hdr>],[
6931 int x = regcomp(p, "", 0);
6932 int y = regexec(p, "", 0, 0, 0);
6937 cf_cv_regex_hdrs=$cf_regex_hdr
6946 case "$cf_cv_regex_hdrs" in
6947 (no) AC_MSG_WARN(no regular expression header found) ;;
6948 (regex.h) AC_DEFINE(HAVE_REGEX_H_FUNCS,1,[Define to 1 to include regex.h for regular expressions]) ;;
6949 (regexp.h) AC_DEFINE(HAVE_REGEXP_H_FUNCS,1,[Define to 1 to include regexp.h for regular expressions]) ;;
6950 (regexpr.h) AC_DEFINE(HAVE_REGEXPR_H_FUNCS,1,[Define to 1 to include regexpr.h for regular expressions]) ;;
6953 dnl ---------------------------------------------------------------------------
6954 dnl CF_REMOVE_CFLAGS version: 3 updated: 2021/09/05 17:25:40
6955 dnl ----------------
6956 dnl Remove a given option from CFLAGS/CPPFLAGS
6957 dnl $1 = option to remove
6958 dnl $2 = variable to update
6959 dnl $3 = nonempty to allow verbose message
6960 define([CF_REMOVE_CFLAGS],
6962 cf_tmp_cflag=`echo "x$1" | sed -e 's/^.//' -e 's/=.*//'`
6965 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'`
6966 test "[$]$2" != "$cf_old_cflag" || break
6967 ifelse([$3],,,[CF_VERBOSE(removing old option $1 from $2)])
6971 dnl ---------------------------------------------------------------------------
6972 dnl CF_REMOVE_DEFINE version: 3 updated: 2010/01/09 11:05:50
6973 dnl ----------------
6974 dnl Remove all -U and -D options that refer to the given symbol from a list
6975 dnl of C compiler options. This works around the problem that not all
6976 dnl compilers process -U and -D options from left-to-right, so a -U option
6977 dnl cannot be used to cancel the effect of a preceding -D option.
6979 dnl $1 = target (which could be the same as the source variable)
6980 dnl $2 = source (including '$')
6981 dnl $3 = symbol to remove
6982 define([CF_REMOVE_DEFINE],
6985 sed -e 's/-[[UD]]'"$3"'\(=[[^ ]]*\)\?[[ ]]/ /g' \
6986 -e 's/-[[UD]]'"$3"'\(=[[^ ]]*\)\?[$]//g'`
6988 dnl ---------------------------------------------------------------------------
6989 dnl CF_REMOVE_LIB version: 1 updated: 2007/02/17 14:11:52
6991 dnl Remove the given library from the symbol
6993 dnl $1 = target (which could be the same as the source variable)
6994 dnl $2 = source (including '$')
6995 dnl $3 = library to remove
6996 define([CF_REMOVE_LIB],
6998 # remove $3 library from $2
6999 $1=`echo "$2" | sed -e 's/-l$3[[ ]]//g' -e 's/-l$3[$]//'`
7001 dnl ---------------------------------------------------------------------------
7002 dnl CF_RESTORE_XTRA_FLAGS version: 1 updated: 2020/01/11 16:47:45
7003 dnl ---------------------
7004 dnl Restore flags saved in CF_SAVE_XTRA_FLAGS
7005 dnl $1 = name of current macro
7006 define([CF_RESTORE_XTRA_FLAGS],
7008 LIBS="$cf_save_LIBS_$1"
7009 CFLAGS="$cf_save_CFLAGS_$1"
7010 CPPFLAGS="$cf_save_CPPFLAGS_$1"
7012 dnl ---------------------------------------------------------------------------
7013 dnl CF_RPATH_HACK version: 13 updated: 2021/01/03 18:30:50
7015 AC_DEFUN([CF_RPATH_HACK],
7016 [AC_REQUIRE([AC_PROG_FGREP])dnl
7017 AC_REQUIRE([CF_LD_RPATH_OPT])dnl
7019 AC_MSG_CHECKING(for updated LDFLAGS)
7020 if test -n "$LD_RPATH_OPT" ; then
7021 AC_MSG_RESULT(maybe)
7023 AC_CHECK_PROGS(cf_ldd_prog,ldd,no)
7024 cf_rpath_list="/usr/lib /lib"
7025 if test "$cf_ldd_prog" != no
7029 AC_TRY_LINK([#include <stdio.h>],
7031 [cf_rpath_oops=`"$cf_ldd_prog" "conftest$ac_exeext" | ${FGREP-fgrep} ' not found' | sed -e 's% =>.*$%%' |sort | uniq`
7032 cf_rpath_list=`"$cf_ldd_prog" "conftest$ac_exeext" | ${FGREP-fgrep} / | sed -e 's%^.*[[ ]]/%/%' -e 's%/[[^/]][[^/]]*$%%' |sort | uniq`])
7034 # If we passed the link-test, but get a "not found" on a given library,
7035 # this could be due to inept reconfiguration of gcc to make it only
7036 # partly honor /usr/local/lib (or whatever). Sometimes this behavior
7037 # is intentional, e.g., installing gcc in /usr/bin and suppressing the
7038 # /usr/local libraries.
7039 if test -n "$cf_rpath_oops"
7041 for cf_rpath_src in $cf_rpath_oops
7043 for cf_rpath_dir in \
7048 if test -f "$cf_rpath_dir/lib/$cf_rpath_src"
7050 CF_VERBOSE(...adding -L$cf_rpath_dir/lib to LDFLAGS for $cf_rpath_src)
7051 LDFLAGS="$LDFLAGS -L$cf_rpath_dir/lib"
7059 CF_VERBOSE(...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS)
7061 CF_RPATH_HACK_2(LDFLAGS)
7062 CF_RPATH_HACK_2(LIBS)
7064 CF_VERBOSE(...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS)
7068 AC_SUBST(EXTRA_LDFLAGS)
7070 dnl ---------------------------------------------------------------------------
7071 dnl CF_RPATH_HACK_2 version: 8 updated: 2021/01/01 13:31:04
7073 dnl Do one set of substitutions for CF_RPATH_HACK, adding an rpath option to
7074 dnl EXTRA_LDFLAGS for each -L option found.
7076 dnl $cf_rpath_list contains a list of directories to ignore.
7078 dnl $1 = variable name to update. The LDFLAGS variable should be the only one,
7079 dnl but LIBS often has misplaced -L options.
7080 AC_DEFUN([CF_RPATH_HACK_2],
7082 CF_VERBOSE(...checking $1 [$]$1)
7085 for cf_rpath_src in [$]$1
7087 case "$cf_rpath_src" in
7090 # check if this refers to a directory which we will ignore
7092 if test -n "$cf_rpath_list"
7094 for cf_rpath_item in $cf_rpath_list
7096 if test "x$cf_rpath_src" = "x-L$cf_rpath_item"
7104 if test "$cf_rpath_skip" = no
7106 # transform the option
7107 if test "$LD_RPATH_OPT" = "-R " ; then
7108 cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%-R %"`
7110 cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%$LD_RPATH_OPT%"`
7113 # if we have not already added this, add it now
7114 cf_rpath_tst=`echo "$EXTRA_LDFLAGS" | sed -e "s%$cf_rpath_tmp %%"`
7115 if test "x$cf_rpath_tst" = "x$EXTRA_LDFLAGS"
7117 CF_VERBOSE(...Filter $cf_rpath_src ->$cf_rpath_tmp)
7118 EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS"
7123 cf_rpath_dst="$cf_rpath_dst $cf_rpath_src"
7127 CF_VERBOSE(...checked $1 [$]$1)
7128 AC_SUBST(EXTRA_LDFLAGS)
7130 dnl ---------------------------------------------------------------------------
7131 dnl CF_SAVE_XTRA_FLAGS version: 1 updated: 2020/01/11 16:46:44
7132 dnl ------------------
7133 dnl Use this macro to save CFLAGS/CPPFLAGS/LIBS before checks against X headers
7134 dnl and libraries which do not update those variables.
7136 dnl $1 = name of current macro
7137 define([CF_SAVE_XTRA_FLAGS],
7139 cf_save_LIBS_$1="$LIBS"
7140 cf_save_CFLAGS_$1="$CFLAGS"
7141 cf_save_CPPFLAGS_$1="$CPPFLAGS"
7142 LIBS="$LIBS ${X_PRE_LIBS} ${X_LIBS} ${X_EXTRA_LIBS}"
7143 for cf_X_CFLAGS in $X_CFLAGS
7145 case "x$cf_X_CFLAGS" in
7147 CPPFLAGS="$CPPFLAGS $cf_X_CFLAGS"
7150 CFLAGS="$CFLAGS $cf_X_CFLAGS"
7155 dnl ---------------------------------------------------------------------------
7156 dnl CF_SHARED_OPTS version: 107 updated: 2021/09/04 06:47:34
7159 dnl Attempt to determine the appropriate CC/LD options for creating a shared
7163 dnl a) ${LOCAL_LDFLAGS} is used to link executables that will run within
7164 dnl the build-tree, i.e., by making use of the libraries that are compiled in
7165 dnl $rel_builddir/lib We avoid compiling-in a $rel_builddir/lib path for the
7166 dnl shared library since that can lead to unexpected results at runtime.
7167 dnl b) ${LOCAL_LDFLAGS2} has the same intention but assumes that the shared
7168 dnl libraries are compiled in ../../lib
7170 dnl The variable 'cf_cv_do_symlinks' is used to control whether we configure
7171 dnl to install symbolic links to the rel/abi versions of shared libraries.
7173 dnl The variable 'cf_cv_shlib_version' controls whether we use the rel or abi
7174 dnl version when making symbolic links.
7176 dnl The variable 'cf_cv_shlib_version_infix' controls whether shared library
7177 dnl version numbers are infix (ex: libncurses.<ver>.dylib) or postfix
7178 dnl (ex: libncurses.so.<ver>).
7180 dnl Some loaders leave 'so_locations' lying around. It is nice to clean up.
7181 AC_DEFUN([CF_SHARED_OPTS],
7183 AC_REQUIRE([CF_LD_RPATH_OPT])
7189 INSTALL_LIB="-m 644"
7190 : ${rel_builddir:=.}
7198 cf_cv_do_symlinks=no
7200 test "$cf_cv_enable_rpath" = yes && cf_ld_rpath_opt="$LD_RPATH_OPT"
7202 AC_MSG_CHECKING(if release/abi version should be used for shared libs)
7203 AC_ARG_WITH(shlib-version,
7204 [ --with-shlib-version=X Specify rel or abi version for shared libs],
7205 [test -z "$withval" && withval=auto
7208 cf_cv_shlib_version=auto
7211 cf_cv_shlib_version=$withval
7214 AC_MSG_RESULT($withval)
7215 AC_MSG_ERROR([option value must be one of: rel, abi, or auto])
7218 ],[cf_cv_shlib_version=auto])
7219 AC_MSG_RESULT($cf_cv_shlib_version)
7224 # Some less-capable ports of gcc support only -fpic
7228 if test "$GCC" = yes
7232 case "$cf_cv_system_name" in
7233 (*linux*) # e.g., PGI compiler
7239 if test "$cf_try_fPIC" = yes
7241 AC_MSG_CHECKING(which $CC option to use)
7242 cf_save_CFLAGS="$CFLAGS"
7243 for CC_SHARED_OPTS in -fPIC -fpic ''
7245 CFLAGS="$cf_save_CFLAGS $CC_SHARED_OPTS"
7246 AC_TRY_COMPILE([#include <stdio.h>],[int x = 1],[break],[])
7248 AC_MSG_RESULT($CC_SHARED_OPTS)
7249 CFLAGS="$cf_save_CFLAGS"
7252 cf_cv_shlib_version_infix=no
7254 case "$cf_cv_system_name" in
7255 (aix4.[3-9]*|aix[[5-7]]*)
7256 if test "$GCC" = yes; then
7257 CC_SHARED_OPTS='-Wl,-brtl'
7258 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o [$]@'
7260 CC_SHARED_OPTS='-brtl'
7261 # as well as '-qpic=large -G' or perhaps "-bM:SRE -bnoentry -bexpall"
7262 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -G -Wl,-brtl -Wl,-blibpath:${RPATH_LIST}:/usr/lib -o [$]@'
7266 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -o $[@] -Xlinker -soname=`basename $[@]` -nostart -e 0'
7270 MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
7271 RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
7272 cf_cv_shlib_version=cygdll
7273 cf_cv_shlib_version_infix=cygdll
7276 cat >mk_shared_lib.sh <<-CF_EOF
7279 IMPORT_LIB=\`echo "\[$]1" | sed -e 's/cyg/lib/' -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
7282 Linking shared library
7283 ** SHARED_LIB \[$]SHARED_LIB
7284 ** IMPORT_LIB \[$]IMPORT_LIB
7286 exec \[$]* ${LDFLAGS} -shared -Wl,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB}
7288 chmod +x mk_shared_lib.sh
7292 MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
7293 RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
7294 cf_cv_shlib_version=msysdll
7295 cf_cv_shlib_version_infix=msysdll
7298 cat >mk_shared_lib.sh <<-CF_EOF
7301 IMPORT_LIB=\`echo "\[$]1" | sed -e 's/msys-/lib/' -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
7304 Linking shared library
7305 ** SHARED_LIB \[$]SHARED_LIB
7306 ** IMPORT_LIB \[$]IMPORT_LIB
7308 exec \[$]* ${LDFLAGS} -shared -Wl,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB}
7310 chmod +x mk_shared_lib.sh
7313 cf_try_cflags="no-cpp-precomp"
7314 CC_SHARED_OPTS="-dynamic"
7315 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -dynamiclib -install_name ${libdir}/`basename $[@]` -compatibility_version ${ABI_VERSION} -current_version ${ABI_VERSION} -o $[@]'
7316 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi
7317 cf_cv_shlib_version_infix=yes
7318 AC_CACHE_CHECK([if ld -search_paths_first works], cf_cv_ldflags_search_paths_first, [
7319 cf_save_LDFLAGS=$LDFLAGS
7320 LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
7321 AC_TRY_LINK(, [int i;], cf_cv_ldflags_search_paths_first=yes, cf_cv_ldflags_search_paths_first=no)
7322 LDFLAGS=$cf_save_LDFLAGS])
7323 if test "$cf_cv_ldflags_search_paths_first" = yes; then
7324 LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
7329 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
7332 # HP-UX 8.07 ld lacks "+b" option used for libdir search-list
7333 if test "$GCC" != yes; then
7336 MK_SHARED_LIB='${LD} ${LDFLAGS} -b -o $[@]'
7337 INSTALL_LIB="-m 555"
7340 # (tested with gcc 2.7.2 -- I don't have c89)
7341 if test "$GCC" = yes; then
7342 LD_SHARED_OPTS='-Xlinker +b -Xlinker ${libdir}'
7345 LD_SHARED_OPTS='-Wl,+b,${libdir}'
7347 MK_SHARED_LIB='${LD} ${LDFLAGS} +b ${libdir} -b -o $[@]'
7348 # HP-UX shared libraries must be executable, and should be
7349 # readonly to exploit a quirk in the memory manager.
7350 INSTALL_LIB="-m 555"
7353 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
7354 if test "$cf_cv_shlib_version" = rel; then
7355 cf_shared_soname='`basename $[@] .${REL_VERSION}`.${ABI_VERSION}'
7357 cf_shared_soname='`basename $[@]`'
7360 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-rpath,${RPATH_LIST} -Wl,-h,'$cf_shared_soname' -o $[@]'
7363 if test "$cf_cv_enable_rpath" = yes ; then
7364 EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
7366 # tested with IRIX 5.2 and 'cc'.
7367 if test "$GCC" != yes; then
7368 CC_SHARED_OPTS='-KPIC'
7369 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -rdata_shared -soname `basename $[@]` -o $[@]'
7371 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,`basename $[@]` -o $[@]'
7373 cf_cv_rm_so_locs=yes
7375 (linux*|gnu*|k*bsd*-gnu)
7376 if test "$DFT_LWR_MODEL" = "shared" && test -n "$LD_RPATH_OPT" ; then
7377 LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
7378 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
7380 if test "$cf_cv_enable_rpath" = yes ; then
7381 EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
7384 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
7387 cf_cv_shlib_version=msvcdll
7388 cf_cv_shlib_version_infix=msvcdll
7391 if test "$DFT_LWR_MODEL" = "shared" ; then
7392 LOCAL_LDFLAGS="-link -dll"
7393 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
7394 EXTRA_LDFLAGS="-link -dll $EXTRA_LDFLAGS"
7397 MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ ${LD} [$]{CFLAGS}'
7398 RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.lib"
7399 cat >mk_shared_lib.sh <<-CF_EOF
7402 IMPORT_LIB=\`echo "\[$]1" | sed -e 's/[[0-9]]*\.dll[$]/.dll.lib/'\`
7407 Linking shared library
7408 ** SHARED LIB \$SHARED_LIB
7409 ** IMPORT_LIB \$IMPORT_LIB
7411 args=\$(echo \[$]* | sed -E "s#-l(\w*)#\1.dll.lib#g" | sed -E "s#-L(\w*)#-LIBPATH:\1#g")
7412 exec \$my_ld -DLL -IMPLIB:"\${IMPORT_LIB}" -OUT:"\${SHARED_LIB}" ${LDFLAGS} \$args
7413 mv "\${IMPORT_LIB}" "\${IMPORT_LIB}"
7415 chmod +x mk_shared_lib.sh
7416 cat >mk_prog.sh <<-CF_EOF
7419 # Ignore first argument (compiler) and use LD (link.exe) unconditionally
7422 ldopts=("/subsystem:console")
7425 while test \[$]# -gt 0; do
7428 # ignore -link argument
7430 -M[[TD]] | -M[[TD]]d)
7431 # ignore runtime-library option
7446 libs+=("\`echo \"\[$]1\" | sed \"s/^-l//\"\`")
7449 ldopts+=("\`echo \"\[$]1\" | sed \"s/^-L/-LIBPATH:/\"\`")
7455 for linkarg in \`echo '\[$]1' | sed -e 's/-Wl,//' -e 's/,/ /'\`; do
7456 ldopts+=("\[$]{linkarg}")
7464 ldopts+=("-out:\[$]1")
7473 if [[ "\$isdll" -ne 0 ]]; then
7474 for lib in \[$]{libs[[*]]}; do
7475 ldopts+=("\[$]lib.dll.lib")
7478 for lib in \[$]{libs[[*]]}; do
7479 ldopts+=("\[$]lib.lib")
7484 ** ld options: "\[$]{ldopts[[@]]}"
7486 exec \[$]LD \[$]{ldopts[[@]]}
7489 LINK_PROGS="$SHELL ${rel_builddir}/mk_prog.sh"
7490 LINK_TESTS="$SHELL ${rel_builddir}/mk_prog.sh"
7493 cf_cv_shlib_version=mingw
7494 cf_cv_shlib_version_infix=mingw
7497 if test "$DFT_LWR_MODEL" = "shared" ; then
7498 LOCAL_LDFLAGS="-Wl,--enable-auto-import"
7499 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
7500 EXTRA_LDFLAGS="-Wl,--enable-auto-import $EXTRA_LDFLAGS"
7503 MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
7504 RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
7505 cat >mk_shared_lib.sh <<-CF_EOF
7508 IMPORT_LIB=\`echo "\[$]1" | sed -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
7511 Linking shared library
7512 ** SHARED_LIB \[$]SHARED_LIB
7513 ** IMPORT_LIB \[$]IMPORT_LIB
7515 exec \[$]* ${LDFLAGS} -shared -Wl,--enable-auto-import,--out-implib=\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o \[$]{SHARED_LIB}
7517 chmod +x mk_shared_lib.sh
7519 (openbsd[[2-9]].*|mirbsd*)
7520 if test "$DFT_LWR_MODEL" = "shared" && test -n "$LD_RPATH_OPT" ; then
7521 LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
7522 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
7524 if test "$cf_cv_enable_rpath" = yes ; then
7525 EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
7527 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
7529 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-Bshareable,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
7533 MK_SHARED_LIB='${LD} -Wshared -Weld=-export_all -o $[@]'
7537 MK_SHARED_LIB='${LD} -Wshared -Wxld=-export_all -o $[@]'
7539 (nto-qnx*|openbsd*|freebsd[[12]].*)
7540 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
7541 MK_SHARED_LIB='${LD} ${LDFLAGS} -Bshareable -o $[@]'
7542 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
7544 (dragonfly*|freebsd*)
7545 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
7546 if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then
7547 LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)"
7548 LOCAL_LDFLAGS2="${cf_ld_rpath_opt}\${RPATH_LIST} $LOCAL_LDFLAGS"
7549 EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
7552 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
7555 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
7556 if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then
7557 LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)"
7558 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
7559 EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
7560 if test "$cf_cv_shlib_version" = auto; then
7561 if test -f /usr/libexec/ld.elf_so; then
7562 cf_cv_shlib_version=abi
7564 cf_cv_shlib_version=rel
7568 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname' -o $[@]'
7570 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -o $[@]'
7574 # tested with OSF/1 V3.2 and 'cc'
7575 # tested with OSF/1 V3.2 and gcc 2.6.3 (but the c++ demo didn't
7576 # link with shared libs).
7577 MK_SHARED_LIB='${LD} ${LDFLAGS} -set_version ${REL_VERSION}:${ABI_VERSION} -expect_unresolved "*" -shared -soname `basename $[@]`'
7580 MK_SHARED_LIB="${MK_SHARED_LIB} -msym"
7583 MK_SHARED_LIB="${MK_SHARED_LIB}"' -o $[@]'
7584 if test "$DFT_LWR_MODEL" = "shared" && test -n "$LD_RPATH_OPT" ; then
7585 LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
7586 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
7588 cf_cv_rm_so_locs=yes
7590 (sco3.2v5*) # also uw2* and UW7: hops 13-Apr-98
7591 # tested with osr5.0.5
7592 if test "$GCC" != yes; then
7593 CC_SHARED_OPTS='-belf -KPIC'
7595 MK_SHARED_LIB='${LD} ${LDFLAGS} -dy -G -h `basename $[@] .${REL_VERSION}`.${ABI_VERSION} -o [$]@'
7596 if test "$cf_cv_enable_rpath" = yes ; then
7597 # only way is to set LD_RUN_PATH but no switch for it
7600 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
7601 LINK_PROGS='LD_RUN_PATH=${libdir}'
7602 LINK_TESTS='Pwd=`pwd`;LD_RUN_PATH=`dirname $${Pwd}`/lib'
7605 # tested with SunOS 4.1.1 and gcc 2.7.0
7606 if test "$GCC" != yes; then
7607 CC_SHARED_OPTS='-KPIC'
7609 MK_SHARED_LIB='${LD} ${LDFLAGS} -assert pure-text -o $[@]'
7610 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
7613 # tested with SunOS 5.5.1 (solaris 2.5.1) and gcc 2.7.2
7614 # tested with SunOS 5.10 (solaris 10) and gcc 3.4.3
7615 if test "$DFT_LWR_MODEL" = "shared" ; then
7616 LOCAL_LDFLAGS="-R \$(LOCAL_LIBDIR):\${libdir}"
7617 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
7619 if test "$cf_cv_enable_rpath" = yes ; then
7620 EXTRA_LDFLAGS="-R \${libdir} $EXTRA_LDFLAGS"
7623 if test "$GCC" != yes; then
7624 cf_save_CFLAGS="$CFLAGS"
7625 for cf_shared_opts in -xcode=pic32 -xcode=pic13 -KPIC -Kpic -O
7627 CFLAGS="$cf_shared_opts $cf_save_CFLAGS"
7628 AC_TRY_COMPILE([#include <stdio.h>],[printf("Hello\\n");],[break])
7630 CFLAGS="$cf_save_CFLAGS"
7631 CC_SHARED_OPTS=$cf_shared_opts
7632 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -dy -G -h '$cf_cv_shared_soname' -o $[@]'
7634 MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -dy -G -h '$cf_cv_shared_soname' -o $[@]'
7637 (sysv5uw7*|unix_sv*)
7638 # tested with UnixWare 7.1.0 (gcc 2.95.2 and cc)
7639 if test "$GCC" != yes; then
7640 CC_SHARED_OPTS='-KPIC'
7642 MK_SHARED_LIB='${LD} ${LDFLAGS} -d y -G -o [$]@'
7645 CC_SHARED_OPTS='unknown'
7646 MK_SHARED_LIB='echo unknown'
7650 # This works if the last tokens in $MK_SHARED_LIB are the -o target.
7651 case "$cf_cv_shlib_version" in
7653 case "$MK_SHARED_LIB" in
7655 test "$cf_cv_do_symlinks" = no && cf_cv_do_symlinks=yes
7658 AC_MSG_WARN(ignored --with-shlib-version)
7664 if test -n "$cf_try_cflags"
7666 cat > conftest.$ac_ext <<EOF
7667 #line __oline__ "${as_me:-configure}"
7669 int main(int argc, char *argv[[]])
7672 return (argv[[argc-1]] == 0) ;
7675 cf_save_CFLAGS="$CFLAGS"
7676 for cf_opt in $cf_try_cflags
7678 CFLAGS="$cf_save_CFLAGS -$cf_opt"
7679 AC_MSG_CHECKING(if CFLAGS option -$cf_opt works)
7680 if AC_TRY_EVAL(ac_compile); then
7682 cf_save_CFLAGS="$CFLAGS"
7687 CFLAGS="$cf_save_CFLAGS"
7691 # RPATH_LIST is a colon-separated list of directories
7692 test -n "$cf_ld_rpath_opt" && MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${RPATH_LIST}"
7693 test -z "$RPATH_LIST" && RPATH_LIST="\${libdir}"
7695 test "$cf_cv_rm_so_locs" = yes && RM_SHARED_OPTS="$RM_SHARED_OPTS so_locations"
7697 CF_VERBOSE(CC_SHARED_OPTS: $CC_SHARED_OPTS)
7698 CF_VERBOSE(MK_SHARED_LIB: $MK_SHARED_LIB)
7700 AC_SUBST(CC_SHARED_OPTS)
7701 AC_SUBST(LD_RPATH_OPT)
7702 AC_SUBST(LD_SHARED_OPTS)
7703 AC_SUBST(MK_SHARED_LIB)
7704 AC_SUBST(RM_SHARED_OPTS)
7706 AC_SUBST(LINK_PROGS)
7707 AC_SUBST(LINK_TESTS)
7709 AC_SUBST(EXTRA_LDFLAGS)
7710 AC_SUBST(LOCAL_LDFLAGS)
7711 AC_SUBST(LOCAL_LDFLAGS2)
7713 AC_SUBST(INSTALL_LIB)
7714 AC_SUBST(RPATH_LIST)
7716 dnl ---------------------------------------------------------------------------
7717 dnl CF_SHARED_SONAME version: 3 updated: 2008/09/08 18:34:43
7718 dnl ----------------
7719 dnl utility macro for CF_SHARED_OPTS, constructs "$cf_cv_shared_soname" for
7720 dnl substitution into MK_SHARED_LIB string for the "-soname" (or similar)
7723 dnl $1 is the default that should be used for "$cf_cv_shlib_version".
7724 dnl If missing, use "rel".
7725 define([CF_SHARED_SONAME],
7727 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=ifelse($1,,rel,$1)
7728 if test "$cf_cv_shlib_version" = rel; then
7729 cf_cv_shared_soname='`basename $[@] .${REL_VERSION}`.${ABI_VERSION}'
7731 cf_cv_shared_soname='`basename $[@]`'
7734 dnl ---------------------------------------------------------------------------
7735 dnl CF_SIGWINCH version: 6 updated: 2021/01/01 13:31:04
7737 dnl Use this macro after CF_XOPEN_SOURCE, but do not require it (not all
7738 dnl programs need this test).
7740 dnl This is really a Mac OS X 10.4.3 workaround. Defining _POSIX_C_SOURCE
7741 dnl forces SIGWINCH to be undefined (breaks xterm, ncurses). Oddly, the struct
7742 dnl winsize declaration is left alone - we may revisit this if Apple choose to
7743 dnl break that part of the interface as well.
7744 AC_DEFUN([CF_SIGWINCH],
7746 AC_CACHE_CHECK(if SIGWINCH is defined,cf_cv_define_sigwinch,[
7748 #include <sys/types.h>
7749 #include <sys/signal.h>
7750 ],[int x = SIGWINCH; (void)x],
7751 [cf_cv_define_sigwinch=yes],
7753 #undef _XOPEN_SOURCE
7754 #undef _POSIX_SOURCE
7755 #undef _POSIX_C_SOURCE
7756 #include <sys/types.h>
7757 #include <sys/signal.h>
7758 ],[int x = SIGWINCH; (void)x],
7759 [cf_cv_define_sigwinch=maybe],
7760 [cf_cv_define_sigwinch=no])
7764 if test "$cf_cv_define_sigwinch" = maybe ; then
7765 AC_CACHE_CHECK(for actual SIGWINCH definition,cf_cv_fixup_sigwinch,[
7766 cf_cv_fixup_sigwinch=unknown
7768 while test "$cf_sigwinch" != 1
7771 #undef _XOPEN_SOURCE
7772 #undef _POSIX_SOURCE
7773 #undef _POSIX_C_SOURCE
7774 #include <sys/types.h>
7775 #include <sys/signal.h>
7777 #if SIGWINCH != $cf_sigwinch
7780 int x = SIGWINCH; (void)x],
7781 [cf_cv_fixup_sigwinch=$cf_sigwinch
7784 cf_sigwinch="`expr "$cf_sigwinch" - 1`"
7788 if test "$cf_cv_fixup_sigwinch" != unknown ; then
7789 CPPFLAGS="$CPPFLAGS -DSIGWINCH=$cf_cv_fixup_sigwinch"
7793 dnl ---------------------------------------------------------------------------
7794 dnl CF_SIG_ATOMIC_T version: 5 updated: 2020/03/10 18:53:47
7796 dnl signal handler, but there are some gcc dependencies in that recommendation.
7798 AC_DEFUN([CF_SIG_ATOMIC_T],
7800 AC_MSG_CHECKING(for signal global datatype)
7801 AC_CACHE_VAL(cf_cv_sig_atomic_t,[
7803 "volatile sig_atomic_t" \
7808 #include <sys/types.h>
7814 static void handler(int sig)
7819 [signal(SIGINT, handler);
7821 [cf_cv_sig_atomic_t=$cf_type],
7822 [cf_cv_sig_atomic_t=no])
7823 test "$cf_cv_sig_atomic_t" != no && break
7826 AC_MSG_RESULT($cf_cv_sig_atomic_t)
7827 test "$cf_cv_sig_atomic_t" != no && AC_DEFINE_UNQUOTED(SIG_ATOMIC_T, $cf_cv_sig_atomic_t,[Define to signal global datatype])
7829 dnl ---------------------------------------------------------------------------
7830 dnl CF_SIZECHANGE version: 18 updated: 2021/09/04 06:35:04
7832 dnl Check for definitions & structures needed for window size-changing
7834 dnl https://stackoverflow.com/questions/18878141/difference-between-structures-ttysize-and-winsize/50769952#50769952
7835 AC_DEFUN([CF_SIZECHANGE],
7837 AC_REQUIRE([CF_STRUCT_TERMIOS])
7838 AC_CACHE_CHECK(declaration of size-change, cf_cv_sizechange,[
7839 cf_cv_sizechange=unknown
7840 cf_save_CPPFLAGS="$CPPFLAGS"
7842 for cf_opts in "" "NEED_PTEM_H"
7845 CPPFLAGS="$cf_save_CPPFLAGS"
7846 if test -n "$cf_opts"
7848 CF_APPEND_TEXT(CPPFLAGS,-D$cf_opts)
7850 AC_TRY_COMPILE([#include <sys/types.h>
7851 #ifdef HAVE_TERMIOS_H
7852 #include <termios.h>
7854 #ifdef HAVE_TERMIO_H
7860 /* This is a workaround for SCO: they neglected to define struct winsize in
7861 * termios.h -- it is only in termio.h and ptem.h
7863 #include <sys/stream.h>
7864 #include <sys/ptem.h>
7867 #ifdef HAVE_SYS_IOCTL_H
7868 #include <sys/ioctl.h>
7872 struct ttysize win; /* SunOS 3.0... */
7873 int y = win.ts_lines = 2;
7874 int x = win.ts_cols = 1;
7879 struct winsize win; /* everything else */
7880 int y = win.ws_row = 2;
7881 int x = win.ws_col = 1;
7885 no TIOCGSIZE or TIOCGWINSZ
7886 #endif /* TIOCGWINSZ */
7887 #endif /* TIOCGSIZE */
7889 [cf_cv_sizechange=yes],
7890 [cf_cv_sizechange=no])
7892 CPPFLAGS="$cf_save_CPPFLAGS"
7893 if test "$cf_cv_sizechange" = yes ; then
7894 echo "size-change succeeded ($cf_opts)" >&AC_FD_CC
7895 test -n "$cf_opts" && cf_cv_sizechange="$cf_opts"
7900 if test "$cf_cv_sizechange" != no ; then
7901 AC_DEFINE(HAVE_SIZECHANGE,1,[Define to 1 if sizechange declarations are provided])
7902 case "$cf_cv_sizechange" in
7904 AC_DEFINE_UNQUOTED($cf_cv_sizechange )
7909 dnl ---------------------------------------------------------------------------
7910 dnl CF_SRC_MODULES version: 33 updated: 2021/01/01 13:31:04
7912 dnl For each parameter, test if the source-directory exists, and if it contains
7913 dnl a 'modules' file. If so, add to the list $cf_cv_src_modules which we'll
7914 dnl use in CF_LIB_RULES.
7916 dnl This uses the configured value to make the lists SRC_SUBDIRS and
7917 dnl SUB_MAKEFILES which are used in the makefile-generation scheme.
7918 AC_DEFUN([CF_SRC_MODULES],
7920 AC_REQUIRE([CF_CHECK_GNAT_VERSION])
7921 AC_MSG_CHECKING(for src modules)
7923 # dependencies and linker-arguments for test-programs
7924 TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEPS"
7925 TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEP2"
7926 if test "$DFT_LWR_MODEL" = "libtool"; then
7927 TEST_ARGS="${TEST_DEPS}"
7928 TEST_ARG2="${TEST_DEP2}"
7930 TEST_ARGS="-l${LIB_NAME}${USE_ARG_SUFFIX} $TEST_ARGS"
7931 TEST_ARG2="-l${LIB_NAME}${USE_ARG_SUFFIX} $TEST_ARG2"
7934 PC_MODULES_TO_MAKE="ncurses${USE_ARG_SUFFIX}"
7938 if test -f "$srcdir/$cf_dir/modules" ; then
7940 # We may/may not have tack in the distribution, though the
7942 if test "$cf_dir" = tack ; then
7943 if test "x$cf_with_tack" != "xyes"; then
7948 if test -z "$cf_cv_src_modules"; then
7949 cf_cv_src_modules=$cf_dir
7951 cf_cv_src_modules="$cf_cv_src_modules $cf_dir"
7954 # Make the ncurses_cfg.h file record the library interface files as
7955 # well. These are header files that are the same name as their
7956 # directory. Ncurses is the only library that does not follow
7958 if test "$cf_dir" = tack ; then
7960 elif test -f "$srcdir/${cf_dir}/${cf_dir}.h" ; then
7961 CF_UPPER(cf_have_include,$cf_dir)
7962 AC_DEFINE_UNQUOTED(HAVE_${cf_have_include}_H)
7963 AC_DEFINE_UNQUOTED(HAVE_LIB${cf_have_include})
7964 CF_MAP_LIB_BASENAME(TEST_ROOT,$cf_dir)
7965 TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${TEST_ROOT}${DFT_DEP_SUFFIX} $TEST_DEPS"
7966 TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${TEST_ROOT}${DFT_DEP_SUFFIX} $TEST_DEP2"
7967 if test "$DFT_LWR_MODEL" = "libtool"; then
7968 TEST_ARGS="${TEST_DEPS}"
7969 TEST_ARG2="${TEST_DEP2}"
7971 TEST_ARGS="-l${TEST_ROOT}${USE_ARG_SUFFIX} $TEST_ARGS"
7972 TEST_ARG2="-l${TEST_ROOT}${USE_ARG_SUFFIX} $TEST_ARG2"
7974 PC_MODULES_TO_MAKE="${PC_MODULES_TO_MAKE} ${cf_dir}${USE_ARG_SUFFIX}"
7978 AC_MSG_RESULT($cf_cv_src_modules)
7980 TEST_ARGS="-L${LIB_DIR} $TEST_ARGS"
7981 TEST_ARG2="-L${LIB_2ND} $TEST_ARG2"
7990 if test "x$cf_with_manpages" != xno ; then
7991 SRC_SUBDIRS="$SRC_SUBDIRS man"
7993 SRC_SUBDIRS="$SRC_SUBDIRS include"
7994 for cf_dir in $cf_cv_src_modules
7996 SRC_SUBDIRS="$SRC_SUBDIRS $cf_dir"
7998 if test "x$cf_with_tests" != "xno" ; then
7999 SRC_SUBDIRS="$SRC_SUBDIRS test"
8001 # always make this, to install the ncurses-config script
8002 SRC_SUBDIRS="$SRC_SUBDIRS misc"
8003 if test "$cf_with_cxx_binding" != no; then
8004 PC_MODULES_TO_MAKE="${PC_MODULES_TO_MAKE} ncurses++${USE_ARG_SUFFIX}"
8005 SRC_SUBDIRS="$SRC_SUBDIRS c++"
8008 test "x$with_termlib" != xno && PC_MODULES_TO_MAKE="$PC_MODULES_TO_MAKE $TINFO_ARG_SUFFIX"
8009 test "x$with_ticlib" != xno && PC_MODULES_TO_MAKE="$PC_MODULES_TO_MAKE $TICS_ARG_SUFFIX"
8011 AC_SUBST(PC_MODULES_TO_MAKE)
8014 if test "x$cf_with_ada" = "xyes" && test "x$cf_cv_prog_gnat_correct" = xyes && test -f "$srcdir/Ada95/Makefile.in" ; then
8015 SRC_SUBDIRS="$SRC_SUBDIRS Ada95"
8016 ADA_SUBDIRS="gen src"
8017 if test "x$cf_with_tests" != "xno" ; then
8018 ADA_SUBDIRS="$ADA_SUBDIRS samples"
8023 for cf_dir in $SRC_SUBDIRS
8025 SUB_MAKEFILES="$SUB_MAKEFILES $cf_dir/Makefile"
8028 if test -n "$ADA_SUBDIRS"; then
8029 for cf_dir in $ADA_SUBDIRS
8031 SUB_MAKEFILES="$SUB_MAKEFILES Ada95/$cf_dir/Makefile"
8033 AC_SUBST(ADA_SUBDIRS)
8036 dnl ---------------------------------------------------------------------------
8037 dnl CF_STDCPP_LIBRARY version: 12 updated: 2021/01/01 13:31:04
8038 dnl -----------------
8039 dnl Check for -lstdc++, which is GNU's standard C++ library.
8040 dnl If $CXXLIBS is set, add that to the libraries used for test-linking.
8041 dnl If -lstdc++ was not already added to $LIBS or $CXXLIBS, and is needed,
8042 dnl add it to $CXXLIBS.
8043 AC_DEFUN([CF_STDCPP_LIBRARY],
8045 if test -n "$GXX" ; then
8048 LIBS="$LIBS $CXXLIBS"
8049 AC_MSG_CHECKING(if we already have C++ library)
8051 #include <iostream>],[
8052 std::cout << "Hello World!" << std::endl;],
8053 [cf_have_libstdcpp=yes],
8054 [cf_have_libstdcpp=no])
8055 AC_MSG_RESULT($cf_have_libstdcpp)
8058 if test "$cf_have_libstdcpp" != yes
8060 case "$cf_cv_system_name" in
8062 if test -z "`g++ -dM -E - < /dev/null | grep __KLIBC__`"; then
8063 cf_stdcpp_libname=stdcpp
8065 cf_stdcpp_libname=stdc++
8069 cf_stdcpp_libname=stdc++
8073 AC_CACHE_CHECK(for library $cf_stdcpp_libname,cf_cv_libstdcpp,[
8075 LIBS="$LIBS $CXXLIBS"
8076 CF_ADD_LIB($cf_stdcpp_libname)
8078 #include <iostream>],[
8079 std::cout << "Hello World!" << std::endl;],
8080 [cf_cv_libstdcpp=yes],
8081 [cf_cv_libstdcpp=no])
8084 test "$cf_cv_libstdcpp" = yes && { CF_ADD_LIB($cf_stdcpp_libname,CXXLIBS) }
8088 dnl ---------------------------------------------------------------------------
8089 dnl CF_STRIP_G_OPT version: 4 updated: 2021/01/02 09:31:20
8091 dnl Remove "-g" option from the compiler options
8092 AC_DEFUN([CF_STRIP_G_OPT],
8093 [$1=`echo "${$1}" | CF__SED_TRIMBLANKS(-e 's%-g %%' -e 's%-g$%%')`])dnl
8094 dnl ---------------------------------------------------------------------------
8095 dnl CF_STRUCT_SIGACTION version: 5 updated: 2012/10/06 17:56:13
8096 dnl -------------------
8097 dnl Check if we need _POSIX_SOURCE defined to use struct sigaction. We'll only
8098 dnl do this if we've found the sigaction function.
8099 AC_DEFUN([CF_STRUCT_SIGACTION],[
8100 AC_REQUIRE([CF_XOPEN_SOURCE])
8102 if test "$ac_cv_func_sigaction" = yes; then
8103 AC_MSG_CHECKING(whether sigaction needs _POSIX_SOURCE)
8105 #include <sys/types.h>
8106 #include <signal.h>],
8107 [struct sigaction act],
8111 #define _POSIX_SOURCE
8112 #include <sys/types.h>
8113 #include <signal.h>],
8114 [struct sigaction act],
8116 AC_DEFINE(_POSIX_SOURCE,1,[Define to 1 if we must define _POSIX_SOURCE])],
8117 [sigact_bad=unknown])])
8118 AC_MSG_RESULT($sigact_bad)
8121 dnl ---------------------------------------------------------------------------
8122 dnl CF_STRUCT_TERMIOS version: 11 updated: 2020/03/19 20:46:13
8123 dnl -----------------
8124 dnl Some machines require _POSIX_SOURCE to completely define struct termios.
8125 AC_DEFUN([CF_STRUCT_TERMIOS],[
8126 AC_REQUIRE([CF_XOPEN_SOURCE])
8136 if test "$ac_cv_header_termios_h" = yes ; then
8137 case "$CFLAGS $CPPFLAGS" in
8139 termios_bad=dunno ;;
8140 (*) termios_bad=maybe ;;
8142 if test "$termios_bad" = maybe ; then
8143 AC_MSG_CHECKING(whether termios.h needs _POSIX_SOURCE)
8144 AC_TRY_COMPILE([#include <termios.h>],
8145 [struct termios foo; int x = foo.c_iflag = 1; (void)x],
8148 #define _POSIX_SOURCE
8149 #include <termios.h>],
8150 [struct termios foo; int x = foo.c_iflag = 2; (void)x],
8151 termios_bad=unknown,
8152 termios_bad=yes AC_DEFINE(_POSIX_SOURCE,1,[Define to 1 if we must define _POSIX_SOURCE]))
8154 AC_MSG_RESULT($termios_bad)
8158 dnl ---------------------------------------------------------------------------
8159 dnl CF_SUBDIR_PATH version: 7 updated: 2014/12/04 04:33:06
8161 dnl Construct a search-list for a nonstandard header/lib-file
8162 dnl $1 = the variable to return as result
8163 dnl $2 = the package name
8164 dnl $3 = the subdirectory, e.g., bin, include or lib
8165 AC_DEFUN([CF_SUBDIR_PATH],
8169 CF_ADD_SUBDIR_PATH($1,$2,$3,$prefix,NONE)
8171 for cf_subdir_prefix in \
8179 CF_ADD_SUBDIR_PATH($1,$2,$3,$cf_subdir_prefix,$prefix)
8182 dnl ---------------------------------------------------------------------------
8183 dnl CF_SUBST_IF version: 2 updated: 2006/06/17 12:33:03
8185 dnl Shorthand macro for substituting things that the user may override
8186 dnl with an environment variable.
8188 dnl $1 = condition to pass to "test"
8189 dnl $2 = environment variable
8190 dnl $3 = value if the test succeeds
8191 dnl $4 = value if the test fails
8192 AC_DEFUN([CF_SUBST_IF],
8201 dnl ---------------------------------------------------------------------------
8202 dnl CF_SUBST_NCURSES_VERSION version: 10 updated: 2021/01/04 18:48:01
8203 dnl ------------------------
8204 dnl Get the version-number for use in shared-library naming, etc.
8205 AC_DEFUN([CF_SUBST_NCURSES_VERSION],
8206 [AC_REQUIRE([AC_PROG_EGREP])dnl
8208 NCURSES_MAJOR="`${EGREP-egrep} '^NCURSES_MAJOR[[ ]]*=' "$srcdir/dist.mk" | sed -e 's/^[[^0-9]]*//'`"
8209 NCURSES_MINOR="`${EGREP-egrep} '^NCURSES_MINOR[[ ]]*=' "$srcdir/dist.mk" | sed -e 's/^[[^0-9]]*//'`"
8210 NCURSES_PATCH="`${EGREP-egrep} '^NCURSES_PATCH[[ ]]*=' "$srcdir/dist.mk" | sed -e 's/^[[^0-9]]*//'`"
8211 cf_cv_abi_version=${NCURSES_MAJOR}
8212 cf_cv_rel_version=${NCURSES_MAJOR}.${NCURSES_MINOR}
8213 dnl Show the computed version, for logging
8214 cf_cv_timestamp=`date`
8215 AC_MSG_RESULT(Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp))
8216 dnl We need these values in the generated headers
8217 AC_SUBST(NCURSES_MAJOR)
8218 AC_SUBST(NCURSES_MINOR)
8219 AC_SUBST(NCURSES_PATCH)
8220 dnl We need these values in the generated makefiles
8221 AC_SUBST(cf_cv_rel_version)
8222 AC_SUBST(cf_cv_abi_version)
8223 AC_SUBST(cf_cv_builtin_bool)
8224 AC_SUBST(cf_cv_header_stdbool_h)
8225 AC_SUBST(cf_cv_type_of_bool)dnl
8227 dnl ---------------------------------------------------------------------------
8228 dnl CF_SYS_TIME_SELECT version: 6 updated: 2015/04/18 08:56:57
8229 dnl ------------------
8230 dnl Check if we can include <sys/time.h> with <sys/select.h>; this breaks on
8231 dnl older SCO configurations.
8232 AC_DEFUN([CF_SYS_TIME_SELECT],
8234 AC_MSG_CHECKING(if sys/time.h works with sys/select.h)
8235 AC_CACHE_VAL(cf_cv_sys_time_select,[
8237 #include <sys/types.h>
8238 #ifdef HAVE_SYS_TIME_H
8239 #include <sys/time.h>
8241 #ifdef HAVE_SYS_SELECT_H
8242 #include <sys/select.h>
8244 ],[],[cf_cv_sys_time_select=yes],
8245 [cf_cv_sys_time_select=no])
8247 AC_MSG_RESULT($cf_cv_sys_time_select)
8248 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>])
8250 dnl ---------------------------------------------------------------------------
8251 dnl CF_TOP_BUILDDIR version: 2 updated: 2013/07/27 17:38:32
8253 dnl Define a top_builddir symbol, for applications that need an absolute path.
8254 AC_DEFUN([CF_TOP_BUILDDIR],
8256 top_builddir=ifelse($1,,`pwd`,$1)
8257 AC_SUBST(top_builddir)
8259 dnl ---------------------------------------------------------------------------
8260 dnl CF_TRY_PKG_CONFIG version: 6 updated: 2020/12/31 10:54:15
8261 dnl -----------------
8262 dnl This is a simple wrapper to use for pkg-config, for libraries which may be
8263 dnl available in that form.
8265 dnl $1 = package name, which may be a shell variable
8266 dnl $2 = extra logic to use, if any, after updating CFLAGS and LIBS
8267 dnl $3 = logic to use if pkg-config does not have the package
8268 AC_DEFUN([CF_TRY_PKG_CONFIG],[
8269 AC_REQUIRE([CF_PKG_CONFIG])
8271 if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists "$1"; then
8272 CF_VERBOSE(found package $1)
8273 cf_pkgconfig_incs="`$PKG_CONFIG --cflags "$1" 2>/dev/null`"
8274 cf_pkgconfig_libs="`$PKG_CONFIG --libs "$1" 2>/dev/null`"
8275 CF_VERBOSE(package $1 CFLAGS: $cf_pkgconfig_incs)
8276 CF_VERBOSE(package $1 LIBS: $cf_pkgconfig_libs)
8277 CF_ADD_CFLAGS($cf_pkgconfig_incs)
8278 CF_ADD_LIBS($cf_pkgconfig_libs)
8279 ifelse([$2],,:,[$2])
8283 ifelse([$3],,:,[$3])
8286 dnl ---------------------------------------------------------------------------
8287 dnl CF_TRY_XOPEN_SOURCE version: 3 updated: 2021/08/28 15:20:37
8288 dnl -------------------
8289 dnl If _XOPEN_SOURCE is not defined in the compile environment, check if we
8290 dnl can define it successfully.
8291 AC_DEFUN([CF_TRY_XOPEN_SOURCE],[
8292 AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[
8296 #include <sys/types.h>
8298 #ifndef _XOPEN_SOURCE
8301 [cf_cv_xopen_source=no],
8302 [cf_save="$CPPFLAGS"
8303 CF_APPEND_TEXT(CPPFLAGS,-D_XOPEN_SOURCE=$cf_XOPEN_SOURCE)
8307 #include <sys/types.h>
8309 #ifdef _XOPEN_SOURCE
8312 [cf_cv_xopen_source=no],
8313 [cf_cv_xopen_source=$cf_XOPEN_SOURCE])
8318 if test "$cf_cv_xopen_source" != no ; then
8319 CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE)
8320 CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE)
8321 cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
8322 CF_APPEND_CFLAGS($cf_temp_xopen_source)
8325 dnl ---------------------------------------------------------------------------
8326 dnl CF_TYPEOF_CHTYPE version: 10 updated: 2017/01/21 11:06:25
8327 dnl ----------------
8328 dnl Determine the type we should use for chtype (and attr_t, which is treated
8329 dnl as the same thing). We want around 32 bits, so on most machines want a
8330 dnl long, but on newer 64-bit machines, probably want an int. If we're using
8331 dnl wide characters, we have to have a type compatible with that, as well.
8332 AC_DEFUN([CF_TYPEOF_CHTYPE],
8334 AC_MSG_CHECKING([for type of chtype])
8335 AC_CACHE_VAL(cf_cv_typeof_chtype,[
8337 #define WANT_BITS 31
8341 FILE *fp = fopen("cf_test.out", "w");
8343 char *result = "long";
8344 if (sizeof(unsigned long) > sizeof(unsigned int)) {
8347 for (n = 0; n < WANT_BITS; n++) {
8350 if (y != 1 || x == 0) {
8356 * If x is nonzero, an int is big enough for the bits
8359 result = (x != 0) ? "int" : "long";
8364 ${cf_cv_main_return:-return}(0);
8367 [cf_cv_typeof_chtype=`cat cf_test.out`],
8368 [cf_cv_typeof_chtype=long],
8369 [cf_cv_typeof_chtype=long])
8372 AC_MSG_RESULT($cf_cv_typeof_chtype)
8374 AC_SUBST(cf_cv_typeof_chtype)
8375 AC_DEFINE_UNQUOTED(TYPEOF_CHTYPE,$cf_cv_typeof_chtype,[Define to actual type if needed for chtype])
8377 dnl ---------------------------------------------------------------------------
8378 dnl CF_TYPE_SIGACTION version: 4 updated: 2012/10/06 17:56:13
8379 dnl -----------------
8381 AC_DEFUN([CF_TYPE_SIGACTION],
8383 AC_MSG_CHECKING([for type sigaction_t])
8384 AC_CACHE_VAL(cf_cv_type_sigaction,[
8386 #include <signal.h>],
8388 [cf_cv_type_sigaction=yes],
8389 [cf_cv_type_sigaction=no])])
8390 AC_MSG_RESULT($cf_cv_type_sigaction)
8391 test "$cf_cv_type_sigaction" = yes && AC_DEFINE(HAVE_TYPE_SIGACTION,1,[Define to 1 if we have the sigaction_t type])
8393 dnl ---------------------------------------------------------------------------
8394 dnl CF_UNSIGNED_LITERALS version: 2 updated: 1998/02/07 22:10:16
8395 dnl --------------------
8396 dnl Test if the compiler supports 'U' and 'L' suffixes. Only old compilers
8397 dnl won't, but they're still there.
8398 AC_DEFUN([CF_UNSIGNED_LITERALS],
8400 AC_MSG_CHECKING([if unsigned literals are legal])
8401 AC_CACHE_VAL(cf_cv_unsigned_literals,[
8402 AC_TRY_COMPILE([],[long x = 1L + 1UL + 1U + 1],
8403 [cf_cv_unsigned_literals=yes],
8404 [cf_cv_unsigned_literals=no])
8406 AC_MSG_RESULT($cf_cv_unsigned_literals)
8408 dnl ---------------------------------------------------------------------------
8409 dnl CF_UPPER version: 5 updated: 2001/01/29 23:40:59
8411 dnl Make an uppercase version of a variable
8412 dnl $1=uppercase($2)
8413 AC_DEFUN([CF_UPPER],
8415 $1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
8417 dnl ---------------------------------------------------------------------------
8418 dnl CF_UTF8_LIB version: 9 updated: 2021/05/19 19:35:25
8420 dnl Check for multibyte support, and if not found, utf8 compatibility library
8421 AC_DEFUN([CF_UTF8_LIB],
8423 AC_HAVE_HEADERS(wchar.h)
8424 AC_CACHE_CHECK(for multibyte character support,cf_cv_utf8_lib,[
8425 cf_save_LIBS="$LIBS"
8433 [cf_cv_utf8_lib=yes],
8435 #include <libutf8.h>],[putwc(0,0);],utf8,
8436 [cf_cv_utf8_lib=add-on],
8437 [cf_cv_utf8_lib=no])
8440 # HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
8442 if test "$cf_cv_utf8_lib" = "add-on" ; then
8443 AC_DEFINE(HAVE_LIBUTF8_H,1,[Define to 1 if we should include libutf8.h])
8444 CF_ADD_INCDIR($cf_cv_header_path_utf8)
8445 CF_ADD_LIBDIR($cf_cv_library_path_utf8)
8446 CF_ADD_LIBS($cf_cv_library_file_utf8)
8449 dnl ---------------------------------------------------------------------------
8450 dnl CF_VA_COPY version: 6 updated: 2018/12/04 18:14:25
8452 dnl check for va_copy, part of stdarg.h starting with ISO C 1999.
8453 dnl Also, workaround for glibc's __va_copy, by checking for both.
8454 dnl Finally, try to accommodate pre-ISO C 1999 headers.
8455 AC_DEFUN([CF_VA_COPY],[
8456 AC_CACHE_CHECK(for va_copy, cf_cv_have_va_copy,[
8463 cf_cv_have_va_copy=yes,
8464 cf_cv_have_va_copy=no)])
8466 if test "$cf_cv_have_va_copy" = yes;
8468 AC_DEFINE(HAVE_VA_COPY,1,[Define to 1 if we have va_copy])
8469 else # !cf_cv_have_va_copy
8471 AC_CACHE_CHECK(for __va_copy, cf_cv_have___va_copy,[
8477 __va_copy(dst, src)],
8478 cf_cv_have___va_copy=yes,
8479 cf_cv_have___va_copy=no)])
8481 if test "$cf_cv_have___va_copy" = yes
8483 AC_DEFINE(HAVE___VA_COPY,1,[Define to 1 if we have __va_copy])
8484 else # !cf_cv_have___va_copy
8486 AC_CACHE_CHECK(for __builtin_va_copy, cf_cv_have___builtin_va_copy,[
8492 __builtin_va_copy(dst, src)],
8493 cf_cv_have___builtin_va_copy=yes,
8494 cf_cv_have___builtin_va_copy=no)])
8496 test "$cf_cv_have___builtin_va_copy" = yes &&
8497 AC_DEFINE(HAVE___BUILTIN_VA_COPY,1,[Define to 1 if we have __builtin_va_copy])
8499 fi # cf_cv_have___va_copy
8501 fi # cf_cv_have_va_copy
8503 case "${cf_cv_have_va_copy}${cf_cv_have___va_copy}${cf_cv_have___builtin_va_copy}" in
8508 AC_CACHE_CHECK(if we can simply copy va_list, cf_cv_pointer_va_list,[
8515 cf_cv_pointer_va_list=yes,
8516 cf_cv_pointer_va_list=no)])
8518 if test "$cf_cv_pointer_va_list" = no
8520 AC_CACHE_CHECK(if we can copy va_list indirectly, cf_cv_array_va_list,[
8527 cf_cv_array_va_list=yes,
8528 cf_cv_array_va_list=no)])
8529 test "$cf_cv_array_va_list" = yes && AC_DEFINE(ARRAY_VA_LIST,1,[Define to 1 if we can copy va_list indirectly])
8534 dnl ---------------------------------------------------------------------------
8535 dnl CF_VERBOSE version: 3 updated: 2007/07/29 09:55:12
8537 dnl Use AC_VERBOSE w/o the warnings
8538 AC_DEFUN([CF_VERBOSE],
8539 [test -n "$verbose" && echo " $1" 1>&AC_FD_MSG
8542 dnl ---------------------------------------------------------------------------
8543 dnl CF_VERSION_INFO version: 8 updated: 2021/01/01 13:31:04
8545 dnl Define several useful symbols derived from the VERSION file. A separate
8546 dnl file is preferred to embedding the version numbers in various scripts.
8547 dnl (automake is a textbook-example of why the latter is a bad idea, but there
8550 dnl The file contents are:
8551 dnl libtool-version release-version patch-version
8555 dnl libtool-version (see ?) consists of 3 integers separated by '.'
8556 dnl release-version consists of a major version and minor version
8557 dnl separated by '.', optionally followed by a patch-version
8558 dnl separated by '-'. The minor version need not be an
8559 dnl integer (but it is preferred).
8560 dnl patch-version is an integer in the form yyyymmdd, so ifdef's and
8561 dnl scripts can easily compare versions.
8563 dnl If libtool is used, the first form is required, since CF_WITH_LIBTOOL
8564 dnl simply extracts the first field using 'cut -f1'.
8566 dnl Optional parameters:
8567 dnl $1 = internal name for package
8568 dnl $2 = external name for package
8569 AC_DEFUN([CF_VERSION_INFO],
8571 if test -f "$srcdir/VERSION" ; then
8572 AC_MSG_CHECKING(for package version)
8574 # if there are not enough fields, cut returns the last one...
8575 cf_field1=`sed -e '2,$d' "$srcdir/VERSION" |cut -f1`
8576 cf_field2=`sed -e '2,$d' "$srcdir/VERSION" |cut -f2`
8577 cf_field3=`sed -e '2,$d' "$srcdir/VERSION" |cut -f3`
8579 # this is how CF_BUNDLED_INTL uses $VERSION:
8580 VERSION="$cf_field1"
8582 VERSION_MAJOR=`echo "$cf_field2" | sed -e 's/\..*//'`
8583 test -z "$VERSION_MAJOR" && AC_MSG_ERROR(missing major-version)
8585 VERSION_MINOR=`echo "$cf_field2" | sed -e 's/^[[^.]]*\.//' -e 's/-.*//'`
8586 test -z "$VERSION_MINOR" && AC_MSG_ERROR(missing minor-version)
8588 AC_MSG_RESULT(${VERSION_MAJOR}.${VERSION_MINOR})
8590 AC_MSG_CHECKING(for package patch date)
8591 VERSION_PATCH=`echo "$cf_field3" | sed -e 's/^[[^-]]*-//'`
8592 case .$VERSION_PATCH in
8594 AC_MSG_ERROR(missing patch-date $VERSION_PATCH)
8596 (.[[0-9]][[0-9]][[0-9]][[0-9]][[0-9]][[0-9]][[0-9]][[0-9]])
8599 AC_MSG_ERROR(illegal patch-date $VERSION_PATCH)
8602 AC_MSG_RESULT($VERSION_PATCH)
8604 AC_MSG_ERROR(did not find $srcdir/VERSION)
8607 # show the actual data that we have for versions:
8608 CF_VERBOSE(ABI VERSION $VERSION)
8609 CF_VERBOSE(VERSION_MAJOR $VERSION_MAJOR)
8610 CF_VERBOSE(VERSION_MINOR $VERSION_MINOR)
8611 CF_VERBOSE(VERSION_PATCH $VERSION_PATCH)
8614 AC_SUBST(VERSION_MAJOR)
8615 AC_SUBST(VERSION_MINOR)
8616 AC_SUBST(VERSION_PATCH)
8618 dnl if a package name is given, define its corresponding version info. We
8619 dnl need the package name to ensure that the defined symbols are unique.
8622 PACKAGE=ifelse($2,,$1,$2)
8623 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE",[Define to the package-name])
8625 CF_UPPER(cf_PACKAGE,$cf_PACKAGE)
8626 AC_DEFINE_UNQUOTED(${cf_PACKAGE}_VERSION,"${VERSION_MAJOR}.${VERSION_MINOR}")
8627 AC_DEFINE_UNQUOTED(${cf_PACKAGE}_PATCHDATE,${VERSION_PATCH})
8630 dnl ---------------------------------------------------------------------------
8631 dnl CF_WCHAR_TYPE version: 4 updated: 2012/10/06 16:39:58
8633 dnl Check if type wide-character type $1 is declared, and if so, which header
8634 dnl file is needed. The second parameter is used to set a shell variable when
8635 dnl the type is not found. The first parameter sets a shell variable for the
8637 AC_DEFUN([CF_WCHAR_TYPE],
8639 # This is needed on Tru64 5.0 to declare $1
8640 AC_CACHE_CHECK(if we must include wchar.h to declare $1,cf_cv_$1,[
8645 #ifdef HAVE_LIBUTF8_H
8646 #include <libutf8.h>
8655 #ifdef HAVE_LIBUTF8_H
8656 #include <libutf8.h>
8660 [cf_cv_$1=unknown])])])
8662 if test "$cf_cv_$1" = yes ; then
8663 AC_DEFINE(NEED_WCHAR_H,1,[Define to 1 if we must include wchar.h])
8668 # if we do not find $1 in either place, use substitution to provide a fallback.
8669 if test "$cf_cv_$1" = unknown ; then
8674 # if we find $1 in either place, use substitution to provide a fallback.
8675 if test "$cf_cv_$1" != unknown ; then
8680 dnl ---------------------------------------------------------------------------
8681 dnl CF_WEAK_SYMBOLS version: 1 updated: 2008/08/16 19:18:06
8683 dnl Check for compiler-support for weak symbols.
8684 dnl This works with "recent" gcc.
8685 AC_DEFUN([CF_WEAK_SYMBOLS],[
8686 AC_CACHE_CHECK(if $CC supports weak symbols,cf_cv_weak_symbols,[
8689 #include <stdio.h>],
8691 #if defined(__GNUC__)
8692 # if defined __USE_ISOC99
8693 # define _cat_pragma(exp) _Pragma(#exp)
8694 # define _weak_pragma(exp) _cat_pragma(weak name)
8696 # define _weak_pragma(exp)
8698 # define _declare(name) __extension__ extern __typeof__(name) name
8699 # define weak_symbol(name) _weak_pragma(name) _declare(name) __attribute__((weak))
8703 ],[cf_cv_weak_symbols=yes],[cf_cv_weak_symbols=no])
8706 dnl ---------------------------------------------------------------------------
8707 dnl CF_WITH_ABI_VERSION version: 4 updated: 2021/01/01 13:31:04
8708 dnl -------------------
8709 dnl Allow library's ABI to be overridden. Generally this happens when a
8710 dnl packager has incremented the ABI past that used in the original package,
8711 dnl and wishes to keep doing this.
8713 dnl $1 is the package name, if any, to derive a corresponding {package}_ABI
8715 AC_DEFUN([CF_WITH_ABI_VERSION],[
8716 test -z "$cf_cv_abi_version" && cf_cv_abi_version=0
8717 AC_ARG_WITH(abi-version,
8718 [ --with-abi-version=XXX override derived ABI version],[
8719 if test "x$cf_cv_abi_version" != "x$withval"
8721 AC_MSG_WARN(overriding ABI version $cf_cv_abi_version to $withval)
8722 case "$cf_cv_rel_version" in
8724 cf_cv_rel_version=$withval.0
8727 cf_cv_rel_version=$withval.9 # FIXME: should be 10 as of 6.0 release
8731 cf_cv_abi_version=$withval])
8732 CF_NUMBER_SYNTAX($cf_cv_abi_version,ABI version)
8734 $1_ABI=$cf_cv_abi_version
8737 dnl ---------------------------------------------------------------------------
8738 dnl CF_WITH_ADA_COMPILER version: 2 updated: 2010/06/26 17:35:58
8739 dnl --------------------
8740 dnl Command-line option to specify the Ada95 compiler.
8741 AC_DEFUN([CF_WITH_ADA_COMPILER],[
8742 AC_MSG_CHECKING(for ada-compiler)
8743 AC_ARG_WITH(ada-compiler,
8744 [ --with-ada-compiler=CMD specify Ada95 compiler command (default gnatmake)],
8745 [cf_ada_compiler=$withval],
8746 [cf_ada_compiler=gnatmake])
8747 AC_SUBST(cf_ada_compiler)
8748 AC_MSG_RESULT($cf_ada_compiler)
8750 dnl ---------------------------------------------------------------------------
8751 dnl CF_WITH_ADA_INCLUDE version: 2 updated: 2010/06/26 17:35:58
8752 dnl -------------------
8753 dnl Command-line option to specify where Ada includes will install.
8754 AC_DEFUN([CF_WITH_ADA_INCLUDE],[
8755 AC_MSG_CHECKING(for ada-include)
8756 CF_WITH_PATH(ada-include,
8757 [ --with-ada-include=DIR Ada includes are in DIR],
8759 PREFIX/share/ada/adainclude,
8760 [$]prefix/share/ada/adainclude)
8761 AC_SUBST(ADA_INCLUDE)
8762 AC_MSG_RESULT($ADA_INCLUDE)
8764 dnl ---------------------------------------------------------------------------
8765 dnl CF_WITH_ADA_LIBNAME version: 1 updated: 2019/09/07 18:59:41
8766 dnl -------------------
8767 dnl CF_WITH_ADA_LIBNAME
8768 dnl -------------------
8769 dnl Command-line option to specify how to name the resulting Ada library.
8770 dnl $1 = default value
8771 AC_DEFUN([CF_WITH_ADA_LIBNAME],[
8772 AC_MSG_CHECKING(for ada-libname)
8773 AC_ARG_WITH(ada-libname,
8774 [ --with-ada-libname=XXX override default Ada library-name],
8775 ADA_LIBNAME=[$]withval,
8777 case "x$ADA_LIBNAME" in
8782 AC_SUBST(ADA_LIBNAME)
8783 AC_MSG_RESULT($ADA_LIBNAME)
8785 dnl ---------------------------------------------------------------------------
8786 dnl CF_WITH_ADA_OBJECTS version: 2 updated: 2010/06/26 17:35:58
8787 dnl -------------------
8788 dnl Command-line option to specify where Ada objects will install.
8789 AC_DEFUN([CF_WITH_ADA_OBJECTS],[
8790 AC_MSG_CHECKING(for ada-objects)
8791 CF_WITH_PATH(ada-objects,
8792 [ --with-ada-objects=DIR Ada objects are in DIR],
8794 PREFIX/lib/ada/adalib,
8795 [$]prefix/lib/ada/adalib)
8796 AC_SUBST(ADA_OBJECTS)
8797 AC_MSG_RESULT($ADA_OBJECTS)
8799 dnl ---------------------------------------------------------------------------
8800 dnl CF_WITH_ADA_SHAREDLIB version: 5 updated: 2018/07/21 19:10:35
8801 dnl ---------------------
8802 dnl Command-line option to specify if an Ada95 shared-library should be built,
8803 dnl and optionally what its soname should be.
8804 AC_DEFUN([CF_WITH_ADA_SHAREDLIB],[
8805 AC_REQUIRE([CF_GNAT_PROJECTS])
8806 AC_MSG_CHECKING(if an Ada95 shared-library should be built)
8807 AC_ARG_WITH(ada-sharedlib,
8808 [ --with-ada-sharedlib=soname build shared-library (requires GNAT projects)],
8809 [with_ada_sharedlib=$withval],
8810 [with_ada_sharedlib=no])
8811 AC_MSG_RESULT($with_ada_sharedlib)
8813 if test "x$with_ada_sharedlib" != xno
8815 if test "x$cf_gnat_projects" != xyes
8817 AC_MSG_WARN(disabling shared-library since GNAT projects are not supported)
8818 with_ada_sharedlib=no
8822 ADA_SHAREDLIB='lib$(LIB_NAME).so.1'
8823 MAKE_ADA_SHAREDLIB="#"
8825 if test "x$with_ada_sharedlib" != xno
8828 if test "x$with_ada_sharedlib" != xyes
8830 ADA_SHAREDLIB="$with_ada_sharedlib"
8834 AC_SUBST(ADA_SHAREDLIB)
8835 AC_SUBST(MAKE_ADA_SHAREDLIB)
8837 dnl ---------------------------------------------------------------------------
8838 dnl CF_WITH_DBMALLOC version: 7 updated: 2010/06/21 17:26:47
8839 dnl ----------------
8840 dnl Configure-option for dbmalloc. The optional parameter is used to override
8841 dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
8842 AC_DEFUN([CF_WITH_DBMALLOC],[
8843 CF_NO_LEAKS_OPTION(dbmalloc,
8844 [ --with-dbmalloc test: use Conor Cahill's dbmalloc library],
8847 if test "$with_dbmalloc" = yes ; then
8848 AC_CHECK_HEADER(dbmalloc.h,
8849 [AC_CHECK_LIB(dbmalloc,[debug_malloc]ifelse([$1],,[],[,$1]))])
8852 dnl ---------------------------------------------------------------------------
8853 dnl CF_WITH_DMALLOC version: 7 updated: 2010/06/21 17:26:47
8855 dnl Configure-option for dmalloc. The optional parameter is used to override
8856 dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
8857 AC_DEFUN([CF_WITH_DMALLOC],[
8858 CF_NO_LEAKS_OPTION(dmalloc,
8859 [ --with-dmalloc test: use Gray Watson's dmalloc library],
8862 if test "$with_dmalloc" = yes ; then
8863 AC_CHECK_HEADER(dmalloc.h,
8864 [AC_CHECK_LIB(dmalloc,[dmalloc_debug]ifelse([$1],,[],[,$1]))])
8867 dnl ---------------------------------------------------------------------------
8868 dnl CF_WITH_EXPORT_SYMS version: 3 updated: 2014/12/20 19:16:08
8869 dnl -------------------
8870 dnl Use this with libtool to specify the list of symbols that may be exported.
8871 dnl The input file contains one symbol per line; comments work with "#".
8873 dnl $1 = basename of the ".sym" file (default $PACKAGE)
8874 AC_DEFUN([CF_WITH_EXPORT_SYMS],
8876 AC_MSG_CHECKING(if exported-symbols file should be used)
8877 AC_ARG_WITH(export-syms,
8878 [ --with-export-syms=XXX limit exported symbols using libtool],
8879 [with_export_syms=$withval],
8880 [with_export_syms=no])
8881 if test "x$with_export_syms" = xyes
8883 with_export_syms='${top_srcdir}/package/ifelse($1,,${PACKAGE},[$1]).sym'
8886 AC_MSG_RESULT($with_export_syms)
8887 if test "x$with_export_syms" != xno
8889 EXPORT_SYMS="-export-symbols $with_export_syms"
8890 AC_SUBST(EXPORT_SYMS)
8893 dnl ---------------------------------------------------------------------------
8894 dnl CF_WITH_GPM version: 10 updated: 2017/04/29 18:32:18
8897 dnl The option parameter (if neither yes/no) is assumed to be the name of
8898 dnl the gpm library, e.g., for dynamic loading.
8899 AC_DEFUN([CF_WITH_GPM],
8901 AC_MSG_CHECKING(if you want to link with the GPM mouse library)
8903 [ --with-gpm use Alessandro Rubini's GPM library],
8904 [with_gpm=$withval],
8906 AC_MSG_RESULT($with_gpm)
8908 if test "$with_gpm" != no ; then
8909 AC_CHECK_HEADER(gpm.h,[
8910 AC_DEFINE(HAVE_GPM_H,1,[Define to 1 if we have gpm.h header])
8911 if test "$with_gpm" != yes && test "$with_gpm" != maybe ; then
8912 CF_VERBOSE(assuming we really have GPM library)
8913 AC_DEFINE(HAVE_LIBGPM,1,[Define to 1 if we have the gpm library])
8916 AC_CHECK_LIB(gpm,Gpm_Open,[with_gpm=yes],[
8917 if test "$with_gpm" = maybe; then
8918 AC_MSG_WARN(Cannot link with GPM library)
8921 AC_MSG_ERROR(Cannot link with GPM library)
8926 test "$with_gpm" != maybe && AC_MSG_WARN(Cannot find GPM header)
8931 dnl ---------------------------------------------------------------------------
8932 dnl CF_WITH_LIBTOOL version: 36 updated: 2021/01/01 13:31:04
8934 dnl Provide a configure option to incorporate libtool. Define several useful
8935 dnl symbols for the makefile rules.
8937 dnl The reference to AC_PROG_LIBTOOL does not normally work, since it uses
8938 dnl macros from libtool.m4 which is in the aclocal directory of automake.
8939 dnl Following is a simple script which turns on the AC_PROG_LIBTOOL macro.
8940 dnl But that still does not work properly since the macro is expanded outside
8941 dnl the CF_WITH_LIBTOOL macro:
8944 dnl ACLOCAL=`aclocal --print-ac-dir`
8945 dnl if test -z "$ACLOCAL" ; then
8946 dnl echo cannot find aclocal directory
8948 dnl elif test ! -f $ACLOCAL/libtool.m4 ; then
8949 dnl echo cannot find libtool.m4 file
8953 dnl LOCAL=aclocal.m4
8954 dnl ORIG=aclocal.m4.orig
8956 dnl trap "mv $ORIG $LOCAL" 0 1 2 3 15
8960 dnl # sed the LIBTOOL= assignment to omit the current directory?
8961 dnl sed -e 's/^LIBTOOL=.*/LIBTOOL=${LIBTOOL:-libtool}/' $ACLOCAL/libtool.m4 >>$LOCAL
8962 dnl cat $ORIG >>$LOCAL
8966 AC_DEFUN([CF_WITH_LIBTOOL],
8968 AC_REQUIRE([CF_DISABLE_LIBTOOL_VERSION])
8969 ifdef([AC_PROG_LIBTOOL],,[
8972 # common library maintenance symbols that are convenient for libtool scripts:
8973 LIB_CREATE='${AR} -cr'
8974 LIB_OBJECT='${OBJECTS}'
8978 # symbols used to prop libtool up to enable it to determine what it should be
8986 AC_MSG_CHECKING(if you want to build libraries with libtool)
8987 AC_ARG_WITH(libtool,
8988 [ --with-libtool generate libraries with libtool],
8989 [with_libtool=$withval],
8991 AC_MSG_RESULT($with_libtool)
8992 if test "$with_libtool" != "no"; then
8993 ifdef([AC_PROG_LIBTOOL],[
8994 # missing_content_AC_PROG_LIBTOOL{{
8996 # missing_content_AC_PROG_LIBTOOL}}
8998 if test "$with_libtool" != "yes" ; then
8999 CF_PATH_SYNTAX(with_libtool)
9000 LIBTOOL=$with_libtool
9002 AC_CHECK_TOOLS(LIBTOOL,[libtool glibtool],none)
9004 if test -z "$cf_cv_libtool_version" && test "$LIBTOOL" = libtool
9006 CF_FORGET_TOOL(LIBTOOL)
9007 AC_CHECK_TOOLS(LIBTOOL,[glibtool],none)
9011 if test -z "$LIBTOOL" ; then
9012 AC_MSG_ERROR(Cannot find libtool)
9015 LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${libdir} ${LIBTOOL_VERSION} `cut -f1 ${top_srcdir}/VERSION` ${LIBTOOL_OPTS} ${LT_UNDEF} $(LIBS) -o'
9016 LIB_OBJECT='${OBJECTS:.o=.lo}'
9018 LIB_CLEAN='${LIBTOOL} --mode=clean'
9019 LIB_COMPILE='${LIBTOOL} --mode=compile'
9020 LIB_LINK='${LIBTOOL} --mode=link ${CC} ${LIBTOOL_OPTS}'
9021 LIB_INSTALL='${LIBTOOL} --mode=install'
9022 LIB_UNINSTALL='${LIBTOOL} --mode=uninstall'
9025 CF_CHECK_LIBTOOL_VERSION
9027 # special hack to add -no-undefined (which libtool should do for itself)
9029 case "$cf_cv_system_name" in
9030 (cygwin*|msys*|mingw32*|os2*|uwin*|aix[[4-7]])
9031 LT_UNDEF=-no-undefined
9034 AC_SUBST([LT_UNDEF])
9036 # special hack to add --tag option for C++ compiler
9037 case "$cf_cv_libtool_version" in
9038 (1.[[5-9]]*|[[2-9]].[[0-9.a-z]]*)
9039 LIBTOOL_CXX="$LIBTOOL --tag=CXX"
9040 LIBTOOL="$LIBTOOL --tag=CC"
9043 LIBTOOL_CXX="$LIBTOOL"
9051 test -z "$LIBTOOL" && ECHO_LT=
9054 AC_SUBST(LIBTOOL_CXX)
9055 AC_SUBST(LIBTOOL_OPTS)
9057 AC_SUBST(LIB_CREATE)
9058 AC_SUBST(LIB_OBJECT)
9059 AC_SUBST(LIB_SUFFIX)
9063 AC_SUBST(LIB_COMPILE)
9065 AC_SUBST(LIB_INSTALL)
9066 AC_SUBST(LIB_UNINSTALL)
9069 dnl ---------------------------------------------------------------------------
9070 dnl CF_WITH_LIBTOOL_OPTS version: 4 updated: 2015/04/17 21:13:04
9071 dnl --------------------
9072 dnl Allow user to pass additional libtool options into the library creation
9073 dnl and link steps. The main use for this is to do something like
9074 dnl ./configure --with-libtool-opts=-static
9075 dnl to get the same behavior as automake-flavored
9076 dnl ./configure --enable-static
9077 AC_DEFUN([CF_WITH_LIBTOOL_OPTS],[
9078 AC_MSG_CHECKING(for additional libtool options)
9079 AC_ARG_WITH(libtool-opts,
9080 [ --with-libtool-opts=XXX specify additional libtool options],
9081 [with_libtool_opts=$withval],
9082 [with_libtool_opts=no])
9083 AC_MSG_RESULT($with_libtool_opts)
9085 case .$with_libtool_opts in
9089 LIBTOOL_OPTS="$LIBTOOL_OPTS $with_libtool_opts"
9093 AC_SUBST(LIBTOOL_OPTS)
9095 dnl ---------------------------------------------------------------------------
9096 dnl CF_WITH_LIB_BASENAME version: 1 updated: 2020/03/07 20:05:14
9097 dnl --------------------
9098 dnl Allow for overriding the basename of a library, i.e., the part to which
9099 dnl prefixes/suffixes are attached.
9101 dnl $1 = variable to set
9102 dnl $2 = option name
9103 dnl $3 = default basename for library, if omitted use $2
9104 AC_DEFUN([CF_WITH_LIB_BASENAME],
9106 AC_MSG_CHECKING(for desired basename for $2 library)
9107 AC_ARG_WITH($2-libname,
9108 [ --with-$2-libname=XXX override ifelse($3,,$2,$3) basename of library],
9109 [with_lib_basename=$withval],
9110 [with_lib_basename=ifelse($3,,$2,$3)])
9111 $1="$with_lib_basename"
9115 $1=ifelse($3,,$2,$3)
9121 AC_MSG_RESULT([$]$1)
9124 dnl ---------------------------------------------------------------------------
9125 dnl CF_WITH_LIB_PREFIX version: 2 updated: 2021/01/01 16:53:59
9126 dnl ------------------
9127 dnl Allow the library-prefix to be overridden. OS/2 EMX originally had no
9128 dnl "lib" prefix, e.g., because it used the dll naming convention.
9130 dnl $1 = variable to set
9131 AC_DEFUN([CF_WITH_LIB_PREFIX],
9133 AC_MSG_CHECKING(if you want to have a library-prefix)
9134 AC_ARG_WITH(lib-prefix,
9135 [ --with-lib-prefix override library-prefix],
9136 [with_lib_prefix=$withval],
9137 [with_lib_prefix=auto])
9138 AC_MSG_RESULT($with_lib_prefix)
9140 if test "$with_lib_prefix" = auto
9143 elif test "$with_lib_prefix" = no
9147 LIB_PREFIX=$with_lib_prefix
9150 dnl ---------------------------------------------------------------------------
9151 dnl CF_WITH_PATH version: 12 updated: 2021/09/04 06:35:04
9153 dnl Wrapper for AC_ARG_WITH to ensure that user supplies a pathname, not just
9154 dnl defaulting to yes/no.
9156 dnl $1 = option name
9158 dnl $3 = environment variable to set
9159 dnl $4 = default value, shown in the help-message, must be a constant
9160 dnl $5 = default value, if it is an expression & cannot be in the help-message
9162 AC_DEFUN([CF_WITH_PATH],
9163 [AC_ARG_WITH($1,[$2 ](default: ifelse([$4],,empty,[$4])),,
9164 ifelse([$4],,[withval="${$3}"],[withval="${$3:-ifelse([$5],,[$4],[$5])}"]))dnl
9165 if ifelse([$5],,true,[test -n "$5"]) ; then
9166 CF_PATH_SYNTAX(withval)
9171 dnl ---------------------------------------------------------------------------
9172 dnl CF_WITH_PATHLIST version: 13 updated: 2021/09/04 06:35:04
9173 dnl ----------------
9174 dnl Process an option specifying a list of colon-separated paths.
9176 dnl $1 = option name
9178 dnl $3 = environment variable to set
9179 dnl $4 = default value, shown in the help-message, must be a constant
9180 dnl $5 = default value, if it is an expression & cannot be in the help-message
9181 dnl $6 = flag to tell if we want to define or substitute
9183 AC_DEFUN([CF_WITH_PATHLIST],[
9184 AC_REQUIRE([CF_PATHSEP])
9185 AC_ARG_WITH($1,[$2 ](default: ifelse($4,,empty,$4)),,
9186 ifelse($4,,[withval=${$3}],[withval=${$3:-ifelse($5,,$4,$5)}]))dnl
9188 IFS="${IFS:- }"; ac_save_ifs="$IFS"; IFS="${PATH_SEPARATOR}"
9190 for cf_src_path in $withval
9192 CF_PATH_SYNTAX(cf_src_path)
9193 test -n "$cf_dst_path" && cf_dst_path="${cf_dst_path}$PATH_SEPARATOR"
9194 cf_dst_path="${cf_dst_path}${cf_src_path}"
9199 # Strip single quotes from the value, e.g., when it was supplied as a literal
9201 case "$cf_dst_path" in
9203 cf_dst_path="`echo "$cf_dst_path" |sed -e s/\'// -e s/\'\$//`"
9206 cf_dst_path=`echo "$cf_dst_path" | sed -e 's/\\\\/\\\\\\\\/g'`
9209 # This may use the prefix/exec_prefix symbols which will only yield "NONE"
9210 # so we have to check/work around. We do prefer the result of "eval"...
9211 eval cf_dst_eval="$cf_dst_path"
9212 case "x$cf_dst_eval" in
9223 dnl ---------------------------------------------------------------------------
9224 dnl CF_WITH_PATH_PROG version: 1 updated: 2019/06/30 19:44:43
9225 dnl -----------------
9226 dnl Check for a given program, like CF_PATH_PROG, but allow override using a
9227 dnl "--with-xxx" option.
9230 dnl $1 = environment variable to set/update
9231 dnl $2 = program name
9234 AC_DEFUN([CF_WITH_PATH_PROG],[
9235 AC_ARG_WITH($2-path,
9236 [ --with-$2-path=XXX specify path of $2 ifelse($3,,,$3)],
9237 [AC_MSG_CHECKING(for $2 program ifelse($3,,,$3))
9239 AC_MSG_RESULT([$]$1)
9242 [CF_PATH_PROG($1,$2,,ifelse($4,,,$4))
9245 AC_MSG_WARN(no $2 program found ifelse($3,,,$3))
9249 dnl ---------------------------------------------------------------------------
9250 dnl CF_WITH_PCRE2 version: 6 updated: 2021/08/11 20:35:34
9252 dnl Add PCRE2 (Perl-compatible regular expressions v2) to the build if it is
9253 dnl available and the user requests it. Assume the application will otherwise
9254 dnl use the POSIX interface.
9256 dnl TODO allow $withval to specify package location
9257 AC_DEFUN([CF_WITH_PCRE2],
9259 AC_REQUIRE([CF_PKG_CONFIG])
9261 AC_MSG_CHECKING(if you want to use PCRE2 for regular-expressions)
9263 [ --with-pcre2 use PCRE2 for regular-expressions])
9264 test -z "$with_pcre2" && with_pcre2=no
9265 AC_MSG_RESULT($with_pcre2)
9267 if test "x$with_pcre2" != xno ; then
9269 for cf_with_pcre2 in libpcre2 libpcre2-posix libpcre
9271 CF_TRY_PKG_CONFIG($cf_with_pcre2,[cf_with_pcre2_ok=yes; break])
9273 cf_with_pcre2_ok=yes || AC_MSG_ERROR(Cannot find PCRE2 library)
9275 AC_DEFINE(HAVE_LIB_PCRE2,1,[Define to 1 if we can/should compile with the PCRE2 library])
9277 # if pkgconfig gave no results, look for the libraries directly
9279 (*pcre2-posix*|*pcreposix*)
9282 AC_CHECK_LIB(pcre2-posix,regcomp,[
9283 CF_ADD_LIB(pcre2-posix)],
9284 [AC_CHECK_LIB(pcreposix,regcomp,[
9285 CF_ADD_LIB(pcreposix)
9286 ],[AC_MSG_ERROR(Cannot find PCRE2 POSIX library)])])
9290 # either way, check for the library header files
9291 AC_CHECK_HEADERS(pcre2posix.h pcreposix.h)
9292 AC_CHECK_FUNCS(PCRE2regcomp)
9295 dnl ---------------------------------------------------------------------------
9296 dnl CF_WITH_PKG_CONFIG_LIBDIR version: 19 updated: 2021/11/20 14:57:36
9297 dnl -------------------------
9298 dnl Allow the choice of the pkg-config library directory to be overridden.
9300 dnl pkg-config uses a search-list built from these colon-separated lists of
9302 dnl a) $PKG_CONFIG_PATH (tested first, added if set)
9303 dnl b) $PKG_CONFIG_LIBDIR (tested second, added if set)
9304 dnl c) builtin-list (added if $PKG_CONFIG_LIBDIR is not set)
9306 dnl pkgconf (used with some systems such as FreeBSD in place of pkg-config)
9307 dnl optionally ignores $PKG_CONFIG_LIBDIR.
9308 AC_DEFUN([CF_WITH_PKG_CONFIG_LIBDIR],[
9310 case "$PKG_CONFIG" in
9312 AC_MSG_CHECKING(for pkg-config library directory)
9315 AC_MSG_CHECKING(for $PKG_CONFIG library directory)
9319 # if $PKG_CONFIG_LIBDIR is set, try to use that
9320 cf_search_path=`echo "$PKG_CONFIG_LIBDIR" | sed -e 's/:/ /g' -e 's,^[[ ]]*,,'`
9322 # if the option is used, let that override. otherwise default to "libdir"
9323 AC_ARG_WITH(pkg-config-libdir,
9324 [ --with-pkg-config-libdir=XXX use given directory for installing pc-files],
9325 [cf_search_path=$withval],
9326 [test "x$PKG_CONFIG" != xnone && test -z "$cf_search_path" && cf_search_path=libdir])
9328 case x$cf_search_path in
9330 PKG_CONFIG_LIBDIR='${libdir}/pkgconfig'
9331 AC_MSG_RESULT($PKG_CONFIG_LIBDIR)
9337 PKG_CONFIG_LIBDIR="$cf_search_path"
9338 AC_MSG_RESULT($PKG_CONFIG_LIBDIR)
9344 # Look for the library directory using the same prefix as the executable
9345 AC_MSG_CHECKING(for search-list)
9346 if test "x$PKG_CONFIG" != xnone
9348 # works for pkg-config since version 0.24 (2009)
9349 # works for pkgconf since version 0.8.3 (2012)
9350 for cf_pkg_program in \
9351 `echo "$PKG_CONFIG" | sed -e 's,^.*/,,'` \
9355 cf_search_path=`"$PKG_CONFIG" --variable=pc_path "$cf_pkg_program" 2>/dev/null | tr : ' '`
9356 test -n "$cf_search_path" && break
9359 # works for pkg-config since import in 2005 of original 2001 HP code.
9360 test -z "$cf_search_path" && \
9362 "$PKG_CONFIG" --debug --exists no-such-package 2>&1 | $AWK "\
9363 /^Scanning directory (#[1-9][0-9]* )?'.*'$/{ \
9364 sub(\"^[[^']]*'\",\"\"); \
9365 sub(\"'.*\",\"\"); \
9366 printf \" %s\", \\[$]0; } \
9371 AC_MSG_RESULT($cf_search_path)
9374 AC_MSG_ERROR(Unexpected option value: $cf_search_path)
9378 if test -n "$cf_search_path"
9380 AC_MSG_CHECKING(for first directory)
9381 cf_pkg_config_path=none
9382 for cf_config in $cf_search_path
9384 if test -d "$cf_config"
9386 cf_pkg_config_path=$cf_config
9390 AC_MSG_RESULT($cf_pkg_config_path)
9392 if test "x$cf_pkg_config_path" != xnone ; then
9393 # limit this to the first directory found
9394 PKG_CONFIG_LIBDIR="$cf_pkg_config_path"
9397 if test -z "$PKG_CONFIG_LIBDIR" && test -n "$cf_search_path"
9399 AC_MSG_CHECKING(for workaround)
9400 if test "$prefix" = "NONE" ; then
9401 cf_prefix="$ac_default_prefix"
9405 eval cf_libdir=$libdir
9406 cf_libdir=`echo "$cf_libdir" | sed -e "s,^NONE,$cf_prefix,"`
9408 for cf_config in $cf_search_path
9411 $cf_libdir/pkgconfig)
9412 PKG_CONFIG_LIBDIR=$cf_libdir/pkgconfig
9416 test -z "$cf_backup" && cf_backup=$cf_config
9420 test -z "$PKG_CONFIG_LIBDIR" && PKG_CONFIG_LIBDIR=$cf_backup
9421 AC_MSG_RESULT($PKG_CONFIG_LIBDIR)
9425 AC_SUBST(PKG_CONFIG_LIBDIR)
9427 dnl ---------------------------------------------------------------------------
9428 dnl CF_WITH_PTHREAD version: 7 updated: 2015/04/18 08:56:57
9430 dnl Check for POSIX thread library.
9431 AC_DEFUN([CF_WITH_PTHREAD],
9433 AC_MSG_CHECKING(if you want to link with the pthread library)
9434 AC_ARG_WITH(pthread,
9435 [ --with-pthread use POSIX thread library],
9436 [with_pthread=$withval],
9438 AC_MSG_RESULT($with_pthread)
9440 if test "$with_pthread" != no ; then
9441 AC_CHECK_HEADER(pthread.h,[
9442 AC_DEFINE(HAVE_PTHREADS_H,1,[Define to 1 if we have pthreads.h header])
9444 for cf_lib_pthread in pthread c_r
9446 AC_MSG_CHECKING(if we can link with the $cf_lib_pthread library)
9447 cf_save_LIBS="$LIBS"
9448 CF_ADD_LIB($cf_lib_pthread)
9450 #include <pthread.h>
9452 int rc = pthread_create(0,0,0,0);
9453 int r2 = pthread_mutexattr_settype(0, 0);
9454 ],[with_pthread=yes],[with_pthread=no])
9455 LIBS="$cf_save_LIBS"
9456 AC_MSG_RESULT($with_pthread)
9457 test "$with_pthread" = yes && break
9460 if test "$with_pthread" = yes ; then
9461 CF_ADD_LIB($cf_lib_pthread)
9462 AC_DEFINE(HAVE_LIBPTHREADS,1,[Define to 1 if we have pthreads library])
9464 AC_MSG_ERROR(Cannot link with pthread library)
9469 dnl ---------------------------------------------------------------------------
9470 dnl CF_WITH_REL_VERSION version: 1 updated: 2003/09/20 18:12:49
9471 dnl -------------------
9472 dnl Allow library's release-version to be overridden. Generally this happens when a
9473 dnl packager has incremented the release-version past that used in the original package,
9474 dnl and wishes to keep doing this.
9476 dnl $1 is the package name, if any, to derive corresponding {package}_MAJOR
9477 dnl and {package}_MINOR symbols
9479 AC_DEFUN([CF_WITH_REL_VERSION],[
9480 test -z "$cf_cv_rel_version" && cf_cv_rel_version=0.0
9481 AC_ARG_WITH(rel-version,
9482 [ --with-rel-version=XXX override derived release version],
9483 [AC_MSG_WARN(overriding release version $cf_cv_rel_version to $withval)
9484 cf_cv_rel_version=$withval])
9486 CF_NUMBER_SYNTAX($cf_cv_rel_version,Release version)
9488 $1_MAJOR=`echo "$cf_cv_rel_version" | sed -e 's/\..*//'`
9489 $1_MINOR=`echo "$cf_cv_rel_version" | sed -e 's/^[[^.]]*//' -e 's/^\.//' -e 's/\..*//'`
9490 CF_NUMBER_SYNTAX([$]$1_MAJOR,Release major-version)
9491 CF_NUMBER_SYNTAX([$]$1_MINOR,Release minor-version)
9494 dnl ---------------------------------------------------------------------------
9495 dnl CF_WITH_SYSMOUSE version: 3 updated: 2012/10/06 17:56:13
9496 dnl ----------------
9497 dnl If we can compile with sysmouse, make it available unless it is not wanted.
9498 AC_DEFUN([CF_WITH_SYSMOUSE],[
9499 # not everyone has "test -c"
9500 if test -c /dev/sysmouse 2>/dev/null ; then
9501 AC_MSG_CHECKING(if you want to use sysmouse)
9502 AC_ARG_WITH(sysmouse,
9503 [ --with-sysmouse use sysmouse (FreeBSD console)],
9504 [cf_with_sysmouse=$withval],
9505 [cf_with_sysmouse=maybe])
9506 if test "$cf_with_sysmouse" != no ; then
9508 #include <osreldate.h>
9509 #if (__FreeBSD_version >= 400017)
9510 #include <sys/consio.h>
9511 #include <sys/fbio.h>
9513 #include <machine/console.h>
9516 struct mouse_info the_mouse;
9517 ioctl(0, CONS_MOUSECTL, &the_mouse);
9518 ],[cf_with_sysmouse=yes],[cf_with_sysmouse=no])
9520 AC_MSG_RESULT($cf_with_sysmouse)
9521 test "$cf_with_sysmouse" = yes && AC_DEFINE(USE_SYSMOUSE,1,[Define to 1 if we can/should use the sysmouse interface])
9524 dnl ---------------------------------------------------------------------------
9525 dnl CF_WITH_SYSTYPE version: 1 updated: 2013/01/26 16:26:12
9527 dnl For testing, override the derived host system-type which is used to decide
9528 dnl things such as the linker commands used to build shared libraries. This is
9529 dnl normally chosen automatically based on the type of system which you are
9530 dnl building on. We use it for testing the configure script.
9532 dnl This is different from the --host option: it is used only for testing parts
9533 dnl of the configure script which would not be reachable with --host since that
9534 dnl relies on the build environment being real, rather than mocked up.
9535 AC_DEFUN([CF_WITH_SYSTYPE],[
9536 CF_CHECK_CACHE([AC_CANONICAL_SYSTEM])
9537 AC_ARG_WITH(system-type,
9538 [ --with-system-type=XXX test: override derived host system-type],
9539 [AC_MSG_WARN(overriding system type to $withval)
9540 cf_cv_system_name=$withval
9544 dnl ---------------------------------------------------------------------------
9545 dnl CF_WITH_VALGRIND version: 1 updated: 2006/12/14 18:00:21
9546 dnl ----------------
9547 AC_DEFUN([CF_WITH_VALGRIND],[
9548 CF_NO_LEAKS_OPTION(valgrind,
9549 [ --with-valgrind test: use valgrind],
9552 dnl ---------------------------------------------------------------------------
9553 dnl CF_WITH_VERSIONED_SYMS version: 10 updated: 2021/01/04 18:48:01
9554 dnl ----------------------
9555 dnl Use this when building shared library with ELF, to markup symbols with the
9556 dnl version identifier from the given input file. Generally that identifier is
9557 dnl the same as the SONAME at which the symbol was first introduced.
9559 dnl $1 = basename of the ".map" file (default $PACKAGE)
9560 AC_DEFUN([CF_WITH_VERSIONED_SYMS],
9561 [AC_REQUIRE([AC_PROG_FGREP])dnl
9562 AC_REQUIRE([AC_PROG_EGREP])dnl
9564 AC_MSG_CHECKING(if versioned-symbols file should be used)
9565 AC_ARG_WITH(versioned-syms,
9566 [ --with-versioned-syms=X markup versioned symbols using ld],
9567 [with_versioned_syms=$withval],
9568 [with_versioned_syms=no])
9569 case "x$with_versioned_syms" in
9571 with_versioned_syms='${top_srcdir}/package/ifelse($1,,${PACKAGE},[$1]).map'
9577 test -f "$with_versioned_syms" || AC_MSG_ERROR(expected a filename: $with_versioned_syms)
9580 test -f "$with_versioned_syms" || AC_MSG_ERROR(expected a filename: $with_versioned_syms)
9581 with_versioned_syms=`pwd`/"$with_versioned_syms"
9584 AC_MSG_RESULT($with_versioned_syms)
9590 if test "x$with_versioned_syms" != xno
9592 RESULTING_SYMS=$with_versioned_syms
9593 case "x$MK_SHARED_LIB" in
9595 VERSIONED_SYMS="-Wl,--version-script,\${RESULTING_SYMS}"
9596 MK_SHARED_LIB=`echo "$MK_SHARED_LIB" | sed -e "s%-Wl,%\\[$]{VERSIONED_SYMS} -Wl,%"`
9597 CF_VERBOSE(MK_SHARED_LIB: $MK_SHARED_LIB)
9600 VERSIONED_SYMS="-Wl,-M,\${RESULTING_SYMS}"
9601 MK_SHARED_LIB=`echo "$MK_SHARED_LIB" | sed -e "s%-dy%\\[$]{VERSIONED_SYMS} -dy%"`
9602 CF_VERBOSE(MK_SHARED_LIB: $MK_SHARED_LIB)
9605 AC_MSG_WARN(this system does not support versioned-symbols)
9609 # Linux ld can selectively override scope, e.g., of symbols beginning with
9610 # "_" by first declaring some as global, and then using a wildcard to
9611 # declare the others as local. Some other loaders cannot do this. Check
9612 # by constructing a (very) simple shared library and inspecting its
9614 if test "x$VERSIONED_SYMS" != "x"
9616 AC_MSG_CHECKING(if wildcards can be used to selectively omit symbols)
9622 cat >conftest.ver <<EOF
9651 cat >conftest.$ac_ext <<EOF
9652 #line __oline__ "configure"
9653 int _ismissing(void) { return 1; }
9654 int _localf1(void) { return 1; }
9655 int _localf2(void) { return 2; }
9656 int globalf1(void) { return 1; }
9657 int globalf2(void) { return 2; }
9658 int _sublocalf1(void) { return 1; }
9659 int _sublocalf2(void) { return 2; }
9660 int subglobalf1(void) { return 1; }
9661 int subglobalf2(void) { return 2; }
9663 cat >conftest.mk <<EOF
9666 CPPFLAGS=${CPPFLAGS}
9669 VERSIONED_SYMS=${VERSIONED_SYMS}
9670 RESULTING_SYMS=conftest.ver
9671 MK_SHARED_LIB=${MK_SHARED_LIB}
9672 conftest.so: conftest.$ac_cv_objext
9673 \$(MK_SHARED_LIB) conftest.$ac_cv_objext
9676 # compile source, make library
9677 if make -f conftest.mk 2>&AC_FD_CC >/dev/null
9679 # test for missing symbol in either Data or Text section
9680 cf_missing="`nm -P conftest.so 2>&AC_FD_CC |${FGREP-fgrep} _ismissing | ${EGREP-egrep} '[[ ]][[DT]][[ ]]'`"
9681 test -n "$cf_missing" && WILDCARD_SYMS=yes
9683 AC_MSG_RESULT($WILDCARD_SYMS)
9687 AC_SUBST(RESULTING_SYMS)
9688 AC_SUBST(VERSIONED_SYMS)
9689 AC_SUBST(WILDCARD_SYMS)
9691 dnl ---------------------------------------------------------------------------
9692 dnl CF_WITH_X11_RGB version: 2 updated: 2019/12/31 08:53:54
9694 dnl Handle configure option "--with-x11-rgb", setting these shell
9697 dnl $RGB_PATH is the option value, used for finding the X11 rgb file.
9698 dnl $no_x11_rgb is a "#" (comment) if "--without-x11-rgb" is given.
9700 dnl Most Linux's use this:
9701 dnl /usr/share/X11/rgb.txt
9702 dnl Debian uses this:
9703 dnl /etc/X11/rgb.txt
9704 dnl DragonFlyBSD ports uses this:
9705 dnl /usr/pkg/lib/X11/rgb.txt
9706 dnl FreeBSD ports use these:
9707 dnl /usr/local/lib/X11/rgb.txt
9708 dnl /usr/local/share/X11/rgb.txt
9709 dnl Mandriva has these:
9710 dnl /usr/lib/X11/rgb.txt
9711 dnl /usr/lib64/X11/rgb.txt
9712 dnl NetBSD has these
9713 dnl /usr/X11R7/lib/X11/rgb.txt
9714 dnl OpenSolaris uses
9716 dnl /usr/X11/etc/X11/rgb.txt
9717 dnl /usr/X11/share/X11/rgb.txt
9718 dnl /usr/X11/lib/X11/rgb.txt
9720 dnl /opt/local/share/X11/rgb.txt (MacPorts)
9721 dnl /opt/X11/share/X11/rgb.txt (non-ports)
9723 dnl /usr/X11/etc/X11/rgb.txt
9724 dnl /usr/X11/share/X11/rgb.txt (perhaps)
9725 dnl /usr/X11/lib/amd64/X11/rgb.txt
9726 dnl Solaris10 uses (in this order):
9727 dnl /usr/openwin/lib/X11/rgb.txt
9728 dnl /usr/X11/lib/X11/rgb.txt
9729 AC_DEFUN([CF_WITH_X11_RGB],[
9730 AC_MSG_CHECKING(for X11 rgb file)
9731 AC_ARG_WITH(x11-rgb,
9732 [ --with-x11-rgb=FILE file containing X11 rgb information (EPREFIX/lib/X11/rgb.txt)],
9733 [RGB_PATH=$withval],
9736 if test "x[$]RGB_PATH" = xauto
9738 RGB_PATH='${exec_prefix}/lib/X11/rgb.txt'
9740 /opt/local/share/X11/rgb.txt \
9741 /opt/X11/share/X11/rgb.txt \
9742 /usr/share/X11/rgb.txt \
9743 /usr/X11/share/X11/rgb.txt \
9744 /usr/X11/lib/X11/rgb.txt \
9745 /usr/lib/X11/rgb.txt \
9747 /usr/pkg/lib/X11/rgb.txt \
9748 /usr/X11R7/lib/X11/rgb.txt \
9749 /usr/X11R6/lib/X11/rgb.txt \
9750 /usr/X11R5/lib/X11/rgb.txt \
9751 /usr/X11R4/lib/X11/rgb.txt \
9752 /usr/local/lib/X11/rgb.txt \
9753 /usr/local/share/X11/rgb.txt \
9754 /usr/lib64/X11/rgb.txt
9756 if test -f "$cf_path" ; then
9763 CF_PATH_SYNTAX(cf_path)
9766 AC_MSG_RESULT($RGB_PATH)
9768 AC_DEFINE_UNQUOTED(RGB_PATH,"$cf_path",[Define to the full pathname of rgb.txt])
9771 if test "$RGB_PATH" = no
9775 AC_SUBST(no_x11_rgb)
9777 dnl ---------------------------------------------------------------------------
9778 dnl CF_XOPEN_SOURCE version: 59 updated: 2021/08/28 15:20:37
9780 dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
9781 dnl or adapt to the vendor's definitions to get equivalent functionality,
9782 dnl without losing the common non-POSIX features.
9785 dnl $1 is the nominal value for _XOPEN_SOURCE
9786 dnl $2 is the nominal value for _POSIX_C_SOURCE
9787 AC_DEFUN([CF_XOPEN_SOURCE],[
9788 AC_REQUIRE([AC_CANONICAL_HOST])
9789 AC_REQUIRE([CF_POSIX_VISIBLE])
9791 if test "$cf_cv_posix_visible" = no; then
9793 cf_XOPEN_SOURCE=ifelse([$1],,500,[$1])
9794 cf_POSIX_C_SOURCE=ifelse([$2],,199506L,[$2])
9799 cf_xopen_source="-D_ALL_SOURCE"
9805 cf_xopen_source="-D_APPLE_C_SOURCE"
9808 cf_xopen_source="-D_DARWIN_C_SOURCE"
9811 (freebsd*|dragonfly*|midnightbsd*)
9812 # 5.x headers associate
9813 # _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L
9814 # _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L
9815 cf_POSIX_C_SOURCE=200112L
9817 cf_xopen_source="-D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
9820 cf_xopen_source="-D_HPUX_SOURCE -D_XOPEN_SOURCE=500"
9823 cf_xopen_source="-D_HPUX_SOURCE"
9826 cf_xopen_source="-D_SGI_SOURCE"
9829 (linux*|uclinux*|gnu*|mint*|k*bsd*-gnu|cygwin)
9830 CF_GNU_SOURCE($cf_XOPEN_SOURCE)
9833 cf_xopen_source="-D_NETBSD_SOURCE" # POSIX.1-2001 features are ifdef'd with this...
9836 # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <sys/select.h> and other headers which use u_int / u_short types
9838 CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
9841 cf_xopen_source="-D_NETBSD_SOURCE" # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
9844 # OpenBSD 6.x has broken locale support, both compile-time and runtime.
9845 # see https://www.mail-archive.com/bugs@openbsd.org/msg13200.html
9846 # Abusing the conformance level is a workaround.
9847 AC_MSG_WARN(this system does not provide usable locale support)
9848 cf_xopen_source="-D_BSD_SOURCE"
9852 # setting _XOPEN_SOURCE lower than 500 breaks g++ compile with wchar.h, needed for ncursesw
9853 cf_xopen_source="-D_BSD_SOURCE"
9857 # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
9860 cf_xopen_source="-D_OSF_SOURCE"
9863 cf_xopen_source="-D_QNX_SOURCE"
9866 # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
9869 cf_xopen_source="-D__EXTENSIONS__"
9870 cf_cv_xopen_source=broken
9872 (sysv4.2uw2.*) # Novell/SCO UnixWare 2.x (tested on 2.1.2)
9878 CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
9882 if test -n "$cf_xopen_source" ; then
9883 CF_APPEND_CFLAGS($cf_xopen_source,true)
9886 dnl In anything but the default case, we may have system-specific setting
9887 dnl which is still not guaranteed to provide all of the entrypoints that
9888 dnl _XOPEN_SOURCE would yield.
9889 if test -n "$cf_XOPEN_SOURCE" && test -z "$cf_cv_xopen_source" ; then
9890 AC_MSG_CHECKING(if _XOPEN_SOURCE really is set)
9891 AC_TRY_COMPILE([#include <stdlib.h>],[
9892 #ifndef _XOPEN_SOURCE
9895 [cf_XOPEN_SOURCE_set=yes],
9896 [cf_XOPEN_SOURCE_set=no])
9897 AC_MSG_RESULT($cf_XOPEN_SOURCE_set)
9898 if test "$cf_XOPEN_SOURCE_set" = yes
9900 AC_TRY_COMPILE([#include <stdlib.h>],[
9901 #if (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE
9904 [cf_XOPEN_SOURCE_set_ok=yes],
9905 [cf_XOPEN_SOURCE_set_ok=no])
9906 if test "$cf_XOPEN_SOURCE_set_ok" = no
9908 AC_MSG_WARN(_XOPEN_SOURCE is lower than requested)
9914 fi # cf_cv_posix_visible
9916 dnl ---------------------------------------------------------------------------
9917 dnl CF__SED_TRIMBLANKS version: 1 updated: 2021/01/02 09:31:20
9918 dnl ------------------
9919 dnl Trim something using sed, then trim extra whitespace
9920 dnl $1 = extra parameters, e.g., in CF_STRIP_G_OPT
9921 define([CF__SED_TRIMBLANKS],[sed ifelse($1,,,[$1] )-e 's%[[ ]]% %g' -e 's% [[ ]]*% %g' -e 's%^ %%' -e 's% [$]%%'])dnl