1 dnl***************************************************************************
2 dnl Copyright 2018-2020,2021 Thomas E. Dickey *
3 dnl Copyright 2003-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 $Id: aclocal.m4,v 1.193 2021/04/03 20:48:45 tom Exp $
32 dnl Author: Thomas E. Dickey
34 dnl Macros used in NCURSES test programs auto-configuration script.
36 dnl These macros are maintained separately from NCURSES. The copyright on
37 dnl this file applies to the aggregation of macros and does not affect use of
38 dnl these macros in other applications.
40 dnl See these pages for additional information:
41 dnl https://invisible-island.net/autoconf/
42 dnl https://invisible-island.net/autoconf/my-autoconf.html
44 dnl ---------------------------------------------------------------------------
45 dnl ---------------------------------------------------------------------------
46 dnl AM_LANGINFO_CODESET version: 6 updated: 2021/01/01 16:53:59
47 dnl -------------------
48 dnl Inserted as requested by gettext 0.10.40
49 dnl File from /usr/share/aclocal
51 dnl ====================
54 dnl From Bruno Haible.
55 AC_DEFUN([AM_LANGINFO_CODESET],
57 AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset,
58 [AC_TRY_LINK([#include <langinfo.h>],
59 [char* cs = nl_langinfo(CODESET); (void)cs],
60 am_cv_langinfo_codeset=yes,
61 am_cv_langinfo_codeset=no)
63 if test "$am_cv_langinfo_codeset" = yes; then
64 AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
65 [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
68 dnl ---------------------------------------------------------------------------
69 dnl CF_ACVERSION_CHECK version: 5 updated: 2014/06/04 19:11:49
70 dnl ------------------
71 dnl Conditionally generate script according to whether we're using a given autoconf.
73 dnl $1 = version to compare against
74 dnl $2 = code to use if AC_ACVERSION is at least as high as $1.
75 dnl $3 = code to use if AC_ACVERSION is older than $1.
76 define([CF_ACVERSION_CHECK],
78 ifdef([AC_ACVERSION], ,[ifdef([AC_AUTOCONF_VERSION],[m4_copy([AC_AUTOCONF_VERSION],[AC_ACVERSION])],[m4_copy([m4_PACKAGE_VERSION],[AC_ACVERSION])])])dnl
79 ifdef([m4_version_compare],
80 [m4_if(m4_version_compare(m4_defn([AC_ACVERSION]), [$1]), -1, [$3], [$2])],
81 [CF_ACVERSION_COMPARE(
82 AC_PREREQ_CANON(AC_PREREQ_SPLIT([$1])),
83 AC_PREREQ_CANON(AC_PREREQ_SPLIT(AC_ACVERSION)), AC_ACVERSION, [$2], [$3])])])dnl
84 dnl ---------------------------------------------------------------------------
85 dnl CF_ACVERSION_COMPARE version: 3 updated: 2012/10/03 18:39:53
86 dnl --------------------
87 dnl CF_ACVERSION_COMPARE(MAJOR1, MINOR1, TERNARY1,
88 dnl MAJOR2, MINOR2, TERNARY2,
89 dnl PRINTABLE2, not FOUND, FOUND)
90 define([CF_ACVERSION_COMPARE],
91 [ifelse(builtin([eval], [$2 < $5]), 1,
92 [ifelse([$8], , ,[$8])],
93 [ifelse([$9], , ,[$9])])])dnl
94 dnl ---------------------------------------------------------------------------
95 dnl CF_ADD_CFLAGS version: 15 updated: 2020/12/31 10:54:15
97 dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS
99 dnl $2 = if given makes this macro verbose.
101 dnl Put any preprocessor definitions that use quoted strings in $EXTRA_CPPFLAGS,
102 dnl to simplify use of $CPPFLAGS in compiler checks, etc., that are easily
103 dnl confused by the quotes (which require backslashes to keep them usable).
104 AC_DEFUN([CF_ADD_CFLAGS],
109 cf_new_extra_cppflags=
111 for cf_add_cflags in $1
113 case "$cf_fix_cppflags" in
115 case "$cf_add_cflags" in
116 (-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C)
117 case "$cf_add_cflags" in
119 cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^-D[[^=]]*='\''\"[[^"]]*//'`
121 test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
122 && test -z "${cf_tst_cflags}" \
123 && cf_fix_cppflags=yes
125 if test "$cf_fix_cppflags" = yes ; then
126 CF_APPEND_TEXT(cf_new_extra_cppflags,$cf_add_cflags)
128 elif test "${cf_tst_cflags}" = "\"'" ; then
129 CF_APPEND_TEXT(cf_new_extra_cppflags,$cf_add_cflags)
138 case "$cf_add_cflags" in
140 cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
141 CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,$cf_tst_cppflags)
144 CF_APPEND_TEXT(cf_new_cppflags,$cf_add_cflags)
149 CF_APPEND_TEXT(cf_new_cflags,$cf_add_cflags)
154 CF_APPEND_TEXT(cf_new_extra_cppflags,$cf_add_cflags)
156 cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^[[^"]]*"'\''//'`
158 test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
159 && test -z "${cf_tst_cflags}" \
160 && cf_fix_cppflags=no
165 if test -n "$cf_new_cflags" ; then
166 ifelse([$2],,,[CF_VERBOSE(add to \$CFLAGS $cf_new_cflags)])
167 CF_APPEND_TEXT(CFLAGS,$cf_new_cflags)
170 if test -n "$cf_new_cppflags" ; then
171 ifelse([$2],,,[CF_VERBOSE(add to \$CPPFLAGS $cf_new_cppflags)])
172 CF_APPEND_TEXT(CPPFLAGS,$cf_new_cppflags)
175 if test -n "$cf_new_extra_cppflags" ; then
176 ifelse([$2],,,[CF_VERBOSE(add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags)])
177 CF_APPEND_TEXT(EXTRA_CPPFLAGS,$cf_new_extra_cppflags)
180 AC_SUBST(EXTRA_CPPFLAGS)
183 dnl ---------------------------------------------------------------------------
184 dnl CF_ADD_INCDIR version: 16 updated: 2020/12/31 20:19:42
186 dnl Add an include-directory to $CPPFLAGS. Don't add /usr/include, since it's
187 dnl redundant. We don't normally need to add -I/usr/local/include for gcc,
188 dnl but old versions (and some misinstalled ones) need that. To make things
189 dnl worse, gcc 3.x may give error messages if -I/usr/local/include is added to
190 dnl the include-path).
191 AC_DEFUN([CF_ADD_INCDIR],
193 if test -n "$1" ; then
194 for cf_add_incdir in $1
196 while test "$cf_add_incdir" != /usr/include
198 if test -d "$cf_add_incdir"
201 if test -n "$CFLAGS$CPPFLAGS" ; then
202 # a loop is needed to ensure we can add subdirs of existing dirs
203 for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
204 if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
205 cf_have_incdir=yes; break
210 if test "$cf_have_incdir" = no ; then
211 if test "$cf_add_incdir" = /usr/local/include ; then
214 cf_save_CPPFLAGS=$CPPFLAGS
215 CF_APPEND_TEXT(CPPFLAGS,-I$cf_add_incdir)
216 AC_TRY_COMPILE([#include <stdio.h>],
219 [cf_have_incdir=yes])
220 CPPFLAGS=$cf_save_CPPFLAGS
225 if test "$cf_have_incdir" = no ; then
226 CF_VERBOSE(adding $cf_add_incdir to include-path)
227 ifelse([$2],,CPPFLAGS,[$2])="$ifelse([$2],,CPPFLAGS,[$2]) -I$cf_add_incdir"
229 cf_top_incdir=`echo "$cf_add_incdir" | sed -e 's%/include/.*$%/include%'`
230 test "$cf_top_incdir" = "$cf_add_incdir" && break
231 cf_add_incdir="$cf_top_incdir"
242 dnl ---------------------------------------------------------------------------
243 dnl CF_ADD_LIB version: 2 updated: 2010/06/02 05:03:05
245 dnl Add a library, used to enforce consistency.
247 dnl $1 = library to add, without the "-l"
248 dnl $2 = variable to update (default $LIBS)
249 AC_DEFUN([CF_ADD_LIB],[CF_ADD_LIBS(-l$1,ifelse($2,,LIBS,[$2]))])dnl
250 dnl ---------------------------------------------------------------------------
251 dnl CF_ADD_LIBDIR version: 11 updated: 2020/12/31 20:19:42
253 dnl Adds to the library-path
255 dnl Some machines have trouble with multiple -L options.
257 dnl $1 is the (list of) directory(s) to add
258 dnl $2 is the optional name of the variable to update (default LDFLAGS)
260 AC_DEFUN([CF_ADD_LIBDIR],
262 if test -n "$1" ; then
263 for cf_add_libdir in $1
265 if test "$cf_add_libdir" = /usr/lib ; then
267 elif test -d "$cf_add_libdir"
270 if test -n "$LDFLAGS$LIBS" ; then
271 # a loop is needed to ensure we can add subdirs of existing dirs
272 for cf_test_libdir in $LDFLAGS $LIBS ; do
273 if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
274 cf_have_libdir=yes; break
278 if test "$cf_have_libdir" = no ; then
279 CF_VERBOSE(adding $cf_add_libdir to library-path)
280 ifelse([$2],,LDFLAGS,[$2])="-L$cf_add_libdir $ifelse([$2],,LDFLAGS,[$2])"
286 dnl ---------------------------------------------------------------------------
287 dnl CF_ADD_LIBS version: 3 updated: 2019/11/02 16:47:33
289 dnl Add one or more libraries, used to enforce consistency. Libraries are
290 dnl prepended to an existing list, since their dependencies are assumed to
291 dnl already exist in the list.
293 dnl $1 = libraries to add, with the "-l", etc.
294 dnl $2 = variable to update (default $LIBS)
295 AC_DEFUN([CF_ADD_LIBS],[
296 cf_add_libs="[$]ifelse($2,,LIBS,[$2])"
299 for cf_add_1lib in $1; do cf_add_0lib="$cf_add_1lib $cf_add_0lib"; done
301 for cf_add_1lib in $cf_add_0lib; do
302 for cf_add_2lib in $cf_add_libs; do
303 if test "x$cf_add_1lib" = "x$cf_add_2lib"; then
308 test -n "$cf_add_1lib" && cf_add_libs="$cf_add_1lib $cf_add_libs"
310 ifelse($2,,LIBS,[$2])="$cf_add_libs"
312 dnl ---------------------------------------------------------------------------
313 dnl CF_ADD_LIB_AFTER version: 3 updated: 2013/07/09 21:27:22
315 dnl Add a given library after another, e.g., following the one it satisfies a
318 dnl $1 = the first library
319 dnl $2 = its dependency
320 AC_DEFUN([CF_ADD_LIB_AFTER],[
321 CF_VERBOSE(...before $LIBS)
322 LIBS=`echo "$LIBS" | sed -e "s/[[ ]][[ ]]*/ /g" -e "s%$1 %$1 $2 %" -e 's% % %g'`
323 CF_VERBOSE(...after $LIBS)
325 dnl ---------------------------------------------------------------------------
326 dnl CF_ADD_SUBDIR_PATH version: 5 updated: 2020/12/31 20:19:42
327 dnl ------------------
328 dnl Append to a search-list for a nonstandard header/lib-file
329 dnl $1 = the variable to return as result
330 dnl $2 = the package name
331 dnl $3 = the subdirectory, e.g., bin, include or lib
332 dnl $4 = the directory under which we will test for subdirectories
333 dnl $5 = a directory that we do not want $4 to match
334 AC_DEFUN([CF_ADD_SUBDIR_PATH],
336 test "x$4" != "x$5" && \
338 ifelse([$5],NONE,,[{ test -z "$5" || test "x$5" = xNONE || test "x$4" != "x$5"; } &&]) {
339 test -n "$verbose" && echo " ... testing for $3-directories under $4"
340 test -d "$4/$3" && $1="[$]$1 $4/$3"
341 test -d "$4/$3/$2" && $1="[$]$1 $4/$3/$2"
342 test -d "$4/$3/$2/$3" && $1="[$]$1 $4/$3/$2/$3"
343 test -d "$4/$2/$3" && $1="[$]$1 $4/$2/$3"
344 test -d "$4/$2/$3/$2" && $1="[$]$1 $4/$2/$3/$2"
347 dnl ---------------------------------------------------------------------------
348 dnl CF_APPEND_TEXT version: 1 updated: 2017/02/25 18:58:55
350 dnl use this macro for appending text without introducing an extra blank at
352 define([CF_APPEND_TEXT],
354 test -n "[$]$1" && $1="[$]$1 "
357 dnl ---------------------------------------------------------------------------
358 dnl CF_ARG_DISABLE version: 3 updated: 1999/03/30 17:24:31
360 dnl Allow user to disable a normally-on option.
361 AC_DEFUN([CF_ARG_DISABLE],
362 [CF_ARG_OPTION($1,[$2],[$3],[$4],yes)])dnl
363 dnl ---------------------------------------------------------------------------
364 dnl CF_ARG_ENABLE version: 3 updated: 1999/03/30 17:24:31
366 dnl Allow user to enable a normally-off option.
367 AC_DEFUN([CF_ARG_ENABLE],
368 [CF_ARG_OPTION($1,[$2],[$3],[$4],no)])dnl
369 dnl ---------------------------------------------------------------------------
370 dnl CF_ARG_OPTION version: 5 updated: 2015/05/10 19:52:14
372 dnl Restricted form of AC_ARG_ENABLE that ensures user doesn't give bogus
378 dnl $3 = action to perform if option is not default
379 dnl $4 = action if perform if option is default
380 dnl $5 = default option value (either 'yes' or 'no')
381 AC_DEFUN([CF_ARG_OPTION],
382 [AC_ARG_ENABLE([$1],[$2],[test "$enableval" != ifelse([$5],no,yes,no) && enableval=ifelse([$5],no,no,yes)
383 if test "$enableval" != "$5" ; then
385 ,[ $3]) ifelse([$4],,,[
388 fi],[enableval=$5 ifelse([$4],,,[
392 dnl ---------------------------------------------------------------------------
393 dnl CF_C11_NORETURN version: 3 updated: 2021/03/28 11:36:23
395 AC_DEFUN([CF_C11_NORETURN],
397 AC_MSG_CHECKING(if you want to use C11 _Noreturn feature)
398 CF_ARG_ENABLE(stdnoreturn,
399 [ --enable-stdnoreturn enable C11 _Noreturn feature for diagnostics],
400 [enable_stdnoreturn=yes],
401 [enable_stdnoreturn=no])
402 AC_MSG_RESULT($enable_stdnoreturn)
404 if test $enable_stdnoreturn = yes; then
405 AC_CACHE_CHECK([for C11 _Noreturn feature], cf_cv_c11_noreturn,
409 #include <stdnoreturn.h>
410 static _Noreturn void giveup(void) { exit(0); }
412 [if (feof(stdin)) giveup()],
413 cf_cv_c11_noreturn=yes,
414 cf_cv_c11_noreturn=no)
417 cf_cv_c11_noreturn=no,
420 if test "$cf_cv_c11_noreturn" = yes; then
421 AC_DEFINE(HAVE_STDNORETURN_H, 1,[Define if <stdnoreturn.h> header is available and working])
422 AC_DEFINE_UNQUOTED(STDC_NORETURN,_Noreturn,[Define if C11 _Noreturn keyword is supported])
428 AC_SUBST(HAVE_STDNORETURN_H)
429 AC_SUBST(STDC_NORETURN)
431 dnl ---------------------------------------------------------------------------
432 dnl CF_CC_ENV_FLAGS version: 10 updated: 2020/12/31 18:40:20
434 dnl Check for user's environment-breakage by stuffing CFLAGS/CPPFLAGS content
435 dnl into CC. This will not help with broken scripts that wrap the compiler
436 dnl with options, but eliminates a more common category of user confusion.
438 dnl In particular, it addresses the problem of being able to run the C
439 dnl preprocessor in a consistent manner.
441 dnl Caveat: this also disallows blanks in the pathname for the compiler, but
442 dnl the nuisance of having inconsistent settings for compiler and preprocessor
443 dnl outweighs that limitation.
444 AC_DEFUN([CF_CC_ENV_FLAGS],
446 # This should have been defined by AC_PROG_CC
449 AC_MSG_CHECKING(\$CFLAGS variable)
452 AC_MSG_RESULT(broken)
453 AC_MSG_WARN(your environment uses the CFLAGS variable to hold CPPFLAGS options)
456 for cf_arg in $cf_flags
458 CF_ADD_CFLAGS($cf_arg)
466 AC_MSG_CHECKING(\$CC variable)
469 AC_MSG_RESULT(broken)
470 AC_MSG_WARN(your environment uses the CC variable to hold CFLAGS/CPPFLAGS options)
472 cf_prog=`echo "$CC" | sed -e 's/ / /g' -e 's/[[ ]]* / /g' -e 's/[[ ]]*[[ ]]-[[^ ]].*//'`
473 cf_flags=`echo "$CC" | ${AWK:-awk} -v prog="$cf_prog" '{ printf("%s", [substr]([$]0,1+length(prog))); }'`
475 for cf_arg in $cf_flags
479 CF_ADD_CFLAGS($cf_arg)
486 CF_VERBOSE(resulting CC: '$CC')
487 CF_VERBOSE(resulting CFLAGS: '$CFLAGS')
488 CF_VERBOSE(resulting CPPFLAGS: '$CPPFLAGS')
495 dnl ---------------------------------------------------------------------------
496 dnl CF_CHECK_CACHE version: 13 updated: 2020/12/31 10:54:15
498 dnl Check if we're accidentally using a cache from a different machine.
499 dnl Derive the system name, as a check for reusing the autoconf cache.
501 dnl If we've packaged config.guess and config.sub, run that (since it does a
502 dnl better job than uname). Normally we'll use AC_CANONICAL_HOST, but allow
503 dnl an extra parameter that we may override, e.g., for AC_CANONICAL_SYSTEM
504 dnl which is useful in cross-compiles.
506 dnl Note: we would use $ac_config_sub, but that is one of the places where
507 dnl autoconf 2.5x broke compatibility with autoconf 2.13
508 AC_DEFUN([CF_CHECK_CACHE],
510 if test -f "$srcdir/config.guess" || test -f "$ac_aux_dir/config.guess" ; then
511 ifelse([$1],,[AC_CANONICAL_HOST],[$1])
512 system_name="$host_os"
514 system_name="`(uname -s -r) 2>/dev/null`"
515 if test -z "$system_name" ; then
516 system_name="`(hostname) 2>/dev/null`"
519 test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name",[Define to the system name.])
520 AC_CACHE_VAL(cf_cv_system_name,[cf_cv_system_name="$system_name"])
522 test -z "$system_name" && system_name="$cf_cv_system_name"
523 test -n "$cf_cv_system_name" && AC_MSG_RESULT(Configuring for $cf_cv_system_name)
525 if test ".$system_name" != ".$cf_cv_system_name" ; then
526 AC_MSG_RESULT(Cached system name ($system_name) does not agree with actual ($cf_cv_system_name))
527 AC_MSG_ERROR("Please remove config.cache and try again.")
530 dnl ---------------------------------------------------------------------------
531 dnl CF_CHECK_CFLAGS version: 4 updated: 2021/01/02 19:22:58
533 dnl Conditionally add to $CFLAGS and $CPPFLAGS values which are derived from
534 dnl a build-configuration such as imake. These have the pitfall that they
535 dnl often contain compiler-specific options which we cannot use, mixed with
536 dnl preprocessor options that we usually can.
537 AC_DEFUN([CF_CHECK_CFLAGS],
539 CF_VERBOSE(checking additions to CFLAGS)
540 cf_check_cflags="$CFLAGS"
541 cf_check_cppflags="$CPPFLAGS"
542 CF_ADD_CFLAGS($1,yes)
543 if test "x$cf_check_cflags" != "x$CFLAGS" ; then
544 AC_TRY_LINK([#include <stdio.h>],[printf("Hello world");],,
545 [CF_VERBOSE(test-compile failed. Undoing change to \$CFLAGS)
546 if test "x$cf_check_cppflags" != "x$CPPFLAGS" ; then
547 CF_VERBOSE(but keeping change to \$CPPFLAGS)
549 CFLAGS="$cf_check_cflags"])
552 dnl ---------------------------------------------------------------------------
553 dnl CF_CHECK_CURSES_LIB version: 3 updated: 2021/01/04 19:45:09
554 dnl -------------------
555 dnl $1 = nominal library name, used also for header lookup
556 dnl $2 = suffix to append to library name
557 dnl $3 = function to check for using AC_CHECK_LIB
558 dnl $4 = optional parameter list for $3
559 AC_DEFUN([CF_CHECK_CURSES_LIB],
561 AC_REQUIRE([CF_PKG_CONFIG])
563 cf_have_curses_lib=no
565 : ${NCURSES_CONFIG_PKG:=none}
566 if test "x${NCURSES_CONFIG_PKG}" = xnone; then
568 elif test "x${PKG_CONFIG:=none}" != xnone; then
569 AC_MSG_CHECKING(pkg-config for $1$2)
570 if "$PKG_CONFIG" --exists "$1$2" ; then
573 AC_MSG_CHECKING(if the $1$2 package files work)
575 cf_save_CPPFLAGS="$CPPFLAGS"
578 CF_ADD_CFLAGS(`$PKG_CONFIG --cflags "$1$2"`)
579 CF_ADD_LIBS(`$PKG_CONFIG --libs "$1$2"`)
581 AC_TRY_LINK([#include <$1.h>],
582 [(void) $3 ( ]ifelse([$4],,,[[$4]])[ );],
583 [AC_TRY_RUN([#include <$1.h>
585 { (void) $3 ( ]ifelse([$4],,,[[$4]])[ ); return 0; }],
586 [cf_have_curses_lib=yes],
587 [cf_have_curses_lib=no],
588 [cf_have_curses_lib=maybe])],
589 [cf_have_curses_lib=no])
590 AC_MSG_RESULT($cf_have_curses_lib)
591 test "$cf_have_curses_lib" = maybe && cf_have_curses_lib=yes
592 if test "$cf_have_curses_lib" != "yes"
594 CPPFLAGS="$cf_save_CPPFLAGS"
597 CF_UPPER(cf_upper,have_lib$1)
598 AC_DEFINE_UNQUOTED($cf_upper,1)
602 if test "$cf_have_curses_lib" = no; then
603 AC_CHECK_LIB($1$2,$3,[
604 CF_UPPER(cf_upper,have_lib$1)
606 AC_DEFINE_UNQUOTED($cf_upper,1)])
609 dnl ---------------------------------------------------------------------------
610 dnl CF_CLANG_COMPILER version: 8 updated: 2021/01/01 13:31:04
611 dnl -----------------
612 dnl Check if the given compiler is really clang. clang's C driver defines
613 dnl __GNUC__ (fooling the configure script into setting $GCC to yes) but does
614 dnl not ignore some gcc options.
616 dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
617 dnl ensure that it is not mistaken for gcc/g++. It is normally invoked from
618 dnl the wrappers for gcc and g++ warnings.
620 dnl $1 = GCC (default) or GXX
621 dnl $2 = CLANG_COMPILER (default)
622 dnl $3 = CFLAGS (default) or CXXFLAGS
623 AC_DEFUN([CF_CLANG_COMPILER],[
624 ifelse([$2],,CLANG_COMPILER,[$2])=no
626 if test "$ifelse([$1],,[$1],GCC)" = yes ; then
627 AC_MSG_CHECKING(if this is really Clang ifelse([$1],GXX,C++,C) compiler)
628 cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
634 ],[ifelse([$2],,CLANG_COMPILER,[$2])=yes
636 ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
637 AC_MSG_RESULT($ifelse([$2],,CLANG_COMPILER,[$2]))
642 if test "x$ifelse([$2],,CLANG_COMPILER,[$2])" = "xyes" ; then
644 (c[[1-9]][[0-9]]|*/c[[1-9]][[0-9]])
645 AC_MSG_WARN(replacing broken compiler alias $CC)
646 CFLAGS="$CFLAGS -std=`echo "$CC" | sed -e 's%.*/%%'`"
651 AC_MSG_CHECKING(version of $CC)
652 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.]].*//'`"
653 test -z "$CLANG_VERSION" && CLANG_VERSION=unknown
654 AC_MSG_RESULT($CLANG_VERSION)
656 for cf_clang_opt in \
658 -Wno-error=implicit-function-declaration
660 AC_MSG_CHECKING(if option $cf_clang_opt works)
661 cf_save_CFLAGS="$CFLAGS"
662 CFLAGS="$CFLAGS $cf_clang_opt"
664 #include <stdio.h>],[
665 printf("hello!\\n");],[
666 cf_clang_optok=yes],[
668 AC_MSG_RESULT($cf_clang_optok)
669 CFLAGS="$cf_save_CFLAGS"
670 if test "$cf_clang_optok" = yes; then
671 CF_VERBOSE(adding option $cf_clang_opt)
672 CF_APPEND_TEXT(CFLAGS,$cf_clang_opt)
677 dnl ---------------------------------------------------------------------------
678 dnl CF_CONST_X_STRING version: 6 updated: 2021/01/01 13:31:04
679 dnl -----------------
680 dnl The X11R4-X11R6 Xt specification uses an ambiguous String type for most
681 dnl character-strings.
683 dnl It is ambiguous because the specification accommodated the pre-ANSI
684 dnl compilers bundled by more than one vendor in lieu of providing a standard C
685 dnl compiler other than by costly add-ons. Because of this, the specification
686 dnl did not take into account the use of const for telling the compiler that
687 dnl string literals would be in readonly memory.
689 dnl As a workaround, one could (starting with X11R5) define XTSTRINGDEFINES, to
690 dnl let the compiler decide how to represent Xt's strings which were #define'd.
691 dnl That does not solve the problem of using the block of Xt's strings which
692 dnl are compiled into the library (and is less efficient than one might want).
694 dnl Xt specification 7 introduces the _CONST_X_STRING symbol which is used both
695 dnl when compiling the library and compiling using the library, to tell the
696 dnl compiler that String is const.
697 AC_DEFUN([CF_CONST_X_STRING],
699 AC_REQUIRE([AC_PATH_XTRA])
701 CF_SAVE_XTRA_FLAGS([CF_CONST_X_STRING])
706 #include <X11/Intrinsic.h>
708 [String foo = malloc(1); (void)foo],[
710 AC_CACHE_CHECK(for X11/Xt const-feature,cf_cv_const_x_string,[
713 #define _CONST_X_STRING /* X11R7.8 (perhaps) */
714 #undef XTSTRINGDEFINES /* X11R5 and later */
716 #include <X11/Intrinsic.h>
717 ],[String foo = malloc(1); *foo = 0],[
718 cf_cv_const_x_string=no
720 cf_cv_const_x_string=yes
724 CF_RESTORE_XTRA_FLAGS([CF_CONST_X_STRING])
726 case "$cf_cv_const_x_string" in
728 CF_APPEND_TEXT(CPPFLAGS,-DXTSTRINGDEFINES)
731 CF_APPEND_TEXT(CPPFLAGS,-D_CONST_X_STRING)
737 dnl ---------------------------------------------------------------------------
738 dnl CF_CURSES_ACS_MAP version: 8 updated: 2021/01/04 19:45:09
739 dnl -----------------
740 dnl Check for likely values of acs_map[]:
741 AC_DEFUN([CF_CURSES_ACS_MAP],
743 AC_REQUIRE([CF_NCURSES_WRAP_PREFIX])dnl
744 AC_CACHE_CHECK(for alternate character set array, cf_cv_curses_acs_map,[
745 cf_cv_curses_acs_map=unknown
746 for name in acs_map _acs_map __acs_map ${NCURSES_WRAP_PREFIX}acs_map
749 #include <${cf_cv_ncurses_header:-curses.h}>
751 ${name}['k'] = ACS_PLUS
752 ],[cf_cv_curses_acs_map=$name; break])
756 test "$cf_cv_curses_acs_map" != unknown && AC_DEFINE_UNQUOTED(CURSES_ACS_ARRAY,$cf_cv_curses_acs_map,[Define as needed to override ncurses prefix _nc_])
758 dnl ---------------------------------------------------------------------------
759 dnl CF_CURSES_CHECK_DATA version: 10 updated: 2021/01/04 19:45:09
760 dnl --------------------
761 dnl Check if curses.h defines the given data/variable.
762 dnl Use this after CF_NCURSES_CONFIG or CF_CURSES_CONFIG.
764 dnl $1 = data item(s) to check for
765 dnl $2 = action on success, e.g., "break" to quit checking a series of choices
766 AC_DEFUN([CF_CURSES_CHECK_DATA],
770 AC_MSG_CHECKING(for data $cf_data declaration in ${cf_cv_ncurses_header:-curses.h})
772 AC_TRY_COMPILE(CF__CURSES_HEAD,
773 CF__CURSES_DATA(foo,$cf_data)
776 AC_MSG_RESULT($cf_result)
778 if test "$cf_result" = yes ; then
779 CF_UPPER(cf_result,have_curses_data_$cf_data)
780 AC_DEFINE_UNQUOTED($cf_result)
783 AC_MSG_CHECKING(for data $cf_data in library)
784 # BSD linkers insist on making weak linkage, but resolve at runtime.
785 AC_TRY_RUN(CF__CURSES_HEAD
787 extern char $cf_data;
790 ]CF__CURSES_DATA(foo,$cf_data)[
791 ${cf_cv_main_return:-return}(foo == 0);
795 AC_TRY_LINK(CF__CURSES_HEAD
796 [extern char $cf_data;],[
798 ]CF__CURSES_DATA(foo,$cf_data)[
799 ${cf_cv_main_return:-return}(foo == 0);
801 ],[cf_result=yes],[cf_result=no])
803 AC_MSG_RESULT($cf_result)
804 if test "$cf_result" = yes ; then
805 CF_UPPER(cf_result,decl_curses_data_$cf_data)
806 AC_DEFINE_UNQUOTED($cf_result)
807 # do not exit loop here, since we prefer system's declarations
812 dnl ---------------------------------------------------------------------------
813 dnl CF_CURSES_CHECK_TYPE version: 5 updated: 2021/01/04 19:45:09
814 dnl --------------------
815 dnl Check if curses.h defines the given type
816 AC_DEFUN([CF_CURSES_CHECK_TYPE],
818 AC_MSG_CHECKING(for type $1 in ${cf_cv_ncurses_header:-curses.h})
820 #ifndef _XOPEN_SOURCE_EXTENDED
821 #define _XOPEN_SOURCE_EXTENDED
823 #include <${cf_cv_ncurses_header:-curses.h}>],[
825 ],cf_result=yes,cf_result=no)
826 AC_MSG_RESULT($cf_result)
827 if test "$cf_result" = yes ; then
828 CF_UPPER(cf_result,have_type_$1)
829 AC_DEFINE_UNQUOTED($cf_result,1,[Define to 1 if we have type $1])
831 AC_DEFINE_UNQUOTED($1,$2,[Define to appropriate type if $1 is not declared])
834 dnl ---------------------------------------------------------------------------
835 dnl CF_CURSES_CONFIG version: 2 updated: 2006/10/29 11:06:27
837 dnl Tie together the configure-script macros for curses. It may be ncurses,
838 dnl but unless asked, we do not make a special search for ncurses. However,
839 dnl still check for the ncurses version number, for use in other macros.
840 AC_DEFUN([CF_CURSES_CONFIG],
846 dnl ---------------------------------------------------------------------------
847 dnl CF_CURSES_CPPFLAGS version: 14 updated: 2021/01/02 09:31:20
848 dnl ------------------
849 dnl Look for the curses headers.
850 AC_DEFUN([CF_CURSES_CPPFLAGS],[
852 AC_CACHE_CHECK(for extra include directories,cf_cv_curses_incdir,[
853 cf_cv_curses_incdir=no
856 if test "x$cf_cv_screen" = "xcurses_colr"
858 test -d /usr/include/curses_colr && \
859 cf_cv_curses_incdir="-I/usr/include/curses_colr"
863 if test "x$cf_cv_screen" = "xcurses_5lib"
865 test -d /usr/5lib && \
866 test -d /usr/5include && \
867 cf_cv_curses_incdir="-I/usr/5include"
872 if test "$cf_cv_curses_incdir" != no
874 CF_APPEND_TEXT(CPPFLAGS,$cf_cv_curses_incdir)
880 dnl ---------------------------------------------------------------------------
881 dnl CF_CURSES_FUNCS version: 20 updated: 2020/12/31 20:19:42
883 dnl Curses-functions are a little complicated, since a lot of them are macros.
884 AC_DEFUN([CF_CURSES_FUNCS],
886 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
887 AC_REQUIRE([CF_XOPEN_CURSES])
888 AC_REQUIRE([CF_CURSES_TERM_H])
889 AC_REQUIRE([CF_CURSES_UNCTRL_H])
892 CF_UPPER(cf_tr_func,$cf_func)
893 AC_MSG_CHECKING(for ${cf_func})
894 CF_MSG_LOG(${cf_func})
895 AC_CACHE_VAL(cf_cv_func_$cf_func,[
896 eval cf_result='$ac_cv_func_'$cf_func
897 if test ".$cf_result" != ".no"; then
898 AC_TRY_LINK(CF__CURSES_HEAD,
901 long foo = (long)(&${cf_func});
902 fprintf(stderr, "testing linkage of $cf_func:%p\\n", (void *)foo);
903 if (foo + 1234L > 5678L)
904 ${cf_cv_main_return:-return}(foo != 0);
910 eval 'cf_cv_func_'$cf_func'="$cf_result"'
912 # use the computed/retrieved cache-value:
913 eval 'cf_result=$cf_cv_func_'$cf_func
914 AC_MSG_RESULT($cf_result)
915 if test "$cf_result" != no; then
916 AC_DEFINE_UNQUOTED(HAVE_${cf_tr_func})
920 dnl ---------------------------------------------------------------------------
921 dnl CF_CURSES_HEADER version: 5 updated: 2015/04/23 20:35:30
923 dnl Find a "curses" header file, e.g,. "curses.h", or one of the more common
924 dnl variations of ncurses' installs.
926 dnl $1 = ncurses when looking for ncurses, or is empty
927 AC_DEFUN([CF_CURSES_HEADER],[
928 AC_CACHE_CHECK(if we have identified curses headers,cf_cv_ncurses_header,[
929 cf_cv_ncurses_header=none
931 ncurses.h ifelse($1,,,[$1/ncurses.h]) \
932 curses.h ifelse($1,,,[$1/curses.h]) ifelse($1,,[ncurses/ncurses.h ncurses/curses.h])
934 AC_TRY_COMPILE([#include <${cf_header}>],
935 [initscr(); tgoto("?", 0,0)],
936 [cf_cv_ncurses_header=$cf_header; break],[])
940 if test "$cf_cv_ncurses_header" = none ; then
941 AC_MSG_ERROR(No curses header-files found)
944 # cheat, to get the right #define's for HAVE_NCURSES_H, etc.
945 AC_CHECK_HEADERS($cf_cv_ncurses_header)
947 dnl ---------------------------------------------------------------------------
948 dnl CF_CURSES_LIBS version: 44 updated: 2021/01/02 09:31:20
950 dnl Look for the curses libraries. Older curses implementations may require
951 dnl termcap/termlib to be linked as well. Call CF_CURSES_CPPFLAGS first.
952 AC_DEFUN([CF_CURSES_LIBS],[
954 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
955 AC_MSG_CHECKING(if we have identified curses libraries)
956 AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
957 [initscr(); tgoto("?", 0,0)],
960 AC_MSG_RESULT($cf_result)
962 if test "$cf_result" = no ; then
965 AC_CHECK_LIB(mytinfo,tgoto,[CF_ADD_LIBS(-lmytinfo)])
968 # Looking at HPUX 10.20, the Hcurses library is the oldest (1997), cur_colr
969 # next (1998), and xcurses "newer" (2000). There is no header file for
970 # Hcurses; the subdirectory curses_colr has the headers (curses.h and
971 # term.h) for cur_colr
972 if test "x$cf_cv_screen" = "xcurses_colr"
974 AC_CHECK_LIB(cur_colr,initscr,[
975 CF_ADD_LIBS(-lcur_colr)
976 ac_cv_func_initscr=yes
978 AC_CHECK_LIB(Hcurses,initscr,[
979 # HP's header uses __HP_CURSES, but user claims _HP_CURSES.
980 CF_ADD_LIBS(-lHcurses)
981 CF_APPEND_TEXT(CPPFLAGS,-D__HP_CURSES -D_HP_CURSES)
982 ac_cv_func_initscr=yes
987 case `arch 2>/dev/null` in
991 CF_ADD_LIBDIR(/lib64)
1002 if test "x$cf_cv_screen" = "xcurses_5lib"
1004 if test -d /usr/5lib ; then
1005 CF_ADD_LIBDIR(/usr/5lib)
1006 CF_ADD_LIBS(-lcurses -ltermcap)
1009 ac_cv_func_initscr=yes
1013 if test ".$ac_cv_func_initscr" != .yes ; then
1014 cf_save_LIBS="$LIBS"
1016 if test ".${cf_cv_ncurses_version:-no}" != .no
1018 cf_check_list="ncurses curses cursesX"
1020 cf_check_list="cursesX curses ncurses"
1023 # Check for library containing tgoto. Do this before curses library
1024 # because it may be needed to link the test-case for initscr.
1025 if test "x$cf_term_lib" = x
1027 AC_CHECK_FUNC(tgoto,[cf_term_lib=predefined],[
1028 for cf_term_lib in $cf_check_list otermcap termcap tinfo termlib unknown
1030 AC_CHECK_LIB($cf_term_lib,tgoto,[
1031 : "${cf_nculib_root:=$cf_term_lib}"
1038 # Check for library containing initscr
1039 test "$cf_term_lib" != predefined && test "$cf_term_lib" != unknown && LIBS="-l$cf_term_lib $cf_save_LIBS"
1040 if test "x$cf_curs_lib" = x
1042 for cf_curs_lib in $cf_check_list xcurses jcurses pdcurses unknown
1044 LIBS="-l$cf_curs_lib $cf_save_LIBS"
1045 if test "$cf_term_lib" = unknown || test "$cf_term_lib" = "$cf_curs_lib" ; then
1046 AC_MSG_CHECKING(if we can link with $cf_curs_lib library)
1047 AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
1051 AC_MSG_RESULT($cf_result)
1052 test "$cf_result" = yes && break
1053 elif test "$cf_curs_lib" = "$cf_term_lib" ; then
1055 elif test "$cf_term_lib" != predefined ; then
1056 AC_MSG_CHECKING(if we need both $cf_curs_lib and $cf_term_lib libraries)
1057 AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
1058 [initscr(); tgoto((char *)0, 0, 0);],
1061 LIBS="-l$cf_curs_lib -l$cf_term_lib $cf_save_LIBS"
1062 AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
1067 AC_MSG_RESULT($cf_result)
1068 test "$cf_result" != error && break
1072 test "$cf_curs_lib" = unknown && AC_MSG_ERROR(no curses library found)
1077 dnl ---------------------------------------------------------------------------
1078 dnl CF_CURSES_TERM_H version: 15 updated: 2021/01/02 09:31:20
1079 dnl ----------------
1080 dnl SVr4 curses should have term.h as well (where it puts the definitions of
1081 dnl the low-level interface). This may not be true in old/broken implementations,
1082 dnl as well as in misconfigured systems (e.g., gcc configured for Solaris 2.4
1083 dnl running with Solaris 2.5.1).
1084 AC_DEFUN([CF_CURSES_TERM_H],
1086 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
1088 AC_CACHE_CHECK(for term.h, cf_cv_term_header,[
1090 # If we found <ncurses/curses.h>, look for <ncurses/term.h>, but always look
1091 # for <term.h> if we do not find the variant.
1093 cf_header_list="term.h ncurses/term.h ncursesw/term.h"
1095 case "${cf_cv_ncurses_header:-curses.h}" in
1097 cf_header_item=`echo "${cf_cv_ncurses_header:-curses.h}" | sed -e 's%\..*%%' -e 's%/.*%/%'`term.h
1098 cf_header_list="$cf_header_item $cf_header_list"
1102 for cf_header in $cf_header_list
1105 #include <${cf_cv_ncurses_header:-curses.h}>
1106 #include <${cf_header}>],
1107 [WINDOW *x; (void)x],
1108 [cf_cv_term_header=$cf_header
1110 [cf_cv_term_header=no])
1113 case "$cf_cv_term_header" in
1115 # If curses is ncurses, some packagers still mess it up by trying to make
1116 # us use GNU termcap. This handles the most common case.
1117 for cf_header in ncurses/term.h ncursesw/term.h
1120 #include <${cf_cv_ncurses_header:-curses.h}>
1121 #ifdef NCURSES_VERSION
1122 #include <${cf_header}>
1126 [WINDOW *x; (void)x],
1127 [cf_cv_term_header=$cf_header
1129 [cf_cv_term_header=no])
1135 case "$cf_cv_term_header" in
1137 AC_DEFINE(HAVE_TERM_H,1,[Define to 1 if we have term.h])
1140 AC_DEFINE(HAVE_NCURSES_TERM_H,1,[Define to 1 if we have ncurses/term.h])
1143 AC_DEFINE(HAVE_NCURSESW_TERM_H,1,[Define to 1 if we have ncursesw/term.h])
1147 dnl ---------------------------------------------------------------------------
1148 dnl CF_CURSES_UNCTRL_H version: 8 updated: 2021/01/02 09:31:20
1149 dnl ------------------
1150 dnl Any X/Open curses implementation must have unctrl.h, but ncurses packages
1151 dnl may put it in a subdirectory (along with ncurses' other headers, of
1152 dnl course). Packages which put the headers in inconsistent locations are
1154 AC_DEFUN([CF_CURSES_UNCTRL_H],
1156 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
1158 AC_CACHE_CHECK(for unctrl.h, cf_cv_unctrl_header,[
1160 # If we found <ncurses/curses.h>, look for <ncurses/unctrl.h>, but always look
1161 # for <unctrl.h> if we do not find the variant.
1163 cf_header_list="unctrl.h ncurses/unctrl.h ncursesw/unctrl.h"
1165 case "${cf_cv_ncurses_header:-curses.h}" in
1167 cf_header_item=`echo "${cf_cv_ncurses_header:-curses.h}" | sed -e 's%\..*%%' -e 's%/.*%/%'`unctrl.h
1168 cf_header_list="$cf_header_item $cf_header_list"
1172 for cf_header in $cf_header_list
1175 #include <${cf_cv_ncurses_header:-curses.h}>
1176 #include <${cf_header}>],
1177 [WINDOW *x; (void)x],
1178 [cf_cv_unctrl_header=$cf_header
1180 [cf_cv_unctrl_header=no])
1184 case "$cf_cv_unctrl_header" in
1186 AC_MSG_WARN(unctrl.h header not found)
1190 case "$cf_cv_unctrl_header" in
1192 AC_DEFINE(HAVE_UNCTRL_H,1,[Define to 1 if we have unctrl.h])
1195 AC_DEFINE(HAVE_NCURSES_UNCTRL_H,1,[Define to 1 if we have ncurses/unctrl.h])
1198 AC_DEFINE(HAVE_NCURSESW_UNCTRL_H,1,[Define to 1 if we have ncursesw/unctrl.h])
1202 dnl ---------------------------------------------------------------------------
1203 dnl CF_CURSES_WACS_MAP version: 8 updated: 2021/01/04 19:45:09
1204 dnl ------------------
1205 dnl Check for likely values of wacs_map[].
1206 AC_DEFUN([CF_CURSES_WACS_MAP],
1208 AC_CACHE_CHECK(for wide alternate character set array, cf_cv_curses_wacs_map,[
1209 cf_cv_curses_wacs_map=unknown
1210 for name in wacs_map _wacs_map __wacs_map _nc_wacs _wacs_char
1213 #ifndef _XOPEN_SOURCE_EXTENDED
1214 #define _XOPEN_SOURCE_EXTENDED
1216 #include <${cf_cv_ncurses_header:-curses.h}>],
1217 [void *foo = &(${name}['k']); (void)foo],
1218 [cf_cv_curses_wacs_map=$name
1222 test "$cf_cv_curses_wacs_map" != unknown && AC_DEFINE_UNQUOTED(CURSES_WACS_ARRAY,$cf_cv_curses_wacs_map,[Define to name of (n)curses wide-character array])
1224 dnl ---------------------------------------------------------------------------
1225 dnl CF_CURSES_WACS_SYMBOLS version: 4 updated: 2021/01/04 19:45:09
1226 dnl ----------------------
1227 dnl Do a check to see if the WACS_xxx constants are defined compatibly with
1228 dnl X/Open Curses. In particular, NetBSD's implementation of the WACS_xxx
1229 dnl constants is broken since those constants do not point to cchar_t's.
1230 AC_DEFUN([CF_CURSES_WACS_SYMBOLS],
1232 AC_REQUIRE([CF_CURSES_WACS_MAP])
1234 AC_CACHE_CHECK(for wide alternate character constants, cf_cv_curses_wacs_symbols,[
1235 cf_cv_curses_wacs_symbols=no
1236 if test "$cf_cv_curses_wacs_map" != unknown
1239 #ifndef _XOPEN_SOURCE_EXTENDED
1240 #define _XOPEN_SOURCE_EXTENDED
1242 #include <${cf_cv_ncurses_header:-curses.h}>],
1243 [cchar_t *foo = WACS_PLUS;
1244 ${cf_cv_curses_wacs_map}['k'] = *WACS_PLUS; (void)foo],
1245 [cf_cv_curses_wacs_symbols=yes])
1248 #ifndef _XOPEN_SOURCE_EXTENDED
1249 #define _XOPEN_SOURCE_EXTENDED
1251 #include <${cf_cv_ncurses_header:-curses.h}>],
1252 [cchar_t *foo = WACS_PLUS; (void)foo],
1253 [cf_cv_curses_wacs_symbols=yes])
1257 test "$cf_cv_curses_wacs_symbols" != no && AC_DEFINE(CURSES_WACS_SYMBOLS,1,[Define to 1 if (n)curses supports wide-character WACS_ symbols])
1259 dnl ---------------------------------------------------------------------------
1260 dnl CF_DIRNAME version: 5 updated: 2020/12/31 20:19:42
1262 dnl "dirname" is not portable, so we fake it with a shell script.
1263 AC_DEFUN([CF_DIRNAME],[$1=`echo "$2" | sed -e 's%/[[^/]]*$%%'`])dnl
1264 dnl ---------------------------------------------------------------------------
1265 dnl CF_DISABLE_ECHO version: 13 updated: 2015/04/18 08:56:57
1267 dnl You can always use "make -n" to see the actual options, but it's hard to
1268 dnl pick out/analyze warning messages when the compile-line is long.
1271 dnl ECHO_LT - symbol to control if libtool is verbose
1272 dnl ECHO_LD - symbol to prefix "cc -o" lines
1273 dnl RULE_CC - symbol to put before implicit "cc -c" lines (e.g., .c.o)
1274 dnl SHOW_CC - symbol to put before explicit "cc -c" lines
1275 dnl ECHO_CC - symbol to put before any "cc" line
1277 AC_DEFUN([CF_DISABLE_ECHO],[
1278 AC_MSG_CHECKING(if you want to see long compiling messages)
1279 CF_ARG_DISABLE(echo,
1280 [ --disable-echo do not display "compiling" commands],
1283 ECHO_LD='@echo linking [$]@;'
1284 RULE_CC='@echo compiling [$]<'
1285 SHOW_CC='@echo compiling [$]@'
1294 AC_MSG_RESULT($enableval)
1301 dnl ---------------------------------------------------------------------------
1302 dnl CF_DISABLE_LEAKS version: 9 updated: 2021/04/03 16:41:50
1303 dnl ----------------
1304 dnl Combine no-leak checks with the libraries or tools that are used for the
1306 AC_DEFUN([CF_DISABLE_LEAKS],[
1308 AC_REQUIRE([CF_WITH_DMALLOC])
1309 AC_REQUIRE([CF_WITH_DBMALLOC])
1310 AC_REQUIRE([CF_WITH_VALGRIND])
1312 AC_MSG_CHECKING(if you want to perform memory-leak testing)
1313 AC_ARG_ENABLE(leaks,
1314 [ --disable-leaks test: free permanent memory, analyze leaks],
1315 [enable_leaks=$enableval],
1317 dnl with_no_leaks is more readable...
1318 if test "x$enable_leaks" = xno; then with_no_leaks=yes; else with_no_leaks=no; fi
1319 AC_MSG_RESULT($with_no_leaks)
1321 if test "$enable_leaks" = no ; then
1322 AC_DEFINE(NO_LEAKS,1,[Define to 1 if you want to perform memory-leak testing.])
1323 AC_DEFINE(YY_NO_LEAKS,1,[Define to 1 if you want to perform memory-leak testing.])
1326 dnl ---------------------------------------------------------------------------
1327 dnl CF_DISABLE_RPATH_HACK version: 3 updated: 2021/01/05 20:14:44
1328 dnl ---------------------
1329 dnl The rpath-hack makes it simpler to build programs, particularly with the
1330 dnl *BSD ports which may have essential libraries in unusual places. But it
1331 dnl can interfere with building an executable for the base system. Use this
1332 dnl option in that case.
1333 AC_DEFUN([CF_DISABLE_RPATH_HACK],
1335 AC_MSG_CHECKING(if rpath-hack should be disabled)
1336 CF_ARG_DISABLE(rpath-hack,
1337 [ --disable-rpath-hack don't add rpath options for additional libraries],
1338 [enable_rpath_hack=no],
1339 [enable_rpath_hack=yes])
1340 dnl TODO - drop cf_disable_rpath_hack
1341 if test "x$enable_rpath_hack" = xno; then cf_disable_rpath_hack=yes; else cf_disable_rpath_hack=no; fi
1342 AC_MSG_RESULT($cf_disable_rpath_hack)
1344 if test "$enable_rpath_hack" = yes ; then
1348 dnl ---------------------------------------------------------------------------
1349 dnl CF_ENABLE_STRING_HACKS version: 6 updated: 2021/01/05 19:23:48
1350 dnl ----------------------
1351 dnl On a few platforms, the compiler and/or loader nags with untruthful
1352 dnl comments stating that "most" uses of strcat/strcpy/sprintf are incorrect,
1353 dnl and implying that most uses of the recommended alternatives are correct.
1355 dnl Factually speaking, no one has actually counted the number of uses of these
1356 dnl functions versus the total of incorrect uses. Samples of a few thousand
1357 dnl instances are meaningless compared to the hundreds of millions of lines of
1358 dnl existing C code.
1360 dnl strlcat/strlcpy are (as of 2012) non-standard, and are available on some
1361 dnl platforms, in implementations of varying quality. Likewise, snprintf is
1362 dnl standard - but evolved through phases, and older implementations are likely
1363 dnl to yield surprising results, as documented in manpages on various systems.
1364 AC_DEFUN([CF_ENABLE_STRING_HACKS],
1366 AC_MSG_CHECKING(if you want to work around bogus compiler/loader warnings)
1367 AC_ARG_ENABLE(string-hacks,
1368 [ --enable-string-hacks work around bogus compiler/loader warnings],
1369 [enable_string_hacks=$enableval],
1370 [enable_string_hacks=no])
1371 AC_MSG_RESULT($enable_string_hacks)
1373 if test "x$enable_string_hacks" = "xyes"; then
1374 AC_DEFINE(USE_STRING_HACKS,1,[Define to 1 to work around bogus compiler/loader warnings])
1375 AC_MSG_WARN(enabling string-hacks to work around bogus compiler/loader warnings)
1376 AC_CHECK_FUNC(strlcat,[
1377 AC_DEFINE(HAVE_STRLCAT,1,[Define to 1 if we have strlcat function])
1379 AC_CHECK_LIB(bsd,strlcat,[
1381 AC_CHECK_HEADERS(bsd/string.h)
1382 AC_DEFINE(HAVE_STRLCAT,1,[Define to 1 if we have strlcat function])
1385 AC_CHECK_FUNCS( strlcpy snprintf )
1388 dnl ---------------------------------------------------------------------------
1389 dnl CF_ENABLE_WARNINGS version: 9 updated: 2021/01/05 19:40:50
1390 dnl ------------------
1391 dnl Configure-option to enable gcc warnings
1393 dnl $1 = extra options to add, if supported
1394 dnl $2 = option for checking attributes. By default, this is done when
1395 dnl warnings are enabled. For other values:
1396 dnl yes: always do this, e.g., to use in generated library-headers
1397 dnl no: never do this
1398 AC_DEFUN([CF_ENABLE_WARNINGS],[
1399 if test "$GCC" = yes || test "$GXX" = yes
1401 CF_FIX_WARNINGS(CFLAGS)
1402 CF_FIX_WARNINGS(CPPFLAGS)
1403 CF_FIX_WARNINGS(LDFLAGS)
1404 AC_MSG_CHECKING(if you want to turn on gcc warnings)
1405 CF_ARG_ENABLE(warnings,
1406 [ --enable-warnings test: turn on gcc compiler warnings],
1407 [enable_warnings=yes],
1408 [enable_warnings=no])
1409 AC_MSG_RESULT($enable_warnings)
1410 if test "$enable_warnings" = "yes"
1412 ifelse($2,,[CF_GCC_ATTRIBUTES])
1415 ifelse($2,yes,[CF_GCC_ATTRIBUTES])
1418 dnl ---------------------------------------------------------------------------
1419 dnl CF_FIND_LIBRARY version: 11 updated: 2021/01/02 09:31:20
1421 dnl Look for a non-standard library, given parameters for AC_TRY_LINK. We
1422 dnl prefer a standard location, and use -L options only if we do not find the
1423 dnl library in the standard library location(s).
1424 dnl $1 = library name
1425 dnl $2 = library class, usually the same as library name
1427 dnl $4 = code fragment to compile/link
1428 dnl $5 = corresponding function-name
1429 dnl $6 = flag, nonnull if failure should not cause an error-exit
1431 dnl Sets the variable "$cf_libdir" as a side-effect, so we can see if we had
1432 dnl to use a -L option.
1433 AC_DEFUN([CF_FIND_LIBRARY],
1435 eval 'cf_cv_have_lib_'"$1"'=no'
1438 eval 'cf_cv_have_lib_'"$1"'=yes',[
1439 cf_save_LIBS="$LIBS"
1440 AC_MSG_CHECKING(for $5 in -l$1)
1442 AC_TRY_LINK([$3],[$4],
1444 eval 'cf_cv_have_lib_'"$1"'=yes'
1447 CF_LIBRARY_PATH(cf_search,$2)
1448 for cf_libdir in $cf_search
1450 AC_MSG_CHECKING(for -l$1 in $cf_libdir)
1451 LIBS="-L$cf_libdir -l$1 $cf_save_LIBS"
1452 AC_TRY_LINK([$3],[$4],
1454 eval 'cf_cv_have_lib_'"$1"'=yes'
1457 LIBS="$cf_save_LIBS"])
1461 eval 'cf_found_library="[$]cf_cv_have_lib_'"$1"\"
1463 if test "$cf_found_library" = no ; then
1464 AC_MSG_ERROR(Cannot link $1 library)
1468 dnl ---------------------------------------------------------------------------
1469 dnl CF_FIND_LINKAGE version: 22 updated: 2020/12/31 20:19:42
1471 dnl Find a library (specifically the linkage used in the code fragment),
1472 dnl searching for it if it is not already in the library path.
1473 dnl See also CF_ADD_SEARCHPATH.
1475 dnl Parameters (4-on are optional):
1476 dnl $1 = headers for library entrypoint
1477 dnl $2 = code fragment for library entrypoint
1478 dnl $3 = the library name without the "-l" option or ".so" suffix.
1479 dnl $4 = action to perform if successful (default: update CPPFLAGS, etc)
1480 dnl $5 = action to perform if not successful
1481 dnl $6 = module name, if not the same as the library name
1482 dnl $7 = extra libraries
1484 dnl Sets these variables:
1485 dnl $cf_cv_find_linkage_$3 - yes/no according to whether linkage is found
1486 dnl $cf_cv_header_path_$3 - include-directory if needed
1487 dnl $cf_cv_library_path_$3 - library-directory if needed
1488 dnl $cf_cv_library_file_$3 - library-file if needed, e.g., -l$3
1489 AC_DEFUN([CF_FIND_LINKAGE],[
1491 # If the linkage is not already in the $CPPFLAGS/$LDFLAGS configuration, these
1492 # will be set on completion of the AC_TRY_LINK below.
1493 cf_cv_header_path_$3=
1494 cf_cv_library_path_$3=
1496 CF_MSG_LOG([Starting [FIND_LINKAGE]($3,$6)])
1498 cf_save_LIBS="$LIBS"
1500 AC_TRY_LINK([$1],[$2],[
1501 cf_cv_find_linkage_$3=yes
1502 cf_cv_header_path_$3=/usr/include
1503 cf_cv_library_path_$3=/usr/lib
1506 LIBS="-l$3 $7 $cf_save_LIBS"
1508 AC_TRY_LINK([$1],[$2],[
1509 cf_cv_find_linkage_$3=yes
1510 cf_cv_header_path_$3=/usr/include
1511 cf_cv_library_path_$3=/usr/lib
1512 cf_cv_library_file_$3="-l$3"
1514 cf_cv_find_linkage_$3=no
1515 LIBS="$cf_save_LIBS"
1517 CF_VERBOSE(find linkage for $3 library)
1518 CF_MSG_LOG([Searching for headers in [FIND_LINKAGE]($3,$6)])
1520 cf_save_CPPFLAGS="$CPPFLAGS"
1521 cf_test_CPPFLAGS="$CPPFLAGS"
1523 CF_HEADER_PATH(cf_search,ifelse([$6],,[$3],[$6]))
1524 for cf_cv_header_path_$3 in $cf_search
1526 if test -d "$cf_cv_header_path_$3" ; then
1527 CF_VERBOSE(... testing $cf_cv_header_path_$3)
1528 CPPFLAGS="$cf_save_CPPFLAGS"
1529 CF_APPEND_TEXT(CPPFLAGS,-I$cf_cv_header_path_$3)
1530 AC_TRY_COMPILE([$1],[$2],[
1531 CF_VERBOSE(... found $3 headers in $cf_cv_header_path_$3)
1532 cf_cv_find_linkage_$3=maybe
1533 cf_test_CPPFLAGS="$CPPFLAGS"
1535 CPPFLAGS="$cf_save_CPPFLAGS"
1540 if test "$cf_cv_find_linkage_$3" = maybe ; then
1542 CF_MSG_LOG([Searching for $3 library in [FIND_LINKAGE]($3,$6)])
1544 cf_save_LIBS="$LIBS"
1545 cf_save_LDFLAGS="$LDFLAGS"
1548 CPPFLAGS="$cf_test_CPPFLAGS"
1549 LIBS="-l$3 $7 $cf_save_LIBS"
1550 AC_TRY_LINK([$1],[$2],[
1551 CF_VERBOSE(... found $3 library in system)
1552 cf_cv_find_linkage_$3=yes])
1553 CPPFLAGS="$cf_save_CPPFLAGS"
1554 LIBS="$cf_save_LIBS"
1557 if test "$cf_cv_find_linkage_$3" != yes ; then
1558 CF_LIBRARY_PATH(cf_search,$3)
1559 for cf_cv_library_path_$3 in $cf_search
1561 if test -d "$cf_cv_library_path_$3" ; then
1562 CF_VERBOSE(... testing $cf_cv_library_path_$3)
1563 CPPFLAGS="$cf_test_CPPFLAGS"
1564 LIBS="-l$3 $7 $cf_save_LIBS"
1565 LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_$3"
1566 AC_TRY_LINK([$1],[$2],[
1567 CF_VERBOSE(... found $3 library in $cf_cv_library_path_$3)
1568 cf_cv_find_linkage_$3=yes
1569 cf_cv_library_file_$3="-l$3"
1571 CPPFLAGS="$cf_save_CPPFLAGS"
1572 LIBS="$cf_save_LIBS"
1573 LDFLAGS="$cf_save_LDFLAGS"
1577 CPPFLAGS="$cf_save_CPPFLAGS"
1578 LDFLAGS="$cf_save_LDFLAGS"
1582 cf_cv_find_linkage_$3=no
1587 LIBS="$cf_save_LIBS"
1589 if test "$cf_cv_find_linkage_$3" = yes ; then
1591 CF_ADD_INCDIR($cf_cv_header_path_$3)
1592 CF_ADD_LIBDIR($cf_cv_library_path_$3)
1596 ifelse([$5],,AC_MSG_WARN(Cannot find $3 library),[$5])
1599 dnl ---------------------------------------------------------------------------
1600 dnl CF_FIX_WARNINGS version: 3 updated: 2020/12/31 18:40:20
1602 dnl Warning flags do not belong in CFLAGS, CPPFLAGS, etc. Any of gcc's
1603 dnl "-Werror" flags can interfere with configure-checks. Those go into
1606 dnl $1 = variable name to repair
1607 define([CF_FIX_WARNINGS],[
1608 if test "$GCC" = yes || test "$GXX" = yes
1612 CF_VERBOSE(repairing $1: [$]$1)
1614 for cf_temp_scan in [$]$1
1616 case "x$cf_temp_scan" in
1618 CF_APPEND_TEXT(EXTRA_CFLAGS,$cf_temp_scan)
1621 CF_APPEND_TEXT(cf_temp_flags,$cf_temp_scan)
1626 CF_VERBOSE(... fixed [$]$1)
1627 CF_VERBOSE(... extra $EXTRA_CFLAGS)
1631 AC_SUBST(EXTRA_CFLAGS)
1633 dnl ---------------------------------------------------------------------------
1634 dnl CF_FUNC_CURSES_VERSION version: 8 updated: 2021/01/02 09:31:20
1635 dnl ----------------------
1636 dnl Solaris has a data item 'curses_version', which confuses AC_CHECK_FUNCS.
1637 dnl It's a character string "SVR4", not documented.
1638 AC_DEFUN([CF_FUNC_CURSES_VERSION],
1640 AC_CACHE_CHECK(for function curses_version, cf_cv_func_curses_version,[
1642 #include <${cf_cv_ncurses_header:-curses.h}>
1646 sprintf(temp, "%s\\n", curses_version());
1647 ${cf_cv_main_return:-return}(0);
1649 ,[cf_cv_func_curses_version=yes]
1650 ,[cf_cv_func_curses_version=no]
1651 ,[cf_cv_func_curses_version=unknown])
1653 test "$cf_cv_func_curses_version" = yes && AC_DEFINE(HAVE_CURSES_VERSION,1,[Define to 1 if we have curses_version function])
1655 dnl ---------------------------------------------------------------------------
1656 dnl CF_FUNC_OPENPTY version: 6 updated: 2021/01/01 13:31:04
1658 dnl Check for openpty() function, along with <pty.h> header. It may need the
1659 dnl "util" library as well.
1660 AC_DEFUN([CF_FUNC_OPENPTY],
1662 AC_CHECK_LIB(util,openpty,cf_cv_lib_util=yes,cf_cv_lib_util=no)
1663 AC_CACHE_CHECK(for openpty header,cf_cv_func_openpty,[
1664 cf_save_LIBS="$LIBS"
1665 test "$cf_cv_lib_util" = yes && { CF_ADD_LIB(util) }
1666 for cf_header in pty.h libutil.h util.h
1669 #include <$cf_header>
1671 int x = openpty((int *)0, (int *)0, (char *)0,
1672 (struct termios *)0, (struct winsize *)0);
1674 cf_cv_func_openpty=$cf_header
1677 cf_cv_func_openpty=no
1680 LIBS="$cf_save_LIBS"
1683 dnl ---------------------------------------------------------------------------
1684 dnl CF_GCC_ATTRIBUTES version: 24 updated: 2021/03/20 12:00:25
1685 dnl -----------------
1686 dnl Test for availability of useful gcc __attribute__ directives to quiet
1687 dnl compiler warnings. Though useful, not all are supported -- and contrary
1688 dnl to documentation, unrecognized directives cause older compilers to barf.
1689 AC_DEFUN([CF_GCC_ATTRIBUTES],
1690 [AC_REQUIRE([AC_PROG_FGREP])dnl
1691 AC_REQUIRE([CF_C11_NORETURN])dnl
1693 if test "$GCC" = yes || test "$GXX" = yes
1695 cat > conftest.i <<EOF
1697 #define GCC_PRINTF 0
1702 #ifndef GCC_NORETURN
1703 #define GCC_NORETURN /* nothing */
1706 #define GCC_UNUSED /* nothing */
1709 if test "$GCC" = yes
1711 AC_CHECKING([for $CC __attribute__ directives])
1712 cat > "conftest.$ac_ext" <<EOF
1713 #line __oline__ "${as_me:-configure}"
1714 #include "confdefs.h"
1715 #include "conftest.h"
1716 #include "conftest.i"
1718 #define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
1720 #define GCC_PRINTFLIKE(fmt,var) /*nothing*/
1723 #define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
1725 #define GCC_SCANFLIKE(fmt,var) /*nothing*/
1727 extern void wow(char *,...) GCC_SCANFLIKE(1,2);
1728 extern GCC_NORETURN void oops(char *,...) GCC_PRINTFLIKE(1,2);
1729 extern GCC_NORETURN void foo(void);
1730 int main(int argc GCC_UNUSED, char *argv[[]] GCC_UNUSED) { (void)argc; (void)argv; return 0; }
1732 cf_printf_attribute=no
1733 cf_scanf_attribute=no
1734 for cf_attribute in scanf printf unused noreturn
1736 CF_UPPER(cf_ATTRIBUTE,$cf_attribute)
1737 cf_directive="__attribute__(($cf_attribute))"
1738 echo "checking for $CC $cf_directive" 1>&AC_FD_CC
1740 case "$cf_attribute" in
1742 cf_printf_attribute=yes
1743 cat >conftest.h <<EOF
1744 #define GCC_$cf_ATTRIBUTE 1
1748 cf_scanf_attribute=yes
1749 cat >conftest.h <<EOF
1750 #define GCC_$cf_ATTRIBUTE 1
1754 cat >conftest.h <<EOF
1755 #define GCC_$cf_ATTRIBUTE $cf_directive
1760 if AC_TRY_EVAL(ac_compile); then
1761 test -n "$verbose" && AC_MSG_RESULT(... $cf_attribute)
1762 cat conftest.h >>confdefs.h
1763 case "$cf_attribute" in
1765 AC_DEFINE_UNQUOTED(GCC_NORETURN,$cf_directive,[Define to noreturn-attribute for gcc])
1768 cf_value='/* nothing */'
1769 if test "$cf_printf_attribute" != no ; then
1770 cf_value='__attribute__((format(printf,fmt,var)))'
1771 AC_DEFINE(GCC_PRINTF,1,[Define to 1 if the compiler supports gcc-like printf attribute.])
1773 AC_DEFINE_UNQUOTED(GCC_PRINTFLIKE(fmt,var),$cf_value,[Define to printf-attribute for gcc])
1776 cf_value='/* nothing */'
1777 if test "$cf_scanf_attribute" != no ; then
1778 cf_value='__attribute__((format(scanf,fmt,var)))'
1779 AC_DEFINE(GCC_SCANF,1,[Define to 1 if the compiler supports gcc-like scanf attribute.])
1781 AC_DEFINE_UNQUOTED(GCC_SCANFLIKE(fmt,var),$cf_value,[Define to sscanf-attribute for gcc])
1784 AC_DEFINE_UNQUOTED(GCC_UNUSED,$cf_directive,[Define to unused-attribute for gcc])
1790 ${FGREP-fgrep} define conftest.i >>confdefs.h
1795 dnl ---------------------------------------------------------------------------
1796 dnl CF_GCC_VERSION version: 8 updated: 2019/09/07 13:38:36
1798 dnl Find version of gcc, and (because icc/clang pretend to be gcc without being
1799 dnl compatible), attempt to determine if icc/clang is actually used.
1800 AC_DEFUN([CF_GCC_VERSION],[
1801 AC_REQUIRE([AC_PROG_CC])
1803 if test "$GCC" = yes ; then
1804 AC_MSG_CHECKING(version of $CC)
1805 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.]].*//'`"
1806 test -z "$GCC_VERSION" && GCC_VERSION=unknown
1807 AC_MSG_RESULT($GCC_VERSION)
1809 CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
1810 CF_CLANG_COMPILER(GCC,CLANG_COMPILER,CFLAGS)
1812 dnl ---------------------------------------------------------------------------
1813 dnl CF_GCC_WARNINGS version: 41 updated: 2021/01/01 16:53:59
1815 dnl Check if the compiler supports useful warning options. There's a few that
1816 dnl we don't use, simply because they're too noisy:
1818 dnl -Wconversion (useful in older versions of gcc, but not in gcc 2.7.x)
1819 dnl -Winline (usually not worthwhile)
1820 dnl -Wredundant-decls (system headers make this too noisy)
1821 dnl -Wtraditional (combines too many unrelated messages, only a few useful)
1822 dnl -Wwrite-strings (too noisy, but should review occasionally). This
1823 dnl is enabled for ncurses using "--enable-const".
1827 dnl $1 is an optional list of gcc warning flags that a particular
1828 dnl application might want to use, e.g., "no-unused" for
1831 dnl If $with_ext_const is "yes", add a check for -Wwrite-strings
1833 AC_DEFUN([CF_GCC_WARNINGS],
1835 AC_REQUIRE([CF_GCC_VERSION])
1836 if test "x$have_x" = xyes; then CF_CONST_X_STRING fi
1837 cat > "conftest.$ac_ext" <<EOF
1838 #line __oline__ "${as_me:-configure}"
1839 int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
1841 if test "$INTEL_COMPILER" = yes
1843 # The "-wdXXX" options suppress warnings:
1844 # remark #1419: external declaration in primary source file
1845 # remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
1846 # remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
1847 # remark #193: zero used for undefined preprocessing identifier
1848 # remark #593: variable "curs_sb_left_arrow" was set but never used
1849 # remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
1850 # remark #869: parameter "tw" was never referenced
1851 # remark #981: operands are evaluated in unspecified order
1852 # warning #279: controlling expression is constant
1854 AC_CHECKING([for $CC warning options])
1855 cf_save_CFLAGS="$CFLAGS"
1856 EXTRA_CFLAGS="$EXTRA_CFLAGS -Wall"
1868 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
1869 if AC_TRY_EVAL(ac_compile); then
1870 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1871 EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
1874 CFLAGS="$cf_save_CFLAGS"
1875 elif test "$GCC" = yes && test "$GCC_VERSION" != "unknown"
1877 AC_CHECKING([for $CC warning options])
1878 cf_save_CFLAGS="$CFLAGS"
1880 test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
1881 cf_gcc_warnings="Wignored-qualifiers Wlogical-op Wvarargs"
1882 test "x$CLANG_COMPILER" = xyes && cf_gcc_warnings=
1883 for cf_opt in W Wall \
1884 Wbad-function-cast \
1887 Wdeclaration-after-statement \
1890 Wmissing-declarations \
1891 Wmissing-prototypes \
1895 Wstrict-prototypes \
1896 Wundef Wno-inline $cf_gcc_warnings $cf_warn_CONST $1
1898 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
1899 if AC_TRY_EVAL(ac_compile); then
1900 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1903 case "$GCC_VERSION" in
1905 CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
1910 case "$GCC_VERSION" in
1912 CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
1917 EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
1920 CFLAGS="$cf_save_CFLAGS"
1924 AC_SUBST(EXTRA_CFLAGS)
1926 dnl ---------------------------------------------------------------------------
1927 dnl CF_GETOPT_HEADER version: 7 updated: 2021/01/01 13:31:04
1928 dnl ----------------
1929 dnl Check for getopt's variables which are commonly defined in stdlib.h,
1930 dnl unistd.h or (nonstandard) in getopt.h
1931 AC_DEFUN([CF_GETOPT_HEADER],
1933 AC_HAVE_HEADERS(unistd.h getopt.h)
1934 AC_CACHE_CHECK(for header declaring getopt variables,cf_cv_getopt_header,[
1935 cf_cv_getopt_header=none
1936 for cf_header in stdio.h stdlib.h unistd.h getopt.h
1939 #include <$cf_header>],
1940 [int x = optind; char *y = optarg],
1941 [cf_cv_getopt_header=$cf_header
1945 if test "$cf_cv_getopt_header" != none ; then
1946 AC_DEFINE(HAVE_GETOPT_HEADER,1,[Define to 1 if getopt variables are declared in header])
1948 if test "$cf_cv_getopt_header" = getopt.h ; then
1949 AC_DEFINE(NEED_GETOPT_H,1,[Define to 1 if we must include getopt.h])
1952 dnl ---------------------------------------------------------------------------
1953 dnl CF_GNU_SOURCE version: 10 updated: 2018/12/10 20:09:41
1955 dnl Check if we must define _GNU_SOURCE to get a reasonable value for
1956 dnl _XOPEN_SOURCE, upon which many POSIX definitions depend. This is a defect
1957 dnl (or misfeature) of glibc2, which breaks portability of many applications,
1958 dnl since it is interwoven with GNU extensions.
1960 dnl Well, yes we could work around it...
1963 dnl $1 is the nominal value for _XOPEN_SOURCE
1964 AC_DEFUN([CF_GNU_SOURCE],
1966 cf_gnu_xopen_source=ifelse($1,,500,$1)
1968 AC_CACHE_CHECK(if this is the GNU C library,cf_cv_gnu_library,[
1969 AC_TRY_COMPILE([#include <sys/types.h>],[
1970 #if __GLIBC__ > 0 && __GLIBC_MINOR__ >= 0
1972 #elif __NEWLIB__ > 0 && __NEWLIB_MINOR__ >= 0
1975 # error not GNU C library
1977 [cf_cv_gnu_library=yes],
1978 [cf_cv_gnu_library=no])
1981 if test x$cf_cv_gnu_library = xyes; then
1983 # With glibc 2.19 (13 years after this check was begun), _DEFAULT_SOURCE
1984 # was changed to help a little. newlib incorporated the change about 4
1986 AC_CACHE_CHECK(if _DEFAULT_SOURCE can be used as a basis,cf_cv_gnu_library_219,[
1988 CF_APPEND_TEXT(CPPFLAGS,-D_DEFAULT_SOURCE)
1989 AC_TRY_COMPILE([#include <sys/types.h>],[
1990 #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 19) || (__GLIBC__ > 2)
1992 #elif (__NEWLIB__ == 2 && __NEWLIB_MINOR__ >= 4) || (__GLIBC__ > 3)
1995 # error GNU C library __GLIBC__.__GLIBC_MINOR__ is too old
1997 [cf_cv_gnu_library_219=yes],
1998 [cf_cv_gnu_library_219=no])
2002 if test "x$cf_cv_gnu_library_219" = xyes; then
2004 AC_CACHE_CHECK(if _XOPEN_SOURCE=$cf_gnu_xopen_source works with _DEFAULT_SOURCE,cf_cv_gnu_dftsrc_219,[
2005 CF_ADD_CFLAGS(-D_DEFAULT_SOURCE -D_XOPEN_SOURCE=$cf_gnu_xopen_source)
2008 #include <sys/types.h>
2010 #if (_XOPEN_SOURCE >= $cf_gnu_xopen_source) && (MB_LEN_MAX > 1)
2013 # error GNU C library is too old
2015 [cf_cv_gnu_dftsrc_219=yes],
2016 [cf_cv_gnu_dftsrc_219=no])
2018 test "x$cf_cv_gnu_dftsrc_219" = "xyes" || CPPFLAGS="$cf_save"
2020 cf_cv_gnu_dftsrc_219=maybe
2023 if test "x$cf_cv_gnu_dftsrc_219" != xyes; then
2025 AC_CACHE_CHECK(if we must define _GNU_SOURCE,cf_cv_gnu_source,[
2026 AC_TRY_COMPILE([#include <sys/types.h>],[
2027 #ifndef _XOPEN_SOURCE
2028 #error expected _XOPEN_SOURCE to be defined
2030 [cf_cv_gnu_source=no],
2031 [cf_save="$CPPFLAGS"
2032 CF_ADD_CFLAGS(-D_GNU_SOURCE)
2033 AC_TRY_COMPILE([#include <sys/types.h>],[
2034 #ifdef _XOPEN_SOURCE
2035 #error expected _XOPEN_SOURCE to be undefined
2037 [cf_cv_gnu_source=no],
2038 [cf_cv_gnu_source=yes])
2043 if test "$cf_cv_gnu_source" = yes
2045 AC_CACHE_CHECK(if we should also define _DEFAULT_SOURCE,cf_cv_default_source,[
2046 CF_APPEND_TEXT(CPPFLAGS,-D_GNU_SOURCE)
2047 AC_TRY_COMPILE([#include <sys/types.h>],[
2048 #ifdef _DEFAULT_SOURCE
2049 #error expected _DEFAULT_SOURCE to be undefined
2051 [cf_cv_default_source=no],
2052 [cf_cv_default_source=yes])
2054 if test "$cf_cv_default_source" = yes
2056 CF_APPEND_TEXT(CPPFLAGS,-D_DEFAULT_SOURCE)
2063 dnl ---------------------------------------------------------------------------
2064 dnl CF_HEADER_PATH version: 15 updated: 2021/01/01 13:31:04
2066 dnl Construct a search-list of directories for a nonstandard header-file
2069 dnl $1 = the variable to return as result
2070 dnl $2 = the package name
2071 AC_DEFUN([CF_HEADER_PATH],
2075 # collect the current set of include-directories from compiler flags
2076 cf_header_path_list=""
2077 if test -n "${CFLAGS}${CPPFLAGS}" ; then
2078 for cf_header_path in $CPPFLAGS $CFLAGS
2080 case "$cf_header_path" in
2082 cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'`
2083 CF_ADD_SUBDIR_PATH($1,$2,include,$cf_header_path,NONE)
2084 cf_header_path_list="$cf_header_path_list [$]$1"
2090 # add the variations for the package we are looking for
2091 CF_SUBDIR_PATH($1,$2,include)
2093 test "$includedir" != NONE && \
2094 test "$includedir" != "/usr/include" && \
2095 test -d "$includedir" && {
2096 test -d "$includedir" && $1="[$]$1 $includedir"
2097 test -d "$includedir/$2" && $1="[$]$1 $includedir/$2"
2100 test "$oldincludedir" != NONE && \
2101 test "$oldincludedir" != "/usr/include" && \
2102 test -d "$oldincludedir" && {
2103 test -d "$oldincludedir" && $1="[$]$1 $oldincludedir"
2104 test -d "$oldincludedir/$2" && $1="[$]$1 $oldincludedir/$2"
2107 $1="[$]$1 $cf_header_path_list"
2109 dnl ---------------------------------------------------------------------------
2110 dnl CF_HELP_MESSAGE version: 4 updated: 2019/12/31 08:53:54
2112 dnl Insert text into the help-message, for readability, from AC_ARG_WITH.
2113 AC_DEFUN([CF_HELP_MESSAGE],
2114 [CF_ACVERSION_CHECK(2.53,[],[
2115 AC_DIVERT_HELP($1)])dnl
2117 dnl ---------------------------------------------------------------------------
2118 dnl CF_INHERIT_SCRIPT version: 2 updated: 2003/03/01 23:50:42
2119 dnl -----------------
2120 dnl If we do not have a given script, look for it in the parent directory.
2121 AC_DEFUN([CF_INHERIT_SCRIPT],
2123 test -f $1 || ( test -f ../$1 && cp ../$1 ./ )
2125 dnl ---------------------------------------------------------------------------
2126 dnl CF_INSTALL_OPTS version: 2 updated: 2018/08/18 12:19:21
2128 dnl prompt for/fill-in useful install-program options
2129 AC_DEFUN([CF_INSTALL_OPTS],
2135 dnl ---------------------------------------------------------------------------
2136 dnl CF_INSTALL_OPT_O version: 3 updated: 2020/12/31 20:19:42
2137 dnl ----------------
2138 dnl Almost all "install" programs default to the current user's ownership.
2139 dnl Almost - MINIX is an exception.
2140 AC_DEFUN([CF_INSTALL_OPT_O],
2142 AC_MSG_CHECKING(if install needs to be told about ownership)
2143 case `$ac_config_guess` in
2152 AC_MSG_RESULT($with_install_o)
2153 if test "x$with_install_o" = xyes
2155 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'`"
2160 AC_SUBST(INSTALL_OPT_O)
2162 dnl ---------------------------------------------------------------------------
2163 dnl CF_INSTALL_OPT_P version: 3 updated: 2021/01/01 13:31:04
2164 dnl ----------------
2165 dnl Some install-programs accept a "-p" option to preserve file modification
2166 dnl timestamps. That can be useful as an install option, as well as a way to
2167 dnl avoid the need for ranlib after copying a static archive.
2168 AC_DEFUN([CF_INSTALL_OPT_P],
2170 : "${INSTALL:=install}"
2171 AC_CACHE_CHECK(if install accepts -p option, cf_cv_install_p,[
2176 if $INSTALL -p conftest.in conftest.out 2>/dev/null
2178 if test -f conftest.out/conftest.in
2180 test conftest.in -nt conftest.out/conftest.in 2>conftest.err && \
2181 test conftest.out/conftest.in -nt conftest.in 2>conftest.err
2182 if test -s conftest.err
2197 dnl ---------------------------------------------------------------------------
2198 dnl CF_INSTALL_OPT_S version: 3 updated: 2021/01/05 19:23:48
2199 dnl ----------------
2200 dnl By default, we should strip executables which are installed, but leave the
2201 dnl ability to suppress that for unit-testing.
2202 AC_DEFUN([CF_INSTALL_OPT_S],
2204 AC_MSG_CHECKING(if you want to install stripped executables)
2205 CF_ARG_DISABLE(stripping,
2206 [ --disable-stripping do not strip (debug info) installed executables],
2207 [enable_stripping=no],
2208 [enable_stripping=yes])
2209 AC_MSG_RESULT($enable_stripping)
2211 if test "$enable_stripping" = yes
2217 AC_SUBST(INSTALL_OPT_S)
2219 dnl ---------------------------------------------------------------------------
2220 dnl CF_INTEL_COMPILER version: 8 updated: 2021/01/01 16:53:59
2221 dnl -----------------
2222 dnl Check if the given compiler is really the Intel compiler for Linux. It
2223 dnl tries to imitate gcc, but does not return an error when it finds a mismatch
2224 dnl between prototypes, e.g., as exercised by CF_MISSING_CHECK.
2226 dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
2227 dnl ensure that it is not mistaken for gcc/g++. It is normally invoked from
2228 dnl the wrappers for gcc and g++ warnings.
2230 dnl $1 = GCC (default) or GXX
2231 dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS
2232 dnl $3 = CFLAGS (default) or CXXFLAGS
2233 AC_DEFUN([CF_INTEL_COMPILER],[
2234 AC_REQUIRE([AC_CANONICAL_HOST])
2235 ifelse([$2],,INTEL_COMPILER,[$2])=no
2237 if test "$ifelse([$1],,[$1],GCC)" = yes ; then
2240 AC_MSG_CHECKING(if this is really Intel ifelse([$1],GXX,C++,C) compiler)
2241 cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
2242 ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -no-gcc"
2244 #ifdef __INTEL_COMPILER
2248 ],[ifelse([$2],,INTEL_COMPILER,[$2])=yes
2249 cf_save_CFLAGS="$cf_save_CFLAGS -we147"
2251 ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
2252 AC_MSG_RESULT($ifelse([$2],,INTEL_COMPILER,[$2]))
2257 dnl ---------------------------------------------------------------------------
2258 dnl CF_LD_RPATH_OPT version: 9 updated: 2021/01/01 13:31:04
2260 dnl For the given system and compiler, find the compiler flags to pass to the
2261 dnl loader to use the "rpath" feature.
2262 AC_DEFUN([CF_LD_RPATH_OPT],
2264 AC_REQUIRE([CF_CHECK_CACHE])
2267 if test "x$cf_cv_enable_rpath" != xno
2269 AC_MSG_CHECKING(for an rpath option)
2270 case "$cf_cv_system_name" in
2272 if test "$GCC" = yes; then
2273 LD_RPATH_OPT="-Wl,-rpath,"
2275 LD_RPATH_OPT="-rpath "
2278 (linux*|gnu*|k*bsd*-gnu|freebsd*)
2279 LD_RPATH_OPT="-Wl,-rpath,"
2281 (openbsd[[2-9]].*|mirbsd*)
2282 LD_RPATH_OPT="-Wl,-rpath,"
2285 LD_RPATH_OPT="-rpath "
2288 LD_RPATH_OPT="-Wl,-rpath,"
2291 LD_RPATH_OPT="-rpath "
2299 AC_MSG_RESULT($LD_RPATH_OPT)
2301 case "x$LD_RPATH_OPT" in
2303 AC_MSG_CHECKING(if we need a space after rpath option)
2304 cf_save_LIBS="$LIBS"
2305 CF_ADD_LIBS(${LD_RPATH_OPT}$libdir)
2306 AC_TRY_LINK(, , cf_rpath_space=no, cf_rpath_space=yes)
2307 LIBS="$cf_save_LIBS"
2308 AC_MSG_RESULT($cf_rpath_space)
2309 test "$cf_rpath_space" = yes && LD_RPATH_OPT="$LD_RPATH_OPT "
2314 dnl ---------------------------------------------------------------------------
2315 dnl CF_LIBRARY_PATH version: 11 updated: 2021/01/01 13:31:04
2317 dnl Construct a search-list of directories for a nonstandard library-file
2320 dnl $1 = the variable to return as result
2321 dnl $2 = the package name
2322 AC_DEFUN([CF_LIBRARY_PATH],
2325 cf_library_path_list=""
2326 if test -n "${LDFLAGS}${LIBS}" ; then
2327 for cf_library_path in $LDFLAGS $LIBS
2329 case "$cf_library_path" in
2331 cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'`
2332 CF_ADD_SUBDIR_PATH($1,$2,lib,$cf_library_path,NONE)
2333 cf_library_path_list="$cf_library_path_list [$]$1"
2339 CF_SUBDIR_PATH($1,$2,lib)
2341 $1="$cf_library_path_list [$]$1"
2343 dnl ---------------------------------------------------------------------------
2344 dnl CF_MAKE_TAGS version: 6 updated: 2010/10/23 15:52:32
2346 dnl Generate tags/TAGS targets for makefiles. Do not generate TAGS if we have
2347 dnl a monocase filesystem.
2348 AC_DEFUN([CF_MAKE_TAGS],[
2349 AC_REQUIRE([CF_MIXEDCASE_FILENAMES])
2351 AC_CHECK_PROGS(CTAGS, exctags ctags)
2352 AC_CHECK_PROGS(ETAGS, exetags etags)
2354 AC_CHECK_PROG(MAKE_LOWER_TAGS, ${CTAGS:-ctags}, yes, no)
2356 if test "$cf_cv_mixedcase" = yes ; then
2357 AC_CHECK_PROG(MAKE_UPPER_TAGS, ${ETAGS:-etags}, yes, no)
2362 if test "$MAKE_UPPER_TAGS" = yes ; then
2368 if test "$MAKE_LOWER_TAGS" = yes ; then
2377 AC_SUBST(MAKE_UPPER_TAGS)
2378 AC_SUBST(MAKE_LOWER_TAGS)
2380 dnl ---------------------------------------------------------------------------
2381 dnl CF_MATH_LIB version: 10 updated: 2020/12/31 18:40:20
2383 dnl Checks for libraries. At least one UNIX system, Apple Macintosh
2384 dnl Rhapsody 5.5, does not have -lm. We cannot use the simpler
2385 dnl AC_CHECK_LIB(m,sin), because that fails for C++.
2386 AC_DEFUN([CF_MATH_LIB],
2388 AC_CACHE_CHECK(if -lm needed for math functions,
2395 [double x = rand(); printf("result = %g\\n", ]ifelse([$2],,sin(x),$2)[)],
2396 [cf_cv_need_libm=no],
2397 [cf_cv_need_libm=yes])])
2398 if test "$cf_cv_need_libm" = yes
2405 dnl ---------------------------------------------------------------------------
2406 dnl CF_MIXEDCASE_FILENAMES version: 9 updated: 2021/01/01 16:53:59
2407 dnl ----------------------
2408 dnl Check if the file-system supports mixed-case filenames. If we're able to
2409 dnl create a lowercase name and see it as uppercase, it doesn't support that.
2410 AC_DEFUN([CF_MIXEDCASE_FILENAMES],
2412 AC_CACHE_CHECK(if filesystem supports mixed-case filenames,cf_cv_mixedcase,[
2413 if test "$cross_compiling" = yes ; then
2414 case "$target_alias" in
2415 (*-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-msys*|*-mingw*|*-uwin*|darwin*)
2423 rm -f conftest CONFTEST
2425 if test -f CONFTEST ; then
2430 rm -f conftest CONFTEST
2433 test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES,1,[Define to 1 if filesystem supports mixed-case filenames.])
2435 dnl ---------------------------------------------------------------------------
2436 dnl CF_MSG_LOG version: 5 updated: 2010/10/23 15:52:32
2438 dnl Write a debug message to config.log, along with the line number in the
2439 dnl configure script.
2440 AC_DEFUN([CF_MSG_LOG],[
2441 echo "${as_me:-configure}:__oline__: testing $* ..." 1>&AC_FD_CC
2443 dnl ---------------------------------------------------------------------------
2444 dnl CF_NCURSES_CC_CHECK version: 5 updated: 2020/12/31 20:19:42
2445 dnl -------------------
2446 dnl Check if we can compile with ncurses' header file
2447 dnl $1 is the cache variable to set
2448 dnl $2 is the header-file to include
2449 dnl $3 is the root name (ncurses or ncursesw)
2450 AC_DEFUN([CF_NCURSES_CC_CHECK],[
2452 ]ifelse($3,ncursesw,[
2453 #define _XOPEN_SOURCE_EXTENDED
2454 #undef HAVE_LIBUTF8_H /* in case we used CF_UTF8_LIB */
2455 #define HAVE_LIBUTF8_H /* to force ncurses' header file to use cchar_t */
2458 #ifdef NCURSES_VERSION
2459 ]ifelse($3,ncursesw,[
2464 printf("%s\\n", NCURSES_VERSION);
2476 dnl ---------------------------------------------------------------------------
2477 dnl CF_NCURSES_CONFIG version: 26 updated: 2021/01/03 08:05:37
2478 dnl -----------------
2479 dnl Tie together the configure-script macros for ncurses, preferring these in
2481 dnl a) ".pc" files for pkg-config, using $NCURSES_CONFIG_PKG
2482 dnl b) the "-config" script from ncurses, using $NCURSES_CONFIG
2483 dnl c) just plain libraries
2485 dnl $1 is the root library name (default: "ncurses")
2486 AC_DEFUN([CF_NCURSES_CONFIG],[
2487 AC_REQUIRE([CF_PKG_CONFIG])
2488 cf_ncuconfig_root=ifelse($1,,ncurses,$1)
2489 cf_have_ncuconfig=no
2491 if test "x${PKG_CONFIG:=none}" != xnone; then
2492 AC_MSG_CHECKING(pkg-config for $cf_ncuconfig_root)
2493 if "$PKG_CONFIG" --exists $cf_ncuconfig_root ; then
2496 AC_MSG_CHECKING(if the $cf_ncuconfig_root package files work)
2497 cf_have_ncuconfig=unknown
2499 cf_save_CFLAGS="$CFLAGS"
2500 cf_save_CPPFLAGS="$CPPFLAGS"
2501 cf_save_LIBS="$LIBS"
2503 cf_pkg_cflags="`$PKG_CONFIG --cflags $cf_ncuconfig_root`"
2504 cf_pkg_libs="`$PKG_CONFIG --libs $cf_ncuconfig_root`"
2506 # while -W for passing linker flags is prevalent, it is not "standard".
2507 # At least one wrapper for c89/c99 (in Apple's xcode) has its own
2508 # incompatible _and_ non-standard -W option which gives an error. Work
2509 # around that pitfall.
2510 case "x${CC}@@${cf_pkg_libs}@${cf_pkg_cflags}" in
2512 CF_ADD_CFLAGS($cf_pkg_cflags)
2513 CF_ADD_LIBS($cf_pkg_libs)
2515 AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
2516 [initscr(); mousemask(0,0); tigetstr((char *)0);],
2517 [AC_TRY_RUN([#include <${cf_cv_ncurses_header:-curses.h}>
2519 { char *xx = curses_version(); return (xx == 0); }],
2520 [cf_test_ncuconfig=yes],
2521 [cf_test_ncuconfig=no],
2522 [cf_test_ncuconfig=maybe])],
2523 [cf_test_ncuconfig=no])
2525 CFLAGS="$cf_save_CFLAGS"
2526 CPPFLAGS="$cf_save_CPPFLAGS"
2527 LIBS="$cf_save_LIBS"
2529 if test "x$cf_test_ncuconfig" != xyes; then
2530 cf_temp=`echo "x$cf_pkg_cflags" | sed -e s/^x// -e 's/-W[[^ ]]*//g'`
2531 cf_pkg_cflags="$cf_temp"
2532 cf_temp=`echo "x$cf_pkg_libs" | sed -e s/^x// -e 's/-W[[^ ]]*//g'`
2533 cf_pkg_libs="$cf_temp"
2538 CF_ADD_CFLAGS($cf_pkg_cflags)
2539 CF_ADD_LIBS($cf_pkg_libs)
2541 AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
2542 [initscr(); mousemask(0,0); tigetstr((char *)0);],
2543 [AC_TRY_RUN([#include <${cf_cv_ncurses_header:-curses.h}>
2545 { char *xx = curses_version(); return (xx == 0); }],
2546 [cf_have_ncuconfig=yes],
2547 [cf_have_ncuconfig=no],
2548 [cf_have_ncuconfig=maybe])],
2549 [cf_have_ncuconfig=no])
2550 AC_MSG_RESULT($cf_have_ncuconfig)
2551 test "$cf_have_ncuconfig" = maybe && cf_have_ncuconfig=yes
2552 if test "$cf_have_ncuconfig" != "yes"
2554 CPPFLAGS="$cf_save_CPPFLAGS"
2555 LIBS="$cf_save_LIBS"
2556 NCURSES_CONFIG_PKG=none
2558 AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
2559 NCURSES_CONFIG_PKG=$cf_ncuconfig_root
2565 NCURSES_CONFIG_PKG=none
2568 NCURSES_CONFIG_PKG=none
2571 if test "x$cf_have_ncuconfig" = "xno"; then
2572 cf_ncurses_config="${cf_ncuconfig_root}${NCURSES_CONFIG_SUFFIX}-config"; echo "Looking for ${cf_ncurses_config}"
2574 CF_ACVERSION_CHECK(2.52,
2575 [AC_CHECK_TOOLS(NCURSES_CONFIG, ${cf_ncurses_config} ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config, none)],
2576 [AC_PATH_PROGS(NCURSES_CONFIG, ${cf_ncurses_config} ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config, none)])
2578 if test "$NCURSES_CONFIG" != none ; then
2580 CF_ADD_CFLAGS(`$NCURSES_CONFIG --cflags`)
2581 CF_ADD_LIBS(`$NCURSES_CONFIG --libs`)
2583 # even with config script, some packages use no-override for curses.h
2584 CF_CURSES_HEADER(ifelse($1,,ncurses,$1))
2586 dnl like CF_NCURSES_CPPFLAGS
2587 AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
2589 dnl like CF_NCURSES_LIBS
2590 CF_UPPER(cf_nculib_ROOT,HAVE_LIB$cf_ncuconfig_root)
2591 AC_DEFINE_UNQUOTED($cf_nculib_ROOT)
2593 dnl like CF_NCURSES_VERSION
2594 cf_cv_ncurses_version="`$NCURSES_CONFIG --version`"
2598 CF_NCURSES_CPPFLAGS(ifelse($1,,ncurses,$1))
2599 CF_NCURSES_LIBS(ifelse($1,,ncurses,$1))
2606 dnl ---------------------------------------------------------------------------
2607 dnl CF_NCURSES_CPPFLAGS version: 22 updated: 2021/01/02 09:31:20
2608 dnl -------------------
2609 dnl Look for the SVr4 curses clone 'ncurses' in the standard places, adjusting
2610 dnl the CPPFLAGS variable so we can include its header.
2612 dnl The header files may be installed as either curses.h, or ncurses.h (would
2613 dnl be obsolete, except that some packagers prefer this name to distinguish it
2614 dnl from a "native" curses implementation). If not installed for overwrite,
2615 dnl the curses.h file would be in an ncurses subdirectory (e.g.,
2616 dnl /usr/include/ncurses), but someone may have installed overwriting the
2617 dnl vendor's curses. Only very old versions (pre-1.9.2d, the first autoconf'd
2618 dnl version) of ncurses don't define either __NCURSES_H or NCURSES_VERSION in
2621 dnl If the installer has set $CFLAGS or $CPPFLAGS so that the ncurses header
2622 dnl is already in the include-path, don't even bother with this, since we cannot
2623 dnl easily determine which file it is. In this case, it has to be <curses.h>.
2625 dnl The optional parameter gives the root name of the library, in case it is
2626 dnl not installed as the default curses library. That is how the
2627 dnl wide-character version of ncurses is installed.
2628 AC_DEFUN([CF_NCURSES_CPPFLAGS],
2629 [AC_REQUIRE([CF_WITH_CURSES_DIR])
2631 AC_PROVIDE([CF_CURSES_CPPFLAGS])dnl
2632 cf_ncuhdr_root=ifelse($1,,ncurses,$1)
2634 test -n "$cf_cv_curses_dir" && \
2635 test "$cf_cv_curses_dir" != "no" && { \
2636 CF_ADD_INCDIR($cf_cv_curses_dir/include/$cf_ncuhdr_root)
2639 AC_CACHE_CHECK(for $cf_ncuhdr_root header in include-path, cf_cv_ncurses_h,[
2640 cf_header_list="$cf_ncuhdr_root/curses.h $cf_ncuhdr_root/ncurses.h"
2641 { test "$cf_ncuhdr_root" = ncurses || test "$cf_ncuhdr_root" = ncursesw; } && cf_header_list="$cf_header_list curses.h ncurses.h"
2642 for cf_header in $cf_header_list
2644 CF_NCURSES_CC_CHECK(cf_cv_ncurses_h,$cf_header,$1)
2645 test "$cf_cv_ncurses_h" != no && break
2652 # some applications need this, but should check for NCURSES_VERSION
2653 AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
2657 dnl ---------------------------------------------------------------------------
2658 dnl CF_NCURSES_EXT_FUNCS version: 4 updated: 2012/10/06 16:39:58
2659 dnl --------------------
2660 dnl Since 2007/11/17, ncurses has defined NCURSES_EXT_FUNCS; earlier versions
2661 dnl may provide these functions. Define the symbol if it is not defined, and
2663 AC_DEFUN([CF_NCURSES_EXT_FUNCS],
2665 AC_CACHE_CHECK(for ncurses extended functions,cf_cv_ncurses_ext_funcs,[
2667 #include <${cf_cv_ncurses_header:-curses.h}>],
2669 int x = NCURSES_EXT_FUNCS
2670 ],[cf_cv_ncurses_ext_funcs=defined],[
2672 #include <${cf_cv_ncurses_header:-curses.h}>],
2674 (void) assume_default_colors (0, 0);
2675 (void) curses_version ();
2676 (void) define_key (0, 0);
2677 (void) is_term_resized (0, 0);
2678 (void) key_defined (0);
2679 (void) keybound (0, 0);
2680 (void) keyok (0, 0);
2681 (void) resize_term (0, 0);
2682 (void) resizeterm (0, 0);
2683 (void) use_default_colors ();
2684 (void) use_extended_names (0);
2685 (void) wresize (0, 0, 0);],
2686 [cf_cv_ncurses_ext_funcs=yes],
2687 [cf_cv_ncurses_ext_funcs=no])
2690 test "$cf_cv_ncurses_ext_funcs" = yes && AC_DEFINE(NCURSES_EXT_FUNCS,1,[Define to 1 if we have ncurses extensions])
2692 dnl ---------------------------------------------------------------------------
2693 dnl CF_NCURSES_HEADER version: 7 updated: 2021/01/04 19:33:05
2694 dnl -----------------
2695 dnl Find a "curses" header file, e.g,. "curses.h", or one of the more common
2696 dnl variations of ncurses' installs.
2698 dnl See also CF_CURSES_HEADER, which sets the same cache variable.
2699 AC_DEFUN([CF_NCURSES_HEADER],[
2701 if test "$cf_cv_ncurses_h" != no ; then
2702 cf_cv_ncurses_header=$cf_cv_ncurses_h
2705 AC_CACHE_CHECK(for $cf_ncuhdr_root include-path, cf_cv_ncurses_h2,[
2706 test -n "$verbose" && echo
2707 CF_HEADER_PATH(cf_search,$cf_ncuhdr_root)
2708 test -n "$verbose" && echo "search path $cf_search"
2709 cf_save2_CPPFLAGS="$CPPFLAGS"
2710 for cf_incdir in $cf_search
2712 CF_ADD_INCDIR($cf_incdir)
2717 CF_NCURSES_CC_CHECK(cf_cv_ncurses_h2,$cf_header,$1)
2718 if test "$cf_cv_ncurses_h2" != no ; then
2719 cf_cv_ncurses_h2=$cf_incdir/$cf_header
2720 test -n "$verbose" && echo $ECHO_N " ... found $ECHO_C" 1>&AC_FD_MSG
2723 test -n "$verbose" && echo " ... tested $cf_incdir/$cf_header" 1>&AC_FD_MSG
2725 CPPFLAGS="$cf_save2_CPPFLAGS"
2726 test "$cf_cv_ncurses_h2" != no && break
2728 test "$cf_cv_ncurses_h2" = no && AC_MSG_ERROR(not found)
2731 CF_DIRNAME(cf_1st_incdir,$cf_cv_ncurses_h2)
2732 cf_cv_ncurses_header="`basename "$cf_cv_ncurses_h2"`"
2733 if test "`basename "$cf_1st_incdir"`" = "$cf_ncuhdr_root" ; then
2734 cf_cv_ncurses_header="$cf_ncuhdr_root/$cf_cv_ncurses_header"
2736 CF_ADD_INCDIR($cf_1st_incdir)
2740 # Set definitions to allow ifdef'ing for ncurses.h
2742 case "$cf_cv_ncurses_header" in
2744 AC_DEFINE(HAVE_NCURSES_H,1,[Define to 1 if we have ncurses.h])
2748 case "$cf_cv_ncurses_header" in
2749 (ncurses/curses.h|ncurses/ncurses.h)
2750 AC_DEFINE(HAVE_NCURSES_NCURSES_H,1,[Define to 1 if we have ncurses/ncurses.h])
2752 (ncursesw/curses.h|ncursesw/ncurses.h)
2753 AC_DEFINE(HAVE_NCURSESW_NCURSES_H,1,[Define to 1 if we have ncursesw/ncurses.h])
2758 dnl ---------------------------------------------------------------------------
2759 dnl CF_NCURSES_LIBS version: 20 updated: 2021/01/03 08:05:37
2761 dnl Look for the ncurses library. This is a little complicated on Linux,
2762 dnl because it may be linked with the gpm (general purpose mouse) library.
2763 dnl Some distributions have gpm linked with (bsd) curses, which makes it
2764 dnl unusable with ncurses. However, we don't want to link with gpm unless
2765 dnl ncurses has a dependency, since gpm is normally set up as a shared library,
2766 dnl and the linker will record a dependency.
2768 dnl The optional parameter gives the root name of the library, in case it is
2769 dnl not installed as the default curses library. That is how the
2770 dnl wide-character version of ncurses is installed.
2771 AC_DEFUN([CF_NCURSES_LIBS],
2772 [AC_REQUIRE([CF_NCURSES_CPPFLAGS])
2774 cf_nculib_root=ifelse($1,,ncurses,$1)
2775 # This works, except for the special case where we find gpm, but
2776 # ncurses is in a nonstandard location via $LIBS, and we really want
2779 cf_ncurses_SAVE="$LIBS"
2780 AC_CHECK_LIB(gpm,Gpm_Open,
2781 [AC_CHECK_LIB(gpm,initscr,
2782 [LIBS="$cf_ncurses_SAVE"],
2783 [cf_ncurses_LIBS="-lgpm"])])
2787 # This is only necessary if you are linking against an obsolete
2788 # version of ncurses (but it should do no harm, since it's static).
2789 if test "$cf_nculib_root" = ncurses ; then
2790 AC_CHECK_LIB(mytinfo,tgoto,[cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"])
2795 CF_ADD_LIBS($cf_ncurses_LIBS)
2797 if test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no"
2799 CF_ADD_LIBS(-l$cf_nculib_root)
2801 CF_FIND_LIBRARY($cf_nculib_root,$cf_nculib_root,
2802 [#include <${cf_cv_ncurses_header:-curses.h}>],
2807 if test -n "$cf_ncurses_LIBS" ; then
2808 AC_MSG_CHECKING(if we can link $cf_nculib_root without $cf_ncurses_LIBS)
2809 cf_ncurses_SAVE="$LIBS"
2810 for p in $cf_ncurses_LIBS ; do
2811 q=`echo "$LIBS" | sed -e "s%$p %%" -e "s%$p$%%"`
2812 if test "$q" != "$LIBS" ; then
2816 AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
2817 [initscr(); mousemask(0,0); tigetstr((char *)0);],
2818 [AC_MSG_RESULT(yes)],
2820 LIBS="$cf_ncurses_SAVE"])
2823 CF_UPPER(cf_nculib_ROOT,HAVE_LIB$cf_nculib_root)
2824 AC_DEFINE_UNQUOTED($cf_nculib_ROOT)
2826 dnl ---------------------------------------------------------------------------
2827 dnl CF_NCURSES_PTHREADS version: 2 updated: 2016/04/22 05:07:41
2828 dnl -------------------
2829 dnl Use this followup check to ensure that we link with pthreads if ncurses
2831 AC_DEFUN([CF_NCURSES_PTHREADS],[
2832 : ${cf_nculib_root:=ifelse($1,,ncurses,$1)}
2833 AC_CHECK_LIB($cf_nculib_root,_nc_init_pthreads,
2834 cf_cv_ncurses_pthreads=yes,
2835 cf_cv_ncurses_pthreads=no)
2836 if test "$cf_cv_ncurses_pthreads" = yes
2838 CF_ADD_LIBS(-lpthread)
2841 dnl ---------------------------------------------------------------------------
2842 dnl CF_NCURSES_VERSION version: 16 updated: 2020/12/31 20:19:42
2843 dnl ------------------
2844 dnl Check for the version of ncurses, to aid in reporting bugs, etc.
2845 dnl Call CF_CURSES_CPPFLAGS first, or CF_NCURSES_CPPFLAGS. We don't use
2846 dnl AC_REQUIRE since that does not work with the shell's if/then/else/fi.
2847 AC_DEFUN([CF_NCURSES_VERSION],
2849 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
2850 AC_CACHE_CHECK(for ncurses version, cf_cv_ncurses_version,[
2851 cf_cv_ncurses_version=no
2853 rm -f "$cf_tempfile"
2855 #include <${cf_cv_ncurses_header:-curses.h}>
2859 FILE *fp = fopen("$cf_tempfile", "w");
2860 #ifdef NCURSES_VERSION
2861 # ifdef NCURSES_VERSION_PATCH
2862 fprintf(fp, "%s.%d\\n", NCURSES_VERSION, NCURSES_VERSION_PATCH);
2864 fprintf(fp, "%s\\n", NCURSES_VERSION);
2868 fprintf(fp, "old\\n");
2873 ${cf_cv_main_return:-return}(0);
2875 cf_cv_ncurses_version=`cat $cf_tempfile`],,[
2877 # This will not work if the preprocessor splits the line after the
2878 # Autoconf token. The 'unproto' program does that.
2879 cat > "conftest.$ac_ext" <<EOF
2880 #include <${cf_cv_ncurses_header:-curses.h}>
2882 #ifdef NCURSES_VERSION
2883 Autoconf NCURSES_VERSION
2891 cf_try="$ac_cpp conftest.$ac_ext 2>&AC_FD_CC | grep '^Autoconf ' >conftest.out"
2893 if test -f conftest.out ; then
2894 cf_out=`sed -e 's%^Autoconf %%' -e 's%^[[^"]]*"%%' -e 's%".*%%' conftest.out`
2895 test -n "$cf_out" && cf_cv_ncurses_version="$cf_out"
2899 rm -f "$cf_tempfile"
2901 test "$cf_cv_ncurses_version" = no || AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
2903 dnl ---------------------------------------------------------------------------
2904 dnl CF_NCURSES_WRAP_PREFIX version: 1 updated: 2009/03/28 16:08:10
2905 dnl ----------------------
2906 dnl Check for ncurses "wrap-prefix" used for public variables which have been
2907 dnl wrapped with a function to help with concurrency control.
2908 AC_DEFUN([CF_NCURSES_WRAP_PREFIX],
2910 AC_MSG_CHECKING(for ncurses wrap-prefix)
2911 AC_ARG_WITH(ncurses-wrap-prefix,
2912 [ --with-ncurses-wrap-prefix naming-prefix for ncurses wrapped-variables],
2913 [NCURSES_WRAP_PREFIX=$withval],
2914 [NCURSES_WRAP_PREFIX=_nc_])
2915 AC_MSG_RESULT($NCURSES_WRAP_PREFIX)
2917 AC_SUBST(NCURSES_WRAP_PREFIX)
2919 dnl ---------------------------------------------------------------------------
2920 dnl CF_NETBSD_FORM_H version: 2 updated: 2012/10/06 16:39:58
2921 dnl ----------------
2922 dnl Check for NetBSD's form.h, which is incompatible with SVr4 and ncurses.
2923 dnl Some workarounds are needed in client programs to allow them to compile.
2924 AC_DEFUN([CF_NETBSD_FORM_H],[
2925 AC_CACHE_CHECK(for NetBSD form.h,cf_cv_netbsd_form_h,[
2927 #include <${cf_cv_ncurses_header:-curses.h}>
2931 int y = current_field(form)->cursor_ypos;
2932 int x = current_field(form)->cursor_xpos;
2933 ],[cf_cv_netbsd_form_h=yes
2934 ],[cf_cv_netbsd_form_h=no])
2937 test "$cf_cv_netbsd_form_h" = yes && AC_DEFINE(HAVE_NETBSD_FORM_H,1,[Define to 1 if we appear to be using NetBSD form.h])
2939 dnl ---------------------------------------------------------------------------
2940 dnl CF_NETBSD_MENU_H version: 2 updated: 2012/10/06 16:39:58
2941 dnl ----------------
2942 dnl Check for NetBSD's menu.h, which is incompatible with SVr4 and ncurses.
2943 dnl Some workarounds are needed in client programs to allow them to compile.
2944 AC_DEFUN([CF_NETBSD_MENU_H],[
2945 AC_CACHE_CHECK(for NetBSD menu.h,cf_cv_netbsd_menu_h,[
2947 #include <${cf_cv_ncurses_header:-curses.h}>
2951 int y = menu->max_item_width;
2952 ],[cf_cv_netbsd_menu_h=yes
2953 ],[cf_cv_netbsd_menu_h=no])
2956 test "$cf_cv_netbsd_menu_h" = yes && AC_DEFINE(HAVE_NETBSD_MENU_H,1,[Define to 1 if we appear to be using NetBSD menu.h])
2958 dnl ---------------------------------------------------------------------------
2959 dnl CF_NO_LEAKS_OPTION version: 8 updated: 2021/01/05 20:05:09
2960 dnl ------------------
2961 dnl see CF_WITH_NO_LEAKS
2962 AC_DEFUN([CF_NO_LEAKS_OPTION],[
2963 AC_MSG_CHECKING(if you want to use $1 for testing)
2966 [AC_DEFINE_UNQUOTED($3,1,"Define to 1 if you want to use $1 for testing.")ifelse([$4],,[
2969 : "${with_cflags:=-g}"
2970 : "${enable_leaks:=no}"
2973 AC_MSG_RESULT(${with_$1:-no})
2975 case ".$with_cflags" in
2987 dnl ---------------------------------------------------------------------------
2988 dnl CF_PATH_SYNTAX version: 18 updated: 2020/12/31 18:40:20
2990 dnl Check the argument to see that it looks like a pathname. Rewrite it if it
2991 dnl begins with one of the prefix/exec_prefix variables, and then again if the
2992 dnl result begins with 'NONE'. This is necessary to work around autoconf's
2993 dnl delayed evaluation of those symbols.
2994 AC_DEFUN([CF_PATH_SYNTAX],[
2995 if test "x$prefix" != xNONE; then
2996 cf_path_syntax="$prefix"
2998 cf_path_syntax="$ac_default_prefix"
3002 (.\[$]\(*\)*|.\'*\'*)
3006 (.[[a-zA-Z]]:[[\\/]]*) # OS/2 EMX
3008 (.\[$]\{*prefix\}*|.\[$]\{*dir\}*)
3012 $1=`echo "[$]$1" | sed -e s%NONE%$cf_path_syntax%`
3017 $1=`echo "[$]$1" | sed -e s%NONE%$cf_path_syntax%`
3020 ifelse([$2],,[AC_MSG_ERROR([expected a pathname, not \"[$]$1\"])],$2)
3024 dnl ---------------------------------------------------------------------------
3025 dnl CF_PDCURSES_X11 version: 15 updated: 2021/01/02 09:31:20
3027 dnl Configure for PDCurses' X11 library
3028 AC_DEFUN([CF_PDCURSES_X11],[
3029 AC_REQUIRE([CF_X_ATHENA])
3031 CF_ACVERSION_CHECK(2.52,
3032 [AC_CHECK_TOOLS(XCURSES_CONFIG, xcurses-config, none)],
3033 [AC_PATH_PROGS(XCURSES_CONFIG, xcurses-config, none)])
3035 if test "$XCURSES_CONFIG" != none ; then
3037 CF_ADD_CFLAGS(`$XCURSES_CONFIG --cflags`)
3038 CF_ADD_LIBS(`$XCURSES_CONFIG --libs`)
3040 cf_cv_lib_XCurses=yes
3044 LDFLAGS="$LDFLAGS $X_LIBS"
3045 CF_CHECK_CFLAGS($X_CFLAGS)
3046 AC_CHECK_LIB(X11,XOpenDisplay,
3047 [CF_ADD_LIBS(-lX11)],,
3048 [$X_PRE_LIBS $LIBS $X_EXTRA_LIBS])
3049 AC_CACHE_CHECK(for XCurses library,cf_cv_lib_XCurses,[
3050 CF_ADD_LIBS(-lXCurses)
3052 #include <xcurses.h>
3053 char *XCursesProgramName = "test";
3055 [cf_cv_lib_XCurses=yes],
3056 [cf_cv_lib_XCurses=no])
3061 if test "$cf_cv_lib_XCurses" = yes ; then
3062 AC_DEFINE(UNIX,1,[Define to 1 if using PDCurses on Unix])
3063 AC_DEFINE(XCURSES,1,[Define to 1 if using PDCurses on Unix])
3064 AC_CHECK_HEADER(xcurses.h, AC_DEFINE(HAVE_XCURSES,1,[Define to 1 if using PDCurses on Unix]))
3066 AC_MSG_ERROR(Cannot link with XCurses)
3069 dnl ---------------------------------------------------------------------------
3070 dnl CF_PKG_CONFIG version: 11 updated: 2021/01/01 13:31:04
3072 dnl Check for the package-config program, unless disabled by command-line.
3073 AC_DEFUN([CF_PKG_CONFIG],
3075 AC_MSG_CHECKING(if you want to use pkg-config)
3076 AC_ARG_WITH(pkg-config,
3077 [ --with-pkg-config{=path} enable/disable use of pkg-config],
3078 [cf_pkg_config=$withval],
3079 [cf_pkg_config=yes])
3080 AC_MSG_RESULT($cf_pkg_config)
3082 case "$cf_pkg_config" in
3087 CF_ACVERSION_CHECK(2.52,
3088 [AC_PATH_TOOL(PKG_CONFIG, pkg-config, none)],
3089 [AC_PATH_PROG(PKG_CONFIG, pkg-config, none)])
3096 test -z "$PKG_CONFIG" && PKG_CONFIG=none
3097 if test "$PKG_CONFIG" != none ; then
3098 CF_PATH_SYNTAX(PKG_CONFIG)
3099 elif test "x$cf_pkg_config" != xno ; then
3100 AC_MSG_WARN(pkg-config is not installed)
3103 AC_SUBST(PKG_CONFIG)
3105 dnl ---------------------------------------------------------------------------
3106 dnl CF_POSIX_C_SOURCE version: 11 updated: 2018/12/31 20:46:17
3107 dnl -----------------
3108 dnl Define _POSIX_C_SOURCE to the given level, and _POSIX_SOURCE if needed.
3110 dnl POSIX.1-1990 _POSIX_SOURCE
3111 dnl POSIX.1-1990 and _POSIX_SOURCE and
3112 dnl POSIX.2-1992 C-Language _POSIX_C_SOURCE=2
3114 dnl POSIX.1b-1993 _POSIX_C_SOURCE=199309L
3115 dnl POSIX.1c-1996 _POSIX_C_SOURCE=199506L
3116 dnl X/Open 2000 _POSIX_C_SOURCE=200112L
3119 dnl $1 is the nominal value for _POSIX_C_SOURCE
3120 AC_DEFUN([CF_POSIX_C_SOURCE],
3121 [AC_REQUIRE([CF_POSIX_VISIBLE])dnl
3123 if test "$cf_cv_posix_visible" = no; then
3125 cf_POSIX_C_SOURCE=ifelse([$1],,199506L,[$1])
3127 cf_save_CFLAGS="$CFLAGS"
3128 cf_save_CPPFLAGS="$CPPFLAGS"
3130 CF_REMOVE_DEFINE(cf_trim_CFLAGS,$cf_save_CFLAGS,_POSIX_C_SOURCE)
3131 CF_REMOVE_DEFINE(cf_trim_CPPFLAGS,$cf_save_CPPFLAGS,_POSIX_C_SOURCE)
3133 AC_CACHE_CHECK(if we should define _POSIX_C_SOURCE,cf_cv_posix_c_source,[
3134 CF_MSG_LOG(if the symbol is already defined go no further)
3135 AC_TRY_COMPILE([#include <sys/types.h>],[
3136 #ifndef _POSIX_C_SOURCE
3139 [cf_cv_posix_c_source=no],
3140 [cf_want_posix_source=no
3141 case .$cf_POSIX_C_SOURCE in
3143 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
3146 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
3147 cf_want_posix_source=yes
3150 cf_want_posix_source=yes
3153 if test "$cf_want_posix_source" = yes ; then
3154 AC_TRY_COMPILE([#include <sys/types.h>],[
3155 #ifdef _POSIX_SOURCE
3158 cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE")
3160 CF_MSG_LOG(ifdef from value $cf_POSIX_C_SOURCE)
3161 CFLAGS="$cf_trim_CFLAGS"
3162 CPPFLAGS="$cf_trim_CPPFLAGS"
3163 CF_APPEND_TEXT(CPPFLAGS,$cf_cv_posix_c_source)
3164 CF_MSG_LOG(if the second compile does not leave our definition intact error)
3165 AC_TRY_COMPILE([#include <sys/types.h>],[
3166 #ifndef _POSIX_C_SOURCE
3169 [cf_cv_posix_c_source=no])
3170 CFLAGS="$cf_save_CFLAGS"
3171 CPPFLAGS="$cf_save_CPPFLAGS"
3175 if test "$cf_cv_posix_c_source" != no ; then
3176 CFLAGS="$cf_trim_CFLAGS"
3177 CPPFLAGS="$cf_trim_CPPFLAGS"
3178 CF_ADD_CFLAGS($cf_cv_posix_c_source)
3181 fi # cf_cv_posix_visible
3184 dnl ---------------------------------------------------------------------------
3185 dnl CF_POSIX_VISIBLE version: 1 updated: 2018/12/31 20:46:17
3186 dnl ----------------
3187 dnl POSIX documents test-macros which an application may set before any system
3188 dnl headers are included to make features available.
3190 dnl Some BSD platforms (originally FreeBSD, but copied by a few others)
3191 dnl diverged from POSIX in 2002 by setting symbols which make all of the most
3192 dnl recent features visible in the system header files unless the application
3193 dnl overrides the corresponding test-macros. Doing that introduces portability
3196 dnl This macro makes a special check for the symbols used for this, to avoid a
3197 dnl conflicting definition.
3198 AC_DEFUN([CF_POSIX_VISIBLE],
3200 AC_CACHE_CHECK(if the POSIX test-macros are already defined,cf_cv_posix_visible,[
3201 AC_TRY_COMPILE([#include <stdio.h>],[
3202 #if defined(__POSIX_VISIBLE) && ((__POSIX_VISIBLE - 0L) > 0) \
3203 && defined(__XSI_VISIBLE) && ((__XSI_VISIBLE - 0L) > 0) \
3204 && defined(__BSD_VISIBLE) && ((__BSD_VISIBLE - 0L) > 0) \
3205 && defined(__ISO_C_VISIBLE) && ((__ISO_C_VISIBLE - 0L) > 0)
3206 #error conflicting symbols found
3208 ],[cf_cv_posix_visible=no],[cf_cv_posix_visible=yes])
3211 dnl ---------------------------------------------------------------------------
3212 dnl CF_PRG_RULES version: 2 updated: 2021/01/01 13:31:04
3214 dnl Append definitions and rules for the given programs to the subdirectory
3215 dnl Makefiles, and the recursion rule for the top-level Makefile.
3218 dnl $1 = script to run
3219 dnl $2 = list of subdirectories
3223 AC_DEFUN([CF_PRG_RULES],
3227 if test ! -d "$srcdir/$cf_dir" ; then
3229 elif test -f "$srcdir/$cf_dir/programs" ; then
3230 $AWK -f $1 "$srcdir/$cf_dir/programs" >>$cf_dir/Makefile
3235 dnl ---------------------------------------------------------------------------
3236 dnl CF_PROG_CC version: 5 updated: 2019/12/31 08:53:54
3238 dnl standard check for CC, plus followup sanity checks
3239 dnl $1 = optional parameter to pass to AC_PROG_CC to specify compiler name
3240 AC_DEFUN([CF_PROG_CC],[
3241 CF_ACVERSION_CHECK(2.53,
3242 [AC_MSG_WARN(this will incorrectly handle gnatgcc choice)
3243 AC_REQUIRE([AC_PROG_CC])],
3245 ifelse($1,,[AC_PROG_CC],[AC_PROG_CC($1)])
3247 CF_ACVERSION_CHECK(2.52,
3252 dnl ---------------------------------------------------------------------------
3253 dnl CF_PROG_INSTALL version: 10 updated: 2021/01/04 19:33:05
3255 dnl Force $INSTALL to be an absolute-path. Otherwise, edit_man.sh and the
3256 dnl misc/tabset install won't work properly. Usually this happens only when
3257 dnl using the fallback mkinstalldirs script
3258 AC_DEFUN([CF_PROG_INSTALL],
3264 CF_DIRNAME(cf_dir,$INSTALL)
3265 test -z "$cf_dir" && cf_dir=.
3266 INSTALL="`cd \"$cf_dir\" && pwd`"/"`echo "$INSTALL" | sed -e 's%^.*/%%'`"
3270 dnl ---------------------------------------------------------------------------
3271 dnl CF_PROG_LINT version: 4 updated: 2019/11/20 18:55:37
3273 AC_DEFUN([CF_PROG_LINT],
3275 AC_CHECK_PROGS(LINT, lint cppcheck splint)
3277 (xcppcheck|x*/cppcheck)
3278 test -z "$LINT_OPTS" && LINT_OPTS="--enable=all"
3283 dnl ---------------------------------------------------------------------------
3284 dnl CF_REMOVE_DEFINE version: 3 updated: 2010/01/09 11:05:50
3285 dnl ----------------
3286 dnl Remove all -U and -D options that refer to the given symbol from a list
3287 dnl of C compiler options. This works around the problem that not all
3288 dnl compilers process -U and -D options from left-to-right, so a -U option
3289 dnl cannot be used to cancel the effect of a preceding -D option.
3291 dnl $1 = target (which could be the same as the source variable)
3292 dnl $2 = source (including '$')
3293 dnl $3 = symbol to remove
3294 define([CF_REMOVE_DEFINE],
3297 sed -e 's/-[[UD]]'"$3"'\(=[[^ ]]*\)\?[[ ]]/ /g' \
3298 -e 's/-[[UD]]'"$3"'\(=[[^ ]]*\)\?[$]//g'`
3300 dnl ---------------------------------------------------------------------------
3301 dnl CF_RESTORE_XTRA_FLAGS version: 1 updated: 2020/01/11 16:47:45
3302 dnl ---------------------
3303 dnl Restore flags saved in CF_SAVE_XTRA_FLAGS
3304 dnl $1 = name of current macro
3305 define([CF_RESTORE_XTRA_FLAGS],
3307 LIBS="$cf_save_LIBS_$1"
3308 CFLAGS="$cf_save_CFLAGS_$1"
3309 CPPFLAGS="$cf_save_CPPFLAGS_$1"
3311 dnl ---------------------------------------------------------------------------
3312 dnl CF_RPATH_HACK version: 13 updated: 2021/01/03 18:30:50
3314 AC_DEFUN([CF_RPATH_HACK],
3315 [AC_REQUIRE([AC_PROG_FGREP])dnl
3316 AC_REQUIRE([CF_LD_RPATH_OPT])dnl
3318 AC_MSG_CHECKING(for updated LDFLAGS)
3319 if test -n "$LD_RPATH_OPT" ; then
3320 AC_MSG_RESULT(maybe)
3322 AC_CHECK_PROGS(cf_ldd_prog,ldd,no)
3323 cf_rpath_list="/usr/lib /lib"
3324 if test "$cf_ldd_prog" != no
3328 AC_TRY_LINK([#include <stdio.h>],
3330 [cf_rpath_oops=`"$cf_ldd_prog" "conftest$ac_exeext" | ${FGREP-fgrep} ' not found' | sed -e 's% =>.*$%%' |sort | uniq`
3331 cf_rpath_list=`"$cf_ldd_prog" "conftest$ac_exeext" | ${FGREP-fgrep} / | sed -e 's%^.*[[ ]]/%/%' -e 's%/[[^/]][[^/]]*$%%' |sort | uniq`])
3333 # If we passed the link-test, but get a "not found" on a given library,
3334 # this could be due to inept reconfiguration of gcc to make it only
3335 # partly honor /usr/local/lib (or whatever). Sometimes this behavior
3336 # is intentional, e.g., installing gcc in /usr/bin and suppressing the
3337 # /usr/local libraries.
3338 if test -n "$cf_rpath_oops"
3340 for cf_rpath_src in $cf_rpath_oops
3342 for cf_rpath_dir in \
3347 if test -f "$cf_rpath_dir/lib/$cf_rpath_src"
3349 CF_VERBOSE(...adding -L$cf_rpath_dir/lib to LDFLAGS for $cf_rpath_src)
3350 LDFLAGS="$LDFLAGS -L$cf_rpath_dir/lib"
3358 CF_VERBOSE(...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS)
3360 CF_RPATH_HACK_2(LDFLAGS)
3361 CF_RPATH_HACK_2(LIBS)
3363 CF_VERBOSE(...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS)
3367 AC_SUBST(EXTRA_LDFLAGS)
3369 dnl ---------------------------------------------------------------------------
3370 dnl CF_RPATH_HACK_2 version: 8 updated: 2021/01/01 13:31:04
3372 dnl Do one set of substitutions for CF_RPATH_HACK, adding an rpath option to
3373 dnl EXTRA_LDFLAGS for each -L option found.
3375 dnl $cf_rpath_list contains a list of directories to ignore.
3377 dnl $1 = variable name to update. The LDFLAGS variable should be the only one,
3378 dnl but LIBS often has misplaced -L options.
3379 AC_DEFUN([CF_RPATH_HACK_2],
3381 CF_VERBOSE(...checking $1 [$]$1)
3384 for cf_rpath_src in [$]$1
3386 case "$cf_rpath_src" in
3389 # check if this refers to a directory which we will ignore
3391 if test -n "$cf_rpath_list"
3393 for cf_rpath_item in $cf_rpath_list
3395 if test "x$cf_rpath_src" = "x-L$cf_rpath_item"
3403 if test "$cf_rpath_skip" = no
3405 # transform the option
3406 if test "$LD_RPATH_OPT" = "-R " ; then
3407 cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%-R %"`
3409 cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%$LD_RPATH_OPT%"`
3412 # if we have not already added this, add it now
3413 cf_rpath_tst=`echo "$EXTRA_LDFLAGS" | sed -e "s%$cf_rpath_tmp %%"`
3414 if test "x$cf_rpath_tst" = "x$EXTRA_LDFLAGS"
3416 CF_VERBOSE(...Filter $cf_rpath_src ->$cf_rpath_tmp)
3417 EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS"
3422 cf_rpath_dst="$cf_rpath_dst $cf_rpath_src"
3426 CF_VERBOSE(...checked $1 [$]$1)
3427 AC_SUBST(EXTRA_LDFLAGS)
3429 dnl ---------------------------------------------------------------------------
3430 dnl CF_SAVE_XTRA_FLAGS version: 1 updated: 2020/01/11 16:46:44
3431 dnl ------------------
3432 dnl Use this macro to save CFLAGS/CPPFLAGS/LIBS before checks against X headers
3433 dnl and libraries which do not update those variables.
3435 dnl $1 = name of current macro
3436 define([CF_SAVE_XTRA_FLAGS],
3438 cf_save_LIBS_$1="$LIBS"
3439 cf_save_CFLAGS_$1="$CFLAGS"
3440 cf_save_CPPFLAGS_$1="$CPPFLAGS"
3441 LIBS="$LIBS ${X_PRE_LIBS} ${X_LIBS} ${X_EXTRA_LIBS}"
3442 for cf_X_CFLAGS in $X_CFLAGS
3444 case "x$cf_X_CFLAGS" in
3446 CPPFLAGS="$CPPFLAGS $cf_X_CFLAGS"
3449 CFLAGS="$CFLAGS $cf_X_CFLAGS"
3454 dnl ---------------------------------------------------------------------------
3455 dnl CF_SIGWINCH version: 6 updated: 2021/01/01 13:31:04
3457 dnl Use this macro after CF_XOPEN_SOURCE, but do not require it (not all
3458 dnl programs need this test).
3460 dnl This is really a Mac OS X 10.4.3 workaround. Defining _POSIX_C_SOURCE
3461 dnl forces SIGWINCH to be undefined (breaks xterm, ncurses). Oddly, the struct
3462 dnl winsize declaration is left alone - we may revisit this if Apple choose to
3463 dnl break that part of the interface as well.
3464 AC_DEFUN([CF_SIGWINCH],
3466 AC_CACHE_CHECK(if SIGWINCH is defined,cf_cv_define_sigwinch,[
3468 #include <sys/types.h>
3469 #include <sys/signal.h>
3470 ],[int x = SIGWINCH; (void)x],
3471 [cf_cv_define_sigwinch=yes],
3473 #undef _XOPEN_SOURCE
3474 #undef _POSIX_SOURCE
3475 #undef _POSIX_C_SOURCE
3476 #include <sys/types.h>
3477 #include <sys/signal.h>
3478 ],[int x = SIGWINCH; (void)x],
3479 [cf_cv_define_sigwinch=maybe],
3480 [cf_cv_define_sigwinch=no])
3484 if test "$cf_cv_define_sigwinch" = maybe ; then
3485 AC_CACHE_CHECK(for actual SIGWINCH definition,cf_cv_fixup_sigwinch,[
3486 cf_cv_fixup_sigwinch=unknown
3488 while test "$cf_sigwinch" != 1
3491 #undef _XOPEN_SOURCE
3492 #undef _POSIX_SOURCE
3493 #undef _POSIX_C_SOURCE
3494 #include <sys/types.h>
3495 #include <sys/signal.h>
3497 #if SIGWINCH != $cf_sigwinch
3500 int x = SIGWINCH; (void)x],
3501 [cf_cv_fixup_sigwinch=$cf_sigwinch
3504 cf_sigwinch="`expr "$cf_sigwinch" - 1`"
3508 if test "$cf_cv_fixup_sigwinch" != unknown ; then
3509 CPPFLAGS="$CPPFLAGS -DSIGWINCH=$cf_cv_fixup_sigwinch"
3513 dnl ---------------------------------------------------------------------------
3514 dnl CF_SIG_ATOMIC_T version: 5 updated: 2020/03/10 18:53:47
3516 dnl signal handler, but there are some gcc dependencies in that recommendation.
3518 AC_DEFUN([CF_SIG_ATOMIC_T],
3520 AC_MSG_CHECKING(for signal global datatype)
3521 AC_CACHE_VAL(cf_cv_sig_atomic_t,[
3523 "volatile sig_atomic_t" \
3528 #include <sys/types.h>
3534 static void handler(int sig)
3539 [signal(SIGINT, handler);
3541 [cf_cv_sig_atomic_t=$cf_type],
3542 [cf_cv_sig_atomic_t=no])
3543 test "$cf_cv_sig_atomic_t" != no && break
3546 AC_MSG_RESULT($cf_cv_sig_atomic_t)
3547 test "$cf_cv_sig_atomic_t" != no && AC_DEFINE_UNQUOTED(SIG_ATOMIC_T, $cf_cv_sig_atomic_t,[Define to signal global datatype])
3549 dnl ---------------------------------------------------------------------------
3550 dnl CF_SUBDIR_PATH version: 7 updated: 2014/12/04 04:33:06
3552 dnl Construct a search-list for a nonstandard header/lib-file
3553 dnl $1 = the variable to return as result
3554 dnl $2 = the package name
3555 dnl $3 = the subdirectory, e.g., bin, include or lib
3556 AC_DEFUN([CF_SUBDIR_PATH],
3560 CF_ADD_SUBDIR_PATH($1,$2,$3,$prefix,NONE)
3562 for cf_subdir_prefix in \
3570 CF_ADD_SUBDIR_PATH($1,$2,$3,$cf_subdir_prefix,$prefix)
3573 dnl ---------------------------------------------------------------------------
3574 dnl CF_SYS_TIME_SELECT version: 6 updated: 2015/04/18 08:56:57
3575 dnl ------------------
3576 dnl Check if we can include <sys/time.h> with <sys/select.h>; this breaks on
3577 dnl older SCO configurations.
3578 AC_DEFUN([CF_SYS_TIME_SELECT],
3580 AC_MSG_CHECKING(if sys/time.h works with sys/select.h)
3581 AC_CACHE_VAL(cf_cv_sys_time_select,[
3583 #include <sys/types.h>
3584 #ifdef HAVE_SYS_TIME_H
3585 #include <sys/time.h>
3587 #ifdef HAVE_SYS_SELECT_H
3588 #include <sys/select.h>
3590 ],[],[cf_cv_sys_time_select=yes],
3591 [cf_cv_sys_time_select=no])
3593 AC_MSG_RESULT($cf_cv_sys_time_select)
3594 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>])
3596 dnl ---------------------------------------------------------------------------
3597 dnl CF_TERM_HEADER version: 6 updated: 2021/01/02 09:31:20
3599 dnl Look for term.h, which is part of X/Open curses. It defines the interface
3600 dnl to terminfo database. Usually it is in the same include-path as curses.h,
3601 dnl but some packagers change this, breaking various applications.
3602 AC_DEFUN([CF_TERM_HEADER],[
3603 AC_CACHE_CHECK(for terminfo header, cf_cv_term_header,[
3604 case "${cf_cv_ncurses_header}" in
3605 (*/ncurses.h|*/ncursesw.h)
3606 cf_term_header=`echo "$cf_cv_ncurses_header" | sed -e 's%ncurses[[^.]]*\.h$%term.h%'`
3609 cf_term_header=term.h
3613 for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
3615 AC_TRY_COMPILE([#include <stdio.h>
3616 #include <${cf_cv_ncurses_header:-curses.h}>
3618 ],[int x = auto_left_margin; (void)x],[
3619 cf_cv_term_header="$cf_test"],[
3620 cf_cv_term_header=unknown
3622 test "$cf_cv_term_header" != unknown && break
3626 # Set definitions to allow ifdef'ing to accommodate subdirectories
3628 case "$cf_cv_term_header" in
3630 AC_DEFINE(HAVE_TERM_H,1,[Define to 1 if we have term.h])
3634 case "$cf_cv_term_header" in
3636 AC_DEFINE(HAVE_NCURSES_TERM_H,1,[Define to 1 if we have ncurses/term.h])
3639 AC_DEFINE(HAVE_NCURSESW_TERM_H,1,[Define to 1 if we have ncursesw/term.h])
3643 dnl ---------------------------------------------------------------------------
3644 dnl CF_TOP_BUILDDIR version: 2 updated: 2013/07/27 17:38:32
3646 dnl Define a top_builddir symbol, for applications that need an absolute path.
3647 AC_DEFUN([CF_TOP_BUILDDIR],
3649 top_builddir=ifelse($1,,`pwd`,$1)
3650 AC_SUBST(top_builddir)
3652 dnl ---------------------------------------------------------------------------
3653 dnl CF_TPUTS_PROTO version: 4 updated: 2021/01/04 19:45:09
3655 dnl Check for type of function-pointer passed to tputs. Some old
3656 dnl implementations used functions that had different prototypes, making it
3657 dnl hard to compile portable programs using tputs.
3658 AC_DEFUN([CF_TPUTS_PROTO],[
3659 CF_CURSES_FUNCS(tputs)
3660 if test "x$cf_cv_func_tputs" = xyes
3663 for cf_arg in int char
3665 for cf_ret in int void
3667 if test "$cf_ret" = void
3669 cf_return="/* nothing */"
3671 cf_return="return value"
3674 #include <${cf_cv_ncurses_header:-curses.h}>
3675 #include <$cf_cv_term_header>
3677 static $cf_ret outc($cf_arg value) { $cf_return; }
3679 tputs("hello", 0, outc);
3680 ${cf_cv_main_return:-return}(0);
3682 CF_VERBOSE([prototype $cf_ret func($cf_arg value)])
3683 cat >>confdefs.h <<EOF
3684 #define TPUTS_ARG $cf_arg
3685 #define TPUTS_PROTO(func,value) $cf_ret func(TPUTS_ARG value)
3686 #define TPUTS_RETURN(value) $cf_return
3692 test "$cf_done" = yes && break
3696 dnl ---------------------------------------------------------------------------
3697 dnl CF_TRIM_X_LIBS version: 3 updated: 2015/04/12 15:39:00
3699 dnl Trim extra base X libraries added as a workaround for inconsistent library
3700 dnl dependencies returned by "new" pkg-config files.
3701 AC_DEFUN([CF_TRIM_X_LIBS],[
3702 for cf_trim_lib in Xmu Xt X11
3705 (*-l$cf_trim_lib\ *-l$cf_trim_lib*)
3706 LIBS=`echo "$LIBS " | sed -e 's/ / /g' -e 's%-l'"$cf_trim_lib"' %%' -e 's/ $//'`
3707 CF_VERBOSE(..trimmed $LIBS)
3712 dnl ---------------------------------------------------------------------------
3713 dnl CF_TRY_PKG_CONFIG version: 6 updated: 2020/12/31 10:54:15
3714 dnl -----------------
3715 dnl This is a simple wrapper to use for pkg-config, for libraries which may be
3716 dnl available in that form.
3718 dnl $1 = package name, which may be a shell variable
3719 dnl $2 = extra logic to use, if any, after updating CFLAGS and LIBS
3720 dnl $3 = logic to use if pkg-config does not have the package
3721 AC_DEFUN([CF_TRY_PKG_CONFIG],[
3722 AC_REQUIRE([CF_PKG_CONFIG])
3724 if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists "$1"; then
3725 CF_VERBOSE(found package $1)
3726 cf_pkgconfig_incs="`$PKG_CONFIG --cflags "$1" 2>/dev/null`"
3727 cf_pkgconfig_libs="`$PKG_CONFIG --libs "$1" 2>/dev/null`"
3728 CF_VERBOSE(package $1 CFLAGS: $cf_pkgconfig_incs)
3729 CF_VERBOSE(package $1 LIBS: $cf_pkgconfig_libs)
3730 CF_ADD_CFLAGS($cf_pkgconfig_incs)
3731 CF_ADD_LIBS($cf_pkgconfig_libs)
3732 ifelse([$2],,:,[$2])
3736 ifelse([$3],,:,[$3])
3739 dnl ---------------------------------------------------------------------------
3740 dnl CF_TRY_XOPEN_SOURCE version: 2 updated: 2018/06/20 20:23:13
3741 dnl -------------------
3742 dnl If _XOPEN_SOURCE is not defined in the compile environment, check if we
3743 dnl can define it successfully.
3744 AC_DEFUN([CF_TRY_XOPEN_SOURCE],[
3745 AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[
3749 #include <sys/types.h>
3751 #ifndef _XOPEN_SOURCE
3754 [cf_cv_xopen_source=no],
3755 [cf_save="$CPPFLAGS"
3756 CF_APPEND_TEXT(CPPFLAGS,-D_XOPEN_SOURCE=$cf_XOPEN_SOURCE)
3760 #include <sys/types.h>
3762 #ifdef _XOPEN_SOURCE
3765 [cf_cv_xopen_source=no],
3766 [cf_cv_xopen_source=$cf_XOPEN_SOURCE])
3771 if test "$cf_cv_xopen_source" != no ; then
3772 CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE)
3773 CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE)
3774 cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
3775 CF_ADD_CFLAGS($cf_temp_xopen_source)
3778 dnl ---------------------------------------------------------------------------
3779 dnl CF_UPPER version: 5 updated: 2001/01/29 23:40:59
3781 dnl Make an uppercase version of a variable
3782 dnl $1=uppercase($2)
3783 AC_DEFUN([CF_UPPER],
3785 $1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
3787 dnl ---------------------------------------------------------------------------
3788 dnl CF_UTF8_LIB version: 8 updated: 2012/10/06 08:57:51
3790 dnl Check for multibyte support, and if not found, utf8 compatibility library
3791 AC_DEFUN([CF_UTF8_LIB],
3793 AC_CACHE_CHECK(for multibyte character support,cf_cv_utf8_lib,[
3794 cf_save_LIBS="$LIBS"
3796 #include <stdlib.h>],[putwc(0,0);],
3797 [cf_cv_utf8_lib=yes],
3799 #include <libutf8.h>],[putwc(0,0);],utf8,
3800 [cf_cv_utf8_lib=add-on],
3801 [cf_cv_utf8_lib=no])
3804 # HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
3806 if test "$cf_cv_utf8_lib" = "add-on" ; then
3807 AC_DEFINE(HAVE_LIBUTF8_H,1,[Define to 1 if we should include libutf8.h])
3808 CF_ADD_INCDIR($cf_cv_header_path_utf8)
3809 CF_ADD_LIBDIR($cf_cv_library_path_utf8)
3810 CF_ADD_LIBS($cf_cv_library_file_utf8)
3813 dnl ---------------------------------------------------------------------------
3814 dnl CF_VERBOSE version: 3 updated: 2007/07/29 09:55:12
3816 dnl Use AC_VERBOSE w/o the warnings
3817 AC_DEFUN([CF_VERBOSE],
3818 [test -n "$verbose" && echo " $1" 1>&AC_FD_MSG
3821 dnl ---------------------------------------------------------------------------
3822 dnl CF_WCHAR_TYPE version: 4 updated: 2012/10/06 16:39:58
3824 dnl Check if type wide-character type $1 is declared, and if so, which header
3825 dnl file is needed. The second parameter is used to set a shell variable when
3826 dnl the type is not found. The first parameter sets a shell variable for the
3828 AC_DEFUN([CF_WCHAR_TYPE],
3830 # This is needed on Tru64 5.0 to declare $1
3831 AC_CACHE_CHECK(if we must include wchar.h to declare $1,cf_cv_$1,[
3836 #ifdef HAVE_LIBUTF8_H
3837 #include <libutf8.h>
3846 #ifdef HAVE_LIBUTF8_H
3847 #include <libutf8.h>
3851 [cf_cv_$1=unknown])])])
3853 if test "$cf_cv_$1" = yes ; then
3854 AC_DEFINE(NEED_WCHAR_H,1,[Define to 1 if we must include wchar.h])
3859 # if we do not find $1 in either place, use substitution to provide a fallback.
3860 if test "$cf_cv_$1" = unknown ; then
3865 # if we find $1 in either place, use substitution to provide a fallback.
3866 if test "$cf_cv_$1" != unknown ; then
3871 dnl ---------------------------------------------------------------------------
3872 dnl CF_WITH_CURSES_DIR version: 4 updated: 2021/01/02 19:22:58
3873 dnl ------------------
3874 dnl Wrapper for AC_ARG_WITH to specify directory under which to look for curses
3876 AC_DEFUN([CF_WITH_CURSES_DIR],[
3878 AC_MSG_CHECKING(for specific curses-directory)
3879 AC_ARG_WITH(curses-dir,
3880 [ --with-curses-dir=DIR directory in which (n)curses is installed],
3881 [cf_cv_curses_dir=$withval],
3882 [cf_cv_curses_dir=no])
3883 AC_MSG_RESULT($cf_cv_curses_dir)
3885 if test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no"
3887 CF_PATH_SYNTAX(withval)
3888 if test -d "$cf_cv_curses_dir"
3890 CF_ADD_INCDIR($cf_cv_curses_dir/include)
3891 CF_ADD_LIBDIR($cf_cv_curses_dir/lib)
3895 dnl ---------------------------------------------------------------------------
3896 dnl CF_WITH_DBMALLOC version: 7 updated: 2010/06/21 17:26:47
3897 dnl ----------------
3898 dnl Configure-option for dbmalloc. The optional parameter is used to override
3899 dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
3900 AC_DEFUN([CF_WITH_DBMALLOC],[
3901 CF_NO_LEAKS_OPTION(dbmalloc,
3902 [ --with-dbmalloc test: use Conor Cahill's dbmalloc library],
3905 if test "$with_dbmalloc" = yes ; then
3906 AC_CHECK_HEADER(dbmalloc.h,
3907 [AC_CHECK_LIB(dbmalloc,[debug_malloc]ifelse([$1],,[],[,$1]))])
3910 dnl ---------------------------------------------------------------------------
3911 dnl CF_WITH_DMALLOC version: 7 updated: 2010/06/21 17:26:47
3913 dnl Configure-option for dmalloc. The optional parameter is used to override
3914 dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
3915 AC_DEFUN([CF_WITH_DMALLOC],[
3916 CF_NO_LEAKS_OPTION(dmalloc,
3917 [ --with-dmalloc test: use Gray Watson's dmalloc library],
3920 if test "$with_dmalloc" = yes ; then
3921 AC_CHECK_HEADER(dmalloc.h,
3922 [AC_CHECK_LIB(dmalloc,[dmalloc_debug]ifelse([$1],,[],[,$1]))])
3925 dnl ---------------------------------------------------------------------------
3926 dnl CF_WITH_LIB_BASENAME version: 1 updated: 2020/03/07 20:05:14
3927 dnl --------------------
3928 dnl Allow for overriding the basename of a library, i.e., the part to which
3929 dnl prefixes/suffixes are attached.
3931 dnl $1 = variable to set
3932 dnl $2 = option name
3933 dnl $3 = default basename for library, if omitted use $2
3934 AC_DEFUN([CF_WITH_LIB_BASENAME],
3936 AC_MSG_CHECKING(for desired basename for $2 library)
3937 AC_ARG_WITH($2-libname,
3938 [ --with-$2-libname=XXX override ifelse($3,,$2,$3) basename of library],
3939 [with_lib_basename=$withval],
3940 [with_lib_basename=ifelse($3,,$2,$3)])
3941 $1="$with_lib_basename"
3945 $1=ifelse($3,,$2,$3)
3951 AC_MSG_RESULT([$]$1)
3954 dnl ---------------------------------------------------------------------------
3955 dnl CF_WITH_NCURSES_ETC version: 5 updated: 2016/02/20 19:23:20
3956 dnl -------------------
3957 dnl Use this macro for programs which use any variant of "curses", e.g.,
3958 dnl "ncurses", and "PDCurses". Programs that can use curses and some unrelated
3959 dnl library (such as slang) should use a "--with-screen=XXX" option.
3961 dnl This does not use AC_DEFUN, because that would tell autoconf to run each
3962 dnl of the macros inside this one - before this macro.
3963 define([CF_WITH_NCURSES_ETC],[
3968 AC_MSG_CHECKING(for specified curses library type)
3970 [ --with-screen=XXX use specified curses-libraries],
3971 [cf_cv_screen=$withval],[
3973 AC_ARG_WITH(ncursesw,
3974 [ --with-ncursesw use wide ncurses-libraries],
3975 [cf_cv_screen=ncursesw],[
3977 AC_ARG_WITH(ncurses,
3978 [ --with-ncurses use ncurses-libraries],
3979 [cf_cv_screen=ncurses],[
3981 AC_ARG_WITH(pdcurses,
3982 [ --with-pdcurses compile/link with pdcurses X11 library],
3983 [cf_cv_screen=pdcurses],[
3985 AC_ARG_WITH(curses-colr,
3986 [ --with-curses-colr compile/link with HPUX 10.x color-curses],
3987 [cf_cv_screen=curses_colr],[
3989 AC_ARG_WITH(curses-5lib,
3990 [ --with-curses-5lib compile/link with SunOS 5lib curses],
3991 [cf_cv_screen=curses_5lib])])])])])])
3993 AC_MSG_RESULT($cf_cv_screen)
3995 case $cf_cv_screen in
4001 CF_NCURSES_CONFIG($cf_cv_screen)
4004 CF_NCURSES_CONFIG($cf_cv_screen)
4010 AC_MSG_ERROR(unexpected screen-value: $cf_cv_screen)
4014 CF_NCURSES_PTHREADS($cf_cv_screen)
4017 dnl ---------------------------------------------------------------------------
4018 dnl CF_WITH_SCREEN_PDCURSES version: 1 updated: 2020/08/28 16:56:27
4019 dnl -----------------------
4020 dnl Call this macro before CF_ENABLE_WARNINGS for configure scripts which use
4021 dnl the "--with-screen=pdcurses" selection. Doing that allows the configure
4022 dnl script to search for the X11/Xt header files to declare (or not) the
4023 dnl symbol needed to enable "const" in those header files. If that configure
4024 dnl option is not used, then those checks are unnecessary.
4025 AC_DEFUN([CF_WITH_SCREEN_PDCURSES],[
4026 AC_PROVIDE([AC_PATH_XTRA])
4027 AC_PROVIDE([AC_PATH_X])
4028 if test -n "$with_screen" && test "x$with_screen" = "xpdcurses"
4034 dnl ---------------------------------------------------------------------------
4035 dnl CF_WITH_VALGRIND version: 1 updated: 2006/12/14 18:00:21
4036 dnl ----------------
4037 AC_DEFUN([CF_WITH_VALGRIND],[
4038 CF_NO_LEAKS_OPTION(valgrind,
4039 [ --with-valgrind test: use valgrind],
4042 dnl ---------------------------------------------------------------------------
4043 dnl CF_WITH_X11_RGB version: 2 updated: 2019/12/31 08:53:54
4045 dnl Handle configure option "--with-x11-rgb", setting these shell
4048 dnl $RGB_PATH is the option value, used for finding the X11 rgb file.
4049 dnl $no_x11_rgb is a "#" (comment) if "--without-x11-rgb" is given.
4051 dnl Most Linux's use this:
4052 dnl /usr/share/X11/rgb.txt
4053 dnl Debian uses this:
4054 dnl /etc/X11/rgb.txt
4055 dnl DragonFlyBSD ports uses this:
4056 dnl /usr/pkg/lib/X11/rgb.txt
4057 dnl FreeBSD ports use these:
4058 dnl /usr/local/lib/X11/rgb.txt
4059 dnl /usr/local/share/X11/rgb.txt
4060 dnl Mandriva has these:
4061 dnl /usr/lib/X11/rgb.txt
4062 dnl /usr/lib64/X11/rgb.txt
4063 dnl NetBSD has these
4064 dnl /usr/X11R7/lib/X11/rgb.txt
4065 dnl OpenSolaris uses
4067 dnl /usr/X11/etc/X11/rgb.txt
4068 dnl /usr/X11/share/X11/rgb.txt
4069 dnl /usr/X11/lib/X11/rgb.txt
4071 dnl /opt/local/share/X11/rgb.txt (MacPorts)
4072 dnl /opt/X11/share/X11/rgb.txt (non-ports)
4074 dnl /usr/X11/etc/X11/rgb.txt
4075 dnl /usr/X11/share/X11/rgb.txt (perhaps)
4076 dnl /usr/X11/lib/amd64/X11/rgb.txt
4077 dnl Solaris10 uses (in this order):
4078 dnl /usr/openwin/lib/X11/rgb.txt
4079 dnl /usr/X11/lib/X11/rgb.txt
4080 AC_DEFUN([CF_WITH_X11_RGB],[
4081 AC_MSG_CHECKING(for X11 rgb file)
4082 AC_ARG_WITH(x11-rgb,
4083 [ --with-x11-rgb=FILE file containing X11 rgb information (EPREFIX/lib/X11/rgb.txt)],
4084 [RGB_PATH=$withval],
4087 if test "x[$]RGB_PATH" = xauto
4089 RGB_PATH='${exec_prefix}/lib/X11/rgb.txt'
4091 /opt/local/share/X11/rgb.txt \
4092 /opt/X11/share/X11/rgb.txt \
4093 /usr/share/X11/rgb.txt \
4094 /usr/X11/share/X11/rgb.txt \
4095 /usr/X11/lib/X11/rgb.txt \
4096 /usr/lib/X11/rgb.txt \
4098 /usr/pkg/lib/X11/rgb.txt \
4099 /usr/X11R7/lib/X11/rgb.txt \
4100 /usr/X11R6/lib/X11/rgb.txt \
4101 /usr/X11R5/lib/X11/rgb.txt \
4102 /usr/X11R4/lib/X11/rgb.txt \
4103 /usr/local/lib/X11/rgb.txt \
4104 /usr/local/share/X11/rgb.txt \
4105 /usr/lib64/X11/rgb.txt
4107 if test -f "$cf_path" ; then
4114 CF_PATH_SYNTAX(cf_path)
4117 AC_MSG_RESULT($RGB_PATH)
4119 AC_DEFINE_UNQUOTED(RGB_PATH,"$cf_path",[Define to the full pathname of rgb.txt])
4122 if test "$RGB_PATH" = no
4126 AC_SUBST(no_x11_rgb)
4128 dnl ---------------------------------------------------------------------------
4129 dnl CF_XOPEN_CURSES version: 16 updated: 2021/01/02 09:31:20
4131 dnl Test if we should define X/Open source for curses, needed on Digital Unix
4132 dnl 4.x, to see the extended functions, but breaks on IRIX 6.x.
4134 dnl The getbegyx() check is needed for HPUX, which omits legacy macros such
4135 dnl as getbegy(). The latter is better design, but the former is standard.
4136 AC_DEFUN([CF_XOPEN_CURSES],
4138 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
4139 AC_CACHE_CHECK(definition to turn on extended curses functions,cf_cv_need_xopen_extension,[
4140 cf_cv_need_xopen_extension=unknown
4143 #include <${cf_cv_ncurses_header:-curses.h}>],[
4144 #if defined(NCURSES_VERSION_PATCH)
4145 #if (NCURSES_VERSION_PATCH < 20100501) && (NCURSES_VERSION_PATCH >= 20100403)
4149 #ifdef NCURSES_VERSION
4151 int check2 = curs_set((int)sizeof(check));
4153 long x = winnstr(stdscr, "", 0);
4155 #ifdef NCURSES_VERSION
4158 getbegyx(stdscr, y1, x1);
4163 [cf_cv_need_xopen_extension=none],
4165 for cf_try_xopen_extension in _XOPEN_SOURCE_EXTENDED NCURSES_WIDECHAR
4168 #define $cf_try_xopen_extension 1
4170 #include <${cf_cv_ncurses_header:-curses.h}>],[
4171 #ifdef NCURSES_VERSION
4173 int check2 = curs_set((int)sizeof(check));
4175 long x = winnstr(stdscr, "", 0);
4177 getbegyx(stdscr, y1, x1);
4178 #ifdef NCURSES_VERSION
4185 [cf_cv_need_xopen_extension=$cf_try_xopen_extension; break])
4190 case "$cf_cv_need_xopen_extension" in
4192 CF_APPEND_TEXT(CPPFLAGS,-D$cf_cv_need_xopen_extension)
4197 dnl ---------------------------------------------------------------------------
4198 dnl CF_XOPEN_SOURCE version: 57 updated: 2021/01/01 16:53:59
4200 dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
4201 dnl or adapt to the vendor's definitions to get equivalent functionality,
4202 dnl without losing the common non-POSIX features.
4205 dnl $1 is the nominal value for _XOPEN_SOURCE
4206 dnl $2 is the nominal value for _POSIX_C_SOURCE
4207 AC_DEFUN([CF_XOPEN_SOURCE],[
4208 AC_REQUIRE([AC_CANONICAL_HOST])
4209 AC_REQUIRE([CF_POSIX_VISIBLE])
4211 if test "$cf_cv_posix_visible" = no; then
4213 cf_XOPEN_SOURCE=ifelse([$1],,500,[$1])
4214 cf_POSIX_C_SOURCE=ifelse([$2],,199506L,[$2])
4219 cf_xopen_source="-D_ALL_SOURCE"
4225 cf_xopen_source="-D_APPLE_C_SOURCE"
4228 cf_xopen_source="-D_DARWIN_C_SOURCE"
4231 (freebsd*|dragonfly*|midnightbsd*)
4232 # 5.x headers associate
4233 # _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L
4234 # _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L
4235 cf_POSIX_C_SOURCE=200112L
4237 cf_xopen_source="-D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
4240 cf_xopen_source="-D_HPUX_SOURCE -D_XOPEN_SOURCE=500"
4243 cf_xopen_source="-D_HPUX_SOURCE"
4246 cf_xopen_source="-D_SGI_SOURCE"
4249 (linux*|uclinux*|gnu*|mint*|k*bsd*-gnu|cygwin)
4250 CF_GNU_SOURCE($cf_XOPEN_SOURCE)
4253 cf_xopen_source="-D_NETBSD_SOURCE" # POSIX.1-2001 features are ifdef'd with this...
4256 # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <sys/select.h> and other headers which use u_int / u_short types
4258 CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
4261 cf_xopen_source="-D_NETBSD_SOURCE" # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
4264 # setting _XOPEN_SOURCE lower than 500 breaks g++ compile with wchar.h, needed for ncursesw
4265 cf_xopen_source="-D_BSD_SOURCE"
4269 # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
4272 cf_xopen_source="-D_OSF_SOURCE"
4275 cf_xopen_source="-D_QNX_SOURCE"
4278 # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
4281 cf_xopen_source="-D__EXTENSIONS__"
4282 cf_cv_xopen_source=broken
4284 (sysv4.2uw2.*) # Novell/SCO UnixWare 2.x (tested on 2.1.2)
4290 CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
4294 if test -n "$cf_xopen_source" ; then
4295 CF_ADD_CFLAGS($cf_xopen_source,true)
4298 dnl In anything but the default case, we may have system-specific setting
4299 dnl which is still not guaranteed to provide all of the entrypoints that
4300 dnl _XOPEN_SOURCE would yield.
4301 if test -n "$cf_XOPEN_SOURCE" && test -z "$cf_cv_xopen_source" ; then
4302 AC_MSG_CHECKING(if _XOPEN_SOURCE really is set)
4303 AC_TRY_COMPILE([#include <stdlib.h>],[
4304 #ifndef _XOPEN_SOURCE
4307 [cf_XOPEN_SOURCE_set=yes],
4308 [cf_XOPEN_SOURCE_set=no])
4309 AC_MSG_RESULT($cf_XOPEN_SOURCE_set)
4310 if test "$cf_XOPEN_SOURCE_set" = yes
4312 AC_TRY_COMPILE([#include <stdlib.h>],[
4313 #if (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE
4316 [cf_XOPEN_SOURCE_set_ok=yes],
4317 [cf_XOPEN_SOURCE_set_ok=no])
4318 if test "$cf_XOPEN_SOURCE_set_ok" = no
4320 AC_MSG_WARN(_XOPEN_SOURCE is lower than requested)
4326 fi # cf_cv_posix_visible
4328 dnl ---------------------------------------------------------------------------
4329 dnl CF_X_ATHENA version: 24 updated: 2020/03/10 18:53:47
4331 dnl Check for Xaw (Athena) libraries
4333 dnl Sets $cf_x_athena according to the flavor of Xaw which is used.
4334 AC_DEFUN([CF_X_ATHENA],
4336 cf_x_athena=${cf_x_athena:-Xaw}
4338 AC_MSG_CHECKING(if you want to link with Xaw 3d library)
4341 [ --with-Xaw3d link with Xaw 3d library])
4342 if test "$withval" = yes ; then
4349 AC_MSG_CHECKING(if you want to link with Xaw 3d xft library)
4351 AC_ARG_WITH(Xaw3dxft,
4352 [ --with-Xaw3dxft link with Xaw 3d xft library])
4353 if test "$withval" = yes ; then
4354 cf_x_athena=Xaw3dxft
4360 AC_MSG_CHECKING(if you want to link with neXT Athena library)
4363 [ --with-neXtaw link with neXT Athena library])
4364 if test "$withval" = yes ; then
4371 AC_MSG_CHECKING(if you want to link with Athena-Plus library)
4373 AC_ARG_WITH(XawPlus,
4374 [ --with-XawPlus link with Athena-Plus library])
4375 if test "$withval" = yes ; then
4384 if test "$PKG_CONFIG" != none ; then
4386 test "$cf_x_athena" = Xaw && cf_athena_list="xaw8 xaw7 xaw6"
4387 for cf_athena_pkg in \
4390 ${cf_x_athena}-devel \
4392 lib${cf_x_athena}-devel
4394 CF_TRY_PKG_CONFIG($cf_athena_pkg,[
4395 cf_x_athena_lib="$cf_pkgconfig_libs"
4396 CF_UPPER(cf_x_athena_LIBS,HAVE_LIB_$cf_x_athena)
4397 AC_DEFINE_UNQUOTED($cf_x_athena_LIBS)
4401 AC_CACHE_CHECK(for usable $cf_x_athena/Xmu package,cf_cv_xaw_compat,[
4403 #include <X11/Xmu/CharSet.h>
4405 int check = XmuCompareISOLatin1("big", "small");
4407 ],[cf_cv_xaw_compat=yes],[cf_cv_xaw_compat=no])])
4409 if test "$cf_cv_xaw_compat" = no
4411 # workaround for broken ".pc" files...
4412 case "$cf_x_athena_lib" in
4416 CF_VERBOSE(work around broken package)
4418 cf_first_lib=`echo "$cf_save_xmu" | sed -e 's/^[ ][ ]*//' -e 's/ .*//'`
4419 CF_TRY_PKG_CONFIG(xmu,[
4421 CF_ADD_LIB_AFTER($cf_first_lib,$cf_pkgconfig_libs)
4423 CF_ADD_LIB_AFTER($cf_first_lib,-lXmu)
4434 if test -z "$cf_x_athena_lib" ; then
4437 CF_X_ATHENA_CPPFLAGS($cf_x_athena)
4438 CF_X_ATHENA_LIBS($cf_x_athena)
4441 dnl ---------------------------------------------------------------------------
4442 dnl CF_X_ATHENA_CPPFLAGS version: 9 updated: 2020/12/31 10:54:15
4443 dnl --------------------
4444 dnl Normally invoked by CF_X_ATHENA, with $1 set to the appropriate flavor of
4445 dnl the Athena widgets, e.g., Xaw, Xaw3d, neXtaw.
4446 AC_DEFUN([CF_X_ATHENA_CPPFLAGS],
4448 AC_REQUIRE([AC_PATH_XTRA])
4449 cf_x_athena_root=ifelse([$1],,Xaw,[$1])
4452 for cf_path in default \
4453 /usr/contrib/X11R6 \
4454 /usr/contrib/X11R5 \
4458 if test -z "$cf_x_athena_inc" ; then
4459 CF_SAVE_XTRA_FLAGS([CF_X_ATHENA_CPPFLAGS])
4460 cf_test=X11/$cf_x_athena_root/SimpleMenu.h
4461 if test "$cf_path" != default ; then
4462 CF_APPEND_TEXT(CPPFLAGS,-I$cf_path/include)
4463 AC_MSG_CHECKING(for $cf_test in $cf_path)
4465 AC_MSG_CHECKING(for $cf_test)
4468 #include <X11/Intrinsic.h>
4469 #include <$cf_test>],[],
4472 AC_MSG_RESULT($cf_result)
4473 CF_RESTORE_XTRA_FLAGS([CF_X_ATHENA_CPPFLAGS])
4474 if test "$cf_result" = yes ; then
4475 test "$cf_path" = default && cf_x_athena_inc=default
4476 test "$cf_path" != default && cf_x_athena_inc="$cf_path/include"
4482 if test -z "$cf_x_athena_inc" ; then
4483 AC_MSG_WARN([Unable to find Athena header files])
4484 elif test "$cf_x_athena_inc" != default ; then
4485 CF_APPEND_TEXT(CPPFLAGS,-I$cf_x_athena_inc)
4488 dnl ---------------------------------------------------------------------------
4489 dnl CF_X_ATHENA_LIBS version: 13 updated: 2020/01/11 18:16:10
4490 dnl ----------------
4491 dnl Normally invoked by CF_X_ATHENA, with $1 set to the appropriate flavor of
4492 dnl the Athena widgets, e.g., Xaw, Xaw3d, neXtaw.
4493 AC_DEFUN([CF_X_ATHENA_LIBS],
4494 [AC_REQUIRE([CF_X_TOOLKIT])
4495 cf_x_athena_root=ifelse([$1],,Xaw,[$1])
4498 for cf_path in default \
4499 /usr/contrib/X11R6 \
4500 /usr/contrib/X11R5 \
4505 ${cf_x_athena_root} \
4506 ${cf_x_athena_root}7 \
4507 ${cf_x_athena_root}6
4511 "-l$cf_lib -lXpm -lXmu" \
4512 "-l${cf_lib}_s -lXmu_s"
4514 test -n "$cf_x_athena_lib" && break
4516 CF_SAVE_XTRA_FLAGS([CF_X_ATHENA_LIBS])
4517 cf_test=XawSimpleMenuAddGlobalActions
4518 test "$cf_path" != default && cf_libs="-L$cf_path/lib $cf_libs"
4519 CF_ADD_LIBS($cf_libs)
4520 AC_MSG_CHECKING(for $cf_test in $cf_libs)
4522 #include <X11/Intrinsic.h>
4523 #include <X11/$cf_x_athena_root/SimpleMenu.h>
4525 $cf_test((XtAppContext) 0)],
4528 AC_MSG_RESULT($cf_result)
4529 CF_RESTORE_XTRA_FLAGS([CF_X_ATHENA_LIBS])
4531 if test "$cf_result" = yes ; then
4532 cf_x_athena_lib="$cf_libs"
4536 test -n "$cf_x_athena_lib" && break
4540 if test -z "$cf_x_athena_lib" ; then
4542 [Unable to successfully link Athena library (-l$cf_x_athena_root) with test program])
4545 CF_ADD_LIBS($cf_x_athena_lib)
4546 CF_UPPER(cf_x_athena_LIBS,HAVE_LIB_$cf_x_athena)
4547 AC_DEFINE_UNQUOTED($cf_x_athena_LIBS)
4549 dnl ---------------------------------------------------------------------------
4550 dnl CF_X_EXT version: 3 updated: 2010/06/02 05:03:05
4552 AC_DEFUN([CF_X_EXT],[
4553 CF_TRY_PKG_CONFIG(Xext,,[
4554 AC_CHECK_LIB(Xext,XextCreateExtension,
4555 [CF_ADD_LIB(Xext)])])
4557 dnl ---------------------------------------------------------------------------
4558 dnl CF_X_TOOLKIT version: 26 updated: 2021/01/02 09:31:20
4560 dnl Check for X Toolkit libraries
4561 AC_DEFUN([CF_X_TOOLKIT],
4563 AC_REQUIRE([AC_PATH_XTRA])
4564 AC_REQUIRE([CF_CHECK_CACHE])
4566 # OSX is schizoid about who owns /usr/X11 (old) versus /opt/X11 (new) (and
4567 # in some cases has installed dummy files in the former, other cases replaced
4568 # it with a link to the new location). This complicates the configure script.
4569 # Check for that pitfall, and recover using pkg-config
4571 # If none of these are set, the configuration is almost certainly broken.
4572 if test -z "${X_CFLAGS}${X_PRE_LIBS}${X_LIBS}${X_EXTRA_LIBS}"
4574 CF_TRY_PKG_CONFIG(x11,,[AC_MSG_WARN(unable to find X11 library)])
4575 CF_TRY_PKG_CONFIG(ice,,[AC_MSG_WARN(unable to find ICE library)])
4576 CF_TRY_PKG_CONFIG(sm,,[AC_MSG_WARN(unable to find SM library)])
4577 CF_TRY_PKG_CONFIG(xt,,[AC_MSG_WARN(unable to find Xt library)])
4579 LIBS="$X_PRE_LIBS $LIBS $X_EXTRA_LIBS"
4584 CF_TRY_PKG_CONFIG(xt,[
4590 # we have an "xt" package, but it may omit Xt's dependency on X11
4591 AC_CACHE_CHECK(for usable X dependency,cf_cv_xt_x11_compat,[
4593 #include <X11/Xlib.h>
4595 int rc1 = XDrawLine((Display*) 0, (Drawable) 0, (GC) 0, 0, 0, 0, 0);
4596 int rc2 = XClearWindow((Display*) 0, (Window) 0);
4597 int rc3 = XMoveWindow((Display*) 0, (Window) 0, 0, 0);
4598 int rc4 = XMoveResizeWindow((Display*)0, (Window)0, 0, 0, 0, 0);
4599 ],[cf_cv_xt_x11_compat=yes],[cf_cv_xt_x11_compat=no])])
4600 if test "$cf_cv_xt_x11_compat" = no
4602 CF_VERBOSE(work around broken X11 dependency)
4603 # 2010/11/19 - good enough until a working Xt on Xcb is delivered.
4604 CF_TRY_PKG_CONFIG(x11,,[CF_ADD_LIB_AFTER(-lXt,-lX11)])
4609 AC_CACHE_CHECK(for usable X Toolkit package,cf_cv_xt_ice_compat,[
4611 #include <X11/Shell.h>
4612 ],[int num = IceConnectionNumber(0); (void) num
4613 ],[cf_cv_xt_ice_compat=yes],[cf_cv_xt_ice_compat=no])])
4615 if test "$cf_cv_xt_ice_compat" = no
4617 # workaround for broken ".pc" files used for X Toolkit.
4618 case "x$X_PRE_LIBS" in
4624 CF_VERBOSE(work around broken ICE dependency)
4625 CF_TRY_PKG_CONFIG(ice,
4626 [CF_TRY_PKG_CONFIG(sm)],
4627 [CF_ADD_LIB_AFTER(-lXt,$X_PRE_LIBS)])
4637 LDFLAGS="$X_LIBS $LDFLAGS"
4638 CF_CHECK_CFLAGS($X_CFLAGS)
4640 AC_CHECK_FUNC(XOpenDisplay,,[
4641 AC_CHECK_LIB(X11,XOpenDisplay,
4642 [CF_ADD_LIB(X11)])])
4644 AC_CHECK_FUNC(XtAppInitialize,,[
4645 AC_CHECK_LIB(Xt, XtAppInitialize,
4646 [AC_DEFINE(HAVE_LIBXT,1,[Define to 1 if we can compile with the Xt library])
4648 LIBS="-lXt $LIBS"])])
4651 if test "$cf_have_X_LIBS" = no ; then
4653 [Unable to successfully link X Toolkit library (-lXt) with
4654 test program. You will have to check and add the proper libraries by hand
4658 dnl ---------------------------------------------------------------------------
4659 dnl CF__CURSES_DATA version: 3 updated: 2021/01/04 19:45:09
4661 dnl Attempt to make a copy of a curses data item. This is needed in the
4662 dnl check-data configure tests when using ncurses, because the symbol may be
4663 dnl actually a function return-value. That could happen if the linker is
4664 dnl broken (does not resolve data-only references), or if ncurses is configured
4665 dnl to support re-entrant code.
4668 define([CF__CURSES_DATA],[
4669 #if defined($2) && ((defined(NCURSES_WRAPPED_VAR) && (NCURSES_VERSION_PATCH < 20200208)) || defined(NCURSES_BROKEN_LINKER) || defined(NCURSES_REENTRANT))
4670 const void *$1 = (const void *)($2);
4672 const void *$1 = &($2);
4674 fprintf(stderr, "testing linkage of $2:%p\\n", (const void *)$1);
4676 dnl ---------------------------------------------------------------------------
4677 dnl CF__CURSES_HEAD version: 2 updated: 2010/10/23 15:54:49
4679 dnl Define a reusable chunk which includes <curses.h> and <term.h> when they
4680 dnl are both available.
4681 define([CF__CURSES_HEAD],[
4683 #include <xcurses.h>
4684 char * XCursesProgramName = "test";
4686 #include <${cf_cv_ncurses_header:-curses.h}>
4687 #if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H)
4688 #include <ncursesw/term.h>
4689 #elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H)
4690 #include <ncurses/term.h>
4691 #elif defined(HAVE_TERM_H)