1 dnl***************************************************************************
2 dnl Copyright (c) 2003-2014,2015 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.122 2015/10/17 23:06:10 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: 6 updated: 2015/04/12 15:39:00
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)
1747 LD_RPATH_OPT="-Wl,-rpath,"
1749 (openbsd[[2-9]].*|mirbsd*)
1750 LD_RPATH_OPT="-Wl,-rpath,"
1752 (dragonfly*|freebsd*)
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_VERSION version: 14 updated: 2012/10/06 08:57:51
2257 dnl ------------------
2258 dnl Check for the version of ncurses, to aid in reporting bugs, etc.
2259 dnl Call CF_CURSES_CPPFLAGS first, or CF_NCURSES_CPPFLAGS. We don't use
2260 dnl AC_REQUIRE since that does not work with the shell's if/then/else/fi.
2261 AC_DEFUN([CF_NCURSES_VERSION],
2263 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
2264 AC_CACHE_CHECK(for ncurses version, cf_cv_ncurses_version,[
2265 cf_cv_ncurses_version=no
2269 #include <${cf_cv_ncurses_header:-curses.h}>
2273 FILE *fp = fopen("$cf_tempfile", "w");
2274 #ifdef NCURSES_VERSION
2275 # ifdef NCURSES_VERSION_PATCH
2276 fprintf(fp, "%s.%d\n", NCURSES_VERSION, NCURSES_VERSION_PATCH);
2278 fprintf(fp, "%s\n", NCURSES_VERSION);
2282 fprintf(fp, "old\n");
2287 ${cf_cv_main_return:-return}(0);
2289 cf_cv_ncurses_version=`cat $cf_tempfile`],,[
2291 # This will not work if the preprocessor splits the line after the
2292 # Autoconf token. The 'unproto' program does that.
2293 cat > conftest.$ac_ext <<EOF
2294 #include <${cf_cv_ncurses_header:-curses.h}>
2296 #ifdef NCURSES_VERSION
2297 Autoconf NCURSES_VERSION
2305 cf_try="$ac_cpp conftest.$ac_ext 2>&AC_FD_CC | grep '^Autoconf ' >conftest.out"
2307 if test -f conftest.out ; then
2308 cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[[^"]]*"%%' -e 's%".*%%'`
2309 test -n "$cf_out" && cf_cv_ncurses_version="$cf_out"
2315 test "$cf_cv_ncurses_version" = no || AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
2317 dnl ---------------------------------------------------------------------------
2318 dnl CF_NCURSES_WRAP_PREFIX version: 1 updated: 2009/03/28 16:08:10
2319 dnl ----------------------
2320 dnl Check for ncurses "wrap-prefix" used for public variables which have been
2321 dnl wrapped with a function to help with concurrency control.
2322 AC_DEFUN([CF_NCURSES_WRAP_PREFIX],
2324 AC_MSG_CHECKING(for ncurses wrap-prefix)
2325 AC_ARG_WITH(ncurses-wrap-prefix,
2326 [ --with-ncurses-wrap-prefix naming-prefix for ncurses wrapped-variables],
2327 [NCURSES_WRAP_PREFIX=$withval],
2328 [NCURSES_WRAP_PREFIX=_nc_])
2329 AC_MSG_RESULT($NCURSES_WRAP_PREFIX)
2331 AC_SUBST(NCURSES_WRAP_PREFIX)
2333 dnl ---------------------------------------------------------------------------
2334 dnl CF_NETBSD_FORM_H version: 2 updated: 2012/10/06 16:39:58
2335 dnl ----------------
2336 dnl Check for NetBSD's form.h, which is incompatible with SVr4 and ncurses.
2337 dnl Some workarounds are needed in client programs to allow them to compile.
2338 AC_DEFUN([CF_NETBSD_FORM_H],[
2339 AC_CACHE_CHECK(for NetBSD form.h,cf_cv_netbsd_form_h,[
2341 #include <${cf_cv_ncurses_header:-curses.h}>
2345 int y = current_field(form)->cursor_ypos;
2346 int x = current_field(form)->cursor_xpos;
2347 ],[cf_cv_netbsd_form_h=yes
2348 ],[cf_cv_netbsd_form_h=no])
2351 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])
2353 dnl ---------------------------------------------------------------------------
2354 dnl CF_NETBSD_MENU_H version: 2 updated: 2012/10/06 16:39:58
2355 dnl ----------------
2356 dnl Check for NetBSD's menu.h, which is incompatible with SVr4 and ncurses.
2357 dnl Some workarounds are needed in client programs to allow them to compile.
2358 AC_DEFUN([CF_NETBSD_MENU_H],[
2359 AC_CACHE_CHECK(for NetBSD menu.h,cf_cv_netbsd_menu_h,[
2361 #include <${cf_cv_ncurses_header:-curses.h}>
2365 int y = menu->max_item_width;
2366 ],[cf_cv_netbsd_menu_h=yes
2367 ],[cf_cv_netbsd_menu_h=no])
2370 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])
2372 dnl ---------------------------------------------------------------------------
2373 dnl CF_NO_LEAKS_OPTION version: 6 updated: 2015/04/12 15:39:00
2374 dnl ------------------
2375 dnl see CF_WITH_NO_LEAKS
2376 AC_DEFUN([CF_NO_LEAKS_OPTION],[
2377 AC_MSG_CHECKING(if you want to use $1 for testing)
2380 [AC_DEFINE_UNQUOTED($3,1,"Define to 1 if you want to use $1 for testing.")ifelse([$4],,[
2383 : ${with_cflags:=-g}
2384 : ${with_no_leaks:=yes}
2387 AC_MSG_RESULT(${with_$1:-no})
2389 case .$with_cflags in
2401 dnl ---------------------------------------------------------------------------
2402 dnl CF_PATH_SYNTAX version: 16 updated: 2015/04/18 08:56:57
2404 dnl Check the argument to see that it looks like a pathname. Rewrite it if it
2405 dnl begins with one of the prefix/exec_prefix variables, and then again if the
2406 dnl result begins with 'NONE'. This is necessary to work around autoconf's
2407 dnl delayed evaluation of those symbols.
2408 AC_DEFUN([CF_PATH_SYNTAX],[
2409 if test "x$prefix" != xNONE; then
2410 cf_path_syntax="$prefix"
2412 cf_path_syntax="$ac_default_prefix"
2416 (.\[$]\(*\)*|.\'*\'*)
2420 (.[[a-zA-Z]]:[[\\/]]*) # OS/2 EMX
2422 (.\[$]{*prefix}*|.\[$]{*dir}*)
2426 $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
2431 $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
2434 ifelse([$2],,[AC_MSG_ERROR([expected a pathname, not \"[$]$1\"])],$2)
2438 dnl ---------------------------------------------------------------------------
2439 dnl CF_PDCURSES_X11 version: 13 updated: 2012/10/06 16:39:58
2441 dnl Configure for PDCurses' X11 library
2442 AC_DEFUN([CF_PDCURSES_X11],[
2443 AC_REQUIRE([CF_X_ATHENA])
2445 CF_ACVERSION_CHECK(2.52,
2446 [AC_CHECK_TOOLS(XCURSES_CONFIG, xcurses-config, none)],
2447 [AC_PATH_PROGS(XCURSES_CONFIG, xcurses-config, none)])
2449 if test "$XCURSES_CONFIG" != none ; then
2451 CPPFLAGS="$CPPFLAGS `$XCURSES_CONFIG --cflags`"
2452 CF_ADD_LIBS(`$XCURSES_CONFIG --libs`)
2454 cf_cv_lib_XCurses=yes
2458 LDFLAGS="$LDFLAGS $X_LIBS"
2459 CF_CHECK_CFLAGS($X_CFLAGS)
2460 AC_CHECK_LIB(X11,XOpenDisplay,
2461 [CF_ADD_LIBS(-lX11)],,
2462 [$X_PRE_LIBS $LIBS $X_EXTRA_LIBS])
2463 AC_CACHE_CHECK(for XCurses library,cf_cv_lib_XCurses,[
2464 CF_ADD_LIBS(-lXCurses)
2466 #include <xcurses.h>
2467 char *XCursesProgramName = "test";
2469 [cf_cv_lib_XCurses=yes],
2470 [cf_cv_lib_XCurses=no])
2475 if test $cf_cv_lib_XCurses = yes ; then
2476 AC_DEFINE(UNIX,1,[Define to 1 if using PDCurses on Unix])
2477 AC_DEFINE(XCURSES,1,[Define to 1 if using PDCurses on Unix])
2478 AC_CHECK_HEADER(xcurses.h, AC_DEFINE(HAVE_XCURSES,1,[Define to 1 if using PDCurses on Unix]))
2480 AC_MSG_ERROR(Cannot link with XCurses)
2483 dnl ---------------------------------------------------------------------------
2484 dnl CF_PKG_CONFIG version: 10 updated: 2015/04/26 18:06:58
2486 dnl Check for the package-config program, unless disabled by command-line.
2487 AC_DEFUN([CF_PKG_CONFIG],
2489 AC_MSG_CHECKING(if you want to use pkg-config)
2490 AC_ARG_WITH(pkg-config,
2491 [ --with-pkg-config{=path} enable/disable use of pkg-config],
2492 [cf_pkg_config=$withval],
2493 [cf_pkg_config=yes])
2494 AC_MSG_RESULT($cf_pkg_config)
2496 case $cf_pkg_config in
2501 CF_ACVERSION_CHECK(2.52,
2502 [AC_PATH_TOOL(PKG_CONFIG, pkg-config, none)],
2503 [AC_PATH_PROG(PKG_CONFIG, pkg-config, none)])
2510 test -z "$PKG_CONFIG" && PKG_CONFIG=none
2511 if test "$PKG_CONFIG" != none ; then
2512 CF_PATH_SYNTAX(PKG_CONFIG)
2513 elif test "x$cf_pkg_config" != xno ; then
2514 AC_MSG_WARN(pkg-config is not installed)
2517 AC_SUBST(PKG_CONFIG)
2519 dnl ---------------------------------------------------------------------------
2520 dnl CF_POSIX_C_SOURCE version: 9 updated: 2015/04/12 15:39:00
2521 dnl -----------------
2522 dnl Define _POSIX_C_SOURCE to the given level, and _POSIX_SOURCE if needed.
2524 dnl POSIX.1-1990 _POSIX_SOURCE
2525 dnl POSIX.1-1990 and _POSIX_SOURCE and
2526 dnl POSIX.2-1992 C-Language _POSIX_C_SOURCE=2
2528 dnl POSIX.1b-1993 _POSIX_C_SOURCE=199309L
2529 dnl POSIX.1c-1996 _POSIX_C_SOURCE=199506L
2530 dnl X/Open 2000 _POSIX_C_SOURCE=200112L
2533 dnl $1 is the nominal value for _POSIX_C_SOURCE
2534 AC_DEFUN([CF_POSIX_C_SOURCE],
2536 cf_POSIX_C_SOURCE=ifelse([$1],,199506L,[$1])
2538 cf_save_CFLAGS="$CFLAGS"
2539 cf_save_CPPFLAGS="$CPPFLAGS"
2541 CF_REMOVE_DEFINE(cf_trim_CFLAGS,$cf_save_CFLAGS,_POSIX_C_SOURCE)
2542 CF_REMOVE_DEFINE(cf_trim_CPPFLAGS,$cf_save_CPPFLAGS,_POSIX_C_SOURCE)
2544 AC_CACHE_CHECK(if we should define _POSIX_C_SOURCE,cf_cv_posix_c_source,[
2545 CF_MSG_LOG(if the symbol is already defined go no further)
2546 AC_TRY_COMPILE([#include <sys/types.h>],[
2547 #ifndef _POSIX_C_SOURCE
2550 [cf_cv_posix_c_source=no],
2551 [cf_want_posix_source=no
2552 case .$cf_POSIX_C_SOURCE in
2554 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
2557 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
2558 cf_want_posix_source=yes
2561 cf_want_posix_source=yes
2564 if test "$cf_want_posix_source" = yes ; then
2565 AC_TRY_COMPILE([#include <sys/types.h>],[
2566 #ifdef _POSIX_SOURCE
2569 cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE")
2571 CF_MSG_LOG(ifdef from value $cf_POSIX_C_SOURCE)
2572 CFLAGS="$cf_trim_CFLAGS"
2573 CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source"
2574 CF_MSG_LOG(if the second compile does not leave our definition intact error)
2575 AC_TRY_COMPILE([#include <sys/types.h>],[
2576 #ifndef _POSIX_C_SOURCE
2579 [cf_cv_posix_c_source=no])
2580 CFLAGS="$cf_save_CFLAGS"
2581 CPPFLAGS="$cf_save_CPPFLAGS"
2585 if test "$cf_cv_posix_c_source" != no ; then
2586 CFLAGS="$cf_trim_CFLAGS"
2587 CPPFLAGS="$cf_trim_CPPFLAGS"
2588 CF_ADD_CFLAGS($cf_cv_posix_c_source)
2592 dnl ---------------------------------------------------------------------------
2593 dnl CF_PRG_RULES version: 1 updated: 2006/06/03 11:45:08
2595 dnl Append definitions and rules for the given programs to the subdirectory
2596 dnl Makefiles, and the recursion rule for the top-level Makefile.
2599 dnl $1 = script to run
2600 dnl $2 = list of subdirectories
2604 AC_DEFUN([CF_PRG_RULES],
2608 if test ! -d $srcdir/$cf_dir; then
2610 elif test -f $srcdir/$cf_dir/programs; then
2611 $AWK -f $1 $srcdir/$cf_dir/programs >>$cf_dir/Makefile
2616 dnl ---------------------------------------------------------------------------
2617 dnl CF_PROG_CC version: 4 updated: 2014/07/12 18:57:58
2619 dnl standard check for CC, plus followup sanity checks
2620 dnl $1 = optional parameter to pass to AC_PROG_CC to specify compiler name
2621 AC_DEFUN([CF_PROG_CC],[
2622 ifelse($1,,[AC_PROG_CC],[AC_PROG_CC($1)])
2624 CF_ACVERSION_CHECK(2.52,
2629 dnl ---------------------------------------------------------------------------
2630 dnl CF_PROG_INSTALL version: 7 updated: 2015/04/18 08:56:57
2632 dnl Force $INSTALL to be an absolute-path. Otherwise, edit_man.sh and the
2633 dnl misc/tabset install won't work properly. Usually this happens only when
2634 dnl using the fallback mkinstalldirs script
2635 AC_DEFUN([CF_PROG_INSTALL],
2641 CF_DIRNAME(cf_dir,$INSTALL)
2642 test -z "$cf_dir" && cf_dir=.
2643 INSTALL=`cd $cf_dir && pwd`/`echo $INSTALL | sed -e 's%^.*/%%'`
2647 dnl ---------------------------------------------------------------------------
2648 dnl CF_PROG_LINT version: 2 updated: 2009/08/12 04:43:14
2650 AC_DEFUN([CF_PROG_LINT],
2652 AC_CHECK_PROGS(LINT, tdlint lint alint splint lclint)
2655 dnl ---------------------------------------------------------------------------
2656 dnl CF_REMOVE_DEFINE version: 3 updated: 2010/01/09 11:05:50
2657 dnl ----------------
2658 dnl Remove all -U and -D options that refer to the given symbol from a list
2659 dnl of C compiler options. This works around the problem that not all
2660 dnl compilers process -U and -D options from left-to-right, so a -U option
2661 dnl cannot be used to cancel the effect of a preceding -D option.
2663 dnl $1 = target (which could be the same as the source variable)
2664 dnl $2 = source (including '$')
2665 dnl $3 = symbol to remove
2666 define([CF_REMOVE_DEFINE],
2669 sed -e 's/-[[UD]]'"$3"'\(=[[^ ]]*\)\?[[ ]]/ /g' \
2670 -e 's/-[[UD]]'"$3"'\(=[[^ ]]*\)\?[$]//g'`
2672 dnl ---------------------------------------------------------------------------
2673 dnl CF_RPATH_HACK version: 11 updated: 2013/09/01 13:02:00
2675 AC_DEFUN([CF_RPATH_HACK],
2677 AC_REQUIRE([CF_LD_RPATH_OPT])
2678 AC_MSG_CHECKING(for updated LDFLAGS)
2679 if test -n "$LD_RPATH_OPT" ; then
2680 AC_MSG_RESULT(maybe)
2682 AC_CHECK_PROGS(cf_ldd_prog,ldd,no)
2683 cf_rpath_list="/usr/lib /lib"
2684 if test "$cf_ldd_prog" != no
2688 AC_TRY_LINK([#include <stdio.h>],
2690 [cf_rpath_oops=`$cf_ldd_prog conftest$ac_exeext | fgrep ' not found' | sed -e 's% =>.*$%%' |sort | uniq`
2691 cf_rpath_list=`$cf_ldd_prog conftest$ac_exeext | fgrep / | sed -e 's%^.*[[ ]]/%/%' -e 's%/[[^/]][[^/]]*$%%' |sort | uniq`])
2693 # If we passed the link-test, but get a "not found" on a given library,
2694 # this could be due to inept reconfiguration of gcc to make it only
2695 # partly honor /usr/local/lib (or whatever). Sometimes this behavior
2696 # is intentional, e.g., installing gcc in /usr/bin and suppressing the
2697 # /usr/local libraries.
2698 if test -n "$cf_rpath_oops"
2700 for cf_rpath_src in $cf_rpath_oops
2702 for cf_rpath_dir in \
2707 if test -f $cf_rpath_dir/lib/$cf_rpath_src
2709 CF_VERBOSE(...adding -L$cf_rpath_dir/lib to LDFLAGS for $cf_rpath_src)
2710 LDFLAGS="$LDFLAGS -L$cf_rpath_dir/lib"
2718 CF_VERBOSE(...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS)
2720 CF_RPATH_HACK_2(LDFLAGS)
2721 CF_RPATH_HACK_2(LIBS)
2723 CF_VERBOSE(...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS)
2727 AC_SUBST(EXTRA_LDFLAGS)
2729 dnl ---------------------------------------------------------------------------
2730 dnl CF_RPATH_HACK_2 version: 7 updated: 2015/04/12 15:39:00
2732 dnl Do one set of substitutions for CF_RPATH_HACK, adding an rpath option to
2733 dnl EXTRA_LDFLAGS for each -L option found.
2735 dnl $cf_rpath_list contains a list of directories to ignore.
2737 dnl $1 = variable name to update. The LDFLAGS variable should be the only one,
2738 dnl but LIBS often has misplaced -L options.
2739 AC_DEFUN([CF_RPATH_HACK_2],
2741 CF_VERBOSE(...checking $1 [$]$1)
2744 for cf_rpath_src in [$]$1
2746 case $cf_rpath_src in
2749 # check if this refers to a directory which we will ignore
2751 if test -n "$cf_rpath_list"
2753 for cf_rpath_item in $cf_rpath_list
2755 if test "x$cf_rpath_src" = "x-L$cf_rpath_item"
2763 if test "$cf_rpath_skip" = no
2765 # transform the option
2766 if test "$LD_RPATH_OPT" = "-R " ; then
2767 cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%-R %"`
2769 cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%$LD_RPATH_OPT%"`
2772 # if we have not already added this, add it now
2773 cf_rpath_tst=`echo "$EXTRA_LDFLAGS" | sed -e "s%$cf_rpath_tmp %%"`
2774 if test "x$cf_rpath_tst" = "x$EXTRA_LDFLAGS"
2776 CF_VERBOSE(...Filter $cf_rpath_src ->$cf_rpath_tmp)
2777 EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS"
2782 cf_rpath_dst="$cf_rpath_dst $cf_rpath_src"
2786 CF_VERBOSE(...checked $1 [$]$1)
2787 AC_SUBST(EXTRA_LDFLAGS)
2789 dnl ---------------------------------------------------------------------------
2790 dnl CF_SIG_ATOMIC_T version: 3 updated: 2012/10/04 20:12:20
2792 dnl signal handler, but there are some gcc depedencies in that recommendation.
2794 AC_DEFUN([CF_SIG_ATOMIC_T],
2796 AC_MSG_CHECKING(for signal global datatype)
2797 AC_CACHE_VAL(cf_cv_sig_atomic_t,[
2799 "volatile sig_atomic_t" \
2804 #include <sys/types.h>
2810 static void handler(int sig)
2814 [signal(SIGINT, handler);
2816 [cf_cv_sig_atomic_t=$cf_type],
2817 [cf_cv_sig_atomic_t=no])
2818 test "$cf_cv_sig_atomic_t" != no && break
2821 AC_MSG_RESULT($cf_cv_sig_atomic_t)
2822 test "$cf_cv_sig_atomic_t" != no && AC_DEFINE_UNQUOTED(SIG_ATOMIC_T, $cf_cv_sig_atomic_t,[Define to signal global datatype])
2824 dnl ---------------------------------------------------------------------------
2825 dnl CF_SUBDIR_PATH version: 7 updated: 2014/12/04 04:33:06
2827 dnl Construct a search-list for a nonstandard header/lib-file
2828 dnl $1 = the variable to return as result
2829 dnl $2 = the package name
2830 dnl $3 = the subdirectory, e.g., bin, include or lib
2831 AC_DEFUN([CF_SUBDIR_PATH],
2835 CF_ADD_SUBDIR_PATH($1,$2,$3,$prefix,NONE)
2837 for cf_subdir_prefix in \
2845 CF_ADD_SUBDIR_PATH($1,$2,$3,$cf_subdir_prefix,$prefix)
2848 dnl ---------------------------------------------------------------------------
2849 dnl CF_SYS_TIME_SELECT version: 6 updated: 2015/04/18 08:56:57
2850 dnl ------------------
2851 dnl Check if we can include <sys/time.h> with <sys/select.h>; this breaks on
2852 dnl older SCO configurations.
2853 AC_DEFUN([CF_SYS_TIME_SELECT],
2855 AC_MSG_CHECKING(if sys/time.h works with sys/select.h)
2856 AC_CACHE_VAL(cf_cv_sys_time_select,[
2858 #include <sys/types.h>
2859 #ifdef HAVE_SYS_TIME_H
2860 #include <sys/time.h>
2862 #ifdef HAVE_SYS_SELECT_H
2863 #include <sys/select.h>
2865 ],[],[cf_cv_sys_time_select=yes],
2866 [cf_cv_sys_time_select=no])
2868 AC_MSG_RESULT($cf_cv_sys_time_select)
2869 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>])
2871 dnl ---------------------------------------------------------------------------
2872 dnl CF_TERM_HEADER version: 4 updated: 2015/04/15 19:08:48
2874 dnl Look for term.h, which is part of X/Open curses. It defines the interface
2875 dnl to terminfo database. Usually it is in the same include-path as curses.h,
2876 dnl but some packagers change this, breaking various applications.
2877 AC_DEFUN([CF_TERM_HEADER],[
2878 AC_CACHE_CHECK(for terminfo header, cf_cv_term_header,[
2879 case ${cf_cv_ncurses_header} in
2880 (*/ncurses.h|*/ncursesw.h)
2881 cf_term_header=`echo "$cf_cv_ncurses_header" | sed -e 's%ncurses[[^.]]*\.h$%term.h%'`
2884 cf_term_header=term.h
2888 for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
2890 AC_TRY_COMPILE([#include <stdio.h>
2891 #include <${cf_cv_ncurses_header:-curses.h}>
2893 ],[int x = auto_left_margin],[
2894 cf_cv_term_header="$cf_test"],[
2895 cf_cv_term_header=unknown
2897 test "$cf_cv_term_header" != unknown && break
2901 # Set definitions to allow ifdef'ing to accommodate subdirectories
2903 case $cf_cv_term_header in
2905 AC_DEFINE(HAVE_TERM_H,1,[Define to 1 if we have term.h])
2909 case $cf_cv_term_header in
2911 AC_DEFINE(HAVE_NCURSES_TERM_H,1,[Define to 1 if we have ncurses/term.h])
2914 AC_DEFINE(HAVE_NCURSESW_TERM_H,1,[Define to 1 if we have ncursesw/term.h])
2918 dnl ---------------------------------------------------------------------------
2919 dnl CF_TOP_BUILDDIR version: 2 updated: 2013/07/27 17:38:32
2921 dnl Define a top_builddir symbol, for applications that need an absolute path.
2922 AC_DEFUN([CF_TOP_BUILDDIR],
2924 top_builddir=ifelse($1,,`pwd`,$1)
2925 AC_SUBST(top_builddir)
2927 dnl ---------------------------------------------------------------------------
2928 dnl CF_TPUTS_PROTO version: 3 updated: 2015/04/17 21:26:14
2930 dnl Check for type of function-pointer passed to tputs. Some old
2931 dnl implementations used functions that had different prototypes, making it
2932 dnl hard to compile portable programs using tputs.
2933 AC_DEFUN([CF_TPUTS_PROTO],[
2934 CF_CURSES_FUNCS(tputs)
2935 if test x$cf_cv_func_tputs = xyes
2938 for cf_arg in int char
2940 for cf_ret in int void
2942 if test $cf_ret = void
2944 cf_return="/* nothing */"
2946 cf_return="return value"
2949 #include <${cf_cv_ncurses_header:-curses.h}>
2950 #include <$cf_cv_term_header>
2952 static $cf_ret outc($cf_arg value) { $cf_return; }
2954 tputs("hello", 0, outc);
2955 ${cf_cv_main_return:-return}(0);
2957 CF_VERBOSE([prototype $cf_ret func($cf_arg value)])
2958 cat >>confdefs.h <<EOF
2959 #define TPUTS_ARG $cf_arg
2960 #define TPUTS_PROTO(func,value) $cf_ret func(TPUTS_ARG value)
2961 #define TPUTS_RETURN(value) $cf_return
2967 test $cf_done = yes && break
2971 dnl ---------------------------------------------------------------------------
2972 dnl CF_TRIM_X_LIBS version: 3 updated: 2015/04/12 15:39:00
2974 dnl Trim extra base X libraries added as a workaround for inconsistent library
2975 dnl dependencies returned by "new" pkg-config files.
2976 AC_DEFUN([CF_TRIM_X_LIBS],[
2977 for cf_trim_lib in Xmu Xt X11
2980 (*-l$cf_trim_lib\ *-l$cf_trim_lib*)
2981 LIBS=`echo "$LIBS " | sed -e 's/ / /g' -e 's%-l'"$cf_trim_lib"' %%' -e 's/ $//'`
2982 CF_VERBOSE(..trimmed $LIBS)
2987 dnl ---------------------------------------------------------------------------
2988 dnl CF_TRY_PKG_CONFIG version: 5 updated: 2013/07/06 21:27:06
2989 dnl -----------------
2990 dnl This is a simple wrapper to use for pkg-config, for libraries which may be
2991 dnl available in that form.
2993 dnl $1 = package name
2994 dnl $2 = extra logic to use, if any, after updating CFLAGS and LIBS
2995 dnl $3 = logic to use if pkg-config does not have the package
2996 AC_DEFUN([CF_TRY_PKG_CONFIG],[
2997 AC_REQUIRE([CF_PKG_CONFIG])
2999 if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists $1; then
3000 CF_VERBOSE(found package $1)
3001 cf_pkgconfig_incs="`$PKG_CONFIG --cflags $1 2>/dev/null`"
3002 cf_pkgconfig_libs="`$PKG_CONFIG --libs $1 2>/dev/null`"
3003 CF_VERBOSE(package $1 CFLAGS: $cf_pkgconfig_incs)
3004 CF_VERBOSE(package $1 LIBS: $cf_pkgconfig_libs)
3005 CF_ADD_CFLAGS($cf_pkgconfig_incs)
3006 CF_ADD_LIBS($cf_pkgconfig_libs)
3007 ifelse([$2],,:,[$2])
3011 ifelse([$3],,:,[$3])
3014 dnl ---------------------------------------------------------------------------
3015 dnl CF_TRY_XOPEN_SOURCE version: 1 updated: 2011/10/30 17:09:50
3016 dnl -------------------
3017 dnl If _XOPEN_SOURCE is not defined in the compile environment, check if we
3018 dnl can define it successfully.
3019 AC_DEFUN([CF_TRY_XOPEN_SOURCE],[
3020 AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[
3024 #include <sys/types.h>
3026 #ifndef _XOPEN_SOURCE
3029 [cf_cv_xopen_source=no],
3030 [cf_save="$CPPFLAGS"
3031 CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
3035 #include <sys/types.h>
3037 #ifdef _XOPEN_SOURCE
3040 [cf_cv_xopen_source=no],
3041 [cf_cv_xopen_source=$cf_XOPEN_SOURCE])
3046 if test "$cf_cv_xopen_source" != no ; then
3047 CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE)
3048 CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE)
3049 cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
3050 CF_ADD_CFLAGS($cf_temp_xopen_source)
3053 dnl ---------------------------------------------------------------------------
3054 dnl CF_UPPER version: 5 updated: 2001/01/29 23:40:59
3056 dnl Make an uppercase version of a variable
3057 dnl $1=uppercase($2)
3058 AC_DEFUN([CF_UPPER],
3060 $1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
3062 dnl ---------------------------------------------------------------------------
3063 dnl CF_UTF8_LIB version: 8 updated: 2012/10/06 08:57:51
3065 dnl Check for multibyte support, and if not found, utf8 compatibility library
3066 AC_DEFUN([CF_UTF8_LIB],
3068 AC_CACHE_CHECK(for multibyte character support,cf_cv_utf8_lib,[
3069 cf_save_LIBS="$LIBS"
3071 #include <stdlib.h>],[putwc(0,0);],
3072 [cf_cv_utf8_lib=yes],
3074 #include <libutf8.h>],[putwc(0,0);],utf8,
3075 [cf_cv_utf8_lib=add-on],
3076 [cf_cv_utf8_lib=no])
3079 # HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
3081 if test "$cf_cv_utf8_lib" = "add-on" ; then
3082 AC_DEFINE(HAVE_LIBUTF8_H,1,[Define to 1 if we should include libutf8.h])
3083 CF_ADD_INCDIR($cf_cv_header_path_utf8)
3084 CF_ADD_LIBDIR($cf_cv_library_path_utf8)
3085 CF_ADD_LIBS($cf_cv_library_file_utf8)
3088 dnl ---------------------------------------------------------------------------
3089 dnl CF_VERBOSE version: 3 updated: 2007/07/29 09:55:12
3091 dnl Use AC_VERBOSE w/o the warnings
3092 AC_DEFUN([CF_VERBOSE],
3093 [test -n "$verbose" && echo " $1" 1>&AC_FD_MSG
3096 dnl ---------------------------------------------------------------------------
3097 dnl CF_WCHAR_TYPE version: 4 updated: 2012/10/06 16:39:58
3099 dnl Check if type wide-character type $1 is declared, and if so, which header
3100 dnl file is needed. The second parameter is used to set a shell variable when
3101 dnl the type is not found. The first parameter sets a shell variable for the
3103 AC_DEFUN([CF_WCHAR_TYPE],
3105 # This is needed on Tru64 5.0 to declare $1
3106 AC_CACHE_CHECK(if we must include wchar.h to declare $1,cf_cv_$1,[
3111 #ifdef HAVE_LIBUTF8_H
3112 #include <libutf8.h>
3121 #ifdef HAVE_LIBUTF8_H
3122 #include <libutf8.h>
3126 [cf_cv_$1=unknown])])])
3128 if test "$cf_cv_$1" = yes ; then
3129 AC_DEFINE(NEED_WCHAR_H,1,[Define to 1 if we must include wchar.h])
3134 # if we do not find $1 in either place, use substitution to provide a fallback.
3135 if test "$cf_cv_$1" = unknown ; then
3140 # if we find $1 in either place, use substitution to provide a fallback.
3141 if test "$cf_cv_$1" != unknown ; then
3146 dnl ---------------------------------------------------------------------------
3147 dnl CF_WITH_CURSES_DIR version: 3 updated: 2010/11/20 17:02:38
3148 dnl ------------------
3149 dnl Wrapper for AC_ARG_WITH to specify directory under which to look for curses
3151 AC_DEFUN([CF_WITH_CURSES_DIR],[
3153 AC_MSG_CHECKING(for specific curses-directory)
3154 AC_ARG_WITH(curses-dir,
3155 [ --with-curses-dir=DIR directory in which (n)curses is installed],
3156 [cf_cv_curses_dir=$withval],
3157 [cf_cv_curses_dir=no])
3158 AC_MSG_RESULT($cf_cv_curses_dir)
3160 if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
3162 CF_PATH_SYNTAX(withval)
3163 if test -d "$cf_cv_curses_dir"
3165 CF_ADD_INCDIR($cf_cv_curses_dir/include)
3166 CF_ADD_LIBDIR($cf_cv_curses_dir/lib)
3170 dnl ---------------------------------------------------------------------------
3171 dnl CF_WITH_DBMALLOC version: 7 updated: 2010/06/21 17:26:47
3172 dnl ----------------
3173 dnl Configure-option for dbmalloc. The optional parameter is used to override
3174 dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
3175 AC_DEFUN([CF_WITH_DBMALLOC],[
3176 CF_NO_LEAKS_OPTION(dbmalloc,
3177 [ --with-dbmalloc test: use Conor Cahill's dbmalloc library],
3180 if test "$with_dbmalloc" = yes ; then
3181 AC_CHECK_HEADER(dbmalloc.h,
3182 [AC_CHECK_LIB(dbmalloc,[debug_malloc]ifelse([$1],,[],[,$1]))])
3185 dnl ---------------------------------------------------------------------------
3186 dnl CF_WITH_DMALLOC version: 7 updated: 2010/06/21 17:26:47
3188 dnl Configure-option for dmalloc. The optional parameter is used to override
3189 dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
3190 AC_DEFUN([CF_WITH_DMALLOC],[
3191 CF_NO_LEAKS_OPTION(dmalloc,
3192 [ --with-dmalloc test: use Gray Watson's dmalloc library],
3195 if test "$with_dmalloc" = yes ; then
3196 AC_CHECK_HEADER(dmalloc.h,
3197 [AC_CHECK_LIB(dmalloc,[dmalloc_debug]ifelse([$1],,[],[,$1]))])
3200 dnl ---------------------------------------------------------------------------
3201 dnl CF_WITH_NCURSES_ETC version: 4 updated: 2015/04/25 20:53:11
3202 dnl -------------------
3203 dnl Use this macro for programs which use any variant of "curses", e.g.,
3204 dnl "ncurses", and "PDCurses". Programs that can use curses and some unrelated
3205 dnl library (such as slang) should use a "--with-screen=XXX" option.
3207 dnl This does not use AC_DEFUN, because that would tell autoconf to run each
3208 dnl of the macros inside this one - before this macro.
3209 define([CF_WITH_NCURSES_ETC],[
3214 AC_MSG_CHECKING(for specified curses library type)
3216 [ --with-screen=XXX use specified curses-libraries],
3217 [cf_cv_screen=$withval],[
3219 AC_ARG_WITH(ncursesw,
3220 [ --with-ncursesw use wide ncurses-libraries],
3221 [cf_cv_screen=ncursesw],[
3223 AC_ARG_WITH(ncurses,
3224 [ --with-ncurses use ncurses-libraries],
3225 [cf_cv_screen=ncurses],[
3227 AC_ARG_WITH(pdcurses,
3228 [ --with-pdcurses compile/link with pdcurses X11 library],
3229 [cf_cv_screen=pdcurses],[
3231 AC_ARG_WITH(curses-colr,
3232 [ --with-curses-colr compile/link with HPUX 10.x color-curses],
3233 [cf_cv_screen=curses_colr],[
3235 AC_ARG_WITH(curses-5lib,
3236 [ --with-curses-5lib compile/link with SunOS 5lib curses],
3237 [cf_cv_screen=curses_5lib])])])])])])
3239 AC_MSG_RESULT($cf_cv_screen)
3241 case $cf_cv_screen in
3247 CF_NCURSES_CONFIG($cf_cv_screen)
3250 CF_NCURSES_CONFIG($cf_cv_screen)
3256 AC_MSG_ERROR(unexpected screen-value: $cf_cv_screen)
3261 dnl ---------------------------------------------------------------------------
3262 dnl CF_WITH_VALGRIND version: 1 updated: 2006/12/14 18:00:21
3263 dnl ----------------
3264 AC_DEFUN([CF_WITH_VALGRIND],[
3265 CF_NO_LEAKS_OPTION(valgrind,
3266 [ --with-valgrind test: use valgrind],
3269 dnl ---------------------------------------------------------------------------
3270 dnl CF_XOPEN_CURSES version: 11 updated: 2011/01/18 18:15:30
3272 dnl Test if we should define X/Open source for curses, needed on Digital Unix
3273 dnl 4.x, to see the extended functions, but breaks on IRIX 6.x.
3275 dnl The getbegyx() check is needed for HPUX, which omits legacy macros such
3276 dnl as getbegy(). The latter is better design, but the former is standard.
3277 AC_DEFUN([CF_XOPEN_CURSES],
3279 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
3280 AC_CACHE_CHECK(if we must define _XOPEN_SOURCE_EXTENDED,cf_cv_need_xopen_extension,[
3283 #include <${cf_cv_ncurses_header:-curses.h}>],[
3284 #if defined(NCURSES_VERSION_PATCH)
3285 #if (NCURSES_VERSION_PATCH < 20100501) && (NCURSES_VERSION_PATCH >= 20100403)
3289 long x = winnstr(stdscr, "", 0);
3291 getbegyx(stdscr, y1, x1)],
3292 [cf_cv_need_xopen_extension=no],
3294 #define _XOPEN_SOURCE_EXTENDED
3296 #include <${cf_cv_ncurses_header:-curses.h}>],[
3297 #ifdef NCURSES_VERSION
3299 int check2 = curs_set((int)sizeof(check));
3301 long x = winnstr(stdscr, "", 0);
3303 getbegyx(stdscr, y1, x1)],
3304 [cf_cv_need_xopen_extension=yes],
3305 [cf_cv_need_xopen_extension=unknown])])])
3306 test $cf_cv_need_xopen_extension = yes && CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED"
3308 dnl ---------------------------------------------------------------------------
3309 dnl CF_XOPEN_SOURCE version: 50 updated: 2015/10/17 19:03:33
3311 dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
3312 dnl or adapt to the vendor's definitions to get equivalent functionality,
3313 dnl without losing the common non-POSIX features.
3316 dnl $1 is the nominal value for _XOPEN_SOURCE
3317 dnl $2 is the nominal value for _POSIX_C_SOURCE
3318 AC_DEFUN([CF_XOPEN_SOURCE],[
3319 AC_REQUIRE([AC_CANONICAL_HOST])
3321 cf_XOPEN_SOURCE=ifelse([$1],,500,[$1])
3322 cf_POSIX_C_SOURCE=ifelse([$2],,199506L,[$2])
3327 cf_xopen_source="-D_ALL_SOURCE"
3333 cf_xopen_source="-D_APPLE_C_SOURCE"
3336 cf_xopen_source="-D_DARWIN_C_SOURCE"
3339 (freebsd*|dragonfly*)
3340 # 5.x headers associate
3341 # _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L
3342 # _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L
3343 cf_POSIX_C_SOURCE=200112L
3345 cf_xopen_source="-D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
3348 cf_xopen_source="-D_HPUX_SOURCE -D_XOPEN_SOURCE=500"
3351 cf_xopen_source="-D_HPUX_SOURCE"
3354 cf_xopen_source="-D_SGI_SOURCE"
3357 (linux*|gnu*|mint*|k*bsd*-gnu)
3361 cf_xopen_source="-D_NETBSD_SOURCE" # POSIX.1-2001 features are ifdef'd with this...
3364 # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <sys/select.h> and other headers which use u_int / u_short types
3366 CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
3369 cf_xopen_source="-D_NETBSD_SOURCE" # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
3372 # setting _XOPEN_SOURCE lower than 500 breaks g++ compile with wchar.h, needed for ncursesw
3373 cf_xopen_source="-D_BSD_SOURCE"
3377 # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
3383 cf_xopen_source="-D_OSF_SOURCE"
3386 cf_xopen_source="-D_QNX_SOURCE"
3389 # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
3392 cf_xopen_source="-D__EXTENSIONS__"
3393 cf_cv_xopen_source=broken
3395 (sysv4.2uw2.*) # Novell/SCO UnixWare 2.x (tested on 2.1.2)
3401 CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
3405 if test -n "$cf_xopen_source" ; then
3406 CF_ADD_CFLAGS($cf_xopen_source,true)
3409 dnl In anything but the default case, we may have system-specific setting
3410 dnl which is still not guaranteed to provide all of the entrypoints that
3411 dnl _XOPEN_SOURCE would yield.
3412 if test -n "$cf_XOPEN_SOURCE" && test -z "$cf_cv_xopen_source" ; then
3413 AC_MSG_CHECKING(if _XOPEN_SOURCE really is set)
3414 AC_TRY_COMPILE([#include <stdlib.h>],[
3415 #ifndef _XOPEN_SOURCE
3418 [cf_XOPEN_SOURCE_set=yes],
3419 [cf_XOPEN_SOURCE_set=no])
3420 AC_MSG_RESULT($cf_XOPEN_SOURCE_set)
3421 if test $cf_XOPEN_SOURCE_set = yes
3423 AC_TRY_COMPILE([#include <stdlib.h>],[
3424 #if (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE
3427 [cf_XOPEN_SOURCE_set_ok=yes],
3428 [cf_XOPEN_SOURCE_set_ok=no])
3429 if test $cf_XOPEN_SOURCE_set_ok = no
3431 AC_MSG_WARN(_XOPEN_SOURCE is lower than requested)
3438 dnl ---------------------------------------------------------------------------
3439 dnl CF_X_ATHENA version: 23 updated: 2015/04/12 15:39:00
3441 dnl Check for Xaw (Athena) libraries
3443 dnl Sets $cf_x_athena according to the flavor of Xaw which is used.
3444 AC_DEFUN([CF_X_ATHENA],
3446 cf_x_athena=${cf_x_athena:-Xaw}
3448 AC_MSG_CHECKING(if you want to link with Xaw 3d library)
3451 [ --with-Xaw3d link with Xaw 3d library])
3452 if test "$withval" = yes ; then
3459 AC_MSG_CHECKING(if you want to link with Xaw 3d xft library)
3461 AC_ARG_WITH(Xaw3dxft,
3462 [ --with-Xaw3dxft link with Xaw 3d xft library])
3463 if test "$withval" = yes ; then
3464 cf_x_athena=Xaw3dxft
3470 AC_MSG_CHECKING(if you want to link with neXT Athena library)
3473 [ --with-neXtaw link with neXT Athena library])
3474 if test "$withval" = yes ; then
3481 AC_MSG_CHECKING(if you want to link with Athena-Plus library)
3483 AC_ARG_WITH(XawPlus,
3484 [ --with-XawPlus link with Athena-Plus library])
3485 if test "$withval" = yes ; then
3494 if test "$PKG_CONFIG" != none ; then
3496 test "$cf_x_athena" = Xaw && cf_athena_list="xaw8 xaw7 xaw6"
3497 for cf_athena_pkg in \
3500 ${cf_x_athena}-devel \
3502 lib${cf_x_athena}-devel
3504 CF_TRY_PKG_CONFIG($cf_athena_pkg,[
3505 cf_x_athena_lib="$cf_pkgconfig_libs"
3506 CF_UPPER(cf_x_athena_LIBS,HAVE_LIB_$cf_x_athena)
3507 AC_DEFINE_UNQUOTED($cf_x_athena_LIBS)
3511 AC_CACHE_CHECK(for usable $cf_x_athena/Xmu package,cf_cv_xaw_compat,[
3513 #include <X11/Xmu/CharSet.h>
3515 int check = XmuCompareISOLatin1("big", "small")
3516 ],[cf_cv_xaw_compat=yes],[cf_cv_xaw_compat=no])])
3518 if test "$cf_cv_xaw_compat" = no
3520 # workaround for broken ".pc" files...
3521 case "$cf_x_athena_lib" in
3525 CF_VERBOSE(work around broken package)
3527 cf_first_lib=`echo "$cf_save_xmu" | sed -e 's/^[ ][ ]*//' -e 's/ .*//'`
3528 CF_TRY_PKG_CONFIG(xmu,[
3530 CF_ADD_LIB_AFTER($cf_first_lib,$cf_pkgconfig_libs)
3532 CF_ADD_LIB_AFTER($cf_first_lib,-lXmu)
3543 if test -z "$cf_x_athena_lib" ; then
3546 CF_X_ATHENA_CPPFLAGS($cf_x_athena)
3547 CF_X_ATHENA_LIBS($cf_x_athena)
3550 dnl ---------------------------------------------------------------------------
3551 dnl CF_X_ATHENA_CPPFLAGS version: 5 updated: 2010/05/26 17:35:30
3552 dnl --------------------
3553 dnl Normally invoked by CF_X_ATHENA, with $1 set to the appropriate flavor of
3554 dnl the Athena widgets, e.g., Xaw, Xaw3d, neXtaw.
3555 AC_DEFUN([CF_X_ATHENA_CPPFLAGS],
3557 cf_x_athena_root=ifelse([$1],,Xaw,[$1])
3560 for cf_path in default \
3561 /usr/contrib/X11R6 \
3562 /usr/contrib/X11R5 \
3566 if test -z "$cf_x_athena_inc" ; then
3568 cf_test=X11/$cf_x_athena_root/SimpleMenu.h
3569 if test $cf_path != default ; then
3570 CPPFLAGS="$cf_save -I$cf_path/include"
3571 AC_MSG_CHECKING(for $cf_test in $cf_path)
3573 AC_MSG_CHECKING(for $cf_test)
3576 #include <X11/Intrinsic.h>
3577 #include <$cf_test>],[],
3580 AC_MSG_RESULT($cf_result)
3581 if test "$cf_result" = yes ; then
3582 cf_x_athena_inc=$cf_path
3590 if test -z "$cf_x_athena_inc" ; then
3592 [Unable to successfully find Athena header files with test program])
3593 elif test "$cf_x_athena_inc" != default ; then
3594 CPPFLAGS="$CPPFLAGS -I$cf_x_athena_inc"
3597 dnl ---------------------------------------------------------------------------
3598 dnl CF_X_ATHENA_LIBS version: 12 updated: 2011/07/17 19:55:02
3599 dnl ----------------
3600 dnl Normally invoked by CF_X_ATHENA, with $1 set to the appropriate flavor of
3601 dnl the Athena widgets, e.g., Xaw, Xaw3d, neXtaw.
3602 AC_DEFUN([CF_X_ATHENA_LIBS],
3603 [AC_REQUIRE([CF_X_TOOLKIT])
3604 cf_x_athena_root=ifelse([$1],,Xaw,[$1])
3607 for cf_path in default \
3608 /usr/contrib/X11R6 \
3609 /usr/contrib/X11R5 \
3614 ${cf_x_athena_root} \
3615 ${cf_x_athena_root}7 \
3616 ${cf_x_athena_root}6
3620 "-l$cf_lib -lXpm -lXmu" \
3621 "-l${cf_lib}_s -lXmu_s"
3623 if test -z "$cf_x_athena_lib" ; then
3625 cf_test=XawSimpleMenuAddGlobalActions
3626 if test $cf_path != default ; then
3627 CF_ADD_LIBS(-L$cf_path/lib $cf_libs)
3628 AC_MSG_CHECKING(for $cf_libs in $cf_path)
3630 CF_ADD_LIBS($cf_libs)
3631 AC_MSG_CHECKING(for $cf_test in $cf_libs)
3634 #include <X11/Intrinsic.h>
3635 #include <X11/$cf_x_athena_root/SimpleMenu.h>
3637 $cf_test((XtAppContext) 0)],
3640 AC_MSG_RESULT($cf_result)
3641 if test "$cf_result" = yes ; then
3642 cf_x_athena_lib="$cf_libs"
3648 test -n "$cf_x_athena_lib" && break
3652 if test -z "$cf_x_athena_lib" ; then
3654 [Unable to successfully link Athena library (-l$cf_x_athena_root) with test program])
3657 CF_UPPER(cf_x_athena_LIBS,HAVE_LIB_$cf_x_athena)
3658 AC_DEFINE_UNQUOTED($cf_x_athena_LIBS)
3660 dnl ---------------------------------------------------------------------------
3661 dnl CF_X_EXT version: 3 updated: 2010/06/02 05:03:05
3663 AC_DEFUN([CF_X_EXT],[
3664 CF_TRY_PKG_CONFIG(Xext,,[
3665 AC_CHECK_LIB(Xext,XextCreateExtension,
3666 [CF_ADD_LIB(Xext)])])
3668 dnl ---------------------------------------------------------------------------
3669 dnl CF_X_TOOLKIT version: 23 updated: 2015/04/12 15:39:00
3671 dnl Check for X Toolkit libraries
3672 AC_DEFUN([CF_X_TOOLKIT],
3674 AC_REQUIRE([AC_PATH_XTRA])
3675 AC_REQUIRE([CF_CHECK_CACHE])
3677 # OSX is schizoid about who owns /usr/X11 (old) versus /opt/X11 (new), and (and
3678 # in some cases has installed dummy files in the former, other cases replaced
3679 # it with a link to the new location). This complicates the configure script.
3680 # Check for that pitfall, and recover using pkg-config
3682 # If none of these are set, the configuration is almost certainly broken.
3683 if test -z "${X_CFLAGS}${X_PRE_LIBS}${X_LIBS}${X_EXTRA_LIBS}"
3685 CF_TRY_PKG_CONFIG(x11,,[AC_MSG_WARN(unable to find X11 library)])
3686 CF_TRY_PKG_CONFIG(ice,,[AC_MSG_WARN(unable to find ICE library)])
3687 CF_TRY_PKG_CONFIG(sm,,[AC_MSG_WARN(unable to find SM library)])
3688 CF_TRY_PKG_CONFIG(xt,,[AC_MSG_WARN(unable to find Xt library)])
3693 CF_TRY_PKG_CONFIG(xt,[
3699 # we have an "xt" package, but it may omit Xt's dependency on X11
3700 AC_CACHE_CHECK(for usable X dependency,cf_cv_xt_x11_compat,[
3702 #include <X11/Xlib.h>
3704 int rc1 = XDrawLine((Display*) 0, (Drawable) 0, (GC) 0, 0, 0, 0, 0);
3705 int rc2 = XClearWindow((Display*) 0, (Window) 0);
3706 int rc3 = XMoveWindow((Display*) 0, (Window) 0, 0, 0);
3707 int rc4 = XMoveResizeWindow((Display*)0, (Window)0, 0, 0, 0, 0);
3708 ],[cf_cv_xt_x11_compat=yes],[cf_cv_xt_x11_compat=no])])
3709 if test "$cf_cv_xt_x11_compat" = no
3711 CF_VERBOSE(work around broken X11 dependency)
3712 # 2010/11/19 - good enough until a working Xt on Xcb is delivered.
3713 CF_TRY_PKG_CONFIG(x11,,[CF_ADD_LIB_AFTER(-lXt,-lX11)])
3718 AC_CACHE_CHECK(for usable X Toolkit package,cf_cv_xt_ice_compat,[
3720 #include <X11/Shell.h>
3721 ],[int num = IceConnectionNumber(0)
3722 ],[cf_cv_xt_ice_compat=yes],[cf_cv_xt_ice_compat=no])])
3724 if test "$cf_cv_xt_ice_compat" = no
3726 # workaround for broken ".pc" files used for X Toolkit.
3727 case "x$X_PRE_LIBS" in
3733 CF_VERBOSE(work around broken ICE dependency)
3734 CF_TRY_PKG_CONFIG(ice,
3735 [CF_TRY_PKG_CONFIG(sm)],
3736 [CF_ADD_LIB_AFTER(-lXt,$X_PRE_LIBS)])
3746 LDFLAGS="$X_LIBS $LDFLAGS"
3747 CF_CHECK_CFLAGS($X_CFLAGS)
3749 AC_CHECK_FUNC(XOpenDisplay,,[
3750 AC_CHECK_LIB(X11,XOpenDisplay,
3752 [$X_PRE_LIBS $LIBS $X_EXTRA_LIBS])])
3754 AC_CHECK_FUNC(XtAppInitialize,,[
3755 AC_CHECK_LIB(Xt, XtAppInitialize,
3756 [AC_DEFINE(HAVE_LIBXT,1,[Define to 1 if we can compile with the Xt library])
3758 LIBS="-lXt $X_PRE_LIBS $LIBS $X_EXTRA_LIBS"],,
3759 [$X_PRE_LIBS $LIBS $X_EXTRA_LIBS])])
3762 if test $cf_have_X_LIBS = no ; then
3764 [Unable to successfully link X Toolkit library (-lXt) with
3765 test program. You will have to check and add the proper libraries by hand
3769 dnl ---------------------------------------------------------------------------
3770 dnl CF__CURSES_HEAD version: 2 updated: 2010/10/23 15:54:49
3772 dnl Define a reusable chunk which includes <curses.h> and <term.h> when they
3773 dnl are both available.
3774 define([CF__CURSES_HEAD],[
3776 #include <xcurses.h>
3777 char * XCursesProgramName = "test";
3779 #include <${cf_cv_ncurses_header:-curses.h}>
3780 #if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H)
3781 #include <ncursesw/term.h>
3782 #elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H)
3783 #include <ncurses/term.h>
3784 #elif defined(HAVE_TERM_H)