1 dnl***************************************************************************
2 dnl Copyright (c) 2003-2015,2016 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.135 2016/09/10 22:09:38 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: 12 updated: 2015/04/12 15:39:00
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_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
124 elif test "${cf_tst_cflags}" = "\"'" ; then
125 cf_new_extra_cppflags="$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_new_cppflags="$cf_new_cppflags $cf_add_cflags"
145 cf_new_cflags="$cf_new_cflags $cf_add_cflags"
150 cf_new_extra_cppflags="$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 CFLAGS="$CFLAGS $cf_new_cflags"
166 if test -n "$cf_new_cppflags" ; then
167 ifelse([$2],,,[CF_VERBOSE(add to \$CPPFLAGS $cf_new_cppflags)])
168 CPPFLAGS="$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 EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
176 AC_SUBST(EXTRA_CPPFLAGS)
179 dnl ---------------------------------------------------------------------------
180 dnl CF_ADD_INCDIR version: 14 updated: 2015/05/25 20:53:04
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 CPPFLAGS="$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_ARG_DISABLE version: 3 updated: 1999/03/30 17:24:31
346 dnl Allow user to disable a normally-on option.
347 AC_DEFUN([CF_ARG_DISABLE],
348 [CF_ARG_OPTION($1,[$2],[$3],[$4],yes)])dnl
349 dnl ---------------------------------------------------------------------------
350 dnl CF_ARG_ENABLE version: 3 updated: 1999/03/30 17:24:31
352 dnl Allow user to enable a normally-off option.
353 AC_DEFUN([CF_ARG_ENABLE],
354 [CF_ARG_OPTION($1,[$2],[$3],[$4],no)])dnl
355 dnl ---------------------------------------------------------------------------
356 dnl CF_ARG_OPTION version: 5 updated: 2015/05/10 19:52:14
358 dnl Restricted form of AC_ARG_ENABLE that ensures user doesn't give bogus
364 dnl $3 = action to perform if option is not default
365 dnl $4 = action if perform if option is default
366 dnl $5 = default option value (either 'yes' or 'no')
367 AC_DEFUN([CF_ARG_OPTION],
368 [AC_ARG_ENABLE([$1],[$2],[test "$enableval" != ifelse([$5],no,yes,no) && enableval=ifelse([$5],no,no,yes)
369 if test "$enableval" != "$5" ; then
371 ,[ $3]) ifelse([$4],,,[
374 fi],[enableval=$5 ifelse([$4],,,[
378 dnl ---------------------------------------------------------------------------
379 dnl CF_CC_ENV_FLAGS version: 6 updated: 2016/08/29 20:57:00
381 dnl Check for user's environment-breakage by stuffing CFLAGS/CPPFLAGS content
382 dnl into CC. This will not help with broken scripts that wrap the compiler
383 dnl with options, but eliminates a more common category of user confusion.
385 dnl In particular, it addresses the problem of being able to run the C
386 dnl preprocessor in a consistent manner.
388 dnl Caveat: this also disallows blanks in the pathname for the compiler, but
389 dnl the nuisance of having inconsistent settings for compiler and preprocessor
390 dnl outweighs that limitation.
391 AC_DEFUN([CF_CC_ENV_FLAGS],
393 # This should have been defined by AC_PROG_CC
396 AC_MSG_CHECKING(\$CC variable)
399 AC_MSG_RESULT(broken)
400 AC_MSG_WARN(your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options)
402 cf_flags=`echo "$CC" | sed -e 's/^.*[[ ]]\(-[[^ ]]\)/\1/'`
403 CC=`echo "$CC " | sed -e 's/[[ ]]-[[^ ]].*$//' -e 's/[[ ]]*$//'`
404 for cf_arg in $cf_flags
408 CF_ADD_CFLAGS($cf_flags)
415 CF_VERBOSE(resulting CC: '$CC')
416 CF_VERBOSE(resulting CFLAGS: '$CFLAGS')
417 CF_VERBOSE(resulting CPPFLAGS: '$CPPFLAGS')
424 dnl ---------------------------------------------------------------------------
425 dnl CF_CHECK_CACHE version: 12 updated: 2012/10/02 20:55:03
427 dnl Check if we're accidentally using a cache from a different machine.
428 dnl Derive the system name, as a check for reusing the autoconf cache.
430 dnl If we've packaged config.guess and config.sub, run that (since it does a
431 dnl better job than uname). Normally we'll use AC_CANONICAL_HOST, but allow
432 dnl an extra parameter that we may override, e.g., for AC_CANONICAL_SYSTEM
433 dnl which is useful in cross-compiles.
435 dnl Note: we would use $ac_config_sub, but that is one of the places where
436 dnl autoconf 2.5x broke compatibility with autoconf 2.13
437 AC_DEFUN([CF_CHECK_CACHE],
439 if test -f $srcdir/config.guess || test -f $ac_aux_dir/config.guess ; then
440 ifelse([$1],,[AC_CANONICAL_HOST],[$1])
441 system_name="$host_os"
443 system_name="`(uname -s -r) 2>/dev/null`"
444 if test -z "$system_name" ; then
445 system_name="`(hostname) 2>/dev/null`"
448 test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name",[Define to the system name.])
449 AC_CACHE_VAL(cf_cv_system_name,[cf_cv_system_name="$system_name"])
451 test -z "$system_name" && system_name="$cf_cv_system_name"
452 test -n "$cf_cv_system_name" && AC_MSG_RESULT(Configuring for $cf_cv_system_name)
454 if test ".$system_name" != ".$cf_cv_system_name" ; then
455 AC_MSG_RESULT(Cached system name ($system_name) does not agree with actual ($cf_cv_system_name))
456 AC_MSG_ERROR("Please remove config.cache and try again.")
459 dnl ---------------------------------------------------------------------------
460 dnl CF_CHECK_CFLAGS version: 3 updated: 2014/07/22 05:32:57
462 dnl Conditionally add to $CFLAGS and $CPPFLAGS values which are derived from
463 dnl a build-configuration such as imake. These have the pitfall that they
464 dnl often contain compiler-specific options which we cannot use, mixed with
465 dnl preprocessor options that we usually can.
466 AC_DEFUN([CF_CHECK_CFLAGS],
468 CF_VERBOSE(checking additions to CFLAGS)
469 cf_check_cflags="$CFLAGS"
470 cf_check_cppflags="$CPPFLAGS"
471 CF_ADD_CFLAGS($1,yes)
472 if test "x$cf_check_cflags" != "x$CFLAGS" ; then
473 AC_TRY_LINK([#include <stdio.h>],[printf("Hello world");],,
474 [CF_VERBOSE(test-compile failed. Undoing change to \$CFLAGS)
475 if test "x$cf_check_cppflags" != "x$CPPFLAGS" ; then
476 CF_VERBOSE(but keeping change to \$CPPFLAGS)
478 CFLAGS="$cf_check_flags"])
481 dnl ---------------------------------------------------------------------------
482 dnl CF_CHECK_CURSES_LIB version: 1 updated: 2015/04/25 20:53:11
483 dnl -------------------
484 dnl $1 = nominal library name, used also for header lookup
485 dnl $2 = suffix to append to library name
486 dnl $3 = function to check for using AC_CHECK_LIB
487 AC_DEFUN([CF_CHECK_CURSES_LIB],
489 AC_CHECK_LIB($1$2,$3,[
490 CF_UPPER(cf_upper,have_lib$1)
492 AC_DEFINE_UNQUOTED($cf_upper,1)])
494 dnl ---------------------------------------------------------------------------
495 dnl CF_CLANG_COMPILER version: 2 updated: 2013/11/19 19:23:35
496 dnl -----------------
497 dnl Check if the given compiler is really clang. clang's C driver defines
498 dnl __GNUC__ (fooling the configure script into setting $GCC to yes) but does
499 dnl not ignore some gcc options.
501 dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
502 dnl ensure that it is not mistaken for gcc/g++. It is normally invoked from
503 dnl the wrappers for gcc and g++ warnings.
505 dnl $1 = GCC (default) or GXX
506 dnl $2 = CLANG_COMPILER (default)
507 dnl $3 = CFLAGS (default) or CXXFLAGS
508 AC_DEFUN([CF_CLANG_COMPILER],[
509 ifelse([$2],,CLANG_COMPILER,[$2])=no
511 if test "$ifelse([$1],,[$1],GCC)" = yes ; then
512 AC_MSG_CHECKING(if this is really Clang ifelse([$1],GXX,C++,C) compiler)
513 cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
514 ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -Qunused-arguments"
520 ],[ifelse([$2],,CLANG_COMPILER,[$2])=yes
521 cf_save_CFLAGS="$cf_save_CFLAGS -Qunused-arguments"
523 ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
524 AC_MSG_RESULT($ifelse([$2],,CLANG_COMPILER,[$2]))
527 dnl ---------------------------------------------------------------------------
528 dnl CF_CURSES_ACS_MAP version: 7 updated: 2012/10/06 16:39:58
529 dnl -----------------
530 dnl Check for likely values of acs_map[]:
531 AC_DEFUN([CF_CURSES_ACS_MAP],
533 AC_REQUIRE([CF_NCURSES_WRAP_PREFIX])dnl
534 AC_CACHE_CHECK(for alternate character set array, cf_cv_curses_acs_map,[
535 cf_cv_curses_acs_map=unknown
536 for name in acs_map _acs_map __acs_map ${NCURSES_WRAP_PREFIX}acs_map
539 #include <${cf_cv_ncurses_header:-curses.h}>
541 $name['k'] = ACS_PLUS
542 ],[cf_cv_curses_acs_map=$name; break])
546 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_])
548 dnl ---------------------------------------------------------------------------
549 dnl CF_CURSES_CHECK_DATA version: 5 updated: 2014/07/19 18:41:17
550 dnl --------------------
551 dnl Check if curses.h defines the given data/variable.
552 dnl Use this after CF_NCURSES_CONFIG or CF_CURSES_CONFIG.
553 AC_DEFUN([CF_CURSES_CHECK_DATA],
555 AC_MSG_CHECKING(for data $1 declaration in ${cf_cv_ncurses_header:-curses.h})
557 AC_TRY_COMPILE(CF__CURSES_HEAD,[
559 ],cf_result=yes,cf_result=no)
560 AC_MSG_RESULT($cf_result)
562 if test $cf_result = yes ; then
563 CF_UPPER(cf_result,have_curses_data_$1)
564 AC_DEFINE_UNQUOTED($cf_result)
566 AC_MSG_CHECKING(for data $1 in library)
567 # BSD linkers insist on making weak linkage, but resolve at runtime.
568 AC_TRY_RUN(CF__CURSES_HEAD
574 fprintf(stderr, "testing linkage of $1:%p\n", foo);
575 ${cf_cv_main_return:-return}(foo == 0);
576 }],[cf_result=yes],[cf_result=no],[
578 AC_TRY_LINK(CF__CURSES_HEAD
582 fprintf(stderr, "testing linkage of $1:%p\n", foo);
583 ${cf_cv_main_return:-return}(foo == 0);
585 ],[cf_result=yes],[cf_result=no])
587 AC_MSG_RESULT($cf_result)
588 if test $cf_result = yes ; then
589 CF_UPPER(cf_result,decl_curses_data_$1)
590 AC_DEFINE_UNQUOTED($cf_result)
594 dnl ---------------------------------------------------------------------------
595 dnl CF_CURSES_CHECK_TYPE version: 4 updated: 2012/10/06 16:39:58
596 dnl --------------------
597 dnl Check if curses.h defines the given type
598 AC_DEFUN([CF_CURSES_CHECK_TYPE],
600 AC_MSG_CHECKING(for type $1 in ${cf_cv_ncurses_header:-curses.h})
602 #ifndef _XOPEN_SOURCE_EXTENDED
603 #define _XOPEN_SOURCE_EXTENDED
605 #include <${cf_cv_ncurses_header:-curses.h}>],[
607 ],cf_result=yes,cf_result=no)
608 AC_MSG_RESULT($cf_result)
609 if test $cf_result = yes ; then
610 CF_UPPER(cf_result,have_type_$1)
611 AC_DEFINE_UNQUOTED($cf_result,1,[Define to 1 if we have type $1])
613 AC_DEFINE_UNQUOTED($1,$2,[Define to appropriate type if $1 is not declared])
616 dnl ---------------------------------------------------------------------------
617 dnl CF_CURSES_CONFIG version: 2 updated: 2006/10/29 11:06:27
619 dnl Tie together the configure-script macros for curses. It may be ncurses,
620 dnl but unless asked, we do not make a special search for ncurses. However,
621 dnl still check for the ncurses version number, for use in other macros.
622 AC_DEFUN([CF_CURSES_CONFIG],
628 dnl ---------------------------------------------------------------------------
629 dnl CF_CURSES_CPPFLAGS version: 12 updated: 2015/04/15 19:08:48
630 dnl ------------------
631 dnl Look for the curses headers.
632 AC_DEFUN([CF_CURSES_CPPFLAGS],[
634 AC_CACHE_CHECK(for extra include directories,cf_cv_curses_incdir,[
635 cf_cv_curses_incdir=no
638 if test "x$cf_cv_screen" = "xcurses_colr"
640 test -d /usr/include/curses_colr && \
641 cf_cv_curses_incdir="-I/usr/include/curses_colr"
645 if test "x$cf_cv_screen" = "xcurses_5lib"
647 test -d /usr/5lib && \
648 test -d /usr/5include && \
649 cf_cv_curses_incdir="-I/usr/5include"
654 test "$cf_cv_curses_incdir" != no && CPPFLAGS="$CPPFLAGS $cf_cv_curses_incdir"
659 dnl ---------------------------------------------------------------------------
660 dnl CF_CURSES_FUNCS version: 18 updated: 2014/07/19 18:44:41
662 dnl Curses-functions are a little complicated, since a lot of them are macros.
663 AC_DEFUN([CF_CURSES_FUNCS],
665 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
666 AC_REQUIRE([CF_XOPEN_CURSES])
667 AC_REQUIRE([CF_CURSES_TERM_H])
668 AC_REQUIRE([CF_CURSES_UNCTRL_H])
671 CF_UPPER(cf_tr_func,$cf_func)
672 AC_MSG_CHECKING(for ${cf_func})
673 CF_MSG_LOG(${cf_func})
674 AC_CACHE_VAL(cf_cv_func_$cf_func,[
675 eval cf_result='$ac_cv_func_'$cf_func
676 if test ".$cf_result" != ".no"; then
677 AC_TRY_LINK(CF__CURSES_HEAD,
680 long foo = (long)(&${cf_func});
681 fprintf(stderr, "testing linkage of $cf_func:%p\n", foo);
682 if (foo + 1234 > 5678)
683 ${cf_cv_main_return:-return}(foo);
689 eval 'cf_cv_func_'$cf_func'=$cf_result'
691 # use the computed/retrieved cache-value:
692 eval 'cf_result=$cf_cv_func_'$cf_func
693 AC_MSG_RESULT($cf_result)
694 if test $cf_result != no; then
695 AC_DEFINE_UNQUOTED(HAVE_${cf_tr_func})
699 dnl ---------------------------------------------------------------------------
700 dnl CF_CURSES_HEADER version: 5 updated: 2015/04/23 20:35:30
702 dnl Find a "curses" header file, e.g,. "curses.h", or one of the more common
703 dnl variations of ncurses' installs.
705 dnl $1 = ncurses when looking for ncurses, or is empty
706 AC_DEFUN([CF_CURSES_HEADER],[
707 AC_CACHE_CHECK(if we have identified curses headers,cf_cv_ncurses_header,[
708 cf_cv_ncurses_header=none
710 ncurses.h ifelse($1,,,[$1/ncurses.h]) \
711 curses.h ifelse($1,,,[$1/curses.h]) ifelse($1,,[ncurses/ncurses.h ncurses/curses.h])
713 AC_TRY_COMPILE([#include <${cf_header}>],
714 [initscr(); tgoto("?", 0,0)],
715 [cf_cv_ncurses_header=$cf_header; break],[])
719 if test "$cf_cv_ncurses_header" = none ; then
720 AC_MSG_ERROR(No curses header-files found)
723 # cheat, to get the right #define's for HAVE_NCURSES_H, etc.
724 AC_CHECK_HEADERS($cf_cv_ncurses_header)
726 dnl ---------------------------------------------------------------------------
727 dnl CF_CURSES_LIBS version: 39 updated: 2015/05/10 19:52:14
729 dnl Look for the curses libraries. Older curses implementations may require
730 dnl termcap/termlib to be linked as well. Call CF_CURSES_CPPFLAGS first.
731 AC_DEFUN([CF_CURSES_LIBS],[
733 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
734 AC_MSG_CHECKING(if we have identified curses libraries)
735 AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
736 [initscr(); tgoto("?", 0,0)],
739 AC_MSG_RESULT($cf_result)
741 if test "$cf_result" = no ; then
744 AC_CHECK_LIB(mytinfo,tgoto,[CF_ADD_LIBS(-lmytinfo)])
747 # Looking at HPUX 10.20, the Hcurses library is the oldest (1997), cur_colr
748 # next (1998), and xcurses "newer" (2000). There is no header file for
749 # Hcurses; the subdirectory curses_colr has the headers (curses.h and
750 # term.h) for cur_colr
751 if test "x$cf_cv_screen" = "xcurses_colr"
753 AC_CHECK_LIB(cur_colr,initscr,[
754 CF_ADD_LIBS(-lcur_colr)
755 ac_cv_func_initscr=yes
757 AC_CHECK_LIB(Hcurses,initscr,[
758 # HP's header uses __HP_CURSES, but user claims _HP_CURSES.
759 CF_ADD_LIBS(-lHcurses)
760 CPPFLAGS="$CPPFLAGS -D__HP_CURSES -D_HP_CURSES"
761 ac_cv_func_initscr=yes
766 case `arch 2>/dev/null` in
770 CF_ADD_LIBDIR(/lib64)
781 if test "x$cf_cv_screen" = "xcurses_5lib"
783 if test -d /usr/5lib ; then
784 CF_ADD_LIBDIR(/usr/5lib)
785 CF_ADD_LIBS(-lcurses -ltermcap)
788 ac_cv_func_initscr=yes
792 if test ".$ac_cv_func_initscr" != .yes ; then
795 if test ".${cf_cv_ncurses_version:-no}" != .no
797 cf_check_list="ncurses curses cursesX"
799 cf_check_list="cursesX curses ncurses"
802 # Check for library containing tgoto. Do this before curses library
803 # because it may be needed to link the test-case for initscr.
804 if test "x$cf_term_lib" = x
806 AC_CHECK_FUNC(tgoto,[cf_term_lib=predefined],[
807 for cf_term_lib in $cf_check_list otermcap termcap tinfo termlib unknown
809 AC_CHECK_LIB($cf_term_lib,tgoto,[break])
814 # Check for library containing initscr
815 test "$cf_term_lib" != predefined && test "$cf_term_lib" != unknown && LIBS="-l$cf_term_lib $cf_save_LIBS"
816 if test "x$cf_curs_lib" = x
818 for cf_curs_lib in $cf_check_list xcurses jcurses pdcurses unknown
820 AC_CHECK_LIB($cf_curs_lib,initscr,[break])
823 test $cf_curs_lib = unknown && AC_MSG_ERROR(no curses library found)
825 LIBS="-l$cf_curs_lib $cf_save_LIBS"
826 if test "$cf_term_lib" = unknown ; then
827 AC_MSG_CHECKING(if we can link with $cf_curs_lib library)
828 AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
832 AC_MSG_RESULT($cf_result)
833 test $cf_result = no && AC_MSG_ERROR(Cannot link curses library)
834 elif test "$cf_curs_lib" = "$cf_term_lib" ; then
836 elif test "$cf_term_lib" != predefined ; then
837 AC_MSG_CHECKING(if we need both $cf_curs_lib and $cf_term_lib libraries)
838 AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
839 [initscr(); tgoto((char *)0, 0, 0);],
842 LIBS="-l$cf_curs_lib -l$cf_term_lib $cf_save_LIBS"
843 AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
848 AC_MSG_RESULT($cf_result)
854 dnl ---------------------------------------------------------------------------
855 dnl CF_CURSES_TERM_H version: 11 updated: 2015/04/15 19:08:48
857 dnl SVr4 curses should have term.h as well (where it puts the definitions of
858 dnl the low-level interface). This may not be true in old/broken implementations,
859 dnl as well as in misconfigured systems (e.g., gcc configured for Solaris 2.4
860 dnl running with Solaris 2.5.1).
861 AC_DEFUN([CF_CURSES_TERM_H],
863 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
865 AC_CACHE_CHECK(for term.h, cf_cv_term_header,[
867 # If we found <ncurses/curses.h>, look for <ncurses/term.h>, but always look
868 # for <term.h> if we do not find the variant.
870 cf_header_list="term.h ncurses/term.h ncursesw/term.h"
872 case ${cf_cv_ncurses_header:-curses.h} in
874 cf_header_item=`echo ${cf_cv_ncurses_header:-curses.h} | sed -e 's%\..*%%' -e 's%/.*%/%'`term.h
875 cf_header_list="$cf_header_item $cf_header_list"
879 for cf_header in $cf_header_list
882 #include <${cf_cv_ncurses_header:-curses.h}>
883 #include <${cf_header}>],
885 [cf_cv_term_header=$cf_header
887 [cf_cv_term_header=no])
890 case $cf_cv_term_header in
892 # If curses is ncurses, some packagers still mess it up by trying to make
893 # us use GNU termcap. This handles the most common case.
894 for cf_header in ncurses/term.h ncursesw/term.h
897 #include <${cf_cv_ncurses_header:-curses.h}>
898 #ifdef NCURSES_VERSION
899 #include <${cf_header}>
904 [cf_cv_term_header=$cf_header
906 [cf_cv_term_header=no])
912 case $cf_cv_term_header in
914 AC_DEFINE(HAVE_TERM_H,1,[Define to 1 if we have term.h])
917 AC_DEFINE(HAVE_NCURSES_TERM_H,1,[Define to 1 if we have ncurses/term.h])
920 AC_DEFINE(HAVE_NCURSESW_TERM_H,1,[Define to 1 if we have ncursesw/term.h])
924 dnl ---------------------------------------------------------------------------
925 dnl CF_CURSES_UNCTRL_H version: 4 updated: 2015/04/15 19:08:48
926 dnl ------------------
927 dnl Any X/Open curses implementation must have unctrl.h, but ncurses packages
928 dnl may put it in a subdirectory (along with ncurses' other headers, of
929 dnl course). Packages which put the headers in inconsistent locations are
931 AC_DEFUN([CF_CURSES_UNCTRL_H],
933 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
935 AC_CACHE_CHECK(for unctrl.h, cf_cv_unctrl_header,[
937 # If we found <ncurses/curses.h>, look for <ncurses/unctrl.h>, but always look
938 # for <unctrl.h> if we do not find the variant.
940 cf_header_list="unctrl.h ncurses/unctrl.h ncursesw/unctrl.h"
942 case ${cf_cv_ncurses_header:-curses.h} in
944 cf_header_item=`echo ${cf_cv_ncurses_header:-curses.h} | sed -e 's%\..*%%' -e 's%/.*%/%'`unctrl.h
945 cf_header_list="$cf_header_item $cf_header_list"
949 for cf_header in $cf_header_list
952 #include <${cf_cv_ncurses_header:-curses.h}>
953 #include <${cf_header}>],
955 [cf_cv_unctrl_header=$cf_header
957 [cf_cv_unctrl_header=no])
961 case $cf_cv_unctrl_header in
963 AC_MSG_WARN(unctrl.h header not found)
967 case $cf_cv_unctrl_header in
969 AC_DEFINE(HAVE_UNCTRL_H,1,[Define to 1 if we have unctrl.h])
972 AC_DEFINE(HAVE_NCURSES_UNCTRL_H,1,[Define to 1 if we have ncurses/unctrl.h])
975 AC_DEFINE(HAVE_NCURSESW_UNCTRL_H,1,[Define to 1 if we have ncursesw/unctrl.h])
979 dnl ---------------------------------------------------------------------------
980 dnl CF_CURSES_WACS_MAP version: 6 updated: 2012/10/06 08:57:51
981 dnl ------------------
982 dnl Check for likely values of wacs_map[].
983 AC_DEFUN([CF_CURSES_WACS_MAP],
985 AC_CACHE_CHECK(for wide alternate character set array, cf_cv_curses_wacs_map,[
986 cf_cv_curses_wacs_map=unknown
987 for name in wacs_map _wacs_map __wacs_map _nc_wacs _wacs_char
990 #ifndef _XOPEN_SOURCE_EXTENDED
991 #define _XOPEN_SOURCE_EXTENDED
993 #include <${cf_cv_ncurses_header:-curses.h}>],
994 [void *foo = &($name['k'])],
995 [cf_cv_curses_wacs_map=$name
999 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])
1001 dnl ---------------------------------------------------------------------------
1002 dnl CF_CURSES_WACS_SYMBOLS version: 2 updated: 2012/10/06 08:57:51
1003 dnl ----------------------
1004 dnl Do a check to see if the WACS_xxx constants are defined compatibly with
1005 dnl X/Open Curses. In particular, NetBSD's implementation of the WACS_xxx
1006 dnl constants is broken since those constants do not point to cchar_t's.
1007 AC_DEFUN([CF_CURSES_WACS_SYMBOLS],
1009 AC_REQUIRE([CF_CURSES_WACS_MAP])
1011 AC_CACHE_CHECK(for wide alternate character constants, cf_cv_curses_wacs_symbols,[
1012 cf_cv_curses_wacs_symbols=no
1013 if test "$cf_cv_curses_wacs_map" != unknown
1016 #ifndef _XOPEN_SOURCE_EXTENDED
1017 #define _XOPEN_SOURCE_EXTENDED
1019 #include <${cf_cv_ncurses_header:-curses.h}>],
1020 [cchar_t *foo = WACS_PLUS;
1021 $cf_cv_curses_wacs_map['k'] = *WACS_PLUS],
1022 [cf_cv_curses_wacs_symbols=yes])
1025 #ifndef _XOPEN_SOURCE_EXTENDED
1026 #define _XOPEN_SOURCE_EXTENDED
1028 #include <${cf_cv_ncurses_header:-curses.h}>],
1029 [cchar_t *foo = WACS_PLUS],
1030 [cf_cv_curses_wacs_symbols=yes])
1034 test "$cf_cv_curses_wacs_symbols" != no && AC_DEFINE(CURSES_WACS_SYMBOLS,1,[Define to 1 if (n)curses supports wide-character WACS_ symbols])
1036 dnl ---------------------------------------------------------------------------
1037 dnl CF_DIRNAME version: 4 updated: 2002/12/21 19:25:52
1039 dnl "dirname" is not portable, so we fake it with a shell script.
1040 AC_DEFUN([CF_DIRNAME],[$1=`echo $2 | sed -e 's%/[[^/]]*$%%'`])dnl
1041 dnl ---------------------------------------------------------------------------
1042 dnl CF_DISABLE_ECHO version: 13 updated: 2015/04/18 08:56:57
1044 dnl You can always use "make -n" to see the actual options, but it's hard to
1045 dnl pick out/analyze warning messages when the compile-line is long.
1048 dnl ECHO_LT - symbol to control if libtool is verbose
1049 dnl ECHO_LD - symbol to prefix "cc -o" lines
1050 dnl RULE_CC - symbol to put before implicit "cc -c" lines (e.g., .c.o)
1051 dnl SHOW_CC - symbol to put before explicit "cc -c" lines
1052 dnl ECHO_CC - symbol to put before any "cc" line
1054 AC_DEFUN([CF_DISABLE_ECHO],[
1055 AC_MSG_CHECKING(if you want to see long compiling messages)
1056 CF_ARG_DISABLE(echo,
1057 [ --disable-echo do not display "compiling" commands],
1060 ECHO_LD='@echo linking [$]@;'
1061 RULE_CC='@echo compiling [$]<'
1062 SHOW_CC='@echo compiling [$]@'
1071 AC_MSG_RESULT($enableval)
1078 dnl ---------------------------------------------------------------------------
1079 dnl CF_DISABLE_LEAKS version: 7 updated: 2012/10/02 20:55:03
1080 dnl ----------------
1081 dnl Combine no-leak checks with the libraries or tools that are used for the
1083 AC_DEFUN([CF_DISABLE_LEAKS],[
1085 AC_REQUIRE([CF_WITH_DMALLOC])
1086 AC_REQUIRE([CF_WITH_DBMALLOC])
1087 AC_REQUIRE([CF_WITH_VALGRIND])
1089 AC_MSG_CHECKING(if you want to perform memory-leak testing)
1090 AC_ARG_ENABLE(leaks,
1091 [ --disable-leaks test: free permanent memory, analyze leaks],
1092 [if test "x$enableval" = xno; then with_no_leaks=yes; else with_no_leaks=no; fi],
1093 : ${with_no_leaks:=no})
1094 AC_MSG_RESULT($with_no_leaks)
1096 if test "$with_no_leaks" = yes ; then
1097 AC_DEFINE(NO_LEAKS,1,[Define to 1 if you want to perform memory-leak testing.])
1098 AC_DEFINE(YY_NO_LEAKS,1,[Define to 1 if you want to perform memory-leak testing.])
1101 dnl ---------------------------------------------------------------------------
1102 dnl CF_DISABLE_RPATH_HACK version: 2 updated: 2011/02/13 13:31:33
1103 dnl ---------------------
1104 dnl The rpath-hack makes it simpler to build programs, particularly with the
1105 dnl *BSD ports which may have essential libraries in unusual places. But it
1106 dnl can interfere with building an executable for the base system. Use this
1107 dnl option in that case.
1108 AC_DEFUN([CF_DISABLE_RPATH_HACK],
1110 AC_MSG_CHECKING(if rpath-hack should be disabled)
1111 CF_ARG_DISABLE(rpath-hack,
1112 [ --disable-rpath-hack don't add rpath options for additional libraries],
1113 [cf_disable_rpath_hack=yes],
1114 [cf_disable_rpath_hack=no])
1115 AC_MSG_RESULT($cf_disable_rpath_hack)
1116 if test "$cf_disable_rpath_hack" = no ; then
1120 dnl ---------------------------------------------------------------------------
1121 dnl CF_ENABLE_STRING_HACKS version: 4 updated: 2016/09/10 15:33:21
1122 dnl ----------------------
1123 dnl On a few platforms, the compiler and/or loader nags with untruthful
1124 dnl comments stating that "most" uses of strcat/strcpy/sprintf are incorrect,
1125 dnl and implying that most uses of the recommended alternatives are correct.
1127 dnl Factually speaking, no one has actually counted the number of uses of these
1128 dnl functions versus the total of incorrect uses. Samples of a few thousand
1129 dnl instances are meaningless compared to the hundreds of millions of lines of
1130 dnl existing C code.
1132 dnl strlcat/strlcpy are (as of 2012) non-standard, and are available on some
1133 dnl platforms, in implementations of varying quality. Likewise, snprintf is
1134 dnl standard - but evolved through phases, and older implementations are likely
1135 dnl to yield surprising results, as documented in manpages on various systems.
1136 AC_DEFUN([CF_ENABLE_STRING_HACKS],
1138 AC_MSG_CHECKING(if you want to work around bogus compiler/loader warnings)
1139 AC_ARG_ENABLE(string-hacks,
1140 [ --enable-string-hacks work around bogus compiler/loader warnings],
1141 [with_string_hacks=$enableval],
1142 [with_string_hacks=no])
1143 AC_MSG_RESULT($with_string_hacks)
1145 if test "x$with_string_hacks" = "xyes"; then
1146 AC_DEFINE(USE_STRING_HACKS,1,[Define to 1 to work around bogus compiler/loader warnings])
1147 AC_MSG_WARN(enabling string-hacks to work around bogus compiler/loader warnings)
1148 AC_CHECK_FUNC(strlcat,,[
1149 AC_CHECK_LIB(bsd,strlcat,[
1151 AC_CHECK_HEADERS(bsd/string.h)
1152 AC_DEFINE(HAVE_STRLCAT,1,[Define to 1 if we have strlcat function])
1155 AC_CHECK_FUNCS( strlcpy snprintf )
1158 dnl ---------------------------------------------------------------------------
1159 dnl CF_ENABLE_WARNINGS version: 4 updated: 2009/07/26 17:53:03
1160 dnl ------------------
1161 dnl Configure-option to enable gcc warnings
1162 AC_DEFUN([CF_ENABLE_WARNINGS],[
1163 if ( test "$GCC" = yes || test "$GXX" = yes )
1165 AC_MSG_CHECKING(if you want to turn on gcc warnings)
1166 CF_ARG_ENABLE(warnings,
1167 [ --enable-warnings test: turn on gcc compiler warnings],
1168 [with_warnings=yes],
1170 AC_MSG_RESULT($with_warnings)
1171 if test "$with_warnings" = "yes"
1178 dnl ---------------------------------------------------------------------------
1179 dnl CF_FIND_LIBRARY version: 9 updated: 2008/03/23 14:48:54
1181 dnl Look for a non-standard library, given parameters for AC_TRY_LINK. We
1182 dnl prefer a standard location, and use -L options only if we do not find the
1183 dnl library in the standard library location(s).
1184 dnl $1 = library name
1185 dnl $2 = library class, usually the same as library name
1187 dnl $4 = code fragment to compile/link
1188 dnl $5 = corresponding function-name
1189 dnl $6 = flag, nonnull if failure should not cause an error-exit
1191 dnl Sets the variable "$cf_libdir" as a side-effect, so we can see if we had
1192 dnl to use a -L option.
1193 AC_DEFUN([CF_FIND_LIBRARY],
1195 eval 'cf_cv_have_lib_'$1'=no'
1198 eval 'cf_cv_have_lib_'$1'=yes',[
1199 cf_save_LIBS="$LIBS"
1200 AC_MSG_CHECKING(for $5 in -l$1)
1202 AC_TRY_LINK([$3],[$4],
1204 eval 'cf_cv_have_lib_'$1'=yes'
1207 CF_LIBRARY_PATH(cf_search,$2)
1208 for cf_libdir in $cf_search
1210 AC_MSG_CHECKING(for -l$1 in $cf_libdir)
1211 LIBS="-L$cf_libdir -l$1 $cf_save_LIBS"
1212 AC_TRY_LINK([$3],[$4],
1214 eval 'cf_cv_have_lib_'$1'=yes'
1217 LIBS="$cf_save_LIBS"])
1221 eval 'cf_found_library=[$]cf_cv_have_lib_'$1
1223 if test $cf_found_library = no ; then
1224 AC_MSG_ERROR(Cannot link $1 library)
1228 dnl ---------------------------------------------------------------------------
1229 dnl CF_FIND_LINKAGE version: 20 updated: 2015/04/18 08:56:57
1231 dnl Find a library (specifically the linkage used in the code fragment),
1232 dnl searching for it if it is not already in the library path.
1233 dnl See also CF_ADD_SEARCHPATH.
1235 dnl Parameters (4-on are optional):
1236 dnl $1 = headers for library entrypoint
1237 dnl $2 = code fragment for library entrypoint
1238 dnl $3 = the library name without the "-l" option or ".so" suffix.
1239 dnl $4 = action to perform if successful (default: update CPPFLAGS, etc)
1240 dnl $5 = action to perform if not successful
1241 dnl $6 = module name, if not the same as the library name
1242 dnl $7 = extra libraries
1244 dnl Sets these variables:
1245 dnl $cf_cv_find_linkage_$3 - yes/no according to whether linkage is found
1246 dnl $cf_cv_header_path_$3 - include-directory if needed
1247 dnl $cf_cv_library_path_$3 - library-directory if needed
1248 dnl $cf_cv_library_file_$3 - library-file if needed, e.g., -l$3
1249 AC_DEFUN([CF_FIND_LINKAGE],[
1251 # If the linkage is not already in the $CPPFLAGS/$LDFLAGS configuration, these
1252 # will be set on completion of the AC_TRY_LINK below.
1253 cf_cv_header_path_$3=
1254 cf_cv_library_path_$3=
1256 CF_MSG_LOG([Starting [FIND_LINKAGE]($3,$6)])
1258 cf_save_LIBS="$LIBS"
1260 AC_TRY_LINK([$1],[$2],[
1261 cf_cv_find_linkage_$3=yes
1262 cf_cv_header_path_$3=/usr/include
1263 cf_cv_library_path_$3=/usr/lib
1266 LIBS="-l$3 $7 $cf_save_LIBS"
1268 AC_TRY_LINK([$1],[$2],[
1269 cf_cv_find_linkage_$3=yes
1270 cf_cv_header_path_$3=/usr/include
1271 cf_cv_library_path_$3=/usr/lib
1272 cf_cv_library_file_$3="-l$3"
1274 cf_cv_find_linkage_$3=no
1275 LIBS="$cf_save_LIBS"
1277 CF_VERBOSE(find linkage for $3 library)
1278 CF_MSG_LOG([Searching for headers in [FIND_LINKAGE]($3,$6)])
1280 cf_save_CPPFLAGS="$CPPFLAGS"
1281 cf_test_CPPFLAGS="$CPPFLAGS"
1283 CF_HEADER_PATH(cf_search,ifelse([$6],,[$3],[$6]))
1284 for cf_cv_header_path_$3 in $cf_search
1286 if test -d $cf_cv_header_path_$3 ; then
1287 CF_VERBOSE(... testing $cf_cv_header_path_$3)
1288 CPPFLAGS="$cf_save_CPPFLAGS -I$cf_cv_header_path_$3"
1289 AC_TRY_COMPILE([$1],[$2],[
1290 CF_VERBOSE(... found $3 headers in $cf_cv_header_path_$3)
1291 cf_cv_find_linkage_$3=maybe
1292 cf_test_CPPFLAGS="$CPPFLAGS"
1294 CPPFLAGS="$cf_save_CPPFLAGS"
1299 if test "$cf_cv_find_linkage_$3" = maybe ; then
1301 CF_MSG_LOG([Searching for $3 library in [FIND_LINKAGE]($3,$6)])
1303 cf_save_LIBS="$LIBS"
1304 cf_save_LDFLAGS="$LDFLAGS"
1307 CPPFLAGS="$cf_test_CPPFLAGS"
1308 LIBS="-l$3 $7 $cf_save_LIBS"
1309 AC_TRY_LINK([$1],[$2],[
1310 CF_VERBOSE(... found $3 library in system)
1311 cf_cv_find_linkage_$3=yes])
1312 CPPFLAGS="$cf_save_CPPFLAGS"
1313 LIBS="$cf_save_LIBS"
1316 if test "$cf_cv_find_linkage_$3" != yes ; then
1317 CF_LIBRARY_PATH(cf_search,$3)
1318 for cf_cv_library_path_$3 in $cf_search
1320 if test -d $cf_cv_library_path_$3 ; then
1321 CF_VERBOSE(... testing $cf_cv_library_path_$3)
1322 CPPFLAGS="$cf_test_CPPFLAGS"
1323 LIBS="-l$3 $7 $cf_save_LIBS"
1324 LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_$3"
1325 AC_TRY_LINK([$1],[$2],[
1326 CF_VERBOSE(... found $3 library in $cf_cv_library_path_$3)
1327 cf_cv_find_linkage_$3=yes
1328 cf_cv_library_file_$3="-l$3"
1330 CPPFLAGS="$cf_save_CPPFLAGS"
1331 LIBS="$cf_save_LIBS"
1332 LDFLAGS="$cf_save_LDFLAGS"
1336 CPPFLAGS="$cf_save_CPPFLAGS"
1337 LDFLAGS="$cf_save_LDFLAGS"
1341 cf_cv_find_linkage_$3=no
1346 LIBS="$cf_save_LIBS"
1348 if test "$cf_cv_find_linkage_$3" = yes ; then
1350 CF_ADD_INCDIR($cf_cv_header_path_$3)
1351 CF_ADD_LIBDIR($cf_cv_library_path_$3)
1355 ifelse([$5],,AC_MSG_WARN(Cannot find $3 library),[$5])
1358 dnl ---------------------------------------------------------------------------
1359 dnl CF_FUNC_CURSES_VERSION version: 6 updated: 2012/10/06 16:39:58
1360 dnl ----------------------
1361 dnl Solaris has a data item 'curses_version', which confuses AC_CHECK_FUNCS.
1362 dnl It's a character string "SVR4", not documented.
1363 AC_DEFUN([CF_FUNC_CURSES_VERSION],
1365 AC_CACHE_CHECK(for function curses_version, cf_cv_func_curses_version,[
1367 #include <${cf_cv_ncurses_header:-curses.h}>
1371 sprintf(temp, "%s\n", curses_version());
1372 ${cf_cv_main_return:-return}(0);
1374 ,[cf_cv_func_curses_version=yes]
1375 ,[cf_cv_func_curses_version=no]
1376 ,[cf_cv_func_curses_version=unknown])
1378 test "$cf_cv_func_curses_version" = yes && AC_DEFINE(HAVE_CURSES_VERSION,1,[Define to 1 if we have curses_version function])
1380 dnl ---------------------------------------------------------------------------
1381 dnl CF_FUNC_OPENPTY version: 5 updated: 2015/09/12 14:46:50
1383 dnl Check for openpty() function, along with <pty.h> header. It may need the
1384 dnl "util" library as well.
1385 AC_DEFUN([CF_FUNC_OPENPTY],
1387 AC_CHECK_LIB(util,openpty,cf_cv_lib_util=yes,cf_cv_lib_util=no)
1388 AC_CACHE_CHECK(for openpty header,cf_cv_func_openpty,[
1389 cf_save_LIBS="$LIBS"
1390 test $cf_cv_lib_util = yes && { CF_ADD_LIB(util) }
1391 for cf_header in pty.h libutil.h util.h
1394 #include <$cf_header>
1396 int x = openpty((int *)0, (int *)0, (char *)0,
1397 (struct termios *)0, (struct winsize *)0);
1399 cf_cv_func_openpty=$cf_header
1402 cf_cv_func_openpty=no
1405 LIBS="$cf_save_LIBS"
1408 dnl ---------------------------------------------------------------------------
1409 dnl CF_GCC_ATTRIBUTES version: 17 updated: 2015/04/12 15:39:00
1410 dnl -----------------
1411 dnl Test for availability of useful gcc __attribute__ directives to quiet
1412 dnl compiler warnings. Though useful, not all are supported -- and contrary
1413 dnl to documentation, unrecognized directives cause older compilers to barf.
1414 AC_DEFUN([CF_GCC_ATTRIBUTES],
1416 if test "$GCC" = yes
1418 cat > conftest.i <<EOF
1420 #define GCC_PRINTF 0
1425 #ifndef GCC_NORETURN
1426 #define GCC_NORETURN /* nothing */
1429 #define GCC_UNUSED /* nothing */
1432 if test "$GCC" = yes
1434 AC_CHECKING([for $CC __attribute__ directives])
1435 cat > conftest.$ac_ext <<EOF
1436 #line __oline__ "${as_me:-configure}"
1437 #include "confdefs.h"
1438 #include "conftest.h"
1439 #include "conftest.i"
1441 #define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
1443 #define GCC_PRINTFLIKE(fmt,var) /*nothing*/
1446 #define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
1448 #define GCC_SCANFLIKE(fmt,var) /*nothing*/
1450 extern void wow(char *,...) GCC_SCANFLIKE(1,2);
1451 extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
1452 extern void foo(void) GCC_NORETURN;
1453 int main(int argc GCC_UNUSED, char *argv[[]] GCC_UNUSED) { return 0; }
1455 cf_printf_attribute=no
1456 cf_scanf_attribute=no
1457 for cf_attribute in scanf printf unused noreturn
1459 CF_UPPER(cf_ATTRIBUTE,$cf_attribute)
1460 cf_directive="__attribute__(($cf_attribute))"
1461 echo "checking for $CC $cf_directive" 1>&AC_FD_CC
1463 case $cf_attribute in
1465 cf_printf_attribute=yes
1466 cat >conftest.h <<EOF
1467 #define GCC_$cf_ATTRIBUTE 1
1471 cf_scanf_attribute=yes
1472 cat >conftest.h <<EOF
1473 #define GCC_$cf_ATTRIBUTE 1
1477 cat >conftest.h <<EOF
1478 #define GCC_$cf_ATTRIBUTE $cf_directive
1483 if AC_TRY_EVAL(ac_compile); then
1484 test -n "$verbose" && AC_MSG_RESULT(... $cf_attribute)
1485 cat conftest.h >>confdefs.h
1486 case $cf_attribute in
1488 AC_DEFINE_UNQUOTED(GCC_NORETURN,$cf_directive,[Define to noreturn-attribute for gcc])
1491 cf_value='/* nothing */'
1492 if test "$cf_printf_attribute" != no ; then
1493 cf_value='__attribute__((format(printf,fmt,var)))'
1494 AC_DEFINE(GCC_PRINTF,1,[Define to 1 if the compiler supports gcc-like printf attribute.])
1496 AC_DEFINE_UNQUOTED(GCC_PRINTFLIKE(fmt,var),$cf_value,[Define to printf-attribute for gcc])
1499 cf_value='/* nothing */'
1500 if test "$cf_scanf_attribute" != no ; then
1501 cf_value='__attribute__((format(scanf,fmt,var)))'
1502 AC_DEFINE(GCC_SCANF,1,[Define to 1 if the compiler supports gcc-like scanf attribute.])
1504 AC_DEFINE_UNQUOTED(GCC_SCANFLIKE(fmt,var),$cf_value,[Define to sscanf-attribute for gcc])
1507 AC_DEFINE_UNQUOTED(GCC_UNUSED,$cf_directive,[Define to unused-attribute for gcc])
1513 fgrep define conftest.i >>confdefs.h
1518 dnl ---------------------------------------------------------------------------
1519 dnl CF_GCC_VERSION version: 7 updated: 2012/10/18 06:46:33
1521 dnl Find version of gcc
1522 AC_DEFUN([CF_GCC_VERSION],[
1523 AC_REQUIRE([AC_PROG_CC])
1525 if test "$GCC" = yes ; then
1526 AC_MSG_CHECKING(version of $CC)
1527 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.]].*//'`"
1528 test -z "$GCC_VERSION" && GCC_VERSION=unknown
1529 AC_MSG_RESULT($GCC_VERSION)
1532 dnl ---------------------------------------------------------------------------
1533 dnl CF_GCC_WARNINGS version: 32 updated: 2015/04/12 15:39:00
1535 dnl Check if the compiler supports useful warning options. There's a few that
1536 dnl we don't use, simply because they're too noisy:
1538 dnl -Wconversion (useful in older versions of gcc, but not in gcc 2.7.x)
1539 dnl -Wredundant-decls (system headers make this too noisy)
1540 dnl -Wtraditional (combines too many unrelated messages, only a few useful)
1541 dnl -Wwrite-strings (too noisy, but should review occasionally). This
1542 dnl is enabled for ncurses using "--enable-const".
1546 dnl $1 is an optional list of gcc warning flags that a particular
1547 dnl application might want to use, e.g., "no-unused" for
1550 dnl If $with_ext_const is "yes", add a check for -Wwrite-strings
1552 AC_DEFUN([CF_GCC_WARNINGS],
1554 AC_REQUIRE([CF_GCC_VERSION])
1555 CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
1556 CF_CLANG_COMPILER(GCC,CLANG_COMPILER,CFLAGS)
1558 cat > conftest.$ac_ext <<EOF
1559 #line __oline__ "${as_me:-configure}"
1560 int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
1563 if test "$INTEL_COMPILER" = yes
1565 # The "-wdXXX" options suppress warnings:
1566 # remark #1419: external declaration in primary source file
1567 # remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
1568 # remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
1569 # remark #193: zero used for undefined preprocessing identifier
1570 # remark #593: variable "curs_sb_left_arrow" was set but never used
1571 # remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
1572 # remark #869: parameter "tw" was never referenced
1573 # remark #981: operands are evaluated in unspecified order
1574 # warning #279: controlling expression is constant
1576 AC_CHECKING([for $CC warning options])
1577 cf_save_CFLAGS="$CFLAGS"
1578 EXTRA_CFLAGS="-Wall"
1590 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
1591 if AC_TRY_EVAL(ac_compile); then
1592 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1593 EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
1596 CFLAGS="$cf_save_CFLAGS"
1598 elif test "$GCC" = yes
1600 AC_CHECKING([for $CC warning options])
1601 cf_save_CFLAGS="$CFLAGS"
1604 test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
1605 cf_gcc_warnings="Wignored-qualifiers Wlogical-op Wvarargs"
1606 test "x$CLANG_COMPILER" = xyes && cf_gcc_warnings=
1607 for cf_opt in W Wall \
1608 Wbad-function-cast \
1611 Wdeclaration-after-statement \
1614 Wmissing-declarations \
1615 Wmissing-prototypes \
1619 Wstrict-prototypes \
1620 Wundef $cf_gcc_warnings $cf_warn_CONST $1
1622 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
1623 if AC_TRY_EVAL(ac_compile); then
1624 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1627 CPPFLAGS="$CPPFLAGS -DXTSTRINGDEFINES"
1630 case $GCC_VERSION in
1632 CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
1637 case $GCC_VERSION in
1639 CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
1644 EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
1647 CFLAGS="$cf_save_CFLAGS"
1651 AC_SUBST(EXTRA_CFLAGS)
1653 dnl ---------------------------------------------------------------------------
1654 dnl CF_GETOPT_HEADER version: 6 updated: 2014/07/22 14:45:54
1655 dnl ----------------
1656 dnl Check for getopt's variables which are commonly defined in stdlib.h,
1657 dnl unistd.h or (nonstandard) in getopt.h
1658 AC_DEFUN([CF_GETOPT_HEADER],
1660 AC_HAVE_HEADERS(unistd.h getopt.h)
1661 AC_CACHE_CHECK(for header declaring getopt variables,cf_cv_getopt_header,[
1662 cf_cv_getopt_header=none
1663 for cf_header in stdio.h stdlib.h unistd.h getopt.h
1666 #include <$cf_header>],
1667 [int x = optind; char *y = optarg],
1668 [cf_cv_getopt_header=$cf_header
1672 if test $cf_cv_getopt_header != none ; then
1673 AC_DEFINE(HAVE_GETOPT_HEADER,1,[Define to 1 if getopt variables are declared in header])
1675 if test $cf_cv_getopt_header = getopt.h ; then
1676 AC_DEFINE(NEED_GETOPT_H,1,[Define to 1 if we must include getopt.h])
1679 dnl ---------------------------------------------------------------------------
1680 dnl CF_GNU_SOURCE version: 7 updated: 2016/08/05 05:15:37
1682 dnl Check if we must define _GNU_SOURCE to get a reasonable value for
1683 dnl _XOPEN_SOURCE, upon which many POSIX definitions depend. This is a defect
1684 dnl (or misfeature) of glibc2, which breaks portability of many applications,
1685 dnl since it is interwoven with GNU extensions.
1687 dnl Well, yes we could work around it...
1688 AC_DEFUN([CF_GNU_SOURCE],
1690 AC_CACHE_CHECK(if we must define _GNU_SOURCE,cf_cv_gnu_source,[
1691 AC_TRY_COMPILE([#include <sys/types.h>],[
1692 #ifndef _XOPEN_SOURCE
1695 [cf_cv_gnu_source=no],
1696 [cf_save="$CPPFLAGS"
1697 CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
1698 AC_TRY_COMPILE([#include <sys/types.h>],[
1699 #ifdef _XOPEN_SOURCE
1702 [cf_cv_gnu_source=no],
1703 [cf_cv_gnu_source=yes])
1708 if test "$cf_cv_gnu_source" = yes
1710 AC_CACHE_CHECK(if we should also define _DEFAULT_SOURCE,cf_cv_default_source,[
1711 CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
1712 AC_TRY_COMPILE([#include <sys/types.h>],[
1713 #ifdef _DEFAULT_SOURCE
1716 [cf_cv_default_source=no],
1717 [cf_cv_default_source=yes])
1719 test "$cf_cv_default_source" = yes && CPPFLAGS="$CPPFLAGS -D_DEFAULT_SOURCE"
1722 dnl ---------------------------------------------------------------------------
1723 dnl CF_HEADER_PATH version: 13 updated: 2015/04/15 19:08:48
1725 dnl Construct a search-list of directories for a nonstandard header-file
1728 dnl $1 = the variable to return as result
1729 dnl $2 = the package name
1730 AC_DEFUN([CF_HEADER_PATH],
1734 # collect the current set of include-directories from compiler flags
1735 cf_header_path_list=""
1736 if test -n "${CFLAGS}${CPPFLAGS}" ; then
1737 for cf_header_path in $CPPFLAGS $CFLAGS
1739 case $cf_header_path in
1741 cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'`
1742 CF_ADD_SUBDIR_PATH($1,$2,include,$cf_header_path,NONE)
1743 cf_header_path_list="$cf_header_path_list [$]$1"
1749 # add the variations for the package we are looking for
1750 CF_SUBDIR_PATH($1,$2,include)
1752 test "$includedir" != NONE && \
1753 test "$includedir" != "/usr/include" && \
1754 test -d "$includedir" && {
1755 test -d $includedir && $1="[$]$1 $includedir"
1756 test -d $includedir/$2 && $1="[$]$1 $includedir/$2"
1759 test "$oldincludedir" != NONE && \
1760 test "$oldincludedir" != "/usr/include" && \
1761 test -d "$oldincludedir" && {
1762 test -d $oldincludedir && $1="[$]$1 $oldincludedir"
1763 test -d $oldincludedir/$2 && $1="[$]$1 $oldincludedir/$2"
1766 $1="[$]$1 $cf_header_path_list"
1768 dnl ---------------------------------------------------------------------------
1769 dnl CF_HELP_MESSAGE version: 3 updated: 1998/01/14 10:56:23
1771 dnl Insert text into the help-message, for readability, from AC_ARG_WITH.
1772 AC_DEFUN([CF_HELP_MESSAGE],
1773 [AC_DIVERT_HELP([$1])dnl
1775 dnl ---------------------------------------------------------------------------
1776 dnl CF_INHERIT_SCRIPT version: 2 updated: 2003/03/01 23:50:42
1777 dnl -----------------
1778 dnl If we do not have a given script, look for it in the parent directory.
1779 AC_DEFUN([CF_INHERIT_SCRIPT],
1781 test -f $1 || ( test -f ../$1 && cp ../$1 ./ )
1783 dnl ---------------------------------------------------------------------------
1784 dnl CF_INTEL_COMPILER version: 7 updated: 2015/04/12 15:39:00
1785 dnl -----------------
1786 dnl Check if the given compiler is really the Intel compiler for Linux. It
1787 dnl tries to imitate gcc, but does not return an error when it finds a mismatch
1788 dnl between prototypes, e.g., as exercised by CF_MISSING_CHECK.
1790 dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
1791 dnl ensure that it is not mistaken for gcc/g++. It is normally invoked from
1792 dnl the wrappers for gcc and g++ warnings.
1794 dnl $1 = GCC (default) or GXX
1795 dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS
1796 dnl $3 = CFLAGS (default) or CXXFLAGS
1797 AC_DEFUN([CF_INTEL_COMPILER],[
1798 AC_REQUIRE([AC_CANONICAL_HOST])
1799 ifelse([$2],,INTEL_COMPILER,[$2])=no
1801 if test "$ifelse([$1],,[$1],GCC)" = yes ; then
1804 AC_MSG_CHECKING(if this is really Intel ifelse([$1],GXX,C++,C) compiler)
1805 cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
1806 ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -no-gcc"
1808 #ifdef __INTEL_COMPILER
1812 ],[ifelse([$2],,INTEL_COMPILER,[$2])=yes
1813 cf_save_CFLAGS="$cf_save_CFLAGS -we147"
1815 ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
1816 AC_MSG_RESULT($ifelse([$2],,INTEL_COMPILER,[$2]))
1821 dnl ---------------------------------------------------------------------------
1822 dnl CF_LD_RPATH_OPT version: 7 updated: 2016/02/20 18:01:19
1824 dnl For the given system and compiler, find the compiler flags to pass to the
1825 dnl loader to use the "rpath" feature.
1826 AC_DEFUN([CF_LD_RPATH_OPT],
1828 AC_REQUIRE([CF_CHECK_CACHE])
1831 AC_MSG_CHECKING(for an rpath option)
1832 case $cf_cv_system_name in
1834 if test "$GCC" = yes; then
1835 LD_RPATH_OPT="-Wl,-rpath,"
1837 LD_RPATH_OPT="-rpath "
1840 (linux*|gnu*|k*bsd*-gnu|freebsd*)
1841 LD_RPATH_OPT="-Wl,-rpath,"
1843 (openbsd[[2-9]].*|mirbsd*)
1844 LD_RPATH_OPT="-Wl,-rpath,"
1847 LD_RPATH_OPT="-rpath "
1850 LD_RPATH_OPT="-Wl,-rpath,"
1853 LD_RPATH_OPT="-rpath "
1861 AC_MSG_RESULT($LD_RPATH_OPT)
1863 case "x$LD_RPATH_OPT" in
1865 AC_MSG_CHECKING(if we need a space after rpath option)
1866 cf_save_LIBS="$LIBS"
1867 CF_ADD_LIBS(${LD_RPATH_OPT}$libdir)
1868 AC_TRY_LINK(, , cf_rpath_space=no, cf_rpath_space=yes)
1869 LIBS="$cf_save_LIBS"
1870 AC_MSG_RESULT($cf_rpath_space)
1871 test "$cf_rpath_space" = yes && LD_RPATH_OPT="$LD_RPATH_OPT "
1875 dnl ---------------------------------------------------------------------------
1876 dnl CF_LIBRARY_PATH version: 10 updated: 2015/04/15 19:08:48
1878 dnl Construct a search-list of directories for a nonstandard library-file
1881 dnl $1 = the variable to return as result
1882 dnl $2 = the package name
1883 AC_DEFUN([CF_LIBRARY_PATH],
1886 cf_library_path_list=""
1887 if test -n "${LDFLAGS}${LIBS}" ; then
1888 for cf_library_path in $LDFLAGS $LIBS
1890 case $cf_library_path in
1892 cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'`
1893 CF_ADD_SUBDIR_PATH($1,$2,lib,$cf_library_path,NONE)
1894 cf_library_path_list="$cf_library_path_list [$]$1"
1900 CF_SUBDIR_PATH($1,$2,lib)
1902 $1="$cf_library_path_list [$]$1"
1904 dnl ---------------------------------------------------------------------------
1905 dnl CF_MAKE_TAGS version: 6 updated: 2010/10/23 15:52:32
1907 dnl Generate tags/TAGS targets for makefiles. Do not generate TAGS if we have
1908 dnl a monocase filesystem.
1909 AC_DEFUN([CF_MAKE_TAGS],[
1910 AC_REQUIRE([CF_MIXEDCASE_FILENAMES])
1912 AC_CHECK_PROGS(CTAGS, exctags ctags)
1913 AC_CHECK_PROGS(ETAGS, exetags etags)
1915 AC_CHECK_PROG(MAKE_LOWER_TAGS, ${CTAGS:-ctags}, yes, no)
1917 if test "$cf_cv_mixedcase" = yes ; then
1918 AC_CHECK_PROG(MAKE_UPPER_TAGS, ${ETAGS:-etags}, yes, no)
1923 if test "$MAKE_UPPER_TAGS" = yes ; then
1929 if test "$MAKE_LOWER_TAGS" = yes ; then
1938 AC_SUBST(MAKE_UPPER_TAGS)
1939 AC_SUBST(MAKE_LOWER_TAGS)
1941 dnl ---------------------------------------------------------------------------
1942 dnl CF_MATH_LIB version: 8 updated: 2010/05/29 16:31:02
1944 dnl Checks for libraries. At least one UNIX system, Apple Macintosh
1945 dnl Rhapsody 5.5, does not have -lm. We cannot use the simpler
1946 dnl AC_CHECK_LIB(m,sin), because that fails for C++.
1947 AC_DEFUN([CF_MATH_LIB],
1949 AC_CACHE_CHECK(if -lm needed for math functions,
1955 [double x = rand(); printf("result = %g\n", ]ifelse([$2],,sin(x),$2)[)],
1956 [cf_cv_need_libm=no],
1957 [cf_cv_need_libm=yes])])
1958 if test "$cf_cv_need_libm" = yes
1965 dnl ---------------------------------------------------------------------------
1966 dnl CF_MIXEDCASE_FILENAMES version: 7 updated: 2015/04/12 15:39:00
1967 dnl ----------------------
1968 dnl Check if the file-system supports mixed-case filenames. If we're able to
1969 dnl create a lowercase name and see it as uppercase, it doesn't support that.
1970 AC_DEFUN([CF_MIXEDCASE_FILENAMES],
1972 AC_CACHE_CHECK(if filesystem supports mixed-case filenames,cf_cv_mixedcase,[
1973 if test "$cross_compiling" = yes ; then
1974 case $target_alias in
1975 (*-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-msys*|*-mingw*|*-uwin*)
1983 rm -f conftest CONFTEST
1985 if test -f CONFTEST ; then
1990 rm -f conftest CONFTEST
1993 test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES,1,[Define to 1 if filesystem supports mixed-case filenames.])
1995 dnl ---------------------------------------------------------------------------
1996 dnl CF_MSG_LOG version: 5 updated: 2010/10/23 15:52:32
1998 dnl Write a debug message to config.log, along with the line number in the
1999 dnl configure script.
2000 AC_DEFUN([CF_MSG_LOG],[
2001 echo "${as_me:-configure}:__oline__: testing $* ..." 1>&AC_FD_CC
2003 dnl ---------------------------------------------------------------------------
2004 dnl CF_NCURSES_CC_CHECK version: 4 updated: 2007/07/29 10:39:05
2005 dnl -------------------
2006 dnl Check if we can compile with ncurses' header file
2007 dnl $1 is the cache variable to set
2008 dnl $2 is the header-file to include
2009 dnl $3 is the root name (ncurses or ncursesw)
2010 AC_DEFUN([CF_NCURSES_CC_CHECK],[
2012 ]ifelse($3,ncursesw,[
2013 #define _XOPEN_SOURCE_EXTENDED
2014 #undef HAVE_LIBUTF8_H /* in case we used CF_UTF8_LIB */
2015 #define HAVE_LIBUTF8_H /* to force ncurses' header file to use cchar_t */
2018 #ifdef NCURSES_VERSION
2019 ]ifelse($3,ncursesw,[
2024 printf("%s\n", NCURSES_VERSION);
2036 dnl ---------------------------------------------------------------------------
2037 dnl CF_NCURSES_CONFIG version: 17 updated: 2015/07/07 04:22:07
2038 dnl -----------------
2039 dnl Tie together the configure-script macros for ncurses, preferring these in
2041 dnl a) ".pc" files for pkg-config, using $NCURSES_CONFIG_PKG
2042 dnl b) the "-config" script from ncurses, using $NCURSES_CONFIG
2043 dnl c) just plain libraries
2045 dnl $1 is the root library name (default: "ncurses")
2046 AC_DEFUN([CF_NCURSES_CONFIG],[
2047 AC_REQUIRE([CF_PKG_CONFIG])
2048 cf_ncuconfig_root=ifelse($1,,ncurses,$1)
2049 cf_have_ncuconfig=no
2051 if test "x${PKG_CONFIG:=none}" != xnone; then
2052 AC_MSG_CHECKING(pkg-config for $cf_ncuconfig_root)
2053 if "$PKG_CONFIG" --exists $cf_ncuconfig_root ; then
2056 AC_MSG_CHECKING(if the $cf_ncuconfig_root package files work)
2057 cf_have_ncuconfig=unknown
2059 cf_save_CPPFLAGS="$CPPFLAGS"
2060 cf_save_LIBS="$LIBS"
2062 CPPFLAGS="$CPPFLAGS `$PKG_CONFIG --cflags $cf_ncuconfig_root`"
2063 CF_ADD_LIBS(`$PKG_CONFIG --libs $cf_ncuconfig_root`)
2065 AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
2066 [initscr(); mousemask(0,0); tgoto((char *)0, 0, 0);],
2067 [AC_TRY_RUN([#include <${cf_cv_ncurses_header:-curses.h}>
2069 { char *xx = curses_version(); return (xx == 0); }],
2070 [cf_have_ncuconfig=yes],
2071 [cf_have_ncuconfig=no],
2072 [cf_have_ncuconfig=maybe])],
2073 [cf_have_ncuconfig=no])
2074 AC_MSG_RESULT($cf_have_ncuconfig)
2075 test "$cf_have_ncuconfig" = maybe && cf_have_ncuconfig=yes
2076 if test "$cf_have_ncuconfig" != "yes"
2078 CPPFLAGS="$cf_save_CPPFLAGS"
2079 LIBS="$cf_save_LIBS"
2080 NCURSES_CONFIG_PKG=none
2082 AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
2083 NCURSES_CONFIG_PKG=$cf_ncuconfig_root
2088 NCURSES_CONFIG_PKG=none
2091 NCURSES_CONFIG_PKG=none
2094 if test "x$cf_have_ncuconfig" = "xno"; then
2095 echo "Looking for ${cf_ncuconfig_root}-config"
2097 CF_ACVERSION_CHECK(2.52,
2098 [AC_CHECK_TOOLS(NCURSES_CONFIG, ${cf_ncuconfig_root}-config ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config, none)],
2099 [AC_PATH_PROGS(NCURSES_CONFIG, ${cf_ncuconfig_root}-config ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config, none)])
2101 if test "$NCURSES_CONFIG" != none ; then
2103 CPPFLAGS="$CPPFLAGS `$NCURSES_CONFIG --cflags`"
2104 CF_ADD_LIBS(`$NCURSES_CONFIG --libs`)
2106 # even with config script, some packages use no-override for curses.h
2107 CF_CURSES_HEADER(ifelse($1,,ncurses,$1))
2109 dnl like CF_NCURSES_CPPFLAGS
2110 AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
2112 dnl like CF_NCURSES_LIBS
2113 CF_UPPER(cf_nculib_ROOT,HAVE_LIB$cf_ncuconfig_root)
2114 AC_DEFINE_UNQUOTED($cf_nculib_ROOT)
2116 dnl like CF_NCURSES_VERSION
2117 cf_cv_ncurses_version=`$NCURSES_CONFIG --version`
2121 CF_NCURSES_CPPFLAGS(ifelse($1,,ncurses,$1))
2122 CF_NCURSES_LIBS(ifelse($1,,ncurses,$1))
2129 dnl ---------------------------------------------------------------------------
2130 dnl CF_NCURSES_CPPFLAGS version: 21 updated: 2012/10/06 08:57:51
2131 dnl -------------------
2132 dnl Look for the SVr4 curses clone 'ncurses' in the standard places, adjusting
2133 dnl the CPPFLAGS variable so we can include its header.
2135 dnl The header files may be installed as either curses.h, or ncurses.h (would
2136 dnl be obsolete, except that some packagers prefer this name to distinguish it
2137 dnl from a "native" curses implementation). If not installed for overwrite,
2138 dnl the curses.h file would be in an ncurses subdirectory (e.g.,
2139 dnl /usr/include/ncurses), but someone may have installed overwriting the
2140 dnl vendor's curses. Only very old versions (pre-1.9.2d, the first autoconf'd
2141 dnl version) of ncurses don't define either __NCURSES_H or NCURSES_VERSION in
2144 dnl If the installer has set $CFLAGS or $CPPFLAGS so that the ncurses header
2145 dnl is already in the include-path, don't even bother with this, since we cannot
2146 dnl easily determine which file it is. In this case, it has to be <curses.h>.
2148 dnl The optional parameter gives the root name of the library, in case it is
2149 dnl not installed as the default curses library. That is how the
2150 dnl wide-character version of ncurses is installed.
2151 AC_DEFUN([CF_NCURSES_CPPFLAGS],
2152 [AC_REQUIRE([CF_WITH_CURSES_DIR])
2154 AC_PROVIDE([CF_CURSES_CPPFLAGS])dnl
2155 cf_ncuhdr_root=ifelse($1,,ncurses,$1)
2157 test -n "$cf_cv_curses_dir" && \
2158 test "$cf_cv_curses_dir" != "no" && { \
2159 CF_ADD_INCDIR($cf_cv_curses_dir/include/$cf_ncuhdr_root)
2162 AC_CACHE_CHECK(for $cf_ncuhdr_root header in include-path, cf_cv_ncurses_h,[
2163 cf_header_list="$cf_ncuhdr_root/curses.h $cf_ncuhdr_root/ncurses.h"
2164 ( test "$cf_ncuhdr_root" = ncurses || test "$cf_ncuhdr_root" = ncursesw ) && cf_header_list="$cf_header_list curses.h ncurses.h"
2165 for cf_header in $cf_header_list
2167 CF_NCURSES_CC_CHECK(cf_cv_ncurses_h,$cf_header,$1)
2168 test "$cf_cv_ncurses_h" != no && break
2175 # some applications need this, but should check for NCURSES_VERSION
2176 AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
2180 dnl ---------------------------------------------------------------------------
2181 dnl CF_NCURSES_EXT_FUNCS version: 4 updated: 2012/10/06 16:39:58
2182 dnl --------------------
2183 dnl Since 2007/11/17, ncurses has defined NCURSES_EXT_FUNCS; earlier versions
2184 dnl may provide these functions. Define the symbol if it is not defined, and
2186 AC_DEFUN([CF_NCURSES_EXT_FUNCS],
2188 AC_CACHE_CHECK(for ncurses extended functions,cf_cv_ncurses_ext_funcs,[
2190 #include <${cf_cv_ncurses_header:-curses.h}>],
2192 int x = NCURSES_EXT_FUNCS
2193 ],[cf_cv_ncurses_ext_funcs=defined],[
2195 #include <${cf_cv_ncurses_header:-curses.h}>],
2197 (void) assume_default_colors (0, 0);
2198 (void) curses_version ();
2199 (void) define_key (0, 0);
2200 (void) is_term_resized (0, 0);
2201 (void) key_defined (0);
2202 (void) keybound (0, 0);
2203 (void) keyok (0, 0);
2204 (void) resize_term (0, 0);
2205 (void) resizeterm (0, 0);
2206 (void) use_default_colors ();
2207 (void) use_extended_names (0);
2208 (void) wresize (0, 0, 0);],
2209 [cf_cv_ncurses_ext_funcs=yes],
2210 [cf_cv_ncurses_ext_funcs=no])
2213 test "$cf_cv_ncurses_ext_funcs" = yes && AC_DEFINE(NCURSES_EXT_FUNCS,1,[Define to 1 if we have ncurses extensions])
2215 dnl ---------------------------------------------------------------------------
2216 dnl CF_NCURSES_HEADER version: 4 updated: 2015/04/15 19:08:48
2217 dnl -----------------
2218 dnl Find a "curses" header file, e.g,. "curses.h", or one of the more common
2219 dnl variations of ncurses' installs.
2221 dnl See also CF_CURSES_HEADER, which sets the same cache variable.
2222 AC_DEFUN([CF_NCURSES_HEADER],[
2224 if test "$cf_cv_ncurses_h" != no ; then
2225 cf_cv_ncurses_header=$cf_cv_ncurses_h
2228 AC_CACHE_CHECK(for $cf_ncuhdr_root include-path, cf_cv_ncurses_h2,[
2229 test -n "$verbose" && echo
2230 CF_HEADER_PATH(cf_search,$cf_ncuhdr_root)
2231 test -n "$verbose" && echo search path $cf_search
2232 cf_save2_CPPFLAGS="$CPPFLAGS"
2233 for cf_incdir in $cf_search
2235 CF_ADD_INCDIR($cf_incdir)
2240 CF_NCURSES_CC_CHECK(cf_cv_ncurses_h2,$cf_header,$1)
2241 if test "$cf_cv_ncurses_h2" != no ; then
2242 cf_cv_ncurses_h2=$cf_incdir/$cf_header
2243 test -n "$verbose" && echo $ac_n " ... found $ac_c" 1>&AC_FD_MSG
2246 test -n "$verbose" && echo " ... tested $cf_incdir/$cf_header" 1>&AC_FD_MSG
2248 CPPFLAGS="$cf_save2_CPPFLAGS"
2249 test "$cf_cv_ncurses_h2" != no && break
2251 test "$cf_cv_ncurses_h2" = no && AC_MSG_ERROR(not found)
2254 CF_DIRNAME(cf_1st_incdir,$cf_cv_ncurses_h2)
2255 cf_cv_ncurses_header=`basename $cf_cv_ncurses_h2`
2256 if test `basename $cf_1st_incdir` = $cf_ncuhdr_root ; then
2257 cf_cv_ncurses_header=$cf_ncuhdr_root/$cf_cv_ncurses_header
2259 CF_ADD_INCDIR($cf_1st_incdir)
2263 # Set definitions to allow ifdef'ing for ncurses.h
2265 case $cf_cv_ncurses_header in
2267 AC_DEFINE(HAVE_NCURSES_H,1,[Define to 1 if we have ncurses.h])
2271 case $cf_cv_ncurses_header in
2272 (ncurses/curses.h|ncurses/ncurses.h)
2273 AC_DEFINE(HAVE_NCURSES_NCURSES_H,1,[Define to 1 if we have ncurses/ncurses.h])
2275 (ncursesw/curses.h|ncursesw/ncurses.h)
2276 AC_DEFINE(HAVE_NCURSESW_NCURSES_H,1,[Define to 1 if we have ncursesw/ncurses.h])
2281 dnl ---------------------------------------------------------------------------
2282 dnl CF_NCURSES_LIBS version: 17 updated: 2015/04/15 19:08:48
2284 dnl Look for the ncurses library. This is a little complicated on Linux,
2285 dnl because it may be linked with the gpm (general purpose mouse) library.
2286 dnl Some distributions have gpm linked with (bsd) curses, which makes it
2287 dnl unusable with ncurses. However, we don't want to link with gpm unless
2288 dnl ncurses has a dependency, since gpm is normally set up as a shared library,
2289 dnl and the linker will record a dependency.
2291 dnl The optional parameter gives the root name of the library, in case it is
2292 dnl not installed as the default curses library. That is how the
2293 dnl wide-character version of ncurses is installed.
2294 AC_DEFUN([CF_NCURSES_LIBS],
2295 [AC_REQUIRE([CF_NCURSES_CPPFLAGS])
2297 cf_nculib_root=ifelse($1,,ncurses,$1)
2298 # This works, except for the special case where we find gpm, but
2299 # ncurses is in a nonstandard location via $LIBS, and we really want
2302 cf_ncurses_SAVE="$LIBS"
2303 AC_CHECK_LIB(gpm,Gpm_Open,
2304 [AC_CHECK_LIB(gpm,initscr,
2305 [LIBS="$cf_ncurses_SAVE"],
2306 [cf_ncurses_LIBS="-lgpm"])])
2310 # This is only necessary if you are linking against an obsolete
2311 # version of ncurses (but it should do no harm, since it's static).
2312 if test "$cf_nculib_root" = ncurses ; then
2313 AC_CHECK_LIB(mytinfo,tgoto,[cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"])
2318 CF_ADD_LIBS($cf_ncurses_LIBS)
2320 if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
2322 CF_ADD_LIBS(-l$cf_nculib_root)
2324 CF_FIND_LIBRARY($cf_nculib_root,$cf_nculib_root,
2325 [#include <${cf_cv_ncurses_header:-curses.h}>],
2330 if test -n "$cf_ncurses_LIBS" ; then
2331 AC_MSG_CHECKING(if we can link $cf_nculib_root without $cf_ncurses_LIBS)
2332 cf_ncurses_SAVE="$LIBS"
2333 for p in $cf_ncurses_LIBS ; do
2334 q=`echo $LIBS | sed -e "s%$p %%" -e "s%$p$%%"`
2335 if test "$q" != "$LIBS" ; then
2339 AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
2340 [initscr(); mousemask(0,0); tgoto((char *)0, 0, 0);],
2341 [AC_MSG_RESULT(yes)],
2343 LIBS="$cf_ncurses_SAVE"])
2346 CF_UPPER(cf_nculib_ROOT,HAVE_LIB$cf_nculib_root)
2347 AC_DEFINE_UNQUOTED($cf_nculib_ROOT)
2349 dnl ---------------------------------------------------------------------------
2350 dnl CF_NCURSES_PTHREADS version: 2 updated: 2016/04/22 05:07:41
2351 dnl -------------------
2352 dnl Use this followup check to ensure that we link with pthreads if ncurses
2354 AC_DEFUN([CF_NCURSES_PTHREADS],[
2355 : ${cf_nculib_root:=ifelse($1,,ncurses,$1)}
2356 AC_CHECK_LIB($cf_nculib_root,_nc_init_pthreads,
2357 cf_cv_ncurses_pthreads=yes,
2358 cf_cv_ncurses_pthreads=no)
2359 if test "$cf_cv_ncurses_pthreads" = yes
2361 CF_ADD_LIBS(-lpthread)
2364 dnl ---------------------------------------------------------------------------
2365 dnl CF_NCURSES_VERSION version: 14 updated: 2012/10/06 08:57:51
2366 dnl ------------------
2367 dnl Check for the version of ncurses, to aid in reporting bugs, etc.
2368 dnl Call CF_CURSES_CPPFLAGS first, or CF_NCURSES_CPPFLAGS. We don't use
2369 dnl AC_REQUIRE since that does not work with the shell's if/then/else/fi.
2370 AC_DEFUN([CF_NCURSES_VERSION],
2372 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
2373 AC_CACHE_CHECK(for ncurses version, cf_cv_ncurses_version,[
2374 cf_cv_ncurses_version=no
2378 #include <${cf_cv_ncurses_header:-curses.h}>
2382 FILE *fp = fopen("$cf_tempfile", "w");
2383 #ifdef NCURSES_VERSION
2384 # ifdef NCURSES_VERSION_PATCH
2385 fprintf(fp, "%s.%d\n", NCURSES_VERSION, NCURSES_VERSION_PATCH);
2387 fprintf(fp, "%s\n", NCURSES_VERSION);
2391 fprintf(fp, "old\n");
2396 ${cf_cv_main_return:-return}(0);
2398 cf_cv_ncurses_version=`cat $cf_tempfile`],,[
2400 # This will not work if the preprocessor splits the line after the
2401 # Autoconf token. The 'unproto' program does that.
2402 cat > conftest.$ac_ext <<EOF
2403 #include <${cf_cv_ncurses_header:-curses.h}>
2405 #ifdef NCURSES_VERSION
2406 Autoconf NCURSES_VERSION
2414 cf_try="$ac_cpp conftest.$ac_ext 2>&AC_FD_CC | grep '^Autoconf ' >conftest.out"
2416 if test -f conftest.out ; then
2417 cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[[^"]]*"%%' -e 's%".*%%'`
2418 test -n "$cf_out" && cf_cv_ncurses_version="$cf_out"
2424 test "$cf_cv_ncurses_version" = no || AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
2426 dnl ---------------------------------------------------------------------------
2427 dnl CF_NCURSES_WRAP_PREFIX version: 1 updated: 2009/03/28 16:08:10
2428 dnl ----------------------
2429 dnl Check for ncurses "wrap-prefix" used for public variables which have been
2430 dnl wrapped with a function to help with concurrency control.
2431 AC_DEFUN([CF_NCURSES_WRAP_PREFIX],
2433 AC_MSG_CHECKING(for ncurses wrap-prefix)
2434 AC_ARG_WITH(ncurses-wrap-prefix,
2435 [ --with-ncurses-wrap-prefix naming-prefix for ncurses wrapped-variables],
2436 [NCURSES_WRAP_PREFIX=$withval],
2437 [NCURSES_WRAP_PREFIX=_nc_])
2438 AC_MSG_RESULT($NCURSES_WRAP_PREFIX)
2440 AC_SUBST(NCURSES_WRAP_PREFIX)
2442 dnl ---------------------------------------------------------------------------
2443 dnl CF_NETBSD_FORM_H version: 2 updated: 2012/10/06 16:39:58
2444 dnl ----------------
2445 dnl Check for NetBSD's form.h, which is incompatible with SVr4 and ncurses.
2446 dnl Some workarounds are needed in client programs to allow them to compile.
2447 AC_DEFUN([CF_NETBSD_FORM_H],[
2448 AC_CACHE_CHECK(for NetBSD form.h,cf_cv_netbsd_form_h,[
2450 #include <${cf_cv_ncurses_header:-curses.h}>
2454 int y = current_field(form)->cursor_ypos;
2455 int x = current_field(form)->cursor_xpos;
2456 ],[cf_cv_netbsd_form_h=yes
2457 ],[cf_cv_netbsd_form_h=no])
2460 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])
2462 dnl ---------------------------------------------------------------------------
2463 dnl CF_NETBSD_MENU_H version: 2 updated: 2012/10/06 16:39:58
2464 dnl ----------------
2465 dnl Check for NetBSD's menu.h, which is incompatible with SVr4 and ncurses.
2466 dnl Some workarounds are needed in client programs to allow them to compile.
2467 AC_DEFUN([CF_NETBSD_MENU_H],[
2468 AC_CACHE_CHECK(for NetBSD menu.h,cf_cv_netbsd_menu_h,[
2470 #include <${cf_cv_ncurses_header:-curses.h}>
2474 int y = menu->max_item_width;
2475 ],[cf_cv_netbsd_menu_h=yes
2476 ],[cf_cv_netbsd_menu_h=no])
2479 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])
2481 dnl ---------------------------------------------------------------------------
2482 dnl CF_NO_LEAKS_OPTION version: 6 updated: 2015/04/12 15:39:00
2483 dnl ------------------
2484 dnl see CF_WITH_NO_LEAKS
2485 AC_DEFUN([CF_NO_LEAKS_OPTION],[
2486 AC_MSG_CHECKING(if you want to use $1 for testing)
2489 [AC_DEFINE_UNQUOTED($3,1,"Define to 1 if you want to use $1 for testing.")ifelse([$4],,[
2492 : ${with_cflags:=-g}
2493 : ${with_no_leaks:=yes}
2496 AC_MSG_RESULT(${with_$1:-no})
2498 case .$with_cflags in
2510 dnl ---------------------------------------------------------------------------
2511 dnl CF_PATH_SYNTAX version: 16 updated: 2015/04/18 08:56:57
2513 dnl Check the argument to see that it looks like a pathname. Rewrite it if it
2514 dnl begins with one of the prefix/exec_prefix variables, and then again if the
2515 dnl result begins with 'NONE'. This is necessary to work around autoconf's
2516 dnl delayed evaluation of those symbols.
2517 AC_DEFUN([CF_PATH_SYNTAX],[
2518 if test "x$prefix" != xNONE; then
2519 cf_path_syntax="$prefix"
2521 cf_path_syntax="$ac_default_prefix"
2525 (.\[$]\(*\)*|.\'*\'*)
2529 (.[[a-zA-Z]]:[[\\/]]*) # OS/2 EMX
2531 (.\[$]{*prefix}*|.\[$]{*dir}*)
2535 $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
2540 $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
2543 ifelse([$2],,[AC_MSG_ERROR([expected a pathname, not \"[$]$1\"])],$2)
2547 dnl ---------------------------------------------------------------------------
2548 dnl CF_PDCURSES_X11 version: 13 updated: 2012/10/06 16:39:58
2550 dnl Configure for PDCurses' X11 library
2551 AC_DEFUN([CF_PDCURSES_X11],[
2552 AC_REQUIRE([CF_X_ATHENA])
2554 CF_ACVERSION_CHECK(2.52,
2555 [AC_CHECK_TOOLS(XCURSES_CONFIG, xcurses-config, none)],
2556 [AC_PATH_PROGS(XCURSES_CONFIG, xcurses-config, none)])
2558 if test "$XCURSES_CONFIG" != none ; then
2560 CPPFLAGS="$CPPFLAGS `$XCURSES_CONFIG --cflags`"
2561 CF_ADD_LIBS(`$XCURSES_CONFIG --libs`)
2563 cf_cv_lib_XCurses=yes
2567 LDFLAGS="$LDFLAGS $X_LIBS"
2568 CF_CHECK_CFLAGS($X_CFLAGS)
2569 AC_CHECK_LIB(X11,XOpenDisplay,
2570 [CF_ADD_LIBS(-lX11)],,
2571 [$X_PRE_LIBS $LIBS $X_EXTRA_LIBS])
2572 AC_CACHE_CHECK(for XCurses library,cf_cv_lib_XCurses,[
2573 CF_ADD_LIBS(-lXCurses)
2575 #include <xcurses.h>
2576 char *XCursesProgramName = "test";
2578 [cf_cv_lib_XCurses=yes],
2579 [cf_cv_lib_XCurses=no])
2584 if test $cf_cv_lib_XCurses = yes ; then
2585 AC_DEFINE(UNIX,1,[Define to 1 if using PDCurses on Unix])
2586 AC_DEFINE(XCURSES,1,[Define to 1 if using PDCurses on Unix])
2587 AC_CHECK_HEADER(xcurses.h, AC_DEFINE(HAVE_XCURSES,1,[Define to 1 if using PDCurses on Unix]))
2589 AC_MSG_ERROR(Cannot link with XCurses)
2592 dnl ---------------------------------------------------------------------------
2593 dnl CF_PKG_CONFIG version: 10 updated: 2015/04/26 18:06:58
2595 dnl Check for the package-config program, unless disabled by command-line.
2596 AC_DEFUN([CF_PKG_CONFIG],
2598 AC_MSG_CHECKING(if you want to use pkg-config)
2599 AC_ARG_WITH(pkg-config,
2600 [ --with-pkg-config{=path} enable/disable use of pkg-config],
2601 [cf_pkg_config=$withval],
2602 [cf_pkg_config=yes])
2603 AC_MSG_RESULT($cf_pkg_config)
2605 case $cf_pkg_config in
2610 CF_ACVERSION_CHECK(2.52,
2611 [AC_PATH_TOOL(PKG_CONFIG, pkg-config, none)],
2612 [AC_PATH_PROG(PKG_CONFIG, pkg-config, none)])
2619 test -z "$PKG_CONFIG" && PKG_CONFIG=none
2620 if test "$PKG_CONFIG" != none ; then
2621 CF_PATH_SYNTAX(PKG_CONFIG)
2622 elif test "x$cf_pkg_config" != xno ; then
2623 AC_MSG_WARN(pkg-config is not installed)
2626 AC_SUBST(PKG_CONFIG)
2628 dnl ---------------------------------------------------------------------------
2629 dnl CF_POSIX_C_SOURCE version: 9 updated: 2015/04/12 15:39:00
2630 dnl -----------------
2631 dnl Define _POSIX_C_SOURCE to the given level, and _POSIX_SOURCE if needed.
2633 dnl POSIX.1-1990 _POSIX_SOURCE
2634 dnl POSIX.1-1990 and _POSIX_SOURCE and
2635 dnl POSIX.2-1992 C-Language _POSIX_C_SOURCE=2
2637 dnl POSIX.1b-1993 _POSIX_C_SOURCE=199309L
2638 dnl POSIX.1c-1996 _POSIX_C_SOURCE=199506L
2639 dnl X/Open 2000 _POSIX_C_SOURCE=200112L
2642 dnl $1 is the nominal value for _POSIX_C_SOURCE
2643 AC_DEFUN([CF_POSIX_C_SOURCE],
2645 cf_POSIX_C_SOURCE=ifelse([$1],,199506L,[$1])
2647 cf_save_CFLAGS="$CFLAGS"
2648 cf_save_CPPFLAGS="$CPPFLAGS"
2650 CF_REMOVE_DEFINE(cf_trim_CFLAGS,$cf_save_CFLAGS,_POSIX_C_SOURCE)
2651 CF_REMOVE_DEFINE(cf_trim_CPPFLAGS,$cf_save_CPPFLAGS,_POSIX_C_SOURCE)
2653 AC_CACHE_CHECK(if we should define _POSIX_C_SOURCE,cf_cv_posix_c_source,[
2654 CF_MSG_LOG(if the symbol is already defined go no further)
2655 AC_TRY_COMPILE([#include <sys/types.h>],[
2656 #ifndef _POSIX_C_SOURCE
2659 [cf_cv_posix_c_source=no],
2660 [cf_want_posix_source=no
2661 case .$cf_POSIX_C_SOURCE in
2663 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
2666 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
2667 cf_want_posix_source=yes
2670 cf_want_posix_source=yes
2673 if test "$cf_want_posix_source" = yes ; then
2674 AC_TRY_COMPILE([#include <sys/types.h>],[
2675 #ifdef _POSIX_SOURCE
2678 cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE")
2680 CF_MSG_LOG(ifdef from value $cf_POSIX_C_SOURCE)
2681 CFLAGS="$cf_trim_CFLAGS"
2682 CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source"
2683 CF_MSG_LOG(if the second compile does not leave our definition intact error)
2684 AC_TRY_COMPILE([#include <sys/types.h>],[
2685 #ifndef _POSIX_C_SOURCE
2688 [cf_cv_posix_c_source=no])
2689 CFLAGS="$cf_save_CFLAGS"
2690 CPPFLAGS="$cf_save_CPPFLAGS"
2694 if test "$cf_cv_posix_c_source" != no ; then
2695 CFLAGS="$cf_trim_CFLAGS"
2696 CPPFLAGS="$cf_trim_CPPFLAGS"
2697 CF_ADD_CFLAGS($cf_cv_posix_c_source)
2701 dnl ---------------------------------------------------------------------------
2702 dnl CF_PRG_RULES version: 1 updated: 2006/06/03 11:45:08
2704 dnl Append definitions and rules for the given programs to the subdirectory
2705 dnl Makefiles, and the recursion rule for the top-level Makefile.
2708 dnl $1 = script to run
2709 dnl $2 = list of subdirectories
2713 AC_DEFUN([CF_PRG_RULES],
2717 if test ! -d $srcdir/$cf_dir; then
2719 elif test -f $srcdir/$cf_dir/programs; then
2720 $AWK -f $1 $srcdir/$cf_dir/programs >>$cf_dir/Makefile
2725 dnl ---------------------------------------------------------------------------
2726 dnl CF_PROG_CC version: 4 updated: 2014/07/12 18:57:58
2728 dnl standard check for CC, plus followup sanity checks
2729 dnl $1 = optional parameter to pass to AC_PROG_CC to specify compiler name
2730 AC_DEFUN([CF_PROG_CC],[
2731 ifelse($1,,[AC_PROG_CC],[AC_PROG_CC($1)])
2733 CF_ACVERSION_CHECK(2.52,
2738 dnl ---------------------------------------------------------------------------
2739 dnl CF_PROG_INSTALL version: 7 updated: 2015/04/18 08:56:57
2741 dnl Force $INSTALL to be an absolute-path. Otherwise, edit_man.sh and the
2742 dnl misc/tabset install won't work properly. Usually this happens only when
2743 dnl using the fallback mkinstalldirs script
2744 AC_DEFUN([CF_PROG_INSTALL],
2750 CF_DIRNAME(cf_dir,$INSTALL)
2751 test -z "$cf_dir" && cf_dir=.
2752 INSTALL=`cd $cf_dir && pwd`/`echo $INSTALL | sed -e 's%^.*/%%'`
2756 dnl ---------------------------------------------------------------------------
2757 dnl CF_PROG_LINT version: 3 updated: 2016/05/22 15:25:54
2759 AC_DEFUN([CF_PROG_LINT],
2761 AC_CHECK_PROGS(LINT, lint cppcheck splint)
2764 dnl ---------------------------------------------------------------------------
2765 dnl CF_REMOVE_DEFINE version: 3 updated: 2010/01/09 11:05:50
2766 dnl ----------------
2767 dnl Remove all -U and -D options that refer to the given symbol from a list
2768 dnl of C compiler options. This works around the problem that not all
2769 dnl compilers process -U and -D options from left-to-right, so a -U option
2770 dnl cannot be used to cancel the effect of a preceding -D option.
2772 dnl $1 = target (which could be the same as the source variable)
2773 dnl $2 = source (including '$')
2774 dnl $3 = symbol to remove
2775 define([CF_REMOVE_DEFINE],
2778 sed -e 's/-[[UD]]'"$3"'\(=[[^ ]]*\)\?[[ ]]/ /g' \
2779 -e 's/-[[UD]]'"$3"'\(=[[^ ]]*\)\?[$]//g'`
2781 dnl ---------------------------------------------------------------------------
2782 dnl CF_RPATH_HACK version: 11 updated: 2013/09/01 13:02:00
2784 AC_DEFUN([CF_RPATH_HACK],
2786 AC_REQUIRE([CF_LD_RPATH_OPT])
2787 AC_MSG_CHECKING(for updated LDFLAGS)
2788 if test -n "$LD_RPATH_OPT" ; then
2789 AC_MSG_RESULT(maybe)
2791 AC_CHECK_PROGS(cf_ldd_prog,ldd,no)
2792 cf_rpath_list="/usr/lib /lib"
2793 if test "$cf_ldd_prog" != no
2797 AC_TRY_LINK([#include <stdio.h>],
2799 [cf_rpath_oops=`$cf_ldd_prog conftest$ac_exeext | fgrep ' not found' | sed -e 's% =>.*$%%' |sort | uniq`
2800 cf_rpath_list=`$cf_ldd_prog conftest$ac_exeext | fgrep / | sed -e 's%^.*[[ ]]/%/%' -e 's%/[[^/]][[^/]]*$%%' |sort | uniq`])
2802 # If we passed the link-test, but get a "not found" on a given library,
2803 # this could be due to inept reconfiguration of gcc to make it only
2804 # partly honor /usr/local/lib (or whatever). Sometimes this behavior
2805 # is intentional, e.g., installing gcc in /usr/bin and suppressing the
2806 # /usr/local libraries.
2807 if test -n "$cf_rpath_oops"
2809 for cf_rpath_src in $cf_rpath_oops
2811 for cf_rpath_dir in \
2816 if test -f $cf_rpath_dir/lib/$cf_rpath_src
2818 CF_VERBOSE(...adding -L$cf_rpath_dir/lib to LDFLAGS for $cf_rpath_src)
2819 LDFLAGS="$LDFLAGS -L$cf_rpath_dir/lib"
2827 CF_VERBOSE(...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS)
2829 CF_RPATH_HACK_2(LDFLAGS)
2830 CF_RPATH_HACK_2(LIBS)
2832 CF_VERBOSE(...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS)
2836 AC_SUBST(EXTRA_LDFLAGS)
2838 dnl ---------------------------------------------------------------------------
2839 dnl CF_RPATH_HACK_2 version: 7 updated: 2015/04/12 15:39:00
2841 dnl Do one set of substitutions for CF_RPATH_HACK, adding an rpath option to
2842 dnl EXTRA_LDFLAGS for each -L option found.
2844 dnl $cf_rpath_list contains a list of directories to ignore.
2846 dnl $1 = variable name to update. The LDFLAGS variable should be the only one,
2847 dnl but LIBS often has misplaced -L options.
2848 AC_DEFUN([CF_RPATH_HACK_2],
2850 CF_VERBOSE(...checking $1 [$]$1)
2853 for cf_rpath_src in [$]$1
2855 case $cf_rpath_src in
2858 # check if this refers to a directory which we will ignore
2860 if test -n "$cf_rpath_list"
2862 for cf_rpath_item in $cf_rpath_list
2864 if test "x$cf_rpath_src" = "x-L$cf_rpath_item"
2872 if test "$cf_rpath_skip" = no
2874 # transform the option
2875 if test "$LD_RPATH_OPT" = "-R " ; then
2876 cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%-R %"`
2878 cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%$LD_RPATH_OPT%"`
2881 # if we have not already added this, add it now
2882 cf_rpath_tst=`echo "$EXTRA_LDFLAGS" | sed -e "s%$cf_rpath_tmp %%"`
2883 if test "x$cf_rpath_tst" = "x$EXTRA_LDFLAGS"
2885 CF_VERBOSE(...Filter $cf_rpath_src ->$cf_rpath_tmp)
2886 EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS"
2891 cf_rpath_dst="$cf_rpath_dst $cf_rpath_src"
2895 CF_VERBOSE(...checked $1 [$]$1)
2896 AC_SUBST(EXTRA_LDFLAGS)
2898 dnl ---------------------------------------------------------------------------
2899 dnl CF_SIGWINCH version: 1 updated: 2006/04/02 16:41:09
2901 dnl Use this macro after CF_XOPEN_SOURCE, but do not require it (not all
2902 dnl programs need this test).
2904 dnl This is really a MacOS X 10.4.3 workaround. Defining _POSIX_C_SOURCE
2905 dnl forces SIGWINCH to be undefined (breaks xterm, ncurses). Oddly, the struct
2906 dnl winsize declaration is left alone - we may revisit this if Apple choose to
2907 dnl break that part of the interface as well.
2908 AC_DEFUN([CF_SIGWINCH],
2910 AC_CACHE_CHECK(if SIGWINCH is defined,cf_cv_define_sigwinch,[
2912 #include <sys/types.h>
2913 #include <sys/signal.h>
2914 ],[int x = SIGWINCH],
2915 [cf_cv_define_sigwinch=yes],
2917 #undef _XOPEN_SOURCE
2918 #undef _POSIX_SOURCE
2919 #undef _POSIX_C_SOURCE
2920 #include <sys/types.h>
2921 #include <sys/signal.h>
2922 ],[int x = SIGWINCH],
2923 [cf_cv_define_sigwinch=maybe],
2924 [cf_cv_define_sigwinch=no])
2928 if test "$cf_cv_define_sigwinch" = maybe ; then
2929 AC_CACHE_CHECK(for actual SIGWINCH definition,cf_cv_fixup_sigwinch,[
2930 cf_cv_fixup_sigwinch=unknown
2932 while test $cf_sigwinch != 1
2935 #undef _XOPEN_SOURCE
2936 #undef _POSIX_SOURCE
2937 #undef _POSIX_C_SOURCE
2938 #include <sys/types.h>
2939 #include <sys/signal.h>
2941 #if SIGWINCH != $cf_sigwinch
2945 [cf_cv_fixup_sigwinch=$cf_sigwinch
2948 cf_sigwinch=`expr $cf_sigwinch - 1`
2952 if test "$cf_cv_fixup_sigwinch" != unknown ; then
2953 CPPFLAGS="$CPPFLAGS -DSIGWINCH=$cf_cv_fixup_sigwinch"
2957 dnl ---------------------------------------------------------------------------
2958 dnl CF_SIG_ATOMIC_T version: 3 updated: 2012/10/04 20:12:20
2960 dnl signal handler, but there are some gcc depedencies in that recommendation.
2962 AC_DEFUN([CF_SIG_ATOMIC_T],
2964 AC_MSG_CHECKING(for signal global datatype)
2965 AC_CACHE_VAL(cf_cv_sig_atomic_t,[
2967 "volatile sig_atomic_t" \
2972 #include <sys/types.h>
2978 static void handler(int sig)
2982 [signal(SIGINT, handler);
2984 [cf_cv_sig_atomic_t=$cf_type],
2985 [cf_cv_sig_atomic_t=no])
2986 test "$cf_cv_sig_atomic_t" != no && break
2989 AC_MSG_RESULT($cf_cv_sig_atomic_t)
2990 test "$cf_cv_sig_atomic_t" != no && AC_DEFINE_UNQUOTED(SIG_ATOMIC_T, $cf_cv_sig_atomic_t,[Define to signal global datatype])
2992 dnl ---------------------------------------------------------------------------
2993 dnl CF_SUBDIR_PATH version: 7 updated: 2014/12/04 04:33:06
2995 dnl Construct a search-list for a nonstandard header/lib-file
2996 dnl $1 = the variable to return as result
2997 dnl $2 = the package name
2998 dnl $3 = the subdirectory, e.g., bin, include or lib
2999 AC_DEFUN([CF_SUBDIR_PATH],
3003 CF_ADD_SUBDIR_PATH($1,$2,$3,$prefix,NONE)
3005 for cf_subdir_prefix in \
3013 CF_ADD_SUBDIR_PATH($1,$2,$3,$cf_subdir_prefix,$prefix)
3016 dnl ---------------------------------------------------------------------------
3017 dnl CF_SYS_TIME_SELECT version: 6 updated: 2015/04/18 08:56:57
3018 dnl ------------------
3019 dnl Check if we can include <sys/time.h> with <sys/select.h>; this breaks on
3020 dnl older SCO configurations.
3021 AC_DEFUN([CF_SYS_TIME_SELECT],
3023 AC_MSG_CHECKING(if sys/time.h works with sys/select.h)
3024 AC_CACHE_VAL(cf_cv_sys_time_select,[
3026 #include <sys/types.h>
3027 #ifdef HAVE_SYS_TIME_H
3028 #include <sys/time.h>
3030 #ifdef HAVE_SYS_SELECT_H
3031 #include <sys/select.h>
3033 ],[],[cf_cv_sys_time_select=yes],
3034 [cf_cv_sys_time_select=no])
3036 AC_MSG_RESULT($cf_cv_sys_time_select)
3037 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>])
3039 dnl ---------------------------------------------------------------------------
3040 dnl CF_TERM_HEADER version: 4 updated: 2015/04/15 19:08:48
3042 dnl Look for term.h, which is part of X/Open curses. It defines the interface
3043 dnl to terminfo database. Usually it is in the same include-path as curses.h,
3044 dnl but some packagers change this, breaking various applications.
3045 AC_DEFUN([CF_TERM_HEADER],[
3046 AC_CACHE_CHECK(for terminfo header, cf_cv_term_header,[
3047 case ${cf_cv_ncurses_header} in
3048 (*/ncurses.h|*/ncursesw.h)
3049 cf_term_header=`echo "$cf_cv_ncurses_header" | sed -e 's%ncurses[[^.]]*\.h$%term.h%'`
3052 cf_term_header=term.h
3056 for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
3058 AC_TRY_COMPILE([#include <stdio.h>
3059 #include <${cf_cv_ncurses_header:-curses.h}>
3061 ],[int x = auto_left_margin],[
3062 cf_cv_term_header="$cf_test"],[
3063 cf_cv_term_header=unknown
3065 test "$cf_cv_term_header" != unknown && break
3069 # Set definitions to allow ifdef'ing to accommodate subdirectories
3071 case $cf_cv_term_header in
3073 AC_DEFINE(HAVE_TERM_H,1,[Define to 1 if we have term.h])
3077 case $cf_cv_term_header in
3079 AC_DEFINE(HAVE_NCURSES_TERM_H,1,[Define to 1 if we have ncurses/term.h])
3082 AC_DEFINE(HAVE_NCURSESW_TERM_H,1,[Define to 1 if we have ncursesw/term.h])
3086 dnl ---------------------------------------------------------------------------
3087 dnl CF_TOP_BUILDDIR version: 2 updated: 2013/07/27 17:38:32
3089 dnl Define a top_builddir symbol, for applications that need an absolute path.
3090 AC_DEFUN([CF_TOP_BUILDDIR],
3092 top_builddir=ifelse($1,,`pwd`,$1)
3093 AC_SUBST(top_builddir)
3095 dnl ---------------------------------------------------------------------------
3096 dnl CF_TPUTS_PROTO version: 3 updated: 2015/04/17 21:26:14
3098 dnl Check for type of function-pointer passed to tputs. Some old
3099 dnl implementations used functions that had different prototypes, making it
3100 dnl hard to compile portable programs using tputs.
3101 AC_DEFUN([CF_TPUTS_PROTO],[
3102 CF_CURSES_FUNCS(tputs)
3103 if test x$cf_cv_func_tputs = xyes
3106 for cf_arg in int char
3108 for cf_ret in int void
3110 if test $cf_ret = void
3112 cf_return="/* nothing */"
3114 cf_return="return value"
3117 #include <${cf_cv_ncurses_header:-curses.h}>
3118 #include <$cf_cv_term_header>
3120 static $cf_ret outc($cf_arg value) { $cf_return; }
3122 tputs("hello", 0, outc);
3123 ${cf_cv_main_return:-return}(0);
3125 CF_VERBOSE([prototype $cf_ret func($cf_arg value)])
3126 cat >>confdefs.h <<EOF
3127 #define TPUTS_ARG $cf_arg
3128 #define TPUTS_PROTO(func,value) $cf_ret func(TPUTS_ARG value)
3129 #define TPUTS_RETURN(value) $cf_return
3135 test $cf_done = yes && break
3139 dnl ---------------------------------------------------------------------------
3140 dnl CF_TRIM_X_LIBS version: 3 updated: 2015/04/12 15:39:00
3142 dnl Trim extra base X libraries added as a workaround for inconsistent library
3143 dnl dependencies returned by "new" pkg-config files.
3144 AC_DEFUN([CF_TRIM_X_LIBS],[
3145 for cf_trim_lib in Xmu Xt X11
3148 (*-l$cf_trim_lib\ *-l$cf_trim_lib*)
3149 LIBS=`echo "$LIBS " | sed -e 's/ / /g' -e 's%-l'"$cf_trim_lib"' %%' -e 's/ $//'`
3150 CF_VERBOSE(..trimmed $LIBS)
3155 dnl ---------------------------------------------------------------------------
3156 dnl CF_TRY_PKG_CONFIG version: 5 updated: 2013/07/06 21:27:06
3157 dnl -----------------
3158 dnl This is a simple wrapper to use for pkg-config, for libraries which may be
3159 dnl available in that form.
3161 dnl $1 = package name
3162 dnl $2 = extra logic to use, if any, after updating CFLAGS and LIBS
3163 dnl $3 = logic to use if pkg-config does not have the package
3164 AC_DEFUN([CF_TRY_PKG_CONFIG],[
3165 AC_REQUIRE([CF_PKG_CONFIG])
3167 if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists $1; then
3168 CF_VERBOSE(found package $1)
3169 cf_pkgconfig_incs="`$PKG_CONFIG --cflags $1 2>/dev/null`"
3170 cf_pkgconfig_libs="`$PKG_CONFIG --libs $1 2>/dev/null`"
3171 CF_VERBOSE(package $1 CFLAGS: $cf_pkgconfig_incs)
3172 CF_VERBOSE(package $1 LIBS: $cf_pkgconfig_libs)
3173 CF_ADD_CFLAGS($cf_pkgconfig_incs)
3174 CF_ADD_LIBS($cf_pkgconfig_libs)
3175 ifelse([$2],,:,[$2])
3179 ifelse([$3],,:,[$3])
3182 dnl ---------------------------------------------------------------------------
3183 dnl CF_TRY_XOPEN_SOURCE version: 1 updated: 2011/10/30 17:09:50
3184 dnl -------------------
3185 dnl If _XOPEN_SOURCE is not defined in the compile environment, check if we
3186 dnl can define it successfully.
3187 AC_DEFUN([CF_TRY_XOPEN_SOURCE],[
3188 AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[
3192 #include <sys/types.h>
3194 #ifndef _XOPEN_SOURCE
3197 [cf_cv_xopen_source=no],
3198 [cf_save="$CPPFLAGS"
3199 CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
3203 #include <sys/types.h>
3205 #ifdef _XOPEN_SOURCE
3208 [cf_cv_xopen_source=no],
3209 [cf_cv_xopen_source=$cf_XOPEN_SOURCE])
3214 if test "$cf_cv_xopen_source" != no ; then
3215 CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE)
3216 CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE)
3217 cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
3218 CF_ADD_CFLAGS($cf_temp_xopen_source)
3221 dnl ---------------------------------------------------------------------------
3222 dnl CF_UPPER version: 5 updated: 2001/01/29 23:40:59
3224 dnl Make an uppercase version of a variable
3225 dnl $1=uppercase($2)
3226 AC_DEFUN([CF_UPPER],
3228 $1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
3230 dnl ---------------------------------------------------------------------------
3231 dnl CF_UTF8_LIB version: 8 updated: 2012/10/06 08:57:51
3233 dnl Check for multibyte support, and if not found, utf8 compatibility library
3234 AC_DEFUN([CF_UTF8_LIB],
3236 AC_CACHE_CHECK(for multibyte character support,cf_cv_utf8_lib,[
3237 cf_save_LIBS="$LIBS"
3239 #include <stdlib.h>],[putwc(0,0);],
3240 [cf_cv_utf8_lib=yes],
3242 #include <libutf8.h>],[putwc(0,0);],utf8,
3243 [cf_cv_utf8_lib=add-on],
3244 [cf_cv_utf8_lib=no])
3247 # HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
3249 if test "$cf_cv_utf8_lib" = "add-on" ; then
3250 AC_DEFINE(HAVE_LIBUTF8_H,1,[Define to 1 if we should include libutf8.h])
3251 CF_ADD_INCDIR($cf_cv_header_path_utf8)
3252 CF_ADD_LIBDIR($cf_cv_library_path_utf8)
3253 CF_ADD_LIBS($cf_cv_library_file_utf8)
3256 dnl ---------------------------------------------------------------------------
3257 dnl CF_VERBOSE version: 3 updated: 2007/07/29 09:55:12
3259 dnl Use AC_VERBOSE w/o the warnings
3260 AC_DEFUN([CF_VERBOSE],
3261 [test -n "$verbose" && echo " $1" 1>&AC_FD_MSG
3264 dnl ---------------------------------------------------------------------------
3265 dnl CF_WCHAR_TYPE version: 4 updated: 2012/10/06 16:39:58
3267 dnl Check if type wide-character type $1 is declared, and if so, which header
3268 dnl file is needed. The second parameter is used to set a shell variable when
3269 dnl the type is not found. The first parameter sets a shell variable for the
3271 AC_DEFUN([CF_WCHAR_TYPE],
3273 # This is needed on Tru64 5.0 to declare $1
3274 AC_CACHE_CHECK(if we must include wchar.h to declare $1,cf_cv_$1,[
3279 #ifdef HAVE_LIBUTF8_H
3280 #include <libutf8.h>
3289 #ifdef HAVE_LIBUTF8_H
3290 #include <libutf8.h>
3294 [cf_cv_$1=unknown])])])
3296 if test "$cf_cv_$1" = yes ; then
3297 AC_DEFINE(NEED_WCHAR_H,1,[Define to 1 if we must include wchar.h])
3302 # if we do not find $1 in either place, use substitution to provide a fallback.
3303 if test "$cf_cv_$1" = unknown ; then
3308 # if we find $1 in either place, use substitution to provide a fallback.
3309 if test "$cf_cv_$1" != unknown ; then
3314 dnl ---------------------------------------------------------------------------
3315 dnl CF_WITH_CURSES_DIR version: 3 updated: 2010/11/20 17:02:38
3316 dnl ------------------
3317 dnl Wrapper for AC_ARG_WITH to specify directory under which to look for curses
3319 AC_DEFUN([CF_WITH_CURSES_DIR],[
3321 AC_MSG_CHECKING(for specific curses-directory)
3322 AC_ARG_WITH(curses-dir,
3323 [ --with-curses-dir=DIR directory in which (n)curses is installed],
3324 [cf_cv_curses_dir=$withval],
3325 [cf_cv_curses_dir=no])
3326 AC_MSG_RESULT($cf_cv_curses_dir)
3328 if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
3330 CF_PATH_SYNTAX(withval)
3331 if test -d "$cf_cv_curses_dir"
3333 CF_ADD_INCDIR($cf_cv_curses_dir/include)
3334 CF_ADD_LIBDIR($cf_cv_curses_dir/lib)
3338 dnl ---------------------------------------------------------------------------
3339 dnl CF_WITH_DBMALLOC version: 7 updated: 2010/06/21 17:26:47
3340 dnl ----------------
3341 dnl Configure-option for dbmalloc. The optional parameter is used to override
3342 dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
3343 AC_DEFUN([CF_WITH_DBMALLOC],[
3344 CF_NO_LEAKS_OPTION(dbmalloc,
3345 [ --with-dbmalloc test: use Conor Cahill's dbmalloc library],
3348 if test "$with_dbmalloc" = yes ; then
3349 AC_CHECK_HEADER(dbmalloc.h,
3350 [AC_CHECK_LIB(dbmalloc,[debug_malloc]ifelse([$1],,[],[,$1]))])
3353 dnl ---------------------------------------------------------------------------
3354 dnl CF_WITH_DMALLOC version: 7 updated: 2010/06/21 17:26:47
3356 dnl Configure-option for dmalloc. The optional parameter is used to override
3357 dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
3358 AC_DEFUN([CF_WITH_DMALLOC],[
3359 CF_NO_LEAKS_OPTION(dmalloc,
3360 [ --with-dmalloc test: use Gray Watson's dmalloc library],
3363 if test "$with_dmalloc" = yes ; then
3364 AC_CHECK_HEADER(dmalloc.h,
3365 [AC_CHECK_LIB(dmalloc,[dmalloc_debug]ifelse([$1],,[],[,$1]))])
3368 dnl ---------------------------------------------------------------------------
3369 dnl CF_WITH_NCURSES_ETC version: 5 updated: 2016/02/20 19:23:20
3370 dnl -------------------
3371 dnl Use this macro for programs which use any variant of "curses", e.g.,
3372 dnl "ncurses", and "PDCurses". Programs that can use curses and some unrelated
3373 dnl library (such as slang) should use a "--with-screen=XXX" option.
3375 dnl This does not use AC_DEFUN, because that would tell autoconf to run each
3376 dnl of the macros inside this one - before this macro.
3377 define([CF_WITH_NCURSES_ETC],[
3382 AC_MSG_CHECKING(for specified curses library type)
3384 [ --with-screen=XXX use specified curses-libraries],
3385 [cf_cv_screen=$withval],[
3387 AC_ARG_WITH(ncursesw,
3388 [ --with-ncursesw use wide ncurses-libraries],
3389 [cf_cv_screen=ncursesw],[
3391 AC_ARG_WITH(ncurses,
3392 [ --with-ncurses use ncurses-libraries],
3393 [cf_cv_screen=ncurses],[
3395 AC_ARG_WITH(pdcurses,
3396 [ --with-pdcurses compile/link with pdcurses X11 library],
3397 [cf_cv_screen=pdcurses],[
3399 AC_ARG_WITH(curses-colr,
3400 [ --with-curses-colr compile/link with HPUX 10.x color-curses],
3401 [cf_cv_screen=curses_colr],[
3403 AC_ARG_WITH(curses-5lib,
3404 [ --with-curses-5lib compile/link with SunOS 5lib curses],
3405 [cf_cv_screen=curses_5lib])])])])])])
3407 AC_MSG_RESULT($cf_cv_screen)
3409 case $cf_cv_screen in
3415 CF_NCURSES_CONFIG($cf_cv_screen)
3418 CF_NCURSES_CONFIG($cf_cv_screen)
3424 AC_MSG_ERROR(unexpected screen-value: $cf_cv_screen)
3428 CF_NCURSES_PTHREADS($cf_cv_screen)
3431 dnl ---------------------------------------------------------------------------
3432 dnl CF_WITH_VALGRIND version: 1 updated: 2006/12/14 18:00:21
3433 dnl ----------------
3434 AC_DEFUN([CF_WITH_VALGRIND],[
3435 CF_NO_LEAKS_OPTION(valgrind,
3436 [ --with-valgrind test: use valgrind],
3439 dnl ---------------------------------------------------------------------------
3440 dnl CF_XOPEN_CURSES version: 13 updated: 2015/12/12 20:59:52
3442 dnl Test if we should define X/Open source for curses, needed on Digital Unix
3443 dnl 4.x, to see the extended functions, but breaks on IRIX 6.x.
3445 dnl The getbegyx() check is needed for HPUX, which omits legacy macros such
3446 dnl as getbegy(). The latter is better design, but the former is standard.
3447 AC_DEFUN([CF_XOPEN_CURSES],
3449 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
3450 AC_CACHE_CHECK(definition to turn on extended curses functions,cf_cv_need_xopen_extension,[
3451 cf_cv_need_xopen_extension=unknown
3454 #include <${cf_cv_ncurses_header:-curses.h}>],[
3455 #if defined(NCURSES_VERSION_PATCH)
3456 #if (NCURSES_VERSION_PATCH < 20100501) && (NCURSES_VERSION_PATCH >= 20100403)
3460 #ifdef NCURSES_VERSION
3462 int check2 = curs_set((int)sizeof(check));
3464 long x = winnstr(stdscr, "", 0);
3466 getbegyx(stdscr, y1, x1)],
3467 [cf_cv_need_xopen_extension=none],
3469 for cf_try_xopen_extension in _XOPEN_SOURCE_EXTENDED NCURSES_WIDECHAR
3472 #define $cf_try_xopen_extension 1
3474 #include <${cf_cv_ncurses_header:-curses.h}>],[
3475 #ifdef NCURSES_VERSION
3477 int check2 = curs_set((int)sizeof(check));
3479 long x = winnstr(stdscr, "", 0);
3481 getbegyx(stdscr, y1, x1)],
3482 [cf_cv_need_xopen_extension=$cf_try_xopen_extension; break])
3487 case $cf_cv_need_xopen_extension in
3489 CPPFLAGS="$CPPFLAGS -D$cf_cv_need_xopen_extension"
3494 dnl ---------------------------------------------------------------------------
3495 dnl CF_XOPEN_SOURCE version: 52 updated: 2016/08/27 12:21:42
3497 dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
3498 dnl or adapt to the vendor's definitions to get equivalent functionality,
3499 dnl without losing the common non-POSIX features.
3502 dnl $1 is the nominal value for _XOPEN_SOURCE
3503 dnl $2 is the nominal value for _POSIX_C_SOURCE
3504 AC_DEFUN([CF_XOPEN_SOURCE],[
3505 AC_REQUIRE([AC_CANONICAL_HOST])
3507 cf_XOPEN_SOURCE=ifelse([$1],,500,[$1])
3508 cf_POSIX_C_SOURCE=ifelse([$2],,199506L,[$2])
3513 cf_xopen_source="-D_ALL_SOURCE"
3519 cf_xopen_source="-D_APPLE_C_SOURCE"
3522 cf_xopen_source="-D_DARWIN_C_SOURCE"
3525 (freebsd*|dragonfly*)
3526 # 5.x headers associate
3527 # _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L
3528 # _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L
3529 cf_POSIX_C_SOURCE=200112L
3531 cf_xopen_source="-D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
3534 cf_xopen_source="-D_HPUX_SOURCE -D_XOPEN_SOURCE=500"
3537 cf_xopen_source="-D_HPUX_SOURCE"
3540 cf_xopen_source="-D_SGI_SOURCE"
3543 (linux*|uclinux*|gnu*|mint*|k*bsd*-gnu|cygwin)
3547 cf_xopen_source="-D_NETBSD_SOURCE" # POSIX.1-2001 features are ifdef'd with this...
3550 # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <sys/select.h> and other headers which use u_int / u_short types
3552 CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
3555 cf_xopen_source="-D_NETBSD_SOURCE" # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
3558 # setting _XOPEN_SOURCE lower than 500 breaks g++ compile with wchar.h, needed for ncursesw
3559 cf_xopen_source="-D_BSD_SOURCE"
3563 # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
3566 cf_xopen_source="-D_OSF_SOURCE"
3569 cf_xopen_source="-D_QNX_SOURCE"
3572 # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
3575 cf_xopen_source="-D__EXTENSIONS__"
3576 cf_cv_xopen_source=broken
3578 (sysv4.2uw2.*) # Novell/SCO UnixWare 2.x (tested on 2.1.2)
3584 CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
3588 if test -n "$cf_xopen_source" ; then
3589 CF_ADD_CFLAGS($cf_xopen_source,true)
3592 dnl In anything but the default case, we may have system-specific setting
3593 dnl which is still not guaranteed to provide all of the entrypoints that
3594 dnl _XOPEN_SOURCE would yield.
3595 if test -n "$cf_XOPEN_SOURCE" && test -z "$cf_cv_xopen_source" ; then
3596 AC_MSG_CHECKING(if _XOPEN_SOURCE really is set)
3597 AC_TRY_COMPILE([#include <stdlib.h>],[
3598 #ifndef _XOPEN_SOURCE
3601 [cf_XOPEN_SOURCE_set=yes],
3602 [cf_XOPEN_SOURCE_set=no])
3603 AC_MSG_RESULT($cf_XOPEN_SOURCE_set)
3604 if test $cf_XOPEN_SOURCE_set = yes
3606 AC_TRY_COMPILE([#include <stdlib.h>],[
3607 #if (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE
3610 [cf_XOPEN_SOURCE_set_ok=yes],
3611 [cf_XOPEN_SOURCE_set_ok=no])
3612 if test $cf_XOPEN_SOURCE_set_ok = no
3614 AC_MSG_WARN(_XOPEN_SOURCE is lower than requested)
3621 dnl ---------------------------------------------------------------------------
3622 dnl CF_X_ATHENA version: 23 updated: 2015/04/12 15:39:00
3624 dnl Check for Xaw (Athena) libraries
3626 dnl Sets $cf_x_athena according to the flavor of Xaw which is used.
3627 AC_DEFUN([CF_X_ATHENA],
3629 cf_x_athena=${cf_x_athena:-Xaw}
3631 AC_MSG_CHECKING(if you want to link with Xaw 3d library)
3634 [ --with-Xaw3d link with Xaw 3d library])
3635 if test "$withval" = yes ; then
3642 AC_MSG_CHECKING(if you want to link with Xaw 3d xft library)
3644 AC_ARG_WITH(Xaw3dxft,
3645 [ --with-Xaw3dxft link with Xaw 3d xft library])
3646 if test "$withval" = yes ; then
3647 cf_x_athena=Xaw3dxft
3653 AC_MSG_CHECKING(if you want to link with neXT Athena library)
3656 [ --with-neXtaw link with neXT Athena library])
3657 if test "$withval" = yes ; then
3664 AC_MSG_CHECKING(if you want to link with Athena-Plus library)
3666 AC_ARG_WITH(XawPlus,
3667 [ --with-XawPlus link with Athena-Plus library])
3668 if test "$withval" = yes ; then
3677 if test "$PKG_CONFIG" != none ; then
3679 test "$cf_x_athena" = Xaw && cf_athena_list="xaw8 xaw7 xaw6"
3680 for cf_athena_pkg in \
3683 ${cf_x_athena}-devel \
3685 lib${cf_x_athena}-devel
3687 CF_TRY_PKG_CONFIG($cf_athena_pkg,[
3688 cf_x_athena_lib="$cf_pkgconfig_libs"
3689 CF_UPPER(cf_x_athena_LIBS,HAVE_LIB_$cf_x_athena)
3690 AC_DEFINE_UNQUOTED($cf_x_athena_LIBS)
3694 AC_CACHE_CHECK(for usable $cf_x_athena/Xmu package,cf_cv_xaw_compat,[
3696 #include <X11/Xmu/CharSet.h>
3698 int check = XmuCompareISOLatin1("big", "small")
3699 ],[cf_cv_xaw_compat=yes],[cf_cv_xaw_compat=no])])
3701 if test "$cf_cv_xaw_compat" = no
3703 # workaround for broken ".pc" files...
3704 case "$cf_x_athena_lib" in
3708 CF_VERBOSE(work around broken package)
3710 cf_first_lib=`echo "$cf_save_xmu" | sed -e 's/^[ ][ ]*//' -e 's/ .*//'`
3711 CF_TRY_PKG_CONFIG(xmu,[
3713 CF_ADD_LIB_AFTER($cf_first_lib,$cf_pkgconfig_libs)
3715 CF_ADD_LIB_AFTER($cf_first_lib,-lXmu)
3726 if test -z "$cf_x_athena_lib" ; then
3729 CF_X_ATHENA_CPPFLAGS($cf_x_athena)
3730 CF_X_ATHENA_LIBS($cf_x_athena)
3733 dnl ---------------------------------------------------------------------------
3734 dnl CF_X_ATHENA_CPPFLAGS version: 5 updated: 2010/05/26 17:35:30
3735 dnl --------------------
3736 dnl Normally invoked by CF_X_ATHENA, with $1 set to the appropriate flavor of
3737 dnl the Athena widgets, e.g., Xaw, Xaw3d, neXtaw.
3738 AC_DEFUN([CF_X_ATHENA_CPPFLAGS],
3740 cf_x_athena_root=ifelse([$1],,Xaw,[$1])
3743 for cf_path in default \
3744 /usr/contrib/X11R6 \
3745 /usr/contrib/X11R5 \
3749 if test -z "$cf_x_athena_inc" ; then
3751 cf_test=X11/$cf_x_athena_root/SimpleMenu.h
3752 if test $cf_path != default ; then
3753 CPPFLAGS="$cf_save -I$cf_path/include"
3754 AC_MSG_CHECKING(for $cf_test in $cf_path)
3756 AC_MSG_CHECKING(for $cf_test)
3759 #include <X11/Intrinsic.h>
3760 #include <$cf_test>],[],
3763 AC_MSG_RESULT($cf_result)
3764 if test "$cf_result" = yes ; then
3765 cf_x_athena_inc=$cf_path
3773 if test -z "$cf_x_athena_inc" ; then
3775 [Unable to successfully find Athena header files with test program])
3776 elif test "$cf_x_athena_inc" != default ; then
3777 CPPFLAGS="$CPPFLAGS -I$cf_x_athena_inc"
3780 dnl ---------------------------------------------------------------------------
3781 dnl CF_X_ATHENA_LIBS version: 12 updated: 2011/07/17 19:55:02
3782 dnl ----------------
3783 dnl Normally invoked by CF_X_ATHENA, with $1 set to the appropriate flavor of
3784 dnl the Athena widgets, e.g., Xaw, Xaw3d, neXtaw.
3785 AC_DEFUN([CF_X_ATHENA_LIBS],
3786 [AC_REQUIRE([CF_X_TOOLKIT])
3787 cf_x_athena_root=ifelse([$1],,Xaw,[$1])
3790 for cf_path in default \
3791 /usr/contrib/X11R6 \
3792 /usr/contrib/X11R5 \
3797 ${cf_x_athena_root} \
3798 ${cf_x_athena_root}7 \
3799 ${cf_x_athena_root}6
3803 "-l$cf_lib -lXpm -lXmu" \
3804 "-l${cf_lib}_s -lXmu_s"
3806 if test -z "$cf_x_athena_lib" ; then
3808 cf_test=XawSimpleMenuAddGlobalActions
3809 if test $cf_path != default ; then
3810 CF_ADD_LIBS(-L$cf_path/lib $cf_libs)
3811 AC_MSG_CHECKING(for $cf_libs in $cf_path)
3813 CF_ADD_LIBS($cf_libs)
3814 AC_MSG_CHECKING(for $cf_test in $cf_libs)
3817 #include <X11/Intrinsic.h>
3818 #include <X11/$cf_x_athena_root/SimpleMenu.h>
3820 $cf_test((XtAppContext) 0)],
3823 AC_MSG_RESULT($cf_result)
3824 if test "$cf_result" = yes ; then
3825 cf_x_athena_lib="$cf_libs"
3831 test -n "$cf_x_athena_lib" && break
3835 if test -z "$cf_x_athena_lib" ; then
3837 [Unable to successfully link Athena library (-l$cf_x_athena_root) with test program])
3840 CF_UPPER(cf_x_athena_LIBS,HAVE_LIB_$cf_x_athena)
3841 AC_DEFINE_UNQUOTED($cf_x_athena_LIBS)
3843 dnl ---------------------------------------------------------------------------
3844 dnl CF_X_EXT version: 3 updated: 2010/06/02 05:03:05
3846 AC_DEFUN([CF_X_EXT],[
3847 CF_TRY_PKG_CONFIG(Xext,,[
3848 AC_CHECK_LIB(Xext,XextCreateExtension,
3849 [CF_ADD_LIB(Xext)])])
3851 dnl ---------------------------------------------------------------------------
3852 dnl CF_X_TOOLKIT version: 23 updated: 2015/04/12 15:39:00
3854 dnl Check for X Toolkit libraries
3855 AC_DEFUN([CF_X_TOOLKIT],
3857 AC_REQUIRE([AC_PATH_XTRA])
3858 AC_REQUIRE([CF_CHECK_CACHE])
3860 # OSX is schizoid about who owns /usr/X11 (old) versus /opt/X11 (new), and (and
3861 # in some cases has installed dummy files in the former, other cases replaced
3862 # it with a link to the new location). This complicates the configure script.
3863 # Check for that pitfall, and recover using pkg-config
3865 # If none of these are set, the configuration is almost certainly broken.
3866 if test -z "${X_CFLAGS}${X_PRE_LIBS}${X_LIBS}${X_EXTRA_LIBS}"
3868 CF_TRY_PKG_CONFIG(x11,,[AC_MSG_WARN(unable to find X11 library)])
3869 CF_TRY_PKG_CONFIG(ice,,[AC_MSG_WARN(unable to find ICE library)])
3870 CF_TRY_PKG_CONFIG(sm,,[AC_MSG_WARN(unable to find SM library)])
3871 CF_TRY_PKG_CONFIG(xt,,[AC_MSG_WARN(unable to find Xt library)])
3876 CF_TRY_PKG_CONFIG(xt,[
3882 # we have an "xt" package, but it may omit Xt's dependency on X11
3883 AC_CACHE_CHECK(for usable X dependency,cf_cv_xt_x11_compat,[
3885 #include <X11/Xlib.h>
3887 int rc1 = XDrawLine((Display*) 0, (Drawable) 0, (GC) 0, 0, 0, 0, 0);
3888 int rc2 = XClearWindow((Display*) 0, (Window) 0);
3889 int rc3 = XMoveWindow((Display*) 0, (Window) 0, 0, 0);
3890 int rc4 = XMoveResizeWindow((Display*)0, (Window)0, 0, 0, 0, 0);
3891 ],[cf_cv_xt_x11_compat=yes],[cf_cv_xt_x11_compat=no])])
3892 if test "$cf_cv_xt_x11_compat" = no
3894 CF_VERBOSE(work around broken X11 dependency)
3895 # 2010/11/19 - good enough until a working Xt on Xcb is delivered.
3896 CF_TRY_PKG_CONFIG(x11,,[CF_ADD_LIB_AFTER(-lXt,-lX11)])
3901 AC_CACHE_CHECK(for usable X Toolkit package,cf_cv_xt_ice_compat,[
3903 #include <X11/Shell.h>
3904 ],[int num = IceConnectionNumber(0)
3905 ],[cf_cv_xt_ice_compat=yes],[cf_cv_xt_ice_compat=no])])
3907 if test "$cf_cv_xt_ice_compat" = no
3909 # workaround for broken ".pc" files used for X Toolkit.
3910 case "x$X_PRE_LIBS" in
3916 CF_VERBOSE(work around broken ICE dependency)
3917 CF_TRY_PKG_CONFIG(ice,
3918 [CF_TRY_PKG_CONFIG(sm)],
3919 [CF_ADD_LIB_AFTER(-lXt,$X_PRE_LIBS)])
3929 LDFLAGS="$X_LIBS $LDFLAGS"
3930 CF_CHECK_CFLAGS($X_CFLAGS)
3932 AC_CHECK_FUNC(XOpenDisplay,,[
3933 AC_CHECK_LIB(X11,XOpenDisplay,
3935 [$X_PRE_LIBS $LIBS $X_EXTRA_LIBS])])
3937 AC_CHECK_FUNC(XtAppInitialize,,[
3938 AC_CHECK_LIB(Xt, XtAppInitialize,
3939 [AC_DEFINE(HAVE_LIBXT,1,[Define to 1 if we can compile with the Xt library])
3941 LIBS="-lXt $X_PRE_LIBS $LIBS $X_EXTRA_LIBS"],,
3942 [$X_PRE_LIBS $LIBS $X_EXTRA_LIBS])])
3945 if test $cf_have_X_LIBS = no ; then
3947 [Unable to successfully link X Toolkit library (-lXt) with
3948 test program. You will have to check and add the proper libraries by hand
3952 dnl ---------------------------------------------------------------------------
3953 dnl CF__CURSES_HEAD version: 2 updated: 2010/10/23 15:54:49
3955 dnl Define a reusable chunk which includes <curses.h> and <term.h> when they
3956 dnl are both available.
3957 define([CF__CURSES_HEAD],[
3959 #include <xcurses.h>
3960 char * XCursesProgramName = "test";
3962 #include <${cf_cv_ncurses_header:-curses.h}>
3963 #if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H)
3964 #include <ncursesw/term.h>
3965 #elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H)
3966 #include <ncurses/term.h>
3967 #elif defined(HAVE_TERM_H)