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.126 2016/02/21 00:28:12 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 CF_ACVERSION_CHECK version: 5 updated: 2014/06/04 19:11:49
44 dnl ------------------
45 dnl Conditionally generate script according to whether we're using a given autoconf.
47 dnl $1 = version to compare against
48 dnl $2 = code to use if AC_ACVERSION is at least as high as $1.
49 dnl $3 = code to use if AC_ACVERSION is older than $1.
50 define([CF_ACVERSION_CHECK],
52 ifdef([AC_ACVERSION], ,[ifdef([AC_AUTOCONF_VERSION],[m4_copy([AC_AUTOCONF_VERSION],[AC_ACVERSION])],[m4_copy([m4_PACKAGE_VERSION],[AC_ACVERSION])])])dnl
53 ifdef([m4_version_compare],
54 [m4_if(m4_version_compare(m4_defn([AC_ACVERSION]), [$1]), -1, [$3], [$2])],
55 [CF_ACVERSION_COMPARE(
56 AC_PREREQ_CANON(AC_PREREQ_SPLIT([$1])),
57 AC_PREREQ_CANON(AC_PREREQ_SPLIT(AC_ACVERSION)), AC_ACVERSION, [$2], [$3])])])dnl
58 dnl ---------------------------------------------------------------------------
59 dnl CF_ACVERSION_COMPARE version: 3 updated: 2012/10/03 18:39:53
60 dnl --------------------
61 dnl CF_ACVERSION_COMPARE(MAJOR1, MINOR1, TERNARY1,
62 dnl MAJOR2, MINOR2, TERNARY2,
63 dnl PRINTABLE2, not FOUND, FOUND)
64 define([CF_ACVERSION_COMPARE],
65 [ifelse(builtin([eval], [$2 < $5]), 1,
66 [ifelse([$8], , ,[$8])],
67 [ifelse([$9], , ,[$9])])])dnl
68 dnl ---------------------------------------------------------------------------
69 dnl CF_ADD_CFLAGS version: 12 updated: 2015/04/12 15:39:00
71 dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS
72 dnl The second parameter if given makes this macro verbose.
74 dnl Put any preprocessor definitions that use quoted strings in $EXTRA_CPPFLAGS,
75 dnl to simplify use of $CPPFLAGS in compiler checks, etc., that are easily
76 dnl confused by the quotes (which require backslashes to keep them usable).
77 AC_DEFUN([CF_ADD_CFLAGS],
82 cf_new_extra_cppflags=
84 for cf_add_cflags in $1
86 case $cf_fix_cppflags in
88 case $cf_add_cflags in
89 (-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C)
90 case $cf_add_cflags in
92 cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[[^=]]*='\''\"[[^"]]*//'`
94 test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
95 && test -z "${cf_tst_cflags}" \
96 && cf_fix_cppflags=yes
98 if test $cf_fix_cppflags = yes ; then
99 cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
101 elif test "${cf_tst_cflags}" = "\"'" ; then
102 cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
111 case $cf_add_cflags in
113 cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
114 CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,$cf_tst_cppflags)
117 cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
122 cf_new_cflags="$cf_new_cflags $cf_add_cflags"
127 cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
129 cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[[^"]]*"'\''//'`
131 test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
132 && test -z "${cf_tst_cflags}" \
133 && cf_fix_cppflags=no
138 if test -n "$cf_new_cflags" ; then
139 ifelse([$2],,,[CF_VERBOSE(add to \$CFLAGS $cf_new_cflags)])
140 CFLAGS="$CFLAGS $cf_new_cflags"
143 if test -n "$cf_new_cppflags" ; then
144 ifelse([$2],,,[CF_VERBOSE(add to \$CPPFLAGS $cf_new_cppflags)])
145 CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
148 if test -n "$cf_new_extra_cppflags" ; then
149 ifelse([$2],,,[CF_VERBOSE(add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags)])
150 EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
153 AC_SUBST(EXTRA_CPPFLAGS)
156 dnl ---------------------------------------------------------------------------
157 dnl CF_ADD_INCDIR version: 14 updated: 2015/05/25 20:53:04
159 dnl Add an include-directory to $CPPFLAGS. Don't add /usr/include, since it's
160 dnl redundant. We don't normally need to add -I/usr/local/include for gcc,
161 dnl but old versions (and some misinstalled ones) need that. To make things
162 dnl worse, gcc 3.x may give error messages if -I/usr/local/include is added to
163 dnl the include-path).
164 AC_DEFUN([CF_ADD_INCDIR],
166 if test -n "$1" ; then
167 for cf_add_incdir in $1
169 while test $cf_add_incdir != /usr/include
171 if test -d $cf_add_incdir
174 if test -n "$CFLAGS$CPPFLAGS" ; then
175 # a loop is needed to ensure we can add subdirs of existing dirs
176 for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
177 if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
178 cf_have_incdir=yes; break
183 if test "$cf_have_incdir" = no ; then
184 if test "$cf_add_incdir" = /usr/local/include ; then
187 cf_save_CPPFLAGS=$CPPFLAGS
188 CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
189 AC_TRY_COMPILE([#include <stdio.h>],
192 [cf_have_incdir=yes])
193 CPPFLAGS=$cf_save_CPPFLAGS
198 if test "$cf_have_incdir" = no ; then
199 CF_VERBOSE(adding $cf_add_incdir to include-path)
200 ifelse([$2],,CPPFLAGS,[$2])="$ifelse([$2],,CPPFLAGS,[$2]) -I$cf_add_incdir"
202 cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
203 test "$cf_top_incdir" = "$cf_add_incdir" && break
204 cf_add_incdir="$cf_top_incdir"
215 dnl ---------------------------------------------------------------------------
216 dnl CF_ADD_LIB version: 2 updated: 2010/06/02 05:03:05
218 dnl Add a library, used to enforce consistency.
220 dnl $1 = library to add, without the "-l"
221 dnl $2 = variable to update (default $LIBS)
222 AC_DEFUN([CF_ADD_LIB],[CF_ADD_LIBS(-l$1,ifelse($2,,LIBS,[$2]))])dnl
223 dnl ---------------------------------------------------------------------------
224 dnl CF_ADD_LIBDIR version: 10 updated: 2015/04/18 08:56:57
226 dnl Adds to the library-path
228 dnl Some machines have trouble with multiple -L options.
230 dnl $1 is the (list of) directory(s) to add
231 dnl $2 is the optional name of the variable to update (default LDFLAGS)
233 AC_DEFUN([CF_ADD_LIBDIR],
235 if test -n "$1" ; then
236 for cf_add_libdir in $1
238 if test $cf_add_libdir = /usr/lib ; then
240 elif test -d $cf_add_libdir
243 if test -n "$LDFLAGS$LIBS" ; then
244 # a loop is needed to ensure we can add subdirs of existing dirs
245 for cf_test_libdir in $LDFLAGS $LIBS ; do
246 if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
247 cf_have_libdir=yes; break
251 if test "$cf_have_libdir" = no ; then
252 CF_VERBOSE(adding $cf_add_libdir to library-path)
253 ifelse([$2],,LDFLAGS,[$2])="-L$cf_add_libdir $ifelse([$2],,LDFLAGS,[$2])"
259 dnl ---------------------------------------------------------------------------
260 dnl CF_ADD_LIBS version: 2 updated: 2014/07/13 14:33:27
262 dnl Add one or more libraries, used to enforce consistency. Libraries are
263 dnl prepended to an existing list, since their dependencies are assumed to
264 dnl already exist in the list.
266 dnl $1 = libraries to add, with the "-l", etc.
267 dnl $2 = variable to update (default $LIBS)
268 AC_DEFUN([CF_ADD_LIBS],[
270 # Filter out duplicates - this happens with badly-designed ".pc" files...
271 for cf_add_1lib in [$]ifelse($2,,LIBS,[$2])
273 for cf_add_2lib in $cf_add_libs
275 if test "x$cf_add_1lib" = "x$cf_add_2lib"
281 test -n "$cf_add_1lib" && cf_add_libs="$cf_add_libs $cf_add_1lib"
283 ifelse($2,,LIBS,[$2])="$cf_add_libs"
285 dnl ---------------------------------------------------------------------------
286 dnl CF_ADD_LIB_AFTER version: 3 updated: 2013/07/09 21:27:22
288 dnl Add a given library after another, e.g., following the one it satisfies a
291 dnl $1 = the first library
292 dnl $2 = its dependency
293 AC_DEFUN([CF_ADD_LIB_AFTER],[
294 CF_VERBOSE(...before $LIBS)
295 LIBS=`echo "$LIBS" | sed -e "s/[[ ]][[ ]]*/ /g" -e "s%$1 %$1 $2 %" -e 's% % %g'`
296 CF_VERBOSE(...after $LIBS)
298 dnl ---------------------------------------------------------------------------
299 dnl CF_ADD_SUBDIR_PATH version: 4 updated: 2013/10/08 17:47:05
300 dnl ------------------
301 dnl Append to a search-list for a nonstandard header/lib-file
302 dnl $1 = the variable to return as result
303 dnl $2 = the package name
304 dnl $3 = the subdirectory, e.g., bin, include or lib
305 dnl $4 = the directory under which we will test for subdirectories
306 dnl $5 = a directory that we do not want $4 to match
307 AC_DEFUN([CF_ADD_SUBDIR_PATH],
309 test "x$4" != "x$5" && \
311 ifelse([$5],NONE,,[(test -z "$5" || test x$5 = xNONE || test "x$4" != "x$5") &&]) {
312 test -n "$verbose" && echo " ... testing for $3-directories under $4"
313 test -d $4/$3 && $1="[$]$1 $4/$3"
314 test -d $4/$3/$2 && $1="[$]$1 $4/$3/$2"
315 test -d $4/$3/$2/$3 && $1="[$]$1 $4/$3/$2/$3"
316 test -d $4/$2/$3 && $1="[$]$1 $4/$2/$3"
317 test -d $4/$2/$3/$2 && $1="[$]$1 $4/$2/$3/$2"
320 dnl ---------------------------------------------------------------------------
321 dnl CF_ARG_DISABLE version: 3 updated: 1999/03/30 17:24:31
323 dnl Allow user to disable a normally-on option.
324 AC_DEFUN([CF_ARG_DISABLE],
325 [CF_ARG_OPTION($1,[$2],[$3],[$4],yes)])dnl
326 dnl ---------------------------------------------------------------------------
327 dnl CF_ARG_ENABLE version: 3 updated: 1999/03/30 17:24:31
329 dnl Allow user to enable a normally-off option.
330 AC_DEFUN([CF_ARG_ENABLE],
331 [CF_ARG_OPTION($1,[$2],[$3],[$4],no)])dnl
332 dnl ---------------------------------------------------------------------------
333 dnl CF_ARG_OPTION version: 5 updated: 2015/05/10 19:52:14
335 dnl Restricted form of AC_ARG_ENABLE that ensures user doesn't give bogus
341 dnl $3 = action to perform if option is not default
342 dnl $4 = action if perform if option is default
343 dnl $5 = default option value (either 'yes' or 'no')
344 AC_DEFUN([CF_ARG_OPTION],
345 [AC_ARG_ENABLE([$1],[$2],[test "$enableval" != ifelse([$5],no,yes,no) && enableval=ifelse([$5],no,no,yes)
346 if test "$enableval" != "$5" ; then
348 ,[ $3]) ifelse([$4],,,[
351 fi],[enableval=$5 ifelse([$4],,,[
355 dnl ---------------------------------------------------------------------------
356 dnl CF_CC_ENV_FLAGS version: 2 updated: 2015/04/12 15:39:00
358 dnl Check for user's environment-breakage by stuffing CFLAGS/CPPFLAGS content
359 dnl into CC. This will not help with broken scripts that wrap the compiler with
360 dnl options, but eliminates a more common category of user confusion.
361 AC_DEFUN([CF_CC_ENV_FLAGS],
363 # This should have been defined by AC_PROG_CC
366 AC_MSG_CHECKING(\$CC variable)
369 AC_MSG_RESULT(broken)
370 AC_MSG_WARN(your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options)
372 cf_flags=`echo "$CC" | sed -e 's/^[[^ ]]*[[ ]]//'`
373 CC=`echo "$CC" | sed -e 's/[[ ]].*//'`
374 CF_ADD_CFLAGS($cf_flags)
381 dnl ---------------------------------------------------------------------------
382 dnl CF_CHECK_CACHE version: 12 updated: 2012/10/02 20:55:03
384 dnl Check if we're accidentally using a cache from a different machine.
385 dnl Derive the system name, as a check for reusing the autoconf cache.
387 dnl If we've packaged config.guess and config.sub, run that (since it does a
388 dnl better job than uname). Normally we'll use AC_CANONICAL_HOST, but allow
389 dnl an extra parameter that we may override, e.g., for AC_CANONICAL_SYSTEM
390 dnl which is useful in cross-compiles.
392 dnl Note: we would use $ac_config_sub, but that is one of the places where
393 dnl autoconf 2.5x broke compatibility with autoconf 2.13
394 AC_DEFUN([CF_CHECK_CACHE],
396 if test -f $srcdir/config.guess || test -f $ac_aux_dir/config.guess ; then
397 ifelse([$1],,[AC_CANONICAL_HOST],[$1])
398 system_name="$host_os"
400 system_name="`(uname -s -r) 2>/dev/null`"
401 if test -z "$system_name" ; then
402 system_name="`(hostname) 2>/dev/null`"
405 test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name",[Define to the system name.])
406 AC_CACHE_VAL(cf_cv_system_name,[cf_cv_system_name="$system_name"])
408 test -z "$system_name" && system_name="$cf_cv_system_name"
409 test -n "$cf_cv_system_name" && AC_MSG_RESULT(Configuring for $cf_cv_system_name)
411 if test ".$system_name" != ".$cf_cv_system_name" ; then
412 AC_MSG_RESULT(Cached system name ($system_name) does not agree with actual ($cf_cv_system_name))
413 AC_MSG_ERROR("Please remove config.cache and try again.")
416 dnl ---------------------------------------------------------------------------
417 dnl CF_CHECK_CFLAGS version: 3 updated: 2014/07/22 05:32:57
419 dnl Conditionally add to $CFLAGS and $CPPFLAGS values which are derived from
420 dnl a build-configuration such as imake. These have the pitfall that they
421 dnl often contain compiler-specific options which we cannot use, mixed with
422 dnl preprocessor options that we usually can.
423 AC_DEFUN([CF_CHECK_CFLAGS],
425 CF_VERBOSE(checking additions to CFLAGS)
426 cf_check_cflags="$CFLAGS"
427 cf_check_cppflags="$CPPFLAGS"
428 CF_ADD_CFLAGS($1,yes)
429 if test "x$cf_check_cflags" != "x$CFLAGS" ; then
430 AC_TRY_LINK([#include <stdio.h>],[printf("Hello world");],,
431 [CF_VERBOSE(test-compile failed. Undoing change to \$CFLAGS)
432 if test "x$cf_check_cppflags" != "x$CPPFLAGS" ; then
433 CF_VERBOSE(but keeping change to \$CPPFLAGS)
435 CFLAGS="$cf_check_flags"])
438 dnl ---------------------------------------------------------------------------
439 dnl CF_CHECK_CURSES_LIB version: 1 updated: 2015/04/25 20:53:11
440 dnl -------------------
441 dnl $1 = nominal library name, used also for header lookup
442 dnl $2 = suffix to append to library name
443 dnl $3 = function to check for using AC_CHECK_LIB
444 AC_DEFUN([CF_CHECK_CURSES_LIB],
446 AC_CHECK_LIB($1$2,$3,[
447 CF_UPPER(cf_upper,have_lib$1)
449 AC_DEFINE_UNQUOTED($cf_upper,1)])
451 dnl ---------------------------------------------------------------------------
452 dnl CF_CLANG_COMPILER version: 2 updated: 2013/11/19 19:23:35
453 dnl -----------------
454 dnl Check if the given compiler is really clang. clang's C driver defines
455 dnl __GNUC__ (fooling the configure script into setting $GCC to yes) but does
456 dnl not ignore some gcc options.
458 dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
459 dnl ensure that it is not mistaken for gcc/g++. It is normally invoked from
460 dnl the wrappers for gcc and g++ warnings.
462 dnl $1 = GCC (default) or GXX
463 dnl $2 = CLANG_COMPILER (default)
464 dnl $3 = CFLAGS (default) or CXXFLAGS
465 AC_DEFUN([CF_CLANG_COMPILER],[
466 ifelse([$2],,CLANG_COMPILER,[$2])=no
468 if test "$ifelse([$1],,[$1],GCC)" = yes ; then
469 AC_MSG_CHECKING(if this is really Clang ifelse([$1],GXX,C++,C) compiler)
470 cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
471 ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -Qunused-arguments"
477 ],[ifelse([$2],,CLANG_COMPILER,[$2])=yes
478 cf_save_CFLAGS="$cf_save_CFLAGS -Qunused-arguments"
480 ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
481 AC_MSG_RESULT($ifelse([$2],,CLANG_COMPILER,[$2]))
484 dnl ---------------------------------------------------------------------------
485 dnl CF_CURSES_ACS_MAP version: 7 updated: 2012/10/06 16:39:58
486 dnl -----------------
487 dnl Check for likely values of acs_map[]:
488 AC_DEFUN([CF_CURSES_ACS_MAP],
490 AC_REQUIRE([CF_NCURSES_WRAP_PREFIX])dnl
491 AC_CACHE_CHECK(for alternate character set array, cf_cv_curses_acs_map,[
492 cf_cv_curses_acs_map=unknown
493 for name in acs_map _acs_map __acs_map ${NCURSES_WRAP_PREFIX}acs_map
496 #include <${cf_cv_ncurses_header:-curses.h}>
498 $name['k'] = ACS_PLUS
499 ],[cf_cv_curses_acs_map=$name; break])
503 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_])
505 dnl ---------------------------------------------------------------------------
506 dnl CF_CURSES_CHECK_DATA version: 5 updated: 2014/07/19 18:41:17
507 dnl --------------------
508 dnl Check if curses.h defines the given data/variable.
509 dnl Use this after CF_NCURSES_CONFIG or CF_CURSES_CONFIG.
510 AC_DEFUN([CF_CURSES_CHECK_DATA],
512 AC_MSG_CHECKING(for data $1 declaration in ${cf_cv_ncurses_header:-curses.h})
514 AC_TRY_COMPILE(CF__CURSES_HEAD,[
516 ],cf_result=yes,cf_result=no)
517 AC_MSG_RESULT($cf_result)
519 if test $cf_result = yes ; then
520 CF_UPPER(cf_result,have_curses_data_$1)
521 AC_DEFINE_UNQUOTED($cf_result)
523 AC_MSG_CHECKING(for data $1 in library)
524 # BSD linkers insist on making weak linkage, but resolve at runtime.
525 AC_TRY_RUN(CF__CURSES_HEAD
531 fprintf(stderr, "testing linkage of $1:%p\n", foo);
532 ${cf_cv_main_return:-return}(foo == 0);
533 }],[cf_result=yes],[cf_result=no],[
535 AC_TRY_LINK(CF__CURSES_HEAD
539 fprintf(stderr, "testing linkage of $1:%p\n", foo);
540 ${cf_cv_main_return:-return}(foo == 0);
542 ],[cf_result=yes],[cf_result=no])
544 AC_MSG_RESULT($cf_result)
545 if test $cf_result = yes ; then
546 CF_UPPER(cf_result,decl_curses_data_$1)
547 AC_DEFINE_UNQUOTED($cf_result)
551 dnl ---------------------------------------------------------------------------
552 dnl CF_CURSES_CHECK_TYPE version: 4 updated: 2012/10/06 16:39:58
553 dnl --------------------
554 dnl Check if curses.h defines the given type
555 AC_DEFUN([CF_CURSES_CHECK_TYPE],
557 AC_MSG_CHECKING(for type $1 in ${cf_cv_ncurses_header:-curses.h})
559 #ifndef _XOPEN_SOURCE_EXTENDED
560 #define _XOPEN_SOURCE_EXTENDED
562 #include <${cf_cv_ncurses_header:-curses.h}>],[
564 ],cf_result=yes,cf_result=no)
565 AC_MSG_RESULT($cf_result)
566 if test $cf_result = yes ; then
567 CF_UPPER(cf_result,have_type_$1)
568 AC_DEFINE_UNQUOTED($cf_result,1,[Define to 1 if we have type $1])
570 AC_DEFINE_UNQUOTED($1,$2,[Define to appropriate type if $1 is not declared])
573 dnl ---------------------------------------------------------------------------
574 dnl CF_CURSES_CONFIG version: 2 updated: 2006/10/29 11:06:27
576 dnl Tie together the configure-script macros for curses. It may be ncurses,
577 dnl but unless asked, we do not make a special search for ncurses. However,
578 dnl still check for the ncurses version number, for use in other macros.
579 AC_DEFUN([CF_CURSES_CONFIG],
585 dnl ---------------------------------------------------------------------------
586 dnl CF_CURSES_CPPFLAGS version: 12 updated: 2015/04/15 19:08:48
587 dnl ------------------
588 dnl Look for the curses headers.
589 AC_DEFUN([CF_CURSES_CPPFLAGS],[
591 AC_CACHE_CHECK(for extra include directories,cf_cv_curses_incdir,[
592 cf_cv_curses_incdir=no
595 if test "x$cf_cv_screen" = "xcurses_colr"
597 test -d /usr/include/curses_colr && \
598 cf_cv_curses_incdir="-I/usr/include/curses_colr"
602 if test "x$cf_cv_screen" = "xcurses_5lib"
604 test -d /usr/5lib && \
605 test -d /usr/5include && \
606 cf_cv_curses_incdir="-I/usr/5include"
611 test "$cf_cv_curses_incdir" != no && CPPFLAGS="$CPPFLAGS $cf_cv_curses_incdir"
616 dnl ---------------------------------------------------------------------------
617 dnl CF_CURSES_FUNCS version: 18 updated: 2014/07/19 18:44:41
619 dnl Curses-functions are a little complicated, since a lot of them are macros.
620 AC_DEFUN([CF_CURSES_FUNCS],
622 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
623 AC_REQUIRE([CF_XOPEN_CURSES])
624 AC_REQUIRE([CF_CURSES_TERM_H])
625 AC_REQUIRE([CF_CURSES_UNCTRL_H])
628 CF_UPPER(cf_tr_func,$cf_func)
629 AC_MSG_CHECKING(for ${cf_func})
630 CF_MSG_LOG(${cf_func})
631 AC_CACHE_VAL(cf_cv_func_$cf_func,[
632 eval cf_result='$ac_cv_func_'$cf_func
633 if test ".$cf_result" != ".no"; then
634 AC_TRY_LINK(CF__CURSES_HEAD,
637 long foo = (long)(&${cf_func});
638 fprintf(stderr, "testing linkage of $cf_func:%p\n", foo);
639 if (foo + 1234 > 5678)
640 ${cf_cv_main_return:-return}(foo);
646 eval 'cf_cv_func_'$cf_func'=$cf_result'
648 # use the computed/retrieved cache-value:
649 eval 'cf_result=$cf_cv_func_'$cf_func
650 AC_MSG_RESULT($cf_result)
651 if test $cf_result != no; then
652 AC_DEFINE_UNQUOTED(HAVE_${cf_tr_func})
656 dnl ---------------------------------------------------------------------------
657 dnl CF_CURSES_HEADER version: 5 updated: 2015/04/23 20:35:30
659 dnl Find a "curses" header file, e.g,. "curses.h", or one of the more common
660 dnl variations of ncurses' installs.
662 dnl $1 = ncurses when looking for ncurses, or is empty
663 AC_DEFUN([CF_CURSES_HEADER],[
664 AC_CACHE_CHECK(if we have identified curses headers,cf_cv_ncurses_header,[
665 cf_cv_ncurses_header=none
667 ncurses.h ifelse($1,,,[$1/ncurses.h]) \
668 curses.h ifelse($1,,,[$1/curses.h]) ifelse($1,,[ncurses/ncurses.h ncurses/curses.h])
670 AC_TRY_COMPILE([#include <${cf_header}>],
671 [initscr(); tgoto("?", 0,0)],
672 [cf_cv_ncurses_header=$cf_header; break],[])
676 if test "$cf_cv_ncurses_header" = none ; then
677 AC_MSG_ERROR(No curses header-files found)
680 # cheat, to get the right #define's for HAVE_NCURSES_H, etc.
681 AC_CHECK_HEADERS($cf_cv_ncurses_header)
683 dnl ---------------------------------------------------------------------------
684 dnl CF_CURSES_LIBS version: 39 updated: 2015/05/10 19:52:14
686 dnl Look for the curses libraries. Older curses implementations may require
687 dnl termcap/termlib to be linked as well. Call CF_CURSES_CPPFLAGS first.
688 AC_DEFUN([CF_CURSES_LIBS],[
690 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
691 AC_MSG_CHECKING(if we have identified curses libraries)
692 AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
693 [initscr(); tgoto("?", 0,0)],
696 AC_MSG_RESULT($cf_result)
698 if test "$cf_result" = no ; then
701 AC_CHECK_LIB(mytinfo,tgoto,[CF_ADD_LIBS(-lmytinfo)])
704 # Looking at HPUX 10.20, the Hcurses library is the oldest (1997), cur_colr
705 # next (1998), and xcurses "newer" (2000). There is no header file for
706 # Hcurses; the subdirectory curses_colr has the headers (curses.h and
707 # term.h) for cur_colr
708 if test "x$cf_cv_screen" = "xcurses_colr"
710 AC_CHECK_LIB(cur_colr,initscr,[
711 CF_ADD_LIBS(-lcur_colr)
712 ac_cv_func_initscr=yes
714 AC_CHECK_LIB(Hcurses,initscr,[
715 # HP's header uses __HP_CURSES, but user claims _HP_CURSES.
716 CF_ADD_LIBS(-lHcurses)
717 CPPFLAGS="$CPPFLAGS -D__HP_CURSES -D_HP_CURSES"
718 ac_cv_func_initscr=yes
723 case `arch 2>/dev/null` in
727 CF_ADD_LIBDIR(/lib64)
738 if test "x$cf_cv_screen" = "xcurses_5lib"
740 if test -d /usr/5lib ; then
741 CF_ADD_LIBDIR(/usr/5lib)
742 CF_ADD_LIBS(-lcurses -ltermcap)
745 ac_cv_func_initscr=yes
749 if test ".$ac_cv_func_initscr" != .yes ; then
752 if test ".${cf_cv_ncurses_version:-no}" != .no
754 cf_check_list="ncurses curses cursesX"
756 cf_check_list="cursesX curses ncurses"
759 # Check for library containing tgoto. Do this before curses library
760 # because it may be needed to link the test-case for initscr.
761 if test "x$cf_term_lib" = x
763 AC_CHECK_FUNC(tgoto,[cf_term_lib=predefined],[
764 for cf_term_lib in $cf_check_list otermcap termcap tinfo termlib unknown
766 AC_CHECK_LIB($cf_term_lib,tgoto,[break])
771 # Check for library containing initscr
772 test "$cf_term_lib" != predefined && test "$cf_term_lib" != unknown && LIBS="-l$cf_term_lib $cf_save_LIBS"
773 if test "x$cf_curs_lib" = x
775 for cf_curs_lib in $cf_check_list xcurses jcurses pdcurses unknown
777 AC_CHECK_LIB($cf_curs_lib,initscr,[break])
780 test $cf_curs_lib = unknown && AC_MSG_ERROR(no curses library found)
782 LIBS="-l$cf_curs_lib $cf_save_LIBS"
783 if test "$cf_term_lib" = unknown ; then
784 AC_MSG_CHECKING(if we can link with $cf_curs_lib library)
785 AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
789 AC_MSG_RESULT($cf_result)
790 test $cf_result = no && AC_MSG_ERROR(Cannot link curses library)
791 elif test "$cf_curs_lib" = "$cf_term_lib" ; then
793 elif test "$cf_term_lib" != predefined ; then
794 AC_MSG_CHECKING(if we need both $cf_curs_lib and $cf_term_lib libraries)
795 AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
796 [initscr(); tgoto((char *)0, 0, 0);],
799 LIBS="-l$cf_curs_lib -l$cf_term_lib $cf_save_LIBS"
800 AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
805 AC_MSG_RESULT($cf_result)
811 dnl ---------------------------------------------------------------------------
812 dnl CF_CURSES_TERM_H version: 11 updated: 2015/04/15 19:08:48
814 dnl SVr4 curses should have term.h as well (where it puts the definitions of
815 dnl the low-level interface). This may not be true in old/broken implementations,
816 dnl as well as in misconfigured systems (e.g., gcc configured for Solaris 2.4
817 dnl running with Solaris 2.5.1).
818 AC_DEFUN([CF_CURSES_TERM_H],
820 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
822 AC_CACHE_CHECK(for term.h, cf_cv_term_header,[
824 # If we found <ncurses/curses.h>, look for <ncurses/term.h>, but always look
825 # for <term.h> if we do not find the variant.
827 cf_header_list="term.h ncurses/term.h ncursesw/term.h"
829 case ${cf_cv_ncurses_header:-curses.h} in
831 cf_header_item=`echo ${cf_cv_ncurses_header:-curses.h} | sed -e 's%\..*%%' -e 's%/.*%/%'`term.h
832 cf_header_list="$cf_header_item $cf_header_list"
836 for cf_header in $cf_header_list
839 #include <${cf_cv_ncurses_header:-curses.h}>
840 #include <${cf_header}>],
842 [cf_cv_term_header=$cf_header
844 [cf_cv_term_header=no])
847 case $cf_cv_term_header in
849 # If curses is ncurses, some packagers still mess it up by trying to make
850 # us use GNU termcap. This handles the most common case.
851 for cf_header in ncurses/term.h ncursesw/term.h
854 #include <${cf_cv_ncurses_header:-curses.h}>
855 #ifdef NCURSES_VERSION
856 #include <${cf_header}>
861 [cf_cv_term_header=$cf_header
863 [cf_cv_term_header=no])
869 case $cf_cv_term_header in
871 AC_DEFINE(HAVE_TERM_H,1,[Define to 1 if we have term.h])
874 AC_DEFINE(HAVE_NCURSES_TERM_H,1,[Define to 1 if we have ncurses/term.h])
877 AC_DEFINE(HAVE_NCURSESW_TERM_H,1,[Define to 1 if we have ncursesw/term.h])
881 dnl ---------------------------------------------------------------------------
882 dnl CF_CURSES_UNCTRL_H version: 4 updated: 2015/04/15 19:08:48
883 dnl ------------------
884 dnl Any X/Open curses implementation must have unctrl.h, but ncurses packages
885 dnl may put it in a subdirectory (along with ncurses' other headers, of
886 dnl course). Packages which put the headers in inconsistent locations are
888 AC_DEFUN([CF_CURSES_UNCTRL_H],
890 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
892 AC_CACHE_CHECK(for unctrl.h, cf_cv_unctrl_header,[
894 # If we found <ncurses/curses.h>, look for <ncurses/unctrl.h>, but always look
895 # for <unctrl.h> if we do not find the variant.
897 cf_header_list="unctrl.h ncurses/unctrl.h ncursesw/unctrl.h"
899 case ${cf_cv_ncurses_header:-curses.h} in
901 cf_header_item=`echo ${cf_cv_ncurses_header:-curses.h} | sed -e 's%\..*%%' -e 's%/.*%/%'`unctrl.h
902 cf_header_list="$cf_header_item $cf_header_list"
906 for cf_header in $cf_header_list
909 #include <${cf_cv_ncurses_header:-curses.h}>
910 #include <${cf_header}>],
912 [cf_cv_unctrl_header=$cf_header
914 [cf_cv_unctrl_header=no])
918 case $cf_cv_unctrl_header in
920 AC_MSG_WARN(unctrl.h header not found)
924 case $cf_cv_unctrl_header in
926 AC_DEFINE(HAVE_UNCTRL_H,1,[Define to 1 if we have unctrl.h])
929 AC_DEFINE(HAVE_NCURSES_UNCTRL_H,1,[Define to 1 if we have ncurses/unctrl.h])
932 AC_DEFINE(HAVE_NCURSESW_UNCTRL_H,1,[Define to 1 if we have ncursesw/unctrl.h])
936 dnl ---------------------------------------------------------------------------
937 dnl CF_CURSES_WACS_MAP version: 6 updated: 2012/10/06 08:57:51
938 dnl ------------------
939 dnl Check for likely values of wacs_map[].
940 AC_DEFUN([CF_CURSES_WACS_MAP],
942 AC_CACHE_CHECK(for wide alternate character set array, cf_cv_curses_wacs_map,[
943 cf_cv_curses_wacs_map=unknown
944 for name in wacs_map _wacs_map __wacs_map _nc_wacs _wacs_char
947 #ifndef _XOPEN_SOURCE_EXTENDED
948 #define _XOPEN_SOURCE_EXTENDED
950 #include <${cf_cv_ncurses_header:-curses.h}>],
951 [void *foo = &($name['k'])],
952 [cf_cv_curses_wacs_map=$name
956 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])
958 dnl ---------------------------------------------------------------------------
959 dnl CF_CURSES_WACS_SYMBOLS version: 2 updated: 2012/10/06 08:57:51
960 dnl ----------------------
961 dnl Do a check to see if the WACS_xxx constants are defined compatibly with
962 dnl X/Open Curses. In particular, NetBSD's implementation of the WACS_xxx
963 dnl constants is broken since those constants do not point to cchar_t's.
964 AC_DEFUN([CF_CURSES_WACS_SYMBOLS],
966 AC_REQUIRE([CF_CURSES_WACS_MAP])
968 AC_CACHE_CHECK(for wide alternate character constants, cf_cv_curses_wacs_symbols,[
969 cf_cv_curses_wacs_symbols=no
970 if test "$cf_cv_curses_wacs_map" != unknown
973 #ifndef _XOPEN_SOURCE_EXTENDED
974 #define _XOPEN_SOURCE_EXTENDED
976 #include <${cf_cv_ncurses_header:-curses.h}>],
977 [cchar_t *foo = WACS_PLUS;
978 $cf_cv_curses_wacs_map['k'] = *WACS_PLUS],
979 [cf_cv_curses_wacs_symbols=yes])
982 #ifndef _XOPEN_SOURCE_EXTENDED
983 #define _XOPEN_SOURCE_EXTENDED
985 #include <${cf_cv_ncurses_header:-curses.h}>],
986 [cchar_t *foo = WACS_PLUS],
987 [cf_cv_curses_wacs_symbols=yes])
991 test "$cf_cv_curses_wacs_symbols" != no && AC_DEFINE(CURSES_WACS_SYMBOLS,1,[Define to 1 if (n)curses supports wide-character WACS_ symbols])
993 dnl ---------------------------------------------------------------------------
994 dnl CF_DIRNAME version: 4 updated: 2002/12/21 19:25:52
996 dnl "dirname" is not portable, so we fake it with a shell script.
997 AC_DEFUN([CF_DIRNAME],[$1=`echo $2 | sed -e 's%/[[^/]]*$%%'`])dnl
998 dnl ---------------------------------------------------------------------------
999 dnl CF_DISABLE_ECHO version: 13 updated: 2015/04/18 08:56:57
1001 dnl You can always use "make -n" to see the actual options, but it's hard to
1002 dnl pick out/analyze warning messages when the compile-line is long.
1005 dnl ECHO_LT - symbol to control if libtool is verbose
1006 dnl ECHO_LD - symbol to prefix "cc -o" lines
1007 dnl RULE_CC - symbol to put before implicit "cc -c" lines (e.g., .c.o)
1008 dnl SHOW_CC - symbol to put before explicit "cc -c" lines
1009 dnl ECHO_CC - symbol to put before any "cc" line
1011 AC_DEFUN([CF_DISABLE_ECHO],[
1012 AC_MSG_CHECKING(if you want to see long compiling messages)
1013 CF_ARG_DISABLE(echo,
1014 [ --disable-echo do not display "compiling" commands],
1017 ECHO_LD='@echo linking [$]@;'
1018 RULE_CC='@echo compiling [$]<'
1019 SHOW_CC='@echo compiling [$]@'
1028 AC_MSG_RESULT($enableval)
1035 dnl ---------------------------------------------------------------------------
1036 dnl CF_DISABLE_LEAKS version: 7 updated: 2012/10/02 20:55:03
1037 dnl ----------------
1038 dnl Combine no-leak checks with the libraries or tools that are used for the
1040 AC_DEFUN([CF_DISABLE_LEAKS],[
1042 AC_REQUIRE([CF_WITH_DMALLOC])
1043 AC_REQUIRE([CF_WITH_DBMALLOC])
1044 AC_REQUIRE([CF_WITH_VALGRIND])
1046 AC_MSG_CHECKING(if you want to perform memory-leak testing)
1047 AC_ARG_ENABLE(leaks,
1048 [ --disable-leaks test: free permanent memory, analyze leaks],
1049 [if test "x$enableval" = xno; then with_no_leaks=yes; else with_no_leaks=no; fi],
1050 : ${with_no_leaks:=no})
1051 AC_MSG_RESULT($with_no_leaks)
1053 if test "$with_no_leaks" = yes ; then
1054 AC_DEFINE(NO_LEAKS,1,[Define to 1 if you want to perform memory-leak testing.])
1055 AC_DEFINE(YY_NO_LEAKS,1,[Define to 1 if you want to perform memory-leak testing.])
1058 dnl ---------------------------------------------------------------------------
1059 dnl CF_DISABLE_RPATH_HACK version: 2 updated: 2011/02/13 13:31:33
1060 dnl ---------------------
1061 dnl The rpath-hack makes it simpler to build programs, particularly with the
1062 dnl *BSD ports which may have essential libraries in unusual places. But it
1063 dnl can interfere with building an executable for the base system. Use this
1064 dnl option in that case.
1065 AC_DEFUN([CF_DISABLE_RPATH_HACK],
1067 AC_MSG_CHECKING(if rpath-hack should be disabled)
1068 CF_ARG_DISABLE(rpath-hack,
1069 [ --disable-rpath-hack don't add rpath options for additional libraries],
1070 [cf_disable_rpath_hack=yes],
1071 [cf_disable_rpath_hack=no])
1072 AC_MSG_RESULT($cf_disable_rpath_hack)
1073 if test "$cf_disable_rpath_hack" = no ; then
1077 dnl ---------------------------------------------------------------------------
1078 dnl CF_ENABLE_WARNINGS version: 4 updated: 2009/07/26 17:53:03
1079 dnl ------------------
1080 dnl Configure-option to enable gcc warnings
1081 AC_DEFUN([CF_ENABLE_WARNINGS],[
1082 if ( test "$GCC" = yes || test "$GXX" = yes )
1084 AC_MSG_CHECKING(if you want to turn on gcc warnings)
1085 CF_ARG_ENABLE(warnings,
1086 [ --enable-warnings test: turn on gcc compiler warnings],
1087 [with_warnings=yes],
1089 AC_MSG_RESULT($with_warnings)
1090 if test "$with_warnings" = "yes"
1097 dnl ---------------------------------------------------------------------------
1098 dnl CF_FIND_LIBRARY version: 9 updated: 2008/03/23 14:48:54
1100 dnl Look for a non-standard library, given parameters for AC_TRY_LINK. We
1101 dnl prefer a standard location, and use -L options only if we do not find the
1102 dnl library in the standard library location(s).
1103 dnl $1 = library name
1104 dnl $2 = library class, usually the same as library name
1106 dnl $4 = code fragment to compile/link
1107 dnl $5 = corresponding function-name
1108 dnl $6 = flag, nonnull if failure should not cause an error-exit
1110 dnl Sets the variable "$cf_libdir" as a side-effect, so we can see if we had
1111 dnl to use a -L option.
1112 AC_DEFUN([CF_FIND_LIBRARY],
1114 eval 'cf_cv_have_lib_'$1'=no'
1117 eval 'cf_cv_have_lib_'$1'=yes',[
1118 cf_save_LIBS="$LIBS"
1119 AC_MSG_CHECKING(for $5 in -l$1)
1121 AC_TRY_LINK([$3],[$4],
1123 eval 'cf_cv_have_lib_'$1'=yes'
1126 CF_LIBRARY_PATH(cf_search,$2)
1127 for cf_libdir in $cf_search
1129 AC_MSG_CHECKING(for -l$1 in $cf_libdir)
1130 LIBS="-L$cf_libdir -l$1 $cf_save_LIBS"
1131 AC_TRY_LINK([$3],[$4],
1133 eval 'cf_cv_have_lib_'$1'=yes'
1136 LIBS="$cf_save_LIBS"])
1140 eval 'cf_found_library=[$]cf_cv_have_lib_'$1
1142 if test $cf_found_library = no ; then
1143 AC_MSG_ERROR(Cannot link $1 library)
1147 dnl ---------------------------------------------------------------------------
1148 dnl CF_FIND_LINKAGE version: 20 updated: 2015/04/18 08:56:57
1150 dnl Find a library (specifically the linkage used in the code fragment),
1151 dnl searching for it if it is not already in the library path.
1152 dnl See also CF_ADD_SEARCHPATH.
1154 dnl Parameters (4-on are optional):
1155 dnl $1 = headers for library entrypoint
1156 dnl $2 = code fragment for library entrypoint
1157 dnl $3 = the library name without the "-l" option or ".so" suffix.
1158 dnl $4 = action to perform if successful (default: update CPPFLAGS, etc)
1159 dnl $5 = action to perform if not successful
1160 dnl $6 = module name, if not the same as the library name
1161 dnl $7 = extra libraries
1163 dnl Sets these variables:
1164 dnl $cf_cv_find_linkage_$3 - yes/no according to whether linkage is found
1165 dnl $cf_cv_header_path_$3 - include-directory if needed
1166 dnl $cf_cv_library_path_$3 - library-directory if needed
1167 dnl $cf_cv_library_file_$3 - library-file if needed, e.g., -l$3
1168 AC_DEFUN([CF_FIND_LINKAGE],[
1170 # If the linkage is not already in the $CPPFLAGS/$LDFLAGS configuration, these
1171 # will be set on completion of the AC_TRY_LINK below.
1172 cf_cv_header_path_$3=
1173 cf_cv_library_path_$3=
1175 CF_MSG_LOG([Starting [FIND_LINKAGE]($3,$6)])
1177 cf_save_LIBS="$LIBS"
1179 AC_TRY_LINK([$1],[$2],[
1180 cf_cv_find_linkage_$3=yes
1181 cf_cv_header_path_$3=/usr/include
1182 cf_cv_library_path_$3=/usr/lib
1185 LIBS="-l$3 $7 $cf_save_LIBS"
1187 AC_TRY_LINK([$1],[$2],[
1188 cf_cv_find_linkage_$3=yes
1189 cf_cv_header_path_$3=/usr/include
1190 cf_cv_library_path_$3=/usr/lib
1191 cf_cv_library_file_$3="-l$3"
1193 cf_cv_find_linkage_$3=no
1194 LIBS="$cf_save_LIBS"
1196 CF_VERBOSE(find linkage for $3 library)
1197 CF_MSG_LOG([Searching for headers in [FIND_LINKAGE]($3,$6)])
1199 cf_save_CPPFLAGS="$CPPFLAGS"
1200 cf_test_CPPFLAGS="$CPPFLAGS"
1202 CF_HEADER_PATH(cf_search,ifelse([$6],,[$3],[$6]))
1203 for cf_cv_header_path_$3 in $cf_search
1205 if test -d $cf_cv_header_path_$3 ; then
1206 CF_VERBOSE(... testing $cf_cv_header_path_$3)
1207 CPPFLAGS="$cf_save_CPPFLAGS -I$cf_cv_header_path_$3"
1208 AC_TRY_COMPILE([$1],[$2],[
1209 CF_VERBOSE(... found $3 headers in $cf_cv_header_path_$3)
1210 cf_cv_find_linkage_$3=maybe
1211 cf_test_CPPFLAGS="$CPPFLAGS"
1213 CPPFLAGS="$cf_save_CPPFLAGS"
1218 if test "$cf_cv_find_linkage_$3" = maybe ; then
1220 CF_MSG_LOG([Searching for $3 library in [FIND_LINKAGE]($3,$6)])
1222 cf_save_LIBS="$LIBS"
1223 cf_save_LDFLAGS="$LDFLAGS"
1226 CPPFLAGS="$cf_test_CPPFLAGS"
1227 LIBS="-l$3 $7 $cf_save_LIBS"
1228 AC_TRY_LINK([$1],[$2],[
1229 CF_VERBOSE(... found $3 library in system)
1230 cf_cv_find_linkage_$3=yes])
1231 CPPFLAGS="$cf_save_CPPFLAGS"
1232 LIBS="$cf_save_LIBS"
1235 if test "$cf_cv_find_linkage_$3" != yes ; then
1236 CF_LIBRARY_PATH(cf_search,$3)
1237 for cf_cv_library_path_$3 in $cf_search
1239 if test -d $cf_cv_library_path_$3 ; then
1240 CF_VERBOSE(... testing $cf_cv_library_path_$3)
1241 CPPFLAGS="$cf_test_CPPFLAGS"
1242 LIBS="-l$3 $7 $cf_save_LIBS"
1243 LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_$3"
1244 AC_TRY_LINK([$1],[$2],[
1245 CF_VERBOSE(... found $3 library in $cf_cv_library_path_$3)
1246 cf_cv_find_linkage_$3=yes
1247 cf_cv_library_file_$3="-l$3"
1249 CPPFLAGS="$cf_save_CPPFLAGS"
1250 LIBS="$cf_save_LIBS"
1251 LDFLAGS="$cf_save_LDFLAGS"
1255 CPPFLAGS="$cf_save_CPPFLAGS"
1256 LDFLAGS="$cf_save_LDFLAGS"
1260 cf_cv_find_linkage_$3=no
1265 LIBS="$cf_save_LIBS"
1267 if test "$cf_cv_find_linkage_$3" = yes ; then
1269 CF_ADD_INCDIR($cf_cv_header_path_$3)
1270 CF_ADD_LIBDIR($cf_cv_library_path_$3)
1274 ifelse([$5],,AC_MSG_WARN(Cannot find $3 library),[$5])
1277 dnl ---------------------------------------------------------------------------
1278 dnl CF_FUNC_CURSES_VERSION version: 6 updated: 2012/10/06 16:39:58
1279 dnl ----------------------
1280 dnl Solaris has a data item 'curses_version', which confuses AC_CHECK_FUNCS.
1281 dnl It's a character string "SVR4", not documented.
1282 AC_DEFUN([CF_FUNC_CURSES_VERSION],
1284 AC_CACHE_CHECK(for function curses_version, cf_cv_func_curses_version,[
1286 #include <${cf_cv_ncurses_header:-curses.h}>
1290 sprintf(temp, "%s\n", curses_version());
1291 ${cf_cv_main_return:-return}(0);
1293 ,[cf_cv_func_curses_version=yes]
1294 ,[cf_cv_func_curses_version=no]
1295 ,[cf_cv_func_curses_version=unknown])
1297 test "$cf_cv_func_curses_version" = yes && AC_DEFINE(HAVE_CURSES_VERSION,1,[Define to 1 if we have curses_version function])
1299 dnl ---------------------------------------------------------------------------
1300 dnl CF_FUNC_OPENPTY version: 5 updated: 2015/09/12 14:46:50
1302 dnl Check for openpty() function, along with <pty.h> header. It may need the
1303 dnl "util" library as well.
1304 AC_DEFUN([CF_FUNC_OPENPTY],
1306 AC_CHECK_LIB(util,openpty,cf_cv_lib_util=yes,cf_cv_lib_util=no)
1307 AC_CACHE_CHECK(for openpty header,cf_cv_func_openpty,[
1308 cf_save_LIBS="$LIBS"
1309 test $cf_cv_lib_util = yes && { CF_ADD_LIB(util) }
1310 for cf_header in pty.h libutil.h util.h
1313 #include <$cf_header>
1315 int x = openpty((int *)0, (int *)0, (char *)0,
1316 (struct termios *)0, (struct winsize *)0);
1318 cf_cv_func_openpty=$cf_header
1321 cf_cv_func_openpty=no
1324 LIBS="$cf_save_LIBS"
1327 dnl ---------------------------------------------------------------------------
1328 dnl CF_GCC_ATTRIBUTES version: 17 updated: 2015/04/12 15:39:00
1329 dnl -----------------
1330 dnl Test for availability of useful gcc __attribute__ directives to quiet
1331 dnl compiler warnings. Though useful, not all are supported -- and contrary
1332 dnl to documentation, unrecognized directives cause older compilers to barf.
1333 AC_DEFUN([CF_GCC_ATTRIBUTES],
1335 if test "$GCC" = yes
1337 cat > conftest.i <<EOF
1339 #define GCC_PRINTF 0
1344 #ifndef GCC_NORETURN
1345 #define GCC_NORETURN /* nothing */
1348 #define GCC_UNUSED /* nothing */
1351 if test "$GCC" = yes
1353 AC_CHECKING([for $CC __attribute__ directives])
1354 cat > conftest.$ac_ext <<EOF
1355 #line __oline__ "${as_me:-configure}"
1356 #include "confdefs.h"
1357 #include "conftest.h"
1358 #include "conftest.i"
1360 #define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
1362 #define GCC_PRINTFLIKE(fmt,var) /*nothing*/
1365 #define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
1367 #define GCC_SCANFLIKE(fmt,var) /*nothing*/
1369 extern void wow(char *,...) GCC_SCANFLIKE(1,2);
1370 extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
1371 extern void foo(void) GCC_NORETURN;
1372 int main(int argc GCC_UNUSED, char *argv[[]] GCC_UNUSED) { return 0; }
1374 cf_printf_attribute=no
1375 cf_scanf_attribute=no
1376 for cf_attribute in scanf printf unused noreturn
1378 CF_UPPER(cf_ATTRIBUTE,$cf_attribute)
1379 cf_directive="__attribute__(($cf_attribute))"
1380 echo "checking for $CC $cf_directive" 1>&AC_FD_CC
1382 case $cf_attribute in
1384 cf_printf_attribute=yes
1385 cat >conftest.h <<EOF
1386 #define GCC_$cf_ATTRIBUTE 1
1390 cf_scanf_attribute=yes
1391 cat >conftest.h <<EOF
1392 #define GCC_$cf_ATTRIBUTE 1
1396 cat >conftest.h <<EOF
1397 #define GCC_$cf_ATTRIBUTE $cf_directive
1402 if AC_TRY_EVAL(ac_compile); then
1403 test -n "$verbose" && AC_MSG_RESULT(... $cf_attribute)
1404 cat conftest.h >>confdefs.h
1405 case $cf_attribute in
1407 AC_DEFINE_UNQUOTED(GCC_NORETURN,$cf_directive,[Define to noreturn-attribute for gcc])
1410 cf_value='/* nothing */'
1411 if test "$cf_printf_attribute" != no ; then
1412 cf_value='__attribute__((format(printf,fmt,var)))'
1413 AC_DEFINE(GCC_PRINTF,1,[Define to 1 if the compiler supports gcc-like printf attribute.])
1415 AC_DEFINE_UNQUOTED(GCC_PRINTFLIKE(fmt,var),$cf_value,[Define to printf-attribute for gcc])
1418 cf_value='/* nothing */'
1419 if test "$cf_scanf_attribute" != no ; then
1420 cf_value='__attribute__((format(scanf,fmt,var)))'
1421 AC_DEFINE(GCC_SCANF,1,[Define to 1 if the compiler supports gcc-like scanf attribute.])
1423 AC_DEFINE_UNQUOTED(GCC_SCANFLIKE(fmt,var),$cf_value,[Define to sscanf-attribute for gcc])
1426 AC_DEFINE_UNQUOTED(GCC_UNUSED,$cf_directive,[Define to unused-attribute for gcc])
1432 fgrep define conftest.i >>confdefs.h
1437 dnl ---------------------------------------------------------------------------
1438 dnl CF_GCC_VERSION version: 7 updated: 2012/10/18 06:46:33
1440 dnl Find version of gcc
1441 AC_DEFUN([CF_GCC_VERSION],[
1442 AC_REQUIRE([AC_PROG_CC])
1444 if test "$GCC" = yes ; then
1445 AC_MSG_CHECKING(version of $CC)
1446 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.]].*//'`"
1447 test -z "$GCC_VERSION" && GCC_VERSION=unknown
1448 AC_MSG_RESULT($GCC_VERSION)
1451 dnl ---------------------------------------------------------------------------
1452 dnl CF_GCC_WARNINGS version: 32 updated: 2015/04/12 15:39:00
1454 dnl Check if the compiler supports useful warning options. There's a few that
1455 dnl we don't use, simply because they're too noisy:
1457 dnl -Wconversion (useful in older versions of gcc, but not in gcc 2.7.x)
1458 dnl -Wredundant-decls (system headers make this too noisy)
1459 dnl -Wtraditional (combines too many unrelated messages, only a few useful)
1460 dnl -Wwrite-strings (too noisy, but should review occasionally). This
1461 dnl is enabled for ncurses using "--enable-const".
1465 dnl $1 is an optional list of gcc warning flags that a particular
1466 dnl application might want to use, e.g., "no-unused" for
1469 dnl If $with_ext_const is "yes", add a check for -Wwrite-strings
1471 AC_DEFUN([CF_GCC_WARNINGS],
1473 AC_REQUIRE([CF_GCC_VERSION])
1474 CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
1475 CF_CLANG_COMPILER(GCC,CLANG_COMPILER,CFLAGS)
1477 cat > conftest.$ac_ext <<EOF
1478 #line __oline__ "${as_me:-configure}"
1479 int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
1482 if test "$INTEL_COMPILER" = yes
1484 # The "-wdXXX" options suppress warnings:
1485 # remark #1419: external declaration in primary source file
1486 # remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
1487 # remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
1488 # remark #193: zero used for undefined preprocessing identifier
1489 # remark #593: variable "curs_sb_left_arrow" was set but never used
1490 # remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
1491 # remark #869: parameter "tw" was never referenced
1492 # remark #981: operands are evaluated in unspecified order
1493 # warning #279: controlling expression is constant
1495 AC_CHECKING([for $CC warning options])
1496 cf_save_CFLAGS="$CFLAGS"
1497 EXTRA_CFLAGS="-Wall"
1509 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
1510 if AC_TRY_EVAL(ac_compile); then
1511 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1512 EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
1515 CFLAGS="$cf_save_CFLAGS"
1517 elif test "$GCC" = yes
1519 AC_CHECKING([for $CC warning options])
1520 cf_save_CFLAGS="$CFLAGS"
1523 test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
1524 cf_gcc_warnings="Wignored-qualifiers Wlogical-op Wvarargs"
1525 test "x$CLANG_COMPILER" = xyes && cf_gcc_warnings=
1526 for cf_opt in W Wall \
1527 Wbad-function-cast \
1530 Wdeclaration-after-statement \
1533 Wmissing-declarations \
1534 Wmissing-prototypes \
1538 Wstrict-prototypes \
1539 Wundef $cf_gcc_warnings $cf_warn_CONST $1
1541 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
1542 if AC_TRY_EVAL(ac_compile); then
1543 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1546 CPPFLAGS="$CPPFLAGS -DXTSTRINGDEFINES"
1549 case $GCC_VERSION in
1551 CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
1556 case $GCC_VERSION in
1558 CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
1563 EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
1566 CFLAGS="$cf_save_CFLAGS"
1570 AC_SUBST(EXTRA_CFLAGS)
1572 dnl ---------------------------------------------------------------------------
1573 dnl CF_GETOPT_HEADER version: 6 updated: 2014/07/22 14:45:54
1574 dnl ----------------
1575 dnl Check for getopt's variables which are commonly defined in stdlib.h,
1576 dnl unistd.h or (nonstandard) in getopt.h
1577 AC_DEFUN([CF_GETOPT_HEADER],
1579 AC_HAVE_HEADERS(unistd.h getopt.h)
1580 AC_CACHE_CHECK(for header declaring getopt variables,cf_cv_getopt_header,[
1581 cf_cv_getopt_header=none
1582 for cf_header in stdio.h stdlib.h unistd.h getopt.h
1585 #include <$cf_header>],
1586 [int x = optind; char *y = optarg],
1587 [cf_cv_getopt_header=$cf_header
1591 if test $cf_cv_getopt_header != none ; then
1592 AC_DEFINE(HAVE_GETOPT_HEADER,1,[Define to 1 if getopt variables are declared in header])
1594 if test $cf_cv_getopt_header = getopt.h ; then
1595 AC_DEFINE(NEED_GETOPT_H,1,[Define to 1 if we must include getopt.h])
1598 dnl ---------------------------------------------------------------------------
1599 dnl CF_GNU_SOURCE version: 6 updated: 2005/07/09 13:23:07
1601 dnl Check if we must define _GNU_SOURCE to get a reasonable value for
1602 dnl _XOPEN_SOURCE, upon which many POSIX definitions depend. This is a defect
1603 dnl (or misfeature) of glibc2, which breaks portability of many applications,
1604 dnl since it is interwoven with GNU extensions.
1606 dnl Well, yes we could work around it...
1607 AC_DEFUN([CF_GNU_SOURCE],
1609 AC_CACHE_CHECK(if we must define _GNU_SOURCE,cf_cv_gnu_source,[
1610 AC_TRY_COMPILE([#include <sys/types.h>],[
1611 #ifndef _XOPEN_SOURCE
1614 [cf_cv_gnu_source=no],
1615 [cf_save="$CPPFLAGS"
1616 CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
1617 AC_TRY_COMPILE([#include <sys/types.h>],[
1618 #ifdef _XOPEN_SOURCE
1621 [cf_cv_gnu_source=no],
1622 [cf_cv_gnu_source=yes])
1626 test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
1628 dnl ---------------------------------------------------------------------------
1629 dnl CF_HEADER_PATH version: 13 updated: 2015/04/15 19:08:48
1631 dnl Construct a search-list of directories for a nonstandard header-file
1634 dnl $1 = the variable to return as result
1635 dnl $2 = the package name
1636 AC_DEFUN([CF_HEADER_PATH],
1640 # collect the current set of include-directories from compiler flags
1641 cf_header_path_list=""
1642 if test -n "${CFLAGS}${CPPFLAGS}" ; then
1643 for cf_header_path in $CPPFLAGS $CFLAGS
1645 case $cf_header_path in
1647 cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'`
1648 CF_ADD_SUBDIR_PATH($1,$2,include,$cf_header_path,NONE)
1649 cf_header_path_list="$cf_header_path_list [$]$1"
1655 # add the variations for the package we are looking for
1656 CF_SUBDIR_PATH($1,$2,include)
1658 test "$includedir" != NONE && \
1659 test "$includedir" != "/usr/include" && \
1660 test -d "$includedir" && {
1661 test -d $includedir && $1="[$]$1 $includedir"
1662 test -d $includedir/$2 && $1="[$]$1 $includedir/$2"
1665 test "$oldincludedir" != NONE && \
1666 test "$oldincludedir" != "/usr/include" && \
1667 test -d "$oldincludedir" && {
1668 test -d $oldincludedir && $1="[$]$1 $oldincludedir"
1669 test -d $oldincludedir/$2 && $1="[$]$1 $oldincludedir/$2"
1672 $1="[$]$1 $cf_header_path_list"
1674 dnl ---------------------------------------------------------------------------
1675 dnl CF_HELP_MESSAGE version: 3 updated: 1998/01/14 10:56:23
1677 dnl Insert text into the help-message, for readability, from AC_ARG_WITH.
1678 AC_DEFUN([CF_HELP_MESSAGE],
1679 [AC_DIVERT_HELP([$1])dnl
1681 dnl ---------------------------------------------------------------------------
1682 dnl CF_INHERIT_SCRIPT version: 2 updated: 2003/03/01 23:50:42
1683 dnl -----------------
1684 dnl If we do not have a given script, look for it in the parent directory.
1685 AC_DEFUN([CF_INHERIT_SCRIPT],
1687 test -f $1 || ( test -f ../$1 && cp ../$1 ./ )
1689 dnl ---------------------------------------------------------------------------
1690 dnl CF_INTEL_COMPILER version: 7 updated: 2015/04/12 15:39:00
1691 dnl -----------------
1692 dnl Check if the given compiler is really the Intel compiler for Linux. It
1693 dnl tries to imitate gcc, but does not return an error when it finds a mismatch
1694 dnl between prototypes, e.g., as exercised by CF_MISSING_CHECK.
1696 dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
1697 dnl ensure that it is not mistaken for gcc/g++. It is normally invoked from
1698 dnl the wrappers for gcc and g++ warnings.
1700 dnl $1 = GCC (default) or GXX
1701 dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS
1702 dnl $3 = CFLAGS (default) or CXXFLAGS
1703 AC_DEFUN([CF_INTEL_COMPILER],[
1704 AC_REQUIRE([AC_CANONICAL_HOST])
1705 ifelse([$2],,INTEL_COMPILER,[$2])=no
1707 if test "$ifelse([$1],,[$1],GCC)" = yes ; then
1710 AC_MSG_CHECKING(if this is really Intel ifelse([$1],GXX,C++,C) compiler)
1711 cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
1712 ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -no-gcc"
1714 #ifdef __INTEL_COMPILER
1718 ],[ifelse([$2],,INTEL_COMPILER,[$2])=yes
1719 cf_save_CFLAGS="$cf_save_CFLAGS -we147"
1721 ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
1722 AC_MSG_RESULT($ifelse([$2],,INTEL_COMPILER,[$2]))
1727 dnl ---------------------------------------------------------------------------
1728 dnl CF_LD_RPATH_OPT version: 7 updated: 2016/02/20 18:01:19
1730 dnl For the given system and compiler, find the compiler flags to pass to the
1731 dnl loader to use the "rpath" feature.
1732 AC_DEFUN([CF_LD_RPATH_OPT],
1734 AC_REQUIRE([CF_CHECK_CACHE])
1737 AC_MSG_CHECKING(for an rpath option)
1738 case $cf_cv_system_name in
1740 if test "$GCC" = yes; then
1741 LD_RPATH_OPT="-Wl,-rpath,"
1743 LD_RPATH_OPT="-rpath "
1746 (linux*|gnu*|k*bsd*-gnu|freebsd*)
1747 LD_RPATH_OPT="-Wl,-rpath,"
1749 (openbsd[[2-9]].*|mirbsd*)
1750 LD_RPATH_OPT="-Wl,-rpath,"
1753 LD_RPATH_OPT="-rpath "
1756 LD_RPATH_OPT="-Wl,-rpath,"
1759 LD_RPATH_OPT="-rpath "
1767 AC_MSG_RESULT($LD_RPATH_OPT)
1769 case "x$LD_RPATH_OPT" in
1771 AC_MSG_CHECKING(if we need a space after rpath option)
1772 cf_save_LIBS="$LIBS"
1773 CF_ADD_LIBS(${LD_RPATH_OPT}$libdir)
1774 AC_TRY_LINK(, , cf_rpath_space=no, cf_rpath_space=yes)
1775 LIBS="$cf_save_LIBS"
1776 AC_MSG_RESULT($cf_rpath_space)
1777 test "$cf_rpath_space" = yes && LD_RPATH_OPT="$LD_RPATH_OPT "
1781 dnl ---------------------------------------------------------------------------
1782 dnl CF_LIBRARY_PATH version: 10 updated: 2015/04/15 19:08:48
1784 dnl Construct a search-list of directories for a nonstandard library-file
1787 dnl $1 = the variable to return as result
1788 dnl $2 = the package name
1789 AC_DEFUN([CF_LIBRARY_PATH],
1792 cf_library_path_list=""
1793 if test -n "${LDFLAGS}${LIBS}" ; then
1794 for cf_library_path in $LDFLAGS $LIBS
1796 case $cf_library_path in
1798 cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'`
1799 CF_ADD_SUBDIR_PATH($1,$2,lib,$cf_library_path,NONE)
1800 cf_library_path_list="$cf_library_path_list [$]$1"
1806 CF_SUBDIR_PATH($1,$2,lib)
1808 $1="$cf_library_path_list [$]$1"
1810 dnl ---------------------------------------------------------------------------
1811 dnl CF_MAKE_TAGS version: 6 updated: 2010/10/23 15:52:32
1813 dnl Generate tags/TAGS targets for makefiles. Do not generate TAGS if we have
1814 dnl a monocase filesystem.
1815 AC_DEFUN([CF_MAKE_TAGS],[
1816 AC_REQUIRE([CF_MIXEDCASE_FILENAMES])
1818 AC_CHECK_PROGS(CTAGS, exctags ctags)
1819 AC_CHECK_PROGS(ETAGS, exetags etags)
1821 AC_CHECK_PROG(MAKE_LOWER_TAGS, ${CTAGS:-ctags}, yes, no)
1823 if test "$cf_cv_mixedcase" = yes ; then
1824 AC_CHECK_PROG(MAKE_UPPER_TAGS, ${ETAGS:-etags}, yes, no)
1829 if test "$MAKE_UPPER_TAGS" = yes ; then
1835 if test "$MAKE_LOWER_TAGS" = yes ; then
1844 AC_SUBST(MAKE_UPPER_TAGS)
1845 AC_SUBST(MAKE_LOWER_TAGS)
1847 dnl ---------------------------------------------------------------------------
1848 dnl CF_MATH_LIB version: 8 updated: 2010/05/29 16:31:02
1850 dnl Checks for libraries. At least one UNIX system, Apple Macintosh
1851 dnl Rhapsody 5.5, does not have -lm. We cannot use the simpler
1852 dnl AC_CHECK_LIB(m,sin), because that fails for C++.
1853 AC_DEFUN([CF_MATH_LIB],
1855 AC_CACHE_CHECK(if -lm needed for math functions,
1861 [double x = rand(); printf("result = %g\n", ]ifelse([$2],,sin(x),$2)[)],
1862 [cf_cv_need_libm=no],
1863 [cf_cv_need_libm=yes])])
1864 if test "$cf_cv_need_libm" = yes
1871 dnl ---------------------------------------------------------------------------
1872 dnl CF_MIXEDCASE_FILENAMES version: 7 updated: 2015/04/12 15:39:00
1873 dnl ----------------------
1874 dnl Check if the file-system supports mixed-case filenames. If we're able to
1875 dnl create a lowercase name and see it as uppercase, it doesn't support that.
1876 AC_DEFUN([CF_MIXEDCASE_FILENAMES],
1878 AC_CACHE_CHECK(if filesystem supports mixed-case filenames,cf_cv_mixedcase,[
1879 if test "$cross_compiling" = yes ; then
1880 case $target_alias in
1881 (*-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-msys*|*-mingw*|*-uwin*)
1889 rm -f conftest CONFTEST
1891 if test -f CONFTEST ; then
1896 rm -f conftest CONFTEST
1899 test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES,1,[Define to 1 if filesystem supports mixed-case filenames.])
1901 dnl ---------------------------------------------------------------------------
1902 dnl CF_MSG_LOG version: 5 updated: 2010/10/23 15:52:32
1904 dnl Write a debug message to config.log, along with the line number in the
1905 dnl configure script.
1906 AC_DEFUN([CF_MSG_LOG],[
1907 echo "${as_me:-configure}:__oline__: testing $* ..." 1>&AC_FD_CC
1909 dnl ---------------------------------------------------------------------------
1910 dnl CF_NCURSES_CC_CHECK version: 4 updated: 2007/07/29 10:39:05
1911 dnl -------------------
1912 dnl Check if we can compile with ncurses' header file
1913 dnl $1 is the cache variable to set
1914 dnl $2 is the header-file to include
1915 dnl $3 is the root name (ncurses or ncursesw)
1916 AC_DEFUN([CF_NCURSES_CC_CHECK],[
1918 ]ifelse($3,ncursesw,[
1919 #define _XOPEN_SOURCE_EXTENDED
1920 #undef HAVE_LIBUTF8_H /* in case we used CF_UTF8_LIB */
1921 #define HAVE_LIBUTF8_H /* to force ncurses' header file to use cchar_t */
1924 #ifdef NCURSES_VERSION
1925 ]ifelse($3,ncursesw,[
1930 printf("%s\n", NCURSES_VERSION);
1942 dnl ---------------------------------------------------------------------------
1943 dnl CF_NCURSES_CONFIG version: 17 updated: 2015/07/07 04:22:07
1944 dnl -----------------
1945 dnl Tie together the configure-script macros for ncurses, preferring these in
1947 dnl a) ".pc" files for pkg-config, using $NCURSES_CONFIG_PKG
1948 dnl b) the "-config" script from ncurses, using $NCURSES_CONFIG
1949 dnl c) just plain libraries
1951 dnl $1 is the root library name (default: "ncurses")
1952 AC_DEFUN([CF_NCURSES_CONFIG],[
1953 AC_REQUIRE([CF_PKG_CONFIG])
1954 cf_ncuconfig_root=ifelse($1,,ncurses,$1)
1955 cf_have_ncuconfig=no
1957 if test "x${PKG_CONFIG:=none}" != xnone; then
1958 AC_MSG_CHECKING(pkg-config for $cf_ncuconfig_root)
1959 if "$PKG_CONFIG" --exists $cf_ncuconfig_root ; then
1962 AC_MSG_CHECKING(if the $cf_ncuconfig_root package files work)
1963 cf_have_ncuconfig=unknown
1965 cf_save_CPPFLAGS="$CPPFLAGS"
1966 cf_save_LIBS="$LIBS"
1968 CPPFLAGS="$CPPFLAGS `$PKG_CONFIG --cflags $cf_ncuconfig_root`"
1969 CF_ADD_LIBS(`$PKG_CONFIG --libs $cf_ncuconfig_root`)
1971 AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
1972 [initscr(); mousemask(0,0); tgoto((char *)0, 0, 0);],
1973 [AC_TRY_RUN([#include <${cf_cv_ncurses_header:-curses.h}>
1975 { char *xx = curses_version(); return (xx == 0); }],
1976 [cf_have_ncuconfig=yes],
1977 [cf_have_ncuconfig=no],
1978 [cf_have_ncuconfig=maybe])],
1979 [cf_have_ncuconfig=no])
1980 AC_MSG_RESULT($cf_have_ncuconfig)
1981 test "$cf_have_ncuconfig" = maybe && cf_have_ncuconfig=yes
1982 if test "$cf_have_ncuconfig" != "yes"
1984 CPPFLAGS="$cf_save_CPPFLAGS"
1985 LIBS="$cf_save_LIBS"
1986 NCURSES_CONFIG_PKG=none
1988 AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
1989 NCURSES_CONFIG_PKG=$cf_ncuconfig_root
1994 NCURSES_CONFIG_PKG=none
1997 NCURSES_CONFIG_PKG=none
2000 if test "x$cf_have_ncuconfig" = "xno"; then
2001 echo "Looking for ${cf_ncuconfig_root}-config"
2003 CF_ACVERSION_CHECK(2.52,
2004 [AC_CHECK_TOOLS(NCURSES_CONFIG, ${cf_ncuconfig_root}-config ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config, none)],
2005 [AC_PATH_PROGS(NCURSES_CONFIG, ${cf_ncuconfig_root}-config ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config, none)])
2007 if test "$NCURSES_CONFIG" != none ; then
2009 CPPFLAGS="$CPPFLAGS `$NCURSES_CONFIG --cflags`"
2010 CF_ADD_LIBS(`$NCURSES_CONFIG --libs`)
2012 # even with config script, some packages use no-override for curses.h
2013 CF_CURSES_HEADER(ifelse($1,,ncurses,$1))
2015 dnl like CF_NCURSES_CPPFLAGS
2016 AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
2018 dnl like CF_NCURSES_LIBS
2019 CF_UPPER(cf_nculib_ROOT,HAVE_LIB$cf_ncuconfig_root)
2020 AC_DEFINE_UNQUOTED($cf_nculib_ROOT)
2022 dnl like CF_NCURSES_VERSION
2023 cf_cv_ncurses_version=`$NCURSES_CONFIG --version`
2027 CF_NCURSES_CPPFLAGS(ifelse($1,,ncurses,$1))
2028 CF_NCURSES_LIBS(ifelse($1,,ncurses,$1))
2035 dnl ---------------------------------------------------------------------------
2036 dnl CF_NCURSES_CPPFLAGS version: 21 updated: 2012/10/06 08:57:51
2037 dnl -------------------
2038 dnl Look for the SVr4 curses clone 'ncurses' in the standard places, adjusting
2039 dnl the CPPFLAGS variable so we can include its header.
2041 dnl The header files may be installed as either curses.h, or ncurses.h (would
2042 dnl be obsolete, except that some packagers prefer this name to distinguish it
2043 dnl from a "native" curses implementation). If not installed for overwrite,
2044 dnl the curses.h file would be in an ncurses subdirectory (e.g.,
2045 dnl /usr/include/ncurses), but someone may have installed overwriting the
2046 dnl vendor's curses. Only very old versions (pre-1.9.2d, the first autoconf'd
2047 dnl version) of ncurses don't define either __NCURSES_H or NCURSES_VERSION in
2050 dnl If the installer has set $CFLAGS or $CPPFLAGS so that the ncurses header
2051 dnl is already in the include-path, don't even bother with this, since we cannot
2052 dnl easily determine which file it is. In this case, it has to be <curses.h>.
2054 dnl The optional parameter gives the root name of the library, in case it is
2055 dnl not installed as the default curses library. That is how the
2056 dnl wide-character version of ncurses is installed.
2057 AC_DEFUN([CF_NCURSES_CPPFLAGS],
2058 [AC_REQUIRE([CF_WITH_CURSES_DIR])
2060 AC_PROVIDE([CF_CURSES_CPPFLAGS])dnl
2061 cf_ncuhdr_root=ifelse($1,,ncurses,$1)
2063 test -n "$cf_cv_curses_dir" && \
2064 test "$cf_cv_curses_dir" != "no" && { \
2065 CF_ADD_INCDIR($cf_cv_curses_dir/include/$cf_ncuhdr_root)
2068 AC_CACHE_CHECK(for $cf_ncuhdr_root header in include-path, cf_cv_ncurses_h,[
2069 cf_header_list="$cf_ncuhdr_root/curses.h $cf_ncuhdr_root/ncurses.h"
2070 ( test "$cf_ncuhdr_root" = ncurses || test "$cf_ncuhdr_root" = ncursesw ) && cf_header_list="$cf_header_list curses.h ncurses.h"
2071 for cf_header in $cf_header_list
2073 CF_NCURSES_CC_CHECK(cf_cv_ncurses_h,$cf_header,$1)
2074 test "$cf_cv_ncurses_h" != no && break
2081 # some applications need this, but should check for NCURSES_VERSION
2082 AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
2086 dnl ---------------------------------------------------------------------------
2087 dnl CF_NCURSES_EXT_FUNCS version: 4 updated: 2012/10/06 16:39:58
2088 dnl --------------------
2089 dnl Since 2007/11/17, ncurses has defined NCURSES_EXT_FUNCS; earlier versions
2090 dnl may provide these functions. Define the symbol if it is not defined, and
2092 AC_DEFUN([CF_NCURSES_EXT_FUNCS],
2094 AC_CACHE_CHECK(for ncurses extended functions,cf_cv_ncurses_ext_funcs,[
2096 #include <${cf_cv_ncurses_header:-curses.h}>],
2098 int x = NCURSES_EXT_FUNCS
2099 ],[cf_cv_ncurses_ext_funcs=defined],[
2101 #include <${cf_cv_ncurses_header:-curses.h}>],
2103 (void) assume_default_colors (0, 0);
2104 (void) curses_version ();
2105 (void) define_key (0, 0);
2106 (void) is_term_resized (0, 0);
2107 (void) key_defined (0);
2108 (void) keybound (0, 0);
2109 (void) keyok (0, 0);
2110 (void) resize_term (0, 0);
2111 (void) resizeterm (0, 0);
2112 (void) use_default_colors ();
2113 (void) use_extended_names (0);
2114 (void) wresize (0, 0, 0);],
2115 [cf_cv_ncurses_ext_funcs=yes],
2116 [cf_cv_ncurses_ext_funcs=no])
2119 test "$cf_cv_ncurses_ext_funcs" = yes && AC_DEFINE(NCURSES_EXT_FUNCS,1,[Define to 1 if we have ncurses extensions])
2121 dnl ---------------------------------------------------------------------------
2122 dnl CF_NCURSES_HEADER version: 4 updated: 2015/04/15 19:08:48
2123 dnl -----------------
2124 dnl Find a "curses" header file, e.g,. "curses.h", or one of the more common
2125 dnl variations of ncurses' installs.
2127 dnl See also CF_CURSES_HEADER, which sets the same cache variable.
2128 AC_DEFUN([CF_NCURSES_HEADER],[
2130 if test "$cf_cv_ncurses_h" != no ; then
2131 cf_cv_ncurses_header=$cf_cv_ncurses_h
2134 AC_CACHE_CHECK(for $cf_ncuhdr_root include-path, cf_cv_ncurses_h2,[
2135 test -n "$verbose" && echo
2136 CF_HEADER_PATH(cf_search,$cf_ncuhdr_root)
2137 test -n "$verbose" && echo search path $cf_search
2138 cf_save2_CPPFLAGS="$CPPFLAGS"
2139 for cf_incdir in $cf_search
2141 CF_ADD_INCDIR($cf_incdir)
2146 CF_NCURSES_CC_CHECK(cf_cv_ncurses_h2,$cf_header,$1)
2147 if test "$cf_cv_ncurses_h2" != no ; then
2148 cf_cv_ncurses_h2=$cf_incdir/$cf_header
2149 test -n "$verbose" && echo $ac_n " ... found $ac_c" 1>&AC_FD_MSG
2152 test -n "$verbose" && echo " ... tested $cf_incdir/$cf_header" 1>&AC_FD_MSG
2154 CPPFLAGS="$cf_save2_CPPFLAGS"
2155 test "$cf_cv_ncurses_h2" != no && break
2157 test "$cf_cv_ncurses_h2" = no && AC_MSG_ERROR(not found)
2160 CF_DIRNAME(cf_1st_incdir,$cf_cv_ncurses_h2)
2161 cf_cv_ncurses_header=`basename $cf_cv_ncurses_h2`
2162 if test `basename $cf_1st_incdir` = $cf_ncuhdr_root ; then
2163 cf_cv_ncurses_header=$cf_ncuhdr_root/$cf_cv_ncurses_header
2165 CF_ADD_INCDIR($cf_1st_incdir)
2169 # Set definitions to allow ifdef'ing for ncurses.h
2171 case $cf_cv_ncurses_header in
2173 AC_DEFINE(HAVE_NCURSES_H,1,[Define to 1 if we have ncurses.h])
2177 case $cf_cv_ncurses_header in
2178 (ncurses/curses.h|ncurses/ncurses.h)
2179 AC_DEFINE(HAVE_NCURSES_NCURSES_H,1,[Define to 1 if we have ncurses/ncurses.h])
2181 (ncursesw/curses.h|ncursesw/ncurses.h)
2182 AC_DEFINE(HAVE_NCURSESW_NCURSES_H,1,[Define to 1 if we have ncursesw/ncurses.h])
2187 dnl ---------------------------------------------------------------------------
2188 dnl CF_NCURSES_LIBS version: 17 updated: 2015/04/15 19:08:48
2190 dnl Look for the ncurses library. This is a little complicated on Linux,
2191 dnl because it may be linked with the gpm (general purpose mouse) library.
2192 dnl Some distributions have gpm linked with (bsd) curses, which makes it
2193 dnl unusable with ncurses. However, we don't want to link with gpm unless
2194 dnl ncurses has a dependency, since gpm is normally set up as a shared library,
2195 dnl and the linker will record a dependency.
2197 dnl The optional parameter gives the root name of the library, in case it is
2198 dnl not installed as the default curses library. That is how the
2199 dnl wide-character version of ncurses is installed.
2200 AC_DEFUN([CF_NCURSES_LIBS],
2201 [AC_REQUIRE([CF_NCURSES_CPPFLAGS])
2203 cf_nculib_root=ifelse($1,,ncurses,$1)
2204 # This works, except for the special case where we find gpm, but
2205 # ncurses is in a nonstandard location via $LIBS, and we really want
2208 cf_ncurses_SAVE="$LIBS"
2209 AC_CHECK_LIB(gpm,Gpm_Open,
2210 [AC_CHECK_LIB(gpm,initscr,
2211 [LIBS="$cf_ncurses_SAVE"],
2212 [cf_ncurses_LIBS="-lgpm"])])
2216 # This is only necessary if you are linking against an obsolete
2217 # version of ncurses (but it should do no harm, since it's static).
2218 if test "$cf_nculib_root" = ncurses ; then
2219 AC_CHECK_LIB(mytinfo,tgoto,[cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"])
2224 CF_ADD_LIBS($cf_ncurses_LIBS)
2226 if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
2228 CF_ADD_LIBS(-l$cf_nculib_root)
2230 CF_FIND_LIBRARY($cf_nculib_root,$cf_nculib_root,
2231 [#include <${cf_cv_ncurses_header:-curses.h}>],
2236 if test -n "$cf_ncurses_LIBS" ; then
2237 AC_MSG_CHECKING(if we can link $cf_nculib_root without $cf_ncurses_LIBS)
2238 cf_ncurses_SAVE="$LIBS"
2239 for p in $cf_ncurses_LIBS ; do
2240 q=`echo $LIBS | sed -e "s%$p %%" -e "s%$p$%%"`
2241 if test "$q" != "$LIBS" ; then
2245 AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
2246 [initscr(); mousemask(0,0); tgoto((char *)0, 0, 0);],
2247 [AC_MSG_RESULT(yes)],
2249 LIBS="$cf_ncurses_SAVE"])
2252 CF_UPPER(cf_nculib_ROOT,HAVE_LIB$cf_nculib_root)
2253 AC_DEFINE_UNQUOTED($cf_nculib_ROOT)
2255 dnl ---------------------------------------------------------------------------
2256 dnl CF_NCURSES_PTHREADS version: 1 updated: 2016/02/20 19:23:20
2257 dnl -------------------
2258 dnl Use this followup check to ensure that we link with pthreads if ncurses
2260 AC_DEFUN([CF_NCURSES_PTHREADS],[
2261 : ${cf_nculib_root:=ifelse($1,,ncurses,$1)}
2262 AC_CACHE_CHECK(if $cf_nculib_root uses pthreads, cf_cv_ncurses_pthreads,[
2263 AC_CHECK_LIB($cf_nculib_root,_nc_init_pthreads,
2264 cf_cv_ncurses_pthreads=yes,
2265 cf_cv_ncurses_pthreads=no)
2267 if test "$cf_cv_ncurses_pthreads" = yes
2269 CF_ADD_LIBS(-lpthread)
2272 dnl ---------------------------------------------------------------------------
2273 dnl CF_NCURSES_VERSION version: 14 updated: 2012/10/06 08:57:51
2274 dnl ------------------
2275 dnl Check for the version of ncurses, to aid in reporting bugs, etc.
2276 dnl Call CF_CURSES_CPPFLAGS first, or CF_NCURSES_CPPFLAGS. We don't use
2277 dnl AC_REQUIRE since that does not work with the shell's if/then/else/fi.
2278 AC_DEFUN([CF_NCURSES_VERSION],
2280 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
2281 AC_CACHE_CHECK(for ncurses version, cf_cv_ncurses_version,[
2282 cf_cv_ncurses_version=no
2286 #include <${cf_cv_ncurses_header:-curses.h}>
2290 FILE *fp = fopen("$cf_tempfile", "w");
2291 #ifdef NCURSES_VERSION
2292 # ifdef NCURSES_VERSION_PATCH
2293 fprintf(fp, "%s.%d\n", NCURSES_VERSION, NCURSES_VERSION_PATCH);
2295 fprintf(fp, "%s\n", NCURSES_VERSION);
2299 fprintf(fp, "old\n");
2304 ${cf_cv_main_return:-return}(0);
2306 cf_cv_ncurses_version=`cat $cf_tempfile`],,[
2308 # This will not work if the preprocessor splits the line after the
2309 # Autoconf token. The 'unproto' program does that.
2310 cat > conftest.$ac_ext <<EOF
2311 #include <${cf_cv_ncurses_header:-curses.h}>
2313 #ifdef NCURSES_VERSION
2314 Autoconf NCURSES_VERSION
2322 cf_try="$ac_cpp conftest.$ac_ext 2>&AC_FD_CC | grep '^Autoconf ' >conftest.out"
2324 if test -f conftest.out ; then
2325 cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[[^"]]*"%%' -e 's%".*%%'`
2326 test -n "$cf_out" && cf_cv_ncurses_version="$cf_out"
2332 test "$cf_cv_ncurses_version" = no || AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
2334 dnl ---------------------------------------------------------------------------
2335 dnl CF_NCURSES_WRAP_PREFIX version: 1 updated: 2009/03/28 16:08:10
2336 dnl ----------------------
2337 dnl Check for ncurses "wrap-prefix" used for public variables which have been
2338 dnl wrapped with a function to help with concurrency control.
2339 AC_DEFUN([CF_NCURSES_WRAP_PREFIX],
2341 AC_MSG_CHECKING(for ncurses wrap-prefix)
2342 AC_ARG_WITH(ncurses-wrap-prefix,
2343 [ --with-ncurses-wrap-prefix naming-prefix for ncurses wrapped-variables],
2344 [NCURSES_WRAP_PREFIX=$withval],
2345 [NCURSES_WRAP_PREFIX=_nc_])
2346 AC_MSG_RESULT($NCURSES_WRAP_PREFIX)
2348 AC_SUBST(NCURSES_WRAP_PREFIX)
2350 dnl ---------------------------------------------------------------------------
2351 dnl CF_NETBSD_FORM_H version: 2 updated: 2012/10/06 16:39:58
2352 dnl ----------------
2353 dnl Check for NetBSD's form.h, which is incompatible with SVr4 and ncurses.
2354 dnl Some workarounds are needed in client programs to allow them to compile.
2355 AC_DEFUN([CF_NETBSD_FORM_H],[
2356 AC_CACHE_CHECK(for NetBSD form.h,cf_cv_netbsd_form_h,[
2358 #include <${cf_cv_ncurses_header:-curses.h}>
2362 int y = current_field(form)->cursor_ypos;
2363 int x = current_field(form)->cursor_xpos;
2364 ],[cf_cv_netbsd_form_h=yes
2365 ],[cf_cv_netbsd_form_h=no])
2368 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])
2370 dnl ---------------------------------------------------------------------------
2371 dnl CF_NETBSD_MENU_H version: 2 updated: 2012/10/06 16:39:58
2372 dnl ----------------
2373 dnl Check for NetBSD's menu.h, which is incompatible with SVr4 and ncurses.
2374 dnl Some workarounds are needed in client programs to allow them to compile.
2375 AC_DEFUN([CF_NETBSD_MENU_H],[
2376 AC_CACHE_CHECK(for NetBSD menu.h,cf_cv_netbsd_menu_h,[
2378 #include <${cf_cv_ncurses_header:-curses.h}>
2382 int y = menu->max_item_width;
2383 ],[cf_cv_netbsd_menu_h=yes
2384 ],[cf_cv_netbsd_menu_h=no])
2387 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])
2389 dnl ---------------------------------------------------------------------------
2390 dnl CF_NO_LEAKS_OPTION version: 6 updated: 2015/04/12 15:39:00
2391 dnl ------------------
2392 dnl see CF_WITH_NO_LEAKS
2393 AC_DEFUN([CF_NO_LEAKS_OPTION],[
2394 AC_MSG_CHECKING(if you want to use $1 for testing)
2397 [AC_DEFINE_UNQUOTED($3,1,"Define to 1 if you want to use $1 for testing.")ifelse([$4],,[
2400 : ${with_cflags:=-g}
2401 : ${with_no_leaks:=yes}
2404 AC_MSG_RESULT(${with_$1:-no})
2406 case .$with_cflags in
2418 dnl ---------------------------------------------------------------------------
2419 dnl CF_PATH_SYNTAX version: 16 updated: 2015/04/18 08:56:57
2421 dnl Check the argument to see that it looks like a pathname. Rewrite it if it
2422 dnl begins with one of the prefix/exec_prefix variables, and then again if the
2423 dnl result begins with 'NONE'. This is necessary to work around autoconf's
2424 dnl delayed evaluation of those symbols.
2425 AC_DEFUN([CF_PATH_SYNTAX],[
2426 if test "x$prefix" != xNONE; then
2427 cf_path_syntax="$prefix"
2429 cf_path_syntax="$ac_default_prefix"
2433 (.\[$]\(*\)*|.\'*\'*)
2437 (.[[a-zA-Z]]:[[\\/]]*) # OS/2 EMX
2439 (.\[$]{*prefix}*|.\[$]{*dir}*)
2443 $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
2448 $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
2451 ifelse([$2],,[AC_MSG_ERROR([expected a pathname, not \"[$]$1\"])],$2)
2455 dnl ---------------------------------------------------------------------------
2456 dnl CF_PDCURSES_X11 version: 13 updated: 2012/10/06 16:39:58
2458 dnl Configure for PDCurses' X11 library
2459 AC_DEFUN([CF_PDCURSES_X11],[
2460 AC_REQUIRE([CF_X_ATHENA])
2462 CF_ACVERSION_CHECK(2.52,
2463 [AC_CHECK_TOOLS(XCURSES_CONFIG, xcurses-config, none)],
2464 [AC_PATH_PROGS(XCURSES_CONFIG, xcurses-config, none)])
2466 if test "$XCURSES_CONFIG" != none ; then
2468 CPPFLAGS="$CPPFLAGS `$XCURSES_CONFIG --cflags`"
2469 CF_ADD_LIBS(`$XCURSES_CONFIG --libs`)
2471 cf_cv_lib_XCurses=yes
2475 LDFLAGS="$LDFLAGS $X_LIBS"
2476 CF_CHECK_CFLAGS($X_CFLAGS)
2477 AC_CHECK_LIB(X11,XOpenDisplay,
2478 [CF_ADD_LIBS(-lX11)],,
2479 [$X_PRE_LIBS $LIBS $X_EXTRA_LIBS])
2480 AC_CACHE_CHECK(for XCurses library,cf_cv_lib_XCurses,[
2481 CF_ADD_LIBS(-lXCurses)
2483 #include <xcurses.h>
2484 char *XCursesProgramName = "test";
2486 [cf_cv_lib_XCurses=yes],
2487 [cf_cv_lib_XCurses=no])
2492 if test $cf_cv_lib_XCurses = yes ; then
2493 AC_DEFINE(UNIX,1,[Define to 1 if using PDCurses on Unix])
2494 AC_DEFINE(XCURSES,1,[Define to 1 if using PDCurses on Unix])
2495 AC_CHECK_HEADER(xcurses.h, AC_DEFINE(HAVE_XCURSES,1,[Define to 1 if using PDCurses on Unix]))
2497 AC_MSG_ERROR(Cannot link with XCurses)
2500 dnl ---------------------------------------------------------------------------
2501 dnl CF_PKG_CONFIG version: 10 updated: 2015/04/26 18:06:58
2503 dnl Check for the package-config program, unless disabled by command-line.
2504 AC_DEFUN([CF_PKG_CONFIG],
2506 AC_MSG_CHECKING(if you want to use pkg-config)
2507 AC_ARG_WITH(pkg-config,
2508 [ --with-pkg-config{=path} enable/disable use of pkg-config],
2509 [cf_pkg_config=$withval],
2510 [cf_pkg_config=yes])
2511 AC_MSG_RESULT($cf_pkg_config)
2513 case $cf_pkg_config in
2518 CF_ACVERSION_CHECK(2.52,
2519 [AC_PATH_TOOL(PKG_CONFIG, pkg-config, none)],
2520 [AC_PATH_PROG(PKG_CONFIG, pkg-config, none)])
2527 test -z "$PKG_CONFIG" && PKG_CONFIG=none
2528 if test "$PKG_CONFIG" != none ; then
2529 CF_PATH_SYNTAX(PKG_CONFIG)
2530 elif test "x$cf_pkg_config" != xno ; then
2531 AC_MSG_WARN(pkg-config is not installed)
2534 AC_SUBST(PKG_CONFIG)
2536 dnl ---------------------------------------------------------------------------
2537 dnl CF_POSIX_C_SOURCE version: 9 updated: 2015/04/12 15:39:00
2538 dnl -----------------
2539 dnl Define _POSIX_C_SOURCE to the given level, and _POSIX_SOURCE if needed.
2541 dnl POSIX.1-1990 _POSIX_SOURCE
2542 dnl POSIX.1-1990 and _POSIX_SOURCE and
2543 dnl POSIX.2-1992 C-Language _POSIX_C_SOURCE=2
2545 dnl POSIX.1b-1993 _POSIX_C_SOURCE=199309L
2546 dnl POSIX.1c-1996 _POSIX_C_SOURCE=199506L
2547 dnl X/Open 2000 _POSIX_C_SOURCE=200112L
2550 dnl $1 is the nominal value for _POSIX_C_SOURCE
2551 AC_DEFUN([CF_POSIX_C_SOURCE],
2553 cf_POSIX_C_SOURCE=ifelse([$1],,199506L,[$1])
2555 cf_save_CFLAGS="$CFLAGS"
2556 cf_save_CPPFLAGS="$CPPFLAGS"
2558 CF_REMOVE_DEFINE(cf_trim_CFLAGS,$cf_save_CFLAGS,_POSIX_C_SOURCE)
2559 CF_REMOVE_DEFINE(cf_trim_CPPFLAGS,$cf_save_CPPFLAGS,_POSIX_C_SOURCE)
2561 AC_CACHE_CHECK(if we should define _POSIX_C_SOURCE,cf_cv_posix_c_source,[
2562 CF_MSG_LOG(if the symbol is already defined go no further)
2563 AC_TRY_COMPILE([#include <sys/types.h>],[
2564 #ifndef _POSIX_C_SOURCE
2567 [cf_cv_posix_c_source=no],
2568 [cf_want_posix_source=no
2569 case .$cf_POSIX_C_SOURCE in
2571 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
2574 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
2575 cf_want_posix_source=yes
2578 cf_want_posix_source=yes
2581 if test "$cf_want_posix_source" = yes ; then
2582 AC_TRY_COMPILE([#include <sys/types.h>],[
2583 #ifdef _POSIX_SOURCE
2586 cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE")
2588 CF_MSG_LOG(ifdef from value $cf_POSIX_C_SOURCE)
2589 CFLAGS="$cf_trim_CFLAGS"
2590 CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source"
2591 CF_MSG_LOG(if the second compile does not leave our definition intact error)
2592 AC_TRY_COMPILE([#include <sys/types.h>],[
2593 #ifndef _POSIX_C_SOURCE
2596 [cf_cv_posix_c_source=no])
2597 CFLAGS="$cf_save_CFLAGS"
2598 CPPFLAGS="$cf_save_CPPFLAGS"
2602 if test "$cf_cv_posix_c_source" != no ; then
2603 CFLAGS="$cf_trim_CFLAGS"
2604 CPPFLAGS="$cf_trim_CPPFLAGS"
2605 CF_ADD_CFLAGS($cf_cv_posix_c_source)
2609 dnl ---------------------------------------------------------------------------
2610 dnl CF_PRG_RULES version: 1 updated: 2006/06/03 11:45:08
2612 dnl Append definitions and rules for the given programs to the subdirectory
2613 dnl Makefiles, and the recursion rule for the top-level Makefile.
2616 dnl $1 = script to run
2617 dnl $2 = list of subdirectories
2621 AC_DEFUN([CF_PRG_RULES],
2625 if test ! -d $srcdir/$cf_dir; then
2627 elif test -f $srcdir/$cf_dir/programs; then
2628 $AWK -f $1 $srcdir/$cf_dir/programs >>$cf_dir/Makefile
2633 dnl ---------------------------------------------------------------------------
2634 dnl CF_PROG_CC version: 4 updated: 2014/07/12 18:57:58
2636 dnl standard check for CC, plus followup sanity checks
2637 dnl $1 = optional parameter to pass to AC_PROG_CC to specify compiler name
2638 AC_DEFUN([CF_PROG_CC],[
2639 ifelse($1,,[AC_PROG_CC],[AC_PROG_CC($1)])
2641 CF_ACVERSION_CHECK(2.52,
2646 dnl ---------------------------------------------------------------------------
2647 dnl CF_PROG_INSTALL version: 7 updated: 2015/04/18 08:56:57
2649 dnl Force $INSTALL to be an absolute-path. Otherwise, edit_man.sh and the
2650 dnl misc/tabset install won't work properly. Usually this happens only when
2651 dnl using the fallback mkinstalldirs script
2652 AC_DEFUN([CF_PROG_INSTALL],
2658 CF_DIRNAME(cf_dir,$INSTALL)
2659 test -z "$cf_dir" && cf_dir=.
2660 INSTALL=`cd $cf_dir && pwd`/`echo $INSTALL | sed -e 's%^.*/%%'`
2664 dnl ---------------------------------------------------------------------------
2665 dnl CF_PROG_LINT version: 2 updated: 2009/08/12 04:43:14
2667 AC_DEFUN([CF_PROG_LINT],
2669 AC_CHECK_PROGS(LINT, tdlint lint alint splint lclint)
2672 dnl ---------------------------------------------------------------------------
2673 dnl CF_REMOVE_DEFINE version: 3 updated: 2010/01/09 11:05:50
2674 dnl ----------------
2675 dnl Remove all -U and -D options that refer to the given symbol from a list
2676 dnl of C compiler options. This works around the problem that not all
2677 dnl compilers process -U and -D options from left-to-right, so a -U option
2678 dnl cannot be used to cancel the effect of a preceding -D option.
2680 dnl $1 = target (which could be the same as the source variable)
2681 dnl $2 = source (including '$')
2682 dnl $3 = symbol to remove
2683 define([CF_REMOVE_DEFINE],
2686 sed -e 's/-[[UD]]'"$3"'\(=[[^ ]]*\)\?[[ ]]/ /g' \
2687 -e 's/-[[UD]]'"$3"'\(=[[^ ]]*\)\?[$]//g'`
2689 dnl ---------------------------------------------------------------------------
2690 dnl CF_RPATH_HACK version: 11 updated: 2013/09/01 13:02:00
2692 AC_DEFUN([CF_RPATH_HACK],
2694 AC_REQUIRE([CF_LD_RPATH_OPT])
2695 AC_MSG_CHECKING(for updated LDFLAGS)
2696 if test -n "$LD_RPATH_OPT" ; then
2697 AC_MSG_RESULT(maybe)
2699 AC_CHECK_PROGS(cf_ldd_prog,ldd,no)
2700 cf_rpath_list="/usr/lib /lib"
2701 if test "$cf_ldd_prog" != no
2705 AC_TRY_LINK([#include <stdio.h>],
2707 [cf_rpath_oops=`$cf_ldd_prog conftest$ac_exeext | fgrep ' not found' | sed -e 's% =>.*$%%' |sort | uniq`
2708 cf_rpath_list=`$cf_ldd_prog conftest$ac_exeext | fgrep / | sed -e 's%^.*[[ ]]/%/%' -e 's%/[[^/]][[^/]]*$%%' |sort | uniq`])
2710 # If we passed the link-test, but get a "not found" on a given library,
2711 # this could be due to inept reconfiguration of gcc to make it only
2712 # partly honor /usr/local/lib (or whatever). Sometimes this behavior
2713 # is intentional, e.g., installing gcc in /usr/bin and suppressing the
2714 # /usr/local libraries.
2715 if test -n "$cf_rpath_oops"
2717 for cf_rpath_src in $cf_rpath_oops
2719 for cf_rpath_dir in \
2724 if test -f $cf_rpath_dir/lib/$cf_rpath_src
2726 CF_VERBOSE(...adding -L$cf_rpath_dir/lib to LDFLAGS for $cf_rpath_src)
2727 LDFLAGS="$LDFLAGS -L$cf_rpath_dir/lib"
2735 CF_VERBOSE(...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS)
2737 CF_RPATH_HACK_2(LDFLAGS)
2738 CF_RPATH_HACK_2(LIBS)
2740 CF_VERBOSE(...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS)
2744 AC_SUBST(EXTRA_LDFLAGS)
2746 dnl ---------------------------------------------------------------------------
2747 dnl CF_RPATH_HACK_2 version: 7 updated: 2015/04/12 15:39:00
2749 dnl Do one set of substitutions for CF_RPATH_HACK, adding an rpath option to
2750 dnl EXTRA_LDFLAGS for each -L option found.
2752 dnl $cf_rpath_list contains a list of directories to ignore.
2754 dnl $1 = variable name to update. The LDFLAGS variable should be the only one,
2755 dnl but LIBS often has misplaced -L options.
2756 AC_DEFUN([CF_RPATH_HACK_2],
2758 CF_VERBOSE(...checking $1 [$]$1)
2761 for cf_rpath_src in [$]$1
2763 case $cf_rpath_src in
2766 # check if this refers to a directory which we will ignore
2768 if test -n "$cf_rpath_list"
2770 for cf_rpath_item in $cf_rpath_list
2772 if test "x$cf_rpath_src" = "x-L$cf_rpath_item"
2780 if test "$cf_rpath_skip" = no
2782 # transform the option
2783 if test "$LD_RPATH_OPT" = "-R " ; then
2784 cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%-R %"`
2786 cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%$LD_RPATH_OPT%"`
2789 # if we have not already added this, add it now
2790 cf_rpath_tst=`echo "$EXTRA_LDFLAGS" | sed -e "s%$cf_rpath_tmp %%"`
2791 if test "x$cf_rpath_tst" = "x$EXTRA_LDFLAGS"
2793 CF_VERBOSE(...Filter $cf_rpath_src ->$cf_rpath_tmp)
2794 EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS"
2799 cf_rpath_dst="$cf_rpath_dst $cf_rpath_src"
2803 CF_VERBOSE(...checked $1 [$]$1)
2804 AC_SUBST(EXTRA_LDFLAGS)
2806 dnl ---------------------------------------------------------------------------
2807 dnl CF_SIG_ATOMIC_T version: 3 updated: 2012/10/04 20:12:20
2809 dnl signal handler, but there are some gcc depedencies in that recommendation.
2811 AC_DEFUN([CF_SIG_ATOMIC_T],
2813 AC_MSG_CHECKING(for signal global datatype)
2814 AC_CACHE_VAL(cf_cv_sig_atomic_t,[
2816 "volatile sig_atomic_t" \
2821 #include <sys/types.h>
2827 static void handler(int sig)
2831 [signal(SIGINT, handler);
2833 [cf_cv_sig_atomic_t=$cf_type],
2834 [cf_cv_sig_atomic_t=no])
2835 test "$cf_cv_sig_atomic_t" != no && break
2838 AC_MSG_RESULT($cf_cv_sig_atomic_t)
2839 test "$cf_cv_sig_atomic_t" != no && AC_DEFINE_UNQUOTED(SIG_ATOMIC_T, $cf_cv_sig_atomic_t,[Define to signal global datatype])
2841 dnl ---------------------------------------------------------------------------
2842 dnl CF_SUBDIR_PATH version: 7 updated: 2014/12/04 04:33:06
2844 dnl Construct a search-list for a nonstandard header/lib-file
2845 dnl $1 = the variable to return as result
2846 dnl $2 = the package name
2847 dnl $3 = the subdirectory, e.g., bin, include or lib
2848 AC_DEFUN([CF_SUBDIR_PATH],
2852 CF_ADD_SUBDIR_PATH($1,$2,$3,$prefix,NONE)
2854 for cf_subdir_prefix in \
2862 CF_ADD_SUBDIR_PATH($1,$2,$3,$cf_subdir_prefix,$prefix)
2865 dnl ---------------------------------------------------------------------------
2866 dnl CF_SYS_TIME_SELECT version: 6 updated: 2015/04/18 08:56:57
2867 dnl ------------------
2868 dnl Check if we can include <sys/time.h> with <sys/select.h>; this breaks on
2869 dnl older SCO configurations.
2870 AC_DEFUN([CF_SYS_TIME_SELECT],
2872 AC_MSG_CHECKING(if sys/time.h works with sys/select.h)
2873 AC_CACHE_VAL(cf_cv_sys_time_select,[
2875 #include <sys/types.h>
2876 #ifdef HAVE_SYS_TIME_H
2877 #include <sys/time.h>
2879 #ifdef HAVE_SYS_SELECT_H
2880 #include <sys/select.h>
2882 ],[],[cf_cv_sys_time_select=yes],
2883 [cf_cv_sys_time_select=no])
2885 AC_MSG_RESULT($cf_cv_sys_time_select)
2886 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>])
2888 dnl ---------------------------------------------------------------------------
2889 dnl CF_TERM_HEADER version: 4 updated: 2015/04/15 19:08:48
2891 dnl Look for term.h, which is part of X/Open curses. It defines the interface
2892 dnl to terminfo database. Usually it is in the same include-path as curses.h,
2893 dnl but some packagers change this, breaking various applications.
2894 AC_DEFUN([CF_TERM_HEADER],[
2895 AC_CACHE_CHECK(for terminfo header, cf_cv_term_header,[
2896 case ${cf_cv_ncurses_header} in
2897 (*/ncurses.h|*/ncursesw.h)
2898 cf_term_header=`echo "$cf_cv_ncurses_header" | sed -e 's%ncurses[[^.]]*\.h$%term.h%'`
2901 cf_term_header=term.h
2905 for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
2907 AC_TRY_COMPILE([#include <stdio.h>
2908 #include <${cf_cv_ncurses_header:-curses.h}>
2910 ],[int x = auto_left_margin],[
2911 cf_cv_term_header="$cf_test"],[
2912 cf_cv_term_header=unknown
2914 test "$cf_cv_term_header" != unknown && break
2918 # Set definitions to allow ifdef'ing to accommodate subdirectories
2920 case $cf_cv_term_header in
2922 AC_DEFINE(HAVE_TERM_H,1,[Define to 1 if we have term.h])
2926 case $cf_cv_term_header in
2928 AC_DEFINE(HAVE_NCURSES_TERM_H,1,[Define to 1 if we have ncurses/term.h])
2931 AC_DEFINE(HAVE_NCURSESW_TERM_H,1,[Define to 1 if we have ncursesw/term.h])
2935 dnl ---------------------------------------------------------------------------
2936 dnl CF_TOP_BUILDDIR version: 2 updated: 2013/07/27 17:38:32
2938 dnl Define a top_builddir symbol, for applications that need an absolute path.
2939 AC_DEFUN([CF_TOP_BUILDDIR],
2941 top_builddir=ifelse($1,,`pwd`,$1)
2942 AC_SUBST(top_builddir)
2944 dnl ---------------------------------------------------------------------------
2945 dnl CF_TPUTS_PROTO version: 3 updated: 2015/04/17 21:26:14
2947 dnl Check for type of function-pointer passed to tputs. Some old
2948 dnl implementations used functions that had different prototypes, making it
2949 dnl hard to compile portable programs using tputs.
2950 AC_DEFUN([CF_TPUTS_PROTO],[
2951 CF_CURSES_FUNCS(tputs)
2952 if test x$cf_cv_func_tputs = xyes
2955 for cf_arg in int char
2957 for cf_ret in int void
2959 if test $cf_ret = void
2961 cf_return="/* nothing */"
2963 cf_return="return value"
2966 #include <${cf_cv_ncurses_header:-curses.h}>
2967 #include <$cf_cv_term_header>
2969 static $cf_ret outc($cf_arg value) { $cf_return; }
2971 tputs("hello", 0, outc);
2972 ${cf_cv_main_return:-return}(0);
2974 CF_VERBOSE([prototype $cf_ret func($cf_arg value)])
2975 cat >>confdefs.h <<EOF
2976 #define TPUTS_ARG $cf_arg
2977 #define TPUTS_PROTO(func,value) $cf_ret func(TPUTS_ARG value)
2978 #define TPUTS_RETURN(value) $cf_return
2984 test $cf_done = yes && break
2988 dnl ---------------------------------------------------------------------------
2989 dnl CF_TRIM_X_LIBS version: 3 updated: 2015/04/12 15:39:00
2991 dnl Trim extra base X libraries added as a workaround for inconsistent library
2992 dnl dependencies returned by "new" pkg-config files.
2993 AC_DEFUN([CF_TRIM_X_LIBS],[
2994 for cf_trim_lib in Xmu Xt X11
2997 (*-l$cf_trim_lib\ *-l$cf_trim_lib*)
2998 LIBS=`echo "$LIBS " | sed -e 's/ / /g' -e 's%-l'"$cf_trim_lib"' %%' -e 's/ $//'`
2999 CF_VERBOSE(..trimmed $LIBS)
3004 dnl ---------------------------------------------------------------------------
3005 dnl CF_TRY_PKG_CONFIG version: 5 updated: 2013/07/06 21:27:06
3006 dnl -----------------
3007 dnl This is a simple wrapper to use for pkg-config, for libraries which may be
3008 dnl available in that form.
3010 dnl $1 = package name
3011 dnl $2 = extra logic to use, if any, after updating CFLAGS and LIBS
3012 dnl $3 = logic to use if pkg-config does not have the package
3013 AC_DEFUN([CF_TRY_PKG_CONFIG],[
3014 AC_REQUIRE([CF_PKG_CONFIG])
3016 if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists $1; then
3017 CF_VERBOSE(found package $1)
3018 cf_pkgconfig_incs="`$PKG_CONFIG --cflags $1 2>/dev/null`"
3019 cf_pkgconfig_libs="`$PKG_CONFIG --libs $1 2>/dev/null`"
3020 CF_VERBOSE(package $1 CFLAGS: $cf_pkgconfig_incs)
3021 CF_VERBOSE(package $1 LIBS: $cf_pkgconfig_libs)
3022 CF_ADD_CFLAGS($cf_pkgconfig_incs)
3023 CF_ADD_LIBS($cf_pkgconfig_libs)
3024 ifelse([$2],,:,[$2])
3028 ifelse([$3],,:,[$3])
3031 dnl ---------------------------------------------------------------------------
3032 dnl CF_TRY_XOPEN_SOURCE version: 1 updated: 2011/10/30 17:09:50
3033 dnl -------------------
3034 dnl If _XOPEN_SOURCE is not defined in the compile environment, check if we
3035 dnl can define it successfully.
3036 AC_DEFUN([CF_TRY_XOPEN_SOURCE],[
3037 AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[
3041 #include <sys/types.h>
3043 #ifndef _XOPEN_SOURCE
3046 [cf_cv_xopen_source=no],
3047 [cf_save="$CPPFLAGS"
3048 CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
3052 #include <sys/types.h>
3054 #ifdef _XOPEN_SOURCE
3057 [cf_cv_xopen_source=no],
3058 [cf_cv_xopen_source=$cf_XOPEN_SOURCE])
3063 if test "$cf_cv_xopen_source" != no ; then
3064 CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE)
3065 CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE)
3066 cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
3067 CF_ADD_CFLAGS($cf_temp_xopen_source)
3070 dnl ---------------------------------------------------------------------------
3071 dnl CF_UPPER version: 5 updated: 2001/01/29 23:40:59
3073 dnl Make an uppercase version of a variable
3074 dnl $1=uppercase($2)
3075 AC_DEFUN([CF_UPPER],
3077 $1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
3079 dnl ---------------------------------------------------------------------------
3080 dnl CF_UTF8_LIB version: 8 updated: 2012/10/06 08:57:51
3082 dnl Check for multibyte support, and if not found, utf8 compatibility library
3083 AC_DEFUN([CF_UTF8_LIB],
3085 AC_CACHE_CHECK(for multibyte character support,cf_cv_utf8_lib,[
3086 cf_save_LIBS="$LIBS"
3088 #include <stdlib.h>],[putwc(0,0);],
3089 [cf_cv_utf8_lib=yes],
3091 #include <libutf8.h>],[putwc(0,0);],utf8,
3092 [cf_cv_utf8_lib=add-on],
3093 [cf_cv_utf8_lib=no])
3096 # HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
3098 if test "$cf_cv_utf8_lib" = "add-on" ; then
3099 AC_DEFINE(HAVE_LIBUTF8_H,1,[Define to 1 if we should include libutf8.h])
3100 CF_ADD_INCDIR($cf_cv_header_path_utf8)
3101 CF_ADD_LIBDIR($cf_cv_library_path_utf8)
3102 CF_ADD_LIBS($cf_cv_library_file_utf8)
3105 dnl ---------------------------------------------------------------------------
3106 dnl CF_VERBOSE version: 3 updated: 2007/07/29 09:55:12
3108 dnl Use AC_VERBOSE w/o the warnings
3109 AC_DEFUN([CF_VERBOSE],
3110 [test -n "$verbose" && echo " $1" 1>&AC_FD_MSG
3113 dnl ---------------------------------------------------------------------------
3114 dnl CF_WCHAR_TYPE version: 4 updated: 2012/10/06 16:39:58
3116 dnl Check if type wide-character type $1 is declared, and if so, which header
3117 dnl file is needed. The second parameter is used to set a shell variable when
3118 dnl the type is not found. The first parameter sets a shell variable for the
3120 AC_DEFUN([CF_WCHAR_TYPE],
3122 # This is needed on Tru64 5.0 to declare $1
3123 AC_CACHE_CHECK(if we must include wchar.h to declare $1,cf_cv_$1,[
3128 #ifdef HAVE_LIBUTF8_H
3129 #include <libutf8.h>
3138 #ifdef HAVE_LIBUTF8_H
3139 #include <libutf8.h>
3143 [cf_cv_$1=unknown])])])
3145 if test "$cf_cv_$1" = yes ; then
3146 AC_DEFINE(NEED_WCHAR_H,1,[Define to 1 if we must include wchar.h])
3151 # if we do not find $1 in either place, use substitution to provide a fallback.
3152 if test "$cf_cv_$1" = unknown ; then
3157 # if we find $1 in either place, use substitution to provide a fallback.
3158 if test "$cf_cv_$1" != unknown ; then
3163 dnl ---------------------------------------------------------------------------
3164 dnl CF_WITH_CURSES_DIR version: 3 updated: 2010/11/20 17:02:38
3165 dnl ------------------
3166 dnl Wrapper for AC_ARG_WITH to specify directory under which to look for curses
3168 AC_DEFUN([CF_WITH_CURSES_DIR],[
3170 AC_MSG_CHECKING(for specific curses-directory)
3171 AC_ARG_WITH(curses-dir,
3172 [ --with-curses-dir=DIR directory in which (n)curses is installed],
3173 [cf_cv_curses_dir=$withval],
3174 [cf_cv_curses_dir=no])
3175 AC_MSG_RESULT($cf_cv_curses_dir)
3177 if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
3179 CF_PATH_SYNTAX(withval)
3180 if test -d "$cf_cv_curses_dir"
3182 CF_ADD_INCDIR($cf_cv_curses_dir/include)
3183 CF_ADD_LIBDIR($cf_cv_curses_dir/lib)
3187 dnl ---------------------------------------------------------------------------
3188 dnl CF_WITH_DBMALLOC version: 7 updated: 2010/06/21 17:26:47
3189 dnl ----------------
3190 dnl Configure-option for dbmalloc. The optional parameter is used to override
3191 dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
3192 AC_DEFUN([CF_WITH_DBMALLOC],[
3193 CF_NO_LEAKS_OPTION(dbmalloc,
3194 [ --with-dbmalloc test: use Conor Cahill's dbmalloc library],
3197 if test "$with_dbmalloc" = yes ; then
3198 AC_CHECK_HEADER(dbmalloc.h,
3199 [AC_CHECK_LIB(dbmalloc,[debug_malloc]ifelse([$1],,[],[,$1]))])
3202 dnl ---------------------------------------------------------------------------
3203 dnl CF_WITH_DMALLOC version: 7 updated: 2010/06/21 17:26:47
3205 dnl Configure-option for dmalloc. The optional parameter is used to override
3206 dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
3207 AC_DEFUN([CF_WITH_DMALLOC],[
3208 CF_NO_LEAKS_OPTION(dmalloc,
3209 [ --with-dmalloc test: use Gray Watson's dmalloc library],
3212 if test "$with_dmalloc" = yes ; then
3213 AC_CHECK_HEADER(dmalloc.h,
3214 [AC_CHECK_LIB(dmalloc,[dmalloc_debug]ifelse([$1],,[],[,$1]))])
3217 dnl ---------------------------------------------------------------------------
3218 dnl CF_WITH_NCURSES_ETC version: 5 updated: 2016/02/20 19:23:20
3219 dnl -------------------
3220 dnl Use this macro for programs which use any variant of "curses", e.g.,
3221 dnl "ncurses", and "PDCurses". Programs that can use curses and some unrelated
3222 dnl library (such as slang) should use a "--with-screen=XXX" option.
3224 dnl This does not use AC_DEFUN, because that would tell autoconf to run each
3225 dnl of the macros inside this one - before this macro.
3226 define([CF_WITH_NCURSES_ETC],[
3231 AC_MSG_CHECKING(for specified curses library type)
3233 [ --with-screen=XXX use specified curses-libraries],
3234 [cf_cv_screen=$withval],[
3236 AC_ARG_WITH(ncursesw,
3237 [ --with-ncursesw use wide ncurses-libraries],
3238 [cf_cv_screen=ncursesw],[
3240 AC_ARG_WITH(ncurses,
3241 [ --with-ncurses use ncurses-libraries],
3242 [cf_cv_screen=ncurses],[
3244 AC_ARG_WITH(pdcurses,
3245 [ --with-pdcurses compile/link with pdcurses X11 library],
3246 [cf_cv_screen=pdcurses],[
3248 AC_ARG_WITH(curses-colr,
3249 [ --with-curses-colr compile/link with HPUX 10.x color-curses],
3250 [cf_cv_screen=curses_colr],[
3252 AC_ARG_WITH(curses-5lib,
3253 [ --with-curses-5lib compile/link with SunOS 5lib curses],
3254 [cf_cv_screen=curses_5lib])])])])])])
3256 AC_MSG_RESULT($cf_cv_screen)
3258 case $cf_cv_screen in
3264 CF_NCURSES_CONFIG($cf_cv_screen)
3267 CF_NCURSES_CONFIG($cf_cv_screen)
3273 AC_MSG_ERROR(unexpected screen-value: $cf_cv_screen)
3277 CF_NCURSES_PTHREADS($cf_cv_screen)
3280 dnl ---------------------------------------------------------------------------
3281 dnl CF_WITH_VALGRIND version: 1 updated: 2006/12/14 18:00:21
3282 dnl ----------------
3283 AC_DEFUN([CF_WITH_VALGRIND],[
3284 CF_NO_LEAKS_OPTION(valgrind,
3285 [ --with-valgrind test: use valgrind],
3288 dnl ---------------------------------------------------------------------------
3289 dnl CF_XOPEN_CURSES version: 13 updated: 2015/12/12 20:59:52
3291 dnl Test if we should define X/Open source for curses, needed on Digital Unix
3292 dnl 4.x, to see the extended functions, but breaks on IRIX 6.x.
3294 dnl The getbegyx() check is needed for HPUX, which omits legacy macros such
3295 dnl as getbegy(). The latter is better design, but the former is standard.
3296 AC_DEFUN([CF_XOPEN_CURSES],
3298 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
3299 AC_CACHE_CHECK(definition to turn on extended curses functions,cf_cv_need_xopen_extension,[
3300 cf_cv_need_xopen_extension=unknown
3303 #include <${cf_cv_ncurses_header:-curses.h}>],[
3304 #if defined(NCURSES_VERSION_PATCH)
3305 #if (NCURSES_VERSION_PATCH < 20100501) && (NCURSES_VERSION_PATCH >= 20100403)
3309 #ifdef NCURSES_VERSION
3311 int check2 = curs_set((int)sizeof(check));
3313 long x = winnstr(stdscr, "", 0);
3315 getbegyx(stdscr, y1, x1)],
3316 [cf_cv_need_xopen_extension=none],
3318 for cf_try_xopen_extension in _XOPEN_SOURCE_EXTENDED NCURSES_WIDECHAR
3321 #define $cf_try_xopen_extension 1
3323 #include <${cf_cv_ncurses_header:-curses.h}>],[
3324 #ifdef NCURSES_VERSION
3326 int check2 = curs_set((int)sizeof(check));
3328 long x = winnstr(stdscr, "", 0);
3330 getbegyx(stdscr, y1, x1)],
3331 [cf_cv_need_xopen_extension=$cf_try_xopen_extension; break])
3336 case $cf_cv_need_xopen_extension in
3338 CPPFLAGS="$CPPFLAGS -D$cf_cv_need_xopen_extension"
3343 dnl ---------------------------------------------------------------------------
3344 dnl CF_XOPEN_SOURCE version: 50 updated: 2015/10/17 19:03:33
3346 dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
3347 dnl or adapt to the vendor's definitions to get equivalent functionality,
3348 dnl without losing the common non-POSIX features.
3351 dnl $1 is the nominal value for _XOPEN_SOURCE
3352 dnl $2 is the nominal value for _POSIX_C_SOURCE
3353 AC_DEFUN([CF_XOPEN_SOURCE],[
3354 AC_REQUIRE([AC_CANONICAL_HOST])
3356 cf_XOPEN_SOURCE=ifelse([$1],,500,[$1])
3357 cf_POSIX_C_SOURCE=ifelse([$2],,199506L,[$2])
3362 cf_xopen_source="-D_ALL_SOURCE"
3368 cf_xopen_source="-D_APPLE_C_SOURCE"
3371 cf_xopen_source="-D_DARWIN_C_SOURCE"
3374 (freebsd*|dragonfly*)
3375 # 5.x headers associate
3376 # _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L
3377 # _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L
3378 cf_POSIX_C_SOURCE=200112L
3380 cf_xopen_source="-D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
3383 cf_xopen_source="-D_HPUX_SOURCE -D_XOPEN_SOURCE=500"
3386 cf_xopen_source="-D_HPUX_SOURCE"
3389 cf_xopen_source="-D_SGI_SOURCE"
3392 (linux*|gnu*|mint*|k*bsd*-gnu)
3396 cf_xopen_source="-D_NETBSD_SOURCE" # POSIX.1-2001 features are ifdef'd with this...
3399 # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <sys/select.h> and other headers which use u_int / u_short types
3401 CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
3404 cf_xopen_source="-D_NETBSD_SOURCE" # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
3407 # setting _XOPEN_SOURCE lower than 500 breaks g++ compile with wchar.h, needed for ncursesw
3408 cf_xopen_source="-D_BSD_SOURCE"
3412 # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
3418 cf_xopen_source="-D_OSF_SOURCE"
3421 cf_xopen_source="-D_QNX_SOURCE"
3424 # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
3427 cf_xopen_source="-D__EXTENSIONS__"
3428 cf_cv_xopen_source=broken
3430 (sysv4.2uw2.*) # Novell/SCO UnixWare 2.x (tested on 2.1.2)
3436 CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
3440 if test -n "$cf_xopen_source" ; then
3441 CF_ADD_CFLAGS($cf_xopen_source,true)
3444 dnl In anything but the default case, we may have system-specific setting
3445 dnl which is still not guaranteed to provide all of the entrypoints that
3446 dnl _XOPEN_SOURCE would yield.
3447 if test -n "$cf_XOPEN_SOURCE" && test -z "$cf_cv_xopen_source" ; then
3448 AC_MSG_CHECKING(if _XOPEN_SOURCE really is set)
3449 AC_TRY_COMPILE([#include <stdlib.h>],[
3450 #ifndef _XOPEN_SOURCE
3453 [cf_XOPEN_SOURCE_set=yes],
3454 [cf_XOPEN_SOURCE_set=no])
3455 AC_MSG_RESULT($cf_XOPEN_SOURCE_set)
3456 if test $cf_XOPEN_SOURCE_set = yes
3458 AC_TRY_COMPILE([#include <stdlib.h>],[
3459 #if (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE
3462 [cf_XOPEN_SOURCE_set_ok=yes],
3463 [cf_XOPEN_SOURCE_set_ok=no])
3464 if test $cf_XOPEN_SOURCE_set_ok = no
3466 AC_MSG_WARN(_XOPEN_SOURCE is lower than requested)
3473 dnl ---------------------------------------------------------------------------
3474 dnl CF_X_ATHENA version: 23 updated: 2015/04/12 15:39:00
3476 dnl Check for Xaw (Athena) libraries
3478 dnl Sets $cf_x_athena according to the flavor of Xaw which is used.
3479 AC_DEFUN([CF_X_ATHENA],
3481 cf_x_athena=${cf_x_athena:-Xaw}
3483 AC_MSG_CHECKING(if you want to link with Xaw 3d library)
3486 [ --with-Xaw3d link with Xaw 3d library])
3487 if test "$withval" = yes ; then
3494 AC_MSG_CHECKING(if you want to link with Xaw 3d xft library)
3496 AC_ARG_WITH(Xaw3dxft,
3497 [ --with-Xaw3dxft link with Xaw 3d xft library])
3498 if test "$withval" = yes ; then
3499 cf_x_athena=Xaw3dxft
3505 AC_MSG_CHECKING(if you want to link with neXT Athena library)
3508 [ --with-neXtaw link with neXT Athena library])
3509 if test "$withval" = yes ; then
3516 AC_MSG_CHECKING(if you want to link with Athena-Plus library)
3518 AC_ARG_WITH(XawPlus,
3519 [ --with-XawPlus link with Athena-Plus library])
3520 if test "$withval" = yes ; then
3529 if test "$PKG_CONFIG" != none ; then
3531 test "$cf_x_athena" = Xaw && cf_athena_list="xaw8 xaw7 xaw6"
3532 for cf_athena_pkg in \
3535 ${cf_x_athena}-devel \
3537 lib${cf_x_athena}-devel
3539 CF_TRY_PKG_CONFIG($cf_athena_pkg,[
3540 cf_x_athena_lib="$cf_pkgconfig_libs"
3541 CF_UPPER(cf_x_athena_LIBS,HAVE_LIB_$cf_x_athena)
3542 AC_DEFINE_UNQUOTED($cf_x_athena_LIBS)
3546 AC_CACHE_CHECK(for usable $cf_x_athena/Xmu package,cf_cv_xaw_compat,[
3548 #include <X11/Xmu/CharSet.h>
3550 int check = XmuCompareISOLatin1("big", "small")
3551 ],[cf_cv_xaw_compat=yes],[cf_cv_xaw_compat=no])])
3553 if test "$cf_cv_xaw_compat" = no
3555 # workaround for broken ".pc" files...
3556 case "$cf_x_athena_lib" in
3560 CF_VERBOSE(work around broken package)
3562 cf_first_lib=`echo "$cf_save_xmu" | sed -e 's/^[ ][ ]*//' -e 's/ .*//'`
3563 CF_TRY_PKG_CONFIG(xmu,[
3565 CF_ADD_LIB_AFTER($cf_first_lib,$cf_pkgconfig_libs)
3567 CF_ADD_LIB_AFTER($cf_first_lib,-lXmu)
3578 if test -z "$cf_x_athena_lib" ; then
3581 CF_X_ATHENA_CPPFLAGS($cf_x_athena)
3582 CF_X_ATHENA_LIBS($cf_x_athena)
3585 dnl ---------------------------------------------------------------------------
3586 dnl CF_X_ATHENA_CPPFLAGS version: 5 updated: 2010/05/26 17:35:30
3587 dnl --------------------
3588 dnl Normally invoked by CF_X_ATHENA, with $1 set to the appropriate flavor of
3589 dnl the Athena widgets, e.g., Xaw, Xaw3d, neXtaw.
3590 AC_DEFUN([CF_X_ATHENA_CPPFLAGS],
3592 cf_x_athena_root=ifelse([$1],,Xaw,[$1])
3595 for cf_path in default \
3596 /usr/contrib/X11R6 \
3597 /usr/contrib/X11R5 \
3601 if test -z "$cf_x_athena_inc" ; then
3603 cf_test=X11/$cf_x_athena_root/SimpleMenu.h
3604 if test $cf_path != default ; then
3605 CPPFLAGS="$cf_save -I$cf_path/include"
3606 AC_MSG_CHECKING(for $cf_test in $cf_path)
3608 AC_MSG_CHECKING(for $cf_test)
3611 #include <X11/Intrinsic.h>
3612 #include <$cf_test>],[],
3615 AC_MSG_RESULT($cf_result)
3616 if test "$cf_result" = yes ; then
3617 cf_x_athena_inc=$cf_path
3625 if test -z "$cf_x_athena_inc" ; then
3627 [Unable to successfully find Athena header files with test program])
3628 elif test "$cf_x_athena_inc" != default ; then
3629 CPPFLAGS="$CPPFLAGS -I$cf_x_athena_inc"
3632 dnl ---------------------------------------------------------------------------
3633 dnl CF_X_ATHENA_LIBS version: 12 updated: 2011/07/17 19:55:02
3634 dnl ----------------
3635 dnl Normally invoked by CF_X_ATHENA, with $1 set to the appropriate flavor of
3636 dnl the Athena widgets, e.g., Xaw, Xaw3d, neXtaw.
3637 AC_DEFUN([CF_X_ATHENA_LIBS],
3638 [AC_REQUIRE([CF_X_TOOLKIT])
3639 cf_x_athena_root=ifelse([$1],,Xaw,[$1])
3642 for cf_path in default \
3643 /usr/contrib/X11R6 \
3644 /usr/contrib/X11R5 \
3649 ${cf_x_athena_root} \
3650 ${cf_x_athena_root}7 \
3651 ${cf_x_athena_root}6
3655 "-l$cf_lib -lXpm -lXmu" \
3656 "-l${cf_lib}_s -lXmu_s"
3658 if test -z "$cf_x_athena_lib" ; then
3660 cf_test=XawSimpleMenuAddGlobalActions
3661 if test $cf_path != default ; then
3662 CF_ADD_LIBS(-L$cf_path/lib $cf_libs)
3663 AC_MSG_CHECKING(for $cf_libs in $cf_path)
3665 CF_ADD_LIBS($cf_libs)
3666 AC_MSG_CHECKING(for $cf_test in $cf_libs)
3669 #include <X11/Intrinsic.h>
3670 #include <X11/$cf_x_athena_root/SimpleMenu.h>
3672 $cf_test((XtAppContext) 0)],
3675 AC_MSG_RESULT($cf_result)
3676 if test "$cf_result" = yes ; then
3677 cf_x_athena_lib="$cf_libs"
3683 test -n "$cf_x_athena_lib" && break
3687 if test -z "$cf_x_athena_lib" ; then
3689 [Unable to successfully link Athena library (-l$cf_x_athena_root) with test program])
3692 CF_UPPER(cf_x_athena_LIBS,HAVE_LIB_$cf_x_athena)
3693 AC_DEFINE_UNQUOTED($cf_x_athena_LIBS)
3695 dnl ---------------------------------------------------------------------------
3696 dnl CF_X_EXT version: 3 updated: 2010/06/02 05:03:05
3698 AC_DEFUN([CF_X_EXT],[
3699 CF_TRY_PKG_CONFIG(Xext,,[
3700 AC_CHECK_LIB(Xext,XextCreateExtension,
3701 [CF_ADD_LIB(Xext)])])
3703 dnl ---------------------------------------------------------------------------
3704 dnl CF_X_TOOLKIT version: 23 updated: 2015/04/12 15:39:00
3706 dnl Check for X Toolkit libraries
3707 AC_DEFUN([CF_X_TOOLKIT],
3709 AC_REQUIRE([AC_PATH_XTRA])
3710 AC_REQUIRE([CF_CHECK_CACHE])
3712 # OSX is schizoid about who owns /usr/X11 (old) versus /opt/X11 (new), and (and
3713 # in some cases has installed dummy files in the former, other cases replaced
3714 # it with a link to the new location). This complicates the configure script.
3715 # Check for that pitfall, and recover using pkg-config
3717 # If none of these are set, the configuration is almost certainly broken.
3718 if test -z "${X_CFLAGS}${X_PRE_LIBS}${X_LIBS}${X_EXTRA_LIBS}"
3720 CF_TRY_PKG_CONFIG(x11,,[AC_MSG_WARN(unable to find X11 library)])
3721 CF_TRY_PKG_CONFIG(ice,,[AC_MSG_WARN(unable to find ICE library)])
3722 CF_TRY_PKG_CONFIG(sm,,[AC_MSG_WARN(unable to find SM library)])
3723 CF_TRY_PKG_CONFIG(xt,,[AC_MSG_WARN(unable to find Xt library)])
3728 CF_TRY_PKG_CONFIG(xt,[
3734 # we have an "xt" package, but it may omit Xt's dependency on X11
3735 AC_CACHE_CHECK(for usable X dependency,cf_cv_xt_x11_compat,[
3737 #include <X11/Xlib.h>
3739 int rc1 = XDrawLine((Display*) 0, (Drawable) 0, (GC) 0, 0, 0, 0, 0);
3740 int rc2 = XClearWindow((Display*) 0, (Window) 0);
3741 int rc3 = XMoveWindow((Display*) 0, (Window) 0, 0, 0);
3742 int rc4 = XMoveResizeWindow((Display*)0, (Window)0, 0, 0, 0, 0);
3743 ],[cf_cv_xt_x11_compat=yes],[cf_cv_xt_x11_compat=no])])
3744 if test "$cf_cv_xt_x11_compat" = no
3746 CF_VERBOSE(work around broken X11 dependency)
3747 # 2010/11/19 - good enough until a working Xt on Xcb is delivered.
3748 CF_TRY_PKG_CONFIG(x11,,[CF_ADD_LIB_AFTER(-lXt,-lX11)])
3753 AC_CACHE_CHECK(for usable X Toolkit package,cf_cv_xt_ice_compat,[
3755 #include <X11/Shell.h>
3756 ],[int num = IceConnectionNumber(0)
3757 ],[cf_cv_xt_ice_compat=yes],[cf_cv_xt_ice_compat=no])])
3759 if test "$cf_cv_xt_ice_compat" = no
3761 # workaround for broken ".pc" files used for X Toolkit.
3762 case "x$X_PRE_LIBS" in
3768 CF_VERBOSE(work around broken ICE dependency)
3769 CF_TRY_PKG_CONFIG(ice,
3770 [CF_TRY_PKG_CONFIG(sm)],
3771 [CF_ADD_LIB_AFTER(-lXt,$X_PRE_LIBS)])
3781 LDFLAGS="$X_LIBS $LDFLAGS"
3782 CF_CHECK_CFLAGS($X_CFLAGS)
3784 AC_CHECK_FUNC(XOpenDisplay,,[
3785 AC_CHECK_LIB(X11,XOpenDisplay,
3787 [$X_PRE_LIBS $LIBS $X_EXTRA_LIBS])])
3789 AC_CHECK_FUNC(XtAppInitialize,,[
3790 AC_CHECK_LIB(Xt, XtAppInitialize,
3791 [AC_DEFINE(HAVE_LIBXT,1,[Define to 1 if we can compile with the Xt library])
3793 LIBS="-lXt $X_PRE_LIBS $LIBS $X_EXTRA_LIBS"],,
3794 [$X_PRE_LIBS $LIBS $X_EXTRA_LIBS])])
3797 if test $cf_have_X_LIBS = no ; then
3799 [Unable to successfully link X Toolkit library (-lXt) with
3800 test program. You will have to check and add the proper libraries by hand
3804 dnl ---------------------------------------------------------------------------
3805 dnl CF__CURSES_HEAD version: 2 updated: 2010/10/23 15:54:49
3807 dnl Define a reusable chunk which includes <curses.h> and <term.h> when they
3808 dnl are both available.
3809 define([CF__CURSES_HEAD],[
3811 #include <xcurses.h>
3812 char * XCursesProgramName = "test";
3814 #include <${cf_cv_ncurses_header:-curses.h}>
3815 #if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H)
3816 #include <ncursesw/term.h>
3817 #elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H)
3818 #include <ncurses/term.h>
3819 #elif defined(HAVE_TERM_H)