1 dnl***************************************************************************
2 dnl Copyright (c) 2003-2017,2018 Free Software Foundation, Inc. *
4 dnl Permission is hereby granted, free of charge, to any person obtaining a *
5 dnl copy of this software and associated documentation files (the *
6 dnl "Software"), to deal in the Software without restriction, including *
7 dnl without limitation the rights to use, copy, modify, merge, publish, *
8 dnl distribute, distribute with modifications, sublicense, and/or sell *
9 dnl copies of the Software, and to permit persons to whom the Software is *
10 dnl furnished to do so, subject to the following conditions: *
12 dnl The above copyright notice and this permission notice shall be included *
13 dnl in all copies or substantial portions of the Software. *
15 dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
16 dnl OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
17 dnl MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
18 dnl IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
19 dnl DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
20 dnl OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
21 dnl THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
23 dnl Except as contained in this notice, the name(s) of the above copyright *
24 dnl holders shall not be used in advertising or otherwise to promote the *
25 dnl sale, use or other dealings in this Software without prior written *
27 dnl***************************************************************************
29 dnl $Id: aclocal.m4,v 1.162 2018/12/15 19:58:40 tom Exp $
31 dnl Author: Thomas E. Dickey
33 dnl Macros used in NCURSES test programs auto-configuration script.
35 dnl These macros are maintained separately from NCURSES. The copyright on
36 dnl this file applies to the aggregation of macros and does not affect use of
37 dnl these macros in other applications.
39 dnl See http://invisible-island.net/autoconf/ for additional information.
41 dnl ---------------------------------------------------------------------------
42 dnl ---------------------------------------------------------------------------
43 dnl AM_LANGINFO_CODESET version: 4 updated: 2015/04/18 08:56:57
44 dnl -------------------
45 dnl Inserted as requested by gettext 0.10.40
46 dnl File from /usr/share/aclocal
48 dnl ====================
51 dnl From Bruno Haible.
52 AC_DEFUN([AM_LANGINFO_CODESET],
54 AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset,
55 [AC_TRY_LINK([#include <langinfo.h>],
56 [char* cs = nl_langinfo(CODESET);],
57 am_cv_langinfo_codeset=yes,
58 am_cv_langinfo_codeset=no)
60 if test $am_cv_langinfo_codeset = yes; then
61 AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
62 [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
65 dnl ---------------------------------------------------------------------------
66 dnl CF_ACVERSION_CHECK version: 5 updated: 2014/06/04 19:11:49
67 dnl ------------------
68 dnl Conditionally generate script according to whether we're using a given autoconf.
70 dnl $1 = version to compare against
71 dnl $2 = code to use if AC_ACVERSION is at least as high as $1.
72 dnl $3 = code to use if AC_ACVERSION is older than $1.
73 define([CF_ACVERSION_CHECK],
75 ifdef([AC_ACVERSION], ,[ifdef([AC_AUTOCONF_VERSION],[m4_copy([AC_AUTOCONF_VERSION],[AC_ACVERSION])],[m4_copy([m4_PACKAGE_VERSION],[AC_ACVERSION])])])dnl
76 ifdef([m4_version_compare],
77 [m4_if(m4_version_compare(m4_defn([AC_ACVERSION]), [$1]), -1, [$3], [$2])],
78 [CF_ACVERSION_COMPARE(
79 AC_PREREQ_CANON(AC_PREREQ_SPLIT([$1])),
80 AC_PREREQ_CANON(AC_PREREQ_SPLIT(AC_ACVERSION)), AC_ACVERSION, [$2], [$3])])])dnl
81 dnl ---------------------------------------------------------------------------
82 dnl CF_ACVERSION_COMPARE version: 3 updated: 2012/10/03 18:39:53
83 dnl --------------------
84 dnl CF_ACVERSION_COMPARE(MAJOR1, MINOR1, TERNARY1,
85 dnl MAJOR2, MINOR2, TERNARY2,
86 dnl PRINTABLE2, not FOUND, FOUND)
87 define([CF_ACVERSION_COMPARE],
88 [ifelse(builtin([eval], [$2 < $5]), 1,
89 [ifelse([$8], , ,[$8])],
90 [ifelse([$9], , ,[$9])])])dnl
91 dnl ---------------------------------------------------------------------------
92 dnl CF_ADD_CFLAGS version: 13 updated: 2017/02/25 18:57:40
94 dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS
95 dnl The second parameter if given makes this macro verbose.
97 dnl Put any preprocessor definitions that use quoted strings in $EXTRA_CPPFLAGS,
98 dnl to simplify use of $CPPFLAGS in compiler checks, etc., that are easily
99 dnl confused by the quotes (which require backslashes to keep them usable).
100 AC_DEFUN([CF_ADD_CFLAGS],
105 cf_new_extra_cppflags=
107 for cf_add_cflags in $1
109 case $cf_fix_cppflags in
111 case $cf_add_cflags in
112 (-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C)
113 case $cf_add_cflags in
115 cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[[^=]]*='\''\"[[^"]]*//'`
117 test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
118 && test -z "${cf_tst_cflags}" \
119 && cf_fix_cppflags=yes
121 if test $cf_fix_cppflags = yes ; then
122 CF_APPEND_TEXT(cf_new_extra_cppflags,$cf_add_cflags)
124 elif test "${cf_tst_cflags}" = "\"'" ; then
125 CF_APPEND_TEXT(cf_new_extra_cppflags,$cf_add_cflags)
134 case $cf_add_cflags in
136 cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
137 CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,$cf_tst_cppflags)
140 CF_APPEND_TEXT(cf_new_cppflags,$cf_add_cflags)
145 CF_APPEND_TEXT(cf_new_cflags,$cf_add_cflags)
150 CF_APPEND_TEXT(cf_new_extra_cppflags,$cf_add_cflags)
152 cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[[^"]]*"'\''//'`
154 test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
155 && test -z "${cf_tst_cflags}" \
156 && cf_fix_cppflags=no
161 if test -n "$cf_new_cflags" ; then
162 ifelse([$2],,,[CF_VERBOSE(add to \$CFLAGS $cf_new_cflags)])
163 CF_APPEND_TEXT(CFLAGS,$cf_new_cflags)
166 if test -n "$cf_new_cppflags" ; then
167 ifelse([$2],,,[CF_VERBOSE(add to \$CPPFLAGS $cf_new_cppflags)])
168 CF_APPEND_TEXT(CPPFLAGS,$cf_new_cppflags)
171 if test -n "$cf_new_extra_cppflags" ; then
172 ifelse([$2],,,[CF_VERBOSE(add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags)])
173 CF_APPEND_TEXT(EXTRA_CPPFLAGS,$cf_new_extra_cppflags)
176 AC_SUBST(EXTRA_CPPFLAGS)
179 dnl ---------------------------------------------------------------------------
180 dnl CF_ADD_INCDIR version: 15 updated: 2018/06/20 20:23:13
182 dnl Add an include-directory to $CPPFLAGS. Don't add /usr/include, since it's
183 dnl redundant. We don't normally need to add -I/usr/local/include for gcc,
184 dnl but old versions (and some misinstalled ones) need that. To make things
185 dnl worse, gcc 3.x may give error messages if -I/usr/local/include is added to
186 dnl the include-path).
187 AC_DEFUN([CF_ADD_INCDIR],
189 if test -n "$1" ; then
190 for cf_add_incdir in $1
192 while test $cf_add_incdir != /usr/include
194 if test -d $cf_add_incdir
197 if test -n "$CFLAGS$CPPFLAGS" ; then
198 # a loop is needed to ensure we can add subdirs of existing dirs
199 for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
200 if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
201 cf_have_incdir=yes; break
206 if test "$cf_have_incdir" = no ; then
207 if test "$cf_add_incdir" = /usr/local/include ; then
210 cf_save_CPPFLAGS=$CPPFLAGS
211 CF_APPEND_TEXT(CPPFLAGS,-I$cf_add_incdir)
212 AC_TRY_COMPILE([#include <stdio.h>],
215 [cf_have_incdir=yes])
216 CPPFLAGS=$cf_save_CPPFLAGS
221 if test "$cf_have_incdir" = no ; then
222 CF_VERBOSE(adding $cf_add_incdir to include-path)
223 ifelse([$2],,CPPFLAGS,[$2])="$ifelse([$2],,CPPFLAGS,[$2]) -I$cf_add_incdir"
225 cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
226 test "$cf_top_incdir" = "$cf_add_incdir" && break
227 cf_add_incdir="$cf_top_incdir"
238 dnl ---------------------------------------------------------------------------
239 dnl CF_ADD_LIB version: 2 updated: 2010/06/02 05:03:05
241 dnl Add a library, used to enforce consistency.
243 dnl $1 = library to add, without the "-l"
244 dnl $2 = variable to update (default $LIBS)
245 AC_DEFUN([CF_ADD_LIB],[CF_ADD_LIBS(-l$1,ifelse($2,,LIBS,[$2]))])dnl
246 dnl ---------------------------------------------------------------------------
247 dnl CF_ADD_LIBDIR version: 10 updated: 2015/04/18 08:56:57
249 dnl Adds to the library-path
251 dnl Some machines have trouble with multiple -L options.
253 dnl $1 is the (list of) directory(s) to add
254 dnl $2 is the optional name of the variable to update (default LDFLAGS)
256 AC_DEFUN([CF_ADD_LIBDIR],
258 if test -n "$1" ; then
259 for cf_add_libdir in $1
261 if test $cf_add_libdir = /usr/lib ; then
263 elif test -d $cf_add_libdir
266 if test -n "$LDFLAGS$LIBS" ; then
267 # a loop is needed to ensure we can add subdirs of existing dirs
268 for cf_test_libdir in $LDFLAGS $LIBS ; do
269 if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
270 cf_have_libdir=yes; break
274 if test "$cf_have_libdir" = no ; then
275 CF_VERBOSE(adding $cf_add_libdir to library-path)
276 ifelse([$2],,LDFLAGS,[$2])="-L$cf_add_libdir $ifelse([$2],,LDFLAGS,[$2])"
282 dnl ---------------------------------------------------------------------------
283 dnl CF_ADD_LIBS version: 2 updated: 2014/07/13 14:33:27
285 dnl Add one or more libraries, used to enforce consistency. Libraries are
286 dnl prepended to an existing list, since their dependencies are assumed to
287 dnl already exist in the list.
289 dnl $1 = libraries to add, with the "-l", etc.
290 dnl $2 = variable to update (default $LIBS)
291 AC_DEFUN([CF_ADD_LIBS],[
293 # Filter out duplicates - this happens with badly-designed ".pc" files...
294 for cf_add_1lib in [$]ifelse($2,,LIBS,[$2])
296 for cf_add_2lib in $cf_add_libs
298 if test "x$cf_add_1lib" = "x$cf_add_2lib"
304 test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
306 ifelse($2,,LIBS,[$2])="$cf_add_libs"
308 dnl ---------------------------------------------------------------------------
309 dnl CF_ADD_LIB_AFTER version: 3 updated: 2013/07/09 21:27:22
311 dnl Add a given library after another, e.g., following the one it satisfies a
314 dnl $1 = the first library
315 dnl $2 = its dependency
316 AC_DEFUN([CF_ADD_LIB_AFTER],[
317 CF_VERBOSE(...before $LIBS)
318 LIBS=`echo "$LIBS" | sed -e "s/[[ ]][[ ]]*/ /g" -e "s%$1 %$1 $2 %" -e 's% % %g'`
319 CF_VERBOSE(...after $LIBS)
321 dnl ---------------------------------------------------------------------------
322 dnl CF_ADD_SUBDIR_PATH version: 4 updated: 2013/10/08 17:47:05
323 dnl ------------------
324 dnl Append to a search-list for a nonstandard header/lib-file
325 dnl $1 = the variable to return as result
326 dnl $2 = the package name
327 dnl $3 = the subdirectory, e.g., bin, include or lib
328 dnl $4 = the directory under which we will test for subdirectories
329 dnl $5 = a directory that we do not want $4 to match
330 AC_DEFUN([CF_ADD_SUBDIR_PATH],
332 test "x$4" != "x$5" && \
334 ifelse([$5],NONE,,[(test -z "$5" || test x$5 = xNONE || test "x$4" != "x$5") &&]) {
335 test -n "$verbose" && echo " ... testing for $3-directories under $4"
336 test -d $4/$3 && $1="[$]$1 $4/$3"
337 test -d $4/$3/$2 && $1="[$]$1 $4/$3/$2"
338 test -d $4/$3/$2/$3 && $1="[$]$1 $4/$3/$2/$3"
339 test -d $4/$2/$3 && $1="[$]$1 $4/$2/$3"
340 test -d $4/$2/$3/$2 && $1="[$]$1 $4/$2/$3/$2"
343 dnl ---------------------------------------------------------------------------
344 dnl CF_APPEND_TEXT version: 1 updated: 2017/02/25 18:58:55
346 dnl use this macro for appending text without introducing an extra blank at
348 define([CF_APPEND_TEXT],
350 test -n "[$]$1" && $1="[$]$1 "
353 dnl ---------------------------------------------------------------------------
354 dnl CF_ARG_DISABLE version: 3 updated: 1999/03/30 17:24:31
356 dnl Allow user to disable a normally-on option.
357 AC_DEFUN([CF_ARG_DISABLE],
358 [CF_ARG_OPTION($1,[$2],[$3],[$4],yes)])dnl
359 dnl ---------------------------------------------------------------------------
360 dnl CF_ARG_ENABLE version: 3 updated: 1999/03/30 17:24:31
362 dnl Allow user to enable a normally-off option.
363 AC_DEFUN([CF_ARG_ENABLE],
364 [CF_ARG_OPTION($1,[$2],[$3],[$4],no)])dnl
365 dnl ---------------------------------------------------------------------------
366 dnl CF_ARG_OPTION version: 5 updated: 2015/05/10 19:52:14
368 dnl Restricted form of AC_ARG_ENABLE that ensures user doesn't give bogus
374 dnl $3 = action to perform if option is not default
375 dnl $4 = action if perform if option is default
376 dnl $5 = default option value (either 'yes' or 'no')
377 AC_DEFUN([CF_ARG_OPTION],
378 [AC_ARG_ENABLE([$1],[$2],[test "$enableval" != ifelse([$5],no,yes,no) && enableval=ifelse([$5],no,no,yes)
379 if test "$enableval" != "$5" ; then
381 ,[ $3]) ifelse([$4],,,[
384 fi],[enableval=$5 ifelse([$4],,,[
388 dnl ---------------------------------------------------------------------------
389 dnl CF_CC_ENV_FLAGS version: 9 updated: 2018/07/29 18:03:26
391 dnl Check for user's environment-breakage by stuffing CFLAGS/CPPFLAGS content
392 dnl into CC. This will not help with broken scripts that wrap the compiler
393 dnl with options, but eliminates a more common category of user confusion.
395 dnl In particular, it addresses the problem of being able to run the C
396 dnl preprocessor in a consistent manner.
398 dnl Caveat: this also disallows blanks in the pathname for the compiler, but
399 dnl the nuisance of having inconsistent settings for compiler and preprocessor
400 dnl outweighs that limitation.
401 AC_DEFUN([CF_CC_ENV_FLAGS],
403 # This should have been defined by AC_PROG_CC
406 AC_MSG_CHECKING(\$CFLAGS variable)
409 AC_MSG_RESULT(broken)
410 AC_MSG_WARN(your environment uses the CFLAGS variable to hold CPPFLAGS options)
413 for cf_arg in $cf_flags
415 CF_ADD_CFLAGS($cf_arg)
423 AC_MSG_CHECKING(\$CC variable)
426 AC_MSG_RESULT(broken)
427 AC_MSG_WARN(your environment uses the CC variable to hold CFLAGS/CPPFLAGS options)
429 cf_prog=`echo "$CC" | sed -e 's/ / /g' -e 's/[[ ]]* / /g' -e 's/[[ ]]*[[ ]]-[[^ ]].*//'`
430 cf_flags=`echo "$CC" | ${AWK:-awk} -v prog="$cf_prog" '{ printf("%s", [substr]([$]0,1+length(prog))); }'`
432 for cf_arg in $cf_flags
436 CF_ADD_CFLAGS($cf_arg)
443 CF_VERBOSE(resulting CC: '$CC')
444 CF_VERBOSE(resulting CFLAGS: '$CFLAGS')
445 CF_VERBOSE(resulting CPPFLAGS: '$CPPFLAGS')
452 dnl ---------------------------------------------------------------------------
453 dnl CF_CHECK_CACHE version: 12 updated: 2012/10/02 20:55:03
455 dnl Check if we're accidentally using a cache from a different machine.
456 dnl Derive the system name, as a check for reusing the autoconf cache.
458 dnl If we've packaged config.guess and config.sub, run that (since it does a
459 dnl better job than uname). Normally we'll use AC_CANONICAL_HOST, but allow
460 dnl an extra parameter that we may override, e.g., for AC_CANONICAL_SYSTEM
461 dnl which is useful in cross-compiles.
463 dnl Note: we would use $ac_config_sub, but that is one of the places where
464 dnl autoconf 2.5x broke compatibility with autoconf 2.13
465 AC_DEFUN([CF_CHECK_CACHE],
467 if test -f $srcdir/config.guess || test -f $ac_aux_dir/config.guess ; then
468 ifelse([$1],,[AC_CANONICAL_HOST],[$1])
469 system_name="$host_os"
471 system_name="`(uname -s -r) 2>/dev/null`"
472 if test -z "$system_name" ; then
473 system_name="`(hostname) 2>/dev/null`"
476 test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name",[Define to the system name.])
477 AC_CACHE_VAL(cf_cv_system_name,[cf_cv_system_name="$system_name"])
479 test -z "$system_name" && system_name="$cf_cv_system_name"
480 test -n "$cf_cv_system_name" && AC_MSG_RESULT(Configuring for $cf_cv_system_name)
482 if test ".$system_name" != ".$cf_cv_system_name" ; then
483 AC_MSG_RESULT(Cached system name ($system_name) does not agree with actual ($cf_cv_system_name))
484 AC_MSG_ERROR("Please remove config.cache and try again.")
487 dnl ---------------------------------------------------------------------------
488 dnl CF_CHECK_CFLAGS version: 3 updated: 2014/07/22 05:32:57
490 dnl Conditionally add to $CFLAGS and $CPPFLAGS values which are derived from
491 dnl a build-configuration such as imake. These have the pitfall that they
492 dnl often contain compiler-specific options which we cannot use, mixed with
493 dnl preprocessor options that we usually can.
494 AC_DEFUN([CF_CHECK_CFLAGS],
496 CF_VERBOSE(checking additions to CFLAGS)
497 cf_check_cflags="$CFLAGS"
498 cf_check_cppflags="$CPPFLAGS"
499 CF_ADD_CFLAGS($1,yes)
500 if test "x$cf_check_cflags" != "x$CFLAGS" ; then
501 AC_TRY_LINK([#include <stdio.h>],[printf("Hello world");],,
502 [CF_VERBOSE(test-compile failed. Undoing change to \$CFLAGS)
503 if test "x$cf_check_cppflags" != "x$CPPFLAGS" ; then
504 CF_VERBOSE(but keeping change to \$CPPFLAGS)
506 CFLAGS="$cf_check_flags"])
509 dnl ---------------------------------------------------------------------------
510 dnl CF_CHECK_CURSES_LIB version: 2 updated: 2018/01/03 04:47:33
511 dnl -------------------
512 dnl $1 = nominal library name, used also for header lookup
513 dnl $2 = suffix to append to library name
514 dnl $3 = function to check for using AC_CHECK_LIB
515 dnl $4 = optional parameter list for $3
516 AC_DEFUN([CF_CHECK_CURSES_LIB],
518 AC_REQUIRE([CF_PKG_CONFIG])
520 cf_have_curses_lib=no
522 : ${NCURSES_CONFIG_PKG:=none}
523 if test "x${NCURSES_CONFIG_PKG}" = xnone; then
525 elif test "x${PKG_CONFIG:=none}" != xnone; then
526 AC_MSG_CHECKING(pkg-config for $1$2)
527 if "$PKG_CONFIG" --exists $1$2 ; then
530 AC_MSG_CHECKING(if the $1$2 package files work)
532 cf_save_CPPFLAGS="$CPPFLAGS"
535 CF_ADD_CFLAGS(`$PKG_CONFIG --cflags $1$2`)
536 CF_ADD_LIBS(`$PKG_CONFIG --libs $1$2`)
538 AC_TRY_LINK([#include <$1.h>],
539 [(void) $3 ( ]ifelse([$4],,,[[$4]])[ );],
540 [AC_TRY_RUN([#include <$1.h>
542 { (void) $3 ( ]ifelse([$4],,,[[$4]])[ ); return 0; }],
543 [cf_have_curses_lib=yes],
544 [cf_have_curses_lib=no],
545 [cf_have_curses_lib=maybe])],
546 [cf_have_curses_lib=no])
547 AC_MSG_RESULT($cf_have_curses_lib)
548 test "$cf_have_curses_lib" = maybe && cf_have_curses_lib=yes
549 if test "$cf_have_curses_lib" != "yes"
551 CPPFLAGS="$cf_save_CPPFLAGS"
554 CF_UPPER(cf_upper,have_lib$1)
555 AC_DEFINE_UNQUOTED($cf_upper,1)
559 if test "$cf_have_curses_lib" = no; then
560 AC_CHECK_LIB($1$2,$3,[
561 CF_UPPER(cf_upper,have_lib$1)
563 AC_DEFINE_UNQUOTED($cf_upper,1)])
566 dnl ---------------------------------------------------------------------------
567 dnl CF_CLANG_COMPILER version: 2 updated: 2013/11/19 19:23:35
568 dnl -----------------
569 dnl Check if the given compiler is really clang. clang's C driver defines
570 dnl __GNUC__ (fooling the configure script into setting $GCC to yes) but does
571 dnl not ignore some gcc options.
573 dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
574 dnl ensure that it is not mistaken for gcc/g++. It is normally invoked from
575 dnl the wrappers for gcc and g++ warnings.
577 dnl $1 = GCC (default) or GXX
578 dnl $2 = CLANG_COMPILER (default)
579 dnl $3 = CFLAGS (default) or CXXFLAGS
580 AC_DEFUN([CF_CLANG_COMPILER],[
581 ifelse([$2],,CLANG_COMPILER,[$2])=no
583 if test "$ifelse([$1],,[$1],GCC)" = yes ; then
584 AC_MSG_CHECKING(if this is really Clang ifelse([$1],GXX,C++,C) compiler)
585 cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
586 ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -Qunused-arguments"
592 ],[ifelse([$2],,CLANG_COMPILER,[$2])=yes
593 cf_save_CFLAGS="$cf_save_CFLAGS -Qunused-arguments"
595 ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
596 AC_MSG_RESULT($ifelse([$2],,CLANG_COMPILER,[$2]))
599 dnl ---------------------------------------------------------------------------
600 dnl CF_CURSES_ACS_MAP version: 7 updated: 2012/10/06 16:39:58
601 dnl -----------------
602 dnl Check for likely values of acs_map[]:
603 AC_DEFUN([CF_CURSES_ACS_MAP],
605 AC_REQUIRE([CF_NCURSES_WRAP_PREFIX])dnl
606 AC_CACHE_CHECK(for alternate character set array, cf_cv_curses_acs_map,[
607 cf_cv_curses_acs_map=unknown
608 for name in acs_map _acs_map __acs_map ${NCURSES_WRAP_PREFIX}acs_map
611 #include <${cf_cv_ncurses_header:-curses.h}>
613 $name['k'] = ACS_PLUS
614 ],[cf_cv_curses_acs_map=$name; break])
618 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_])
620 dnl ---------------------------------------------------------------------------
621 dnl CF_CURSES_CHECK_DATA version: 7 updated: 2018/01/03 04:47:33
622 dnl --------------------
623 dnl Check if curses.h defines the given data/variable.
624 dnl Use this after CF_NCURSES_CONFIG or CF_CURSES_CONFIG.
626 dnl $1 = data item(s) to check for
627 dnl $2 = action on success, e.g., "break" to quit checking a series of choices
628 AC_DEFUN([CF_CURSES_CHECK_DATA],
632 AC_MSG_CHECKING(for data $cf_data declaration in ${cf_cv_ncurses_header:-curses.h})
634 AC_TRY_COMPILE(CF__CURSES_HEAD,[
635 void *foo = &($cf_data)
638 AC_MSG_RESULT($cf_result)
640 if test $cf_result = yes ; then
641 CF_UPPER(cf_result,have_curses_data_$cf_data)
642 AC_DEFINE_UNQUOTED($cf_result)
645 AC_MSG_CHECKING(for data $cf_data in library)
646 # BSD linkers insist on making weak linkage, but resolve at runtime.
647 AC_TRY_RUN(CF__CURSES_HEAD
649 extern char $cf_data;
652 void *foo = &($cf_data);
653 fprintf(stderr, "testing linkage of $cf_data:%p\n", (void *)foo);
654 ${cf_cv_main_return:-return}(foo == 0);
658 AC_TRY_LINK(CF__CURSES_HEAD
659 [extern char $cf_data;],[
661 void *foo = &($cf_data);
662 fprintf(stderr, "testing linkage of $cf_data:%p\n", (void *)foo);
663 ${cf_cv_main_return:-return}(foo == 0);
665 ],[cf_result=yes],[cf_result=no])
667 AC_MSG_RESULT($cf_result)
668 if test $cf_result = yes ; then
669 CF_UPPER(cf_result,decl_curses_data_$cf_data)
670 AC_DEFINE_UNQUOTED($cf_result)
671 # do not exit loop here, since we prefer system's declarations
676 dnl ---------------------------------------------------------------------------
677 dnl CF_CURSES_CHECK_TYPE version: 4 updated: 2012/10/06 16:39:58
678 dnl --------------------
679 dnl Check if curses.h defines the given type
680 AC_DEFUN([CF_CURSES_CHECK_TYPE],
682 AC_MSG_CHECKING(for type $1 in ${cf_cv_ncurses_header:-curses.h})
684 #ifndef _XOPEN_SOURCE_EXTENDED
685 #define _XOPEN_SOURCE_EXTENDED
687 #include <${cf_cv_ncurses_header:-curses.h}>],[
689 ],cf_result=yes,cf_result=no)
690 AC_MSG_RESULT($cf_result)
691 if test $cf_result = yes ; then
692 CF_UPPER(cf_result,have_type_$1)
693 AC_DEFINE_UNQUOTED($cf_result,1,[Define to 1 if we have type $1])
695 AC_DEFINE_UNQUOTED($1,$2,[Define to appropriate type if $1 is not declared])
698 dnl ---------------------------------------------------------------------------
699 dnl CF_CURSES_CONFIG version: 2 updated: 2006/10/29 11:06:27
701 dnl Tie together the configure-script macros for curses. It may be ncurses,
702 dnl but unless asked, we do not make a special search for ncurses. However,
703 dnl still check for the ncurses version number, for use in other macros.
704 AC_DEFUN([CF_CURSES_CONFIG],
710 dnl ---------------------------------------------------------------------------
711 dnl CF_CURSES_CPPFLAGS version: 13 updated: 2018/06/20 20:23:13
712 dnl ------------------
713 dnl Look for the curses headers.
714 AC_DEFUN([CF_CURSES_CPPFLAGS],[
716 AC_CACHE_CHECK(for extra include directories,cf_cv_curses_incdir,[
717 cf_cv_curses_incdir=no
720 if test "x$cf_cv_screen" = "xcurses_colr"
722 test -d /usr/include/curses_colr && \
723 cf_cv_curses_incdir="-I/usr/include/curses_colr"
727 if test "x$cf_cv_screen" = "xcurses_5lib"
729 test -d /usr/5lib && \
730 test -d /usr/5include && \
731 cf_cv_curses_incdir="-I/usr/5include"
736 if test "$cf_cv_curses_incdir" != no
738 CF_APPEND_TEXT(CPPFLAGS,$cf_cv_curses_incdir)
744 dnl ---------------------------------------------------------------------------
745 dnl CF_CURSES_FUNCS version: 19 updated: 2018/01/03 04:47:33
747 dnl Curses-functions are a little complicated, since a lot of them are macros.
748 AC_DEFUN([CF_CURSES_FUNCS],
750 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
751 AC_REQUIRE([CF_XOPEN_CURSES])
752 AC_REQUIRE([CF_CURSES_TERM_H])
753 AC_REQUIRE([CF_CURSES_UNCTRL_H])
756 CF_UPPER(cf_tr_func,$cf_func)
757 AC_MSG_CHECKING(for ${cf_func})
758 CF_MSG_LOG(${cf_func})
759 AC_CACHE_VAL(cf_cv_func_$cf_func,[
760 eval cf_result='$ac_cv_func_'$cf_func
761 if test ".$cf_result" != ".no"; then
762 AC_TRY_LINK(CF__CURSES_HEAD,
765 long foo = (long)(&${cf_func});
766 fprintf(stderr, "testing linkage of $cf_func:%p\n", (void *)foo);
767 if (foo + 1234L > 5678L)
768 ${cf_cv_main_return:-return}(foo != 0);
774 eval 'cf_cv_func_'$cf_func'=$cf_result'
776 # use the computed/retrieved cache-value:
777 eval 'cf_result=$cf_cv_func_'$cf_func
778 AC_MSG_RESULT($cf_result)
779 if test $cf_result != no; then
780 AC_DEFINE_UNQUOTED(HAVE_${cf_tr_func})
784 dnl ---------------------------------------------------------------------------
785 dnl CF_CURSES_HEADER version: 5 updated: 2015/04/23 20:35:30
787 dnl Find a "curses" header file, e.g,. "curses.h", or one of the more common
788 dnl variations of ncurses' installs.
790 dnl $1 = ncurses when looking for ncurses, or is empty
791 AC_DEFUN([CF_CURSES_HEADER],[
792 AC_CACHE_CHECK(if we have identified curses headers,cf_cv_ncurses_header,[
793 cf_cv_ncurses_header=none
795 ncurses.h ifelse($1,,,[$1/ncurses.h]) \
796 curses.h ifelse($1,,,[$1/curses.h]) ifelse($1,,[ncurses/ncurses.h ncurses/curses.h])
798 AC_TRY_COMPILE([#include <${cf_header}>],
799 [initscr(); tgoto("?", 0,0)],
800 [cf_cv_ncurses_header=$cf_header; break],[])
804 if test "$cf_cv_ncurses_header" = none ; then
805 AC_MSG_ERROR(No curses header-files found)
808 # cheat, to get the right #define's for HAVE_NCURSES_H, etc.
809 AC_CHECK_HEADERS($cf_cv_ncurses_header)
811 dnl ---------------------------------------------------------------------------
812 dnl CF_CURSES_LIBS version: 42 updated: 2018/06/20 20:23:13
814 dnl Look for the curses libraries. Older curses implementations may require
815 dnl termcap/termlib to be linked as well. Call CF_CURSES_CPPFLAGS first.
816 AC_DEFUN([CF_CURSES_LIBS],[
818 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
819 AC_MSG_CHECKING(if we have identified curses libraries)
820 AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
821 [initscr(); tgoto("?", 0,0)],
824 AC_MSG_RESULT($cf_result)
826 if test "$cf_result" = no ; then
829 AC_CHECK_LIB(mytinfo,tgoto,[CF_ADD_LIBS(-lmytinfo)])
832 # Looking at HPUX 10.20, the Hcurses library is the oldest (1997), cur_colr
833 # next (1998), and xcurses "newer" (2000). There is no header file for
834 # Hcurses; the subdirectory curses_colr has the headers (curses.h and
835 # term.h) for cur_colr
836 if test "x$cf_cv_screen" = "xcurses_colr"
838 AC_CHECK_LIB(cur_colr,initscr,[
839 CF_ADD_LIBS(-lcur_colr)
840 ac_cv_func_initscr=yes
842 AC_CHECK_LIB(Hcurses,initscr,[
843 # HP's header uses __HP_CURSES, but user claims _HP_CURSES.
844 CF_ADD_LIBS(-lHcurses)
845 CF_APPEND_TEXT(CPPFLAGS,-D__HP_CURSES -D_HP_CURSES)
846 ac_cv_func_initscr=yes
851 case `arch 2>/dev/null` in
855 CF_ADD_LIBDIR(/lib64)
866 if test "x$cf_cv_screen" = "xcurses_5lib"
868 if test -d /usr/5lib ; then
869 CF_ADD_LIBDIR(/usr/5lib)
870 CF_ADD_LIBS(-lcurses -ltermcap)
873 ac_cv_func_initscr=yes
877 if test ".$ac_cv_func_initscr" != .yes ; then
880 if test ".${cf_cv_ncurses_version:-no}" != .no
882 cf_check_list="ncurses curses cursesX"
884 cf_check_list="cursesX curses ncurses"
887 # Check for library containing tgoto. Do this before curses library
888 # because it may be needed to link the test-case for initscr.
889 if test "x$cf_term_lib" = x
891 AC_CHECK_FUNC(tgoto,[cf_term_lib=predefined],[
892 for cf_term_lib in $cf_check_list otermcap termcap tinfo termlib unknown
894 AC_CHECK_LIB($cf_term_lib,tgoto,[
895 : ${cf_nculib_root:=$cf_term_lib}
902 # Check for library containing initscr
903 test "$cf_term_lib" != predefined && test "$cf_term_lib" != unknown && LIBS="-l$cf_term_lib $cf_save_LIBS"
904 if test "x$cf_curs_lib" = x
906 for cf_curs_lib in $cf_check_list xcurses jcurses pdcurses unknown
908 LIBS="-l$cf_curs_lib $cf_save_LIBS"
909 if test "$cf_term_lib" = unknown || test "$cf_term_lib" = "$cf_curs_lib" ; then
910 AC_MSG_CHECKING(if we can link with $cf_curs_lib library)
911 AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
915 AC_MSG_RESULT($cf_result)
916 test $cf_result = yes && break
917 elif test "$cf_curs_lib" = "$cf_term_lib" ; then
919 elif test "$cf_term_lib" != predefined ; then
920 AC_MSG_CHECKING(if we need both $cf_curs_lib and $cf_term_lib libraries)
921 AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
922 [initscr(); tgoto((char *)0, 0, 0);],
925 LIBS="-l$cf_curs_lib -l$cf_term_lib $cf_save_LIBS"
926 AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
931 AC_MSG_RESULT($cf_result)
932 test $cf_result != error && break
936 test $cf_curs_lib = unknown && AC_MSG_ERROR(no curses library found)
941 dnl ---------------------------------------------------------------------------
942 dnl CF_CURSES_TERM_H version: 11 updated: 2015/04/15 19:08:48
944 dnl SVr4 curses should have term.h as well (where it puts the definitions of
945 dnl the low-level interface). This may not be true in old/broken implementations,
946 dnl as well as in misconfigured systems (e.g., gcc configured for Solaris 2.4
947 dnl running with Solaris 2.5.1).
948 AC_DEFUN([CF_CURSES_TERM_H],
950 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
952 AC_CACHE_CHECK(for term.h, cf_cv_term_header,[
954 # If we found <ncurses/curses.h>, look for <ncurses/term.h>, but always look
955 # for <term.h> if we do not find the variant.
957 cf_header_list="term.h ncurses/term.h ncursesw/term.h"
959 case ${cf_cv_ncurses_header:-curses.h} in
961 cf_header_item=`echo ${cf_cv_ncurses_header:-curses.h} | sed -e 's%\..*%%' -e 's%/.*%/%'`term.h
962 cf_header_list="$cf_header_item $cf_header_list"
966 for cf_header in $cf_header_list
969 #include <${cf_cv_ncurses_header:-curses.h}>
970 #include <${cf_header}>],
972 [cf_cv_term_header=$cf_header
974 [cf_cv_term_header=no])
977 case $cf_cv_term_header in
979 # If curses is ncurses, some packagers still mess it up by trying to make
980 # us use GNU termcap. This handles the most common case.
981 for cf_header in ncurses/term.h ncursesw/term.h
984 #include <${cf_cv_ncurses_header:-curses.h}>
985 #ifdef NCURSES_VERSION
986 #include <${cf_header}>
991 [cf_cv_term_header=$cf_header
993 [cf_cv_term_header=no])
999 case $cf_cv_term_header in
1001 AC_DEFINE(HAVE_TERM_H,1,[Define to 1 if we have term.h])
1004 AC_DEFINE(HAVE_NCURSES_TERM_H,1,[Define to 1 if we have ncurses/term.h])
1007 AC_DEFINE(HAVE_NCURSESW_TERM_H,1,[Define to 1 if we have ncursesw/term.h])
1011 dnl ---------------------------------------------------------------------------
1012 dnl CF_CURSES_UNCTRL_H version: 4 updated: 2015/04/15 19:08:48
1013 dnl ------------------
1014 dnl Any X/Open curses implementation must have unctrl.h, but ncurses packages
1015 dnl may put it in a subdirectory (along with ncurses' other headers, of
1016 dnl course). Packages which put the headers in inconsistent locations are
1018 AC_DEFUN([CF_CURSES_UNCTRL_H],
1020 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
1022 AC_CACHE_CHECK(for unctrl.h, cf_cv_unctrl_header,[
1024 # If we found <ncurses/curses.h>, look for <ncurses/unctrl.h>, but always look
1025 # for <unctrl.h> if we do not find the variant.
1027 cf_header_list="unctrl.h ncurses/unctrl.h ncursesw/unctrl.h"
1029 case ${cf_cv_ncurses_header:-curses.h} in
1031 cf_header_item=`echo ${cf_cv_ncurses_header:-curses.h} | sed -e 's%\..*%%' -e 's%/.*%/%'`unctrl.h
1032 cf_header_list="$cf_header_item $cf_header_list"
1036 for cf_header in $cf_header_list
1039 #include <${cf_cv_ncurses_header:-curses.h}>
1040 #include <${cf_header}>],
1042 [cf_cv_unctrl_header=$cf_header
1044 [cf_cv_unctrl_header=no])
1048 case $cf_cv_unctrl_header in
1050 AC_MSG_WARN(unctrl.h header not found)
1054 case $cf_cv_unctrl_header in
1056 AC_DEFINE(HAVE_UNCTRL_H,1,[Define to 1 if we have unctrl.h])
1059 AC_DEFINE(HAVE_NCURSES_UNCTRL_H,1,[Define to 1 if we have ncurses/unctrl.h])
1062 AC_DEFINE(HAVE_NCURSESW_UNCTRL_H,1,[Define to 1 if we have ncursesw/unctrl.h])
1066 dnl ---------------------------------------------------------------------------
1067 dnl CF_CURSES_WACS_MAP version: 6 updated: 2012/10/06 08:57:51
1068 dnl ------------------
1069 dnl Check for likely values of wacs_map[].
1070 AC_DEFUN([CF_CURSES_WACS_MAP],
1072 AC_CACHE_CHECK(for wide alternate character set array, cf_cv_curses_wacs_map,[
1073 cf_cv_curses_wacs_map=unknown
1074 for name in wacs_map _wacs_map __wacs_map _nc_wacs _wacs_char
1077 #ifndef _XOPEN_SOURCE_EXTENDED
1078 #define _XOPEN_SOURCE_EXTENDED
1080 #include <${cf_cv_ncurses_header:-curses.h}>],
1081 [void *foo = &($name['k'])],
1082 [cf_cv_curses_wacs_map=$name
1086 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])
1088 dnl ---------------------------------------------------------------------------
1089 dnl CF_CURSES_WACS_SYMBOLS version: 2 updated: 2012/10/06 08:57:51
1090 dnl ----------------------
1091 dnl Do a check to see if the WACS_xxx constants are defined compatibly with
1092 dnl X/Open Curses. In particular, NetBSD's implementation of the WACS_xxx
1093 dnl constants is broken since those constants do not point to cchar_t's.
1094 AC_DEFUN([CF_CURSES_WACS_SYMBOLS],
1096 AC_REQUIRE([CF_CURSES_WACS_MAP])
1098 AC_CACHE_CHECK(for wide alternate character constants, cf_cv_curses_wacs_symbols,[
1099 cf_cv_curses_wacs_symbols=no
1100 if test "$cf_cv_curses_wacs_map" != unknown
1103 #ifndef _XOPEN_SOURCE_EXTENDED
1104 #define _XOPEN_SOURCE_EXTENDED
1106 #include <${cf_cv_ncurses_header:-curses.h}>],
1107 [cchar_t *foo = WACS_PLUS;
1108 $cf_cv_curses_wacs_map['k'] = *WACS_PLUS],
1109 [cf_cv_curses_wacs_symbols=yes])
1112 #ifndef _XOPEN_SOURCE_EXTENDED
1113 #define _XOPEN_SOURCE_EXTENDED
1115 #include <${cf_cv_ncurses_header:-curses.h}>],
1116 [cchar_t *foo = WACS_PLUS],
1117 [cf_cv_curses_wacs_symbols=yes])
1121 test "$cf_cv_curses_wacs_symbols" != no && AC_DEFINE(CURSES_WACS_SYMBOLS,1,[Define to 1 if (n)curses supports wide-character WACS_ symbols])
1123 dnl ---------------------------------------------------------------------------
1124 dnl CF_DIRNAME version: 4 updated: 2002/12/21 19:25:52
1126 dnl "dirname" is not portable, so we fake it with a shell script.
1127 AC_DEFUN([CF_DIRNAME],[$1=`echo $2 | sed -e 's%/[[^/]]*$%%'`])dnl
1128 dnl ---------------------------------------------------------------------------
1129 dnl CF_DISABLE_ECHO version: 13 updated: 2015/04/18 08:56:57
1131 dnl You can always use "make -n" to see the actual options, but it's hard to
1132 dnl pick out/analyze warning messages when the compile-line is long.
1135 dnl ECHO_LT - symbol to control if libtool is verbose
1136 dnl ECHO_LD - symbol to prefix "cc -o" lines
1137 dnl RULE_CC - symbol to put before implicit "cc -c" lines (e.g., .c.o)
1138 dnl SHOW_CC - symbol to put before explicit "cc -c" lines
1139 dnl ECHO_CC - symbol to put before any "cc" line
1141 AC_DEFUN([CF_DISABLE_ECHO],[
1142 AC_MSG_CHECKING(if you want to see long compiling messages)
1143 CF_ARG_DISABLE(echo,
1144 [ --disable-echo do not display "compiling" commands],
1147 ECHO_LD='@echo linking [$]@;'
1148 RULE_CC='@echo compiling [$]<'
1149 SHOW_CC='@echo compiling [$]@'
1158 AC_MSG_RESULT($enableval)
1165 dnl ---------------------------------------------------------------------------
1166 dnl CF_DISABLE_LEAKS version: 7 updated: 2012/10/02 20:55:03
1167 dnl ----------------
1168 dnl Combine no-leak checks with the libraries or tools that are used for the
1170 AC_DEFUN([CF_DISABLE_LEAKS],[
1172 AC_REQUIRE([CF_WITH_DMALLOC])
1173 AC_REQUIRE([CF_WITH_DBMALLOC])
1174 AC_REQUIRE([CF_WITH_VALGRIND])
1176 AC_MSG_CHECKING(if you want to perform memory-leak testing)
1177 AC_ARG_ENABLE(leaks,
1178 [ --disable-leaks test: free permanent memory, analyze leaks],
1179 [if test "x$enableval" = xno; then with_no_leaks=yes; else with_no_leaks=no; fi],
1180 : ${with_no_leaks:=no})
1181 AC_MSG_RESULT($with_no_leaks)
1183 if test "$with_no_leaks" = yes ; then
1184 AC_DEFINE(NO_LEAKS,1,[Define to 1 if you want to perform memory-leak testing.])
1185 AC_DEFINE(YY_NO_LEAKS,1,[Define to 1 if you want to perform memory-leak testing.])
1188 dnl ---------------------------------------------------------------------------
1189 dnl CF_DISABLE_RPATH_HACK version: 2 updated: 2011/02/13 13:31:33
1190 dnl ---------------------
1191 dnl The rpath-hack makes it simpler to build programs, particularly with the
1192 dnl *BSD ports which may have essential libraries in unusual places. But it
1193 dnl can interfere with building an executable for the base system. Use this
1194 dnl option in that case.
1195 AC_DEFUN([CF_DISABLE_RPATH_HACK],
1197 AC_MSG_CHECKING(if rpath-hack should be disabled)
1198 CF_ARG_DISABLE(rpath-hack,
1199 [ --disable-rpath-hack don't add rpath options for additional libraries],
1200 [cf_disable_rpath_hack=yes],
1201 [cf_disable_rpath_hack=no])
1202 AC_MSG_RESULT($cf_disable_rpath_hack)
1203 if test "$cf_disable_rpath_hack" = no ; then
1207 dnl ---------------------------------------------------------------------------
1208 dnl CF_ENABLE_STRING_HACKS version: 5 updated: 2016/10/08 17:34:11
1209 dnl ----------------------
1210 dnl On a few platforms, the compiler and/or loader nags with untruthful
1211 dnl comments stating that "most" uses of strcat/strcpy/sprintf are incorrect,
1212 dnl and implying that most uses of the recommended alternatives are correct.
1214 dnl Factually speaking, no one has actually counted the number of uses of these
1215 dnl functions versus the total of incorrect uses. Samples of a few thousand
1216 dnl instances are meaningless compared to the hundreds of millions of lines of
1217 dnl existing C code.
1219 dnl strlcat/strlcpy are (as of 2012) non-standard, and are available on some
1220 dnl platforms, in implementations of varying quality. Likewise, snprintf is
1221 dnl standard - but evolved through phases, and older implementations are likely
1222 dnl to yield surprising results, as documented in manpages on various systems.
1223 AC_DEFUN([CF_ENABLE_STRING_HACKS],
1225 AC_MSG_CHECKING(if you want to work around bogus compiler/loader warnings)
1226 AC_ARG_ENABLE(string-hacks,
1227 [ --enable-string-hacks work around bogus compiler/loader warnings],
1228 [with_string_hacks=$enableval],
1229 [with_string_hacks=no])
1230 AC_MSG_RESULT($with_string_hacks)
1232 if test "x$with_string_hacks" = "xyes"; then
1233 AC_DEFINE(USE_STRING_HACKS,1,[Define to 1 to work around bogus compiler/loader warnings])
1234 AC_MSG_WARN(enabling string-hacks to work around bogus compiler/loader warnings)
1235 AC_CHECK_FUNC(strlcat,[
1236 AC_DEFINE(HAVE_STRLCAT,1,[Define to 1 if we have strlcat function])
1238 AC_CHECK_LIB(bsd,strlcat,[
1240 AC_CHECK_HEADERS(bsd/string.h)
1241 AC_DEFINE(HAVE_STRLCAT,1,[Define to 1 if we have strlcat function])
1244 AC_CHECK_FUNCS( strlcpy snprintf )
1247 dnl ---------------------------------------------------------------------------
1248 dnl CF_ENABLE_WARNINGS version: 5 updated: 2017/09/29 20:01:16
1249 dnl ------------------
1250 dnl Configure-option to enable gcc warnings
1251 AC_DEFUN([CF_ENABLE_WARNINGS],[
1252 if ( test "$GCC" = yes || test "$GXX" = yes )
1254 AC_MSG_CHECKING(if you want to turn on gcc warnings)
1255 CF_ARG_ENABLE(warnings,
1256 [ --enable-warnings test: turn on gcc compiler warnings],
1257 [with_warnings=yes],
1259 AC_MSG_RESULT($with_warnings)
1260 if test "$with_warnings" = "yes"
1267 dnl ---------------------------------------------------------------------------
1268 dnl CF_FIND_LIBRARY version: 9 updated: 2008/03/23 14:48:54
1270 dnl Look for a non-standard library, given parameters for AC_TRY_LINK. We
1271 dnl prefer a standard location, and use -L options only if we do not find the
1272 dnl library in the standard library location(s).
1273 dnl $1 = library name
1274 dnl $2 = library class, usually the same as library name
1276 dnl $4 = code fragment to compile/link
1277 dnl $5 = corresponding function-name
1278 dnl $6 = flag, nonnull if failure should not cause an error-exit
1280 dnl Sets the variable "$cf_libdir" as a side-effect, so we can see if we had
1281 dnl to use a -L option.
1282 AC_DEFUN([CF_FIND_LIBRARY],
1284 eval 'cf_cv_have_lib_'$1'=no'
1287 eval 'cf_cv_have_lib_'$1'=yes',[
1288 cf_save_LIBS="$LIBS"
1289 AC_MSG_CHECKING(for $5 in -l$1)
1291 AC_TRY_LINK([$3],[$4],
1293 eval 'cf_cv_have_lib_'$1'=yes'
1296 CF_LIBRARY_PATH(cf_search,$2)
1297 for cf_libdir in $cf_search
1299 AC_MSG_CHECKING(for -l$1 in $cf_libdir)
1300 LIBS="-L$cf_libdir -l$1 $cf_save_LIBS"
1301 AC_TRY_LINK([$3],[$4],
1303 eval 'cf_cv_have_lib_'$1'=yes'
1306 LIBS="$cf_save_LIBS"])
1310 eval 'cf_found_library=[$]cf_cv_have_lib_'$1
1312 if test $cf_found_library = no ; then
1313 AC_MSG_ERROR(Cannot link $1 library)
1317 dnl ---------------------------------------------------------------------------
1318 dnl CF_FIND_LINKAGE version: 21 updated: 2018/06/20 20:23:13
1320 dnl Find a library (specifically the linkage used in the code fragment),
1321 dnl searching for it if it is not already in the library path.
1322 dnl See also CF_ADD_SEARCHPATH.
1324 dnl Parameters (4-on are optional):
1325 dnl $1 = headers for library entrypoint
1326 dnl $2 = code fragment for library entrypoint
1327 dnl $3 = the library name without the "-l" option or ".so" suffix.
1328 dnl $4 = action to perform if successful (default: update CPPFLAGS, etc)
1329 dnl $5 = action to perform if not successful
1330 dnl $6 = module name, if not the same as the library name
1331 dnl $7 = extra libraries
1333 dnl Sets these variables:
1334 dnl $cf_cv_find_linkage_$3 - yes/no according to whether linkage is found
1335 dnl $cf_cv_header_path_$3 - include-directory if needed
1336 dnl $cf_cv_library_path_$3 - library-directory if needed
1337 dnl $cf_cv_library_file_$3 - library-file if needed, e.g., -l$3
1338 AC_DEFUN([CF_FIND_LINKAGE],[
1340 # If the linkage is not already in the $CPPFLAGS/$LDFLAGS configuration, these
1341 # will be set on completion of the AC_TRY_LINK below.
1342 cf_cv_header_path_$3=
1343 cf_cv_library_path_$3=
1345 CF_MSG_LOG([Starting [FIND_LINKAGE]($3,$6)])
1347 cf_save_LIBS="$LIBS"
1349 AC_TRY_LINK([$1],[$2],[
1350 cf_cv_find_linkage_$3=yes
1351 cf_cv_header_path_$3=/usr/include
1352 cf_cv_library_path_$3=/usr/lib
1355 LIBS="-l$3 $7 $cf_save_LIBS"
1357 AC_TRY_LINK([$1],[$2],[
1358 cf_cv_find_linkage_$3=yes
1359 cf_cv_header_path_$3=/usr/include
1360 cf_cv_library_path_$3=/usr/lib
1361 cf_cv_library_file_$3="-l$3"
1363 cf_cv_find_linkage_$3=no
1364 LIBS="$cf_save_LIBS"
1366 CF_VERBOSE(find linkage for $3 library)
1367 CF_MSG_LOG([Searching for headers in [FIND_LINKAGE]($3,$6)])
1369 cf_save_CPPFLAGS="$CPPFLAGS"
1370 cf_test_CPPFLAGS="$CPPFLAGS"
1372 CF_HEADER_PATH(cf_search,ifelse([$6],,[$3],[$6]))
1373 for cf_cv_header_path_$3 in $cf_search
1375 if test -d $cf_cv_header_path_$3 ; then
1376 CF_VERBOSE(... testing $cf_cv_header_path_$3)
1377 CPPFLAGS="$cf_save_CPPFLAGS"
1378 CF_APPEND_TEXT(CPPFLAGS,-I$cf_cv_header_path_$3)
1379 AC_TRY_COMPILE([$1],[$2],[
1380 CF_VERBOSE(... found $3 headers in $cf_cv_header_path_$3)
1381 cf_cv_find_linkage_$3=maybe
1382 cf_test_CPPFLAGS="$CPPFLAGS"
1384 CPPFLAGS="$cf_save_CPPFLAGS"
1389 if test "$cf_cv_find_linkage_$3" = maybe ; then
1391 CF_MSG_LOG([Searching for $3 library in [FIND_LINKAGE]($3,$6)])
1393 cf_save_LIBS="$LIBS"
1394 cf_save_LDFLAGS="$LDFLAGS"
1397 CPPFLAGS="$cf_test_CPPFLAGS"
1398 LIBS="-l$3 $7 $cf_save_LIBS"
1399 AC_TRY_LINK([$1],[$2],[
1400 CF_VERBOSE(... found $3 library in system)
1401 cf_cv_find_linkage_$3=yes])
1402 CPPFLAGS="$cf_save_CPPFLAGS"
1403 LIBS="$cf_save_LIBS"
1406 if test "$cf_cv_find_linkage_$3" != yes ; then
1407 CF_LIBRARY_PATH(cf_search,$3)
1408 for cf_cv_library_path_$3 in $cf_search
1410 if test -d $cf_cv_library_path_$3 ; then
1411 CF_VERBOSE(... testing $cf_cv_library_path_$3)
1412 CPPFLAGS="$cf_test_CPPFLAGS"
1413 LIBS="-l$3 $7 $cf_save_LIBS"
1414 LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_$3"
1415 AC_TRY_LINK([$1],[$2],[
1416 CF_VERBOSE(... found $3 library in $cf_cv_library_path_$3)
1417 cf_cv_find_linkage_$3=yes
1418 cf_cv_library_file_$3="-l$3"
1420 CPPFLAGS="$cf_save_CPPFLAGS"
1421 LIBS="$cf_save_LIBS"
1422 LDFLAGS="$cf_save_LDFLAGS"
1426 CPPFLAGS="$cf_save_CPPFLAGS"
1427 LDFLAGS="$cf_save_LDFLAGS"
1431 cf_cv_find_linkage_$3=no
1436 LIBS="$cf_save_LIBS"
1438 if test "$cf_cv_find_linkage_$3" = yes ; then
1440 CF_ADD_INCDIR($cf_cv_header_path_$3)
1441 CF_ADD_LIBDIR($cf_cv_library_path_$3)
1445 ifelse([$5],,AC_MSG_WARN(Cannot find $3 library),[$5])
1448 dnl ---------------------------------------------------------------------------
1449 dnl CF_FUNC_CURSES_VERSION version: 7 updated: 2017/05/10 18:31:29
1450 dnl ----------------------
1451 dnl Solaris has a data item 'curses_version', which confuses AC_CHECK_FUNCS.
1452 dnl It's a character string "SVR4", not documented.
1453 AC_DEFUN([CF_FUNC_CURSES_VERSION],
1455 AC_CACHE_CHECK(for function curses_version, cf_cv_func_curses_version,[
1457 #include <${cf_cv_ncurses_header:-curses.h}>
1461 sprintf(temp, "%s\n", curses_version());
1462 ${cf_cv_main_return:-return}(0);
1464 ,[cf_cv_func_curses_version=yes]
1465 ,[cf_cv_func_curses_version=no]
1466 ,[cf_cv_func_curses_version=unknown])
1468 test "$cf_cv_func_curses_version" = yes && AC_DEFINE(HAVE_CURSES_VERSION,1,[Define to 1 if we have curses_version function])
1470 dnl ---------------------------------------------------------------------------
1471 dnl CF_FUNC_OPENPTY version: 5 updated: 2015/09/12 14:46:50
1473 dnl Check for openpty() function, along with <pty.h> header. It may need the
1474 dnl "util" library as well.
1475 AC_DEFUN([CF_FUNC_OPENPTY],
1477 AC_CHECK_LIB(util,openpty,cf_cv_lib_util=yes,cf_cv_lib_util=no)
1478 AC_CACHE_CHECK(for openpty header,cf_cv_func_openpty,[
1479 cf_save_LIBS="$LIBS"
1480 test $cf_cv_lib_util = yes && { CF_ADD_LIB(util) }
1481 for cf_header in pty.h libutil.h util.h
1484 #include <$cf_header>
1486 int x = openpty((int *)0, (int *)0, (char *)0,
1487 (struct termios *)0, (struct winsize *)0);
1489 cf_cv_func_openpty=$cf_header
1492 cf_cv_func_openpty=no
1495 LIBS="$cf_save_LIBS"
1498 dnl ---------------------------------------------------------------------------
1499 dnl CF_GCC_ATTRIBUTES version: 17 updated: 2015/04/12 15:39:00
1500 dnl -----------------
1501 dnl Test for availability of useful gcc __attribute__ directives to quiet
1502 dnl compiler warnings. Though useful, not all are supported -- and contrary
1503 dnl to documentation, unrecognized directives cause older compilers to barf.
1504 AC_DEFUN([CF_GCC_ATTRIBUTES],
1506 if test "$GCC" = yes
1508 cat > conftest.i <<EOF
1510 #define GCC_PRINTF 0
1515 #ifndef GCC_NORETURN
1516 #define GCC_NORETURN /* nothing */
1519 #define GCC_UNUSED /* nothing */
1522 if test "$GCC" = yes
1524 AC_CHECKING([for $CC __attribute__ directives])
1525 cat > conftest.$ac_ext <<EOF
1526 #line __oline__ "${as_me:-configure}"
1527 #include "confdefs.h"
1528 #include "conftest.h"
1529 #include "conftest.i"
1531 #define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
1533 #define GCC_PRINTFLIKE(fmt,var) /*nothing*/
1536 #define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
1538 #define GCC_SCANFLIKE(fmt,var) /*nothing*/
1540 extern void wow(char *,...) GCC_SCANFLIKE(1,2);
1541 extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
1542 extern void foo(void) GCC_NORETURN;
1543 int main(int argc GCC_UNUSED, char *argv[[]] GCC_UNUSED) { return 0; }
1545 cf_printf_attribute=no
1546 cf_scanf_attribute=no
1547 for cf_attribute in scanf printf unused noreturn
1549 CF_UPPER(cf_ATTRIBUTE,$cf_attribute)
1550 cf_directive="__attribute__(($cf_attribute))"
1551 echo "checking for $CC $cf_directive" 1>&AC_FD_CC
1553 case $cf_attribute in
1555 cf_printf_attribute=yes
1556 cat >conftest.h <<EOF
1557 #define GCC_$cf_ATTRIBUTE 1
1561 cf_scanf_attribute=yes
1562 cat >conftest.h <<EOF
1563 #define GCC_$cf_ATTRIBUTE 1
1567 cat >conftest.h <<EOF
1568 #define GCC_$cf_ATTRIBUTE $cf_directive
1573 if AC_TRY_EVAL(ac_compile); then
1574 test -n "$verbose" && AC_MSG_RESULT(... $cf_attribute)
1575 cat conftest.h >>confdefs.h
1576 case $cf_attribute in
1578 AC_DEFINE_UNQUOTED(GCC_NORETURN,$cf_directive,[Define to noreturn-attribute for gcc])
1581 cf_value='/* nothing */'
1582 if test "$cf_printf_attribute" != no ; then
1583 cf_value='__attribute__((format(printf,fmt,var)))'
1584 AC_DEFINE(GCC_PRINTF,1,[Define to 1 if the compiler supports gcc-like printf attribute.])
1586 AC_DEFINE_UNQUOTED(GCC_PRINTFLIKE(fmt,var),$cf_value,[Define to printf-attribute for gcc])
1589 cf_value='/* nothing */'
1590 if test "$cf_scanf_attribute" != no ; then
1591 cf_value='__attribute__((format(scanf,fmt,var)))'
1592 AC_DEFINE(GCC_SCANF,1,[Define to 1 if the compiler supports gcc-like scanf attribute.])
1594 AC_DEFINE_UNQUOTED(GCC_SCANFLIKE(fmt,var),$cf_value,[Define to sscanf-attribute for gcc])
1597 AC_DEFINE_UNQUOTED(GCC_UNUSED,$cf_directive,[Define to unused-attribute for gcc])
1603 fgrep define conftest.i >>confdefs.h
1608 dnl ---------------------------------------------------------------------------
1609 dnl CF_GCC_VERSION version: 7 updated: 2012/10/18 06:46:33
1611 dnl Find version of gcc
1612 AC_DEFUN([CF_GCC_VERSION],[
1613 AC_REQUIRE([AC_PROG_CC])
1615 if test "$GCC" = yes ; then
1616 AC_MSG_CHECKING(version of $CC)
1617 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.]].*//'`"
1618 test -z "$GCC_VERSION" && GCC_VERSION=unknown
1619 AC_MSG_RESULT($GCC_VERSION)
1622 dnl ---------------------------------------------------------------------------
1623 dnl CF_GCC_WARNINGS version: 33 updated: 2018/06/20 20:23:13
1625 dnl Check if the compiler supports useful warning options. There's a few that
1626 dnl we don't use, simply because they're too noisy:
1628 dnl -Wconversion (useful in older versions of gcc, but not in gcc 2.7.x)
1629 dnl -Wredundant-decls (system headers make this too noisy)
1630 dnl -Wtraditional (combines too many unrelated messages, only a few useful)
1631 dnl -Wwrite-strings (too noisy, but should review occasionally). This
1632 dnl is enabled for ncurses using "--enable-const".
1636 dnl $1 is an optional list of gcc warning flags that a particular
1637 dnl application might want to use, e.g., "no-unused" for
1640 dnl If $with_ext_const is "yes", add a check for -Wwrite-strings
1642 AC_DEFUN([CF_GCC_WARNINGS],
1644 AC_REQUIRE([CF_GCC_VERSION])
1645 CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
1646 CF_CLANG_COMPILER(GCC,CLANG_COMPILER,CFLAGS)
1648 cat > conftest.$ac_ext <<EOF
1649 #line __oline__ "${as_me:-configure}"
1650 int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
1653 if test "$INTEL_COMPILER" = yes
1655 # The "-wdXXX" options suppress warnings:
1656 # remark #1419: external declaration in primary source file
1657 # remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
1658 # remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
1659 # remark #193: zero used for undefined preprocessing identifier
1660 # remark #593: variable "curs_sb_left_arrow" was set but never used
1661 # remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
1662 # remark #869: parameter "tw" was never referenced
1663 # remark #981: operands are evaluated in unspecified order
1664 # warning #279: controlling expression is constant
1666 AC_CHECKING([for $CC warning options])
1667 cf_save_CFLAGS="$CFLAGS"
1668 EXTRA_CFLAGS="-Wall"
1680 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
1681 if AC_TRY_EVAL(ac_compile); then
1682 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1683 EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
1686 CFLAGS="$cf_save_CFLAGS"
1688 elif test "$GCC" = yes
1690 AC_CHECKING([for $CC warning options])
1691 cf_save_CFLAGS="$CFLAGS"
1694 test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
1695 cf_gcc_warnings="Wignored-qualifiers Wlogical-op Wvarargs"
1696 test "x$CLANG_COMPILER" = xyes && cf_gcc_warnings=
1697 for cf_opt in W Wall \
1698 Wbad-function-cast \
1701 Wdeclaration-after-statement \
1704 Wmissing-declarations \
1705 Wmissing-prototypes \
1709 Wstrict-prototypes \
1710 Wundef $cf_gcc_warnings $cf_warn_CONST $1
1712 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
1713 if AC_TRY_EVAL(ac_compile); then
1714 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1717 CF_APPEND_TEXT(CPPFLAGS,-DXTSTRINGDEFINES)
1720 case $GCC_VERSION in
1722 CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
1727 case $GCC_VERSION in
1729 CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
1734 EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
1737 CFLAGS="$cf_save_CFLAGS"
1741 AC_SUBST(EXTRA_CFLAGS)
1743 dnl ---------------------------------------------------------------------------
1744 dnl CF_GETOPT_HEADER version: 6 updated: 2014/07/22 14:45:54
1745 dnl ----------------
1746 dnl Check for getopt's variables which are commonly defined in stdlib.h,
1747 dnl unistd.h or (nonstandard) in getopt.h
1748 AC_DEFUN([CF_GETOPT_HEADER],
1750 AC_HAVE_HEADERS(unistd.h getopt.h)
1751 AC_CACHE_CHECK(for header declaring getopt variables,cf_cv_getopt_header,[
1752 cf_cv_getopt_header=none
1753 for cf_header in stdio.h stdlib.h unistd.h getopt.h
1756 #include <$cf_header>],
1757 [int x = optind; char *y = optarg],
1758 [cf_cv_getopt_header=$cf_header
1762 if test $cf_cv_getopt_header != none ; then
1763 AC_DEFINE(HAVE_GETOPT_HEADER,1,[Define to 1 if getopt variables are declared in header])
1765 if test $cf_cv_getopt_header = getopt.h ; then
1766 AC_DEFINE(NEED_GETOPT_H,1,[Define to 1 if we must include getopt.h])
1769 dnl ---------------------------------------------------------------------------
1770 dnl CF_GNU_SOURCE version: 10 updated: 2018/12/10 20:09:41
1772 dnl Check if we must define _GNU_SOURCE to get a reasonable value for
1773 dnl _XOPEN_SOURCE, upon which many POSIX definitions depend. This is a defect
1774 dnl (or misfeature) of glibc2, which breaks portability of many applications,
1775 dnl since it is interwoven with GNU extensions.
1777 dnl Well, yes we could work around it...
1780 dnl $1 is the nominal value for _XOPEN_SOURCE
1781 AC_DEFUN([CF_GNU_SOURCE],
1783 cf_gnu_xopen_source=ifelse($1,,500,$1)
1785 AC_CACHE_CHECK(if this is the GNU C library,cf_cv_gnu_library,[
1786 AC_TRY_COMPILE([#include <sys/types.h>],[
1787 #if __GLIBC__ > 0 && __GLIBC_MINOR__ >= 0
1789 #elif __NEWLIB__ > 0 && __NEWLIB_MINOR__ >= 0
1792 # error not GNU C library
1794 [cf_cv_gnu_library=yes],
1795 [cf_cv_gnu_library=no])
1798 if test x$cf_cv_gnu_library = xyes; then
1800 # With glibc 2.19 (13 years after this check was begun), _DEFAULT_SOURCE
1801 # was changed to help a little. newlib incorporated the change about 4
1803 AC_CACHE_CHECK(if _DEFAULT_SOURCE can be used as a basis,cf_cv_gnu_library_219,[
1805 CF_APPEND_TEXT(CPPFLAGS,-D_DEFAULT_SOURCE)
1806 AC_TRY_COMPILE([#include <sys/types.h>],[
1807 #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 19) || (__GLIBC__ > 2)
1809 #elif (__NEWLIB__ == 2 && __NEWLIB_MINOR__ >= 4) || (__GLIBC__ > 3)
1812 # error GNU C library __GLIBC__.__GLIBC_MINOR__ is too old
1814 [cf_cv_gnu_library_219=yes],
1815 [cf_cv_gnu_library_219=no])
1819 if test "x$cf_cv_gnu_library_219" = xyes; then
1821 AC_CACHE_CHECK(if _XOPEN_SOURCE=$cf_gnu_xopen_source works with _DEFAULT_SOURCE,cf_cv_gnu_dftsrc_219,[
1822 CF_ADD_CFLAGS(-D_DEFAULT_SOURCE -D_XOPEN_SOURCE=$cf_gnu_xopen_source)
1825 #include <sys/types.h>
1827 #if (_XOPEN_SOURCE >= $cf_gnu_xopen_source) && (MB_LEN_MAX > 1)
1830 # error GNU C library is too old
1832 [cf_cv_gnu_dftsrc_219=yes],
1833 [cf_cv_gnu_dftsrc_219=no])
1835 test "x$cf_cv_gnu_dftsrc_219" = "xyes" || CPPFLAGS="$cf_save"
1837 cf_cv_gnu_dftsrc_219=maybe
1840 if test "x$cf_cv_gnu_dftsrc_219" != xyes; then
1842 AC_CACHE_CHECK(if we must define _GNU_SOURCE,cf_cv_gnu_source,[
1843 AC_TRY_COMPILE([#include <sys/types.h>],[
1844 #ifndef _XOPEN_SOURCE
1845 #error expected _XOPEN_SOURCE to be defined
1847 [cf_cv_gnu_source=no],
1848 [cf_save="$CPPFLAGS"
1849 CF_ADD_CFLAGS(-D_GNU_SOURCE)
1850 AC_TRY_COMPILE([#include <sys/types.h>],[
1851 #ifdef _XOPEN_SOURCE
1852 #error expected _XOPEN_SOURCE to be undefined
1854 [cf_cv_gnu_source=no],
1855 [cf_cv_gnu_source=yes])
1860 if test "$cf_cv_gnu_source" = yes
1862 AC_CACHE_CHECK(if we should also define _DEFAULT_SOURCE,cf_cv_default_source,[
1863 CF_APPEND_TEXT(CPPFLAGS,-D_GNU_SOURCE)
1864 AC_TRY_COMPILE([#include <sys/types.h>],[
1865 #ifdef _DEFAULT_SOURCE
1866 #error expected _DEFAULT_SOURCE to be undefined
1868 [cf_cv_default_source=no],
1869 [cf_cv_default_source=yes])
1871 if test "$cf_cv_default_source" = yes
1873 CF_APPEND_TEXT(CPPFLAGS,-D_DEFAULT_SOURCE)
1880 dnl ---------------------------------------------------------------------------
1881 dnl CF_HEADER_PATH version: 13 updated: 2015/04/15 19:08:48
1883 dnl Construct a search-list of directories for a nonstandard header-file
1886 dnl $1 = the variable to return as result
1887 dnl $2 = the package name
1888 AC_DEFUN([CF_HEADER_PATH],
1892 # collect the current set of include-directories from compiler flags
1893 cf_header_path_list=""
1894 if test -n "${CFLAGS}${CPPFLAGS}" ; then
1895 for cf_header_path in $CPPFLAGS $CFLAGS
1897 case $cf_header_path in
1899 cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'`
1900 CF_ADD_SUBDIR_PATH($1,$2,include,$cf_header_path,NONE)
1901 cf_header_path_list="$cf_header_path_list [$]$1"
1907 # add the variations for the package we are looking for
1908 CF_SUBDIR_PATH($1,$2,include)
1910 test "$includedir" != NONE && \
1911 test "$includedir" != "/usr/include" && \
1912 test -d "$includedir" && {
1913 test -d $includedir && $1="[$]$1 $includedir"
1914 test -d $includedir/$2 && $1="[$]$1 $includedir/$2"
1917 test "$oldincludedir" != NONE && \
1918 test "$oldincludedir" != "/usr/include" && \
1919 test -d "$oldincludedir" && {
1920 test -d $oldincludedir && $1="[$]$1 $oldincludedir"
1921 test -d $oldincludedir/$2 && $1="[$]$1 $oldincludedir/$2"
1924 $1="[$]$1 $cf_header_path_list"
1926 dnl ---------------------------------------------------------------------------
1927 dnl CF_HELP_MESSAGE version: 3 updated: 1998/01/14 10:56:23
1929 dnl Insert text into the help-message, for readability, from AC_ARG_WITH.
1930 AC_DEFUN([CF_HELP_MESSAGE],
1931 [AC_DIVERT_HELP([$1])dnl
1933 dnl ---------------------------------------------------------------------------
1934 dnl CF_INHERIT_SCRIPT version: 2 updated: 2003/03/01 23:50:42
1935 dnl -----------------
1936 dnl If we do not have a given script, look for it in the parent directory.
1937 AC_DEFUN([CF_INHERIT_SCRIPT],
1939 test -f $1 || ( test -f ../$1 && cp ../$1 ./ )
1941 dnl ---------------------------------------------------------------------------
1942 dnl CF_INSTALL_OPTS version: 2 updated: 2018/08/18 12:19:21
1944 dnl prompt for/fill-in useful install-program options
1945 AC_DEFUN([CF_INSTALL_OPTS],
1951 dnl ---------------------------------------------------------------------------
1952 dnl CF_INSTALL_OPT_O version: 2 updated: 2015/05/15 19:45:35
1953 dnl ----------------
1954 dnl Almost all "install" programs default to the current user's ownership.
1955 dnl Almost - MINIX is an exception.
1956 AC_DEFUN([CF_INSTALL_OPT_O],
1958 AC_MSG_CHECKING(if install needs to be told about ownership)
1959 case `$ac_config_guess` in
1968 AC_MSG_RESULT($with_install_o)
1969 if test "x$with_install_o" = xyes
1971 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'`
1976 AC_SUBST(INSTALL_OPT_O)
1978 dnl ---------------------------------------------------------------------------
1979 dnl CF_INSTALL_OPT_P version: 1 updated: 2018/08/18 12:19:21
1980 dnl ----------------
1981 dnl Some install-programs accept a "-p" option to preserve file modification
1982 dnl timestamps. That can be useful as an install option, as well as a way to
1983 dnl avoid the need for ranlib after copying a static archive.
1984 AC_DEFUN([CF_INSTALL_OPT_P],
1986 : ${INSTALL:=install}
1987 AC_CACHE_CHECK(if install accepts -p option, cf_cv_install_p,[
1992 if $INSTALL -p conftest.in conftest.out 2>/dev/null
1994 if test -f conftest.out/conftest.in
1996 test conftest.in -nt conftest.out/conftest.in 2>conftest.err && \
1997 test conftest.out/conftest.in -nt conftest.in 2>conftest.err
1998 if test -s conftest.err
2013 dnl ---------------------------------------------------------------------------
2014 dnl CF_INSTALL_OPT_S version: 2 updated: 2018/08/18 12:19:21
2015 dnl ----------------
2016 dnl By default, we should strip executables which are installed, but leave the
2017 dnl ability to suppress that for unit-testing.
2018 AC_DEFUN([CF_INSTALL_OPT_S],
2020 AC_MSG_CHECKING(if you want to install stripped executables)
2021 CF_ARG_DISABLE(stripping,
2022 [ --disable-stripping do not strip (debug info) installed executables],
2023 [with_stripping=no],
2024 [with_stripping=yes])
2025 AC_MSG_RESULT($with_stripping)
2027 if test "$with_stripping" = yes
2033 AC_SUBST(INSTALL_OPT_S)
2035 dnl ---------------------------------------------------------------------------
2036 dnl CF_INTEL_COMPILER version: 7 updated: 2015/04/12 15:39:00
2037 dnl -----------------
2038 dnl Check if the given compiler is really the Intel compiler for Linux. It
2039 dnl tries to imitate gcc, but does not return an error when it finds a mismatch
2040 dnl between prototypes, e.g., as exercised by CF_MISSING_CHECK.
2042 dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
2043 dnl ensure that it is not mistaken for gcc/g++. It is normally invoked from
2044 dnl the wrappers for gcc and g++ warnings.
2046 dnl $1 = GCC (default) or GXX
2047 dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS
2048 dnl $3 = CFLAGS (default) or CXXFLAGS
2049 AC_DEFUN([CF_INTEL_COMPILER],[
2050 AC_REQUIRE([AC_CANONICAL_HOST])
2051 ifelse([$2],,INTEL_COMPILER,[$2])=no
2053 if test "$ifelse([$1],,[$1],GCC)" = yes ; then
2056 AC_MSG_CHECKING(if this is really Intel ifelse([$1],GXX,C++,C) compiler)
2057 cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
2058 ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -no-gcc"
2060 #ifdef __INTEL_COMPILER
2064 ],[ifelse([$2],,INTEL_COMPILER,[$2])=yes
2065 cf_save_CFLAGS="$cf_save_CFLAGS -we147"
2067 ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
2068 AC_MSG_RESULT($ifelse([$2],,INTEL_COMPILER,[$2]))
2073 dnl ---------------------------------------------------------------------------
2074 dnl CF_LD_RPATH_OPT version: 8 updated: 2018/08/18 16:36:35
2076 dnl For the given system and compiler, find the compiler flags to pass to the
2077 dnl loader to use the "rpath" feature.
2078 AC_DEFUN([CF_LD_RPATH_OPT],
2080 AC_REQUIRE([CF_CHECK_CACHE])
2083 if test "x$cf_cv_enable_rpath" != xno
2085 AC_MSG_CHECKING(for an rpath option)
2086 case $cf_cv_system_name in
2088 if test "$GCC" = yes; then
2089 LD_RPATH_OPT="-Wl,-rpath,"
2091 LD_RPATH_OPT="-rpath "
2094 (linux*|gnu*|k*bsd*-gnu|freebsd*)
2095 LD_RPATH_OPT="-Wl,-rpath,"
2097 (openbsd[[2-9]].*|mirbsd*)
2098 LD_RPATH_OPT="-Wl,-rpath,"
2101 LD_RPATH_OPT="-rpath "
2104 LD_RPATH_OPT="-Wl,-rpath,"
2107 LD_RPATH_OPT="-rpath "
2115 AC_MSG_RESULT($LD_RPATH_OPT)
2117 case "x$LD_RPATH_OPT" in
2119 AC_MSG_CHECKING(if we need a space after rpath option)
2120 cf_save_LIBS="$LIBS"
2121 CF_ADD_LIBS(${LD_RPATH_OPT}$libdir)
2122 AC_TRY_LINK(, , cf_rpath_space=no, cf_rpath_space=yes)
2123 LIBS="$cf_save_LIBS"
2124 AC_MSG_RESULT($cf_rpath_space)
2125 test "$cf_rpath_space" = yes && LD_RPATH_OPT="$LD_RPATH_OPT "
2130 dnl ---------------------------------------------------------------------------
2131 dnl CF_LIBRARY_PATH version: 10 updated: 2015/04/15 19:08:48
2133 dnl Construct a search-list of directories for a nonstandard library-file
2136 dnl $1 = the variable to return as result
2137 dnl $2 = the package name
2138 AC_DEFUN([CF_LIBRARY_PATH],
2141 cf_library_path_list=""
2142 if test -n "${LDFLAGS}${LIBS}" ; then
2143 for cf_library_path in $LDFLAGS $LIBS
2145 case $cf_library_path in
2147 cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'`
2148 CF_ADD_SUBDIR_PATH($1,$2,lib,$cf_library_path,NONE)
2149 cf_library_path_list="$cf_library_path_list [$]$1"
2155 CF_SUBDIR_PATH($1,$2,lib)
2157 $1="$cf_library_path_list [$]$1"
2159 dnl ---------------------------------------------------------------------------
2160 dnl CF_MAKE_TAGS version: 6 updated: 2010/10/23 15:52:32
2162 dnl Generate tags/TAGS targets for makefiles. Do not generate TAGS if we have
2163 dnl a monocase filesystem.
2164 AC_DEFUN([CF_MAKE_TAGS],[
2165 AC_REQUIRE([CF_MIXEDCASE_FILENAMES])
2167 AC_CHECK_PROGS(CTAGS, exctags ctags)
2168 AC_CHECK_PROGS(ETAGS, exetags etags)
2170 AC_CHECK_PROG(MAKE_LOWER_TAGS, ${CTAGS:-ctags}, yes, no)
2172 if test "$cf_cv_mixedcase" = yes ; then
2173 AC_CHECK_PROG(MAKE_UPPER_TAGS, ${ETAGS:-etags}, yes, no)
2178 if test "$MAKE_UPPER_TAGS" = yes ; then
2184 if test "$MAKE_LOWER_TAGS" = yes ; then
2193 AC_SUBST(MAKE_UPPER_TAGS)
2194 AC_SUBST(MAKE_LOWER_TAGS)
2196 dnl ---------------------------------------------------------------------------
2197 dnl CF_MATH_LIB version: 9 updated: 2017/01/21 11:06:25
2199 dnl Checks for libraries. At least one UNIX system, Apple Macintosh
2200 dnl Rhapsody 5.5, does not have -lm. We cannot use the simpler
2201 dnl AC_CHECK_LIB(m,sin), because that fails for C++.
2202 AC_DEFUN([CF_MATH_LIB],
2204 AC_CACHE_CHECK(if -lm needed for math functions,
2211 [double x = rand(); printf("result = %g\n", ]ifelse([$2],,sin(x),$2)[)],
2212 [cf_cv_need_libm=no],
2213 [cf_cv_need_libm=yes])])
2214 if test "$cf_cv_need_libm" = yes
2221 dnl ---------------------------------------------------------------------------
2222 dnl CF_MIXEDCASE_FILENAMES version: 7 updated: 2015/04/12 15:39:00
2223 dnl ----------------------
2224 dnl Check if the file-system supports mixed-case filenames. If we're able to
2225 dnl create a lowercase name and see it as uppercase, it doesn't support that.
2226 AC_DEFUN([CF_MIXEDCASE_FILENAMES],
2228 AC_CACHE_CHECK(if filesystem supports mixed-case filenames,cf_cv_mixedcase,[
2229 if test "$cross_compiling" = yes ; then
2230 case $target_alias in
2231 (*-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-msys*|*-mingw*|*-uwin*)
2239 rm -f conftest CONFTEST
2241 if test -f CONFTEST ; then
2246 rm -f conftest CONFTEST
2249 test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES,1,[Define to 1 if filesystem supports mixed-case filenames.])
2251 dnl ---------------------------------------------------------------------------
2252 dnl CF_MSG_LOG version: 5 updated: 2010/10/23 15:52:32
2254 dnl Write a debug message to config.log, along with the line number in the
2255 dnl configure script.
2256 AC_DEFUN([CF_MSG_LOG],[
2257 echo "${as_me:-configure}:__oline__: testing $* ..." 1>&AC_FD_CC
2259 dnl ---------------------------------------------------------------------------
2260 dnl CF_NCURSES_CC_CHECK version: 4 updated: 2007/07/29 10:39:05
2261 dnl -------------------
2262 dnl Check if we can compile with ncurses' header file
2263 dnl $1 is the cache variable to set
2264 dnl $2 is the header-file to include
2265 dnl $3 is the root name (ncurses or ncursesw)
2266 AC_DEFUN([CF_NCURSES_CC_CHECK],[
2268 ]ifelse($3,ncursesw,[
2269 #define _XOPEN_SOURCE_EXTENDED
2270 #undef HAVE_LIBUTF8_H /* in case we used CF_UTF8_LIB */
2271 #define HAVE_LIBUTF8_H /* to force ncurses' header file to use cchar_t */
2274 #ifdef NCURSES_VERSION
2275 ]ifelse($3,ncursesw,[
2280 printf("%s\n", NCURSES_VERSION);
2292 dnl ---------------------------------------------------------------------------
2293 dnl CF_NCURSES_CONFIG version: 21 updated: 2018/06/20 20:23:13
2294 dnl -----------------
2295 dnl Tie together the configure-script macros for ncurses, preferring these in
2297 dnl a) ".pc" files for pkg-config, using $NCURSES_CONFIG_PKG
2298 dnl b) the "-config" script from ncurses, using $NCURSES_CONFIG
2299 dnl c) just plain libraries
2301 dnl $1 is the root library name (default: "ncurses")
2302 AC_DEFUN([CF_NCURSES_CONFIG],[
2303 AC_REQUIRE([CF_PKG_CONFIG])
2304 cf_ncuconfig_root=ifelse($1,,ncurses,$1)
2305 cf_have_ncuconfig=no
2307 if test "x${PKG_CONFIG:=none}" != xnone; then
2308 AC_MSG_CHECKING(pkg-config for $cf_ncuconfig_root)
2309 if "$PKG_CONFIG" --exists $cf_ncuconfig_root ; then
2312 AC_MSG_CHECKING(if the $cf_ncuconfig_root package files work)
2313 cf_have_ncuconfig=unknown
2315 cf_save_CPPFLAGS="$CPPFLAGS"
2316 cf_save_LIBS="$LIBS"
2318 CF_ADD_CFLAGS(`$PKG_CONFIG --cflags $cf_ncuconfig_root`)
2319 CF_ADD_LIBS(`$PKG_CONFIG --libs $cf_ncuconfig_root`)
2321 AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
2322 [initscr(); mousemask(0,0); tgoto((char *)0, 0, 0);],
2323 [AC_TRY_RUN([#include <${cf_cv_ncurses_header:-curses.h}>
2325 { char *xx = curses_version(); return (xx == 0); }],
2326 [cf_have_ncuconfig=yes],
2327 [cf_have_ncuconfig=no],
2328 [cf_have_ncuconfig=maybe])],
2329 [cf_have_ncuconfig=no])
2330 AC_MSG_RESULT($cf_have_ncuconfig)
2331 test "$cf_have_ncuconfig" = maybe && cf_have_ncuconfig=yes
2332 if test "$cf_have_ncuconfig" != "yes"
2334 CPPFLAGS="$cf_save_CPPFLAGS"
2335 LIBS="$cf_save_LIBS"
2336 NCURSES_CONFIG_PKG=none
2338 AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
2339 NCURSES_CONFIG_PKG=$cf_ncuconfig_root
2345 NCURSES_CONFIG_PKG=none
2348 NCURSES_CONFIG_PKG=none
2351 if test "x$cf_have_ncuconfig" = "xno"; then
2352 cf_ncurses_config="${cf_ncuconfig_root}${NCURSES_CONFIG_SUFFIX}-config"; echo "Looking for ${cf_ncurses_config}"
2354 CF_ACVERSION_CHECK(2.52,
2355 [AC_CHECK_TOOLS(NCURSES_CONFIG, ${cf_ncurses_config} ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config, none)],
2356 [AC_PATH_PROGS(NCURSES_CONFIG, ${cf_ncurses_config} ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config, none)])
2358 if test "$NCURSES_CONFIG" != none ; then
2360 CF_ADD_CFLAGS(`$NCURSES_CONFIG --cflags`)
2361 CF_ADD_LIBS(`$NCURSES_CONFIG --libs`)
2363 # even with config script, some packages use no-override for curses.h
2364 CF_CURSES_HEADER(ifelse($1,,ncurses,$1))
2366 dnl like CF_NCURSES_CPPFLAGS
2367 AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
2369 dnl like CF_NCURSES_LIBS
2370 CF_UPPER(cf_nculib_ROOT,HAVE_LIB$cf_ncuconfig_root)
2371 AC_DEFINE_UNQUOTED($cf_nculib_ROOT)
2373 dnl like CF_NCURSES_VERSION
2374 cf_cv_ncurses_version=`$NCURSES_CONFIG --version`
2378 CF_NCURSES_CPPFLAGS(ifelse($1,,ncurses,$1))
2379 CF_NCURSES_LIBS(ifelse($1,,ncurses,$1))
2386 dnl ---------------------------------------------------------------------------
2387 dnl CF_NCURSES_CPPFLAGS version: 21 updated: 2012/10/06 08:57:51
2388 dnl -------------------
2389 dnl Look for the SVr4 curses clone 'ncurses' in the standard places, adjusting
2390 dnl the CPPFLAGS variable so we can include its header.
2392 dnl The header files may be installed as either curses.h, or ncurses.h (would
2393 dnl be obsolete, except that some packagers prefer this name to distinguish it
2394 dnl from a "native" curses implementation). If not installed for overwrite,
2395 dnl the curses.h file would be in an ncurses subdirectory (e.g.,
2396 dnl /usr/include/ncurses), but someone may have installed overwriting the
2397 dnl vendor's curses. Only very old versions (pre-1.9.2d, the first autoconf'd
2398 dnl version) of ncurses don't define either __NCURSES_H or NCURSES_VERSION in
2401 dnl If the installer has set $CFLAGS or $CPPFLAGS so that the ncurses header
2402 dnl is already in the include-path, don't even bother with this, since we cannot
2403 dnl easily determine which file it is. In this case, it has to be <curses.h>.
2405 dnl The optional parameter gives the root name of the library, in case it is
2406 dnl not installed as the default curses library. That is how the
2407 dnl wide-character version of ncurses is installed.
2408 AC_DEFUN([CF_NCURSES_CPPFLAGS],
2409 [AC_REQUIRE([CF_WITH_CURSES_DIR])
2411 AC_PROVIDE([CF_CURSES_CPPFLAGS])dnl
2412 cf_ncuhdr_root=ifelse($1,,ncurses,$1)
2414 test -n "$cf_cv_curses_dir" && \
2415 test "$cf_cv_curses_dir" != "no" && { \
2416 CF_ADD_INCDIR($cf_cv_curses_dir/include/$cf_ncuhdr_root)
2419 AC_CACHE_CHECK(for $cf_ncuhdr_root header in include-path, cf_cv_ncurses_h,[
2420 cf_header_list="$cf_ncuhdr_root/curses.h $cf_ncuhdr_root/ncurses.h"
2421 ( test "$cf_ncuhdr_root" = ncurses || test "$cf_ncuhdr_root" = ncursesw ) && cf_header_list="$cf_header_list curses.h ncurses.h"
2422 for cf_header in $cf_header_list
2424 CF_NCURSES_CC_CHECK(cf_cv_ncurses_h,$cf_header,$1)
2425 test "$cf_cv_ncurses_h" != no && break
2432 # some applications need this, but should check for NCURSES_VERSION
2433 AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
2437 dnl ---------------------------------------------------------------------------
2438 dnl CF_NCURSES_EXT_FUNCS version: 4 updated: 2012/10/06 16:39:58
2439 dnl --------------------
2440 dnl Since 2007/11/17, ncurses has defined NCURSES_EXT_FUNCS; earlier versions
2441 dnl may provide these functions. Define the symbol if it is not defined, and
2443 AC_DEFUN([CF_NCURSES_EXT_FUNCS],
2445 AC_CACHE_CHECK(for ncurses extended functions,cf_cv_ncurses_ext_funcs,[
2447 #include <${cf_cv_ncurses_header:-curses.h}>],
2449 int x = NCURSES_EXT_FUNCS
2450 ],[cf_cv_ncurses_ext_funcs=defined],[
2452 #include <${cf_cv_ncurses_header:-curses.h}>],
2454 (void) assume_default_colors (0, 0);
2455 (void) curses_version ();
2456 (void) define_key (0, 0);
2457 (void) is_term_resized (0, 0);
2458 (void) key_defined (0);
2459 (void) keybound (0, 0);
2460 (void) keyok (0, 0);
2461 (void) resize_term (0, 0);
2462 (void) resizeterm (0, 0);
2463 (void) use_default_colors ();
2464 (void) use_extended_names (0);
2465 (void) wresize (0, 0, 0);],
2466 [cf_cv_ncurses_ext_funcs=yes],
2467 [cf_cv_ncurses_ext_funcs=no])
2470 test "$cf_cv_ncurses_ext_funcs" = yes && AC_DEFINE(NCURSES_EXT_FUNCS,1,[Define to 1 if we have ncurses extensions])
2472 dnl ---------------------------------------------------------------------------
2473 dnl CF_NCURSES_HEADER version: 4 updated: 2015/04/15 19:08:48
2474 dnl -----------------
2475 dnl Find a "curses" header file, e.g,. "curses.h", or one of the more common
2476 dnl variations of ncurses' installs.
2478 dnl See also CF_CURSES_HEADER, which sets the same cache variable.
2479 AC_DEFUN([CF_NCURSES_HEADER],[
2481 if test "$cf_cv_ncurses_h" != no ; then
2482 cf_cv_ncurses_header=$cf_cv_ncurses_h
2485 AC_CACHE_CHECK(for $cf_ncuhdr_root include-path, cf_cv_ncurses_h2,[
2486 test -n "$verbose" && echo
2487 CF_HEADER_PATH(cf_search,$cf_ncuhdr_root)
2488 test -n "$verbose" && echo search path $cf_search
2489 cf_save2_CPPFLAGS="$CPPFLAGS"
2490 for cf_incdir in $cf_search
2492 CF_ADD_INCDIR($cf_incdir)
2497 CF_NCURSES_CC_CHECK(cf_cv_ncurses_h2,$cf_header,$1)
2498 if test "$cf_cv_ncurses_h2" != no ; then
2499 cf_cv_ncurses_h2=$cf_incdir/$cf_header
2500 test -n "$verbose" && echo $ac_n " ... found $ac_c" 1>&AC_FD_MSG
2503 test -n "$verbose" && echo " ... tested $cf_incdir/$cf_header" 1>&AC_FD_MSG
2505 CPPFLAGS="$cf_save2_CPPFLAGS"
2506 test "$cf_cv_ncurses_h2" != no && break
2508 test "$cf_cv_ncurses_h2" = no && AC_MSG_ERROR(not found)
2511 CF_DIRNAME(cf_1st_incdir,$cf_cv_ncurses_h2)
2512 cf_cv_ncurses_header=`basename $cf_cv_ncurses_h2`
2513 if test `basename $cf_1st_incdir` = $cf_ncuhdr_root ; then
2514 cf_cv_ncurses_header=$cf_ncuhdr_root/$cf_cv_ncurses_header
2516 CF_ADD_INCDIR($cf_1st_incdir)
2520 # Set definitions to allow ifdef'ing for ncurses.h
2522 case $cf_cv_ncurses_header in
2524 AC_DEFINE(HAVE_NCURSES_H,1,[Define to 1 if we have ncurses.h])
2528 case $cf_cv_ncurses_header in
2529 (ncurses/curses.h|ncurses/ncurses.h)
2530 AC_DEFINE(HAVE_NCURSES_NCURSES_H,1,[Define to 1 if we have ncurses/ncurses.h])
2532 (ncursesw/curses.h|ncursesw/ncurses.h)
2533 AC_DEFINE(HAVE_NCURSESW_NCURSES_H,1,[Define to 1 if we have ncursesw/ncurses.h])
2538 dnl ---------------------------------------------------------------------------
2539 dnl CF_NCURSES_LIBS version: 17 updated: 2015/04/15 19:08:48
2541 dnl Look for the ncurses library. This is a little complicated on Linux,
2542 dnl because it may be linked with the gpm (general purpose mouse) library.
2543 dnl Some distributions have gpm linked with (bsd) curses, which makes it
2544 dnl unusable with ncurses. However, we don't want to link with gpm unless
2545 dnl ncurses has a dependency, since gpm is normally set up as a shared library,
2546 dnl and the linker will record a dependency.
2548 dnl The optional parameter gives the root name of the library, in case it is
2549 dnl not installed as the default curses library. That is how the
2550 dnl wide-character version of ncurses is installed.
2551 AC_DEFUN([CF_NCURSES_LIBS],
2552 [AC_REQUIRE([CF_NCURSES_CPPFLAGS])
2554 cf_nculib_root=ifelse($1,,ncurses,$1)
2555 # This works, except for the special case where we find gpm, but
2556 # ncurses is in a nonstandard location via $LIBS, and we really want
2559 cf_ncurses_SAVE="$LIBS"
2560 AC_CHECK_LIB(gpm,Gpm_Open,
2561 [AC_CHECK_LIB(gpm,initscr,
2562 [LIBS="$cf_ncurses_SAVE"],
2563 [cf_ncurses_LIBS="-lgpm"])])
2567 # This is only necessary if you are linking against an obsolete
2568 # version of ncurses (but it should do no harm, since it's static).
2569 if test "$cf_nculib_root" = ncurses ; then
2570 AC_CHECK_LIB(mytinfo,tgoto,[cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"])
2575 CF_ADD_LIBS($cf_ncurses_LIBS)
2577 if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
2579 CF_ADD_LIBS(-l$cf_nculib_root)
2581 CF_FIND_LIBRARY($cf_nculib_root,$cf_nculib_root,
2582 [#include <${cf_cv_ncurses_header:-curses.h}>],
2587 if test -n "$cf_ncurses_LIBS" ; then
2588 AC_MSG_CHECKING(if we can link $cf_nculib_root without $cf_ncurses_LIBS)
2589 cf_ncurses_SAVE="$LIBS"
2590 for p in $cf_ncurses_LIBS ; do
2591 q=`echo $LIBS | sed -e "s%$p %%" -e "s%$p$%%"`
2592 if test "$q" != "$LIBS" ; then
2596 AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
2597 [initscr(); mousemask(0,0); tgoto((char *)0, 0, 0);],
2598 [AC_MSG_RESULT(yes)],
2600 LIBS="$cf_ncurses_SAVE"])
2603 CF_UPPER(cf_nculib_ROOT,HAVE_LIB$cf_nculib_root)
2604 AC_DEFINE_UNQUOTED($cf_nculib_ROOT)
2606 dnl ---------------------------------------------------------------------------
2607 dnl CF_NCURSES_PTHREADS version: 2 updated: 2016/04/22 05:07:41
2608 dnl -------------------
2609 dnl Use this followup check to ensure that we link with pthreads if ncurses
2611 AC_DEFUN([CF_NCURSES_PTHREADS],[
2612 : ${cf_nculib_root:=ifelse($1,,ncurses,$1)}
2613 AC_CHECK_LIB($cf_nculib_root,_nc_init_pthreads,
2614 cf_cv_ncurses_pthreads=yes,
2615 cf_cv_ncurses_pthreads=no)
2616 if test "$cf_cv_ncurses_pthreads" = yes
2618 CF_ADD_LIBS(-lpthread)
2621 dnl ---------------------------------------------------------------------------
2622 dnl CF_NCURSES_VERSION version: 15 updated: 2017/05/09 19:26:10
2623 dnl ------------------
2624 dnl Check for the version of ncurses, to aid in reporting bugs, etc.
2625 dnl Call CF_CURSES_CPPFLAGS first, or CF_NCURSES_CPPFLAGS. We don't use
2626 dnl AC_REQUIRE since that does not work with the shell's if/then/else/fi.
2627 AC_DEFUN([CF_NCURSES_VERSION],
2629 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
2630 AC_CACHE_CHECK(for ncurses version, cf_cv_ncurses_version,[
2631 cf_cv_ncurses_version=no
2635 #include <${cf_cv_ncurses_header:-curses.h}>
2639 FILE *fp = fopen("$cf_tempfile", "w");
2640 #ifdef NCURSES_VERSION
2641 # ifdef NCURSES_VERSION_PATCH
2642 fprintf(fp, "%s.%d\n", NCURSES_VERSION, NCURSES_VERSION_PATCH);
2644 fprintf(fp, "%s\n", NCURSES_VERSION);
2648 fprintf(fp, "old\n");
2653 ${cf_cv_main_return:-return}(0);
2655 cf_cv_ncurses_version=`cat $cf_tempfile`],,[
2657 # This will not work if the preprocessor splits the line after the
2658 # Autoconf token. The 'unproto' program does that.
2659 cat > conftest.$ac_ext <<EOF
2660 #include <${cf_cv_ncurses_header:-curses.h}>
2662 #ifdef NCURSES_VERSION
2663 Autoconf NCURSES_VERSION
2671 cf_try="$ac_cpp conftest.$ac_ext 2>&AC_FD_CC | grep '^Autoconf ' >conftest.out"
2673 if test -f conftest.out ; then
2674 cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[[^"]]*"%%' -e 's%".*%%'`
2675 test -n "$cf_out" && cf_cv_ncurses_version="$cf_out"
2681 test "$cf_cv_ncurses_version" = no || AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
2683 dnl ---------------------------------------------------------------------------
2684 dnl CF_NCURSES_WRAP_PREFIX version: 1 updated: 2009/03/28 16:08:10
2685 dnl ----------------------
2686 dnl Check for ncurses "wrap-prefix" used for public variables which have been
2687 dnl wrapped with a function to help with concurrency control.
2688 AC_DEFUN([CF_NCURSES_WRAP_PREFIX],
2690 AC_MSG_CHECKING(for ncurses wrap-prefix)
2691 AC_ARG_WITH(ncurses-wrap-prefix,
2692 [ --with-ncurses-wrap-prefix naming-prefix for ncurses wrapped-variables],
2693 [NCURSES_WRAP_PREFIX=$withval],
2694 [NCURSES_WRAP_PREFIX=_nc_])
2695 AC_MSG_RESULT($NCURSES_WRAP_PREFIX)
2697 AC_SUBST(NCURSES_WRAP_PREFIX)
2699 dnl ---------------------------------------------------------------------------
2700 dnl CF_NETBSD_FORM_H version: 2 updated: 2012/10/06 16:39:58
2701 dnl ----------------
2702 dnl Check for NetBSD's form.h, which is incompatible with SVr4 and ncurses.
2703 dnl Some workarounds are needed in client programs to allow them to compile.
2704 AC_DEFUN([CF_NETBSD_FORM_H],[
2705 AC_CACHE_CHECK(for NetBSD form.h,cf_cv_netbsd_form_h,[
2707 #include <${cf_cv_ncurses_header:-curses.h}>
2711 int y = current_field(form)->cursor_ypos;
2712 int x = current_field(form)->cursor_xpos;
2713 ],[cf_cv_netbsd_form_h=yes
2714 ],[cf_cv_netbsd_form_h=no])
2717 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])
2719 dnl ---------------------------------------------------------------------------
2720 dnl CF_NETBSD_MENU_H version: 2 updated: 2012/10/06 16:39:58
2721 dnl ----------------
2722 dnl Check for NetBSD's menu.h, which is incompatible with SVr4 and ncurses.
2723 dnl Some workarounds are needed in client programs to allow them to compile.
2724 AC_DEFUN([CF_NETBSD_MENU_H],[
2725 AC_CACHE_CHECK(for NetBSD menu.h,cf_cv_netbsd_menu_h,[
2727 #include <${cf_cv_ncurses_header:-curses.h}>
2731 int y = menu->max_item_width;
2732 ],[cf_cv_netbsd_menu_h=yes
2733 ],[cf_cv_netbsd_menu_h=no])
2736 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])
2738 dnl ---------------------------------------------------------------------------
2739 dnl CF_NO_LEAKS_OPTION version: 6 updated: 2015/04/12 15:39:00
2740 dnl ------------------
2741 dnl see CF_WITH_NO_LEAKS
2742 AC_DEFUN([CF_NO_LEAKS_OPTION],[
2743 AC_MSG_CHECKING(if you want to use $1 for testing)
2746 [AC_DEFINE_UNQUOTED($3,1,"Define to 1 if you want to use $1 for testing.")ifelse([$4],,[
2749 : ${with_cflags:=-g}
2750 : ${with_no_leaks:=yes}
2753 AC_MSG_RESULT(${with_$1:-no})
2755 case .$with_cflags in
2767 dnl ---------------------------------------------------------------------------
2768 dnl CF_PATH_SYNTAX version: 16 updated: 2015/04/18 08:56:57
2770 dnl Check the argument to see that it looks like a pathname. Rewrite it if it
2771 dnl begins with one of the prefix/exec_prefix variables, and then again if the
2772 dnl result begins with 'NONE'. This is necessary to work around autoconf's
2773 dnl delayed evaluation of those symbols.
2774 AC_DEFUN([CF_PATH_SYNTAX],[
2775 if test "x$prefix" != xNONE; then
2776 cf_path_syntax="$prefix"
2778 cf_path_syntax="$ac_default_prefix"
2782 (.\[$]\(*\)*|.\'*\'*)
2786 (.[[a-zA-Z]]:[[\\/]]*) # OS/2 EMX
2788 (.\[$]{*prefix}*|.\[$]{*dir}*)
2792 $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
2797 $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
2800 ifelse([$2],,[AC_MSG_ERROR([expected a pathname, not \"[$]$1\"])],$2)
2804 dnl ---------------------------------------------------------------------------
2805 dnl CF_PDCURSES_X11 version: 14 updated: 2018/06/20 20:23:13
2807 dnl Configure for PDCurses' X11 library
2808 AC_DEFUN([CF_PDCURSES_X11],[
2809 AC_REQUIRE([CF_X_ATHENA])
2811 CF_ACVERSION_CHECK(2.52,
2812 [AC_CHECK_TOOLS(XCURSES_CONFIG, xcurses-config, none)],
2813 [AC_PATH_PROGS(XCURSES_CONFIG, xcurses-config, none)])
2815 if test "$XCURSES_CONFIG" != none ; then
2817 CF_ADD_CFLAGS(`$XCURSES_CONFIG --cflags`)
2818 CF_ADD_LIBS(`$XCURSES_CONFIG --libs`)
2820 cf_cv_lib_XCurses=yes
2824 LDFLAGS="$LDFLAGS $X_LIBS"
2825 CF_CHECK_CFLAGS($X_CFLAGS)
2826 AC_CHECK_LIB(X11,XOpenDisplay,
2827 [CF_ADD_LIBS(-lX11)],,
2828 [$X_PRE_LIBS $LIBS $X_EXTRA_LIBS])
2829 AC_CACHE_CHECK(for XCurses library,cf_cv_lib_XCurses,[
2830 CF_ADD_LIBS(-lXCurses)
2832 #include <xcurses.h>
2833 char *XCursesProgramName = "test";
2835 [cf_cv_lib_XCurses=yes],
2836 [cf_cv_lib_XCurses=no])
2841 if test $cf_cv_lib_XCurses = yes ; then
2842 AC_DEFINE(UNIX,1,[Define to 1 if using PDCurses on Unix])
2843 AC_DEFINE(XCURSES,1,[Define to 1 if using PDCurses on Unix])
2844 AC_CHECK_HEADER(xcurses.h, AC_DEFINE(HAVE_XCURSES,1,[Define to 1 if using PDCurses on Unix]))
2846 AC_MSG_ERROR(Cannot link with XCurses)
2849 dnl ---------------------------------------------------------------------------
2850 dnl CF_PKG_CONFIG version: 10 updated: 2015/04/26 18:06:58
2852 dnl Check for the package-config program, unless disabled by command-line.
2853 AC_DEFUN([CF_PKG_CONFIG],
2855 AC_MSG_CHECKING(if you want to use pkg-config)
2856 AC_ARG_WITH(pkg-config,
2857 [ --with-pkg-config{=path} enable/disable use of pkg-config],
2858 [cf_pkg_config=$withval],
2859 [cf_pkg_config=yes])
2860 AC_MSG_RESULT($cf_pkg_config)
2862 case $cf_pkg_config in
2867 CF_ACVERSION_CHECK(2.52,
2868 [AC_PATH_TOOL(PKG_CONFIG, pkg-config, none)],
2869 [AC_PATH_PROG(PKG_CONFIG, pkg-config, none)])
2876 test -z "$PKG_CONFIG" && PKG_CONFIG=none
2877 if test "$PKG_CONFIG" != none ; then
2878 CF_PATH_SYNTAX(PKG_CONFIG)
2879 elif test "x$cf_pkg_config" != xno ; then
2880 AC_MSG_WARN(pkg-config is not installed)
2883 AC_SUBST(PKG_CONFIG)
2885 dnl ---------------------------------------------------------------------------
2886 dnl CF_POSIX_C_SOURCE version: 10 updated: 2018/06/20 20:23:13
2887 dnl -----------------
2888 dnl Define _POSIX_C_SOURCE to the given level, and _POSIX_SOURCE if needed.
2890 dnl POSIX.1-1990 _POSIX_SOURCE
2891 dnl POSIX.1-1990 and _POSIX_SOURCE and
2892 dnl POSIX.2-1992 C-Language _POSIX_C_SOURCE=2
2894 dnl POSIX.1b-1993 _POSIX_C_SOURCE=199309L
2895 dnl POSIX.1c-1996 _POSIX_C_SOURCE=199506L
2896 dnl X/Open 2000 _POSIX_C_SOURCE=200112L
2899 dnl $1 is the nominal value for _POSIX_C_SOURCE
2900 AC_DEFUN([CF_POSIX_C_SOURCE],
2902 cf_POSIX_C_SOURCE=ifelse([$1],,199506L,[$1])
2904 cf_save_CFLAGS="$CFLAGS"
2905 cf_save_CPPFLAGS="$CPPFLAGS"
2907 CF_REMOVE_DEFINE(cf_trim_CFLAGS,$cf_save_CFLAGS,_POSIX_C_SOURCE)
2908 CF_REMOVE_DEFINE(cf_trim_CPPFLAGS,$cf_save_CPPFLAGS,_POSIX_C_SOURCE)
2910 AC_CACHE_CHECK(if we should define _POSIX_C_SOURCE,cf_cv_posix_c_source,[
2911 CF_MSG_LOG(if the symbol is already defined go no further)
2912 AC_TRY_COMPILE([#include <sys/types.h>],[
2913 #ifndef _POSIX_C_SOURCE
2916 [cf_cv_posix_c_source=no],
2917 [cf_want_posix_source=no
2918 case .$cf_POSIX_C_SOURCE in
2920 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
2923 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
2924 cf_want_posix_source=yes
2927 cf_want_posix_source=yes
2930 if test "$cf_want_posix_source" = yes ; then
2931 AC_TRY_COMPILE([#include <sys/types.h>],[
2932 #ifdef _POSIX_SOURCE
2935 cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE")
2937 CF_MSG_LOG(ifdef from value $cf_POSIX_C_SOURCE)
2938 CFLAGS="$cf_trim_CFLAGS"
2939 CPPFLAGS="$cf_trim_CPPFLAGS"
2940 CF_APPEND_TEXT(CPPFLAGS,$cf_cv_posix_c_source)
2941 CF_MSG_LOG(if the second compile does not leave our definition intact error)
2942 AC_TRY_COMPILE([#include <sys/types.h>],[
2943 #ifndef _POSIX_C_SOURCE
2946 [cf_cv_posix_c_source=no])
2947 CFLAGS="$cf_save_CFLAGS"
2948 CPPFLAGS="$cf_save_CPPFLAGS"
2952 if test "$cf_cv_posix_c_source" != no ; then
2953 CFLAGS="$cf_trim_CFLAGS"
2954 CPPFLAGS="$cf_trim_CPPFLAGS"
2955 CF_ADD_CFLAGS($cf_cv_posix_c_source)
2959 dnl ---------------------------------------------------------------------------
2960 dnl CF_PRG_RULES version: 1 updated: 2006/06/03 11:45:08
2962 dnl Append definitions and rules for the given programs to the subdirectory
2963 dnl Makefiles, and the recursion rule for the top-level Makefile.
2966 dnl $1 = script to run
2967 dnl $2 = list of subdirectories
2971 AC_DEFUN([CF_PRG_RULES],
2975 if test ! -d $srcdir/$cf_dir; then
2977 elif test -f $srcdir/$cf_dir/programs; then
2978 $AWK -f $1 $srcdir/$cf_dir/programs >>$cf_dir/Makefile
2983 dnl ---------------------------------------------------------------------------
2984 dnl CF_PROG_CC version: 4 updated: 2014/07/12 18:57:58
2986 dnl standard check for CC, plus followup sanity checks
2987 dnl $1 = optional parameter to pass to AC_PROG_CC to specify compiler name
2988 AC_DEFUN([CF_PROG_CC],[
2989 ifelse($1,,[AC_PROG_CC],[AC_PROG_CC($1)])
2991 CF_ACVERSION_CHECK(2.52,
2996 dnl ---------------------------------------------------------------------------
2997 dnl CF_PROG_INSTALL version: 7 updated: 2015/04/18 08:56:57
2999 dnl Force $INSTALL to be an absolute-path. Otherwise, edit_man.sh and the
3000 dnl misc/tabset install won't work properly. Usually this happens only when
3001 dnl using the fallback mkinstalldirs script
3002 AC_DEFUN([CF_PROG_INSTALL],
3008 CF_DIRNAME(cf_dir,$INSTALL)
3009 test -z "$cf_dir" && cf_dir=.
3010 INSTALL=`cd $cf_dir && pwd`/`echo $INSTALL | sed -e 's%^.*/%%'`
3014 dnl ---------------------------------------------------------------------------
3015 dnl CF_PROG_LINT version: 3 updated: 2016/05/22 15:25:54
3017 AC_DEFUN([CF_PROG_LINT],
3019 AC_CHECK_PROGS(LINT, lint cppcheck splint)
3022 dnl ---------------------------------------------------------------------------
3023 dnl CF_REMOVE_DEFINE version: 3 updated: 2010/01/09 11:05:50
3024 dnl ----------------
3025 dnl Remove all -U and -D options that refer to the given symbol from a list
3026 dnl of C compiler options. This works around the problem that not all
3027 dnl compilers process -U and -D options from left-to-right, so a -U option
3028 dnl cannot be used to cancel the effect of a preceding -D option.
3030 dnl $1 = target (which could be the same as the source variable)
3031 dnl $2 = source (including '$')
3032 dnl $3 = symbol to remove
3033 define([CF_REMOVE_DEFINE],
3036 sed -e 's/-[[UD]]'"$3"'\(=[[^ ]]*\)\?[[ ]]/ /g' \
3037 -e 's/-[[UD]]'"$3"'\(=[[^ ]]*\)\?[$]//g'`
3039 dnl ---------------------------------------------------------------------------
3040 dnl CF_RPATH_HACK version: 11 updated: 2013/09/01 13:02:00
3042 AC_DEFUN([CF_RPATH_HACK],
3044 AC_REQUIRE([CF_LD_RPATH_OPT])
3045 AC_MSG_CHECKING(for updated LDFLAGS)
3046 if test -n "$LD_RPATH_OPT" ; then
3047 AC_MSG_RESULT(maybe)
3049 AC_CHECK_PROGS(cf_ldd_prog,ldd,no)
3050 cf_rpath_list="/usr/lib /lib"
3051 if test "$cf_ldd_prog" != no
3055 AC_TRY_LINK([#include <stdio.h>],
3057 [cf_rpath_oops=`$cf_ldd_prog conftest$ac_exeext | fgrep ' not found' | sed -e 's% =>.*$%%' |sort | uniq`
3058 cf_rpath_list=`$cf_ldd_prog conftest$ac_exeext | fgrep / | sed -e 's%^.*[[ ]]/%/%' -e 's%/[[^/]][[^/]]*$%%' |sort | uniq`])
3060 # If we passed the link-test, but get a "not found" on a given library,
3061 # this could be due to inept reconfiguration of gcc to make it only
3062 # partly honor /usr/local/lib (or whatever). Sometimes this behavior
3063 # is intentional, e.g., installing gcc in /usr/bin and suppressing the
3064 # /usr/local libraries.
3065 if test -n "$cf_rpath_oops"
3067 for cf_rpath_src in $cf_rpath_oops
3069 for cf_rpath_dir in \
3074 if test -f $cf_rpath_dir/lib/$cf_rpath_src
3076 CF_VERBOSE(...adding -L$cf_rpath_dir/lib to LDFLAGS for $cf_rpath_src)
3077 LDFLAGS="$LDFLAGS -L$cf_rpath_dir/lib"
3085 CF_VERBOSE(...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS)
3087 CF_RPATH_HACK_2(LDFLAGS)
3088 CF_RPATH_HACK_2(LIBS)
3090 CF_VERBOSE(...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS)
3094 AC_SUBST(EXTRA_LDFLAGS)
3096 dnl ---------------------------------------------------------------------------
3097 dnl CF_RPATH_HACK_2 version: 7 updated: 2015/04/12 15:39:00
3099 dnl Do one set of substitutions for CF_RPATH_HACK, adding an rpath option to
3100 dnl EXTRA_LDFLAGS for each -L option found.
3102 dnl $cf_rpath_list contains a list of directories to ignore.
3104 dnl $1 = variable name to update. The LDFLAGS variable should be the only one,
3105 dnl but LIBS often has misplaced -L options.
3106 AC_DEFUN([CF_RPATH_HACK_2],
3108 CF_VERBOSE(...checking $1 [$]$1)
3111 for cf_rpath_src in [$]$1
3113 case $cf_rpath_src in
3116 # check if this refers to a directory which we will ignore
3118 if test -n "$cf_rpath_list"
3120 for cf_rpath_item in $cf_rpath_list
3122 if test "x$cf_rpath_src" = "x-L$cf_rpath_item"
3130 if test "$cf_rpath_skip" = no
3132 # transform the option
3133 if test "$LD_RPATH_OPT" = "-R " ; then
3134 cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%-R %"`
3136 cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%$LD_RPATH_OPT%"`
3139 # if we have not already added this, add it now
3140 cf_rpath_tst=`echo "$EXTRA_LDFLAGS" | sed -e "s%$cf_rpath_tmp %%"`
3141 if test "x$cf_rpath_tst" = "x$EXTRA_LDFLAGS"
3143 CF_VERBOSE(...Filter $cf_rpath_src ->$cf_rpath_tmp)
3144 EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS"
3149 cf_rpath_dst="$cf_rpath_dst $cf_rpath_src"
3153 CF_VERBOSE(...checked $1 [$]$1)
3154 AC_SUBST(EXTRA_LDFLAGS)
3156 dnl ---------------------------------------------------------------------------
3157 dnl CF_SIGWINCH version: 1 updated: 2006/04/02 16:41:09
3159 dnl Use this macro after CF_XOPEN_SOURCE, but do not require it (not all
3160 dnl programs need this test).
3162 dnl This is really a MacOS X 10.4.3 workaround. Defining _POSIX_C_SOURCE
3163 dnl forces SIGWINCH to be undefined (breaks xterm, ncurses). Oddly, the struct
3164 dnl winsize declaration is left alone - we may revisit this if Apple choose to
3165 dnl break that part of the interface as well.
3166 AC_DEFUN([CF_SIGWINCH],
3168 AC_CACHE_CHECK(if SIGWINCH is defined,cf_cv_define_sigwinch,[
3170 #include <sys/types.h>
3171 #include <sys/signal.h>
3172 ],[int x = SIGWINCH],
3173 [cf_cv_define_sigwinch=yes],
3175 #undef _XOPEN_SOURCE
3176 #undef _POSIX_SOURCE
3177 #undef _POSIX_C_SOURCE
3178 #include <sys/types.h>
3179 #include <sys/signal.h>
3180 ],[int x = SIGWINCH],
3181 [cf_cv_define_sigwinch=maybe],
3182 [cf_cv_define_sigwinch=no])
3186 if test "$cf_cv_define_sigwinch" = maybe ; then
3187 AC_CACHE_CHECK(for actual SIGWINCH definition,cf_cv_fixup_sigwinch,[
3188 cf_cv_fixup_sigwinch=unknown
3190 while test $cf_sigwinch != 1
3193 #undef _XOPEN_SOURCE
3194 #undef _POSIX_SOURCE
3195 #undef _POSIX_C_SOURCE
3196 #include <sys/types.h>
3197 #include <sys/signal.h>
3199 #if SIGWINCH != $cf_sigwinch
3203 [cf_cv_fixup_sigwinch=$cf_sigwinch
3206 cf_sigwinch=`expr $cf_sigwinch - 1`
3210 if test "$cf_cv_fixup_sigwinch" != unknown ; then
3211 CPPFLAGS="$CPPFLAGS -DSIGWINCH=$cf_cv_fixup_sigwinch"
3215 dnl ---------------------------------------------------------------------------
3216 dnl CF_SIG_ATOMIC_T version: 3 updated: 2012/10/04 20:12:20
3218 dnl signal handler, but there are some gcc depedencies in that recommendation.
3220 AC_DEFUN([CF_SIG_ATOMIC_T],
3222 AC_MSG_CHECKING(for signal global datatype)
3223 AC_CACHE_VAL(cf_cv_sig_atomic_t,[
3225 "volatile sig_atomic_t" \
3230 #include <sys/types.h>
3236 static void handler(int sig)
3240 [signal(SIGINT, handler);
3242 [cf_cv_sig_atomic_t=$cf_type],
3243 [cf_cv_sig_atomic_t=no])
3244 test "$cf_cv_sig_atomic_t" != no && break
3247 AC_MSG_RESULT($cf_cv_sig_atomic_t)
3248 test "$cf_cv_sig_atomic_t" != no && AC_DEFINE_UNQUOTED(SIG_ATOMIC_T, $cf_cv_sig_atomic_t,[Define to signal global datatype])
3250 dnl ---------------------------------------------------------------------------
3251 dnl CF_SUBDIR_PATH version: 7 updated: 2014/12/04 04:33:06
3253 dnl Construct a search-list for a nonstandard header/lib-file
3254 dnl $1 = the variable to return as result
3255 dnl $2 = the package name
3256 dnl $3 = the subdirectory, e.g., bin, include or lib
3257 AC_DEFUN([CF_SUBDIR_PATH],
3261 CF_ADD_SUBDIR_PATH($1,$2,$3,$prefix,NONE)
3263 for cf_subdir_prefix in \
3271 CF_ADD_SUBDIR_PATH($1,$2,$3,$cf_subdir_prefix,$prefix)
3274 dnl ---------------------------------------------------------------------------
3275 dnl CF_SYS_TIME_SELECT version: 6 updated: 2015/04/18 08:56:57
3276 dnl ------------------
3277 dnl Check if we can include <sys/time.h> with <sys/select.h>; this breaks on
3278 dnl older SCO configurations.
3279 AC_DEFUN([CF_SYS_TIME_SELECT],
3281 AC_MSG_CHECKING(if sys/time.h works with sys/select.h)
3282 AC_CACHE_VAL(cf_cv_sys_time_select,[
3284 #include <sys/types.h>
3285 #ifdef HAVE_SYS_TIME_H
3286 #include <sys/time.h>
3288 #ifdef HAVE_SYS_SELECT_H
3289 #include <sys/select.h>
3291 ],[],[cf_cv_sys_time_select=yes],
3292 [cf_cv_sys_time_select=no])
3294 AC_MSG_RESULT($cf_cv_sys_time_select)
3295 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>])
3297 dnl ---------------------------------------------------------------------------
3298 dnl CF_TERM_HEADER version: 4 updated: 2015/04/15 19:08:48
3300 dnl Look for term.h, which is part of X/Open curses. It defines the interface
3301 dnl to terminfo database. Usually it is in the same include-path as curses.h,
3302 dnl but some packagers change this, breaking various applications.
3303 AC_DEFUN([CF_TERM_HEADER],[
3304 AC_CACHE_CHECK(for terminfo header, cf_cv_term_header,[
3305 case ${cf_cv_ncurses_header} in
3306 (*/ncurses.h|*/ncursesw.h)
3307 cf_term_header=`echo "$cf_cv_ncurses_header" | sed -e 's%ncurses[[^.]]*\.h$%term.h%'`
3310 cf_term_header=term.h
3314 for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
3316 AC_TRY_COMPILE([#include <stdio.h>
3317 #include <${cf_cv_ncurses_header:-curses.h}>
3319 ],[int x = auto_left_margin],[
3320 cf_cv_term_header="$cf_test"],[
3321 cf_cv_term_header=unknown
3323 test "$cf_cv_term_header" != unknown && break
3327 # Set definitions to allow ifdef'ing to accommodate subdirectories
3329 case $cf_cv_term_header in
3331 AC_DEFINE(HAVE_TERM_H,1,[Define to 1 if we have term.h])
3335 case $cf_cv_term_header in
3337 AC_DEFINE(HAVE_NCURSES_TERM_H,1,[Define to 1 if we have ncurses/term.h])
3340 AC_DEFINE(HAVE_NCURSESW_TERM_H,1,[Define to 1 if we have ncursesw/term.h])
3344 dnl ---------------------------------------------------------------------------
3345 dnl CF_TOP_BUILDDIR version: 2 updated: 2013/07/27 17:38:32
3347 dnl Define a top_builddir symbol, for applications that need an absolute path.
3348 AC_DEFUN([CF_TOP_BUILDDIR],
3350 top_builddir=ifelse($1,,`pwd`,$1)
3351 AC_SUBST(top_builddir)
3353 dnl ---------------------------------------------------------------------------
3354 dnl CF_TPUTS_PROTO version: 3 updated: 2015/04/17 21:26:14
3356 dnl Check for type of function-pointer passed to tputs. Some old
3357 dnl implementations used functions that had different prototypes, making it
3358 dnl hard to compile portable programs using tputs.
3359 AC_DEFUN([CF_TPUTS_PROTO],[
3360 CF_CURSES_FUNCS(tputs)
3361 if test x$cf_cv_func_tputs = xyes
3364 for cf_arg in int char
3366 for cf_ret in int void
3368 if test $cf_ret = void
3370 cf_return="/* nothing */"
3372 cf_return="return value"
3375 #include <${cf_cv_ncurses_header:-curses.h}>
3376 #include <$cf_cv_term_header>
3378 static $cf_ret outc($cf_arg value) { $cf_return; }
3380 tputs("hello", 0, outc);
3381 ${cf_cv_main_return:-return}(0);
3383 CF_VERBOSE([prototype $cf_ret func($cf_arg value)])
3384 cat >>confdefs.h <<EOF
3385 #define TPUTS_ARG $cf_arg
3386 #define TPUTS_PROTO(func,value) $cf_ret func(TPUTS_ARG value)
3387 #define TPUTS_RETURN(value) $cf_return
3393 test $cf_done = yes && break
3397 dnl ---------------------------------------------------------------------------
3398 dnl CF_TRIM_X_LIBS version: 3 updated: 2015/04/12 15:39:00
3400 dnl Trim extra base X libraries added as a workaround for inconsistent library
3401 dnl dependencies returned by "new" pkg-config files.
3402 AC_DEFUN([CF_TRIM_X_LIBS],[
3403 for cf_trim_lib in Xmu Xt X11
3406 (*-l$cf_trim_lib\ *-l$cf_trim_lib*)
3407 LIBS=`echo "$LIBS " | sed -e 's/ / /g' -e 's%-l'"$cf_trim_lib"' %%' -e 's/ $//'`
3408 CF_VERBOSE(..trimmed $LIBS)
3413 dnl ---------------------------------------------------------------------------
3414 dnl CF_TRY_PKG_CONFIG version: 5 updated: 2013/07/06 21:27:06
3415 dnl -----------------
3416 dnl This is a simple wrapper to use for pkg-config, for libraries which may be
3417 dnl available in that form.
3419 dnl $1 = package name
3420 dnl $2 = extra logic to use, if any, after updating CFLAGS and LIBS
3421 dnl $3 = logic to use if pkg-config does not have the package
3422 AC_DEFUN([CF_TRY_PKG_CONFIG],[
3423 AC_REQUIRE([CF_PKG_CONFIG])
3425 if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists $1; then
3426 CF_VERBOSE(found package $1)
3427 cf_pkgconfig_incs="`$PKG_CONFIG --cflags $1 2>/dev/null`"
3428 cf_pkgconfig_libs="`$PKG_CONFIG --libs $1 2>/dev/null`"
3429 CF_VERBOSE(package $1 CFLAGS: $cf_pkgconfig_incs)
3430 CF_VERBOSE(package $1 LIBS: $cf_pkgconfig_libs)
3431 CF_ADD_CFLAGS($cf_pkgconfig_incs)
3432 CF_ADD_LIBS($cf_pkgconfig_libs)
3433 ifelse([$2],,:,[$2])
3437 ifelse([$3],,:,[$3])
3440 dnl ---------------------------------------------------------------------------
3441 dnl CF_TRY_XOPEN_SOURCE version: 2 updated: 2018/06/20 20:23:13
3442 dnl -------------------
3443 dnl If _XOPEN_SOURCE is not defined in the compile environment, check if we
3444 dnl can define it successfully.
3445 AC_DEFUN([CF_TRY_XOPEN_SOURCE],[
3446 AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[
3450 #include <sys/types.h>
3452 #ifndef _XOPEN_SOURCE
3455 [cf_cv_xopen_source=no],
3456 [cf_save="$CPPFLAGS"
3457 CF_APPEND_TEXT(CPPFLAGS,-D_XOPEN_SOURCE=$cf_XOPEN_SOURCE)
3461 #include <sys/types.h>
3463 #ifdef _XOPEN_SOURCE
3466 [cf_cv_xopen_source=no],
3467 [cf_cv_xopen_source=$cf_XOPEN_SOURCE])
3472 if test "$cf_cv_xopen_source" != no ; then
3473 CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE)
3474 CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE)
3475 cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
3476 CF_ADD_CFLAGS($cf_temp_xopen_source)
3479 dnl ---------------------------------------------------------------------------
3480 dnl CF_UPPER version: 5 updated: 2001/01/29 23:40:59
3482 dnl Make an uppercase version of a variable
3483 dnl $1=uppercase($2)
3484 AC_DEFUN([CF_UPPER],
3486 $1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
3488 dnl ---------------------------------------------------------------------------
3489 dnl CF_UTF8_LIB version: 8 updated: 2012/10/06 08:57:51
3491 dnl Check for multibyte support, and if not found, utf8 compatibility library
3492 AC_DEFUN([CF_UTF8_LIB],
3494 AC_CACHE_CHECK(for multibyte character support,cf_cv_utf8_lib,[
3495 cf_save_LIBS="$LIBS"
3497 #include <stdlib.h>],[putwc(0,0);],
3498 [cf_cv_utf8_lib=yes],
3500 #include <libutf8.h>],[putwc(0,0);],utf8,
3501 [cf_cv_utf8_lib=add-on],
3502 [cf_cv_utf8_lib=no])
3505 # HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
3507 if test "$cf_cv_utf8_lib" = "add-on" ; then
3508 AC_DEFINE(HAVE_LIBUTF8_H,1,[Define to 1 if we should include libutf8.h])
3509 CF_ADD_INCDIR($cf_cv_header_path_utf8)
3510 CF_ADD_LIBDIR($cf_cv_library_path_utf8)
3511 CF_ADD_LIBS($cf_cv_library_file_utf8)
3514 dnl ---------------------------------------------------------------------------
3515 dnl CF_VERBOSE version: 3 updated: 2007/07/29 09:55:12
3517 dnl Use AC_VERBOSE w/o the warnings
3518 AC_DEFUN([CF_VERBOSE],
3519 [test -n "$verbose" && echo " $1" 1>&AC_FD_MSG
3522 dnl ---------------------------------------------------------------------------
3523 dnl CF_WCHAR_TYPE version: 4 updated: 2012/10/06 16:39:58
3525 dnl Check if type wide-character type $1 is declared, and if so, which header
3526 dnl file is needed. The second parameter is used to set a shell variable when
3527 dnl the type is not found. The first parameter sets a shell variable for the
3529 AC_DEFUN([CF_WCHAR_TYPE],
3531 # This is needed on Tru64 5.0 to declare $1
3532 AC_CACHE_CHECK(if we must include wchar.h to declare $1,cf_cv_$1,[
3537 #ifdef HAVE_LIBUTF8_H
3538 #include <libutf8.h>
3547 #ifdef HAVE_LIBUTF8_H
3548 #include <libutf8.h>
3552 [cf_cv_$1=unknown])])])
3554 if test "$cf_cv_$1" = yes ; then
3555 AC_DEFINE(NEED_WCHAR_H,1,[Define to 1 if we must include wchar.h])
3560 # if we do not find $1 in either place, use substitution to provide a fallback.
3561 if test "$cf_cv_$1" = unknown ; then
3566 # if we find $1 in either place, use substitution to provide a fallback.
3567 if test "$cf_cv_$1" != unknown ; then
3572 dnl ---------------------------------------------------------------------------
3573 dnl CF_WITH_CURSES_DIR version: 3 updated: 2010/11/20 17:02:38
3574 dnl ------------------
3575 dnl Wrapper for AC_ARG_WITH to specify directory under which to look for curses
3577 AC_DEFUN([CF_WITH_CURSES_DIR],[
3579 AC_MSG_CHECKING(for specific curses-directory)
3580 AC_ARG_WITH(curses-dir,
3581 [ --with-curses-dir=DIR directory in which (n)curses is installed],
3582 [cf_cv_curses_dir=$withval],
3583 [cf_cv_curses_dir=no])
3584 AC_MSG_RESULT($cf_cv_curses_dir)
3586 if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
3588 CF_PATH_SYNTAX(withval)
3589 if test -d "$cf_cv_curses_dir"
3591 CF_ADD_INCDIR($cf_cv_curses_dir/include)
3592 CF_ADD_LIBDIR($cf_cv_curses_dir/lib)
3596 dnl ---------------------------------------------------------------------------
3597 dnl CF_WITH_DBMALLOC version: 7 updated: 2010/06/21 17:26:47
3598 dnl ----------------
3599 dnl Configure-option for dbmalloc. The optional parameter is used to override
3600 dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
3601 AC_DEFUN([CF_WITH_DBMALLOC],[
3602 CF_NO_LEAKS_OPTION(dbmalloc,
3603 [ --with-dbmalloc test: use Conor Cahill's dbmalloc library],
3606 if test "$with_dbmalloc" = yes ; then
3607 AC_CHECK_HEADER(dbmalloc.h,
3608 [AC_CHECK_LIB(dbmalloc,[debug_malloc]ifelse([$1],,[],[,$1]))])
3611 dnl ---------------------------------------------------------------------------
3612 dnl CF_WITH_DMALLOC version: 7 updated: 2010/06/21 17:26:47
3614 dnl Configure-option for dmalloc. The optional parameter is used to override
3615 dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
3616 AC_DEFUN([CF_WITH_DMALLOC],[
3617 CF_NO_LEAKS_OPTION(dmalloc,
3618 [ --with-dmalloc test: use Gray Watson's dmalloc library],
3621 if test "$with_dmalloc" = yes ; then
3622 AC_CHECK_HEADER(dmalloc.h,
3623 [AC_CHECK_LIB(dmalloc,[dmalloc_debug]ifelse([$1],,[],[,$1]))])
3626 dnl ---------------------------------------------------------------------------
3627 dnl CF_WITH_NCURSES_ETC version: 5 updated: 2016/02/20 19:23:20
3628 dnl -------------------
3629 dnl Use this macro for programs which use any variant of "curses", e.g.,
3630 dnl "ncurses", and "PDCurses". Programs that can use curses and some unrelated
3631 dnl library (such as slang) should use a "--with-screen=XXX" option.
3633 dnl This does not use AC_DEFUN, because that would tell autoconf to run each
3634 dnl of the macros inside this one - before this macro.
3635 define([CF_WITH_NCURSES_ETC],[
3640 AC_MSG_CHECKING(for specified curses library type)
3642 [ --with-screen=XXX use specified curses-libraries],
3643 [cf_cv_screen=$withval],[
3645 AC_ARG_WITH(ncursesw,
3646 [ --with-ncursesw use wide ncurses-libraries],
3647 [cf_cv_screen=ncursesw],[
3649 AC_ARG_WITH(ncurses,
3650 [ --with-ncurses use ncurses-libraries],
3651 [cf_cv_screen=ncurses],[
3653 AC_ARG_WITH(pdcurses,
3654 [ --with-pdcurses compile/link with pdcurses X11 library],
3655 [cf_cv_screen=pdcurses],[
3657 AC_ARG_WITH(curses-colr,
3658 [ --with-curses-colr compile/link with HPUX 10.x color-curses],
3659 [cf_cv_screen=curses_colr],[
3661 AC_ARG_WITH(curses-5lib,
3662 [ --with-curses-5lib compile/link with SunOS 5lib curses],
3663 [cf_cv_screen=curses_5lib])])])])])])
3665 AC_MSG_RESULT($cf_cv_screen)
3667 case $cf_cv_screen in
3673 CF_NCURSES_CONFIG($cf_cv_screen)
3676 CF_NCURSES_CONFIG($cf_cv_screen)
3682 AC_MSG_ERROR(unexpected screen-value: $cf_cv_screen)
3686 CF_NCURSES_PTHREADS($cf_cv_screen)
3689 dnl ---------------------------------------------------------------------------
3690 dnl CF_WITH_VALGRIND version: 1 updated: 2006/12/14 18:00:21
3691 dnl ----------------
3692 AC_DEFUN([CF_WITH_VALGRIND],[
3693 CF_NO_LEAKS_OPTION(valgrind,
3694 [ --with-valgrind test: use valgrind],
3697 dnl ---------------------------------------------------------------------------
3698 dnl CF_WITH_X11_RGB version: 1 updated: 2017/11/25 17:32:16
3700 dnl Handle configure option "--with-x11-rgb", setting these shell
3703 dnl $RGB_PATH is the option value, used for finding the X11 rgb file.
3704 dnl $no_x11_rgb is a "#" (comment) if "--without-x11-rgb" is given.
3706 dnl Most Linux's use this:
3707 dnl /usr/share/X11/rgb.txt
3708 dnl Debian uses this:
3709 dnl /etc/X11/rgb.txt
3710 dnl DragonFlyBSD ports uses this:
3711 dnl /usr/pkg/lib/X11/rgb.txt
3712 dnl FreeBSD ports use these:
3713 dnl /usr/local/lib/X11/rgb.txt
3714 dnl /usr/local/share/X11/rgb.txt
3715 dnl Mandriva has these:
3716 dnl /usr/lib/X11/rgb.txt
3717 dnl /usr/lib64/X11/rgb.txt
3718 dnl NetBSD has these
3719 dnl /usr/X11R7/lib/X11/rgb.txt
3720 dnl OpenSolaris uses
3722 dnl /usr/X11/etc/X11/rgb.txt
3723 dnl /usr/X11/share/X11/rgb.txt
3724 dnl /usr/X11/lib/X11/rgb.txt
3726 dnl /opt/local/share/X11/rgb.txt (MacPorts)
3727 dnl /opt/X11/share/X11/rgb.txt (non-ports)
3729 dnl /usr/X11/etc/X11/rgb.txt
3730 dnl /usr/X11/share/X11/rgb.txt (perhaps)
3731 dnl /usr/X11/lib/amd64/X11/rgb.txt
3732 dnl Solaris10 uses (in this order):
3733 dnl /usr/openwin/lib/X11/rgb.txt
3734 dnl /usr/X11/lib/X11/rgb.txt
3735 AC_DEFUN([CF_WITH_X11_RGB],[
3736 AC_MSG_CHECKING(for X11 rgb file)
3737 AC_ARG_WITH(x11-rgb,
3738 [ --with-x11-rgb=FILE file containing X11 rgb information (EPREFIX/lib/X11/rgb.txt)],
3739 [RGB_PATH=$withval],
3742 if test "x[$]RGB_PATH" = xauto
3744 RGB_PATH='${exec_prefix}/lib/X11/rgb.txt'
3746 /opt/local/share/X11/rgb.txt \
3747 /opt/X11/share/X11/rgb.txt \
3748 /usr/share/X11/rgb.txt \
3749 /usr/X11/share/X11/rgb.txt \
3750 /usr/X11/lib/X11/rgb.txt \
3751 /usr/lib/X11/rgb.txt \
3753 /usr/pkg/lib/X11/rgb.txt \
3754 /usr/X11R7/lib/X11/rgb.txt \
3755 /usr/X11R6/lib/X11/rgb.txt \
3756 /usr/X11R5/lib/X11/rgb.txt \
3757 /usr/X11R4/lib/X11/rgb.txt \
3758 /usr/local/lib/X11/rgb.txt \
3759 /usr/local/share/X11/rgb.txt \
3760 /usr/lib64/X11/rgb.txt
3762 if test -f "$cf_path" ; then
3769 CF_PATH_SYNTAX(cf_path)
3772 AC_MSG_RESULT($RGB_PATH)
3774 AC_DEFINE_UNQUOTED(RGB_PATH,"$cf_path")
3777 if test "$RGB_PATH" = no
3781 AC_SUBST(no_x11_rgb)
3783 dnl ---------------------------------------------------------------------------
3784 dnl CF_XOPEN_CURSES version: 14 updated: 2018/06/20 20:23:13
3786 dnl Test if we should define X/Open source for curses, needed on Digital Unix
3787 dnl 4.x, to see the extended functions, but breaks on IRIX 6.x.
3789 dnl The getbegyx() check is needed for HPUX, which omits legacy macros such
3790 dnl as getbegy(). The latter is better design, but the former is standard.
3791 AC_DEFUN([CF_XOPEN_CURSES],
3793 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
3794 AC_CACHE_CHECK(definition to turn on extended curses functions,cf_cv_need_xopen_extension,[
3795 cf_cv_need_xopen_extension=unknown
3798 #include <${cf_cv_ncurses_header:-curses.h}>],[
3799 #if defined(NCURSES_VERSION_PATCH)
3800 #if (NCURSES_VERSION_PATCH < 20100501) && (NCURSES_VERSION_PATCH >= 20100403)
3804 #ifdef NCURSES_VERSION
3806 int check2 = curs_set((int)sizeof(check));
3808 long x = winnstr(stdscr, "", 0);
3810 getbegyx(stdscr, y1, x1)],
3811 [cf_cv_need_xopen_extension=none],
3813 for cf_try_xopen_extension in _XOPEN_SOURCE_EXTENDED NCURSES_WIDECHAR
3816 #define $cf_try_xopen_extension 1
3818 #include <${cf_cv_ncurses_header:-curses.h}>],[
3819 #ifdef NCURSES_VERSION
3821 int check2 = curs_set((int)sizeof(check));
3823 long x = winnstr(stdscr, "", 0);
3825 getbegyx(stdscr, y1, x1)],
3826 [cf_cv_need_xopen_extension=$cf_try_xopen_extension; break])
3831 case $cf_cv_need_xopen_extension in
3833 CF_APPEND_TEXT(CPPFLAGS,-D$cf_cv_need_xopen_extension)
3838 dnl ---------------------------------------------------------------------------
3839 dnl CF_XOPEN_SOURCE version: 54 updated: 2018/11/07 07:43:44
3841 dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
3842 dnl or adapt to the vendor's definitions to get equivalent functionality,
3843 dnl without losing the common non-POSIX features.
3846 dnl $1 is the nominal value for _XOPEN_SOURCE
3847 dnl $2 is the nominal value for _POSIX_C_SOURCE
3848 AC_DEFUN([CF_XOPEN_SOURCE],[
3849 AC_REQUIRE([AC_CANONICAL_HOST])
3851 cf_XOPEN_SOURCE=ifelse([$1],,500,[$1])
3852 cf_POSIX_C_SOURCE=ifelse([$2],,199506L,[$2])
3857 cf_xopen_source="-D_ALL_SOURCE"
3863 cf_xopen_source="-D_APPLE_C_SOURCE"
3866 cf_xopen_source="-D_DARWIN_C_SOURCE"
3869 (freebsd*|dragonfly*|midnightbsd*)
3870 # 5.x headers associate
3871 # _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L
3872 # _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L
3873 cf_POSIX_C_SOURCE=200112L
3875 cf_xopen_source="-D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
3878 cf_xopen_source="-D_HPUX_SOURCE -D_XOPEN_SOURCE=500"
3881 cf_xopen_source="-D_HPUX_SOURCE"
3884 cf_xopen_source="-D_SGI_SOURCE"
3887 (linux*|uclinux*|gnu*|mint*|k*bsd*-gnu|cygwin)
3888 CF_GNU_SOURCE($cf_XOPEN_SOURCE)
3891 cf_xopen_source="-D_NETBSD_SOURCE" # POSIX.1-2001 features are ifdef'd with this...
3894 # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <sys/select.h> and other headers which use u_int / u_short types
3896 CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
3899 cf_xopen_source="-D_NETBSD_SOURCE" # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
3902 # setting _XOPEN_SOURCE lower than 500 breaks g++ compile with wchar.h, needed for ncursesw
3903 cf_xopen_source="-D_BSD_SOURCE"
3907 # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
3910 cf_xopen_source="-D_OSF_SOURCE"
3913 cf_xopen_source="-D_QNX_SOURCE"
3916 # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
3919 cf_xopen_source="-D__EXTENSIONS__"
3920 cf_cv_xopen_source=broken
3922 (sysv4.2uw2.*) # Novell/SCO UnixWare 2.x (tested on 2.1.2)
3928 CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
3932 if test -n "$cf_xopen_source" ; then
3933 CF_ADD_CFLAGS($cf_xopen_source,true)
3936 dnl In anything but the default case, we may have system-specific setting
3937 dnl which is still not guaranteed to provide all of the entrypoints that
3938 dnl _XOPEN_SOURCE would yield.
3939 if test -n "$cf_XOPEN_SOURCE" && test -z "$cf_cv_xopen_source" ; then
3940 AC_MSG_CHECKING(if _XOPEN_SOURCE really is set)
3941 AC_TRY_COMPILE([#include <stdlib.h>],[
3942 #ifndef _XOPEN_SOURCE
3945 [cf_XOPEN_SOURCE_set=yes],
3946 [cf_XOPEN_SOURCE_set=no])
3947 AC_MSG_RESULT($cf_XOPEN_SOURCE_set)
3948 if test $cf_XOPEN_SOURCE_set = yes
3950 AC_TRY_COMPILE([#include <stdlib.h>],[
3951 #if (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE
3954 [cf_XOPEN_SOURCE_set_ok=yes],
3955 [cf_XOPEN_SOURCE_set_ok=no])
3956 if test $cf_XOPEN_SOURCE_set_ok = no
3958 AC_MSG_WARN(_XOPEN_SOURCE is lower than requested)
3965 dnl ---------------------------------------------------------------------------
3966 dnl CF_X_ATHENA version: 23 updated: 2015/04/12 15:39:00
3968 dnl Check for Xaw (Athena) libraries
3970 dnl Sets $cf_x_athena according to the flavor of Xaw which is used.
3971 AC_DEFUN([CF_X_ATHENA],
3973 cf_x_athena=${cf_x_athena:-Xaw}
3975 AC_MSG_CHECKING(if you want to link with Xaw 3d library)
3978 [ --with-Xaw3d link with Xaw 3d library])
3979 if test "$withval" = yes ; then
3986 AC_MSG_CHECKING(if you want to link with Xaw 3d xft library)
3988 AC_ARG_WITH(Xaw3dxft,
3989 [ --with-Xaw3dxft link with Xaw 3d xft library])
3990 if test "$withval" = yes ; then
3991 cf_x_athena=Xaw3dxft
3997 AC_MSG_CHECKING(if you want to link with neXT Athena library)
4000 [ --with-neXtaw link with neXT Athena library])
4001 if test "$withval" = yes ; then
4008 AC_MSG_CHECKING(if you want to link with Athena-Plus library)
4010 AC_ARG_WITH(XawPlus,
4011 [ --with-XawPlus link with Athena-Plus library])
4012 if test "$withval" = yes ; then
4021 if test "$PKG_CONFIG" != none ; then
4023 test "$cf_x_athena" = Xaw && cf_athena_list="xaw8 xaw7 xaw6"
4024 for cf_athena_pkg in \
4027 ${cf_x_athena}-devel \
4029 lib${cf_x_athena}-devel
4031 CF_TRY_PKG_CONFIG($cf_athena_pkg,[
4032 cf_x_athena_lib="$cf_pkgconfig_libs"
4033 CF_UPPER(cf_x_athena_LIBS,HAVE_LIB_$cf_x_athena)
4034 AC_DEFINE_UNQUOTED($cf_x_athena_LIBS)
4038 AC_CACHE_CHECK(for usable $cf_x_athena/Xmu package,cf_cv_xaw_compat,[
4040 #include <X11/Xmu/CharSet.h>
4042 int check = XmuCompareISOLatin1("big", "small")
4043 ],[cf_cv_xaw_compat=yes],[cf_cv_xaw_compat=no])])
4045 if test "$cf_cv_xaw_compat" = no
4047 # workaround for broken ".pc" files...
4048 case "$cf_x_athena_lib" in
4052 CF_VERBOSE(work around broken package)
4054 cf_first_lib=`echo "$cf_save_xmu" | sed -e 's/^[ ][ ]*//' -e 's/ .*//'`
4055 CF_TRY_PKG_CONFIG(xmu,[
4057 CF_ADD_LIB_AFTER($cf_first_lib,$cf_pkgconfig_libs)
4059 CF_ADD_LIB_AFTER($cf_first_lib,-lXmu)
4070 if test -z "$cf_x_athena_lib" ; then
4073 CF_X_ATHENA_CPPFLAGS($cf_x_athena)
4074 CF_X_ATHENA_LIBS($cf_x_athena)
4077 dnl ---------------------------------------------------------------------------
4078 dnl CF_X_ATHENA_CPPFLAGS version: 6 updated: 2018/06/20 20:23:13
4079 dnl --------------------
4080 dnl Normally invoked by CF_X_ATHENA, with $1 set to the appropriate flavor of
4081 dnl the Athena widgets, e.g., Xaw, Xaw3d, neXtaw.
4082 AC_DEFUN([CF_X_ATHENA_CPPFLAGS],
4084 cf_x_athena_root=ifelse([$1],,Xaw,[$1])
4087 for cf_path in default \
4088 /usr/contrib/X11R6 \
4089 /usr/contrib/X11R5 \
4093 if test -z "$cf_x_athena_inc" ; then
4095 cf_test=X11/$cf_x_athena_root/SimpleMenu.h
4096 if test $cf_path != default ; then
4098 CF_APPEND_TEXT(CPPFLAGS,-I$cf_path/include)
4099 AC_MSG_CHECKING(for $cf_test in $cf_path)
4101 AC_MSG_CHECKING(for $cf_test)
4104 #include <X11/Intrinsic.h>
4105 #include <$cf_test>],[],
4108 AC_MSG_RESULT($cf_result)
4109 if test "$cf_result" = yes ; then
4110 cf_x_athena_inc=$cf_path
4118 if test -z "$cf_x_athena_inc" ; then
4120 [Unable to successfully find Athena header files with test program])
4121 elif test "$cf_x_athena_inc" != default ; then
4122 CF_APPEND_TEXT(CPPFLAGS,-I$cf_x_athena_inc)
4125 dnl ---------------------------------------------------------------------------
4126 dnl CF_X_ATHENA_LIBS version: 12 updated: 2011/07/17 19:55:02
4127 dnl ----------------
4128 dnl Normally invoked by CF_X_ATHENA, with $1 set to the appropriate flavor of
4129 dnl the Athena widgets, e.g., Xaw, Xaw3d, neXtaw.
4130 AC_DEFUN([CF_X_ATHENA_LIBS],
4131 [AC_REQUIRE([CF_X_TOOLKIT])
4132 cf_x_athena_root=ifelse([$1],,Xaw,[$1])
4135 for cf_path in default \
4136 /usr/contrib/X11R6 \
4137 /usr/contrib/X11R5 \
4142 ${cf_x_athena_root} \
4143 ${cf_x_athena_root}7 \
4144 ${cf_x_athena_root}6
4148 "-l$cf_lib -lXpm -lXmu" \
4149 "-l${cf_lib}_s -lXmu_s"
4151 if test -z "$cf_x_athena_lib" ; then
4153 cf_test=XawSimpleMenuAddGlobalActions
4154 if test $cf_path != default ; then
4155 CF_ADD_LIBS(-L$cf_path/lib $cf_libs)
4156 AC_MSG_CHECKING(for $cf_libs in $cf_path)
4158 CF_ADD_LIBS($cf_libs)
4159 AC_MSG_CHECKING(for $cf_test in $cf_libs)
4162 #include <X11/Intrinsic.h>
4163 #include <X11/$cf_x_athena_root/SimpleMenu.h>
4165 $cf_test((XtAppContext) 0)],
4168 AC_MSG_RESULT($cf_result)
4169 if test "$cf_result" = yes ; then
4170 cf_x_athena_lib="$cf_libs"
4176 test -n "$cf_x_athena_lib" && break
4180 if test -z "$cf_x_athena_lib" ; then
4182 [Unable to successfully link Athena library (-l$cf_x_athena_root) with test program])
4185 CF_UPPER(cf_x_athena_LIBS,HAVE_LIB_$cf_x_athena)
4186 AC_DEFINE_UNQUOTED($cf_x_athena_LIBS)
4188 dnl ---------------------------------------------------------------------------
4189 dnl CF_X_EXT version: 3 updated: 2010/06/02 05:03:05
4191 AC_DEFUN([CF_X_EXT],[
4192 CF_TRY_PKG_CONFIG(Xext,,[
4193 AC_CHECK_LIB(Xext,XextCreateExtension,
4194 [CF_ADD_LIB(Xext)])])
4196 dnl ---------------------------------------------------------------------------
4197 dnl CF_X_TOOLKIT version: 23 updated: 2015/04/12 15:39:00
4199 dnl Check for X Toolkit libraries
4200 AC_DEFUN([CF_X_TOOLKIT],
4202 AC_REQUIRE([AC_PATH_XTRA])
4203 AC_REQUIRE([CF_CHECK_CACHE])
4205 # OSX is schizoid about who owns /usr/X11 (old) versus /opt/X11 (new), and (and
4206 # in some cases has installed dummy files in the former, other cases replaced
4207 # it with a link to the new location). This complicates the configure script.
4208 # Check for that pitfall, and recover using pkg-config
4210 # If none of these are set, the configuration is almost certainly broken.
4211 if test -z "${X_CFLAGS}${X_PRE_LIBS}${X_LIBS}${X_EXTRA_LIBS}"
4213 CF_TRY_PKG_CONFIG(x11,,[AC_MSG_WARN(unable to find X11 library)])
4214 CF_TRY_PKG_CONFIG(ice,,[AC_MSG_WARN(unable to find ICE library)])
4215 CF_TRY_PKG_CONFIG(sm,,[AC_MSG_WARN(unable to find SM library)])
4216 CF_TRY_PKG_CONFIG(xt,,[AC_MSG_WARN(unable to find Xt library)])
4221 CF_TRY_PKG_CONFIG(xt,[
4227 # we have an "xt" package, but it may omit Xt's dependency on X11
4228 AC_CACHE_CHECK(for usable X dependency,cf_cv_xt_x11_compat,[
4230 #include <X11/Xlib.h>
4232 int rc1 = XDrawLine((Display*) 0, (Drawable) 0, (GC) 0, 0, 0, 0, 0);
4233 int rc2 = XClearWindow((Display*) 0, (Window) 0);
4234 int rc3 = XMoveWindow((Display*) 0, (Window) 0, 0, 0);
4235 int rc4 = XMoveResizeWindow((Display*)0, (Window)0, 0, 0, 0, 0);
4236 ],[cf_cv_xt_x11_compat=yes],[cf_cv_xt_x11_compat=no])])
4237 if test "$cf_cv_xt_x11_compat" = no
4239 CF_VERBOSE(work around broken X11 dependency)
4240 # 2010/11/19 - good enough until a working Xt on Xcb is delivered.
4241 CF_TRY_PKG_CONFIG(x11,,[CF_ADD_LIB_AFTER(-lXt,-lX11)])
4246 AC_CACHE_CHECK(for usable X Toolkit package,cf_cv_xt_ice_compat,[
4248 #include <X11/Shell.h>
4249 ],[int num = IceConnectionNumber(0)
4250 ],[cf_cv_xt_ice_compat=yes],[cf_cv_xt_ice_compat=no])])
4252 if test "$cf_cv_xt_ice_compat" = no
4254 # workaround for broken ".pc" files used for X Toolkit.
4255 case "x$X_PRE_LIBS" in
4261 CF_VERBOSE(work around broken ICE dependency)
4262 CF_TRY_PKG_CONFIG(ice,
4263 [CF_TRY_PKG_CONFIG(sm)],
4264 [CF_ADD_LIB_AFTER(-lXt,$X_PRE_LIBS)])
4274 LDFLAGS="$X_LIBS $LDFLAGS"
4275 CF_CHECK_CFLAGS($X_CFLAGS)
4277 AC_CHECK_FUNC(XOpenDisplay,,[
4278 AC_CHECK_LIB(X11,XOpenDisplay,
4280 [$X_PRE_LIBS $LIBS $X_EXTRA_LIBS])])
4282 AC_CHECK_FUNC(XtAppInitialize,,[
4283 AC_CHECK_LIB(Xt, XtAppInitialize,
4284 [AC_DEFINE(HAVE_LIBXT,1,[Define to 1 if we can compile with the Xt library])
4286 LIBS="-lXt $X_PRE_LIBS $LIBS $X_EXTRA_LIBS"],,
4287 [$X_PRE_LIBS $LIBS $X_EXTRA_LIBS])])
4290 if test $cf_have_X_LIBS = no ; then
4292 [Unable to successfully link X Toolkit library (-lXt) with
4293 test program. You will have to check and add the proper libraries by hand
4297 dnl ---------------------------------------------------------------------------
4298 dnl CF__CURSES_HEAD version: 2 updated: 2010/10/23 15:54:49
4300 dnl Define a reusable chunk which includes <curses.h> and <term.h> when they
4301 dnl are both available.
4302 define([CF__CURSES_HEAD],[
4304 #include <xcurses.h>
4305 char * XCursesProgramName = "test";
4307 #include <${cf_cv_ncurses_header:-curses.h}>
4308 #if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H)
4309 #include <ncursesw/term.h>
4310 #elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H)
4311 #include <ncurses/term.h>
4312 #elif defined(HAVE_TERM_H)