1 dnl***************************************************************************
2 dnl Copyright (c) 2003-2015,2016 Free Software Foundation, Inc. *
4 dnl Permission is hereby granted, free of charge, to any person obtaining a *
5 dnl copy of this software and associated documentation files (the *
6 dnl "Software"), to deal in the Software without restriction, including *
7 dnl without limitation the rights to use, copy, modify, merge, publish, *
8 dnl distribute, distribute with modifications, sublicense, and/or sell *
9 dnl copies of the Software, and to permit persons to whom the Software is *
10 dnl furnished to do so, subject to the following conditions: *
12 dnl The above copyright notice and this permission notice shall be included *
13 dnl in all copies or substantial portions of the Software. *
15 dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
16 dnl OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
17 dnl MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
18 dnl IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
19 dnl DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
20 dnl OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
21 dnl THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
23 dnl Except as contained in this notice, the name(s) of the above copyright *
24 dnl holders shall not be used in advertising or otherwise to promote the *
25 dnl sale, use or other dealings in this Software without prior written *
27 dnl***************************************************************************
29 dnl $Id: aclocal.m4,v 1.133 2016/08/27 16:27:51 tom Exp $
31 dnl Author: Thomas E. Dickey
33 dnl Macros used in NCURSES test programs auto-configuration script.
35 dnl These macros are maintained separately from NCURSES. The copyright on
36 dnl this file applies to the aggregation of macros and does not affect use of
37 dnl these macros in other applications.
39 dnl See http://invisible-island.net/autoconf/ for additional information.
41 dnl ---------------------------------------------------------------------------
42 dnl ---------------------------------------------------------------------------
43 dnl AM_LANGINFO_CODESET version: 4 updated: 2015/04/18 08:56:57
44 dnl -------------------
45 dnl Inserted as requested by gettext 0.10.40
46 dnl File from /usr/share/aclocal
48 dnl ====================
51 dnl From Bruno Haible.
52 AC_DEFUN([AM_LANGINFO_CODESET],
54 AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset,
55 [AC_TRY_LINK([#include <langinfo.h>],
56 [char* cs = nl_langinfo(CODESET);],
57 am_cv_langinfo_codeset=yes,
58 am_cv_langinfo_codeset=no)
60 if test $am_cv_langinfo_codeset = yes; then
61 AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
62 [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
65 dnl ---------------------------------------------------------------------------
66 dnl CF_ACVERSION_CHECK version: 5 updated: 2014/06/04 19:11:49
67 dnl ------------------
68 dnl Conditionally generate script according to whether we're using a given autoconf.
70 dnl $1 = version to compare against
71 dnl $2 = code to use if AC_ACVERSION is at least as high as $1.
72 dnl $3 = code to use if AC_ACVERSION is older than $1.
73 define([CF_ACVERSION_CHECK],
75 ifdef([AC_ACVERSION], ,[ifdef([AC_AUTOCONF_VERSION],[m4_copy([AC_AUTOCONF_VERSION],[AC_ACVERSION])],[m4_copy([m4_PACKAGE_VERSION],[AC_ACVERSION])])])dnl
76 ifdef([m4_version_compare],
77 [m4_if(m4_version_compare(m4_defn([AC_ACVERSION]), [$1]), -1, [$3], [$2])],
78 [CF_ACVERSION_COMPARE(
79 AC_PREREQ_CANON(AC_PREREQ_SPLIT([$1])),
80 AC_PREREQ_CANON(AC_PREREQ_SPLIT(AC_ACVERSION)), AC_ACVERSION, [$2], [$3])])])dnl
81 dnl ---------------------------------------------------------------------------
82 dnl CF_ACVERSION_COMPARE version: 3 updated: 2012/10/03 18:39:53
83 dnl --------------------
84 dnl CF_ACVERSION_COMPARE(MAJOR1, MINOR1, TERNARY1,
85 dnl MAJOR2, MINOR2, TERNARY2,
86 dnl PRINTABLE2, not FOUND, FOUND)
87 define([CF_ACVERSION_COMPARE],
88 [ifelse(builtin([eval], [$2 < $5]), 1,
89 [ifelse([$8], , ,[$8])],
90 [ifelse([$9], , ,[$9])])])dnl
91 dnl ---------------------------------------------------------------------------
92 dnl CF_ADD_CFLAGS version: 12 updated: 2015/04/12 15:39:00
94 dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS
95 dnl The second parameter if given makes this macro verbose.
97 dnl Put any preprocessor definitions that use quoted strings in $EXTRA_CPPFLAGS,
98 dnl to simplify use of $CPPFLAGS in compiler checks, etc., that are easily
99 dnl confused by the quotes (which require backslashes to keep them usable).
100 AC_DEFUN([CF_ADD_CFLAGS],
105 cf_new_extra_cppflags=
107 for cf_add_cflags in $1
109 case $cf_fix_cppflags in
111 case $cf_add_cflags in
112 (-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C)
113 case $cf_add_cflags in
115 cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[[^=]]*='\''\"[[^"]]*//'`
117 test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
118 && test -z "${cf_tst_cflags}" \
119 && cf_fix_cppflags=yes
121 if test $cf_fix_cppflags = yes ; then
122 cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
124 elif test "${cf_tst_cflags}" = "\"'" ; then
125 cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
134 case $cf_add_cflags in
136 cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
137 CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,$cf_tst_cppflags)
140 cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
145 cf_new_cflags="$cf_new_cflags $cf_add_cflags"
150 cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
152 cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[[^"]]*"'\''//'`
154 test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
155 && test -z "${cf_tst_cflags}" \
156 && cf_fix_cppflags=no
161 if test -n "$cf_new_cflags" ; then
162 ifelse([$2],,,[CF_VERBOSE(add to \$CFLAGS $cf_new_cflags)])
163 CFLAGS="$CFLAGS $cf_new_cflags"
166 if test -n "$cf_new_cppflags" ; then
167 ifelse([$2],,,[CF_VERBOSE(add to \$CPPFLAGS $cf_new_cppflags)])
168 CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
171 if test -n "$cf_new_extra_cppflags" ; then
172 ifelse([$2],,,[CF_VERBOSE(add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags)])
173 EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
176 AC_SUBST(EXTRA_CPPFLAGS)
179 dnl ---------------------------------------------------------------------------
180 dnl CF_ADD_INCDIR version: 14 updated: 2015/05/25 20:53:04
182 dnl Add an include-directory to $CPPFLAGS. Don't add /usr/include, since it's
183 dnl redundant. We don't normally need to add -I/usr/local/include for gcc,
184 dnl but old versions (and some misinstalled ones) need that. To make things
185 dnl worse, gcc 3.x may give error messages if -I/usr/local/include is added to
186 dnl the include-path).
187 AC_DEFUN([CF_ADD_INCDIR],
189 if test -n "$1" ; then
190 for cf_add_incdir in $1
192 while test $cf_add_incdir != /usr/include
194 if test -d $cf_add_incdir
197 if test -n "$CFLAGS$CPPFLAGS" ; then
198 # a loop is needed to ensure we can add subdirs of existing dirs
199 for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
200 if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
201 cf_have_incdir=yes; break
206 if test "$cf_have_incdir" = no ; then
207 if test "$cf_add_incdir" = /usr/local/include ; then
210 cf_save_CPPFLAGS=$CPPFLAGS
211 CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
212 AC_TRY_COMPILE([#include <stdio.h>],
215 [cf_have_incdir=yes])
216 CPPFLAGS=$cf_save_CPPFLAGS
221 if test "$cf_have_incdir" = no ; then
222 CF_VERBOSE(adding $cf_add_incdir to include-path)
223 ifelse([$2],,CPPFLAGS,[$2])="$ifelse([$2],,CPPFLAGS,[$2]) -I$cf_add_incdir"
225 cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
226 test "$cf_top_incdir" = "$cf_add_incdir" && break
227 cf_add_incdir="$cf_top_incdir"
238 dnl ---------------------------------------------------------------------------
239 dnl CF_ADD_LIB version: 2 updated: 2010/06/02 05:03:05
241 dnl Add a library, used to enforce consistency.
243 dnl $1 = library to add, without the "-l"
244 dnl $2 = variable to update (default $LIBS)
245 AC_DEFUN([CF_ADD_LIB],[CF_ADD_LIBS(-l$1,ifelse($2,,LIBS,[$2]))])dnl
246 dnl ---------------------------------------------------------------------------
247 dnl CF_ADD_LIBDIR version: 10 updated: 2015/04/18 08:56:57
249 dnl Adds to the library-path
251 dnl Some machines have trouble with multiple -L options.
253 dnl $1 is the (list of) directory(s) to add
254 dnl $2 is the optional name of the variable to update (default LDFLAGS)
256 AC_DEFUN([CF_ADD_LIBDIR],
258 if test -n "$1" ; then
259 for cf_add_libdir in $1
261 if test $cf_add_libdir = /usr/lib ; then
263 elif test -d $cf_add_libdir
266 if test -n "$LDFLAGS$LIBS" ; then
267 # a loop is needed to ensure we can add subdirs of existing dirs
268 for cf_test_libdir in $LDFLAGS $LIBS ; do
269 if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
270 cf_have_libdir=yes; break
274 if test "$cf_have_libdir" = no ; then
275 CF_VERBOSE(adding $cf_add_libdir to library-path)
276 ifelse([$2],,LDFLAGS,[$2])="-L$cf_add_libdir $ifelse([$2],,LDFLAGS,[$2])"
282 dnl ---------------------------------------------------------------------------
283 dnl CF_ADD_LIBS version: 2 updated: 2014/07/13 14:33:27
285 dnl Add one or more libraries, used to enforce consistency. Libraries are
286 dnl prepended to an existing list, since their dependencies are assumed to
287 dnl already exist in the list.
289 dnl $1 = libraries to add, with the "-l", etc.
290 dnl $2 = variable to update (default $LIBS)
291 AC_DEFUN([CF_ADD_LIBS],[
293 # Filter out duplicates - this happens with badly-designed ".pc" files...
294 for cf_add_1lib in [$]ifelse($2,,LIBS,[$2])
296 for cf_add_2lib in $cf_add_libs
298 if test "x$cf_add_1lib" = "x$cf_add_2lib"
304 test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
306 ifelse($2,,LIBS,[$2])="$cf_add_libs"
308 dnl ---------------------------------------------------------------------------
309 dnl CF_ADD_LIB_AFTER version: 3 updated: 2013/07/09 21:27:22
311 dnl Add a given library after another, e.g., following the one it satisfies a
314 dnl $1 = the first library
315 dnl $2 = its dependency
316 AC_DEFUN([CF_ADD_LIB_AFTER],[
317 CF_VERBOSE(...before $LIBS)
318 LIBS=`echo "$LIBS" | sed -e "s/[[ ]][[ ]]*/ /g" -e "s%$1 %$1 $2 %" -e 's% % %g'`
319 CF_VERBOSE(...after $LIBS)
321 dnl ---------------------------------------------------------------------------
322 dnl CF_ADD_SUBDIR_PATH version: 4 updated: 2013/10/08 17:47:05
323 dnl ------------------
324 dnl Append to a search-list for a nonstandard header/lib-file
325 dnl $1 = the variable to return as result
326 dnl $2 = the package name
327 dnl $3 = the subdirectory, e.g., bin, include or lib
328 dnl $4 = the directory under which we will test for subdirectories
329 dnl $5 = a directory that we do not want $4 to match
330 AC_DEFUN([CF_ADD_SUBDIR_PATH],
332 test "x$4" != "x$5" && \
334 ifelse([$5],NONE,,[(test -z "$5" || test x$5 = xNONE || test "x$4" != "x$5") &&]) {
335 test -n "$verbose" && echo " ... testing for $3-directories under $4"
336 test -d $4/$3 && $1="[$]$1 $4/$3"
337 test -d $4/$3/$2 && $1="[$]$1 $4/$3/$2"
338 test -d $4/$3/$2/$3 && $1="[$]$1 $4/$3/$2/$3"
339 test -d $4/$2/$3 && $1="[$]$1 $4/$2/$3"
340 test -d $4/$2/$3/$2 && $1="[$]$1 $4/$2/$3/$2"
343 dnl ---------------------------------------------------------------------------
344 dnl CF_ARG_DISABLE version: 3 updated: 1999/03/30 17:24:31
346 dnl Allow user to disable a normally-on option.
347 AC_DEFUN([CF_ARG_DISABLE],
348 [CF_ARG_OPTION($1,[$2],[$3],[$4],yes)])dnl
349 dnl ---------------------------------------------------------------------------
350 dnl CF_ARG_ENABLE version: 3 updated: 1999/03/30 17:24:31
352 dnl Allow user to enable a normally-off option.
353 AC_DEFUN([CF_ARG_ENABLE],
354 [CF_ARG_OPTION($1,[$2],[$3],[$4],no)])dnl
355 dnl ---------------------------------------------------------------------------
356 dnl CF_ARG_OPTION version: 5 updated: 2015/05/10 19:52:14
358 dnl Restricted form of AC_ARG_ENABLE that ensures user doesn't give bogus
364 dnl $3 = action to perform if option is not default
365 dnl $4 = action if perform if option is default
366 dnl $5 = default option value (either 'yes' or 'no')
367 AC_DEFUN([CF_ARG_OPTION],
368 [AC_ARG_ENABLE([$1],[$2],[test "$enableval" != ifelse([$5],no,yes,no) && enableval=ifelse([$5],no,no,yes)
369 if test "$enableval" != "$5" ; then
371 ,[ $3]) ifelse([$4],,,[
374 fi],[enableval=$5 ifelse([$4],,,[
378 dnl ---------------------------------------------------------------------------
379 dnl CF_CC_ENV_FLAGS version: 5 updated: 2016/08/27 11:24:46
381 dnl Check for user's environment-breakage by stuffing CFLAGS/CPPFLAGS content
382 dnl into CC. This will not help with broken scripts that wrap the compiler
383 dnl with options, but eliminates a more common category of user confusion.
385 dnl In particular, it addresses the problem of being able to run the C
386 dnl preprocessor in a consistent manner.
388 dnl Caveat: this also disallows blanks in the pathname for the compiler, but
389 dnl the nuisance of having inconsistent settings for compiler and preprocessor
390 dnl outweighs that limitation.
391 AC_DEFUN([CF_CC_ENV_FLAGS],
393 # This should have been defined by AC_PROG_CC
396 AC_MSG_CHECKING(\$CC variable)
399 AC_MSG_RESULT(broken)
400 AC_MSG_WARN(your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options)
402 cf_flags=`echo "$CC" | sed -e 's/^.*[[ ]]\(-[[^ ]]\)/\1/'`
403 CC=`echo "$CC " | sed -e 's/[[ ]]-[[^ ]].*$//' -e 's/[[ ]]*$//'`
404 CF_ADD_CFLAGS($cf_flags)
405 CF_VERBOSE(resulting CC: '$CC')
406 CF_VERBOSE(resulting CFLAGS: '$CFLAGS')
407 CF_VERBOSE(resulting CPPFLAGS: '$CPPFLAGS')
414 dnl ---------------------------------------------------------------------------
415 dnl CF_CHECK_CACHE version: 12 updated: 2012/10/02 20:55:03
417 dnl Check if we're accidentally using a cache from a different machine.
418 dnl Derive the system name, as a check for reusing the autoconf cache.
420 dnl If we've packaged config.guess and config.sub, run that (since it does a
421 dnl better job than uname). Normally we'll use AC_CANONICAL_HOST, but allow
422 dnl an extra parameter that we may override, e.g., for AC_CANONICAL_SYSTEM
423 dnl which is useful in cross-compiles.
425 dnl Note: we would use $ac_config_sub, but that is one of the places where
426 dnl autoconf 2.5x broke compatibility with autoconf 2.13
427 AC_DEFUN([CF_CHECK_CACHE],
429 if test -f $srcdir/config.guess || test -f $ac_aux_dir/config.guess ; then
430 ifelse([$1],,[AC_CANONICAL_HOST],[$1])
431 system_name="$host_os"
433 system_name="`(uname -s -r) 2>/dev/null`"
434 if test -z "$system_name" ; then
435 system_name="`(hostname) 2>/dev/null`"
438 test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name",[Define to the system name.])
439 AC_CACHE_VAL(cf_cv_system_name,[cf_cv_system_name="$system_name"])
441 test -z "$system_name" && system_name="$cf_cv_system_name"
442 test -n "$cf_cv_system_name" && AC_MSG_RESULT(Configuring for $cf_cv_system_name)
444 if test ".$system_name" != ".$cf_cv_system_name" ; then
445 AC_MSG_RESULT(Cached system name ($system_name) does not agree with actual ($cf_cv_system_name))
446 AC_MSG_ERROR("Please remove config.cache and try again.")
449 dnl ---------------------------------------------------------------------------
450 dnl CF_CHECK_CFLAGS version: 3 updated: 2014/07/22 05:32:57
452 dnl Conditionally add to $CFLAGS and $CPPFLAGS values which are derived from
453 dnl a build-configuration such as imake. These have the pitfall that they
454 dnl often contain compiler-specific options which we cannot use, mixed with
455 dnl preprocessor options that we usually can.
456 AC_DEFUN([CF_CHECK_CFLAGS],
458 CF_VERBOSE(checking additions to CFLAGS)
459 cf_check_cflags="$CFLAGS"
460 cf_check_cppflags="$CPPFLAGS"
461 CF_ADD_CFLAGS($1,yes)
462 if test "x$cf_check_cflags" != "x$CFLAGS" ; then
463 AC_TRY_LINK([#include <stdio.h>],[printf("Hello world");],,
464 [CF_VERBOSE(test-compile failed. Undoing change to \$CFLAGS)
465 if test "x$cf_check_cppflags" != "x$CPPFLAGS" ; then
466 CF_VERBOSE(but keeping change to \$CPPFLAGS)
468 CFLAGS="$cf_check_flags"])
471 dnl ---------------------------------------------------------------------------
472 dnl CF_CHECK_CURSES_LIB version: 1 updated: 2015/04/25 20:53:11
473 dnl -------------------
474 dnl $1 = nominal library name, used also for header lookup
475 dnl $2 = suffix to append to library name
476 dnl $3 = function to check for using AC_CHECK_LIB
477 AC_DEFUN([CF_CHECK_CURSES_LIB],
479 AC_CHECK_LIB($1$2,$3,[
480 CF_UPPER(cf_upper,have_lib$1)
482 AC_DEFINE_UNQUOTED($cf_upper,1)])
484 dnl ---------------------------------------------------------------------------
485 dnl CF_CLANG_COMPILER version: 2 updated: 2013/11/19 19:23:35
486 dnl -----------------
487 dnl Check if the given compiler is really clang. clang's C driver defines
488 dnl __GNUC__ (fooling the configure script into setting $GCC to yes) but does
489 dnl not ignore some gcc options.
491 dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
492 dnl ensure that it is not mistaken for gcc/g++. It is normally invoked from
493 dnl the wrappers for gcc and g++ warnings.
495 dnl $1 = GCC (default) or GXX
496 dnl $2 = CLANG_COMPILER (default)
497 dnl $3 = CFLAGS (default) or CXXFLAGS
498 AC_DEFUN([CF_CLANG_COMPILER],[
499 ifelse([$2],,CLANG_COMPILER,[$2])=no
501 if test "$ifelse([$1],,[$1],GCC)" = yes ; then
502 AC_MSG_CHECKING(if this is really Clang ifelse([$1],GXX,C++,C) compiler)
503 cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
504 ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -Qunused-arguments"
510 ],[ifelse([$2],,CLANG_COMPILER,[$2])=yes
511 cf_save_CFLAGS="$cf_save_CFLAGS -Qunused-arguments"
513 ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
514 AC_MSG_RESULT($ifelse([$2],,CLANG_COMPILER,[$2]))
517 dnl ---------------------------------------------------------------------------
518 dnl CF_CURSES_ACS_MAP version: 7 updated: 2012/10/06 16:39:58
519 dnl -----------------
520 dnl Check for likely values of acs_map[]:
521 AC_DEFUN([CF_CURSES_ACS_MAP],
523 AC_REQUIRE([CF_NCURSES_WRAP_PREFIX])dnl
524 AC_CACHE_CHECK(for alternate character set array, cf_cv_curses_acs_map,[
525 cf_cv_curses_acs_map=unknown
526 for name in acs_map _acs_map __acs_map ${NCURSES_WRAP_PREFIX}acs_map
529 #include <${cf_cv_ncurses_header:-curses.h}>
531 $name['k'] = ACS_PLUS
532 ],[cf_cv_curses_acs_map=$name; break])
536 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_])
538 dnl ---------------------------------------------------------------------------
539 dnl CF_CURSES_CHECK_DATA version: 5 updated: 2014/07/19 18:41:17
540 dnl --------------------
541 dnl Check if curses.h defines the given data/variable.
542 dnl Use this after CF_NCURSES_CONFIG or CF_CURSES_CONFIG.
543 AC_DEFUN([CF_CURSES_CHECK_DATA],
545 AC_MSG_CHECKING(for data $1 declaration in ${cf_cv_ncurses_header:-curses.h})
547 AC_TRY_COMPILE(CF__CURSES_HEAD,[
549 ],cf_result=yes,cf_result=no)
550 AC_MSG_RESULT($cf_result)
552 if test $cf_result = yes ; then
553 CF_UPPER(cf_result,have_curses_data_$1)
554 AC_DEFINE_UNQUOTED($cf_result)
556 AC_MSG_CHECKING(for data $1 in library)
557 # BSD linkers insist on making weak linkage, but resolve at runtime.
558 AC_TRY_RUN(CF__CURSES_HEAD
564 fprintf(stderr, "testing linkage of $1:%p\n", foo);
565 ${cf_cv_main_return:-return}(foo == 0);
566 }],[cf_result=yes],[cf_result=no],[
568 AC_TRY_LINK(CF__CURSES_HEAD
572 fprintf(stderr, "testing linkage of $1:%p\n", foo);
573 ${cf_cv_main_return:-return}(foo == 0);
575 ],[cf_result=yes],[cf_result=no])
577 AC_MSG_RESULT($cf_result)
578 if test $cf_result = yes ; then
579 CF_UPPER(cf_result,decl_curses_data_$1)
580 AC_DEFINE_UNQUOTED($cf_result)
584 dnl ---------------------------------------------------------------------------
585 dnl CF_CURSES_CHECK_TYPE version: 4 updated: 2012/10/06 16:39:58
586 dnl --------------------
587 dnl Check if curses.h defines the given type
588 AC_DEFUN([CF_CURSES_CHECK_TYPE],
590 AC_MSG_CHECKING(for type $1 in ${cf_cv_ncurses_header:-curses.h})
592 #ifndef _XOPEN_SOURCE_EXTENDED
593 #define _XOPEN_SOURCE_EXTENDED
595 #include <${cf_cv_ncurses_header:-curses.h}>],[
597 ],cf_result=yes,cf_result=no)
598 AC_MSG_RESULT($cf_result)
599 if test $cf_result = yes ; then
600 CF_UPPER(cf_result,have_type_$1)
601 AC_DEFINE_UNQUOTED($cf_result,1,[Define to 1 if we have type $1])
603 AC_DEFINE_UNQUOTED($1,$2,[Define to appropriate type if $1 is not declared])
606 dnl ---------------------------------------------------------------------------
607 dnl CF_CURSES_CONFIG version: 2 updated: 2006/10/29 11:06:27
609 dnl Tie together the configure-script macros for curses. It may be ncurses,
610 dnl but unless asked, we do not make a special search for ncurses. However,
611 dnl still check for the ncurses version number, for use in other macros.
612 AC_DEFUN([CF_CURSES_CONFIG],
618 dnl ---------------------------------------------------------------------------
619 dnl CF_CURSES_CPPFLAGS version: 12 updated: 2015/04/15 19:08:48
620 dnl ------------------
621 dnl Look for the curses headers.
622 AC_DEFUN([CF_CURSES_CPPFLAGS],[
624 AC_CACHE_CHECK(for extra include directories,cf_cv_curses_incdir,[
625 cf_cv_curses_incdir=no
628 if test "x$cf_cv_screen" = "xcurses_colr"
630 test -d /usr/include/curses_colr && \
631 cf_cv_curses_incdir="-I/usr/include/curses_colr"
635 if test "x$cf_cv_screen" = "xcurses_5lib"
637 test -d /usr/5lib && \
638 test -d /usr/5include && \
639 cf_cv_curses_incdir="-I/usr/5include"
644 test "$cf_cv_curses_incdir" != no && CPPFLAGS="$CPPFLAGS $cf_cv_curses_incdir"
649 dnl ---------------------------------------------------------------------------
650 dnl CF_CURSES_FUNCS version: 18 updated: 2014/07/19 18:44:41
652 dnl Curses-functions are a little complicated, since a lot of them are macros.
653 AC_DEFUN([CF_CURSES_FUNCS],
655 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
656 AC_REQUIRE([CF_XOPEN_CURSES])
657 AC_REQUIRE([CF_CURSES_TERM_H])
658 AC_REQUIRE([CF_CURSES_UNCTRL_H])
661 CF_UPPER(cf_tr_func,$cf_func)
662 AC_MSG_CHECKING(for ${cf_func})
663 CF_MSG_LOG(${cf_func})
664 AC_CACHE_VAL(cf_cv_func_$cf_func,[
665 eval cf_result='$ac_cv_func_'$cf_func
666 if test ".$cf_result" != ".no"; then
667 AC_TRY_LINK(CF__CURSES_HEAD,
670 long foo = (long)(&${cf_func});
671 fprintf(stderr, "testing linkage of $cf_func:%p\n", foo);
672 if (foo + 1234 > 5678)
673 ${cf_cv_main_return:-return}(foo);
679 eval 'cf_cv_func_'$cf_func'=$cf_result'
681 # use the computed/retrieved cache-value:
682 eval 'cf_result=$cf_cv_func_'$cf_func
683 AC_MSG_RESULT($cf_result)
684 if test $cf_result != no; then
685 AC_DEFINE_UNQUOTED(HAVE_${cf_tr_func})
689 dnl ---------------------------------------------------------------------------
690 dnl CF_CURSES_HEADER version: 5 updated: 2015/04/23 20:35:30
692 dnl Find a "curses" header file, e.g,. "curses.h", or one of the more common
693 dnl variations of ncurses' installs.
695 dnl $1 = ncurses when looking for ncurses, or is empty
696 AC_DEFUN([CF_CURSES_HEADER],[
697 AC_CACHE_CHECK(if we have identified curses headers,cf_cv_ncurses_header,[
698 cf_cv_ncurses_header=none
700 ncurses.h ifelse($1,,,[$1/ncurses.h]) \
701 curses.h ifelse($1,,,[$1/curses.h]) ifelse($1,,[ncurses/ncurses.h ncurses/curses.h])
703 AC_TRY_COMPILE([#include <${cf_header}>],
704 [initscr(); tgoto("?", 0,0)],
705 [cf_cv_ncurses_header=$cf_header; break],[])
709 if test "$cf_cv_ncurses_header" = none ; then
710 AC_MSG_ERROR(No curses header-files found)
713 # cheat, to get the right #define's for HAVE_NCURSES_H, etc.
714 AC_CHECK_HEADERS($cf_cv_ncurses_header)
716 dnl ---------------------------------------------------------------------------
717 dnl CF_CURSES_LIBS version: 39 updated: 2015/05/10 19:52:14
719 dnl Look for the curses libraries. Older curses implementations may require
720 dnl termcap/termlib to be linked as well. Call CF_CURSES_CPPFLAGS first.
721 AC_DEFUN([CF_CURSES_LIBS],[
723 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
724 AC_MSG_CHECKING(if we have identified curses libraries)
725 AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
726 [initscr(); tgoto("?", 0,0)],
729 AC_MSG_RESULT($cf_result)
731 if test "$cf_result" = no ; then
734 AC_CHECK_LIB(mytinfo,tgoto,[CF_ADD_LIBS(-lmytinfo)])
737 # Looking at HPUX 10.20, the Hcurses library is the oldest (1997), cur_colr
738 # next (1998), and xcurses "newer" (2000). There is no header file for
739 # Hcurses; the subdirectory curses_colr has the headers (curses.h and
740 # term.h) for cur_colr
741 if test "x$cf_cv_screen" = "xcurses_colr"
743 AC_CHECK_LIB(cur_colr,initscr,[
744 CF_ADD_LIBS(-lcur_colr)
745 ac_cv_func_initscr=yes
747 AC_CHECK_LIB(Hcurses,initscr,[
748 # HP's header uses __HP_CURSES, but user claims _HP_CURSES.
749 CF_ADD_LIBS(-lHcurses)
750 CPPFLAGS="$CPPFLAGS -D__HP_CURSES -D_HP_CURSES"
751 ac_cv_func_initscr=yes
756 case `arch 2>/dev/null` in
760 CF_ADD_LIBDIR(/lib64)
771 if test "x$cf_cv_screen" = "xcurses_5lib"
773 if test -d /usr/5lib ; then
774 CF_ADD_LIBDIR(/usr/5lib)
775 CF_ADD_LIBS(-lcurses -ltermcap)
778 ac_cv_func_initscr=yes
782 if test ".$ac_cv_func_initscr" != .yes ; then
785 if test ".${cf_cv_ncurses_version:-no}" != .no
787 cf_check_list="ncurses curses cursesX"
789 cf_check_list="cursesX curses ncurses"
792 # Check for library containing tgoto. Do this before curses library
793 # because it may be needed to link the test-case for initscr.
794 if test "x$cf_term_lib" = x
796 AC_CHECK_FUNC(tgoto,[cf_term_lib=predefined],[
797 for cf_term_lib in $cf_check_list otermcap termcap tinfo termlib unknown
799 AC_CHECK_LIB($cf_term_lib,tgoto,[break])
804 # Check for library containing initscr
805 test "$cf_term_lib" != predefined && test "$cf_term_lib" != unknown && LIBS="-l$cf_term_lib $cf_save_LIBS"
806 if test "x$cf_curs_lib" = x
808 for cf_curs_lib in $cf_check_list xcurses jcurses pdcurses unknown
810 AC_CHECK_LIB($cf_curs_lib,initscr,[break])
813 test $cf_curs_lib = unknown && AC_MSG_ERROR(no curses library found)
815 LIBS="-l$cf_curs_lib $cf_save_LIBS"
816 if test "$cf_term_lib" = unknown ; then
817 AC_MSG_CHECKING(if we can link with $cf_curs_lib library)
818 AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
822 AC_MSG_RESULT($cf_result)
823 test $cf_result = no && AC_MSG_ERROR(Cannot link curses library)
824 elif test "$cf_curs_lib" = "$cf_term_lib" ; then
826 elif test "$cf_term_lib" != predefined ; then
827 AC_MSG_CHECKING(if we need both $cf_curs_lib and $cf_term_lib libraries)
828 AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
829 [initscr(); tgoto((char *)0, 0, 0);],
832 LIBS="-l$cf_curs_lib -l$cf_term_lib $cf_save_LIBS"
833 AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
838 AC_MSG_RESULT($cf_result)
844 dnl ---------------------------------------------------------------------------
845 dnl CF_CURSES_TERM_H version: 11 updated: 2015/04/15 19:08:48
847 dnl SVr4 curses should have term.h as well (where it puts the definitions of
848 dnl the low-level interface). This may not be true in old/broken implementations,
849 dnl as well as in misconfigured systems (e.g., gcc configured for Solaris 2.4
850 dnl running with Solaris 2.5.1).
851 AC_DEFUN([CF_CURSES_TERM_H],
853 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
855 AC_CACHE_CHECK(for term.h, cf_cv_term_header,[
857 # If we found <ncurses/curses.h>, look for <ncurses/term.h>, but always look
858 # for <term.h> if we do not find the variant.
860 cf_header_list="term.h ncurses/term.h ncursesw/term.h"
862 case ${cf_cv_ncurses_header:-curses.h} in
864 cf_header_item=`echo ${cf_cv_ncurses_header:-curses.h} | sed -e 's%\..*%%' -e 's%/.*%/%'`term.h
865 cf_header_list="$cf_header_item $cf_header_list"
869 for cf_header in $cf_header_list
872 #include <${cf_cv_ncurses_header:-curses.h}>
873 #include <${cf_header}>],
875 [cf_cv_term_header=$cf_header
877 [cf_cv_term_header=no])
880 case $cf_cv_term_header in
882 # If curses is ncurses, some packagers still mess it up by trying to make
883 # us use GNU termcap. This handles the most common case.
884 for cf_header in ncurses/term.h ncursesw/term.h
887 #include <${cf_cv_ncurses_header:-curses.h}>
888 #ifdef NCURSES_VERSION
889 #include <${cf_header}>
894 [cf_cv_term_header=$cf_header
896 [cf_cv_term_header=no])
902 case $cf_cv_term_header in
904 AC_DEFINE(HAVE_TERM_H,1,[Define to 1 if we have term.h])
907 AC_DEFINE(HAVE_NCURSES_TERM_H,1,[Define to 1 if we have ncurses/term.h])
910 AC_DEFINE(HAVE_NCURSESW_TERM_H,1,[Define to 1 if we have ncursesw/term.h])
914 dnl ---------------------------------------------------------------------------
915 dnl CF_CURSES_UNCTRL_H version: 4 updated: 2015/04/15 19:08:48
916 dnl ------------------
917 dnl Any X/Open curses implementation must have unctrl.h, but ncurses packages
918 dnl may put it in a subdirectory (along with ncurses' other headers, of
919 dnl course). Packages which put the headers in inconsistent locations are
921 AC_DEFUN([CF_CURSES_UNCTRL_H],
923 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
925 AC_CACHE_CHECK(for unctrl.h, cf_cv_unctrl_header,[
927 # If we found <ncurses/curses.h>, look for <ncurses/unctrl.h>, but always look
928 # for <unctrl.h> if we do not find the variant.
930 cf_header_list="unctrl.h ncurses/unctrl.h ncursesw/unctrl.h"
932 case ${cf_cv_ncurses_header:-curses.h} in
934 cf_header_item=`echo ${cf_cv_ncurses_header:-curses.h} | sed -e 's%\..*%%' -e 's%/.*%/%'`unctrl.h
935 cf_header_list="$cf_header_item $cf_header_list"
939 for cf_header in $cf_header_list
942 #include <${cf_cv_ncurses_header:-curses.h}>
943 #include <${cf_header}>],
945 [cf_cv_unctrl_header=$cf_header
947 [cf_cv_unctrl_header=no])
951 case $cf_cv_unctrl_header in
953 AC_MSG_WARN(unctrl.h header not found)
957 case $cf_cv_unctrl_header in
959 AC_DEFINE(HAVE_UNCTRL_H,1,[Define to 1 if we have unctrl.h])
962 AC_DEFINE(HAVE_NCURSES_UNCTRL_H,1,[Define to 1 if we have ncurses/unctrl.h])
965 AC_DEFINE(HAVE_NCURSESW_UNCTRL_H,1,[Define to 1 if we have ncursesw/unctrl.h])
969 dnl ---------------------------------------------------------------------------
970 dnl CF_CURSES_WACS_MAP version: 6 updated: 2012/10/06 08:57:51
971 dnl ------------------
972 dnl Check for likely values of wacs_map[].
973 AC_DEFUN([CF_CURSES_WACS_MAP],
975 AC_CACHE_CHECK(for wide alternate character set array, cf_cv_curses_wacs_map,[
976 cf_cv_curses_wacs_map=unknown
977 for name in wacs_map _wacs_map __wacs_map _nc_wacs _wacs_char
980 #ifndef _XOPEN_SOURCE_EXTENDED
981 #define _XOPEN_SOURCE_EXTENDED
983 #include <${cf_cv_ncurses_header:-curses.h}>],
984 [void *foo = &($name['k'])],
985 [cf_cv_curses_wacs_map=$name
989 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])
991 dnl ---------------------------------------------------------------------------
992 dnl CF_CURSES_WACS_SYMBOLS version: 2 updated: 2012/10/06 08:57:51
993 dnl ----------------------
994 dnl Do a check to see if the WACS_xxx constants are defined compatibly with
995 dnl X/Open Curses. In particular, NetBSD's implementation of the WACS_xxx
996 dnl constants is broken since those constants do not point to cchar_t's.
997 AC_DEFUN([CF_CURSES_WACS_SYMBOLS],
999 AC_REQUIRE([CF_CURSES_WACS_MAP])
1001 AC_CACHE_CHECK(for wide alternate character constants, cf_cv_curses_wacs_symbols,[
1002 cf_cv_curses_wacs_symbols=no
1003 if test "$cf_cv_curses_wacs_map" != unknown
1006 #ifndef _XOPEN_SOURCE_EXTENDED
1007 #define _XOPEN_SOURCE_EXTENDED
1009 #include <${cf_cv_ncurses_header:-curses.h}>],
1010 [cchar_t *foo = WACS_PLUS;
1011 $cf_cv_curses_wacs_map['k'] = *WACS_PLUS],
1012 [cf_cv_curses_wacs_symbols=yes])
1015 #ifndef _XOPEN_SOURCE_EXTENDED
1016 #define _XOPEN_SOURCE_EXTENDED
1018 #include <${cf_cv_ncurses_header:-curses.h}>],
1019 [cchar_t *foo = WACS_PLUS],
1020 [cf_cv_curses_wacs_symbols=yes])
1024 test "$cf_cv_curses_wacs_symbols" != no && AC_DEFINE(CURSES_WACS_SYMBOLS,1,[Define to 1 if (n)curses supports wide-character WACS_ symbols])
1026 dnl ---------------------------------------------------------------------------
1027 dnl CF_DIRNAME version: 4 updated: 2002/12/21 19:25:52
1029 dnl "dirname" is not portable, so we fake it with a shell script.
1030 AC_DEFUN([CF_DIRNAME],[$1=`echo $2 | sed -e 's%/[[^/]]*$%%'`])dnl
1031 dnl ---------------------------------------------------------------------------
1032 dnl CF_DISABLE_ECHO version: 13 updated: 2015/04/18 08:56:57
1034 dnl You can always use "make -n" to see the actual options, but it's hard to
1035 dnl pick out/analyze warning messages when the compile-line is long.
1038 dnl ECHO_LT - symbol to control if libtool is verbose
1039 dnl ECHO_LD - symbol to prefix "cc -o" lines
1040 dnl RULE_CC - symbol to put before implicit "cc -c" lines (e.g., .c.o)
1041 dnl SHOW_CC - symbol to put before explicit "cc -c" lines
1042 dnl ECHO_CC - symbol to put before any "cc" line
1044 AC_DEFUN([CF_DISABLE_ECHO],[
1045 AC_MSG_CHECKING(if you want to see long compiling messages)
1046 CF_ARG_DISABLE(echo,
1047 [ --disable-echo do not display "compiling" commands],
1050 ECHO_LD='@echo linking [$]@;'
1051 RULE_CC='@echo compiling [$]<'
1052 SHOW_CC='@echo compiling [$]@'
1061 AC_MSG_RESULT($enableval)
1068 dnl ---------------------------------------------------------------------------
1069 dnl CF_DISABLE_LEAKS version: 7 updated: 2012/10/02 20:55:03
1070 dnl ----------------
1071 dnl Combine no-leak checks with the libraries or tools that are used for the
1073 AC_DEFUN([CF_DISABLE_LEAKS],[
1075 AC_REQUIRE([CF_WITH_DMALLOC])
1076 AC_REQUIRE([CF_WITH_DBMALLOC])
1077 AC_REQUIRE([CF_WITH_VALGRIND])
1079 AC_MSG_CHECKING(if you want to perform memory-leak testing)
1080 AC_ARG_ENABLE(leaks,
1081 [ --disable-leaks test: free permanent memory, analyze leaks],
1082 [if test "x$enableval" = xno; then with_no_leaks=yes; else with_no_leaks=no; fi],
1083 : ${with_no_leaks:=no})
1084 AC_MSG_RESULT($with_no_leaks)
1086 if test "$with_no_leaks" = yes ; then
1087 AC_DEFINE(NO_LEAKS,1,[Define to 1 if you want to perform memory-leak testing.])
1088 AC_DEFINE(YY_NO_LEAKS,1,[Define to 1 if you want to perform memory-leak testing.])
1091 dnl ---------------------------------------------------------------------------
1092 dnl CF_DISABLE_RPATH_HACK version: 2 updated: 2011/02/13 13:31:33
1093 dnl ---------------------
1094 dnl The rpath-hack makes it simpler to build programs, particularly with the
1095 dnl *BSD ports which may have essential libraries in unusual places. But it
1096 dnl can interfere with building an executable for the base system. Use this
1097 dnl option in that case.
1098 AC_DEFUN([CF_DISABLE_RPATH_HACK],
1100 AC_MSG_CHECKING(if rpath-hack should be disabled)
1101 CF_ARG_DISABLE(rpath-hack,
1102 [ --disable-rpath-hack don't add rpath options for additional libraries],
1103 [cf_disable_rpath_hack=yes],
1104 [cf_disable_rpath_hack=no])
1105 AC_MSG_RESULT($cf_disable_rpath_hack)
1106 if test "$cf_disable_rpath_hack" = no ; then
1110 dnl ---------------------------------------------------------------------------
1111 dnl CF_ENABLE_WARNINGS version: 4 updated: 2009/07/26 17:53:03
1112 dnl ------------------
1113 dnl Configure-option to enable gcc warnings
1114 AC_DEFUN([CF_ENABLE_WARNINGS],[
1115 if ( test "$GCC" = yes || test "$GXX" = yes )
1117 AC_MSG_CHECKING(if you want to turn on gcc warnings)
1118 CF_ARG_ENABLE(warnings,
1119 [ --enable-warnings test: turn on gcc compiler warnings],
1120 [with_warnings=yes],
1122 AC_MSG_RESULT($with_warnings)
1123 if test "$with_warnings" = "yes"
1130 dnl ---------------------------------------------------------------------------
1131 dnl CF_FIND_LIBRARY version: 9 updated: 2008/03/23 14:48:54
1133 dnl Look for a non-standard library, given parameters for AC_TRY_LINK. We
1134 dnl prefer a standard location, and use -L options only if we do not find the
1135 dnl library in the standard library location(s).
1136 dnl $1 = library name
1137 dnl $2 = library class, usually the same as library name
1139 dnl $4 = code fragment to compile/link
1140 dnl $5 = corresponding function-name
1141 dnl $6 = flag, nonnull if failure should not cause an error-exit
1143 dnl Sets the variable "$cf_libdir" as a side-effect, so we can see if we had
1144 dnl to use a -L option.
1145 AC_DEFUN([CF_FIND_LIBRARY],
1147 eval 'cf_cv_have_lib_'$1'=no'
1150 eval 'cf_cv_have_lib_'$1'=yes',[
1151 cf_save_LIBS="$LIBS"
1152 AC_MSG_CHECKING(for $5 in -l$1)
1154 AC_TRY_LINK([$3],[$4],
1156 eval 'cf_cv_have_lib_'$1'=yes'
1159 CF_LIBRARY_PATH(cf_search,$2)
1160 for cf_libdir in $cf_search
1162 AC_MSG_CHECKING(for -l$1 in $cf_libdir)
1163 LIBS="-L$cf_libdir -l$1 $cf_save_LIBS"
1164 AC_TRY_LINK([$3],[$4],
1166 eval 'cf_cv_have_lib_'$1'=yes'
1169 LIBS="$cf_save_LIBS"])
1173 eval 'cf_found_library=[$]cf_cv_have_lib_'$1
1175 if test $cf_found_library = no ; then
1176 AC_MSG_ERROR(Cannot link $1 library)
1180 dnl ---------------------------------------------------------------------------
1181 dnl CF_FIND_LINKAGE version: 20 updated: 2015/04/18 08:56:57
1183 dnl Find a library (specifically the linkage used in the code fragment),
1184 dnl searching for it if it is not already in the library path.
1185 dnl See also CF_ADD_SEARCHPATH.
1187 dnl Parameters (4-on are optional):
1188 dnl $1 = headers for library entrypoint
1189 dnl $2 = code fragment for library entrypoint
1190 dnl $3 = the library name without the "-l" option or ".so" suffix.
1191 dnl $4 = action to perform if successful (default: update CPPFLAGS, etc)
1192 dnl $5 = action to perform if not successful
1193 dnl $6 = module name, if not the same as the library name
1194 dnl $7 = extra libraries
1196 dnl Sets these variables:
1197 dnl $cf_cv_find_linkage_$3 - yes/no according to whether linkage is found
1198 dnl $cf_cv_header_path_$3 - include-directory if needed
1199 dnl $cf_cv_library_path_$3 - library-directory if needed
1200 dnl $cf_cv_library_file_$3 - library-file if needed, e.g., -l$3
1201 AC_DEFUN([CF_FIND_LINKAGE],[
1203 # If the linkage is not already in the $CPPFLAGS/$LDFLAGS configuration, these
1204 # will be set on completion of the AC_TRY_LINK below.
1205 cf_cv_header_path_$3=
1206 cf_cv_library_path_$3=
1208 CF_MSG_LOG([Starting [FIND_LINKAGE]($3,$6)])
1210 cf_save_LIBS="$LIBS"
1212 AC_TRY_LINK([$1],[$2],[
1213 cf_cv_find_linkage_$3=yes
1214 cf_cv_header_path_$3=/usr/include
1215 cf_cv_library_path_$3=/usr/lib
1218 LIBS="-l$3 $7 $cf_save_LIBS"
1220 AC_TRY_LINK([$1],[$2],[
1221 cf_cv_find_linkage_$3=yes
1222 cf_cv_header_path_$3=/usr/include
1223 cf_cv_library_path_$3=/usr/lib
1224 cf_cv_library_file_$3="-l$3"
1226 cf_cv_find_linkage_$3=no
1227 LIBS="$cf_save_LIBS"
1229 CF_VERBOSE(find linkage for $3 library)
1230 CF_MSG_LOG([Searching for headers in [FIND_LINKAGE]($3,$6)])
1232 cf_save_CPPFLAGS="$CPPFLAGS"
1233 cf_test_CPPFLAGS="$CPPFLAGS"
1235 CF_HEADER_PATH(cf_search,ifelse([$6],,[$3],[$6]))
1236 for cf_cv_header_path_$3 in $cf_search
1238 if test -d $cf_cv_header_path_$3 ; then
1239 CF_VERBOSE(... testing $cf_cv_header_path_$3)
1240 CPPFLAGS="$cf_save_CPPFLAGS -I$cf_cv_header_path_$3"
1241 AC_TRY_COMPILE([$1],[$2],[
1242 CF_VERBOSE(... found $3 headers in $cf_cv_header_path_$3)
1243 cf_cv_find_linkage_$3=maybe
1244 cf_test_CPPFLAGS="$CPPFLAGS"
1246 CPPFLAGS="$cf_save_CPPFLAGS"
1251 if test "$cf_cv_find_linkage_$3" = maybe ; then
1253 CF_MSG_LOG([Searching for $3 library in [FIND_LINKAGE]($3,$6)])
1255 cf_save_LIBS="$LIBS"
1256 cf_save_LDFLAGS="$LDFLAGS"
1259 CPPFLAGS="$cf_test_CPPFLAGS"
1260 LIBS="-l$3 $7 $cf_save_LIBS"
1261 AC_TRY_LINK([$1],[$2],[
1262 CF_VERBOSE(... found $3 library in system)
1263 cf_cv_find_linkage_$3=yes])
1264 CPPFLAGS="$cf_save_CPPFLAGS"
1265 LIBS="$cf_save_LIBS"
1268 if test "$cf_cv_find_linkage_$3" != yes ; then
1269 CF_LIBRARY_PATH(cf_search,$3)
1270 for cf_cv_library_path_$3 in $cf_search
1272 if test -d $cf_cv_library_path_$3 ; then
1273 CF_VERBOSE(... testing $cf_cv_library_path_$3)
1274 CPPFLAGS="$cf_test_CPPFLAGS"
1275 LIBS="-l$3 $7 $cf_save_LIBS"
1276 LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_$3"
1277 AC_TRY_LINK([$1],[$2],[
1278 CF_VERBOSE(... found $3 library in $cf_cv_library_path_$3)
1279 cf_cv_find_linkage_$3=yes
1280 cf_cv_library_file_$3="-l$3"
1282 CPPFLAGS="$cf_save_CPPFLAGS"
1283 LIBS="$cf_save_LIBS"
1284 LDFLAGS="$cf_save_LDFLAGS"
1288 CPPFLAGS="$cf_save_CPPFLAGS"
1289 LDFLAGS="$cf_save_LDFLAGS"
1293 cf_cv_find_linkage_$3=no
1298 LIBS="$cf_save_LIBS"
1300 if test "$cf_cv_find_linkage_$3" = yes ; then
1302 CF_ADD_INCDIR($cf_cv_header_path_$3)
1303 CF_ADD_LIBDIR($cf_cv_library_path_$3)
1307 ifelse([$5],,AC_MSG_WARN(Cannot find $3 library),[$5])
1310 dnl ---------------------------------------------------------------------------
1311 dnl CF_FUNC_CURSES_VERSION version: 6 updated: 2012/10/06 16:39:58
1312 dnl ----------------------
1313 dnl Solaris has a data item 'curses_version', which confuses AC_CHECK_FUNCS.
1314 dnl It's a character string "SVR4", not documented.
1315 AC_DEFUN([CF_FUNC_CURSES_VERSION],
1317 AC_CACHE_CHECK(for function curses_version, cf_cv_func_curses_version,[
1319 #include <${cf_cv_ncurses_header:-curses.h}>
1323 sprintf(temp, "%s\n", curses_version());
1324 ${cf_cv_main_return:-return}(0);
1326 ,[cf_cv_func_curses_version=yes]
1327 ,[cf_cv_func_curses_version=no]
1328 ,[cf_cv_func_curses_version=unknown])
1330 test "$cf_cv_func_curses_version" = yes && AC_DEFINE(HAVE_CURSES_VERSION,1,[Define to 1 if we have curses_version function])
1332 dnl ---------------------------------------------------------------------------
1333 dnl CF_FUNC_OPENPTY version: 5 updated: 2015/09/12 14:46:50
1335 dnl Check for openpty() function, along with <pty.h> header. It may need the
1336 dnl "util" library as well.
1337 AC_DEFUN([CF_FUNC_OPENPTY],
1339 AC_CHECK_LIB(util,openpty,cf_cv_lib_util=yes,cf_cv_lib_util=no)
1340 AC_CACHE_CHECK(for openpty header,cf_cv_func_openpty,[
1341 cf_save_LIBS="$LIBS"
1342 test $cf_cv_lib_util = yes && { CF_ADD_LIB(util) }
1343 for cf_header in pty.h libutil.h util.h
1346 #include <$cf_header>
1348 int x = openpty((int *)0, (int *)0, (char *)0,
1349 (struct termios *)0, (struct winsize *)0);
1351 cf_cv_func_openpty=$cf_header
1354 cf_cv_func_openpty=no
1357 LIBS="$cf_save_LIBS"
1360 dnl ---------------------------------------------------------------------------
1361 dnl CF_GCC_ATTRIBUTES version: 17 updated: 2015/04/12 15:39:00
1362 dnl -----------------
1363 dnl Test for availability of useful gcc __attribute__ directives to quiet
1364 dnl compiler warnings. Though useful, not all are supported -- and contrary
1365 dnl to documentation, unrecognized directives cause older compilers to barf.
1366 AC_DEFUN([CF_GCC_ATTRIBUTES],
1368 if test "$GCC" = yes
1370 cat > conftest.i <<EOF
1372 #define GCC_PRINTF 0
1377 #ifndef GCC_NORETURN
1378 #define GCC_NORETURN /* nothing */
1381 #define GCC_UNUSED /* nothing */
1384 if test "$GCC" = yes
1386 AC_CHECKING([for $CC __attribute__ directives])
1387 cat > conftest.$ac_ext <<EOF
1388 #line __oline__ "${as_me:-configure}"
1389 #include "confdefs.h"
1390 #include "conftest.h"
1391 #include "conftest.i"
1393 #define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
1395 #define GCC_PRINTFLIKE(fmt,var) /*nothing*/
1398 #define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
1400 #define GCC_SCANFLIKE(fmt,var) /*nothing*/
1402 extern void wow(char *,...) GCC_SCANFLIKE(1,2);
1403 extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
1404 extern void foo(void) GCC_NORETURN;
1405 int main(int argc GCC_UNUSED, char *argv[[]] GCC_UNUSED) { return 0; }
1407 cf_printf_attribute=no
1408 cf_scanf_attribute=no
1409 for cf_attribute in scanf printf unused noreturn
1411 CF_UPPER(cf_ATTRIBUTE,$cf_attribute)
1412 cf_directive="__attribute__(($cf_attribute))"
1413 echo "checking for $CC $cf_directive" 1>&AC_FD_CC
1415 case $cf_attribute in
1417 cf_printf_attribute=yes
1418 cat >conftest.h <<EOF
1419 #define GCC_$cf_ATTRIBUTE 1
1423 cf_scanf_attribute=yes
1424 cat >conftest.h <<EOF
1425 #define GCC_$cf_ATTRIBUTE 1
1429 cat >conftest.h <<EOF
1430 #define GCC_$cf_ATTRIBUTE $cf_directive
1435 if AC_TRY_EVAL(ac_compile); then
1436 test -n "$verbose" && AC_MSG_RESULT(... $cf_attribute)
1437 cat conftest.h >>confdefs.h
1438 case $cf_attribute in
1440 AC_DEFINE_UNQUOTED(GCC_NORETURN,$cf_directive,[Define to noreturn-attribute for gcc])
1443 cf_value='/* nothing */'
1444 if test "$cf_printf_attribute" != no ; then
1445 cf_value='__attribute__((format(printf,fmt,var)))'
1446 AC_DEFINE(GCC_PRINTF,1,[Define to 1 if the compiler supports gcc-like printf attribute.])
1448 AC_DEFINE_UNQUOTED(GCC_PRINTFLIKE(fmt,var),$cf_value,[Define to printf-attribute for gcc])
1451 cf_value='/* nothing */'
1452 if test "$cf_scanf_attribute" != no ; then
1453 cf_value='__attribute__((format(scanf,fmt,var)))'
1454 AC_DEFINE(GCC_SCANF,1,[Define to 1 if the compiler supports gcc-like scanf attribute.])
1456 AC_DEFINE_UNQUOTED(GCC_SCANFLIKE(fmt,var),$cf_value,[Define to sscanf-attribute for gcc])
1459 AC_DEFINE_UNQUOTED(GCC_UNUSED,$cf_directive,[Define to unused-attribute for gcc])
1465 fgrep define conftest.i >>confdefs.h
1470 dnl ---------------------------------------------------------------------------
1471 dnl CF_GCC_VERSION version: 7 updated: 2012/10/18 06:46:33
1473 dnl Find version of gcc
1474 AC_DEFUN([CF_GCC_VERSION],[
1475 AC_REQUIRE([AC_PROG_CC])
1477 if test "$GCC" = yes ; then
1478 AC_MSG_CHECKING(version of $CC)
1479 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.]].*//'`"
1480 test -z "$GCC_VERSION" && GCC_VERSION=unknown
1481 AC_MSG_RESULT($GCC_VERSION)
1484 dnl ---------------------------------------------------------------------------
1485 dnl CF_GCC_WARNINGS version: 32 updated: 2015/04/12 15:39:00
1487 dnl Check if the compiler supports useful warning options. There's a few that
1488 dnl we don't use, simply because they're too noisy:
1490 dnl -Wconversion (useful in older versions of gcc, but not in gcc 2.7.x)
1491 dnl -Wredundant-decls (system headers make this too noisy)
1492 dnl -Wtraditional (combines too many unrelated messages, only a few useful)
1493 dnl -Wwrite-strings (too noisy, but should review occasionally). This
1494 dnl is enabled for ncurses using "--enable-const".
1498 dnl $1 is an optional list of gcc warning flags that a particular
1499 dnl application might want to use, e.g., "no-unused" for
1502 dnl If $with_ext_const is "yes", add a check for -Wwrite-strings
1504 AC_DEFUN([CF_GCC_WARNINGS],
1506 AC_REQUIRE([CF_GCC_VERSION])
1507 CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
1508 CF_CLANG_COMPILER(GCC,CLANG_COMPILER,CFLAGS)
1510 cat > conftest.$ac_ext <<EOF
1511 #line __oline__ "${as_me:-configure}"
1512 int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
1515 if test "$INTEL_COMPILER" = yes
1517 # The "-wdXXX" options suppress warnings:
1518 # remark #1419: external declaration in primary source file
1519 # remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
1520 # remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
1521 # remark #193: zero used for undefined preprocessing identifier
1522 # remark #593: variable "curs_sb_left_arrow" was set but never used
1523 # remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
1524 # remark #869: parameter "tw" was never referenced
1525 # remark #981: operands are evaluated in unspecified order
1526 # warning #279: controlling expression is constant
1528 AC_CHECKING([for $CC warning options])
1529 cf_save_CFLAGS="$CFLAGS"
1530 EXTRA_CFLAGS="-Wall"
1542 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
1543 if AC_TRY_EVAL(ac_compile); then
1544 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1545 EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
1548 CFLAGS="$cf_save_CFLAGS"
1550 elif test "$GCC" = yes
1552 AC_CHECKING([for $CC warning options])
1553 cf_save_CFLAGS="$CFLAGS"
1556 test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
1557 cf_gcc_warnings="Wignored-qualifiers Wlogical-op Wvarargs"
1558 test "x$CLANG_COMPILER" = xyes && cf_gcc_warnings=
1559 for cf_opt in W Wall \
1560 Wbad-function-cast \
1563 Wdeclaration-after-statement \
1566 Wmissing-declarations \
1567 Wmissing-prototypes \
1571 Wstrict-prototypes \
1572 Wundef $cf_gcc_warnings $cf_warn_CONST $1
1574 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
1575 if AC_TRY_EVAL(ac_compile); then
1576 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1579 CPPFLAGS="$CPPFLAGS -DXTSTRINGDEFINES"
1582 case $GCC_VERSION in
1584 CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
1589 case $GCC_VERSION in
1591 CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
1596 EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
1599 CFLAGS="$cf_save_CFLAGS"
1603 AC_SUBST(EXTRA_CFLAGS)
1605 dnl ---------------------------------------------------------------------------
1606 dnl CF_GETOPT_HEADER version: 6 updated: 2014/07/22 14:45:54
1607 dnl ----------------
1608 dnl Check for getopt's variables which are commonly defined in stdlib.h,
1609 dnl unistd.h or (nonstandard) in getopt.h
1610 AC_DEFUN([CF_GETOPT_HEADER],
1612 AC_HAVE_HEADERS(unistd.h getopt.h)
1613 AC_CACHE_CHECK(for header declaring getopt variables,cf_cv_getopt_header,[
1614 cf_cv_getopt_header=none
1615 for cf_header in stdio.h stdlib.h unistd.h getopt.h
1618 #include <$cf_header>],
1619 [int x = optind; char *y = optarg],
1620 [cf_cv_getopt_header=$cf_header
1624 if test $cf_cv_getopt_header != none ; then
1625 AC_DEFINE(HAVE_GETOPT_HEADER,1,[Define to 1 if getopt variables are declared in header])
1627 if test $cf_cv_getopt_header = getopt.h ; then
1628 AC_DEFINE(NEED_GETOPT_H,1,[Define to 1 if we must include getopt.h])
1631 dnl ---------------------------------------------------------------------------
1632 dnl CF_GNU_SOURCE version: 7 updated: 2016/08/05 05:15:37
1634 dnl Check if we must define _GNU_SOURCE to get a reasonable value for
1635 dnl _XOPEN_SOURCE, upon which many POSIX definitions depend. This is a defect
1636 dnl (or misfeature) of glibc2, which breaks portability of many applications,
1637 dnl since it is interwoven with GNU extensions.
1639 dnl Well, yes we could work around it...
1640 AC_DEFUN([CF_GNU_SOURCE],
1642 AC_CACHE_CHECK(if we must define _GNU_SOURCE,cf_cv_gnu_source,[
1643 AC_TRY_COMPILE([#include <sys/types.h>],[
1644 #ifndef _XOPEN_SOURCE
1647 [cf_cv_gnu_source=no],
1648 [cf_save="$CPPFLAGS"
1649 CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
1650 AC_TRY_COMPILE([#include <sys/types.h>],[
1651 #ifdef _XOPEN_SOURCE
1654 [cf_cv_gnu_source=no],
1655 [cf_cv_gnu_source=yes])
1660 if test "$cf_cv_gnu_source" = yes
1662 AC_CACHE_CHECK(if we should also define _DEFAULT_SOURCE,cf_cv_default_source,[
1663 CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
1664 AC_TRY_COMPILE([#include <sys/types.h>],[
1665 #ifdef _DEFAULT_SOURCE
1668 [cf_cv_default_source=no],
1669 [cf_cv_default_source=yes])
1671 test "$cf_cv_default_source" = yes && CPPFLAGS="$CPPFLAGS -D_DEFAULT_SOURCE"
1674 dnl ---------------------------------------------------------------------------
1675 dnl CF_HEADER_PATH version: 13 updated: 2015/04/15 19:08:48
1677 dnl Construct a search-list of directories for a nonstandard header-file
1680 dnl $1 = the variable to return as result
1681 dnl $2 = the package name
1682 AC_DEFUN([CF_HEADER_PATH],
1686 # collect the current set of include-directories from compiler flags
1687 cf_header_path_list=""
1688 if test -n "${CFLAGS}${CPPFLAGS}" ; then
1689 for cf_header_path in $CPPFLAGS $CFLAGS
1691 case $cf_header_path in
1693 cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'`
1694 CF_ADD_SUBDIR_PATH($1,$2,include,$cf_header_path,NONE)
1695 cf_header_path_list="$cf_header_path_list [$]$1"
1701 # add the variations for the package we are looking for
1702 CF_SUBDIR_PATH($1,$2,include)
1704 test "$includedir" != NONE && \
1705 test "$includedir" != "/usr/include" && \
1706 test -d "$includedir" && {
1707 test -d $includedir && $1="[$]$1 $includedir"
1708 test -d $includedir/$2 && $1="[$]$1 $includedir/$2"
1711 test "$oldincludedir" != NONE && \
1712 test "$oldincludedir" != "/usr/include" && \
1713 test -d "$oldincludedir" && {
1714 test -d $oldincludedir && $1="[$]$1 $oldincludedir"
1715 test -d $oldincludedir/$2 && $1="[$]$1 $oldincludedir/$2"
1718 $1="[$]$1 $cf_header_path_list"
1720 dnl ---------------------------------------------------------------------------
1721 dnl CF_HELP_MESSAGE version: 3 updated: 1998/01/14 10:56:23
1723 dnl Insert text into the help-message, for readability, from AC_ARG_WITH.
1724 AC_DEFUN([CF_HELP_MESSAGE],
1725 [AC_DIVERT_HELP([$1])dnl
1727 dnl ---------------------------------------------------------------------------
1728 dnl CF_INHERIT_SCRIPT version: 2 updated: 2003/03/01 23:50:42
1729 dnl -----------------
1730 dnl If we do not have a given script, look for it in the parent directory.
1731 AC_DEFUN([CF_INHERIT_SCRIPT],
1733 test -f $1 || ( test -f ../$1 && cp ../$1 ./ )
1735 dnl ---------------------------------------------------------------------------
1736 dnl CF_INTEL_COMPILER version: 7 updated: 2015/04/12 15:39:00
1737 dnl -----------------
1738 dnl Check if the given compiler is really the Intel compiler for Linux. It
1739 dnl tries to imitate gcc, but does not return an error when it finds a mismatch
1740 dnl between prototypes, e.g., as exercised by CF_MISSING_CHECK.
1742 dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
1743 dnl ensure that it is not mistaken for gcc/g++. It is normally invoked from
1744 dnl the wrappers for gcc and g++ warnings.
1746 dnl $1 = GCC (default) or GXX
1747 dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS
1748 dnl $3 = CFLAGS (default) or CXXFLAGS
1749 AC_DEFUN([CF_INTEL_COMPILER],[
1750 AC_REQUIRE([AC_CANONICAL_HOST])
1751 ifelse([$2],,INTEL_COMPILER,[$2])=no
1753 if test "$ifelse([$1],,[$1],GCC)" = yes ; then
1756 AC_MSG_CHECKING(if this is really Intel ifelse([$1],GXX,C++,C) compiler)
1757 cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
1758 ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -no-gcc"
1760 #ifdef __INTEL_COMPILER
1764 ],[ifelse([$2],,INTEL_COMPILER,[$2])=yes
1765 cf_save_CFLAGS="$cf_save_CFLAGS -we147"
1767 ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
1768 AC_MSG_RESULT($ifelse([$2],,INTEL_COMPILER,[$2]))
1773 dnl ---------------------------------------------------------------------------
1774 dnl CF_LD_RPATH_OPT version: 7 updated: 2016/02/20 18:01:19
1776 dnl For the given system and compiler, find the compiler flags to pass to the
1777 dnl loader to use the "rpath" feature.
1778 AC_DEFUN([CF_LD_RPATH_OPT],
1780 AC_REQUIRE([CF_CHECK_CACHE])
1783 AC_MSG_CHECKING(for an rpath option)
1784 case $cf_cv_system_name in
1786 if test "$GCC" = yes; then
1787 LD_RPATH_OPT="-Wl,-rpath,"
1789 LD_RPATH_OPT="-rpath "
1792 (linux*|gnu*|k*bsd*-gnu|freebsd*)
1793 LD_RPATH_OPT="-Wl,-rpath,"
1795 (openbsd[[2-9]].*|mirbsd*)
1796 LD_RPATH_OPT="-Wl,-rpath,"
1799 LD_RPATH_OPT="-rpath "
1802 LD_RPATH_OPT="-Wl,-rpath,"
1805 LD_RPATH_OPT="-rpath "
1813 AC_MSG_RESULT($LD_RPATH_OPT)
1815 case "x$LD_RPATH_OPT" in
1817 AC_MSG_CHECKING(if we need a space after rpath option)
1818 cf_save_LIBS="$LIBS"
1819 CF_ADD_LIBS(${LD_RPATH_OPT}$libdir)
1820 AC_TRY_LINK(, , cf_rpath_space=no, cf_rpath_space=yes)
1821 LIBS="$cf_save_LIBS"
1822 AC_MSG_RESULT($cf_rpath_space)
1823 test "$cf_rpath_space" = yes && LD_RPATH_OPT="$LD_RPATH_OPT "
1827 dnl ---------------------------------------------------------------------------
1828 dnl CF_LIBRARY_PATH version: 10 updated: 2015/04/15 19:08:48
1830 dnl Construct a search-list of directories for a nonstandard library-file
1833 dnl $1 = the variable to return as result
1834 dnl $2 = the package name
1835 AC_DEFUN([CF_LIBRARY_PATH],
1838 cf_library_path_list=""
1839 if test -n "${LDFLAGS}${LIBS}" ; then
1840 for cf_library_path in $LDFLAGS $LIBS
1842 case $cf_library_path in
1844 cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'`
1845 CF_ADD_SUBDIR_PATH($1,$2,lib,$cf_library_path,NONE)
1846 cf_library_path_list="$cf_library_path_list [$]$1"
1852 CF_SUBDIR_PATH($1,$2,lib)
1854 $1="$cf_library_path_list [$]$1"
1856 dnl ---------------------------------------------------------------------------
1857 dnl CF_MAKE_TAGS version: 6 updated: 2010/10/23 15:52:32
1859 dnl Generate tags/TAGS targets for makefiles. Do not generate TAGS if we have
1860 dnl a monocase filesystem.
1861 AC_DEFUN([CF_MAKE_TAGS],[
1862 AC_REQUIRE([CF_MIXEDCASE_FILENAMES])
1864 AC_CHECK_PROGS(CTAGS, exctags ctags)
1865 AC_CHECK_PROGS(ETAGS, exetags etags)
1867 AC_CHECK_PROG(MAKE_LOWER_TAGS, ${CTAGS:-ctags}, yes, no)
1869 if test "$cf_cv_mixedcase" = yes ; then
1870 AC_CHECK_PROG(MAKE_UPPER_TAGS, ${ETAGS:-etags}, yes, no)
1875 if test "$MAKE_UPPER_TAGS" = yes ; then
1881 if test "$MAKE_LOWER_TAGS" = yes ; then
1890 AC_SUBST(MAKE_UPPER_TAGS)
1891 AC_SUBST(MAKE_LOWER_TAGS)
1893 dnl ---------------------------------------------------------------------------
1894 dnl CF_MATH_LIB version: 8 updated: 2010/05/29 16:31:02
1896 dnl Checks for libraries. At least one UNIX system, Apple Macintosh
1897 dnl Rhapsody 5.5, does not have -lm. We cannot use the simpler
1898 dnl AC_CHECK_LIB(m,sin), because that fails for C++.
1899 AC_DEFUN([CF_MATH_LIB],
1901 AC_CACHE_CHECK(if -lm needed for math functions,
1907 [double x = rand(); printf("result = %g\n", ]ifelse([$2],,sin(x),$2)[)],
1908 [cf_cv_need_libm=no],
1909 [cf_cv_need_libm=yes])])
1910 if test "$cf_cv_need_libm" = yes
1917 dnl ---------------------------------------------------------------------------
1918 dnl CF_MIXEDCASE_FILENAMES version: 7 updated: 2015/04/12 15:39:00
1919 dnl ----------------------
1920 dnl Check if the file-system supports mixed-case filenames. If we're able to
1921 dnl create a lowercase name and see it as uppercase, it doesn't support that.
1922 AC_DEFUN([CF_MIXEDCASE_FILENAMES],
1924 AC_CACHE_CHECK(if filesystem supports mixed-case filenames,cf_cv_mixedcase,[
1925 if test "$cross_compiling" = yes ; then
1926 case $target_alias in
1927 (*-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-msys*|*-mingw*|*-uwin*)
1935 rm -f conftest CONFTEST
1937 if test -f CONFTEST ; then
1942 rm -f conftest CONFTEST
1945 test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES,1,[Define to 1 if filesystem supports mixed-case filenames.])
1947 dnl ---------------------------------------------------------------------------
1948 dnl CF_MSG_LOG version: 5 updated: 2010/10/23 15:52:32
1950 dnl Write a debug message to config.log, along with the line number in the
1951 dnl configure script.
1952 AC_DEFUN([CF_MSG_LOG],[
1953 echo "${as_me:-configure}:__oline__: testing $* ..." 1>&AC_FD_CC
1955 dnl ---------------------------------------------------------------------------
1956 dnl CF_NCURSES_CC_CHECK version: 4 updated: 2007/07/29 10:39:05
1957 dnl -------------------
1958 dnl Check if we can compile with ncurses' header file
1959 dnl $1 is the cache variable to set
1960 dnl $2 is the header-file to include
1961 dnl $3 is the root name (ncurses or ncursesw)
1962 AC_DEFUN([CF_NCURSES_CC_CHECK],[
1964 ]ifelse($3,ncursesw,[
1965 #define _XOPEN_SOURCE_EXTENDED
1966 #undef HAVE_LIBUTF8_H /* in case we used CF_UTF8_LIB */
1967 #define HAVE_LIBUTF8_H /* to force ncurses' header file to use cchar_t */
1970 #ifdef NCURSES_VERSION
1971 ]ifelse($3,ncursesw,[
1976 printf("%s\n", NCURSES_VERSION);
1988 dnl ---------------------------------------------------------------------------
1989 dnl CF_NCURSES_CONFIG version: 17 updated: 2015/07/07 04:22:07
1990 dnl -----------------
1991 dnl Tie together the configure-script macros for ncurses, preferring these in
1993 dnl a) ".pc" files for pkg-config, using $NCURSES_CONFIG_PKG
1994 dnl b) the "-config" script from ncurses, using $NCURSES_CONFIG
1995 dnl c) just plain libraries
1997 dnl $1 is the root library name (default: "ncurses")
1998 AC_DEFUN([CF_NCURSES_CONFIG],[
1999 AC_REQUIRE([CF_PKG_CONFIG])
2000 cf_ncuconfig_root=ifelse($1,,ncurses,$1)
2001 cf_have_ncuconfig=no
2003 if test "x${PKG_CONFIG:=none}" != xnone; then
2004 AC_MSG_CHECKING(pkg-config for $cf_ncuconfig_root)
2005 if "$PKG_CONFIG" --exists $cf_ncuconfig_root ; then
2008 AC_MSG_CHECKING(if the $cf_ncuconfig_root package files work)
2009 cf_have_ncuconfig=unknown
2011 cf_save_CPPFLAGS="$CPPFLAGS"
2012 cf_save_LIBS="$LIBS"
2014 CPPFLAGS="$CPPFLAGS `$PKG_CONFIG --cflags $cf_ncuconfig_root`"
2015 CF_ADD_LIBS(`$PKG_CONFIG --libs $cf_ncuconfig_root`)
2017 AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
2018 [initscr(); mousemask(0,0); tgoto((char *)0, 0, 0);],
2019 [AC_TRY_RUN([#include <${cf_cv_ncurses_header:-curses.h}>
2021 { char *xx = curses_version(); return (xx == 0); }],
2022 [cf_have_ncuconfig=yes],
2023 [cf_have_ncuconfig=no],
2024 [cf_have_ncuconfig=maybe])],
2025 [cf_have_ncuconfig=no])
2026 AC_MSG_RESULT($cf_have_ncuconfig)
2027 test "$cf_have_ncuconfig" = maybe && cf_have_ncuconfig=yes
2028 if test "$cf_have_ncuconfig" != "yes"
2030 CPPFLAGS="$cf_save_CPPFLAGS"
2031 LIBS="$cf_save_LIBS"
2032 NCURSES_CONFIG_PKG=none
2034 AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
2035 NCURSES_CONFIG_PKG=$cf_ncuconfig_root
2040 NCURSES_CONFIG_PKG=none
2043 NCURSES_CONFIG_PKG=none
2046 if test "x$cf_have_ncuconfig" = "xno"; then
2047 echo "Looking for ${cf_ncuconfig_root}-config"
2049 CF_ACVERSION_CHECK(2.52,
2050 [AC_CHECK_TOOLS(NCURSES_CONFIG, ${cf_ncuconfig_root}-config ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config, none)],
2051 [AC_PATH_PROGS(NCURSES_CONFIG, ${cf_ncuconfig_root}-config ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config, none)])
2053 if test "$NCURSES_CONFIG" != none ; then
2055 CPPFLAGS="$CPPFLAGS `$NCURSES_CONFIG --cflags`"
2056 CF_ADD_LIBS(`$NCURSES_CONFIG --libs`)
2058 # even with config script, some packages use no-override for curses.h
2059 CF_CURSES_HEADER(ifelse($1,,ncurses,$1))
2061 dnl like CF_NCURSES_CPPFLAGS
2062 AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
2064 dnl like CF_NCURSES_LIBS
2065 CF_UPPER(cf_nculib_ROOT,HAVE_LIB$cf_ncuconfig_root)
2066 AC_DEFINE_UNQUOTED($cf_nculib_ROOT)
2068 dnl like CF_NCURSES_VERSION
2069 cf_cv_ncurses_version=`$NCURSES_CONFIG --version`
2073 CF_NCURSES_CPPFLAGS(ifelse($1,,ncurses,$1))
2074 CF_NCURSES_LIBS(ifelse($1,,ncurses,$1))
2081 dnl ---------------------------------------------------------------------------
2082 dnl CF_NCURSES_CPPFLAGS version: 21 updated: 2012/10/06 08:57:51
2083 dnl -------------------
2084 dnl Look for the SVr4 curses clone 'ncurses' in the standard places, adjusting
2085 dnl the CPPFLAGS variable so we can include its header.
2087 dnl The header files may be installed as either curses.h, or ncurses.h (would
2088 dnl be obsolete, except that some packagers prefer this name to distinguish it
2089 dnl from a "native" curses implementation). If not installed for overwrite,
2090 dnl the curses.h file would be in an ncurses subdirectory (e.g.,
2091 dnl /usr/include/ncurses), but someone may have installed overwriting the
2092 dnl vendor's curses. Only very old versions (pre-1.9.2d, the first autoconf'd
2093 dnl version) of ncurses don't define either __NCURSES_H or NCURSES_VERSION in
2096 dnl If the installer has set $CFLAGS or $CPPFLAGS so that the ncurses header
2097 dnl is already in the include-path, don't even bother with this, since we cannot
2098 dnl easily determine which file it is. In this case, it has to be <curses.h>.
2100 dnl The optional parameter gives the root name of the library, in case it is
2101 dnl not installed as the default curses library. That is how the
2102 dnl wide-character version of ncurses is installed.
2103 AC_DEFUN([CF_NCURSES_CPPFLAGS],
2104 [AC_REQUIRE([CF_WITH_CURSES_DIR])
2106 AC_PROVIDE([CF_CURSES_CPPFLAGS])dnl
2107 cf_ncuhdr_root=ifelse($1,,ncurses,$1)
2109 test -n "$cf_cv_curses_dir" && \
2110 test "$cf_cv_curses_dir" != "no" && { \
2111 CF_ADD_INCDIR($cf_cv_curses_dir/include/$cf_ncuhdr_root)
2114 AC_CACHE_CHECK(for $cf_ncuhdr_root header in include-path, cf_cv_ncurses_h,[
2115 cf_header_list="$cf_ncuhdr_root/curses.h $cf_ncuhdr_root/ncurses.h"
2116 ( test "$cf_ncuhdr_root" = ncurses || test "$cf_ncuhdr_root" = ncursesw ) && cf_header_list="$cf_header_list curses.h ncurses.h"
2117 for cf_header in $cf_header_list
2119 CF_NCURSES_CC_CHECK(cf_cv_ncurses_h,$cf_header,$1)
2120 test "$cf_cv_ncurses_h" != no && break
2127 # some applications need this, but should check for NCURSES_VERSION
2128 AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
2132 dnl ---------------------------------------------------------------------------
2133 dnl CF_NCURSES_EXT_FUNCS version: 4 updated: 2012/10/06 16:39:58
2134 dnl --------------------
2135 dnl Since 2007/11/17, ncurses has defined NCURSES_EXT_FUNCS; earlier versions
2136 dnl may provide these functions. Define the symbol if it is not defined, and
2138 AC_DEFUN([CF_NCURSES_EXT_FUNCS],
2140 AC_CACHE_CHECK(for ncurses extended functions,cf_cv_ncurses_ext_funcs,[
2142 #include <${cf_cv_ncurses_header:-curses.h}>],
2144 int x = NCURSES_EXT_FUNCS
2145 ],[cf_cv_ncurses_ext_funcs=defined],[
2147 #include <${cf_cv_ncurses_header:-curses.h}>],
2149 (void) assume_default_colors (0, 0);
2150 (void) curses_version ();
2151 (void) define_key (0, 0);
2152 (void) is_term_resized (0, 0);
2153 (void) key_defined (0);
2154 (void) keybound (0, 0);
2155 (void) keyok (0, 0);
2156 (void) resize_term (0, 0);
2157 (void) resizeterm (0, 0);
2158 (void) use_default_colors ();
2159 (void) use_extended_names (0);
2160 (void) wresize (0, 0, 0);],
2161 [cf_cv_ncurses_ext_funcs=yes],
2162 [cf_cv_ncurses_ext_funcs=no])
2165 test "$cf_cv_ncurses_ext_funcs" = yes && AC_DEFINE(NCURSES_EXT_FUNCS,1,[Define to 1 if we have ncurses extensions])
2167 dnl ---------------------------------------------------------------------------
2168 dnl CF_NCURSES_HEADER version: 4 updated: 2015/04/15 19:08:48
2169 dnl -----------------
2170 dnl Find a "curses" header file, e.g,. "curses.h", or one of the more common
2171 dnl variations of ncurses' installs.
2173 dnl See also CF_CURSES_HEADER, which sets the same cache variable.
2174 AC_DEFUN([CF_NCURSES_HEADER],[
2176 if test "$cf_cv_ncurses_h" != no ; then
2177 cf_cv_ncurses_header=$cf_cv_ncurses_h
2180 AC_CACHE_CHECK(for $cf_ncuhdr_root include-path, cf_cv_ncurses_h2,[
2181 test -n "$verbose" && echo
2182 CF_HEADER_PATH(cf_search,$cf_ncuhdr_root)
2183 test -n "$verbose" && echo search path $cf_search
2184 cf_save2_CPPFLAGS="$CPPFLAGS"
2185 for cf_incdir in $cf_search
2187 CF_ADD_INCDIR($cf_incdir)
2192 CF_NCURSES_CC_CHECK(cf_cv_ncurses_h2,$cf_header,$1)
2193 if test "$cf_cv_ncurses_h2" != no ; then
2194 cf_cv_ncurses_h2=$cf_incdir/$cf_header
2195 test -n "$verbose" && echo $ac_n " ... found $ac_c" 1>&AC_FD_MSG
2198 test -n "$verbose" && echo " ... tested $cf_incdir/$cf_header" 1>&AC_FD_MSG
2200 CPPFLAGS="$cf_save2_CPPFLAGS"
2201 test "$cf_cv_ncurses_h2" != no && break
2203 test "$cf_cv_ncurses_h2" = no && AC_MSG_ERROR(not found)
2206 CF_DIRNAME(cf_1st_incdir,$cf_cv_ncurses_h2)
2207 cf_cv_ncurses_header=`basename $cf_cv_ncurses_h2`
2208 if test `basename $cf_1st_incdir` = $cf_ncuhdr_root ; then
2209 cf_cv_ncurses_header=$cf_ncuhdr_root/$cf_cv_ncurses_header
2211 CF_ADD_INCDIR($cf_1st_incdir)
2215 # Set definitions to allow ifdef'ing for ncurses.h
2217 case $cf_cv_ncurses_header in
2219 AC_DEFINE(HAVE_NCURSES_H,1,[Define to 1 if we have ncurses.h])
2223 case $cf_cv_ncurses_header in
2224 (ncurses/curses.h|ncurses/ncurses.h)
2225 AC_DEFINE(HAVE_NCURSES_NCURSES_H,1,[Define to 1 if we have ncurses/ncurses.h])
2227 (ncursesw/curses.h|ncursesw/ncurses.h)
2228 AC_DEFINE(HAVE_NCURSESW_NCURSES_H,1,[Define to 1 if we have ncursesw/ncurses.h])
2233 dnl ---------------------------------------------------------------------------
2234 dnl CF_NCURSES_LIBS version: 17 updated: 2015/04/15 19:08:48
2236 dnl Look for the ncurses library. This is a little complicated on Linux,
2237 dnl because it may be linked with the gpm (general purpose mouse) library.
2238 dnl Some distributions have gpm linked with (bsd) curses, which makes it
2239 dnl unusable with ncurses. However, we don't want to link with gpm unless
2240 dnl ncurses has a dependency, since gpm is normally set up as a shared library,
2241 dnl and the linker will record a dependency.
2243 dnl The optional parameter gives the root name of the library, in case it is
2244 dnl not installed as the default curses library. That is how the
2245 dnl wide-character version of ncurses is installed.
2246 AC_DEFUN([CF_NCURSES_LIBS],
2247 [AC_REQUIRE([CF_NCURSES_CPPFLAGS])
2249 cf_nculib_root=ifelse($1,,ncurses,$1)
2250 # This works, except for the special case where we find gpm, but
2251 # ncurses is in a nonstandard location via $LIBS, and we really want
2254 cf_ncurses_SAVE="$LIBS"
2255 AC_CHECK_LIB(gpm,Gpm_Open,
2256 [AC_CHECK_LIB(gpm,initscr,
2257 [LIBS="$cf_ncurses_SAVE"],
2258 [cf_ncurses_LIBS="-lgpm"])])
2262 # This is only necessary if you are linking against an obsolete
2263 # version of ncurses (but it should do no harm, since it's static).
2264 if test "$cf_nculib_root" = ncurses ; then
2265 AC_CHECK_LIB(mytinfo,tgoto,[cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"])
2270 CF_ADD_LIBS($cf_ncurses_LIBS)
2272 if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
2274 CF_ADD_LIBS(-l$cf_nculib_root)
2276 CF_FIND_LIBRARY($cf_nculib_root,$cf_nculib_root,
2277 [#include <${cf_cv_ncurses_header:-curses.h}>],
2282 if test -n "$cf_ncurses_LIBS" ; then
2283 AC_MSG_CHECKING(if we can link $cf_nculib_root without $cf_ncurses_LIBS)
2284 cf_ncurses_SAVE="$LIBS"
2285 for p in $cf_ncurses_LIBS ; do
2286 q=`echo $LIBS | sed -e "s%$p %%" -e "s%$p$%%"`
2287 if test "$q" != "$LIBS" ; then
2291 AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
2292 [initscr(); mousemask(0,0); tgoto((char *)0, 0, 0);],
2293 [AC_MSG_RESULT(yes)],
2295 LIBS="$cf_ncurses_SAVE"])
2298 CF_UPPER(cf_nculib_ROOT,HAVE_LIB$cf_nculib_root)
2299 AC_DEFINE_UNQUOTED($cf_nculib_ROOT)
2301 dnl ---------------------------------------------------------------------------
2302 dnl CF_NCURSES_PTHREADS version: 2 updated: 2016/04/22 05:07:41
2303 dnl -------------------
2304 dnl Use this followup check to ensure that we link with pthreads if ncurses
2306 AC_DEFUN([CF_NCURSES_PTHREADS],[
2307 : ${cf_nculib_root:=ifelse($1,,ncurses,$1)}
2308 AC_CHECK_LIB($cf_nculib_root,_nc_init_pthreads,
2309 cf_cv_ncurses_pthreads=yes,
2310 cf_cv_ncurses_pthreads=no)
2311 if test "$cf_cv_ncurses_pthreads" = yes
2313 CF_ADD_LIBS(-lpthread)
2316 dnl ---------------------------------------------------------------------------
2317 dnl CF_NCURSES_VERSION version: 14 updated: 2012/10/06 08:57:51
2318 dnl ------------------
2319 dnl Check for the version of ncurses, to aid in reporting bugs, etc.
2320 dnl Call CF_CURSES_CPPFLAGS first, or CF_NCURSES_CPPFLAGS. We don't use
2321 dnl AC_REQUIRE since that does not work with the shell's if/then/else/fi.
2322 AC_DEFUN([CF_NCURSES_VERSION],
2324 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
2325 AC_CACHE_CHECK(for ncurses version, cf_cv_ncurses_version,[
2326 cf_cv_ncurses_version=no
2330 #include <${cf_cv_ncurses_header:-curses.h}>
2334 FILE *fp = fopen("$cf_tempfile", "w");
2335 #ifdef NCURSES_VERSION
2336 # ifdef NCURSES_VERSION_PATCH
2337 fprintf(fp, "%s.%d\n", NCURSES_VERSION, NCURSES_VERSION_PATCH);
2339 fprintf(fp, "%s\n", NCURSES_VERSION);
2343 fprintf(fp, "old\n");
2348 ${cf_cv_main_return:-return}(0);
2350 cf_cv_ncurses_version=`cat $cf_tempfile`],,[
2352 # This will not work if the preprocessor splits the line after the
2353 # Autoconf token. The 'unproto' program does that.
2354 cat > conftest.$ac_ext <<EOF
2355 #include <${cf_cv_ncurses_header:-curses.h}>
2357 #ifdef NCURSES_VERSION
2358 Autoconf NCURSES_VERSION
2366 cf_try="$ac_cpp conftest.$ac_ext 2>&AC_FD_CC | grep '^Autoconf ' >conftest.out"
2368 if test -f conftest.out ; then
2369 cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[[^"]]*"%%' -e 's%".*%%'`
2370 test -n "$cf_out" && cf_cv_ncurses_version="$cf_out"
2376 test "$cf_cv_ncurses_version" = no || AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
2378 dnl ---------------------------------------------------------------------------
2379 dnl CF_NCURSES_WRAP_PREFIX version: 1 updated: 2009/03/28 16:08:10
2380 dnl ----------------------
2381 dnl Check for ncurses "wrap-prefix" used for public variables which have been
2382 dnl wrapped with a function to help with concurrency control.
2383 AC_DEFUN([CF_NCURSES_WRAP_PREFIX],
2385 AC_MSG_CHECKING(for ncurses wrap-prefix)
2386 AC_ARG_WITH(ncurses-wrap-prefix,
2387 [ --with-ncurses-wrap-prefix naming-prefix for ncurses wrapped-variables],
2388 [NCURSES_WRAP_PREFIX=$withval],
2389 [NCURSES_WRAP_PREFIX=_nc_])
2390 AC_MSG_RESULT($NCURSES_WRAP_PREFIX)
2392 AC_SUBST(NCURSES_WRAP_PREFIX)
2394 dnl ---------------------------------------------------------------------------
2395 dnl CF_NETBSD_FORM_H version: 2 updated: 2012/10/06 16:39:58
2396 dnl ----------------
2397 dnl Check for NetBSD's form.h, which is incompatible with SVr4 and ncurses.
2398 dnl Some workarounds are needed in client programs to allow them to compile.
2399 AC_DEFUN([CF_NETBSD_FORM_H],[
2400 AC_CACHE_CHECK(for NetBSD form.h,cf_cv_netbsd_form_h,[
2402 #include <${cf_cv_ncurses_header:-curses.h}>
2406 int y = current_field(form)->cursor_ypos;
2407 int x = current_field(form)->cursor_xpos;
2408 ],[cf_cv_netbsd_form_h=yes
2409 ],[cf_cv_netbsd_form_h=no])
2412 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])
2414 dnl ---------------------------------------------------------------------------
2415 dnl CF_NETBSD_MENU_H version: 2 updated: 2012/10/06 16:39:58
2416 dnl ----------------
2417 dnl Check for NetBSD's menu.h, which is incompatible with SVr4 and ncurses.
2418 dnl Some workarounds are needed in client programs to allow them to compile.
2419 AC_DEFUN([CF_NETBSD_MENU_H],[
2420 AC_CACHE_CHECK(for NetBSD menu.h,cf_cv_netbsd_menu_h,[
2422 #include <${cf_cv_ncurses_header:-curses.h}>
2426 int y = menu->max_item_width;
2427 ],[cf_cv_netbsd_menu_h=yes
2428 ],[cf_cv_netbsd_menu_h=no])
2431 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])
2433 dnl ---------------------------------------------------------------------------
2434 dnl CF_NO_LEAKS_OPTION version: 6 updated: 2015/04/12 15:39:00
2435 dnl ------------------
2436 dnl see CF_WITH_NO_LEAKS
2437 AC_DEFUN([CF_NO_LEAKS_OPTION],[
2438 AC_MSG_CHECKING(if you want to use $1 for testing)
2441 [AC_DEFINE_UNQUOTED($3,1,"Define to 1 if you want to use $1 for testing.")ifelse([$4],,[
2444 : ${with_cflags:=-g}
2445 : ${with_no_leaks:=yes}
2448 AC_MSG_RESULT(${with_$1:-no})
2450 case .$with_cflags in
2462 dnl ---------------------------------------------------------------------------
2463 dnl CF_PATH_SYNTAX version: 16 updated: 2015/04/18 08:56:57
2465 dnl Check the argument to see that it looks like a pathname. Rewrite it if it
2466 dnl begins with one of the prefix/exec_prefix variables, and then again if the
2467 dnl result begins with 'NONE'. This is necessary to work around autoconf's
2468 dnl delayed evaluation of those symbols.
2469 AC_DEFUN([CF_PATH_SYNTAX],[
2470 if test "x$prefix" != xNONE; then
2471 cf_path_syntax="$prefix"
2473 cf_path_syntax="$ac_default_prefix"
2477 (.\[$]\(*\)*|.\'*\'*)
2481 (.[[a-zA-Z]]:[[\\/]]*) # OS/2 EMX
2483 (.\[$]{*prefix}*|.\[$]{*dir}*)
2487 $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
2492 $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
2495 ifelse([$2],,[AC_MSG_ERROR([expected a pathname, not \"[$]$1\"])],$2)
2499 dnl ---------------------------------------------------------------------------
2500 dnl CF_PDCURSES_X11 version: 13 updated: 2012/10/06 16:39:58
2502 dnl Configure for PDCurses' X11 library
2503 AC_DEFUN([CF_PDCURSES_X11],[
2504 AC_REQUIRE([CF_X_ATHENA])
2506 CF_ACVERSION_CHECK(2.52,
2507 [AC_CHECK_TOOLS(XCURSES_CONFIG, xcurses-config, none)],
2508 [AC_PATH_PROGS(XCURSES_CONFIG, xcurses-config, none)])
2510 if test "$XCURSES_CONFIG" != none ; then
2512 CPPFLAGS="$CPPFLAGS `$XCURSES_CONFIG --cflags`"
2513 CF_ADD_LIBS(`$XCURSES_CONFIG --libs`)
2515 cf_cv_lib_XCurses=yes
2519 LDFLAGS="$LDFLAGS $X_LIBS"
2520 CF_CHECK_CFLAGS($X_CFLAGS)
2521 AC_CHECK_LIB(X11,XOpenDisplay,
2522 [CF_ADD_LIBS(-lX11)],,
2523 [$X_PRE_LIBS $LIBS $X_EXTRA_LIBS])
2524 AC_CACHE_CHECK(for XCurses library,cf_cv_lib_XCurses,[
2525 CF_ADD_LIBS(-lXCurses)
2527 #include <xcurses.h>
2528 char *XCursesProgramName = "test";
2530 [cf_cv_lib_XCurses=yes],
2531 [cf_cv_lib_XCurses=no])
2536 if test $cf_cv_lib_XCurses = yes ; then
2537 AC_DEFINE(UNIX,1,[Define to 1 if using PDCurses on Unix])
2538 AC_DEFINE(XCURSES,1,[Define to 1 if using PDCurses on Unix])
2539 AC_CHECK_HEADER(xcurses.h, AC_DEFINE(HAVE_XCURSES,1,[Define to 1 if using PDCurses on Unix]))
2541 AC_MSG_ERROR(Cannot link with XCurses)
2544 dnl ---------------------------------------------------------------------------
2545 dnl CF_PKG_CONFIG version: 10 updated: 2015/04/26 18:06:58
2547 dnl Check for the package-config program, unless disabled by command-line.
2548 AC_DEFUN([CF_PKG_CONFIG],
2550 AC_MSG_CHECKING(if you want to use pkg-config)
2551 AC_ARG_WITH(pkg-config,
2552 [ --with-pkg-config{=path} enable/disable use of pkg-config],
2553 [cf_pkg_config=$withval],
2554 [cf_pkg_config=yes])
2555 AC_MSG_RESULT($cf_pkg_config)
2557 case $cf_pkg_config in
2562 CF_ACVERSION_CHECK(2.52,
2563 [AC_PATH_TOOL(PKG_CONFIG, pkg-config, none)],
2564 [AC_PATH_PROG(PKG_CONFIG, pkg-config, none)])
2571 test -z "$PKG_CONFIG" && PKG_CONFIG=none
2572 if test "$PKG_CONFIG" != none ; then
2573 CF_PATH_SYNTAX(PKG_CONFIG)
2574 elif test "x$cf_pkg_config" != xno ; then
2575 AC_MSG_WARN(pkg-config is not installed)
2578 AC_SUBST(PKG_CONFIG)
2580 dnl ---------------------------------------------------------------------------
2581 dnl CF_POSIX_C_SOURCE version: 9 updated: 2015/04/12 15:39:00
2582 dnl -----------------
2583 dnl Define _POSIX_C_SOURCE to the given level, and _POSIX_SOURCE if needed.
2585 dnl POSIX.1-1990 _POSIX_SOURCE
2586 dnl POSIX.1-1990 and _POSIX_SOURCE and
2587 dnl POSIX.2-1992 C-Language _POSIX_C_SOURCE=2
2589 dnl POSIX.1b-1993 _POSIX_C_SOURCE=199309L
2590 dnl POSIX.1c-1996 _POSIX_C_SOURCE=199506L
2591 dnl X/Open 2000 _POSIX_C_SOURCE=200112L
2594 dnl $1 is the nominal value for _POSIX_C_SOURCE
2595 AC_DEFUN([CF_POSIX_C_SOURCE],
2597 cf_POSIX_C_SOURCE=ifelse([$1],,199506L,[$1])
2599 cf_save_CFLAGS="$CFLAGS"
2600 cf_save_CPPFLAGS="$CPPFLAGS"
2602 CF_REMOVE_DEFINE(cf_trim_CFLAGS,$cf_save_CFLAGS,_POSIX_C_SOURCE)
2603 CF_REMOVE_DEFINE(cf_trim_CPPFLAGS,$cf_save_CPPFLAGS,_POSIX_C_SOURCE)
2605 AC_CACHE_CHECK(if we should define _POSIX_C_SOURCE,cf_cv_posix_c_source,[
2606 CF_MSG_LOG(if the symbol is already defined go no further)
2607 AC_TRY_COMPILE([#include <sys/types.h>],[
2608 #ifndef _POSIX_C_SOURCE
2611 [cf_cv_posix_c_source=no],
2612 [cf_want_posix_source=no
2613 case .$cf_POSIX_C_SOURCE in
2615 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
2618 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
2619 cf_want_posix_source=yes
2622 cf_want_posix_source=yes
2625 if test "$cf_want_posix_source" = yes ; then
2626 AC_TRY_COMPILE([#include <sys/types.h>],[
2627 #ifdef _POSIX_SOURCE
2630 cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE")
2632 CF_MSG_LOG(ifdef from value $cf_POSIX_C_SOURCE)
2633 CFLAGS="$cf_trim_CFLAGS"
2634 CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source"
2635 CF_MSG_LOG(if the second compile does not leave our definition intact error)
2636 AC_TRY_COMPILE([#include <sys/types.h>],[
2637 #ifndef _POSIX_C_SOURCE
2640 [cf_cv_posix_c_source=no])
2641 CFLAGS="$cf_save_CFLAGS"
2642 CPPFLAGS="$cf_save_CPPFLAGS"
2646 if test "$cf_cv_posix_c_source" != no ; then
2647 CFLAGS="$cf_trim_CFLAGS"
2648 CPPFLAGS="$cf_trim_CPPFLAGS"
2649 CF_ADD_CFLAGS($cf_cv_posix_c_source)
2653 dnl ---------------------------------------------------------------------------
2654 dnl CF_PRG_RULES version: 1 updated: 2006/06/03 11:45:08
2656 dnl Append definitions and rules for the given programs to the subdirectory
2657 dnl Makefiles, and the recursion rule for the top-level Makefile.
2660 dnl $1 = script to run
2661 dnl $2 = list of subdirectories
2665 AC_DEFUN([CF_PRG_RULES],
2669 if test ! -d $srcdir/$cf_dir; then
2671 elif test -f $srcdir/$cf_dir/programs; then
2672 $AWK -f $1 $srcdir/$cf_dir/programs >>$cf_dir/Makefile
2677 dnl ---------------------------------------------------------------------------
2678 dnl CF_PROG_CC version: 4 updated: 2014/07/12 18:57:58
2680 dnl standard check for CC, plus followup sanity checks
2681 dnl $1 = optional parameter to pass to AC_PROG_CC to specify compiler name
2682 AC_DEFUN([CF_PROG_CC],[
2683 ifelse($1,,[AC_PROG_CC],[AC_PROG_CC($1)])
2685 CF_ACVERSION_CHECK(2.52,
2690 dnl ---------------------------------------------------------------------------
2691 dnl CF_PROG_INSTALL version: 7 updated: 2015/04/18 08:56:57
2693 dnl Force $INSTALL to be an absolute-path. Otherwise, edit_man.sh and the
2694 dnl misc/tabset install won't work properly. Usually this happens only when
2695 dnl using the fallback mkinstalldirs script
2696 AC_DEFUN([CF_PROG_INSTALL],
2702 CF_DIRNAME(cf_dir,$INSTALL)
2703 test -z "$cf_dir" && cf_dir=.
2704 INSTALL=`cd $cf_dir && pwd`/`echo $INSTALL | sed -e 's%^.*/%%'`
2708 dnl ---------------------------------------------------------------------------
2709 dnl CF_PROG_LINT version: 3 updated: 2016/05/22 15:25:54
2711 AC_DEFUN([CF_PROG_LINT],
2713 AC_CHECK_PROGS(LINT, lint cppcheck splint)
2716 dnl ---------------------------------------------------------------------------
2717 dnl CF_REMOVE_DEFINE version: 3 updated: 2010/01/09 11:05:50
2718 dnl ----------------
2719 dnl Remove all -U and -D options that refer to the given symbol from a list
2720 dnl of C compiler options. This works around the problem that not all
2721 dnl compilers process -U and -D options from left-to-right, so a -U option
2722 dnl cannot be used to cancel the effect of a preceding -D option.
2724 dnl $1 = target (which could be the same as the source variable)
2725 dnl $2 = source (including '$')
2726 dnl $3 = symbol to remove
2727 define([CF_REMOVE_DEFINE],
2730 sed -e 's/-[[UD]]'"$3"'\(=[[^ ]]*\)\?[[ ]]/ /g' \
2731 -e 's/-[[UD]]'"$3"'\(=[[^ ]]*\)\?[$]//g'`
2733 dnl ---------------------------------------------------------------------------
2734 dnl CF_RPATH_HACK version: 11 updated: 2013/09/01 13:02:00
2736 AC_DEFUN([CF_RPATH_HACK],
2738 AC_REQUIRE([CF_LD_RPATH_OPT])
2739 AC_MSG_CHECKING(for updated LDFLAGS)
2740 if test -n "$LD_RPATH_OPT" ; then
2741 AC_MSG_RESULT(maybe)
2743 AC_CHECK_PROGS(cf_ldd_prog,ldd,no)
2744 cf_rpath_list="/usr/lib /lib"
2745 if test "$cf_ldd_prog" != no
2749 AC_TRY_LINK([#include <stdio.h>],
2751 [cf_rpath_oops=`$cf_ldd_prog conftest$ac_exeext | fgrep ' not found' | sed -e 's% =>.*$%%' |sort | uniq`
2752 cf_rpath_list=`$cf_ldd_prog conftest$ac_exeext | fgrep / | sed -e 's%^.*[[ ]]/%/%' -e 's%/[[^/]][[^/]]*$%%' |sort | uniq`])
2754 # If we passed the link-test, but get a "not found" on a given library,
2755 # this could be due to inept reconfiguration of gcc to make it only
2756 # partly honor /usr/local/lib (or whatever). Sometimes this behavior
2757 # is intentional, e.g., installing gcc in /usr/bin and suppressing the
2758 # /usr/local libraries.
2759 if test -n "$cf_rpath_oops"
2761 for cf_rpath_src in $cf_rpath_oops
2763 for cf_rpath_dir in \
2768 if test -f $cf_rpath_dir/lib/$cf_rpath_src
2770 CF_VERBOSE(...adding -L$cf_rpath_dir/lib to LDFLAGS for $cf_rpath_src)
2771 LDFLAGS="$LDFLAGS -L$cf_rpath_dir/lib"
2779 CF_VERBOSE(...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS)
2781 CF_RPATH_HACK_2(LDFLAGS)
2782 CF_RPATH_HACK_2(LIBS)
2784 CF_VERBOSE(...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS)
2788 AC_SUBST(EXTRA_LDFLAGS)
2790 dnl ---------------------------------------------------------------------------
2791 dnl CF_RPATH_HACK_2 version: 7 updated: 2015/04/12 15:39:00
2793 dnl Do one set of substitutions for CF_RPATH_HACK, adding an rpath option to
2794 dnl EXTRA_LDFLAGS for each -L option found.
2796 dnl $cf_rpath_list contains a list of directories to ignore.
2798 dnl $1 = variable name to update. The LDFLAGS variable should be the only one,
2799 dnl but LIBS often has misplaced -L options.
2800 AC_DEFUN([CF_RPATH_HACK_2],
2802 CF_VERBOSE(...checking $1 [$]$1)
2805 for cf_rpath_src in [$]$1
2807 case $cf_rpath_src in
2810 # check if this refers to a directory which we will ignore
2812 if test -n "$cf_rpath_list"
2814 for cf_rpath_item in $cf_rpath_list
2816 if test "x$cf_rpath_src" = "x-L$cf_rpath_item"
2824 if test "$cf_rpath_skip" = no
2826 # transform the option
2827 if test "$LD_RPATH_OPT" = "-R " ; then
2828 cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%-R %"`
2830 cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%$LD_RPATH_OPT%"`
2833 # if we have not already added this, add it now
2834 cf_rpath_tst=`echo "$EXTRA_LDFLAGS" | sed -e "s%$cf_rpath_tmp %%"`
2835 if test "x$cf_rpath_tst" = "x$EXTRA_LDFLAGS"
2837 CF_VERBOSE(...Filter $cf_rpath_src ->$cf_rpath_tmp)
2838 EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS"
2843 cf_rpath_dst="$cf_rpath_dst $cf_rpath_src"
2847 CF_VERBOSE(...checked $1 [$]$1)
2848 AC_SUBST(EXTRA_LDFLAGS)
2850 dnl ---------------------------------------------------------------------------
2851 dnl CF_SIGWINCH version: 1 updated: 2006/04/02 16:41:09
2853 dnl Use this macro after CF_XOPEN_SOURCE, but do not require it (not all
2854 dnl programs need this test).
2856 dnl This is really a MacOS X 10.4.3 workaround. Defining _POSIX_C_SOURCE
2857 dnl forces SIGWINCH to be undefined (breaks xterm, ncurses). Oddly, the struct
2858 dnl winsize declaration is left alone - we may revisit this if Apple choose to
2859 dnl break that part of the interface as well.
2860 AC_DEFUN([CF_SIGWINCH],
2862 AC_CACHE_CHECK(if SIGWINCH is defined,cf_cv_define_sigwinch,[
2864 #include <sys/types.h>
2865 #include <sys/signal.h>
2866 ],[int x = SIGWINCH],
2867 [cf_cv_define_sigwinch=yes],
2869 #undef _XOPEN_SOURCE
2870 #undef _POSIX_SOURCE
2871 #undef _POSIX_C_SOURCE
2872 #include <sys/types.h>
2873 #include <sys/signal.h>
2874 ],[int x = SIGWINCH],
2875 [cf_cv_define_sigwinch=maybe],
2876 [cf_cv_define_sigwinch=no])
2880 if test "$cf_cv_define_sigwinch" = maybe ; then
2881 AC_CACHE_CHECK(for actual SIGWINCH definition,cf_cv_fixup_sigwinch,[
2882 cf_cv_fixup_sigwinch=unknown
2884 while test $cf_sigwinch != 1
2887 #undef _XOPEN_SOURCE
2888 #undef _POSIX_SOURCE
2889 #undef _POSIX_C_SOURCE
2890 #include <sys/types.h>
2891 #include <sys/signal.h>
2893 #if SIGWINCH != $cf_sigwinch
2897 [cf_cv_fixup_sigwinch=$cf_sigwinch
2900 cf_sigwinch=`expr $cf_sigwinch - 1`
2904 if test "$cf_cv_fixup_sigwinch" != unknown ; then
2905 CPPFLAGS="$CPPFLAGS -DSIGWINCH=$cf_cv_fixup_sigwinch"
2909 dnl ---------------------------------------------------------------------------
2910 dnl CF_SIG_ATOMIC_T version: 3 updated: 2012/10/04 20:12:20
2912 dnl signal handler, but there are some gcc depedencies in that recommendation.
2914 AC_DEFUN([CF_SIG_ATOMIC_T],
2916 AC_MSG_CHECKING(for signal global datatype)
2917 AC_CACHE_VAL(cf_cv_sig_atomic_t,[
2919 "volatile sig_atomic_t" \
2924 #include <sys/types.h>
2930 static void handler(int sig)
2934 [signal(SIGINT, handler);
2936 [cf_cv_sig_atomic_t=$cf_type],
2937 [cf_cv_sig_atomic_t=no])
2938 test "$cf_cv_sig_atomic_t" != no && break
2941 AC_MSG_RESULT($cf_cv_sig_atomic_t)
2942 test "$cf_cv_sig_atomic_t" != no && AC_DEFINE_UNQUOTED(SIG_ATOMIC_T, $cf_cv_sig_atomic_t,[Define to signal global datatype])
2944 dnl ---------------------------------------------------------------------------
2945 dnl CF_SUBDIR_PATH version: 7 updated: 2014/12/04 04:33:06
2947 dnl Construct a search-list for a nonstandard header/lib-file
2948 dnl $1 = the variable to return as result
2949 dnl $2 = the package name
2950 dnl $3 = the subdirectory, e.g., bin, include or lib
2951 AC_DEFUN([CF_SUBDIR_PATH],
2955 CF_ADD_SUBDIR_PATH($1,$2,$3,$prefix,NONE)
2957 for cf_subdir_prefix in \
2965 CF_ADD_SUBDIR_PATH($1,$2,$3,$cf_subdir_prefix,$prefix)
2968 dnl ---------------------------------------------------------------------------
2969 dnl CF_SYS_TIME_SELECT version: 6 updated: 2015/04/18 08:56:57
2970 dnl ------------------
2971 dnl Check if we can include <sys/time.h> with <sys/select.h>; this breaks on
2972 dnl older SCO configurations.
2973 AC_DEFUN([CF_SYS_TIME_SELECT],
2975 AC_MSG_CHECKING(if sys/time.h works with sys/select.h)
2976 AC_CACHE_VAL(cf_cv_sys_time_select,[
2978 #include <sys/types.h>
2979 #ifdef HAVE_SYS_TIME_H
2980 #include <sys/time.h>
2982 #ifdef HAVE_SYS_SELECT_H
2983 #include <sys/select.h>
2985 ],[],[cf_cv_sys_time_select=yes],
2986 [cf_cv_sys_time_select=no])
2988 AC_MSG_RESULT($cf_cv_sys_time_select)
2989 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>])
2991 dnl ---------------------------------------------------------------------------
2992 dnl CF_TERM_HEADER version: 4 updated: 2015/04/15 19:08:48
2994 dnl Look for term.h, which is part of X/Open curses. It defines the interface
2995 dnl to terminfo database. Usually it is in the same include-path as curses.h,
2996 dnl but some packagers change this, breaking various applications.
2997 AC_DEFUN([CF_TERM_HEADER],[
2998 AC_CACHE_CHECK(for terminfo header, cf_cv_term_header,[
2999 case ${cf_cv_ncurses_header} in
3000 (*/ncurses.h|*/ncursesw.h)
3001 cf_term_header=`echo "$cf_cv_ncurses_header" | sed -e 's%ncurses[[^.]]*\.h$%term.h%'`
3004 cf_term_header=term.h
3008 for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
3010 AC_TRY_COMPILE([#include <stdio.h>
3011 #include <${cf_cv_ncurses_header:-curses.h}>
3013 ],[int x = auto_left_margin],[
3014 cf_cv_term_header="$cf_test"],[
3015 cf_cv_term_header=unknown
3017 test "$cf_cv_term_header" != unknown && break
3021 # Set definitions to allow ifdef'ing to accommodate subdirectories
3023 case $cf_cv_term_header in
3025 AC_DEFINE(HAVE_TERM_H,1,[Define to 1 if we have term.h])
3029 case $cf_cv_term_header in
3031 AC_DEFINE(HAVE_NCURSES_TERM_H,1,[Define to 1 if we have ncurses/term.h])
3034 AC_DEFINE(HAVE_NCURSESW_TERM_H,1,[Define to 1 if we have ncursesw/term.h])
3038 dnl ---------------------------------------------------------------------------
3039 dnl CF_TOP_BUILDDIR version: 2 updated: 2013/07/27 17:38:32
3041 dnl Define a top_builddir symbol, for applications that need an absolute path.
3042 AC_DEFUN([CF_TOP_BUILDDIR],
3044 top_builddir=ifelse($1,,`pwd`,$1)
3045 AC_SUBST(top_builddir)
3047 dnl ---------------------------------------------------------------------------
3048 dnl CF_TPUTS_PROTO version: 3 updated: 2015/04/17 21:26:14
3050 dnl Check for type of function-pointer passed to tputs. Some old
3051 dnl implementations used functions that had different prototypes, making it
3052 dnl hard to compile portable programs using tputs.
3053 AC_DEFUN([CF_TPUTS_PROTO],[
3054 CF_CURSES_FUNCS(tputs)
3055 if test x$cf_cv_func_tputs = xyes
3058 for cf_arg in int char
3060 for cf_ret in int void
3062 if test $cf_ret = void
3064 cf_return="/* nothing */"
3066 cf_return="return value"
3069 #include <${cf_cv_ncurses_header:-curses.h}>
3070 #include <$cf_cv_term_header>
3072 static $cf_ret outc($cf_arg value) { $cf_return; }
3074 tputs("hello", 0, outc);
3075 ${cf_cv_main_return:-return}(0);
3077 CF_VERBOSE([prototype $cf_ret func($cf_arg value)])
3078 cat >>confdefs.h <<EOF
3079 #define TPUTS_ARG $cf_arg
3080 #define TPUTS_PROTO(func,value) $cf_ret func(TPUTS_ARG value)
3081 #define TPUTS_RETURN(value) $cf_return
3087 test $cf_done = yes && break
3091 dnl ---------------------------------------------------------------------------
3092 dnl CF_TRIM_X_LIBS version: 3 updated: 2015/04/12 15:39:00
3094 dnl Trim extra base X libraries added as a workaround for inconsistent library
3095 dnl dependencies returned by "new" pkg-config files.
3096 AC_DEFUN([CF_TRIM_X_LIBS],[
3097 for cf_trim_lib in Xmu Xt X11
3100 (*-l$cf_trim_lib\ *-l$cf_trim_lib*)
3101 LIBS=`echo "$LIBS " | sed -e 's/ / /g' -e 's%-l'"$cf_trim_lib"' %%' -e 's/ $//'`
3102 CF_VERBOSE(..trimmed $LIBS)
3107 dnl ---------------------------------------------------------------------------
3108 dnl CF_TRY_PKG_CONFIG version: 5 updated: 2013/07/06 21:27:06
3109 dnl -----------------
3110 dnl This is a simple wrapper to use for pkg-config, for libraries which may be
3111 dnl available in that form.
3113 dnl $1 = package name
3114 dnl $2 = extra logic to use, if any, after updating CFLAGS and LIBS
3115 dnl $3 = logic to use if pkg-config does not have the package
3116 AC_DEFUN([CF_TRY_PKG_CONFIG],[
3117 AC_REQUIRE([CF_PKG_CONFIG])
3119 if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists $1; then
3120 CF_VERBOSE(found package $1)
3121 cf_pkgconfig_incs="`$PKG_CONFIG --cflags $1 2>/dev/null`"
3122 cf_pkgconfig_libs="`$PKG_CONFIG --libs $1 2>/dev/null`"
3123 CF_VERBOSE(package $1 CFLAGS: $cf_pkgconfig_incs)
3124 CF_VERBOSE(package $1 LIBS: $cf_pkgconfig_libs)
3125 CF_ADD_CFLAGS($cf_pkgconfig_incs)
3126 CF_ADD_LIBS($cf_pkgconfig_libs)
3127 ifelse([$2],,:,[$2])
3131 ifelse([$3],,:,[$3])
3134 dnl ---------------------------------------------------------------------------
3135 dnl CF_TRY_XOPEN_SOURCE version: 1 updated: 2011/10/30 17:09:50
3136 dnl -------------------
3137 dnl If _XOPEN_SOURCE is not defined in the compile environment, check if we
3138 dnl can define it successfully.
3139 AC_DEFUN([CF_TRY_XOPEN_SOURCE],[
3140 AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[
3144 #include <sys/types.h>
3146 #ifndef _XOPEN_SOURCE
3149 [cf_cv_xopen_source=no],
3150 [cf_save="$CPPFLAGS"
3151 CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
3155 #include <sys/types.h>
3157 #ifdef _XOPEN_SOURCE
3160 [cf_cv_xopen_source=no],
3161 [cf_cv_xopen_source=$cf_XOPEN_SOURCE])
3166 if test "$cf_cv_xopen_source" != no ; then
3167 CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE)
3168 CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE)
3169 cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
3170 CF_ADD_CFLAGS($cf_temp_xopen_source)
3173 dnl ---------------------------------------------------------------------------
3174 dnl CF_UPPER version: 5 updated: 2001/01/29 23:40:59
3176 dnl Make an uppercase version of a variable
3177 dnl $1=uppercase($2)
3178 AC_DEFUN([CF_UPPER],
3180 $1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
3182 dnl ---------------------------------------------------------------------------
3183 dnl CF_UTF8_LIB version: 8 updated: 2012/10/06 08:57:51
3185 dnl Check for multibyte support, and if not found, utf8 compatibility library
3186 AC_DEFUN([CF_UTF8_LIB],
3188 AC_CACHE_CHECK(for multibyte character support,cf_cv_utf8_lib,[
3189 cf_save_LIBS="$LIBS"
3191 #include <stdlib.h>],[putwc(0,0);],
3192 [cf_cv_utf8_lib=yes],
3194 #include <libutf8.h>],[putwc(0,0);],utf8,
3195 [cf_cv_utf8_lib=add-on],
3196 [cf_cv_utf8_lib=no])
3199 # HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
3201 if test "$cf_cv_utf8_lib" = "add-on" ; then
3202 AC_DEFINE(HAVE_LIBUTF8_H,1,[Define to 1 if we should include libutf8.h])
3203 CF_ADD_INCDIR($cf_cv_header_path_utf8)
3204 CF_ADD_LIBDIR($cf_cv_library_path_utf8)
3205 CF_ADD_LIBS($cf_cv_library_file_utf8)
3208 dnl ---------------------------------------------------------------------------
3209 dnl CF_VERBOSE version: 3 updated: 2007/07/29 09:55:12
3211 dnl Use AC_VERBOSE w/o the warnings
3212 AC_DEFUN([CF_VERBOSE],
3213 [test -n "$verbose" && echo " $1" 1>&AC_FD_MSG
3216 dnl ---------------------------------------------------------------------------
3217 dnl CF_WCHAR_TYPE version: 4 updated: 2012/10/06 16:39:58
3219 dnl Check if type wide-character type $1 is declared, and if so, which header
3220 dnl file is needed. The second parameter is used to set a shell variable when
3221 dnl the type is not found. The first parameter sets a shell variable for the
3223 AC_DEFUN([CF_WCHAR_TYPE],
3225 # This is needed on Tru64 5.0 to declare $1
3226 AC_CACHE_CHECK(if we must include wchar.h to declare $1,cf_cv_$1,[
3231 #ifdef HAVE_LIBUTF8_H
3232 #include <libutf8.h>
3241 #ifdef HAVE_LIBUTF8_H
3242 #include <libutf8.h>
3246 [cf_cv_$1=unknown])])])
3248 if test "$cf_cv_$1" = yes ; then
3249 AC_DEFINE(NEED_WCHAR_H,1,[Define to 1 if we must include wchar.h])
3254 # if we do not find $1 in either place, use substitution to provide a fallback.
3255 if test "$cf_cv_$1" = unknown ; then
3260 # if we find $1 in either place, use substitution to provide a fallback.
3261 if test "$cf_cv_$1" != unknown ; then
3266 dnl ---------------------------------------------------------------------------
3267 dnl CF_WITH_CURSES_DIR version: 3 updated: 2010/11/20 17:02:38
3268 dnl ------------------
3269 dnl Wrapper for AC_ARG_WITH to specify directory under which to look for curses
3271 AC_DEFUN([CF_WITH_CURSES_DIR],[
3273 AC_MSG_CHECKING(for specific curses-directory)
3274 AC_ARG_WITH(curses-dir,
3275 [ --with-curses-dir=DIR directory in which (n)curses is installed],
3276 [cf_cv_curses_dir=$withval],
3277 [cf_cv_curses_dir=no])
3278 AC_MSG_RESULT($cf_cv_curses_dir)
3280 if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
3282 CF_PATH_SYNTAX(withval)
3283 if test -d "$cf_cv_curses_dir"
3285 CF_ADD_INCDIR($cf_cv_curses_dir/include)
3286 CF_ADD_LIBDIR($cf_cv_curses_dir/lib)
3290 dnl ---------------------------------------------------------------------------
3291 dnl CF_WITH_DBMALLOC version: 7 updated: 2010/06/21 17:26:47
3292 dnl ----------------
3293 dnl Configure-option for dbmalloc. The optional parameter is used to override
3294 dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
3295 AC_DEFUN([CF_WITH_DBMALLOC],[
3296 CF_NO_LEAKS_OPTION(dbmalloc,
3297 [ --with-dbmalloc test: use Conor Cahill's dbmalloc library],
3300 if test "$with_dbmalloc" = yes ; then
3301 AC_CHECK_HEADER(dbmalloc.h,
3302 [AC_CHECK_LIB(dbmalloc,[debug_malloc]ifelse([$1],,[],[,$1]))])
3305 dnl ---------------------------------------------------------------------------
3306 dnl CF_WITH_DMALLOC version: 7 updated: 2010/06/21 17:26:47
3308 dnl Configure-option for dmalloc. The optional parameter is used to override
3309 dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
3310 AC_DEFUN([CF_WITH_DMALLOC],[
3311 CF_NO_LEAKS_OPTION(dmalloc,
3312 [ --with-dmalloc test: use Gray Watson's dmalloc library],
3315 if test "$with_dmalloc" = yes ; then
3316 AC_CHECK_HEADER(dmalloc.h,
3317 [AC_CHECK_LIB(dmalloc,[dmalloc_debug]ifelse([$1],,[],[,$1]))])
3320 dnl ---------------------------------------------------------------------------
3321 dnl CF_WITH_NCURSES_ETC version: 5 updated: 2016/02/20 19:23:20
3322 dnl -------------------
3323 dnl Use this macro for programs which use any variant of "curses", e.g.,
3324 dnl "ncurses", and "PDCurses". Programs that can use curses and some unrelated
3325 dnl library (such as slang) should use a "--with-screen=XXX" option.
3327 dnl This does not use AC_DEFUN, because that would tell autoconf to run each
3328 dnl of the macros inside this one - before this macro.
3329 define([CF_WITH_NCURSES_ETC],[
3334 AC_MSG_CHECKING(for specified curses library type)
3336 [ --with-screen=XXX use specified curses-libraries],
3337 [cf_cv_screen=$withval],[
3339 AC_ARG_WITH(ncursesw,
3340 [ --with-ncursesw use wide ncurses-libraries],
3341 [cf_cv_screen=ncursesw],[
3343 AC_ARG_WITH(ncurses,
3344 [ --with-ncurses use ncurses-libraries],
3345 [cf_cv_screen=ncurses],[
3347 AC_ARG_WITH(pdcurses,
3348 [ --with-pdcurses compile/link with pdcurses X11 library],
3349 [cf_cv_screen=pdcurses],[
3351 AC_ARG_WITH(curses-colr,
3352 [ --with-curses-colr compile/link with HPUX 10.x color-curses],
3353 [cf_cv_screen=curses_colr],[
3355 AC_ARG_WITH(curses-5lib,
3356 [ --with-curses-5lib compile/link with SunOS 5lib curses],
3357 [cf_cv_screen=curses_5lib])])])])])])
3359 AC_MSG_RESULT($cf_cv_screen)
3361 case $cf_cv_screen in
3367 CF_NCURSES_CONFIG($cf_cv_screen)
3370 CF_NCURSES_CONFIG($cf_cv_screen)
3376 AC_MSG_ERROR(unexpected screen-value: $cf_cv_screen)
3380 CF_NCURSES_PTHREADS($cf_cv_screen)
3383 dnl ---------------------------------------------------------------------------
3384 dnl CF_WITH_VALGRIND version: 1 updated: 2006/12/14 18:00:21
3385 dnl ----------------
3386 AC_DEFUN([CF_WITH_VALGRIND],[
3387 CF_NO_LEAKS_OPTION(valgrind,
3388 [ --with-valgrind test: use valgrind],
3391 dnl ---------------------------------------------------------------------------
3392 dnl CF_XOPEN_CURSES version: 13 updated: 2015/12/12 20:59:52
3394 dnl Test if we should define X/Open source for curses, needed on Digital Unix
3395 dnl 4.x, to see the extended functions, but breaks on IRIX 6.x.
3397 dnl The getbegyx() check is needed for HPUX, which omits legacy macros such
3398 dnl as getbegy(). The latter is better design, but the former is standard.
3399 AC_DEFUN([CF_XOPEN_CURSES],
3401 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
3402 AC_CACHE_CHECK(definition to turn on extended curses functions,cf_cv_need_xopen_extension,[
3403 cf_cv_need_xopen_extension=unknown
3406 #include <${cf_cv_ncurses_header:-curses.h}>],[
3407 #if defined(NCURSES_VERSION_PATCH)
3408 #if (NCURSES_VERSION_PATCH < 20100501) && (NCURSES_VERSION_PATCH >= 20100403)
3412 #ifdef NCURSES_VERSION
3414 int check2 = curs_set((int)sizeof(check));
3416 long x = winnstr(stdscr, "", 0);
3418 getbegyx(stdscr, y1, x1)],
3419 [cf_cv_need_xopen_extension=none],
3421 for cf_try_xopen_extension in _XOPEN_SOURCE_EXTENDED NCURSES_WIDECHAR
3424 #define $cf_try_xopen_extension 1
3426 #include <${cf_cv_ncurses_header:-curses.h}>],[
3427 #ifdef NCURSES_VERSION
3429 int check2 = curs_set((int)sizeof(check));
3431 long x = winnstr(stdscr, "", 0);
3433 getbegyx(stdscr, y1, x1)],
3434 [cf_cv_need_xopen_extension=$cf_try_xopen_extension; break])
3439 case $cf_cv_need_xopen_extension in
3441 CPPFLAGS="$CPPFLAGS -D$cf_cv_need_xopen_extension"
3446 dnl ---------------------------------------------------------------------------
3447 dnl CF_XOPEN_SOURCE version: 52 updated: 2016/08/27 12:21:42
3449 dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
3450 dnl or adapt to the vendor's definitions to get equivalent functionality,
3451 dnl without losing the common non-POSIX features.
3454 dnl $1 is the nominal value for _XOPEN_SOURCE
3455 dnl $2 is the nominal value for _POSIX_C_SOURCE
3456 AC_DEFUN([CF_XOPEN_SOURCE],[
3457 AC_REQUIRE([AC_CANONICAL_HOST])
3459 cf_XOPEN_SOURCE=ifelse([$1],,500,[$1])
3460 cf_POSIX_C_SOURCE=ifelse([$2],,199506L,[$2])
3465 cf_xopen_source="-D_ALL_SOURCE"
3471 cf_xopen_source="-D_APPLE_C_SOURCE"
3474 cf_xopen_source="-D_DARWIN_C_SOURCE"
3477 (freebsd*|dragonfly*)
3478 # 5.x headers associate
3479 # _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L
3480 # _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L
3481 cf_POSIX_C_SOURCE=200112L
3483 cf_xopen_source="-D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
3486 cf_xopen_source="-D_HPUX_SOURCE -D_XOPEN_SOURCE=500"
3489 cf_xopen_source="-D_HPUX_SOURCE"
3492 cf_xopen_source="-D_SGI_SOURCE"
3495 (linux*|uclinux*|gnu*|mint*|k*bsd*-gnu|cygwin)
3499 cf_xopen_source="-D_NETBSD_SOURCE" # POSIX.1-2001 features are ifdef'd with this...
3502 # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <sys/select.h> and other headers which use u_int / u_short types
3504 CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
3507 cf_xopen_source="-D_NETBSD_SOURCE" # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
3510 # setting _XOPEN_SOURCE lower than 500 breaks g++ compile with wchar.h, needed for ncursesw
3511 cf_xopen_source="-D_BSD_SOURCE"
3515 # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
3518 cf_xopen_source="-D_OSF_SOURCE"
3521 cf_xopen_source="-D_QNX_SOURCE"
3524 # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
3527 cf_xopen_source="-D__EXTENSIONS__"
3528 cf_cv_xopen_source=broken
3530 (sysv4.2uw2.*) # Novell/SCO UnixWare 2.x (tested on 2.1.2)
3536 CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
3540 if test -n "$cf_xopen_source" ; then
3541 CF_ADD_CFLAGS($cf_xopen_source,true)
3544 dnl In anything but the default case, we may have system-specific setting
3545 dnl which is still not guaranteed to provide all of the entrypoints that
3546 dnl _XOPEN_SOURCE would yield.
3547 if test -n "$cf_XOPEN_SOURCE" && test -z "$cf_cv_xopen_source" ; then
3548 AC_MSG_CHECKING(if _XOPEN_SOURCE really is set)
3549 AC_TRY_COMPILE([#include <stdlib.h>],[
3550 #ifndef _XOPEN_SOURCE
3553 [cf_XOPEN_SOURCE_set=yes],
3554 [cf_XOPEN_SOURCE_set=no])
3555 AC_MSG_RESULT($cf_XOPEN_SOURCE_set)
3556 if test $cf_XOPEN_SOURCE_set = yes
3558 AC_TRY_COMPILE([#include <stdlib.h>],[
3559 #if (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE
3562 [cf_XOPEN_SOURCE_set_ok=yes],
3563 [cf_XOPEN_SOURCE_set_ok=no])
3564 if test $cf_XOPEN_SOURCE_set_ok = no
3566 AC_MSG_WARN(_XOPEN_SOURCE is lower than requested)
3573 dnl ---------------------------------------------------------------------------
3574 dnl CF_X_ATHENA version: 23 updated: 2015/04/12 15:39:00
3576 dnl Check for Xaw (Athena) libraries
3578 dnl Sets $cf_x_athena according to the flavor of Xaw which is used.
3579 AC_DEFUN([CF_X_ATHENA],
3581 cf_x_athena=${cf_x_athena:-Xaw}
3583 AC_MSG_CHECKING(if you want to link with Xaw 3d library)
3586 [ --with-Xaw3d link with Xaw 3d library])
3587 if test "$withval" = yes ; then
3594 AC_MSG_CHECKING(if you want to link with Xaw 3d xft library)
3596 AC_ARG_WITH(Xaw3dxft,
3597 [ --with-Xaw3dxft link with Xaw 3d xft library])
3598 if test "$withval" = yes ; then
3599 cf_x_athena=Xaw3dxft
3605 AC_MSG_CHECKING(if you want to link with neXT Athena library)
3608 [ --with-neXtaw link with neXT Athena library])
3609 if test "$withval" = yes ; then
3616 AC_MSG_CHECKING(if you want to link with Athena-Plus library)
3618 AC_ARG_WITH(XawPlus,
3619 [ --with-XawPlus link with Athena-Plus library])
3620 if test "$withval" = yes ; then
3629 if test "$PKG_CONFIG" != none ; then
3631 test "$cf_x_athena" = Xaw && cf_athena_list="xaw8 xaw7 xaw6"
3632 for cf_athena_pkg in \
3635 ${cf_x_athena}-devel \
3637 lib${cf_x_athena}-devel
3639 CF_TRY_PKG_CONFIG($cf_athena_pkg,[
3640 cf_x_athena_lib="$cf_pkgconfig_libs"
3641 CF_UPPER(cf_x_athena_LIBS,HAVE_LIB_$cf_x_athena)
3642 AC_DEFINE_UNQUOTED($cf_x_athena_LIBS)
3646 AC_CACHE_CHECK(for usable $cf_x_athena/Xmu package,cf_cv_xaw_compat,[
3648 #include <X11/Xmu/CharSet.h>
3650 int check = XmuCompareISOLatin1("big", "small")
3651 ],[cf_cv_xaw_compat=yes],[cf_cv_xaw_compat=no])])
3653 if test "$cf_cv_xaw_compat" = no
3655 # workaround for broken ".pc" files...
3656 case "$cf_x_athena_lib" in
3660 CF_VERBOSE(work around broken package)
3662 cf_first_lib=`echo "$cf_save_xmu" | sed -e 's/^[ ][ ]*//' -e 's/ .*//'`
3663 CF_TRY_PKG_CONFIG(xmu,[
3665 CF_ADD_LIB_AFTER($cf_first_lib,$cf_pkgconfig_libs)
3667 CF_ADD_LIB_AFTER($cf_first_lib,-lXmu)
3678 if test -z "$cf_x_athena_lib" ; then
3681 CF_X_ATHENA_CPPFLAGS($cf_x_athena)
3682 CF_X_ATHENA_LIBS($cf_x_athena)
3685 dnl ---------------------------------------------------------------------------
3686 dnl CF_X_ATHENA_CPPFLAGS version: 5 updated: 2010/05/26 17:35:30
3687 dnl --------------------
3688 dnl Normally invoked by CF_X_ATHENA, with $1 set to the appropriate flavor of
3689 dnl the Athena widgets, e.g., Xaw, Xaw3d, neXtaw.
3690 AC_DEFUN([CF_X_ATHENA_CPPFLAGS],
3692 cf_x_athena_root=ifelse([$1],,Xaw,[$1])
3695 for cf_path in default \
3696 /usr/contrib/X11R6 \
3697 /usr/contrib/X11R5 \
3701 if test -z "$cf_x_athena_inc" ; then
3703 cf_test=X11/$cf_x_athena_root/SimpleMenu.h
3704 if test $cf_path != default ; then
3705 CPPFLAGS="$cf_save -I$cf_path/include"
3706 AC_MSG_CHECKING(for $cf_test in $cf_path)
3708 AC_MSG_CHECKING(for $cf_test)
3711 #include <X11/Intrinsic.h>
3712 #include <$cf_test>],[],
3715 AC_MSG_RESULT($cf_result)
3716 if test "$cf_result" = yes ; then
3717 cf_x_athena_inc=$cf_path
3725 if test -z "$cf_x_athena_inc" ; then
3727 [Unable to successfully find Athena header files with test program])
3728 elif test "$cf_x_athena_inc" != default ; then
3729 CPPFLAGS="$CPPFLAGS -I$cf_x_athena_inc"
3732 dnl ---------------------------------------------------------------------------
3733 dnl CF_X_ATHENA_LIBS version: 12 updated: 2011/07/17 19:55:02
3734 dnl ----------------
3735 dnl Normally invoked by CF_X_ATHENA, with $1 set to the appropriate flavor of
3736 dnl the Athena widgets, e.g., Xaw, Xaw3d, neXtaw.
3737 AC_DEFUN([CF_X_ATHENA_LIBS],
3738 [AC_REQUIRE([CF_X_TOOLKIT])
3739 cf_x_athena_root=ifelse([$1],,Xaw,[$1])
3742 for cf_path in default \
3743 /usr/contrib/X11R6 \
3744 /usr/contrib/X11R5 \
3749 ${cf_x_athena_root} \
3750 ${cf_x_athena_root}7 \
3751 ${cf_x_athena_root}6
3755 "-l$cf_lib -lXpm -lXmu" \
3756 "-l${cf_lib}_s -lXmu_s"
3758 if test -z "$cf_x_athena_lib" ; then
3760 cf_test=XawSimpleMenuAddGlobalActions
3761 if test $cf_path != default ; then
3762 CF_ADD_LIBS(-L$cf_path/lib $cf_libs)
3763 AC_MSG_CHECKING(for $cf_libs in $cf_path)
3765 CF_ADD_LIBS($cf_libs)
3766 AC_MSG_CHECKING(for $cf_test in $cf_libs)
3769 #include <X11/Intrinsic.h>
3770 #include <X11/$cf_x_athena_root/SimpleMenu.h>
3772 $cf_test((XtAppContext) 0)],
3775 AC_MSG_RESULT($cf_result)
3776 if test "$cf_result" = yes ; then
3777 cf_x_athena_lib="$cf_libs"
3783 test -n "$cf_x_athena_lib" && break
3787 if test -z "$cf_x_athena_lib" ; then
3789 [Unable to successfully link Athena library (-l$cf_x_athena_root) with test program])
3792 CF_UPPER(cf_x_athena_LIBS,HAVE_LIB_$cf_x_athena)
3793 AC_DEFINE_UNQUOTED($cf_x_athena_LIBS)
3795 dnl ---------------------------------------------------------------------------
3796 dnl CF_X_EXT version: 3 updated: 2010/06/02 05:03:05
3798 AC_DEFUN([CF_X_EXT],[
3799 CF_TRY_PKG_CONFIG(Xext,,[
3800 AC_CHECK_LIB(Xext,XextCreateExtension,
3801 [CF_ADD_LIB(Xext)])])
3803 dnl ---------------------------------------------------------------------------
3804 dnl CF_X_TOOLKIT version: 23 updated: 2015/04/12 15:39:00
3806 dnl Check for X Toolkit libraries
3807 AC_DEFUN([CF_X_TOOLKIT],
3809 AC_REQUIRE([AC_PATH_XTRA])
3810 AC_REQUIRE([CF_CHECK_CACHE])
3812 # OSX is schizoid about who owns /usr/X11 (old) versus /opt/X11 (new), and (and
3813 # in some cases has installed dummy files in the former, other cases replaced
3814 # it with a link to the new location). This complicates the configure script.
3815 # Check for that pitfall, and recover using pkg-config
3817 # If none of these are set, the configuration is almost certainly broken.
3818 if test -z "${X_CFLAGS}${X_PRE_LIBS}${X_LIBS}${X_EXTRA_LIBS}"
3820 CF_TRY_PKG_CONFIG(x11,,[AC_MSG_WARN(unable to find X11 library)])
3821 CF_TRY_PKG_CONFIG(ice,,[AC_MSG_WARN(unable to find ICE library)])
3822 CF_TRY_PKG_CONFIG(sm,,[AC_MSG_WARN(unable to find SM library)])
3823 CF_TRY_PKG_CONFIG(xt,,[AC_MSG_WARN(unable to find Xt library)])
3828 CF_TRY_PKG_CONFIG(xt,[
3834 # we have an "xt" package, but it may omit Xt's dependency on X11
3835 AC_CACHE_CHECK(for usable X dependency,cf_cv_xt_x11_compat,[
3837 #include <X11/Xlib.h>
3839 int rc1 = XDrawLine((Display*) 0, (Drawable) 0, (GC) 0, 0, 0, 0, 0);
3840 int rc2 = XClearWindow((Display*) 0, (Window) 0);
3841 int rc3 = XMoveWindow((Display*) 0, (Window) 0, 0, 0);
3842 int rc4 = XMoveResizeWindow((Display*)0, (Window)0, 0, 0, 0, 0);
3843 ],[cf_cv_xt_x11_compat=yes],[cf_cv_xt_x11_compat=no])])
3844 if test "$cf_cv_xt_x11_compat" = no
3846 CF_VERBOSE(work around broken X11 dependency)
3847 # 2010/11/19 - good enough until a working Xt on Xcb is delivered.
3848 CF_TRY_PKG_CONFIG(x11,,[CF_ADD_LIB_AFTER(-lXt,-lX11)])
3853 AC_CACHE_CHECK(for usable X Toolkit package,cf_cv_xt_ice_compat,[
3855 #include <X11/Shell.h>
3856 ],[int num = IceConnectionNumber(0)
3857 ],[cf_cv_xt_ice_compat=yes],[cf_cv_xt_ice_compat=no])])
3859 if test "$cf_cv_xt_ice_compat" = no
3861 # workaround for broken ".pc" files used for X Toolkit.
3862 case "x$X_PRE_LIBS" in
3868 CF_VERBOSE(work around broken ICE dependency)
3869 CF_TRY_PKG_CONFIG(ice,
3870 [CF_TRY_PKG_CONFIG(sm)],
3871 [CF_ADD_LIB_AFTER(-lXt,$X_PRE_LIBS)])
3881 LDFLAGS="$X_LIBS $LDFLAGS"
3882 CF_CHECK_CFLAGS($X_CFLAGS)
3884 AC_CHECK_FUNC(XOpenDisplay,,[
3885 AC_CHECK_LIB(X11,XOpenDisplay,
3887 [$X_PRE_LIBS $LIBS $X_EXTRA_LIBS])])
3889 AC_CHECK_FUNC(XtAppInitialize,,[
3890 AC_CHECK_LIB(Xt, XtAppInitialize,
3891 [AC_DEFINE(HAVE_LIBXT,1,[Define to 1 if we can compile with the Xt library])
3893 LIBS="-lXt $X_PRE_LIBS $LIBS $X_EXTRA_LIBS"],,
3894 [$X_PRE_LIBS $LIBS $X_EXTRA_LIBS])])
3897 if test $cf_have_X_LIBS = no ; then
3899 [Unable to successfully link X Toolkit library (-lXt) with
3900 test program. You will have to check and add the proper libraries by hand
3904 dnl ---------------------------------------------------------------------------
3905 dnl CF__CURSES_HEAD version: 2 updated: 2010/10/23 15:54:49
3907 dnl Define a reusable chunk which includes <curses.h> and <term.h> when they
3908 dnl are both available.
3909 define([CF__CURSES_HEAD],[
3911 #include <xcurses.h>
3912 char * XCursesProgramName = "test";
3914 #include <${cf_cv_ncurses_header:-curses.h}>
3915 #if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H)
3916 #include <ncursesw/term.h>
3917 #elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H)
3918 #include <ncurses/term.h>
3919 #elif defined(HAVE_TERM_H)