1 dnl***************************************************************************
2 dnl Copyright (c) 2003-2016,2017 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.138 2017/02/26 00:37:04 tom Exp $
31 dnl Author: Thomas E. Dickey
33 dnl Macros used in NCURSES test programs auto-configuration script.
35 dnl These macros are maintained separately from NCURSES. The copyright on
36 dnl this file applies to the aggregation of macros and does not affect use of
37 dnl these macros in other applications.
39 dnl See http://invisible-island.net/autoconf/ for additional information.
41 dnl ---------------------------------------------------------------------------
42 dnl ---------------------------------------------------------------------------
43 dnl AM_LANGINFO_CODESET version: 4 updated: 2015/04/18 08:56:57
44 dnl -------------------
45 dnl Inserted as requested by gettext 0.10.40
46 dnl File from /usr/share/aclocal
48 dnl ====================
51 dnl From Bruno Haible.
52 AC_DEFUN([AM_LANGINFO_CODESET],
54 AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset,
55 [AC_TRY_LINK([#include <langinfo.h>],
56 [char* cs = nl_langinfo(CODESET);],
57 am_cv_langinfo_codeset=yes,
58 am_cv_langinfo_codeset=no)
60 if test $am_cv_langinfo_codeset = yes; then
61 AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
62 [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
65 dnl ---------------------------------------------------------------------------
66 dnl CF_ACVERSION_CHECK version: 5 updated: 2014/06/04 19:11:49
67 dnl ------------------
68 dnl Conditionally generate script according to whether we're using a given autoconf.
70 dnl $1 = version to compare against
71 dnl $2 = code to use if AC_ACVERSION is at least as high as $1.
72 dnl $3 = code to use if AC_ACVERSION is older than $1.
73 define([CF_ACVERSION_CHECK],
75 ifdef([AC_ACVERSION], ,[ifdef([AC_AUTOCONF_VERSION],[m4_copy([AC_AUTOCONF_VERSION],[AC_ACVERSION])],[m4_copy([m4_PACKAGE_VERSION],[AC_ACVERSION])])])dnl
76 ifdef([m4_version_compare],
77 [m4_if(m4_version_compare(m4_defn([AC_ACVERSION]), [$1]), -1, [$3], [$2])],
78 [CF_ACVERSION_COMPARE(
79 AC_PREREQ_CANON(AC_PREREQ_SPLIT([$1])),
80 AC_PREREQ_CANON(AC_PREREQ_SPLIT(AC_ACVERSION)), AC_ACVERSION, [$2], [$3])])])dnl
81 dnl ---------------------------------------------------------------------------
82 dnl CF_ACVERSION_COMPARE version: 3 updated: 2012/10/03 18:39:53
83 dnl --------------------
84 dnl CF_ACVERSION_COMPARE(MAJOR1, MINOR1, TERNARY1,
85 dnl MAJOR2, MINOR2, TERNARY2,
86 dnl PRINTABLE2, not FOUND, FOUND)
87 define([CF_ACVERSION_COMPARE],
88 [ifelse(builtin([eval], [$2 < $5]), 1,
89 [ifelse([$8], , ,[$8])],
90 [ifelse([$9], , ,[$9])])])dnl
91 dnl ---------------------------------------------------------------------------
92 dnl CF_ADD_CFLAGS version: 13 updated: 2017/02/25 18:57:40
94 dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS
95 dnl The second parameter if given makes this macro verbose.
97 dnl Put any preprocessor definitions that use quoted strings in $EXTRA_CPPFLAGS,
98 dnl to simplify use of $CPPFLAGS in compiler checks, etc., that are easily
99 dnl confused by the quotes (which require backslashes to keep them usable).
100 AC_DEFUN([CF_ADD_CFLAGS],
105 cf_new_extra_cppflags=
107 for cf_add_cflags in $1
109 case $cf_fix_cppflags in
111 case $cf_add_cflags in
112 (-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C)
113 case $cf_add_cflags in
115 cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[[^=]]*='\''\"[[^"]]*//'`
117 test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
118 && test -z "${cf_tst_cflags}" \
119 && cf_fix_cppflags=yes
121 if test $cf_fix_cppflags = yes ; then
122 CF_APPEND_TEXT(cf_new_extra_cppflags,$cf_add_cflags)
124 elif test "${cf_tst_cflags}" = "\"'" ; then
125 CF_APPEND_TEXT(cf_new_extra_cppflags,$cf_add_cflags)
134 case $cf_add_cflags in
136 cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
137 CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,$cf_tst_cppflags)
140 CF_APPEND_TEXT(cf_new_cppflags,$cf_add_cflags)
145 CF_APPEND_TEXT(cf_new_cflags,$cf_add_cflags)
150 CF_APPEND_TEXT(cf_new_extra_cppflags,$cf_add_cflags)
152 cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[[^"]]*"'\''//'`
154 test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
155 && test -z "${cf_tst_cflags}" \
156 && cf_fix_cppflags=no
161 if test -n "$cf_new_cflags" ; then
162 ifelse([$2],,,[CF_VERBOSE(add to \$CFLAGS $cf_new_cflags)])
163 CF_APPEND_TEXT(CFLAGS,$cf_new_cflags)
166 if test -n "$cf_new_cppflags" ; then
167 ifelse([$2],,,[CF_VERBOSE(add to \$CPPFLAGS $cf_new_cppflags)])
168 CF_APPEND_TEXT(CPPFLAGS,$cf_new_cppflags)
171 if test -n "$cf_new_extra_cppflags" ; then
172 ifelse([$2],,,[CF_VERBOSE(add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags)])
173 CF_APPEND_TEXT(EXTRA_CPPFLAGS,$cf_new_extra_cppflags)
176 AC_SUBST(EXTRA_CPPFLAGS)
179 dnl ---------------------------------------------------------------------------
180 dnl CF_ADD_INCDIR version: 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_APPEND_TEXT version: 1 updated: 2017/02/25 18:58:55
346 dnl use this macro for appending text without introducing an extra blank at
348 define([CF_APPEND_TEXT],
350 test -n "[$]$1" && $1="[$]$1 "
353 dnl ---------------------------------------------------------------------------
354 dnl CF_ARG_DISABLE version: 3 updated: 1999/03/30 17:24:31
356 dnl Allow user to disable a normally-on option.
357 AC_DEFUN([CF_ARG_DISABLE],
358 [CF_ARG_OPTION($1,[$2],[$3],[$4],yes)])dnl
359 dnl ---------------------------------------------------------------------------
360 dnl CF_ARG_ENABLE version: 3 updated: 1999/03/30 17:24:31
362 dnl Allow user to enable a normally-off option.
363 AC_DEFUN([CF_ARG_ENABLE],
364 [CF_ARG_OPTION($1,[$2],[$3],[$4],no)])dnl
365 dnl ---------------------------------------------------------------------------
366 dnl CF_ARG_OPTION version: 5 updated: 2015/05/10 19:52:14
368 dnl Restricted form of AC_ARG_ENABLE that ensures user doesn't give bogus
374 dnl $3 = action to perform if option is not default
375 dnl $4 = action if perform if option is default
376 dnl $5 = default option value (either 'yes' or 'no')
377 AC_DEFUN([CF_ARG_OPTION],
378 [AC_ARG_ENABLE([$1],[$2],[test "$enableval" != ifelse([$5],no,yes,no) && enableval=ifelse([$5],no,no,yes)
379 if test "$enableval" != "$5" ; then
381 ,[ $3]) ifelse([$4],,,[
384 fi],[enableval=$5 ifelse([$4],,,[
388 dnl ---------------------------------------------------------------------------
389 dnl CF_CC_ENV_FLAGS version: 7 updated: 2017/02/25 18:57:40
391 dnl Check for user's environment-breakage by stuffing CFLAGS/CPPFLAGS content
392 dnl into CC. This will not help with broken scripts that wrap the compiler
393 dnl with options, but eliminates a more common category of user confusion.
395 dnl In particular, it addresses the problem of being able to run the C
396 dnl preprocessor in a consistent manner.
398 dnl Caveat: this also disallows blanks in the pathname for the compiler, but
399 dnl the nuisance of having inconsistent settings for compiler and preprocessor
400 dnl outweighs that limitation.
401 AC_DEFUN([CF_CC_ENV_FLAGS],
403 # This should have been defined by AC_PROG_CC
406 AC_MSG_CHECKING(\$CC variable)
409 AC_MSG_RESULT(broken)
410 AC_MSG_WARN(your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options)
412 cf_prog=`echo "$CC" | sed -e 's/ / /g' -e 's/[[ ]]* / /g' -e 's/[[ ]]*[[ ]]-[[^ ]].*//'`
413 cf_flags=`echo "$CC" | ${AWK:-awk} -v prog="$cf_prog" '{ printf("%s", substr([$]0,1+length(prog))); }'`
415 for cf_arg in $cf_flags
419 CF_ADD_CFLAGS($cf_arg)
426 CF_VERBOSE(resulting CC: '$CC')
427 CF_VERBOSE(resulting CFLAGS: '$CFLAGS')
428 CF_VERBOSE(resulting CPPFLAGS: '$CPPFLAGS')
435 dnl ---------------------------------------------------------------------------
436 dnl CF_CHECK_CACHE version: 12 updated: 2012/10/02 20:55:03
438 dnl Check if we're accidentally using a cache from a different machine.
439 dnl Derive the system name, as a check for reusing the autoconf cache.
441 dnl If we've packaged config.guess and config.sub, run that (since it does a
442 dnl better job than uname). Normally we'll use AC_CANONICAL_HOST, but allow
443 dnl an extra parameter that we may override, e.g., for AC_CANONICAL_SYSTEM
444 dnl which is useful in cross-compiles.
446 dnl Note: we would use $ac_config_sub, but that is one of the places where
447 dnl autoconf 2.5x broke compatibility with autoconf 2.13
448 AC_DEFUN([CF_CHECK_CACHE],
450 if test -f $srcdir/config.guess || test -f $ac_aux_dir/config.guess ; then
451 ifelse([$1],,[AC_CANONICAL_HOST],[$1])
452 system_name="$host_os"
454 system_name="`(uname -s -r) 2>/dev/null`"
455 if test -z "$system_name" ; then
456 system_name="`(hostname) 2>/dev/null`"
459 test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name",[Define to the system name.])
460 AC_CACHE_VAL(cf_cv_system_name,[cf_cv_system_name="$system_name"])
462 test -z "$system_name" && system_name="$cf_cv_system_name"
463 test -n "$cf_cv_system_name" && AC_MSG_RESULT(Configuring for $cf_cv_system_name)
465 if test ".$system_name" != ".$cf_cv_system_name" ; then
466 AC_MSG_RESULT(Cached system name ($system_name) does not agree with actual ($cf_cv_system_name))
467 AC_MSG_ERROR("Please remove config.cache and try again.")
470 dnl ---------------------------------------------------------------------------
471 dnl CF_CHECK_CFLAGS version: 3 updated: 2014/07/22 05:32:57
473 dnl Conditionally add to $CFLAGS and $CPPFLAGS values which are derived from
474 dnl a build-configuration such as imake. These have the pitfall that they
475 dnl often contain compiler-specific options which we cannot use, mixed with
476 dnl preprocessor options that we usually can.
477 AC_DEFUN([CF_CHECK_CFLAGS],
479 CF_VERBOSE(checking additions to CFLAGS)
480 cf_check_cflags="$CFLAGS"
481 cf_check_cppflags="$CPPFLAGS"
482 CF_ADD_CFLAGS($1,yes)
483 if test "x$cf_check_cflags" != "x$CFLAGS" ; then
484 AC_TRY_LINK([#include <stdio.h>],[printf("Hello world");],,
485 [CF_VERBOSE(test-compile failed. Undoing change to \$CFLAGS)
486 if test "x$cf_check_cppflags" != "x$CPPFLAGS" ; then
487 CF_VERBOSE(but keeping change to \$CPPFLAGS)
489 CFLAGS="$cf_check_flags"])
492 dnl ---------------------------------------------------------------------------
493 dnl CF_CHECK_CURSES_LIB version: 1 updated: 2015/04/25 20:53:11
494 dnl -------------------
495 dnl $1 = nominal library name, used also for header lookup
496 dnl $2 = suffix to append to library name
497 dnl $3 = function to check for using AC_CHECK_LIB
498 AC_DEFUN([CF_CHECK_CURSES_LIB],
500 AC_CHECK_LIB($1$2,$3,[
501 CF_UPPER(cf_upper,have_lib$1)
503 AC_DEFINE_UNQUOTED($cf_upper,1)])
505 dnl ---------------------------------------------------------------------------
506 dnl CF_CLANG_COMPILER version: 2 updated: 2013/11/19 19:23:35
507 dnl -----------------
508 dnl Check if the given compiler is really clang. clang's C driver defines
509 dnl __GNUC__ (fooling the configure script into setting $GCC to yes) but does
510 dnl not ignore some gcc options.
512 dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
513 dnl ensure that it is not mistaken for gcc/g++. It is normally invoked from
514 dnl the wrappers for gcc and g++ warnings.
516 dnl $1 = GCC (default) or GXX
517 dnl $2 = CLANG_COMPILER (default)
518 dnl $3 = CFLAGS (default) or CXXFLAGS
519 AC_DEFUN([CF_CLANG_COMPILER],[
520 ifelse([$2],,CLANG_COMPILER,[$2])=no
522 if test "$ifelse([$1],,[$1],GCC)" = yes ; then
523 AC_MSG_CHECKING(if this is really Clang ifelse([$1],GXX,C++,C) compiler)
524 cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
525 ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -Qunused-arguments"
531 ],[ifelse([$2],,CLANG_COMPILER,[$2])=yes
532 cf_save_CFLAGS="$cf_save_CFLAGS -Qunused-arguments"
534 ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
535 AC_MSG_RESULT($ifelse([$2],,CLANG_COMPILER,[$2]))
538 dnl ---------------------------------------------------------------------------
539 dnl CF_CURSES_ACS_MAP version: 7 updated: 2012/10/06 16:39:58
540 dnl -----------------
541 dnl Check for likely values of acs_map[]:
542 AC_DEFUN([CF_CURSES_ACS_MAP],
544 AC_REQUIRE([CF_NCURSES_WRAP_PREFIX])dnl
545 AC_CACHE_CHECK(for alternate character set array, cf_cv_curses_acs_map,[
546 cf_cv_curses_acs_map=unknown
547 for name in acs_map _acs_map __acs_map ${NCURSES_WRAP_PREFIX}acs_map
550 #include <${cf_cv_ncurses_header:-curses.h}>
552 $name['k'] = ACS_PLUS
553 ],[cf_cv_curses_acs_map=$name; break])
557 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_])
559 dnl ---------------------------------------------------------------------------
560 dnl CF_CURSES_CHECK_DATA version: 5 updated: 2014/07/19 18:41:17
561 dnl --------------------
562 dnl Check if curses.h defines the given data/variable.
563 dnl Use this after CF_NCURSES_CONFIG or CF_CURSES_CONFIG.
564 AC_DEFUN([CF_CURSES_CHECK_DATA],
566 AC_MSG_CHECKING(for data $1 declaration in ${cf_cv_ncurses_header:-curses.h})
568 AC_TRY_COMPILE(CF__CURSES_HEAD,[
570 ],cf_result=yes,cf_result=no)
571 AC_MSG_RESULT($cf_result)
573 if test $cf_result = yes ; then
574 CF_UPPER(cf_result,have_curses_data_$1)
575 AC_DEFINE_UNQUOTED($cf_result)
577 AC_MSG_CHECKING(for data $1 in library)
578 # BSD linkers insist on making weak linkage, but resolve at runtime.
579 AC_TRY_RUN(CF__CURSES_HEAD
585 fprintf(stderr, "testing linkage of $1:%p\n", foo);
586 ${cf_cv_main_return:-return}(foo == 0);
587 }],[cf_result=yes],[cf_result=no],[
589 AC_TRY_LINK(CF__CURSES_HEAD
593 fprintf(stderr, "testing linkage of $1:%p\n", foo);
594 ${cf_cv_main_return:-return}(foo == 0);
596 ],[cf_result=yes],[cf_result=no])
598 AC_MSG_RESULT($cf_result)
599 if test $cf_result = yes ; then
600 CF_UPPER(cf_result,decl_curses_data_$1)
601 AC_DEFINE_UNQUOTED($cf_result)
605 dnl ---------------------------------------------------------------------------
606 dnl CF_CURSES_CHECK_TYPE version: 4 updated: 2012/10/06 16:39:58
607 dnl --------------------
608 dnl Check if curses.h defines the given type
609 AC_DEFUN([CF_CURSES_CHECK_TYPE],
611 AC_MSG_CHECKING(for type $1 in ${cf_cv_ncurses_header:-curses.h})
613 #ifndef _XOPEN_SOURCE_EXTENDED
614 #define _XOPEN_SOURCE_EXTENDED
616 #include <${cf_cv_ncurses_header:-curses.h}>],[
618 ],cf_result=yes,cf_result=no)
619 AC_MSG_RESULT($cf_result)
620 if test $cf_result = yes ; then
621 CF_UPPER(cf_result,have_type_$1)
622 AC_DEFINE_UNQUOTED($cf_result,1,[Define to 1 if we have type $1])
624 AC_DEFINE_UNQUOTED($1,$2,[Define to appropriate type if $1 is not declared])
627 dnl ---------------------------------------------------------------------------
628 dnl CF_CURSES_CONFIG version: 2 updated: 2006/10/29 11:06:27
630 dnl Tie together the configure-script macros for curses. It may be ncurses,
631 dnl but unless asked, we do not make a special search for ncurses. However,
632 dnl still check for the ncurses version number, for use in other macros.
633 AC_DEFUN([CF_CURSES_CONFIG],
639 dnl ---------------------------------------------------------------------------
640 dnl CF_CURSES_CPPFLAGS version: 12 updated: 2015/04/15 19:08:48
641 dnl ------------------
642 dnl Look for the curses headers.
643 AC_DEFUN([CF_CURSES_CPPFLAGS],[
645 AC_CACHE_CHECK(for extra include directories,cf_cv_curses_incdir,[
646 cf_cv_curses_incdir=no
649 if test "x$cf_cv_screen" = "xcurses_colr"
651 test -d /usr/include/curses_colr && \
652 cf_cv_curses_incdir="-I/usr/include/curses_colr"
656 if test "x$cf_cv_screen" = "xcurses_5lib"
658 test -d /usr/5lib && \
659 test -d /usr/5include && \
660 cf_cv_curses_incdir="-I/usr/5include"
665 test "$cf_cv_curses_incdir" != no && CPPFLAGS="$CPPFLAGS $cf_cv_curses_incdir"
670 dnl ---------------------------------------------------------------------------
671 dnl CF_CURSES_FUNCS version: 18 updated: 2014/07/19 18:44:41
673 dnl Curses-functions are a little complicated, since a lot of them are macros.
674 AC_DEFUN([CF_CURSES_FUNCS],
676 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
677 AC_REQUIRE([CF_XOPEN_CURSES])
678 AC_REQUIRE([CF_CURSES_TERM_H])
679 AC_REQUIRE([CF_CURSES_UNCTRL_H])
682 CF_UPPER(cf_tr_func,$cf_func)
683 AC_MSG_CHECKING(for ${cf_func})
684 CF_MSG_LOG(${cf_func})
685 AC_CACHE_VAL(cf_cv_func_$cf_func,[
686 eval cf_result='$ac_cv_func_'$cf_func
687 if test ".$cf_result" != ".no"; then
688 AC_TRY_LINK(CF__CURSES_HEAD,
691 long foo = (long)(&${cf_func});
692 fprintf(stderr, "testing linkage of $cf_func:%p\n", foo);
693 if (foo + 1234 > 5678)
694 ${cf_cv_main_return:-return}(foo);
700 eval 'cf_cv_func_'$cf_func'=$cf_result'
702 # use the computed/retrieved cache-value:
703 eval 'cf_result=$cf_cv_func_'$cf_func
704 AC_MSG_RESULT($cf_result)
705 if test $cf_result != no; then
706 AC_DEFINE_UNQUOTED(HAVE_${cf_tr_func})
710 dnl ---------------------------------------------------------------------------
711 dnl CF_CURSES_HEADER version: 5 updated: 2015/04/23 20:35:30
713 dnl Find a "curses" header file, e.g,. "curses.h", or one of the more common
714 dnl variations of ncurses' installs.
716 dnl $1 = ncurses when looking for ncurses, or is empty
717 AC_DEFUN([CF_CURSES_HEADER],[
718 AC_CACHE_CHECK(if we have identified curses headers,cf_cv_ncurses_header,[
719 cf_cv_ncurses_header=none
721 ncurses.h ifelse($1,,,[$1/ncurses.h]) \
722 curses.h ifelse($1,,,[$1/curses.h]) ifelse($1,,[ncurses/ncurses.h ncurses/curses.h])
724 AC_TRY_COMPILE([#include <${cf_header}>],
725 [initscr(); tgoto("?", 0,0)],
726 [cf_cv_ncurses_header=$cf_header; break],[])
730 if test "$cf_cv_ncurses_header" = none ; then
731 AC_MSG_ERROR(No curses header-files found)
734 # cheat, to get the right #define's for HAVE_NCURSES_H, etc.
735 AC_CHECK_HEADERS($cf_cv_ncurses_header)
737 dnl ---------------------------------------------------------------------------
738 dnl CF_CURSES_LIBS version: 39 updated: 2015/05/10 19:52:14
740 dnl Look for the curses libraries. Older curses implementations may require
741 dnl termcap/termlib to be linked as well. Call CF_CURSES_CPPFLAGS first.
742 AC_DEFUN([CF_CURSES_LIBS],[
744 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
745 AC_MSG_CHECKING(if we have identified curses libraries)
746 AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
747 [initscr(); tgoto("?", 0,0)],
750 AC_MSG_RESULT($cf_result)
752 if test "$cf_result" = no ; then
755 AC_CHECK_LIB(mytinfo,tgoto,[CF_ADD_LIBS(-lmytinfo)])
758 # Looking at HPUX 10.20, the Hcurses library is the oldest (1997), cur_colr
759 # next (1998), and xcurses "newer" (2000). There is no header file for
760 # Hcurses; the subdirectory curses_colr has the headers (curses.h and
761 # term.h) for cur_colr
762 if test "x$cf_cv_screen" = "xcurses_colr"
764 AC_CHECK_LIB(cur_colr,initscr,[
765 CF_ADD_LIBS(-lcur_colr)
766 ac_cv_func_initscr=yes
768 AC_CHECK_LIB(Hcurses,initscr,[
769 # HP's header uses __HP_CURSES, but user claims _HP_CURSES.
770 CF_ADD_LIBS(-lHcurses)
771 CPPFLAGS="$CPPFLAGS -D__HP_CURSES -D_HP_CURSES"
772 ac_cv_func_initscr=yes
777 case `arch 2>/dev/null` in
781 CF_ADD_LIBDIR(/lib64)
792 if test "x$cf_cv_screen" = "xcurses_5lib"
794 if test -d /usr/5lib ; then
795 CF_ADD_LIBDIR(/usr/5lib)
796 CF_ADD_LIBS(-lcurses -ltermcap)
799 ac_cv_func_initscr=yes
803 if test ".$ac_cv_func_initscr" != .yes ; then
806 if test ".${cf_cv_ncurses_version:-no}" != .no
808 cf_check_list="ncurses curses cursesX"
810 cf_check_list="cursesX curses ncurses"
813 # Check for library containing tgoto. Do this before curses library
814 # because it may be needed to link the test-case for initscr.
815 if test "x$cf_term_lib" = x
817 AC_CHECK_FUNC(tgoto,[cf_term_lib=predefined],[
818 for cf_term_lib in $cf_check_list otermcap termcap tinfo termlib unknown
820 AC_CHECK_LIB($cf_term_lib,tgoto,[break])
825 # Check for library containing initscr
826 test "$cf_term_lib" != predefined && test "$cf_term_lib" != unknown && LIBS="-l$cf_term_lib $cf_save_LIBS"
827 if test "x$cf_curs_lib" = x
829 for cf_curs_lib in $cf_check_list xcurses jcurses pdcurses unknown
831 AC_CHECK_LIB($cf_curs_lib,initscr,[break])
834 test $cf_curs_lib = unknown && AC_MSG_ERROR(no curses library found)
836 LIBS="-l$cf_curs_lib $cf_save_LIBS"
837 if test "$cf_term_lib" = unknown ; then
838 AC_MSG_CHECKING(if we can link with $cf_curs_lib library)
839 AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
843 AC_MSG_RESULT($cf_result)
844 test $cf_result = no && AC_MSG_ERROR(Cannot link curses library)
845 elif test "$cf_curs_lib" = "$cf_term_lib" ; then
847 elif test "$cf_term_lib" != predefined ; then
848 AC_MSG_CHECKING(if we need both $cf_curs_lib and $cf_term_lib libraries)
849 AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
850 [initscr(); tgoto((char *)0, 0, 0);],
853 LIBS="-l$cf_curs_lib -l$cf_term_lib $cf_save_LIBS"
854 AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
859 AC_MSG_RESULT($cf_result)
865 dnl ---------------------------------------------------------------------------
866 dnl CF_CURSES_TERM_H version: 11 updated: 2015/04/15 19:08:48
868 dnl SVr4 curses should have term.h as well (where it puts the definitions of
869 dnl the low-level interface). This may not be true in old/broken implementations,
870 dnl as well as in misconfigured systems (e.g., gcc configured for Solaris 2.4
871 dnl running with Solaris 2.5.1).
872 AC_DEFUN([CF_CURSES_TERM_H],
874 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
876 AC_CACHE_CHECK(for term.h, cf_cv_term_header,[
878 # If we found <ncurses/curses.h>, look for <ncurses/term.h>, but always look
879 # for <term.h> if we do not find the variant.
881 cf_header_list="term.h ncurses/term.h ncursesw/term.h"
883 case ${cf_cv_ncurses_header:-curses.h} in
885 cf_header_item=`echo ${cf_cv_ncurses_header:-curses.h} | sed -e 's%\..*%%' -e 's%/.*%/%'`term.h
886 cf_header_list="$cf_header_item $cf_header_list"
890 for cf_header in $cf_header_list
893 #include <${cf_cv_ncurses_header:-curses.h}>
894 #include <${cf_header}>],
896 [cf_cv_term_header=$cf_header
898 [cf_cv_term_header=no])
901 case $cf_cv_term_header in
903 # If curses is ncurses, some packagers still mess it up by trying to make
904 # us use GNU termcap. This handles the most common case.
905 for cf_header in ncurses/term.h ncursesw/term.h
908 #include <${cf_cv_ncurses_header:-curses.h}>
909 #ifdef NCURSES_VERSION
910 #include <${cf_header}>
915 [cf_cv_term_header=$cf_header
917 [cf_cv_term_header=no])
923 case $cf_cv_term_header in
925 AC_DEFINE(HAVE_TERM_H,1,[Define to 1 if we have term.h])
928 AC_DEFINE(HAVE_NCURSES_TERM_H,1,[Define to 1 if we have ncurses/term.h])
931 AC_DEFINE(HAVE_NCURSESW_TERM_H,1,[Define to 1 if we have ncursesw/term.h])
935 dnl ---------------------------------------------------------------------------
936 dnl CF_CURSES_UNCTRL_H version: 4 updated: 2015/04/15 19:08:48
937 dnl ------------------
938 dnl Any X/Open curses implementation must have unctrl.h, but ncurses packages
939 dnl may put it in a subdirectory (along with ncurses' other headers, of
940 dnl course). Packages which put the headers in inconsistent locations are
942 AC_DEFUN([CF_CURSES_UNCTRL_H],
944 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
946 AC_CACHE_CHECK(for unctrl.h, cf_cv_unctrl_header,[
948 # If we found <ncurses/curses.h>, look for <ncurses/unctrl.h>, but always look
949 # for <unctrl.h> if we do not find the variant.
951 cf_header_list="unctrl.h ncurses/unctrl.h ncursesw/unctrl.h"
953 case ${cf_cv_ncurses_header:-curses.h} in
955 cf_header_item=`echo ${cf_cv_ncurses_header:-curses.h} | sed -e 's%\..*%%' -e 's%/.*%/%'`unctrl.h
956 cf_header_list="$cf_header_item $cf_header_list"
960 for cf_header in $cf_header_list
963 #include <${cf_cv_ncurses_header:-curses.h}>
964 #include <${cf_header}>],
966 [cf_cv_unctrl_header=$cf_header
968 [cf_cv_unctrl_header=no])
972 case $cf_cv_unctrl_header in
974 AC_MSG_WARN(unctrl.h header not found)
978 case $cf_cv_unctrl_header in
980 AC_DEFINE(HAVE_UNCTRL_H,1,[Define to 1 if we have unctrl.h])
983 AC_DEFINE(HAVE_NCURSES_UNCTRL_H,1,[Define to 1 if we have ncurses/unctrl.h])
986 AC_DEFINE(HAVE_NCURSESW_UNCTRL_H,1,[Define to 1 if we have ncursesw/unctrl.h])
990 dnl ---------------------------------------------------------------------------
991 dnl CF_CURSES_WACS_MAP version: 6 updated: 2012/10/06 08:57:51
992 dnl ------------------
993 dnl Check for likely values of wacs_map[].
994 AC_DEFUN([CF_CURSES_WACS_MAP],
996 AC_CACHE_CHECK(for wide alternate character set array, cf_cv_curses_wacs_map,[
997 cf_cv_curses_wacs_map=unknown
998 for name in wacs_map _wacs_map __wacs_map _nc_wacs _wacs_char
1001 #ifndef _XOPEN_SOURCE_EXTENDED
1002 #define _XOPEN_SOURCE_EXTENDED
1004 #include <${cf_cv_ncurses_header:-curses.h}>],
1005 [void *foo = &($name['k'])],
1006 [cf_cv_curses_wacs_map=$name
1010 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])
1012 dnl ---------------------------------------------------------------------------
1013 dnl CF_CURSES_WACS_SYMBOLS version: 2 updated: 2012/10/06 08:57:51
1014 dnl ----------------------
1015 dnl Do a check to see if the WACS_xxx constants are defined compatibly with
1016 dnl X/Open Curses. In particular, NetBSD's implementation of the WACS_xxx
1017 dnl constants is broken since those constants do not point to cchar_t's.
1018 AC_DEFUN([CF_CURSES_WACS_SYMBOLS],
1020 AC_REQUIRE([CF_CURSES_WACS_MAP])
1022 AC_CACHE_CHECK(for wide alternate character constants, cf_cv_curses_wacs_symbols,[
1023 cf_cv_curses_wacs_symbols=no
1024 if test "$cf_cv_curses_wacs_map" != unknown
1027 #ifndef _XOPEN_SOURCE_EXTENDED
1028 #define _XOPEN_SOURCE_EXTENDED
1030 #include <${cf_cv_ncurses_header:-curses.h}>],
1031 [cchar_t *foo = WACS_PLUS;
1032 $cf_cv_curses_wacs_map['k'] = *WACS_PLUS],
1033 [cf_cv_curses_wacs_symbols=yes])
1036 #ifndef _XOPEN_SOURCE_EXTENDED
1037 #define _XOPEN_SOURCE_EXTENDED
1039 #include <${cf_cv_ncurses_header:-curses.h}>],
1040 [cchar_t *foo = WACS_PLUS],
1041 [cf_cv_curses_wacs_symbols=yes])
1045 test "$cf_cv_curses_wacs_symbols" != no && AC_DEFINE(CURSES_WACS_SYMBOLS,1,[Define to 1 if (n)curses supports wide-character WACS_ symbols])
1047 dnl ---------------------------------------------------------------------------
1048 dnl CF_DIRNAME version: 4 updated: 2002/12/21 19:25:52
1050 dnl "dirname" is not portable, so we fake it with a shell script.
1051 AC_DEFUN([CF_DIRNAME],[$1=`echo $2 | sed -e 's%/[[^/]]*$%%'`])dnl
1052 dnl ---------------------------------------------------------------------------
1053 dnl CF_DISABLE_ECHO version: 13 updated: 2015/04/18 08:56:57
1055 dnl You can always use "make -n" to see the actual options, but it's hard to
1056 dnl pick out/analyze warning messages when the compile-line is long.
1059 dnl ECHO_LT - symbol to control if libtool is verbose
1060 dnl ECHO_LD - symbol to prefix "cc -o" lines
1061 dnl RULE_CC - symbol to put before implicit "cc -c" lines (e.g., .c.o)
1062 dnl SHOW_CC - symbol to put before explicit "cc -c" lines
1063 dnl ECHO_CC - symbol to put before any "cc" line
1065 AC_DEFUN([CF_DISABLE_ECHO],[
1066 AC_MSG_CHECKING(if you want to see long compiling messages)
1067 CF_ARG_DISABLE(echo,
1068 [ --disable-echo do not display "compiling" commands],
1071 ECHO_LD='@echo linking [$]@;'
1072 RULE_CC='@echo compiling [$]<'
1073 SHOW_CC='@echo compiling [$]@'
1082 AC_MSG_RESULT($enableval)
1089 dnl ---------------------------------------------------------------------------
1090 dnl CF_DISABLE_LEAKS version: 7 updated: 2012/10/02 20:55:03
1091 dnl ----------------
1092 dnl Combine no-leak checks with the libraries or tools that are used for the
1094 AC_DEFUN([CF_DISABLE_LEAKS],[
1096 AC_REQUIRE([CF_WITH_DMALLOC])
1097 AC_REQUIRE([CF_WITH_DBMALLOC])
1098 AC_REQUIRE([CF_WITH_VALGRIND])
1100 AC_MSG_CHECKING(if you want to perform memory-leak testing)
1101 AC_ARG_ENABLE(leaks,
1102 [ --disable-leaks test: free permanent memory, analyze leaks],
1103 [if test "x$enableval" = xno; then with_no_leaks=yes; else with_no_leaks=no; fi],
1104 : ${with_no_leaks:=no})
1105 AC_MSG_RESULT($with_no_leaks)
1107 if test "$with_no_leaks" = yes ; then
1108 AC_DEFINE(NO_LEAKS,1,[Define to 1 if you want to perform memory-leak testing.])
1109 AC_DEFINE(YY_NO_LEAKS,1,[Define to 1 if you want to perform memory-leak testing.])
1112 dnl ---------------------------------------------------------------------------
1113 dnl CF_DISABLE_RPATH_HACK version: 2 updated: 2011/02/13 13:31:33
1114 dnl ---------------------
1115 dnl The rpath-hack makes it simpler to build programs, particularly with the
1116 dnl *BSD ports which may have essential libraries in unusual places. But it
1117 dnl can interfere with building an executable for the base system. Use this
1118 dnl option in that case.
1119 AC_DEFUN([CF_DISABLE_RPATH_HACK],
1121 AC_MSG_CHECKING(if rpath-hack should be disabled)
1122 CF_ARG_DISABLE(rpath-hack,
1123 [ --disable-rpath-hack don't add rpath options for additional libraries],
1124 [cf_disable_rpath_hack=yes],
1125 [cf_disable_rpath_hack=no])
1126 AC_MSG_RESULT($cf_disable_rpath_hack)
1127 if test "$cf_disable_rpath_hack" = no ; then
1131 dnl ---------------------------------------------------------------------------
1132 dnl CF_ENABLE_STRING_HACKS version: 5 updated: 2016/10/08 17:34:11
1133 dnl ----------------------
1134 dnl On a few platforms, the compiler and/or loader nags with untruthful
1135 dnl comments stating that "most" uses of strcat/strcpy/sprintf are incorrect,
1136 dnl and implying that most uses of the recommended alternatives are correct.
1138 dnl Factually speaking, no one has actually counted the number of uses of these
1139 dnl functions versus the total of incorrect uses. Samples of a few thousand
1140 dnl instances are meaningless compared to the hundreds of millions of lines of
1141 dnl existing C code.
1143 dnl strlcat/strlcpy are (as of 2012) non-standard, and are available on some
1144 dnl platforms, in implementations of varying quality. Likewise, snprintf is
1145 dnl standard - but evolved through phases, and older implementations are likely
1146 dnl to yield surprising results, as documented in manpages on various systems.
1147 AC_DEFUN([CF_ENABLE_STRING_HACKS],
1149 AC_MSG_CHECKING(if you want to work around bogus compiler/loader warnings)
1150 AC_ARG_ENABLE(string-hacks,
1151 [ --enable-string-hacks work around bogus compiler/loader warnings],
1152 [with_string_hacks=$enableval],
1153 [with_string_hacks=no])
1154 AC_MSG_RESULT($with_string_hacks)
1156 if test "x$with_string_hacks" = "xyes"; then
1157 AC_DEFINE(USE_STRING_HACKS,1,[Define to 1 to work around bogus compiler/loader warnings])
1158 AC_MSG_WARN(enabling string-hacks to work around bogus compiler/loader warnings)
1159 AC_CHECK_FUNC(strlcat,[
1160 AC_DEFINE(HAVE_STRLCAT,1,[Define to 1 if we have strlcat function])
1162 AC_CHECK_LIB(bsd,strlcat,[
1164 AC_CHECK_HEADERS(bsd/string.h)
1165 AC_DEFINE(HAVE_STRLCAT,1,[Define to 1 if we have strlcat function])
1168 AC_CHECK_FUNCS( strlcpy snprintf )
1171 dnl ---------------------------------------------------------------------------
1172 dnl CF_ENABLE_WARNINGS version: 4 updated: 2009/07/26 17:53:03
1173 dnl ------------------
1174 dnl Configure-option to enable gcc warnings
1175 AC_DEFUN([CF_ENABLE_WARNINGS],[
1176 if ( test "$GCC" = yes || test "$GXX" = yes )
1178 AC_MSG_CHECKING(if you want to turn on gcc warnings)
1179 CF_ARG_ENABLE(warnings,
1180 [ --enable-warnings test: turn on gcc compiler warnings],
1181 [with_warnings=yes],
1183 AC_MSG_RESULT($with_warnings)
1184 if test "$with_warnings" = "yes"
1191 dnl ---------------------------------------------------------------------------
1192 dnl CF_FIND_LIBRARY version: 9 updated: 2008/03/23 14:48:54
1194 dnl Look for a non-standard library, given parameters for AC_TRY_LINK. We
1195 dnl prefer a standard location, and use -L options only if we do not find the
1196 dnl library in the standard library location(s).
1197 dnl $1 = library name
1198 dnl $2 = library class, usually the same as library name
1200 dnl $4 = code fragment to compile/link
1201 dnl $5 = corresponding function-name
1202 dnl $6 = flag, nonnull if failure should not cause an error-exit
1204 dnl Sets the variable "$cf_libdir" as a side-effect, so we can see if we had
1205 dnl to use a -L option.
1206 AC_DEFUN([CF_FIND_LIBRARY],
1208 eval 'cf_cv_have_lib_'$1'=no'
1211 eval 'cf_cv_have_lib_'$1'=yes',[
1212 cf_save_LIBS="$LIBS"
1213 AC_MSG_CHECKING(for $5 in -l$1)
1215 AC_TRY_LINK([$3],[$4],
1217 eval 'cf_cv_have_lib_'$1'=yes'
1220 CF_LIBRARY_PATH(cf_search,$2)
1221 for cf_libdir in $cf_search
1223 AC_MSG_CHECKING(for -l$1 in $cf_libdir)
1224 LIBS="-L$cf_libdir -l$1 $cf_save_LIBS"
1225 AC_TRY_LINK([$3],[$4],
1227 eval 'cf_cv_have_lib_'$1'=yes'
1230 LIBS="$cf_save_LIBS"])
1234 eval 'cf_found_library=[$]cf_cv_have_lib_'$1
1236 if test $cf_found_library = no ; then
1237 AC_MSG_ERROR(Cannot link $1 library)
1241 dnl ---------------------------------------------------------------------------
1242 dnl CF_FIND_LINKAGE version: 20 updated: 2015/04/18 08:56:57
1244 dnl Find a library (specifically the linkage used in the code fragment),
1245 dnl searching for it if it is not already in the library path.
1246 dnl See also CF_ADD_SEARCHPATH.
1248 dnl Parameters (4-on are optional):
1249 dnl $1 = headers for library entrypoint
1250 dnl $2 = code fragment for library entrypoint
1251 dnl $3 = the library name without the "-l" option or ".so" suffix.
1252 dnl $4 = action to perform if successful (default: update CPPFLAGS, etc)
1253 dnl $5 = action to perform if not successful
1254 dnl $6 = module name, if not the same as the library name
1255 dnl $7 = extra libraries
1257 dnl Sets these variables:
1258 dnl $cf_cv_find_linkage_$3 - yes/no according to whether linkage is found
1259 dnl $cf_cv_header_path_$3 - include-directory if needed
1260 dnl $cf_cv_library_path_$3 - library-directory if needed
1261 dnl $cf_cv_library_file_$3 - library-file if needed, e.g., -l$3
1262 AC_DEFUN([CF_FIND_LINKAGE],[
1264 # If the linkage is not already in the $CPPFLAGS/$LDFLAGS configuration, these
1265 # will be set on completion of the AC_TRY_LINK below.
1266 cf_cv_header_path_$3=
1267 cf_cv_library_path_$3=
1269 CF_MSG_LOG([Starting [FIND_LINKAGE]($3,$6)])
1271 cf_save_LIBS="$LIBS"
1273 AC_TRY_LINK([$1],[$2],[
1274 cf_cv_find_linkage_$3=yes
1275 cf_cv_header_path_$3=/usr/include
1276 cf_cv_library_path_$3=/usr/lib
1279 LIBS="-l$3 $7 $cf_save_LIBS"
1281 AC_TRY_LINK([$1],[$2],[
1282 cf_cv_find_linkage_$3=yes
1283 cf_cv_header_path_$3=/usr/include
1284 cf_cv_library_path_$3=/usr/lib
1285 cf_cv_library_file_$3="-l$3"
1287 cf_cv_find_linkage_$3=no
1288 LIBS="$cf_save_LIBS"
1290 CF_VERBOSE(find linkage for $3 library)
1291 CF_MSG_LOG([Searching for headers in [FIND_LINKAGE]($3,$6)])
1293 cf_save_CPPFLAGS="$CPPFLAGS"
1294 cf_test_CPPFLAGS="$CPPFLAGS"
1296 CF_HEADER_PATH(cf_search,ifelse([$6],,[$3],[$6]))
1297 for cf_cv_header_path_$3 in $cf_search
1299 if test -d $cf_cv_header_path_$3 ; then
1300 CF_VERBOSE(... testing $cf_cv_header_path_$3)
1301 CPPFLAGS="$cf_save_CPPFLAGS -I$cf_cv_header_path_$3"
1302 AC_TRY_COMPILE([$1],[$2],[
1303 CF_VERBOSE(... found $3 headers in $cf_cv_header_path_$3)
1304 cf_cv_find_linkage_$3=maybe
1305 cf_test_CPPFLAGS="$CPPFLAGS"
1307 CPPFLAGS="$cf_save_CPPFLAGS"
1312 if test "$cf_cv_find_linkage_$3" = maybe ; then
1314 CF_MSG_LOG([Searching for $3 library in [FIND_LINKAGE]($3,$6)])
1316 cf_save_LIBS="$LIBS"
1317 cf_save_LDFLAGS="$LDFLAGS"
1320 CPPFLAGS="$cf_test_CPPFLAGS"
1321 LIBS="-l$3 $7 $cf_save_LIBS"
1322 AC_TRY_LINK([$1],[$2],[
1323 CF_VERBOSE(... found $3 library in system)
1324 cf_cv_find_linkage_$3=yes])
1325 CPPFLAGS="$cf_save_CPPFLAGS"
1326 LIBS="$cf_save_LIBS"
1329 if test "$cf_cv_find_linkage_$3" != yes ; then
1330 CF_LIBRARY_PATH(cf_search,$3)
1331 for cf_cv_library_path_$3 in $cf_search
1333 if test -d $cf_cv_library_path_$3 ; then
1334 CF_VERBOSE(... testing $cf_cv_library_path_$3)
1335 CPPFLAGS="$cf_test_CPPFLAGS"
1336 LIBS="-l$3 $7 $cf_save_LIBS"
1337 LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_$3"
1338 AC_TRY_LINK([$1],[$2],[
1339 CF_VERBOSE(... found $3 library in $cf_cv_library_path_$3)
1340 cf_cv_find_linkage_$3=yes
1341 cf_cv_library_file_$3="-l$3"
1343 CPPFLAGS="$cf_save_CPPFLAGS"
1344 LIBS="$cf_save_LIBS"
1345 LDFLAGS="$cf_save_LDFLAGS"
1349 CPPFLAGS="$cf_save_CPPFLAGS"
1350 LDFLAGS="$cf_save_LDFLAGS"
1354 cf_cv_find_linkage_$3=no
1359 LIBS="$cf_save_LIBS"
1361 if test "$cf_cv_find_linkage_$3" = yes ; then
1363 CF_ADD_INCDIR($cf_cv_header_path_$3)
1364 CF_ADD_LIBDIR($cf_cv_library_path_$3)
1368 ifelse([$5],,AC_MSG_WARN(Cannot find $3 library),[$5])
1371 dnl ---------------------------------------------------------------------------
1372 dnl CF_FUNC_CURSES_VERSION version: 6 updated: 2012/10/06 16:39:58
1373 dnl ----------------------
1374 dnl Solaris has a data item 'curses_version', which confuses AC_CHECK_FUNCS.
1375 dnl It's a character string "SVR4", not documented.
1376 AC_DEFUN([CF_FUNC_CURSES_VERSION],
1378 AC_CACHE_CHECK(for function curses_version, cf_cv_func_curses_version,[
1380 #include <${cf_cv_ncurses_header:-curses.h}>
1384 sprintf(temp, "%s\n", curses_version());
1385 ${cf_cv_main_return:-return}(0);
1387 ,[cf_cv_func_curses_version=yes]
1388 ,[cf_cv_func_curses_version=no]
1389 ,[cf_cv_func_curses_version=unknown])
1391 test "$cf_cv_func_curses_version" = yes && AC_DEFINE(HAVE_CURSES_VERSION,1,[Define to 1 if we have curses_version function])
1393 dnl ---------------------------------------------------------------------------
1394 dnl CF_FUNC_OPENPTY version: 5 updated: 2015/09/12 14:46:50
1396 dnl Check for openpty() function, along with <pty.h> header. It may need the
1397 dnl "util" library as well.
1398 AC_DEFUN([CF_FUNC_OPENPTY],
1400 AC_CHECK_LIB(util,openpty,cf_cv_lib_util=yes,cf_cv_lib_util=no)
1401 AC_CACHE_CHECK(for openpty header,cf_cv_func_openpty,[
1402 cf_save_LIBS="$LIBS"
1403 test $cf_cv_lib_util = yes && { CF_ADD_LIB(util) }
1404 for cf_header in pty.h libutil.h util.h
1407 #include <$cf_header>
1409 int x = openpty((int *)0, (int *)0, (char *)0,
1410 (struct termios *)0, (struct winsize *)0);
1412 cf_cv_func_openpty=$cf_header
1415 cf_cv_func_openpty=no
1418 LIBS="$cf_save_LIBS"
1421 dnl ---------------------------------------------------------------------------
1422 dnl CF_GCC_ATTRIBUTES version: 17 updated: 2015/04/12 15:39:00
1423 dnl -----------------
1424 dnl Test for availability of useful gcc __attribute__ directives to quiet
1425 dnl compiler warnings. Though useful, not all are supported -- and contrary
1426 dnl to documentation, unrecognized directives cause older compilers to barf.
1427 AC_DEFUN([CF_GCC_ATTRIBUTES],
1429 if test "$GCC" = yes
1431 cat > conftest.i <<EOF
1433 #define GCC_PRINTF 0
1438 #ifndef GCC_NORETURN
1439 #define GCC_NORETURN /* nothing */
1442 #define GCC_UNUSED /* nothing */
1445 if test "$GCC" = yes
1447 AC_CHECKING([for $CC __attribute__ directives])
1448 cat > conftest.$ac_ext <<EOF
1449 #line __oline__ "${as_me:-configure}"
1450 #include "confdefs.h"
1451 #include "conftest.h"
1452 #include "conftest.i"
1454 #define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
1456 #define GCC_PRINTFLIKE(fmt,var) /*nothing*/
1459 #define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
1461 #define GCC_SCANFLIKE(fmt,var) /*nothing*/
1463 extern void wow(char *,...) GCC_SCANFLIKE(1,2);
1464 extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
1465 extern void foo(void) GCC_NORETURN;
1466 int main(int argc GCC_UNUSED, char *argv[[]] GCC_UNUSED) { return 0; }
1468 cf_printf_attribute=no
1469 cf_scanf_attribute=no
1470 for cf_attribute in scanf printf unused noreturn
1472 CF_UPPER(cf_ATTRIBUTE,$cf_attribute)
1473 cf_directive="__attribute__(($cf_attribute))"
1474 echo "checking for $CC $cf_directive" 1>&AC_FD_CC
1476 case $cf_attribute in
1478 cf_printf_attribute=yes
1479 cat >conftest.h <<EOF
1480 #define GCC_$cf_ATTRIBUTE 1
1484 cf_scanf_attribute=yes
1485 cat >conftest.h <<EOF
1486 #define GCC_$cf_ATTRIBUTE 1
1490 cat >conftest.h <<EOF
1491 #define GCC_$cf_ATTRIBUTE $cf_directive
1496 if AC_TRY_EVAL(ac_compile); then
1497 test -n "$verbose" && AC_MSG_RESULT(... $cf_attribute)
1498 cat conftest.h >>confdefs.h
1499 case $cf_attribute in
1501 AC_DEFINE_UNQUOTED(GCC_NORETURN,$cf_directive,[Define to noreturn-attribute for gcc])
1504 cf_value='/* nothing */'
1505 if test "$cf_printf_attribute" != no ; then
1506 cf_value='__attribute__((format(printf,fmt,var)))'
1507 AC_DEFINE(GCC_PRINTF,1,[Define to 1 if the compiler supports gcc-like printf attribute.])
1509 AC_DEFINE_UNQUOTED(GCC_PRINTFLIKE(fmt,var),$cf_value,[Define to printf-attribute for gcc])
1512 cf_value='/* nothing */'
1513 if test "$cf_scanf_attribute" != no ; then
1514 cf_value='__attribute__((format(scanf,fmt,var)))'
1515 AC_DEFINE(GCC_SCANF,1,[Define to 1 if the compiler supports gcc-like scanf attribute.])
1517 AC_DEFINE_UNQUOTED(GCC_SCANFLIKE(fmt,var),$cf_value,[Define to sscanf-attribute for gcc])
1520 AC_DEFINE_UNQUOTED(GCC_UNUSED,$cf_directive,[Define to unused-attribute for gcc])
1526 fgrep define conftest.i >>confdefs.h
1531 dnl ---------------------------------------------------------------------------
1532 dnl CF_GCC_VERSION version: 7 updated: 2012/10/18 06:46:33
1534 dnl Find version of gcc
1535 AC_DEFUN([CF_GCC_VERSION],[
1536 AC_REQUIRE([AC_PROG_CC])
1538 if test "$GCC" = yes ; then
1539 AC_MSG_CHECKING(version of $CC)
1540 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.]].*//'`"
1541 test -z "$GCC_VERSION" && GCC_VERSION=unknown
1542 AC_MSG_RESULT($GCC_VERSION)
1545 dnl ---------------------------------------------------------------------------
1546 dnl CF_GCC_WARNINGS version: 32 updated: 2015/04/12 15:39:00
1548 dnl Check if the compiler supports useful warning options. There's a few that
1549 dnl we don't use, simply because they're too noisy:
1551 dnl -Wconversion (useful in older versions of gcc, but not in gcc 2.7.x)
1552 dnl -Wredundant-decls (system headers make this too noisy)
1553 dnl -Wtraditional (combines too many unrelated messages, only a few useful)
1554 dnl -Wwrite-strings (too noisy, but should review occasionally). This
1555 dnl is enabled for ncurses using "--enable-const".
1559 dnl $1 is an optional list of gcc warning flags that a particular
1560 dnl application might want to use, e.g., "no-unused" for
1563 dnl If $with_ext_const is "yes", add a check for -Wwrite-strings
1565 AC_DEFUN([CF_GCC_WARNINGS],
1567 AC_REQUIRE([CF_GCC_VERSION])
1568 CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
1569 CF_CLANG_COMPILER(GCC,CLANG_COMPILER,CFLAGS)
1571 cat > conftest.$ac_ext <<EOF
1572 #line __oline__ "${as_me:-configure}"
1573 int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
1576 if test "$INTEL_COMPILER" = yes
1578 # The "-wdXXX" options suppress warnings:
1579 # remark #1419: external declaration in primary source file
1580 # remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
1581 # remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
1582 # remark #193: zero used for undefined preprocessing identifier
1583 # remark #593: variable "curs_sb_left_arrow" was set but never used
1584 # remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
1585 # remark #869: parameter "tw" was never referenced
1586 # remark #981: operands are evaluated in unspecified order
1587 # warning #279: controlling expression is constant
1589 AC_CHECKING([for $CC warning options])
1590 cf_save_CFLAGS="$CFLAGS"
1591 EXTRA_CFLAGS="-Wall"
1603 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
1604 if AC_TRY_EVAL(ac_compile); then
1605 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1606 EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
1609 CFLAGS="$cf_save_CFLAGS"
1611 elif test "$GCC" = yes
1613 AC_CHECKING([for $CC warning options])
1614 cf_save_CFLAGS="$CFLAGS"
1617 test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
1618 cf_gcc_warnings="Wignored-qualifiers Wlogical-op Wvarargs"
1619 test "x$CLANG_COMPILER" = xyes && cf_gcc_warnings=
1620 for cf_opt in W Wall \
1621 Wbad-function-cast \
1624 Wdeclaration-after-statement \
1627 Wmissing-declarations \
1628 Wmissing-prototypes \
1632 Wstrict-prototypes \
1633 Wundef $cf_gcc_warnings $cf_warn_CONST $1
1635 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
1636 if AC_TRY_EVAL(ac_compile); then
1637 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1640 CPPFLAGS="$CPPFLAGS -DXTSTRINGDEFINES"
1643 case $GCC_VERSION in
1645 CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
1650 case $GCC_VERSION in
1652 CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
1657 EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
1660 CFLAGS="$cf_save_CFLAGS"
1664 AC_SUBST(EXTRA_CFLAGS)
1666 dnl ---------------------------------------------------------------------------
1667 dnl CF_GETOPT_HEADER version: 6 updated: 2014/07/22 14:45:54
1668 dnl ----------------
1669 dnl Check for getopt's variables which are commonly defined in stdlib.h,
1670 dnl unistd.h or (nonstandard) in getopt.h
1671 AC_DEFUN([CF_GETOPT_HEADER],
1673 AC_HAVE_HEADERS(unistd.h getopt.h)
1674 AC_CACHE_CHECK(for header declaring getopt variables,cf_cv_getopt_header,[
1675 cf_cv_getopt_header=none
1676 for cf_header in stdio.h stdlib.h unistd.h getopt.h
1679 #include <$cf_header>],
1680 [int x = optind; char *y = optarg],
1681 [cf_cv_getopt_header=$cf_header
1685 if test $cf_cv_getopt_header != none ; then
1686 AC_DEFINE(HAVE_GETOPT_HEADER,1,[Define to 1 if getopt variables are declared in header])
1688 if test $cf_cv_getopt_header = getopt.h ; then
1689 AC_DEFINE(NEED_GETOPT_H,1,[Define to 1 if we must include getopt.h])
1692 dnl ---------------------------------------------------------------------------
1693 dnl CF_GNU_SOURCE version: 7 updated: 2016/08/05 05:15:37
1695 dnl Check if we must define _GNU_SOURCE to get a reasonable value for
1696 dnl _XOPEN_SOURCE, upon which many POSIX definitions depend. This is a defect
1697 dnl (or misfeature) of glibc2, which breaks portability of many applications,
1698 dnl since it is interwoven with GNU extensions.
1700 dnl Well, yes we could work around it...
1701 AC_DEFUN([CF_GNU_SOURCE],
1703 AC_CACHE_CHECK(if we must define _GNU_SOURCE,cf_cv_gnu_source,[
1704 AC_TRY_COMPILE([#include <sys/types.h>],[
1705 #ifndef _XOPEN_SOURCE
1708 [cf_cv_gnu_source=no],
1709 [cf_save="$CPPFLAGS"
1710 CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
1711 AC_TRY_COMPILE([#include <sys/types.h>],[
1712 #ifdef _XOPEN_SOURCE
1715 [cf_cv_gnu_source=no],
1716 [cf_cv_gnu_source=yes])
1721 if test "$cf_cv_gnu_source" = yes
1723 AC_CACHE_CHECK(if we should also define _DEFAULT_SOURCE,cf_cv_default_source,[
1724 CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
1725 AC_TRY_COMPILE([#include <sys/types.h>],[
1726 #ifdef _DEFAULT_SOURCE
1729 [cf_cv_default_source=no],
1730 [cf_cv_default_source=yes])
1732 test "$cf_cv_default_source" = yes && CPPFLAGS="$CPPFLAGS -D_DEFAULT_SOURCE"
1735 dnl ---------------------------------------------------------------------------
1736 dnl CF_HEADER_PATH version: 13 updated: 2015/04/15 19:08:48
1738 dnl Construct a search-list of directories for a nonstandard header-file
1741 dnl $1 = the variable to return as result
1742 dnl $2 = the package name
1743 AC_DEFUN([CF_HEADER_PATH],
1747 # collect the current set of include-directories from compiler flags
1748 cf_header_path_list=""
1749 if test -n "${CFLAGS}${CPPFLAGS}" ; then
1750 for cf_header_path in $CPPFLAGS $CFLAGS
1752 case $cf_header_path in
1754 cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'`
1755 CF_ADD_SUBDIR_PATH($1,$2,include,$cf_header_path,NONE)
1756 cf_header_path_list="$cf_header_path_list [$]$1"
1762 # add the variations for the package we are looking for
1763 CF_SUBDIR_PATH($1,$2,include)
1765 test "$includedir" != NONE && \
1766 test "$includedir" != "/usr/include" && \
1767 test -d "$includedir" && {
1768 test -d $includedir && $1="[$]$1 $includedir"
1769 test -d $includedir/$2 && $1="[$]$1 $includedir/$2"
1772 test "$oldincludedir" != NONE && \
1773 test "$oldincludedir" != "/usr/include" && \
1774 test -d "$oldincludedir" && {
1775 test -d $oldincludedir && $1="[$]$1 $oldincludedir"
1776 test -d $oldincludedir/$2 && $1="[$]$1 $oldincludedir/$2"
1779 $1="[$]$1 $cf_header_path_list"
1781 dnl ---------------------------------------------------------------------------
1782 dnl CF_HELP_MESSAGE version: 3 updated: 1998/01/14 10:56:23
1784 dnl Insert text into the help-message, for readability, from AC_ARG_WITH.
1785 AC_DEFUN([CF_HELP_MESSAGE],
1786 [AC_DIVERT_HELP([$1])dnl
1788 dnl ---------------------------------------------------------------------------
1789 dnl CF_INHERIT_SCRIPT version: 2 updated: 2003/03/01 23:50:42
1790 dnl -----------------
1791 dnl If we do not have a given script, look for it in the parent directory.
1792 AC_DEFUN([CF_INHERIT_SCRIPT],
1794 test -f $1 || ( test -f ../$1 && cp ../$1 ./ )
1796 dnl ---------------------------------------------------------------------------
1797 dnl CF_INTEL_COMPILER version: 7 updated: 2015/04/12 15:39:00
1798 dnl -----------------
1799 dnl Check if the given compiler is really the Intel compiler for Linux. It
1800 dnl tries to imitate gcc, but does not return an error when it finds a mismatch
1801 dnl between prototypes, e.g., as exercised by CF_MISSING_CHECK.
1803 dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
1804 dnl ensure that it is not mistaken for gcc/g++. It is normally invoked from
1805 dnl the wrappers for gcc and g++ warnings.
1807 dnl $1 = GCC (default) or GXX
1808 dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS
1809 dnl $3 = CFLAGS (default) or CXXFLAGS
1810 AC_DEFUN([CF_INTEL_COMPILER],[
1811 AC_REQUIRE([AC_CANONICAL_HOST])
1812 ifelse([$2],,INTEL_COMPILER,[$2])=no
1814 if test "$ifelse([$1],,[$1],GCC)" = yes ; then
1817 AC_MSG_CHECKING(if this is really Intel ifelse([$1],GXX,C++,C) compiler)
1818 cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
1819 ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -no-gcc"
1821 #ifdef __INTEL_COMPILER
1825 ],[ifelse([$2],,INTEL_COMPILER,[$2])=yes
1826 cf_save_CFLAGS="$cf_save_CFLAGS -we147"
1828 ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
1829 AC_MSG_RESULT($ifelse([$2],,INTEL_COMPILER,[$2]))
1834 dnl ---------------------------------------------------------------------------
1835 dnl CF_LD_RPATH_OPT version: 7 updated: 2016/02/20 18:01:19
1837 dnl For the given system and compiler, find the compiler flags to pass to the
1838 dnl loader to use the "rpath" feature.
1839 AC_DEFUN([CF_LD_RPATH_OPT],
1841 AC_REQUIRE([CF_CHECK_CACHE])
1844 AC_MSG_CHECKING(for an rpath option)
1845 case $cf_cv_system_name in
1847 if test "$GCC" = yes; then
1848 LD_RPATH_OPT="-Wl,-rpath,"
1850 LD_RPATH_OPT="-rpath "
1853 (linux*|gnu*|k*bsd*-gnu|freebsd*)
1854 LD_RPATH_OPT="-Wl,-rpath,"
1856 (openbsd[[2-9]].*|mirbsd*)
1857 LD_RPATH_OPT="-Wl,-rpath,"
1860 LD_RPATH_OPT="-rpath "
1863 LD_RPATH_OPT="-Wl,-rpath,"
1866 LD_RPATH_OPT="-rpath "
1874 AC_MSG_RESULT($LD_RPATH_OPT)
1876 case "x$LD_RPATH_OPT" in
1878 AC_MSG_CHECKING(if we need a space after rpath option)
1879 cf_save_LIBS="$LIBS"
1880 CF_ADD_LIBS(${LD_RPATH_OPT}$libdir)
1881 AC_TRY_LINK(, , cf_rpath_space=no, cf_rpath_space=yes)
1882 LIBS="$cf_save_LIBS"
1883 AC_MSG_RESULT($cf_rpath_space)
1884 test "$cf_rpath_space" = yes && LD_RPATH_OPT="$LD_RPATH_OPT "
1888 dnl ---------------------------------------------------------------------------
1889 dnl CF_LIBRARY_PATH version: 10 updated: 2015/04/15 19:08:48
1891 dnl Construct a search-list of directories for a nonstandard library-file
1894 dnl $1 = the variable to return as result
1895 dnl $2 = the package name
1896 AC_DEFUN([CF_LIBRARY_PATH],
1899 cf_library_path_list=""
1900 if test -n "${LDFLAGS}${LIBS}" ; then
1901 for cf_library_path in $LDFLAGS $LIBS
1903 case $cf_library_path in
1905 cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'`
1906 CF_ADD_SUBDIR_PATH($1,$2,lib,$cf_library_path,NONE)
1907 cf_library_path_list="$cf_library_path_list [$]$1"
1913 CF_SUBDIR_PATH($1,$2,lib)
1915 $1="$cf_library_path_list [$]$1"
1917 dnl ---------------------------------------------------------------------------
1918 dnl CF_MAKE_TAGS version: 6 updated: 2010/10/23 15:52:32
1920 dnl Generate tags/TAGS targets for makefiles. Do not generate TAGS if we have
1921 dnl a monocase filesystem.
1922 AC_DEFUN([CF_MAKE_TAGS],[
1923 AC_REQUIRE([CF_MIXEDCASE_FILENAMES])
1925 AC_CHECK_PROGS(CTAGS, exctags ctags)
1926 AC_CHECK_PROGS(ETAGS, exetags etags)
1928 AC_CHECK_PROG(MAKE_LOWER_TAGS, ${CTAGS:-ctags}, yes, no)
1930 if test "$cf_cv_mixedcase" = yes ; then
1931 AC_CHECK_PROG(MAKE_UPPER_TAGS, ${ETAGS:-etags}, yes, no)
1936 if test "$MAKE_UPPER_TAGS" = yes ; then
1942 if test "$MAKE_LOWER_TAGS" = yes ; then
1951 AC_SUBST(MAKE_UPPER_TAGS)
1952 AC_SUBST(MAKE_LOWER_TAGS)
1954 dnl ---------------------------------------------------------------------------
1955 dnl CF_MATH_LIB version: 9 updated: 2017/01/21 11:06:25
1957 dnl Checks for libraries. At least one UNIX system, Apple Macintosh
1958 dnl Rhapsody 5.5, does not have -lm. We cannot use the simpler
1959 dnl AC_CHECK_LIB(m,sin), because that fails for C++.
1960 AC_DEFUN([CF_MATH_LIB],
1962 AC_CACHE_CHECK(if -lm needed for math functions,
1969 [double x = rand(); printf("result = %g\n", ]ifelse([$2],,sin(x),$2)[)],
1970 [cf_cv_need_libm=no],
1971 [cf_cv_need_libm=yes])])
1972 if test "$cf_cv_need_libm" = yes
1979 dnl ---------------------------------------------------------------------------
1980 dnl CF_MIXEDCASE_FILENAMES version: 7 updated: 2015/04/12 15:39:00
1981 dnl ----------------------
1982 dnl Check if the file-system supports mixed-case filenames. If we're able to
1983 dnl create a lowercase name and see it as uppercase, it doesn't support that.
1984 AC_DEFUN([CF_MIXEDCASE_FILENAMES],
1986 AC_CACHE_CHECK(if filesystem supports mixed-case filenames,cf_cv_mixedcase,[
1987 if test "$cross_compiling" = yes ; then
1988 case $target_alias in
1989 (*-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-msys*|*-mingw*|*-uwin*)
1997 rm -f conftest CONFTEST
1999 if test -f CONFTEST ; then
2004 rm -f conftest CONFTEST
2007 test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES,1,[Define to 1 if filesystem supports mixed-case filenames.])
2009 dnl ---------------------------------------------------------------------------
2010 dnl CF_MSG_LOG version: 5 updated: 2010/10/23 15:52:32
2012 dnl Write a debug message to config.log, along with the line number in the
2013 dnl configure script.
2014 AC_DEFUN([CF_MSG_LOG],[
2015 echo "${as_me:-configure}:__oline__: testing $* ..." 1>&AC_FD_CC
2017 dnl ---------------------------------------------------------------------------
2018 dnl CF_NCURSES_CC_CHECK version: 4 updated: 2007/07/29 10:39:05
2019 dnl -------------------
2020 dnl Check if we can compile with ncurses' header file
2021 dnl $1 is the cache variable to set
2022 dnl $2 is the header-file to include
2023 dnl $3 is the root name (ncurses or ncursesw)
2024 AC_DEFUN([CF_NCURSES_CC_CHECK],[
2026 ]ifelse($3,ncursesw,[
2027 #define _XOPEN_SOURCE_EXTENDED
2028 #undef HAVE_LIBUTF8_H /* in case we used CF_UTF8_LIB */
2029 #define HAVE_LIBUTF8_H /* to force ncurses' header file to use cchar_t */
2032 #ifdef NCURSES_VERSION
2033 ]ifelse($3,ncursesw,[
2038 printf("%s\n", NCURSES_VERSION);
2050 dnl ---------------------------------------------------------------------------
2051 dnl CF_NCURSES_CONFIG version: 17 updated: 2015/07/07 04:22:07
2052 dnl -----------------
2053 dnl Tie together the configure-script macros for ncurses, preferring these in
2055 dnl a) ".pc" files for pkg-config, using $NCURSES_CONFIG_PKG
2056 dnl b) the "-config" script from ncurses, using $NCURSES_CONFIG
2057 dnl c) just plain libraries
2059 dnl $1 is the root library name (default: "ncurses")
2060 AC_DEFUN([CF_NCURSES_CONFIG],[
2061 AC_REQUIRE([CF_PKG_CONFIG])
2062 cf_ncuconfig_root=ifelse($1,,ncurses,$1)
2063 cf_have_ncuconfig=no
2065 if test "x${PKG_CONFIG:=none}" != xnone; then
2066 AC_MSG_CHECKING(pkg-config for $cf_ncuconfig_root)
2067 if "$PKG_CONFIG" --exists $cf_ncuconfig_root ; then
2070 AC_MSG_CHECKING(if the $cf_ncuconfig_root package files work)
2071 cf_have_ncuconfig=unknown
2073 cf_save_CPPFLAGS="$CPPFLAGS"
2074 cf_save_LIBS="$LIBS"
2076 CPPFLAGS="$CPPFLAGS `$PKG_CONFIG --cflags $cf_ncuconfig_root`"
2077 CF_ADD_LIBS(`$PKG_CONFIG --libs $cf_ncuconfig_root`)
2079 AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
2080 [initscr(); mousemask(0,0); tgoto((char *)0, 0, 0);],
2081 [AC_TRY_RUN([#include <${cf_cv_ncurses_header:-curses.h}>
2083 { char *xx = curses_version(); return (xx == 0); }],
2084 [cf_have_ncuconfig=yes],
2085 [cf_have_ncuconfig=no],
2086 [cf_have_ncuconfig=maybe])],
2087 [cf_have_ncuconfig=no])
2088 AC_MSG_RESULT($cf_have_ncuconfig)
2089 test "$cf_have_ncuconfig" = maybe && cf_have_ncuconfig=yes
2090 if test "$cf_have_ncuconfig" != "yes"
2092 CPPFLAGS="$cf_save_CPPFLAGS"
2093 LIBS="$cf_save_LIBS"
2094 NCURSES_CONFIG_PKG=none
2096 AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
2097 NCURSES_CONFIG_PKG=$cf_ncuconfig_root
2102 NCURSES_CONFIG_PKG=none
2105 NCURSES_CONFIG_PKG=none
2108 if test "x$cf_have_ncuconfig" = "xno"; then
2109 echo "Looking for ${cf_ncuconfig_root}-config"
2111 CF_ACVERSION_CHECK(2.52,
2112 [AC_CHECK_TOOLS(NCURSES_CONFIG, ${cf_ncuconfig_root}-config ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config, none)],
2113 [AC_PATH_PROGS(NCURSES_CONFIG, ${cf_ncuconfig_root}-config ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config, none)])
2115 if test "$NCURSES_CONFIG" != none ; then
2117 CPPFLAGS="$CPPFLAGS `$NCURSES_CONFIG --cflags`"
2118 CF_ADD_LIBS(`$NCURSES_CONFIG --libs`)
2120 # even with config script, some packages use no-override for curses.h
2121 CF_CURSES_HEADER(ifelse($1,,ncurses,$1))
2123 dnl like CF_NCURSES_CPPFLAGS
2124 AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
2126 dnl like CF_NCURSES_LIBS
2127 CF_UPPER(cf_nculib_ROOT,HAVE_LIB$cf_ncuconfig_root)
2128 AC_DEFINE_UNQUOTED($cf_nculib_ROOT)
2130 dnl like CF_NCURSES_VERSION
2131 cf_cv_ncurses_version=`$NCURSES_CONFIG --version`
2135 CF_NCURSES_CPPFLAGS(ifelse($1,,ncurses,$1))
2136 CF_NCURSES_LIBS(ifelse($1,,ncurses,$1))
2143 dnl ---------------------------------------------------------------------------
2144 dnl CF_NCURSES_CPPFLAGS version: 21 updated: 2012/10/06 08:57:51
2145 dnl -------------------
2146 dnl Look for the SVr4 curses clone 'ncurses' in the standard places, adjusting
2147 dnl the CPPFLAGS variable so we can include its header.
2149 dnl The header files may be installed as either curses.h, or ncurses.h (would
2150 dnl be obsolete, except that some packagers prefer this name to distinguish it
2151 dnl from a "native" curses implementation). If not installed for overwrite,
2152 dnl the curses.h file would be in an ncurses subdirectory (e.g.,
2153 dnl /usr/include/ncurses), but someone may have installed overwriting the
2154 dnl vendor's curses. Only very old versions (pre-1.9.2d, the first autoconf'd
2155 dnl version) of ncurses don't define either __NCURSES_H or NCURSES_VERSION in
2158 dnl If the installer has set $CFLAGS or $CPPFLAGS so that the ncurses header
2159 dnl is already in the include-path, don't even bother with this, since we cannot
2160 dnl easily determine which file it is. In this case, it has to be <curses.h>.
2162 dnl The optional parameter gives the root name of the library, in case it is
2163 dnl not installed as the default curses library. That is how the
2164 dnl wide-character version of ncurses is installed.
2165 AC_DEFUN([CF_NCURSES_CPPFLAGS],
2166 [AC_REQUIRE([CF_WITH_CURSES_DIR])
2168 AC_PROVIDE([CF_CURSES_CPPFLAGS])dnl
2169 cf_ncuhdr_root=ifelse($1,,ncurses,$1)
2171 test -n "$cf_cv_curses_dir" && \
2172 test "$cf_cv_curses_dir" != "no" && { \
2173 CF_ADD_INCDIR($cf_cv_curses_dir/include/$cf_ncuhdr_root)
2176 AC_CACHE_CHECK(for $cf_ncuhdr_root header in include-path, cf_cv_ncurses_h,[
2177 cf_header_list="$cf_ncuhdr_root/curses.h $cf_ncuhdr_root/ncurses.h"
2178 ( test "$cf_ncuhdr_root" = ncurses || test "$cf_ncuhdr_root" = ncursesw ) && cf_header_list="$cf_header_list curses.h ncurses.h"
2179 for cf_header in $cf_header_list
2181 CF_NCURSES_CC_CHECK(cf_cv_ncurses_h,$cf_header,$1)
2182 test "$cf_cv_ncurses_h" != no && break
2189 # some applications need this, but should check for NCURSES_VERSION
2190 AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
2194 dnl ---------------------------------------------------------------------------
2195 dnl CF_NCURSES_EXT_FUNCS version: 4 updated: 2012/10/06 16:39:58
2196 dnl --------------------
2197 dnl Since 2007/11/17, ncurses has defined NCURSES_EXT_FUNCS; earlier versions
2198 dnl may provide these functions. Define the symbol if it is not defined, and
2200 AC_DEFUN([CF_NCURSES_EXT_FUNCS],
2202 AC_CACHE_CHECK(for ncurses extended functions,cf_cv_ncurses_ext_funcs,[
2204 #include <${cf_cv_ncurses_header:-curses.h}>],
2206 int x = NCURSES_EXT_FUNCS
2207 ],[cf_cv_ncurses_ext_funcs=defined],[
2209 #include <${cf_cv_ncurses_header:-curses.h}>],
2211 (void) assume_default_colors (0, 0);
2212 (void) curses_version ();
2213 (void) define_key (0, 0);
2214 (void) is_term_resized (0, 0);
2215 (void) key_defined (0);
2216 (void) keybound (0, 0);
2217 (void) keyok (0, 0);
2218 (void) resize_term (0, 0);
2219 (void) resizeterm (0, 0);
2220 (void) use_default_colors ();
2221 (void) use_extended_names (0);
2222 (void) wresize (0, 0, 0);],
2223 [cf_cv_ncurses_ext_funcs=yes],
2224 [cf_cv_ncurses_ext_funcs=no])
2227 test "$cf_cv_ncurses_ext_funcs" = yes && AC_DEFINE(NCURSES_EXT_FUNCS,1,[Define to 1 if we have ncurses extensions])
2229 dnl ---------------------------------------------------------------------------
2230 dnl CF_NCURSES_HEADER version: 4 updated: 2015/04/15 19:08:48
2231 dnl -----------------
2232 dnl Find a "curses" header file, e.g,. "curses.h", or one of the more common
2233 dnl variations of ncurses' installs.
2235 dnl See also CF_CURSES_HEADER, which sets the same cache variable.
2236 AC_DEFUN([CF_NCURSES_HEADER],[
2238 if test "$cf_cv_ncurses_h" != no ; then
2239 cf_cv_ncurses_header=$cf_cv_ncurses_h
2242 AC_CACHE_CHECK(for $cf_ncuhdr_root include-path, cf_cv_ncurses_h2,[
2243 test -n "$verbose" && echo
2244 CF_HEADER_PATH(cf_search,$cf_ncuhdr_root)
2245 test -n "$verbose" && echo search path $cf_search
2246 cf_save2_CPPFLAGS="$CPPFLAGS"
2247 for cf_incdir in $cf_search
2249 CF_ADD_INCDIR($cf_incdir)
2254 CF_NCURSES_CC_CHECK(cf_cv_ncurses_h2,$cf_header,$1)
2255 if test "$cf_cv_ncurses_h2" != no ; then
2256 cf_cv_ncurses_h2=$cf_incdir/$cf_header
2257 test -n "$verbose" && echo $ac_n " ... found $ac_c" 1>&AC_FD_MSG
2260 test -n "$verbose" && echo " ... tested $cf_incdir/$cf_header" 1>&AC_FD_MSG
2262 CPPFLAGS="$cf_save2_CPPFLAGS"
2263 test "$cf_cv_ncurses_h2" != no && break
2265 test "$cf_cv_ncurses_h2" = no && AC_MSG_ERROR(not found)
2268 CF_DIRNAME(cf_1st_incdir,$cf_cv_ncurses_h2)
2269 cf_cv_ncurses_header=`basename $cf_cv_ncurses_h2`
2270 if test `basename $cf_1st_incdir` = $cf_ncuhdr_root ; then
2271 cf_cv_ncurses_header=$cf_ncuhdr_root/$cf_cv_ncurses_header
2273 CF_ADD_INCDIR($cf_1st_incdir)
2277 # Set definitions to allow ifdef'ing for ncurses.h
2279 case $cf_cv_ncurses_header in
2281 AC_DEFINE(HAVE_NCURSES_H,1,[Define to 1 if we have ncurses.h])
2285 case $cf_cv_ncurses_header in
2286 (ncurses/curses.h|ncurses/ncurses.h)
2287 AC_DEFINE(HAVE_NCURSES_NCURSES_H,1,[Define to 1 if we have ncurses/ncurses.h])
2289 (ncursesw/curses.h|ncursesw/ncurses.h)
2290 AC_DEFINE(HAVE_NCURSESW_NCURSES_H,1,[Define to 1 if we have ncursesw/ncurses.h])
2295 dnl ---------------------------------------------------------------------------
2296 dnl CF_NCURSES_LIBS version: 17 updated: 2015/04/15 19:08:48
2298 dnl Look for the ncurses library. This is a little complicated on Linux,
2299 dnl because it may be linked with the gpm (general purpose mouse) library.
2300 dnl Some distributions have gpm linked with (bsd) curses, which makes it
2301 dnl unusable with ncurses. However, we don't want to link with gpm unless
2302 dnl ncurses has a dependency, since gpm is normally set up as a shared library,
2303 dnl and the linker will record a dependency.
2305 dnl The optional parameter gives the root name of the library, in case it is
2306 dnl not installed as the default curses library. That is how the
2307 dnl wide-character version of ncurses is installed.
2308 AC_DEFUN([CF_NCURSES_LIBS],
2309 [AC_REQUIRE([CF_NCURSES_CPPFLAGS])
2311 cf_nculib_root=ifelse($1,,ncurses,$1)
2312 # This works, except for the special case where we find gpm, but
2313 # ncurses is in a nonstandard location via $LIBS, and we really want
2316 cf_ncurses_SAVE="$LIBS"
2317 AC_CHECK_LIB(gpm,Gpm_Open,
2318 [AC_CHECK_LIB(gpm,initscr,
2319 [LIBS="$cf_ncurses_SAVE"],
2320 [cf_ncurses_LIBS="-lgpm"])])
2324 # This is only necessary if you are linking against an obsolete
2325 # version of ncurses (but it should do no harm, since it's static).
2326 if test "$cf_nculib_root" = ncurses ; then
2327 AC_CHECK_LIB(mytinfo,tgoto,[cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"])
2332 CF_ADD_LIBS($cf_ncurses_LIBS)
2334 if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
2336 CF_ADD_LIBS(-l$cf_nculib_root)
2338 CF_FIND_LIBRARY($cf_nculib_root,$cf_nculib_root,
2339 [#include <${cf_cv_ncurses_header:-curses.h}>],
2344 if test -n "$cf_ncurses_LIBS" ; then
2345 AC_MSG_CHECKING(if we can link $cf_nculib_root without $cf_ncurses_LIBS)
2346 cf_ncurses_SAVE="$LIBS"
2347 for p in $cf_ncurses_LIBS ; do
2348 q=`echo $LIBS | sed -e "s%$p %%" -e "s%$p$%%"`
2349 if test "$q" != "$LIBS" ; then
2353 AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
2354 [initscr(); mousemask(0,0); tgoto((char *)0, 0, 0);],
2355 [AC_MSG_RESULT(yes)],
2357 LIBS="$cf_ncurses_SAVE"])
2360 CF_UPPER(cf_nculib_ROOT,HAVE_LIB$cf_nculib_root)
2361 AC_DEFINE_UNQUOTED($cf_nculib_ROOT)
2363 dnl ---------------------------------------------------------------------------
2364 dnl CF_NCURSES_PTHREADS version: 2 updated: 2016/04/22 05:07:41
2365 dnl -------------------
2366 dnl Use this followup check to ensure that we link with pthreads if ncurses
2368 AC_DEFUN([CF_NCURSES_PTHREADS],[
2369 : ${cf_nculib_root:=ifelse($1,,ncurses,$1)}
2370 AC_CHECK_LIB($cf_nculib_root,_nc_init_pthreads,
2371 cf_cv_ncurses_pthreads=yes,
2372 cf_cv_ncurses_pthreads=no)
2373 if test "$cf_cv_ncurses_pthreads" = yes
2375 CF_ADD_LIBS(-lpthread)
2378 dnl ---------------------------------------------------------------------------
2379 dnl CF_NCURSES_VERSION version: 14 updated: 2012/10/06 08:57:51
2380 dnl ------------------
2381 dnl Check for the version of ncurses, to aid in reporting bugs, etc.
2382 dnl Call CF_CURSES_CPPFLAGS first, or CF_NCURSES_CPPFLAGS. We don't use
2383 dnl AC_REQUIRE since that does not work with the shell's if/then/else/fi.
2384 AC_DEFUN([CF_NCURSES_VERSION],
2386 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
2387 AC_CACHE_CHECK(for ncurses version, cf_cv_ncurses_version,[
2388 cf_cv_ncurses_version=no
2392 #include <${cf_cv_ncurses_header:-curses.h}>
2396 FILE *fp = fopen("$cf_tempfile", "w");
2397 #ifdef NCURSES_VERSION
2398 # ifdef NCURSES_VERSION_PATCH
2399 fprintf(fp, "%s.%d\n", NCURSES_VERSION, NCURSES_VERSION_PATCH);
2401 fprintf(fp, "%s\n", NCURSES_VERSION);
2405 fprintf(fp, "old\n");
2410 ${cf_cv_main_return:-return}(0);
2412 cf_cv_ncurses_version=`cat $cf_tempfile`],,[
2414 # This will not work if the preprocessor splits the line after the
2415 # Autoconf token. The 'unproto' program does that.
2416 cat > conftest.$ac_ext <<EOF
2417 #include <${cf_cv_ncurses_header:-curses.h}>
2419 #ifdef NCURSES_VERSION
2420 Autoconf NCURSES_VERSION
2428 cf_try="$ac_cpp conftest.$ac_ext 2>&AC_FD_CC | grep '^Autoconf ' >conftest.out"
2430 if test -f conftest.out ; then
2431 cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[[^"]]*"%%' -e 's%".*%%'`
2432 test -n "$cf_out" && cf_cv_ncurses_version="$cf_out"
2438 test "$cf_cv_ncurses_version" = no || AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
2440 dnl ---------------------------------------------------------------------------
2441 dnl CF_NCURSES_WRAP_PREFIX version: 1 updated: 2009/03/28 16:08:10
2442 dnl ----------------------
2443 dnl Check for ncurses "wrap-prefix" used for public variables which have been
2444 dnl wrapped with a function to help with concurrency control.
2445 AC_DEFUN([CF_NCURSES_WRAP_PREFIX],
2447 AC_MSG_CHECKING(for ncurses wrap-prefix)
2448 AC_ARG_WITH(ncurses-wrap-prefix,
2449 [ --with-ncurses-wrap-prefix naming-prefix for ncurses wrapped-variables],
2450 [NCURSES_WRAP_PREFIX=$withval],
2451 [NCURSES_WRAP_PREFIX=_nc_])
2452 AC_MSG_RESULT($NCURSES_WRAP_PREFIX)
2454 AC_SUBST(NCURSES_WRAP_PREFIX)
2456 dnl ---------------------------------------------------------------------------
2457 dnl CF_NETBSD_FORM_H version: 2 updated: 2012/10/06 16:39:58
2458 dnl ----------------
2459 dnl Check for NetBSD's form.h, which is incompatible with SVr4 and ncurses.
2460 dnl Some workarounds are needed in client programs to allow them to compile.
2461 AC_DEFUN([CF_NETBSD_FORM_H],[
2462 AC_CACHE_CHECK(for NetBSD form.h,cf_cv_netbsd_form_h,[
2464 #include <${cf_cv_ncurses_header:-curses.h}>
2468 int y = current_field(form)->cursor_ypos;
2469 int x = current_field(form)->cursor_xpos;
2470 ],[cf_cv_netbsd_form_h=yes
2471 ],[cf_cv_netbsd_form_h=no])
2474 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])
2476 dnl ---------------------------------------------------------------------------
2477 dnl CF_NETBSD_MENU_H version: 2 updated: 2012/10/06 16:39:58
2478 dnl ----------------
2479 dnl Check for NetBSD's menu.h, which is incompatible with SVr4 and ncurses.
2480 dnl Some workarounds are needed in client programs to allow them to compile.
2481 AC_DEFUN([CF_NETBSD_MENU_H],[
2482 AC_CACHE_CHECK(for NetBSD menu.h,cf_cv_netbsd_menu_h,[
2484 #include <${cf_cv_ncurses_header:-curses.h}>
2488 int y = menu->max_item_width;
2489 ],[cf_cv_netbsd_menu_h=yes
2490 ],[cf_cv_netbsd_menu_h=no])
2493 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])
2495 dnl ---------------------------------------------------------------------------
2496 dnl CF_NO_LEAKS_OPTION version: 6 updated: 2015/04/12 15:39:00
2497 dnl ------------------
2498 dnl see CF_WITH_NO_LEAKS
2499 AC_DEFUN([CF_NO_LEAKS_OPTION],[
2500 AC_MSG_CHECKING(if you want to use $1 for testing)
2503 [AC_DEFINE_UNQUOTED($3,1,"Define to 1 if you want to use $1 for testing.")ifelse([$4],,[
2506 : ${with_cflags:=-g}
2507 : ${with_no_leaks:=yes}
2510 AC_MSG_RESULT(${with_$1:-no})
2512 case .$with_cflags in
2524 dnl ---------------------------------------------------------------------------
2525 dnl CF_PATH_SYNTAX version: 16 updated: 2015/04/18 08:56:57
2527 dnl Check the argument to see that it looks like a pathname. Rewrite it if it
2528 dnl begins with one of the prefix/exec_prefix variables, and then again if the
2529 dnl result begins with 'NONE'. This is necessary to work around autoconf's
2530 dnl delayed evaluation of those symbols.
2531 AC_DEFUN([CF_PATH_SYNTAX],[
2532 if test "x$prefix" != xNONE; then
2533 cf_path_syntax="$prefix"
2535 cf_path_syntax="$ac_default_prefix"
2539 (.\[$]\(*\)*|.\'*\'*)
2543 (.[[a-zA-Z]]:[[\\/]]*) # OS/2 EMX
2545 (.\[$]{*prefix}*|.\[$]{*dir}*)
2549 $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
2554 $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
2557 ifelse([$2],,[AC_MSG_ERROR([expected a pathname, not \"[$]$1\"])],$2)
2561 dnl ---------------------------------------------------------------------------
2562 dnl CF_PDCURSES_X11 version: 13 updated: 2012/10/06 16:39:58
2564 dnl Configure for PDCurses' X11 library
2565 AC_DEFUN([CF_PDCURSES_X11],[
2566 AC_REQUIRE([CF_X_ATHENA])
2568 CF_ACVERSION_CHECK(2.52,
2569 [AC_CHECK_TOOLS(XCURSES_CONFIG, xcurses-config, none)],
2570 [AC_PATH_PROGS(XCURSES_CONFIG, xcurses-config, none)])
2572 if test "$XCURSES_CONFIG" != none ; then
2574 CPPFLAGS="$CPPFLAGS `$XCURSES_CONFIG --cflags`"
2575 CF_ADD_LIBS(`$XCURSES_CONFIG --libs`)
2577 cf_cv_lib_XCurses=yes
2581 LDFLAGS="$LDFLAGS $X_LIBS"
2582 CF_CHECK_CFLAGS($X_CFLAGS)
2583 AC_CHECK_LIB(X11,XOpenDisplay,
2584 [CF_ADD_LIBS(-lX11)],,
2585 [$X_PRE_LIBS $LIBS $X_EXTRA_LIBS])
2586 AC_CACHE_CHECK(for XCurses library,cf_cv_lib_XCurses,[
2587 CF_ADD_LIBS(-lXCurses)
2589 #include <xcurses.h>
2590 char *XCursesProgramName = "test";
2592 [cf_cv_lib_XCurses=yes],
2593 [cf_cv_lib_XCurses=no])
2598 if test $cf_cv_lib_XCurses = yes ; then
2599 AC_DEFINE(UNIX,1,[Define to 1 if using PDCurses on Unix])
2600 AC_DEFINE(XCURSES,1,[Define to 1 if using PDCurses on Unix])
2601 AC_CHECK_HEADER(xcurses.h, AC_DEFINE(HAVE_XCURSES,1,[Define to 1 if using PDCurses on Unix]))
2603 AC_MSG_ERROR(Cannot link with XCurses)
2606 dnl ---------------------------------------------------------------------------
2607 dnl CF_PKG_CONFIG version: 10 updated: 2015/04/26 18:06:58
2609 dnl Check for the package-config program, unless disabled by command-line.
2610 AC_DEFUN([CF_PKG_CONFIG],
2612 AC_MSG_CHECKING(if you want to use pkg-config)
2613 AC_ARG_WITH(pkg-config,
2614 [ --with-pkg-config{=path} enable/disable use of pkg-config],
2615 [cf_pkg_config=$withval],
2616 [cf_pkg_config=yes])
2617 AC_MSG_RESULT($cf_pkg_config)
2619 case $cf_pkg_config in
2624 CF_ACVERSION_CHECK(2.52,
2625 [AC_PATH_TOOL(PKG_CONFIG, pkg-config, none)],
2626 [AC_PATH_PROG(PKG_CONFIG, pkg-config, none)])
2633 test -z "$PKG_CONFIG" && PKG_CONFIG=none
2634 if test "$PKG_CONFIG" != none ; then
2635 CF_PATH_SYNTAX(PKG_CONFIG)
2636 elif test "x$cf_pkg_config" != xno ; then
2637 AC_MSG_WARN(pkg-config is not installed)
2640 AC_SUBST(PKG_CONFIG)
2642 dnl ---------------------------------------------------------------------------
2643 dnl CF_POSIX_C_SOURCE version: 9 updated: 2015/04/12 15:39:00
2644 dnl -----------------
2645 dnl Define _POSIX_C_SOURCE to the given level, and _POSIX_SOURCE if needed.
2647 dnl POSIX.1-1990 _POSIX_SOURCE
2648 dnl POSIX.1-1990 and _POSIX_SOURCE and
2649 dnl POSIX.2-1992 C-Language _POSIX_C_SOURCE=2
2651 dnl POSIX.1b-1993 _POSIX_C_SOURCE=199309L
2652 dnl POSIX.1c-1996 _POSIX_C_SOURCE=199506L
2653 dnl X/Open 2000 _POSIX_C_SOURCE=200112L
2656 dnl $1 is the nominal value for _POSIX_C_SOURCE
2657 AC_DEFUN([CF_POSIX_C_SOURCE],
2659 cf_POSIX_C_SOURCE=ifelse([$1],,199506L,[$1])
2661 cf_save_CFLAGS="$CFLAGS"
2662 cf_save_CPPFLAGS="$CPPFLAGS"
2664 CF_REMOVE_DEFINE(cf_trim_CFLAGS,$cf_save_CFLAGS,_POSIX_C_SOURCE)
2665 CF_REMOVE_DEFINE(cf_trim_CPPFLAGS,$cf_save_CPPFLAGS,_POSIX_C_SOURCE)
2667 AC_CACHE_CHECK(if we should define _POSIX_C_SOURCE,cf_cv_posix_c_source,[
2668 CF_MSG_LOG(if the symbol is already defined go no further)
2669 AC_TRY_COMPILE([#include <sys/types.h>],[
2670 #ifndef _POSIX_C_SOURCE
2673 [cf_cv_posix_c_source=no],
2674 [cf_want_posix_source=no
2675 case .$cf_POSIX_C_SOURCE in
2677 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
2680 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
2681 cf_want_posix_source=yes
2684 cf_want_posix_source=yes
2687 if test "$cf_want_posix_source" = yes ; then
2688 AC_TRY_COMPILE([#include <sys/types.h>],[
2689 #ifdef _POSIX_SOURCE
2692 cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE")
2694 CF_MSG_LOG(ifdef from value $cf_POSIX_C_SOURCE)
2695 CFLAGS="$cf_trim_CFLAGS"
2696 CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source"
2697 CF_MSG_LOG(if the second compile does not leave our definition intact error)
2698 AC_TRY_COMPILE([#include <sys/types.h>],[
2699 #ifndef _POSIX_C_SOURCE
2702 [cf_cv_posix_c_source=no])
2703 CFLAGS="$cf_save_CFLAGS"
2704 CPPFLAGS="$cf_save_CPPFLAGS"
2708 if test "$cf_cv_posix_c_source" != no ; then
2709 CFLAGS="$cf_trim_CFLAGS"
2710 CPPFLAGS="$cf_trim_CPPFLAGS"
2711 CF_ADD_CFLAGS($cf_cv_posix_c_source)
2715 dnl ---------------------------------------------------------------------------
2716 dnl CF_PRG_RULES version: 1 updated: 2006/06/03 11:45:08
2718 dnl Append definitions and rules for the given programs to the subdirectory
2719 dnl Makefiles, and the recursion rule for the top-level Makefile.
2722 dnl $1 = script to run
2723 dnl $2 = list of subdirectories
2727 AC_DEFUN([CF_PRG_RULES],
2731 if test ! -d $srcdir/$cf_dir; then
2733 elif test -f $srcdir/$cf_dir/programs; then
2734 $AWK -f $1 $srcdir/$cf_dir/programs >>$cf_dir/Makefile
2739 dnl ---------------------------------------------------------------------------
2740 dnl CF_PROG_CC version: 4 updated: 2014/07/12 18:57:58
2742 dnl standard check for CC, plus followup sanity checks
2743 dnl $1 = optional parameter to pass to AC_PROG_CC to specify compiler name
2744 AC_DEFUN([CF_PROG_CC],[
2745 ifelse($1,,[AC_PROG_CC],[AC_PROG_CC($1)])
2747 CF_ACVERSION_CHECK(2.52,
2752 dnl ---------------------------------------------------------------------------
2753 dnl CF_PROG_INSTALL version: 7 updated: 2015/04/18 08:56:57
2755 dnl Force $INSTALL to be an absolute-path. Otherwise, edit_man.sh and the
2756 dnl misc/tabset install won't work properly. Usually this happens only when
2757 dnl using the fallback mkinstalldirs script
2758 AC_DEFUN([CF_PROG_INSTALL],
2764 CF_DIRNAME(cf_dir,$INSTALL)
2765 test -z "$cf_dir" && cf_dir=.
2766 INSTALL=`cd $cf_dir && pwd`/`echo $INSTALL | sed -e 's%^.*/%%'`
2770 dnl ---------------------------------------------------------------------------
2771 dnl CF_PROG_LINT version: 3 updated: 2016/05/22 15:25:54
2773 AC_DEFUN([CF_PROG_LINT],
2775 AC_CHECK_PROGS(LINT, lint cppcheck splint)
2778 dnl ---------------------------------------------------------------------------
2779 dnl CF_REMOVE_DEFINE version: 3 updated: 2010/01/09 11:05:50
2780 dnl ----------------
2781 dnl Remove all -U and -D options that refer to the given symbol from a list
2782 dnl of C compiler options. This works around the problem that not all
2783 dnl compilers process -U and -D options from left-to-right, so a -U option
2784 dnl cannot be used to cancel the effect of a preceding -D option.
2786 dnl $1 = target (which could be the same as the source variable)
2787 dnl $2 = source (including '$')
2788 dnl $3 = symbol to remove
2789 define([CF_REMOVE_DEFINE],
2792 sed -e 's/-[[UD]]'"$3"'\(=[[^ ]]*\)\?[[ ]]/ /g' \
2793 -e 's/-[[UD]]'"$3"'\(=[[^ ]]*\)\?[$]//g'`
2795 dnl ---------------------------------------------------------------------------
2796 dnl CF_RPATH_HACK version: 11 updated: 2013/09/01 13:02:00
2798 AC_DEFUN([CF_RPATH_HACK],
2800 AC_REQUIRE([CF_LD_RPATH_OPT])
2801 AC_MSG_CHECKING(for updated LDFLAGS)
2802 if test -n "$LD_RPATH_OPT" ; then
2803 AC_MSG_RESULT(maybe)
2805 AC_CHECK_PROGS(cf_ldd_prog,ldd,no)
2806 cf_rpath_list="/usr/lib /lib"
2807 if test "$cf_ldd_prog" != no
2811 AC_TRY_LINK([#include <stdio.h>],
2813 [cf_rpath_oops=`$cf_ldd_prog conftest$ac_exeext | fgrep ' not found' | sed -e 's% =>.*$%%' |sort | uniq`
2814 cf_rpath_list=`$cf_ldd_prog conftest$ac_exeext | fgrep / | sed -e 's%^.*[[ ]]/%/%' -e 's%/[[^/]][[^/]]*$%%' |sort | uniq`])
2816 # If we passed the link-test, but get a "not found" on a given library,
2817 # this could be due to inept reconfiguration of gcc to make it only
2818 # partly honor /usr/local/lib (or whatever). Sometimes this behavior
2819 # is intentional, e.g., installing gcc in /usr/bin and suppressing the
2820 # /usr/local libraries.
2821 if test -n "$cf_rpath_oops"
2823 for cf_rpath_src in $cf_rpath_oops
2825 for cf_rpath_dir in \
2830 if test -f $cf_rpath_dir/lib/$cf_rpath_src
2832 CF_VERBOSE(...adding -L$cf_rpath_dir/lib to LDFLAGS for $cf_rpath_src)
2833 LDFLAGS="$LDFLAGS -L$cf_rpath_dir/lib"
2841 CF_VERBOSE(...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS)
2843 CF_RPATH_HACK_2(LDFLAGS)
2844 CF_RPATH_HACK_2(LIBS)
2846 CF_VERBOSE(...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS)
2850 AC_SUBST(EXTRA_LDFLAGS)
2852 dnl ---------------------------------------------------------------------------
2853 dnl CF_RPATH_HACK_2 version: 7 updated: 2015/04/12 15:39:00
2855 dnl Do one set of substitutions for CF_RPATH_HACK, adding an rpath option to
2856 dnl EXTRA_LDFLAGS for each -L option found.
2858 dnl $cf_rpath_list contains a list of directories to ignore.
2860 dnl $1 = variable name to update. The LDFLAGS variable should be the only one,
2861 dnl but LIBS often has misplaced -L options.
2862 AC_DEFUN([CF_RPATH_HACK_2],
2864 CF_VERBOSE(...checking $1 [$]$1)
2867 for cf_rpath_src in [$]$1
2869 case $cf_rpath_src in
2872 # check if this refers to a directory which we will ignore
2874 if test -n "$cf_rpath_list"
2876 for cf_rpath_item in $cf_rpath_list
2878 if test "x$cf_rpath_src" = "x-L$cf_rpath_item"
2886 if test "$cf_rpath_skip" = no
2888 # transform the option
2889 if test "$LD_RPATH_OPT" = "-R " ; then
2890 cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%-R %"`
2892 cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%$LD_RPATH_OPT%"`
2895 # if we have not already added this, add it now
2896 cf_rpath_tst=`echo "$EXTRA_LDFLAGS" | sed -e "s%$cf_rpath_tmp %%"`
2897 if test "x$cf_rpath_tst" = "x$EXTRA_LDFLAGS"
2899 CF_VERBOSE(...Filter $cf_rpath_src ->$cf_rpath_tmp)
2900 EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS"
2905 cf_rpath_dst="$cf_rpath_dst $cf_rpath_src"
2909 CF_VERBOSE(...checked $1 [$]$1)
2910 AC_SUBST(EXTRA_LDFLAGS)
2912 dnl ---------------------------------------------------------------------------
2913 dnl CF_SIGWINCH version: 1 updated: 2006/04/02 16:41:09
2915 dnl Use this macro after CF_XOPEN_SOURCE, but do not require it (not all
2916 dnl programs need this test).
2918 dnl This is really a MacOS X 10.4.3 workaround. Defining _POSIX_C_SOURCE
2919 dnl forces SIGWINCH to be undefined (breaks xterm, ncurses). Oddly, the struct
2920 dnl winsize declaration is left alone - we may revisit this if Apple choose to
2921 dnl break that part of the interface as well.
2922 AC_DEFUN([CF_SIGWINCH],
2924 AC_CACHE_CHECK(if SIGWINCH is defined,cf_cv_define_sigwinch,[
2926 #include <sys/types.h>
2927 #include <sys/signal.h>
2928 ],[int x = SIGWINCH],
2929 [cf_cv_define_sigwinch=yes],
2931 #undef _XOPEN_SOURCE
2932 #undef _POSIX_SOURCE
2933 #undef _POSIX_C_SOURCE
2934 #include <sys/types.h>
2935 #include <sys/signal.h>
2936 ],[int x = SIGWINCH],
2937 [cf_cv_define_sigwinch=maybe],
2938 [cf_cv_define_sigwinch=no])
2942 if test "$cf_cv_define_sigwinch" = maybe ; then
2943 AC_CACHE_CHECK(for actual SIGWINCH definition,cf_cv_fixup_sigwinch,[
2944 cf_cv_fixup_sigwinch=unknown
2946 while test $cf_sigwinch != 1
2949 #undef _XOPEN_SOURCE
2950 #undef _POSIX_SOURCE
2951 #undef _POSIX_C_SOURCE
2952 #include <sys/types.h>
2953 #include <sys/signal.h>
2955 #if SIGWINCH != $cf_sigwinch
2959 [cf_cv_fixup_sigwinch=$cf_sigwinch
2962 cf_sigwinch=`expr $cf_sigwinch - 1`
2966 if test "$cf_cv_fixup_sigwinch" != unknown ; then
2967 CPPFLAGS="$CPPFLAGS -DSIGWINCH=$cf_cv_fixup_sigwinch"
2971 dnl ---------------------------------------------------------------------------
2972 dnl CF_SIG_ATOMIC_T version: 3 updated: 2012/10/04 20:12:20
2974 dnl signal handler, but there are some gcc depedencies in that recommendation.
2976 AC_DEFUN([CF_SIG_ATOMIC_T],
2978 AC_MSG_CHECKING(for signal global datatype)
2979 AC_CACHE_VAL(cf_cv_sig_atomic_t,[
2981 "volatile sig_atomic_t" \
2986 #include <sys/types.h>
2992 static void handler(int sig)
2996 [signal(SIGINT, handler);
2998 [cf_cv_sig_atomic_t=$cf_type],
2999 [cf_cv_sig_atomic_t=no])
3000 test "$cf_cv_sig_atomic_t" != no && break
3003 AC_MSG_RESULT($cf_cv_sig_atomic_t)
3004 test "$cf_cv_sig_atomic_t" != no && AC_DEFINE_UNQUOTED(SIG_ATOMIC_T, $cf_cv_sig_atomic_t,[Define to signal global datatype])
3006 dnl ---------------------------------------------------------------------------
3007 dnl CF_SUBDIR_PATH version: 7 updated: 2014/12/04 04:33:06
3009 dnl Construct a search-list for a nonstandard header/lib-file
3010 dnl $1 = the variable to return as result
3011 dnl $2 = the package name
3012 dnl $3 = the subdirectory, e.g., bin, include or lib
3013 AC_DEFUN([CF_SUBDIR_PATH],
3017 CF_ADD_SUBDIR_PATH($1,$2,$3,$prefix,NONE)
3019 for cf_subdir_prefix in \
3027 CF_ADD_SUBDIR_PATH($1,$2,$3,$cf_subdir_prefix,$prefix)
3030 dnl ---------------------------------------------------------------------------
3031 dnl CF_SYS_TIME_SELECT version: 6 updated: 2015/04/18 08:56:57
3032 dnl ------------------
3033 dnl Check if we can include <sys/time.h> with <sys/select.h>; this breaks on
3034 dnl older SCO configurations.
3035 AC_DEFUN([CF_SYS_TIME_SELECT],
3037 AC_MSG_CHECKING(if sys/time.h works with sys/select.h)
3038 AC_CACHE_VAL(cf_cv_sys_time_select,[
3040 #include <sys/types.h>
3041 #ifdef HAVE_SYS_TIME_H
3042 #include <sys/time.h>
3044 #ifdef HAVE_SYS_SELECT_H
3045 #include <sys/select.h>
3047 ],[],[cf_cv_sys_time_select=yes],
3048 [cf_cv_sys_time_select=no])
3050 AC_MSG_RESULT($cf_cv_sys_time_select)
3051 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>])
3053 dnl ---------------------------------------------------------------------------
3054 dnl CF_TERM_HEADER version: 4 updated: 2015/04/15 19:08:48
3056 dnl Look for term.h, which is part of X/Open curses. It defines the interface
3057 dnl to terminfo database. Usually it is in the same include-path as curses.h,
3058 dnl but some packagers change this, breaking various applications.
3059 AC_DEFUN([CF_TERM_HEADER],[
3060 AC_CACHE_CHECK(for terminfo header, cf_cv_term_header,[
3061 case ${cf_cv_ncurses_header} in
3062 (*/ncurses.h|*/ncursesw.h)
3063 cf_term_header=`echo "$cf_cv_ncurses_header" | sed -e 's%ncurses[[^.]]*\.h$%term.h%'`
3066 cf_term_header=term.h
3070 for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
3072 AC_TRY_COMPILE([#include <stdio.h>
3073 #include <${cf_cv_ncurses_header:-curses.h}>
3075 ],[int x = auto_left_margin],[
3076 cf_cv_term_header="$cf_test"],[
3077 cf_cv_term_header=unknown
3079 test "$cf_cv_term_header" != unknown && break
3083 # Set definitions to allow ifdef'ing to accommodate subdirectories
3085 case $cf_cv_term_header in
3087 AC_DEFINE(HAVE_TERM_H,1,[Define to 1 if we have term.h])
3091 case $cf_cv_term_header in
3093 AC_DEFINE(HAVE_NCURSES_TERM_H,1,[Define to 1 if we have ncurses/term.h])
3096 AC_DEFINE(HAVE_NCURSESW_TERM_H,1,[Define to 1 if we have ncursesw/term.h])
3100 dnl ---------------------------------------------------------------------------
3101 dnl CF_TOP_BUILDDIR version: 2 updated: 2013/07/27 17:38:32
3103 dnl Define a top_builddir symbol, for applications that need an absolute path.
3104 AC_DEFUN([CF_TOP_BUILDDIR],
3106 top_builddir=ifelse($1,,`pwd`,$1)
3107 AC_SUBST(top_builddir)
3109 dnl ---------------------------------------------------------------------------
3110 dnl CF_TPUTS_PROTO version: 3 updated: 2015/04/17 21:26:14
3112 dnl Check for type of function-pointer passed to tputs. Some old
3113 dnl implementations used functions that had different prototypes, making it
3114 dnl hard to compile portable programs using tputs.
3115 AC_DEFUN([CF_TPUTS_PROTO],[
3116 CF_CURSES_FUNCS(tputs)
3117 if test x$cf_cv_func_tputs = xyes
3120 for cf_arg in int char
3122 for cf_ret in int void
3124 if test $cf_ret = void
3126 cf_return="/* nothing */"
3128 cf_return="return value"
3131 #include <${cf_cv_ncurses_header:-curses.h}>
3132 #include <$cf_cv_term_header>
3134 static $cf_ret outc($cf_arg value) { $cf_return; }
3136 tputs("hello", 0, outc);
3137 ${cf_cv_main_return:-return}(0);
3139 CF_VERBOSE([prototype $cf_ret func($cf_arg value)])
3140 cat >>confdefs.h <<EOF
3141 #define TPUTS_ARG $cf_arg
3142 #define TPUTS_PROTO(func,value) $cf_ret func(TPUTS_ARG value)
3143 #define TPUTS_RETURN(value) $cf_return
3149 test $cf_done = yes && break
3153 dnl ---------------------------------------------------------------------------
3154 dnl CF_TRIM_X_LIBS version: 3 updated: 2015/04/12 15:39:00
3156 dnl Trim extra base X libraries added as a workaround for inconsistent library
3157 dnl dependencies returned by "new" pkg-config files.
3158 AC_DEFUN([CF_TRIM_X_LIBS],[
3159 for cf_trim_lib in Xmu Xt X11
3162 (*-l$cf_trim_lib\ *-l$cf_trim_lib*)
3163 LIBS=`echo "$LIBS " | sed -e 's/ / /g' -e 's%-l'"$cf_trim_lib"' %%' -e 's/ $//'`
3164 CF_VERBOSE(..trimmed $LIBS)
3169 dnl ---------------------------------------------------------------------------
3170 dnl CF_TRY_PKG_CONFIG version: 5 updated: 2013/07/06 21:27:06
3171 dnl -----------------
3172 dnl This is a simple wrapper to use for pkg-config, for libraries which may be
3173 dnl available in that form.
3175 dnl $1 = package name
3176 dnl $2 = extra logic to use, if any, after updating CFLAGS and LIBS
3177 dnl $3 = logic to use if pkg-config does not have the package
3178 AC_DEFUN([CF_TRY_PKG_CONFIG],[
3179 AC_REQUIRE([CF_PKG_CONFIG])
3181 if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists $1; then
3182 CF_VERBOSE(found package $1)
3183 cf_pkgconfig_incs="`$PKG_CONFIG --cflags $1 2>/dev/null`"
3184 cf_pkgconfig_libs="`$PKG_CONFIG --libs $1 2>/dev/null`"
3185 CF_VERBOSE(package $1 CFLAGS: $cf_pkgconfig_incs)
3186 CF_VERBOSE(package $1 LIBS: $cf_pkgconfig_libs)
3187 CF_ADD_CFLAGS($cf_pkgconfig_incs)
3188 CF_ADD_LIBS($cf_pkgconfig_libs)
3189 ifelse([$2],,:,[$2])
3193 ifelse([$3],,:,[$3])
3196 dnl ---------------------------------------------------------------------------
3197 dnl CF_TRY_XOPEN_SOURCE version: 1 updated: 2011/10/30 17:09:50
3198 dnl -------------------
3199 dnl If _XOPEN_SOURCE is not defined in the compile environment, check if we
3200 dnl can define it successfully.
3201 AC_DEFUN([CF_TRY_XOPEN_SOURCE],[
3202 AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[
3206 #include <sys/types.h>
3208 #ifndef _XOPEN_SOURCE
3211 [cf_cv_xopen_source=no],
3212 [cf_save="$CPPFLAGS"
3213 CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
3217 #include <sys/types.h>
3219 #ifdef _XOPEN_SOURCE
3222 [cf_cv_xopen_source=no],
3223 [cf_cv_xopen_source=$cf_XOPEN_SOURCE])
3228 if test "$cf_cv_xopen_source" != no ; then
3229 CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE)
3230 CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE)
3231 cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
3232 CF_ADD_CFLAGS($cf_temp_xopen_source)
3235 dnl ---------------------------------------------------------------------------
3236 dnl CF_UPPER version: 5 updated: 2001/01/29 23:40:59
3238 dnl Make an uppercase version of a variable
3239 dnl $1=uppercase($2)
3240 AC_DEFUN([CF_UPPER],
3242 $1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
3244 dnl ---------------------------------------------------------------------------
3245 dnl CF_UTF8_LIB version: 8 updated: 2012/10/06 08:57:51
3247 dnl Check for multibyte support, and if not found, utf8 compatibility library
3248 AC_DEFUN([CF_UTF8_LIB],
3250 AC_CACHE_CHECK(for multibyte character support,cf_cv_utf8_lib,[
3251 cf_save_LIBS="$LIBS"
3253 #include <stdlib.h>],[putwc(0,0);],
3254 [cf_cv_utf8_lib=yes],
3256 #include <libutf8.h>],[putwc(0,0);],utf8,
3257 [cf_cv_utf8_lib=add-on],
3258 [cf_cv_utf8_lib=no])
3261 # HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
3263 if test "$cf_cv_utf8_lib" = "add-on" ; then
3264 AC_DEFINE(HAVE_LIBUTF8_H,1,[Define to 1 if we should include libutf8.h])
3265 CF_ADD_INCDIR($cf_cv_header_path_utf8)
3266 CF_ADD_LIBDIR($cf_cv_library_path_utf8)
3267 CF_ADD_LIBS($cf_cv_library_file_utf8)
3270 dnl ---------------------------------------------------------------------------
3271 dnl CF_VERBOSE version: 3 updated: 2007/07/29 09:55:12
3273 dnl Use AC_VERBOSE w/o the warnings
3274 AC_DEFUN([CF_VERBOSE],
3275 [test -n "$verbose" && echo " $1" 1>&AC_FD_MSG
3278 dnl ---------------------------------------------------------------------------
3279 dnl CF_WCHAR_TYPE version: 4 updated: 2012/10/06 16:39:58
3281 dnl Check if type wide-character type $1 is declared, and if so, which header
3282 dnl file is needed. The second parameter is used to set a shell variable when
3283 dnl the type is not found. The first parameter sets a shell variable for the
3285 AC_DEFUN([CF_WCHAR_TYPE],
3287 # This is needed on Tru64 5.0 to declare $1
3288 AC_CACHE_CHECK(if we must include wchar.h to declare $1,cf_cv_$1,[
3293 #ifdef HAVE_LIBUTF8_H
3294 #include <libutf8.h>
3303 #ifdef HAVE_LIBUTF8_H
3304 #include <libutf8.h>
3308 [cf_cv_$1=unknown])])])
3310 if test "$cf_cv_$1" = yes ; then
3311 AC_DEFINE(NEED_WCHAR_H,1,[Define to 1 if we must include wchar.h])
3316 # if we do not find $1 in either place, use substitution to provide a fallback.
3317 if test "$cf_cv_$1" = unknown ; then
3322 # if we find $1 in either place, use substitution to provide a fallback.
3323 if test "$cf_cv_$1" != unknown ; then
3328 dnl ---------------------------------------------------------------------------
3329 dnl CF_WITH_CURSES_DIR version: 3 updated: 2010/11/20 17:02:38
3330 dnl ------------------
3331 dnl Wrapper for AC_ARG_WITH to specify directory under which to look for curses
3333 AC_DEFUN([CF_WITH_CURSES_DIR],[
3335 AC_MSG_CHECKING(for specific curses-directory)
3336 AC_ARG_WITH(curses-dir,
3337 [ --with-curses-dir=DIR directory in which (n)curses is installed],
3338 [cf_cv_curses_dir=$withval],
3339 [cf_cv_curses_dir=no])
3340 AC_MSG_RESULT($cf_cv_curses_dir)
3342 if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
3344 CF_PATH_SYNTAX(withval)
3345 if test -d "$cf_cv_curses_dir"
3347 CF_ADD_INCDIR($cf_cv_curses_dir/include)
3348 CF_ADD_LIBDIR($cf_cv_curses_dir/lib)
3352 dnl ---------------------------------------------------------------------------
3353 dnl CF_WITH_DBMALLOC version: 7 updated: 2010/06/21 17:26:47
3354 dnl ----------------
3355 dnl Configure-option for dbmalloc. The optional parameter is used to override
3356 dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
3357 AC_DEFUN([CF_WITH_DBMALLOC],[
3358 CF_NO_LEAKS_OPTION(dbmalloc,
3359 [ --with-dbmalloc test: use Conor Cahill's dbmalloc library],
3362 if test "$with_dbmalloc" = yes ; then
3363 AC_CHECK_HEADER(dbmalloc.h,
3364 [AC_CHECK_LIB(dbmalloc,[debug_malloc]ifelse([$1],,[],[,$1]))])
3367 dnl ---------------------------------------------------------------------------
3368 dnl CF_WITH_DMALLOC version: 7 updated: 2010/06/21 17:26:47
3370 dnl Configure-option for dmalloc. The optional parameter is used to override
3371 dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
3372 AC_DEFUN([CF_WITH_DMALLOC],[
3373 CF_NO_LEAKS_OPTION(dmalloc,
3374 [ --with-dmalloc test: use Gray Watson's dmalloc library],
3377 if test "$with_dmalloc" = yes ; then
3378 AC_CHECK_HEADER(dmalloc.h,
3379 [AC_CHECK_LIB(dmalloc,[dmalloc_debug]ifelse([$1],,[],[,$1]))])
3382 dnl ---------------------------------------------------------------------------
3383 dnl CF_WITH_NCURSES_ETC version: 5 updated: 2016/02/20 19:23:20
3384 dnl -------------------
3385 dnl Use this macro for programs which use any variant of "curses", e.g.,
3386 dnl "ncurses", and "PDCurses". Programs that can use curses and some unrelated
3387 dnl library (such as slang) should use a "--with-screen=XXX" option.
3389 dnl This does not use AC_DEFUN, because that would tell autoconf to run each
3390 dnl of the macros inside this one - before this macro.
3391 define([CF_WITH_NCURSES_ETC],[
3396 AC_MSG_CHECKING(for specified curses library type)
3398 [ --with-screen=XXX use specified curses-libraries],
3399 [cf_cv_screen=$withval],[
3401 AC_ARG_WITH(ncursesw,
3402 [ --with-ncursesw use wide ncurses-libraries],
3403 [cf_cv_screen=ncursesw],[
3405 AC_ARG_WITH(ncurses,
3406 [ --with-ncurses use ncurses-libraries],
3407 [cf_cv_screen=ncurses],[
3409 AC_ARG_WITH(pdcurses,
3410 [ --with-pdcurses compile/link with pdcurses X11 library],
3411 [cf_cv_screen=pdcurses],[
3413 AC_ARG_WITH(curses-colr,
3414 [ --with-curses-colr compile/link with HPUX 10.x color-curses],
3415 [cf_cv_screen=curses_colr],[
3417 AC_ARG_WITH(curses-5lib,
3418 [ --with-curses-5lib compile/link with SunOS 5lib curses],
3419 [cf_cv_screen=curses_5lib])])])])])])
3421 AC_MSG_RESULT($cf_cv_screen)
3423 case $cf_cv_screen in
3429 CF_NCURSES_CONFIG($cf_cv_screen)
3432 CF_NCURSES_CONFIG($cf_cv_screen)
3438 AC_MSG_ERROR(unexpected screen-value: $cf_cv_screen)
3442 CF_NCURSES_PTHREADS($cf_cv_screen)
3445 dnl ---------------------------------------------------------------------------
3446 dnl CF_WITH_VALGRIND version: 1 updated: 2006/12/14 18:00:21
3447 dnl ----------------
3448 AC_DEFUN([CF_WITH_VALGRIND],[
3449 CF_NO_LEAKS_OPTION(valgrind,
3450 [ --with-valgrind test: use valgrind],
3453 dnl ---------------------------------------------------------------------------
3454 dnl CF_XOPEN_CURSES version: 13 updated: 2015/12/12 20:59:52
3456 dnl Test if we should define X/Open source for curses, needed on Digital Unix
3457 dnl 4.x, to see the extended functions, but breaks on IRIX 6.x.
3459 dnl The getbegyx() check is needed for HPUX, which omits legacy macros such
3460 dnl as getbegy(). The latter is better design, but the former is standard.
3461 AC_DEFUN([CF_XOPEN_CURSES],
3463 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
3464 AC_CACHE_CHECK(definition to turn on extended curses functions,cf_cv_need_xopen_extension,[
3465 cf_cv_need_xopen_extension=unknown
3468 #include <${cf_cv_ncurses_header:-curses.h}>],[
3469 #if defined(NCURSES_VERSION_PATCH)
3470 #if (NCURSES_VERSION_PATCH < 20100501) && (NCURSES_VERSION_PATCH >= 20100403)
3474 #ifdef NCURSES_VERSION
3476 int check2 = curs_set((int)sizeof(check));
3478 long x = winnstr(stdscr, "", 0);
3480 getbegyx(stdscr, y1, x1)],
3481 [cf_cv_need_xopen_extension=none],
3483 for cf_try_xopen_extension in _XOPEN_SOURCE_EXTENDED NCURSES_WIDECHAR
3486 #define $cf_try_xopen_extension 1
3488 #include <${cf_cv_ncurses_header:-curses.h}>],[
3489 #ifdef NCURSES_VERSION
3491 int check2 = curs_set((int)sizeof(check));
3493 long x = winnstr(stdscr, "", 0);
3495 getbegyx(stdscr, y1, x1)],
3496 [cf_cv_need_xopen_extension=$cf_try_xopen_extension; break])
3501 case $cf_cv_need_xopen_extension in
3503 CPPFLAGS="$CPPFLAGS -D$cf_cv_need_xopen_extension"
3508 dnl ---------------------------------------------------------------------------
3509 dnl CF_XOPEN_SOURCE version: 52 updated: 2016/08/27 12:21:42
3511 dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
3512 dnl or adapt to the vendor's definitions to get equivalent functionality,
3513 dnl without losing the common non-POSIX features.
3516 dnl $1 is the nominal value for _XOPEN_SOURCE
3517 dnl $2 is the nominal value for _POSIX_C_SOURCE
3518 AC_DEFUN([CF_XOPEN_SOURCE],[
3519 AC_REQUIRE([AC_CANONICAL_HOST])
3521 cf_XOPEN_SOURCE=ifelse([$1],,500,[$1])
3522 cf_POSIX_C_SOURCE=ifelse([$2],,199506L,[$2])
3527 cf_xopen_source="-D_ALL_SOURCE"
3533 cf_xopen_source="-D_APPLE_C_SOURCE"
3536 cf_xopen_source="-D_DARWIN_C_SOURCE"
3539 (freebsd*|dragonfly*)
3540 # 5.x headers associate
3541 # _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L
3542 # _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L
3543 cf_POSIX_C_SOURCE=200112L
3545 cf_xopen_source="-D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
3548 cf_xopen_source="-D_HPUX_SOURCE -D_XOPEN_SOURCE=500"
3551 cf_xopen_source="-D_HPUX_SOURCE"
3554 cf_xopen_source="-D_SGI_SOURCE"
3557 (linux*|uclinux*|gnu*|mint*|k*bsd*-gnu|cygwin)
3561 cf_xopen_source="-D_NETBSD_SOURCE" # POSIX.1-2001 features are ifdef'd with this...
3564 # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <sys/select.h> and other headers which use u_int / u_short types
3566 CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
3569 cf_xopen_source="-D_NETBSD_SOURCE" # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
3572 # setting _XOPEN_SOURCE lower than 500 breaks g++ compile with wchar.h, needed for ncursesw
3573 cf_xopen_source="-D_BSD_SOURCE"
3577 # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
3580 cf_xopen_source="-D_OSF_SOURCE"
3583 cf_xopen_source="-D_QNX_SOURCE"
3586 # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
3589 cf_xopen_source="-D__EXTENSIONS__"
3590 cf_cv_xopen_source=broken
3592 (sysv4.2uw2.*) # Novell/SCO UnixWare 2.x (tested on 2.1.2)
3598 CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
3602 if test -n "$cf_xopen_source" ; then
3603 CF_ADD_CFLAGS($cf_xopen_source,true)
3606 dnl In anything but the default case, we may have system-specific setting
3607 dnl which is still not guaranteed to provide all of the entrypoints that
3608 dnl _XOPEN_SOURCE would yield.
3609 if test -n "$cf_XOPEN_SOURCE" && test -z "$cf_cv_xopen_source" ; then
3610 AC_MSG_CHECKING(if _XOPEN_SOURCE really is set)
3611 AC_TRY_COMPILE([#include <stdlib.h>],[
3612 #ifndef _XOPEN_SOURCE
3615 [cf_XOPEN_SOURCE_set=yes],
3616 [cf_XOPEN_SOURCE_set=no])
3617 AC_MSG_RESULT($cf_XOPEN_SOURCE_set)
3618 if test $cf_XOPEN_SOURCE_set = yes
3620 AC_TRY_COMPILE([#include <stdlib.h>],[
3621 #if (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE
3624 [cf_XOPEN_SOURCE_set_ok=yes],
3625 [cf_XOPEN_SOURCE_set_ok=no])
3626 if test $cf_XOPEN_SOURCE_set_ok = no
3628 AC_MSG_WARN(_XOPEN_SOURCE is lower than requested)
3635 dnl ---------------------------------------------------------------------------
3636 dnl CF_X_ATHENA version: 23 updated: 2015/04/12 15:39:00
3638 dnl Check for Xaw (Athena) libraries
3640 dnl Sets $cf_x_athena according to the flavor of Xaw which is used.
3641 AC_DEFUN([CF_X_ATHENA],
3643 cf_x_athena=${cf_x_athena:-Xaw}
3645 AC_MSG_CHECKING(if you want to link with Xaw 3d library)
3648 [ --with-Xaw3d link with Xaw 3d library])
3649 if test "$withval" = yes ; then
3656 AC_MSG_CHECKING(if you want to link with Xaw 3d xft library)
3658 AC_ARG_WITH(Xaw3dxft,
3659 [ --with-Xaw3dxft link with Xaw 3d xft library])
3660 if test "$withval" = yes ; then
3661 cf_x_athena=Xaw3dxft
3667 AC_MSG_CHECKING(if you want to link with neXT Athena library)
3670 [ --with-neXtaw link with neXT Athena library])
3671 if test "$withval" = yes ; then
3678 AC_MSG_CHECKING(if you want to link with Athena-Plus library)
3680 AC_ARG_WITH(XawPlus,
3681 [ --with-XawPlus link with Athena-Plus library])
3682 if test "$withval" = yes ; then
3691 if test "$PKG_CONFIG" != none ; then
3693 test "$cf_x_athena" = Xaw && cf_athena_list="xaw8 xaw7 xaw6"
3694 for cf_athena_pkg in \
3697 ${cf_x_athena}-devel \
3699 lib${cf_x_athena}-devel
3701 CF_TRY_PKG_CONFIG($cf_athena_pkg,[
3702 cf_x_athena_lib="$cf_pkgconfig_libs"
3703 CF_UPPER(cf_x_athena_LIBS,HAVE_LIB_$cf_x_athena)
3704 AC_DEFINE_UNQUOTED($cf_x_athena_LIBS)
3708 AC_CACHE_CHECK(for usable $cf_x_athena/Xmu package,cf_cv_xaw_compat,[
3710 #include <X11/Xmu/CharSet.h>
3712 int check = XmuCompareISOLatin1("big", "small")
3713 ],[cf_cv_xaw_compat=yes],[cf_cv_xaw_compat=no])])
3715 if test "$cf_cv_xaw_compat" = no
3717 # workaround for broken ".pc" files...
3718 case "$cf_x_athena_lib" in
3722 CF_VERBOSE(work around broken package)
3724 cf_first_lib=`echo "$cf_save_xmu" | sed -e 's/^[ ][ ]*//' -e 's/ .*//'`
3725 CF_TRY_PKG_CONFIG(xmu,[
3727 CF_ADD_LIB_AFTER($cf_first_lib,$cf_pkgconfig_libs)
3729 CF_ADD_LIB_AFTER($cf_first_lib,-lXmu)
3740 if test -z "$cf_x_athena_lib" ; then
3743 CF_X_ATHENA_CPPFLAGS($cf_x_athena)
3744 CF_X_ATHENA_LIBS($cf_x_athena)
3747 dnl ---------------------------------------------------------------------------
3748 dnl CF_X_ATHENA_CPPFLAGS version: 5 updated: 2010/05/26 17:35:30
3749 dnl --------------------
3750 dnl Normally invoked by CF_X_ATHENA, with $1 set to the appropriate flavor of
3751 dnl the Athena widgets, e.g., Xaw, Xaw3d, neXtaw.
3752 AC_DEFUN([CF_X_ATHENA_CPPFLAGS],
3754 cf_x_athena_root=ifelse([$1],,Xaw,[$1])
3757 for cf_path in default \
3758 /usr/contrib/X11R6 \
3759 /usr/contrib/X11R5 \
3763 if test -z "$cf_x_athena_inc" ; then
3765 cf_test=X11/$cf_x_athena_root/SimpleMenu.h
3766 if test $cf_path != default ; then
3767 CPPFLAGS="$cf_save -I$cf_path/include"
3768 AC_MSG_CHECKING(for $cf_test in $cf_path)
3770 AC_MSG_CHECKING(for $cf_test)
3773 #include <X11/Intrinsic.h>
3774 #include <$cf_test>],[],
3777 AC_MSG_RESULT($cf_result)
3778 if test "$cf_result" = yes ; then
3779 cf_x_athena_inc=$cf_path
3787 if test -z "$cf_x_athena_inc" ; then
3789 [Unable to successfully find Athena header files with test program])
3790 elif test "$cf_x_athena_inc" != default ; then
3791 CPPFLAGS="$CPPFLAGS -I$cf_x_athena_inc"
3794 dnl ---------------------------------------------------------------------------
3795 dnl CF_X_ATHENA_LIBS version: 12 updated: 2011/07/17 19:55:02
3796 dnl ----------------
3797 dnl Normally invoked by CF_X_ATHENA, with $1 set to the appropriate flavor of
3798 dnl the Athena widgets, e.g., Xaw, Xaw3d, neXtaw.
3799 AC_DEFUN([CF_X_ATHENA_LIBS],
3800 [AC_REQUIRE([CF_X_TOOLKIT])
3801 cf_x_athena_root=ifelse([$1],,Xaw,[$1])
3804 for cf_path in default \
3805 /usr/contrib/X11R6 \
3806 /usr/contrib/X11R5 \
3811 ${cf_x_athena_root} \
3812 ${cf_x_athena_root}7 \
3813 ${cf_x_athena_root}6
3817 "-l$cf_lib -lXpm -lXmu" \
3818 "-l${cf_lib}_s -lXmu_s"
3820 if test -z "$cf_x_athena_lib" ; then
3822 cf_test=XawSimpleMenuAddGlobalActions
3823 if test $cf_path != default ; then
3824 CF_ADD_LIBS(-L$cf_path/lib $cf_libs)
3825 AC_MSG_CHECKING(for $cf_libs in $cf_path)
3827 CF_ADD_LIBS($cf_libs)
3828 AC_MSG_CHECKING(for $cf_test in $cf_libs)
3831 #include <X11/Intrinsic.h>
3832 #include <X11/$cf_x_athena_root/SimpleMenu.h>
3834 $cf_test((XtAppContext) 0)],
3837 AC_MSG_RESULT($cf_result)
3838 if test "$cf_result" = yes ; then
3839 cf_x_athena_lib="$cf_libs"
3845 test -n "$cf_x_athena_lib" && break
3849 if test -z "$cf_x_athena_lib" ; then
3851 [Unable to successfully link Athena library (-l$cf_x_athena_root) with test program])
3854 CF_UPPER(cf_x_athena_LIBS,HAVE_LIB_$cf_x_athena)
3855 AC_DEFINE_UNQUOTED($cf_x_athena_LIBS)
3857 dnl ---------------------------------------------------------------------------
3858 dnl CF_X_EXT version: 3 updated: 2010/06/02 05:03:05
3860 AC_DEFUN([CF_X_EXT],[
3861 CF_TRY_PKG_CONFIG(Xext,,[
3862 AC_CHECK_LIB(Xext,XextCreateExtension,
3863 [CF_ADD_LIB(Xext)])])
3865 dnl ---------------------------------------------------------------------------
3866 dnl CF_X_TOOLKIT version: 23 updated: 2015/04/12 15:39:00
3868 dnl Check for X Toolkit libraries
3869 AC_DEFUN([CF_X_TOOLKIT],
3871 AC_REQUIRE([AC_PATH_XTRA])
3872 AC_REQUIRE([CF_CHECK_CACHE])
3874 # OSX is schizoid about who owns /usr/X11 (old) versus /opt/X11 (new), and (and
3875 # in some cases has installed dummy files in the former, other cases replaced
3876 # it with a link to the new location). This complicates the configure script.
3877 # Check for that pitfall, and recover using pkg-config
3879 # If none of these are set, the configuration is almost certainly broken.
3880 if test -z "${X_CFLAGS}${X_PRE_LIBS}${X_LIBS}${X_EXTRA_LIBS}"
3882 CF_TRY_PKG_CONFIG(x11,,[AC_MSG_WARN(unable to find X11 library)])
3883 CF_TRY_PKG_CONFIG(ice,,[AC_MSG_WARN(unable to find ICE library)])
3884 CF_TRY_PKG_CONFIG(sm,,[AC_MSG_WARN(unable to find SM library)])
3885 CF_TRY_PKG_CONFIG(xt,,[AC_MSG_WARN(unable to find Xt library)])
3890 CF_TRY_PKG_CONFIG(xt,[
3896 # we have an "xt" package, but it may omit Xt's dependency on X11
3897 AC_CACHE_CHECK(for usable X dependency,cf_cv_xt_x11_compat,[
3899 #include <X11/Xlib.h>
3901 int rc1 = XDrawLine((Display*) 0, (Drawable) 0, (GC) 0, 0, 0, 0, 0);
3902 int rc2 = XClearWindow((Display*) 0, (Window) 0);
3903 int rc3 = XMoveWindow((Display*) 0, (Window) 0, 0, 0);
3904 int rc4 = XMoveResizeWindow((Display*)0, (Window)0, 0, 0, 0, 0);
3905 ],[cf_cv_xt_x11_compat=yes],[cf_cv_xt_x11_compat=no])])
3906 if test "$cf_cv_xt_x11_compat" = no
3908 CF_VERBOSE(work around broken X11 dependency)
3909 # 2010/11/19 - good enough until a working Xt on Xcb is delivered.
3910 CF_TRY_PKG_CONFIG(x11,,[CF_ADD_LIB_AFTER(-lXt,-lX11)])
3915 AC_CACHE_CHECK(for usable X Toolkit package,cf_cv_xt_ice_compat,[
3917 #include <X11/Shell.h>
3918 ],[int num = IceConnectionNumber(0)
3919 ],[cf_cv_xt_ice_compat=yes],[cf_cv_xt_ice_compat=no])])
3921 if test "$cf_cv_xt_ice_compat" = no
3923 # workaround for broken ".pc" files used for X Toolkit.
3924 case "x$X_PRE_LIBS" in
3930 CF_VERBOSE(work around broken ICE dependency)
3931 CF_TRY_PKG_CONFIG(ice,
3932 [CF_TRY_PKG_CONFIG(sm)],
3933 [CF_ADD_LIB_AFTER(-lXt,$X_PRE_LIBS)])
3943 LDFLAGS="$X_LIBS $LDFLAGS"
3944 CF_CHECK_CFLAGS($X_CFLAGS)
3946 AC_CHECK_FUNC(XOpenDisplay,,[
3947 AC_CHECK_LIB(X11,XOpenDisplay,
3949 [$X_PRE_LIBS $LIBS $X_EXTRA_LIBS])])
3951 AC_CHECK_FUNC(XtAppInitialize,,[
3952 AC_CHECK_LIB(Xt, XtAppInitialize,
3953 [AC_DEFINE(HAVE_LIBXT,1,[Define to 1 if we can compile with the Xt library])
3955 LIBS="-lXt $X_PRE_LIBS $LIBS $X_EXTRA_LIBS"],,
3956 [$X_PRE_LIBS $LIBS $X_EXTRA_LIBS])])
3959 if test $cf_have_X_LIBS = no ; then
3961 [Unable to successfully link X Toolkit library (-lXt) with
3962 test program. You will have to check and add the proper libraries by hand
3966 dnl ---------------------------------------------------------------------------
3967 dnl CF__CURSES_HEAD version: 2 updated: 2010/10/23 15:54:49
3969 dnl Define a reusable chunk which includes <curses.h> and <term.h> when they
3970 dnl are both available.
3971 define([CF__CURSES_HEAD],[
3973 #include <xcurses.h>
3974 char * XCursesProgramName = "test";
3976 #include <${cf_cv_ncurses_header:-curses.h}>
3977 #if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H)
3978 #include <ncursesw/term.h>
3979 #elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H)
3980 #include <ncurses/term.h>
3981 #elif defined(HAVE_TERM_H)