1 dnl***************************************************************************
2 dnl Copyright (c) 2003-2010,2011 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.63 2011/07/02 20:36:41 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: 2 updated: 2011/05/08 11:22:03
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([m4_version_compare],
53 [m4_if(m4_version_compare(m4_defn([AC_ACVERSION]), [$1]), -1, [$3], [$2])],
54 [CF_ACVERSION_COMPARE(
55 AC_PREREQ_CANON(AC_PREREQ_SPLIT([$1])),
56 AC_PREREQ_CANON(AC_PREREQ_SPLIT(AC_ACVERSION)), AC_ACVERSION, [$2], [$3])])])dnl
57 dnl ---------------------------------------------------------------------------
58 dnl CF_ACVERSION_COMPARE version: 2 updated: 2011/04/14 20:56:50
59 dnl --------------------
60 dnl CF_ACVERSION_COMPARE(MAJOR1, MINOR1, TERNARY1,
61 dnl MAJOR2, MINOR2, TERNARY2,
62 dnl PRINTABLE2, not FOUND, FOUND)
63 define(CF_ACVERSION_COMPARE,
64 [ifelse(builtin([eval], [$2 < $5]), 1,
65 [ifelse([$8], , ,[$8])],
66 [ifelse([$9], , ,[$9])])])dnl
67 dnl ---------------------------------------------------------------------------
68 dnl CF_ADD_CFLAGS version: 10 updated: 2010/05/26 05:38:42
70 dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS
71 dnl The second parameter if given makes this macro verbose.
73 dnl Put any preprocessor definitions that use quoted strings in $EXTRA_CPPFLAGS,
74 dnl to simplify use of $CPPFLAGS in compiler checks, etc., that are easily
75 dnl confused by the quotes (which require backslashes to keep them usable).
76 AC_DEFUN([CF_ADD_CFLAGS],
81 cf_new_extra_cppflags=
83 for cf_add_cflags in $1
85 case $cf_fix_cppflags in
87 case $cf_add_cflags in #(vi
88 -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
89 case $cf_add_cflags in
91 cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[[^=]]*='\''\"[[^"]]*//'`
93 test "${cf_add_cflags}" != "${cf_tst_cflags}" \
94 && test -z "${cf_tst_cflags}" \
95 && cf_fix_cppflags=yes
97 if test $cf_fix_cppflags = yes ; then
98 cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
100 elif test "${cf_tst_cflags}" = "\"'" ; then
101 cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
107 *$cf_add_cflags) #(vi
110 case $cf_add_cflags in #(vi
112 cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
113 CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,$cf_tst_cppflags)
116 cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
121 cf_new_cflags="$cf_new_cflags $cf_add_cflags"
126 cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
128 cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[[^"]]*"'\''//'`
130 test "${cf_add_cflags}" != "${cf_tst_cflags}" \
131 && test -z "${cf_tst_cflags}" \
132 && cf_fix_cppflags=no
137 if test -n "$cf_new_cflags" ; then
138 ifelse([$2],,,[CF_VERBOSE(add to \$CFLAGS $cf_new_cflags)])
139 CFLAGS="$CFLAGS $cf_new_cflags"
142 if test -n "$cf_new_cppflags" ; then
143 ifelse([$2],,,[CF_VERBOSE(add to \$CPPFLAGS $cf_new_cppflags)])
144 CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
147 if test -n "$cf_new_extra_cppflags" ; then
148 ifelse([$2],,,[CF_VERBOSE(add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags)])
149 EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
152 AC_SUBST(EXTRA_CPPFLAGS)
155 dnl ---------------------------------------------------------------------------
156 dnl CF_ADD_INCDIR version: 13 updated: 2010/05/26 16:44:57
158 dnl Add an include-directory to $CPPFLAGS. Don't add /usr/include, since it's
159 dnl redundant. We don't normally need to add -I/usr/local/include for gcc,
160 dnl but old versions (and some misinstalled ones) need that. To make things
161 dnl worse, gcc 3.x may give error messages if -I/usr/local/include is added to
162 dnl the include-path).
163 AC_DEFUN([CF_ADD_INCDIR],
165 if test -n "$1" ; then
166 for cf_add_incdir in $1
168 while test $cf_add_incdir != /usr/include
170 if test -d $cf_add_incdir
173 if test -n "$CFLAGS$CPPFLAGS" ; then
174 # a loop is needed to ensure we can add subdirs of existing dirs
175 for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
176 if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
177 cf_have_incdir=yes; break
182 if test "$cf_have_incdir" = no ; then
183 if test "$cf_add_incdir" = /usr/local/include ; then
186 cf_save_CPPFLAGS=$CPPFLAGS
187 CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
188 AC_TRY_COMPILE([#include <stdio.h>],
191 [cf_have_incdir=yes])
192 CPPFLAGS=$cf_save_CPPFLAGS
197 if test "$cf_have_incdir" = no ; then
198 CF_VERBOSE(adding $cf_add_incdir to include-path)
199 ifelse([$2],,CPPFLAGS,[$2])="$ifelse([$2],,CPPFLAGS,[$2]) -I$cf_add_incdir"
201 cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
202 test "$cf_top_incdir" = "$cf_add_incdir" && break
203 cf_add_incdir="$cf_top_incdir"
212 dnl ---------------------------------------------------------------------------
213 dnl CF_ADD_LIB version: 2 updated: 2010/06/02 05:03:05
215 dnl Add a library, used to enforce consistency.
217 dnl $1 = library to add, without the "-l"
218 dnl $2 = variable to update (default $LIBS)
219 AC_DEFUN([CF_ADD_LIB],[CF_ADD_LIBS(-l$1,ifelse($2,,LIBS,[$2]))])dnl
220 dnl ---------------------------------------------------------------------------
221 dnl CF_ADD_LIBDIR version: 9 updated: 2010/05/26 16:44:57
223 dnl Adds to the library-path
225 dnl Some machines have trouble with multiple -L options.
227 dnl $1 is the (list of) directory(s) to add
228 dnl $2 is the optional name of the variable to update (default LDFLAGS)
230 AC_DEFUN([CF_ADD_LIBDIR],
232 if test -n "$1" ; then
233 for cf_add_libdir in $1
235 if test $cf_add_libdir = /usr/lib ; then
237 elif test -d $cf_add_libdir
240 if test -n "$LDFLAGS$LIBS" ; then
241 # a loop is needed to ensure we can add subdirs of existing dirs
242 for cf_test_libdir in $LDFLAGS $LIBS ; do
243 if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
244 cf_have_libdir=yes; break
248 if test "$cf_have_libdir" = no ; then
249 CF_VERBOSE(adding $cf_add_libdir to library-path)
250 ifelse([$2],,LDFLAGS,[$2])="-L$cf_add_libdir $ifelse([$2],,LDFLAGS,[$2])"
256 dnl ---------------------------------------------------------------------------
257 dnl CF_ADD_LIBS version: 1 updated: 2010/06/02 05:03:05
259 dnl Add one or more libraries, used to enforce consistency.
261 dnl $1 = libraries to add, with the "-l", etc.
262 dnl $2 = variable to update (default $LIBS)
263 AC_DEFUN([CF_ADD_LIBS],[ifelse($2,,LIBS,[$2])="$1 [$]ifelse($2,,LIBS,[$2])"])dnl
264 dnl ---------------------------------------------------------------------------
265 dnl CF_ADD_LIB_AFTER version: 2 updated: 2010/11/08 20:33:46
267 dnl Add a given library after another, e.g., following the one it satisfies a
270 dnl $1 = the first library
271 dnl $2 = its dependency
272 AC_DEFUN([CF_ADD_LIB_AFTER],[
273 CF_VERBOSE(...before $LIBS)
274 LIBS=`echo "$LIBS" | sed -e "s/[[ ]][[ ]]*/ /g" -e "s,$1 ,$1 $2 ," -e 's/ / /g'`
275 CF_VERBOSE(...after $LIBS)
277 dnl ---------------------------------------------------------------------------
278 dnl CF_ADD_SUBDIR_PATH version: 3 updated: 2010/07/03 20:58:12
279 dnl ------------------
280 dnl Append to a search-list for a nonstandard header/lib-file
281 dnl $1 = the variable to return as result
282 dnl $2 = the package name
283 dnl $3 = the subdirectory, e.g., bin, include or lib
284 dnl $4 = the directory under which we will test for subdirectories
285 dnl $5 = a directory that we do not want $4 to match
286 AC_DEFUN([CF_ADD_SUBDIR_PATH],
288 test "$4" != "$5" && \
290 ifelse([$5],NONE,,[(test $5 = NONE || test "$4" != "$5") &&]) {
291 test -n "$verbose" && echo " ... testing for $3-directories under $4"
292 test -d $4/$3 && $1="[$]$1 $4/$3"
293 test -d $4/$3/$2 && $1="[$]$1 $4/$3/$2"
294 test -d $4/$3/$2/$3 && $1="[$]$1 $4/$3/$2/$3"
295 test -d $4/$2/$3 && $1="[$]$1 $4/$2/$3"
296 test -d $4/$2/$3/$2 && $1="[$]$1 $4/$2/$3/$2"
299 dnl ---------------------------------------------------------------------------
300 dnl CF_ANSI_CC_CHECK version: 11 updated: 2011/07/01 19:47:45
302 dnl This was originally adapted from the macros 'fp_PROG_CC_STDC' and
303 dnl 'fp_C_PROTOTYPES' in the sharutils 4.2 distribution.
304 AC_DEFUN([CF_ANSI_CC_CHECK],
306 # This should have been defined by AC_PROG_CC
309 # Check for user's environment-breakage by stuffing CFLAGS/CPPFLAGS content
310 # into CC. This will not help with broken scripts that wrap the compiler with
311 # options, but eliminates a more common category of user confusion.
312 AC_MSG_CHECKING(\$CC variable)
315 AC_MSG_RESULT(broken)
316 AC_MSG_WARN(your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options)
318 cf_flags=`echo "$CC" | sed -e 's/^[[^ ]]*[[ ]]//'`
319 CC=`echo "$CC" | sed -e 's/[[ ]].*//'`
320 CF_ADD_CFLAGS($cf_flags)
327 AC_CACHE_CHECK(for ${CC:-cc} option to accept ANSI C, cf_cv_ansi_cc,[
329 cf_save_CFLAGS="$CFLAGS"
330 cf_save_CPPFLAGS="$CPPFLAGS"
331 # Don't try gcc -ansi; that turns off useful extensions and
332 # breaks some systems' header files.
334 # Ultrix and OSF/1 -std1
335 # HP-UX -Aa -D_HPUX_SOURCE
337 # UnixWare 1.2 (cannot use -Xc, since ANSI/POSIX clashes)
338 for cf_arg in "-DCC_HAS_PROTOS" \
343 "-Aa -D_HPUX_SOURCE" \
346 CF_ADD_CFLAGS($cf_arg)
349 #ifndef CC_HAS_PROTOS
350 #if !defined(__STDC__) || (__STDC__ != 1)
355 int test (int i, double x);
356 struct s1 {int (*f) (int a);};
357 struct s2 {int (*f) (double a);};],
358 [cf_cv_ansi_cc="$cf_arg"; break])
360 CFLAGS="$cf_save_CFLAGS"
361 CPPFLAGS="$cf_save_CPPFLAGS"
364 if test "$cf_cv_ansi_cc" != "no"; then
365 if test ".$cf_cv_ansi_cc" != ".-DCC_HAS_PROTOS"; then
366 CF_ADD_CFLAGS($cf_cv_ansi_cc)
368 AC_DEFINE(CC_HAS_PROTOS)
372 dnl ---------------------------------------------------------------------------
373 dnl CF_ANSI_CC_REQD version: 4 updated: 2008/03/23 14:48:54
375 dnl For programs that must use an ANSI compiler, obtain compiler options that
376 dnl will make it recognize prototypes. We'll do preprocessor checks in other
377 dnl macros, since tools such as unproto can fake prototypes, but only part of
378 dnl the preprocessor.
379 AC_DEFUN([CF_ANSI_CC_REQD],
380 [AC_REQUIRE([CF_ANSI_CC_CHECK])
381 if test "$cf_cv_ansi_cc" = "no"; then
383 [Your compiler does not appear to recognize prototypes.
384 You have the following choices:
385 a. adjust your compiler options
386 b. get an up-to-date compiler
387 c. use a wrapper such as unproto])
390 dnl ---------------------------------------------------------------------------
391 dnl CF_ARG_DISABLE version: 3 updated: 1999/03/30 17:24:31
393 dnl Allow user to disable a normally-on option.
394 AC_DEFUN([CF_ARG_DISABLE],
395 [CF_ARG_OPTION($1,[$2],[$3],[$4],yes)])dnl
396 dnl ---------------------------------------------------------------------------
397 dnl CF_ARG_ENABLE version: 3 updated: 1999/03/30 17:24:31
399 dnl Allow user to enable a normally-off option.
400 AC_DEFUN([CF_ARG_ENABLE],
401 [CF_ARG_OPTION($1,[$2],[$3],[$4],no)])dnl
402 dnl ---------------------------------------------------------------------------
403 dnl CF_ARG_OPTION version: 4 updated: 2010/05/26 05:38:42
405 dnl Restricted form of AC_ARG_ENABLE that ensures user doesn't give bogus
411 dnl $3 = action to perform if option is not default
412 dnl $4 = action if perform if option is default
413 dnl $5 = default option value (either 'yes' or 'no')
414 AC_DEFUN([CF_ARG_OPTION],
415 [AC_ARG_ENABLE([$1],[$2],[test "$enableval" != ifelse([$5],no,yes,no) && enableval=ifelse([$5],no,no,yes)
416 if test "$enableval" != "$5" ; then
418 ,[ $3]) ifelse([$4],,,[
421 fi],[enableval=$5 ifelse([$4],,,[
425 dnl ---------------------------------------------------------------------------
426 dnl CF_CHECK_CACHE version: 11 updated: 2008/03/23 14:45:59
428 dnl Check if we're accidentally using a cache from a different machine.
429 dnl Derive the system name, as a check for reusing the autoconf cache.
431 dnl If we've packaged config.guess and config.sub, run that (since it does a
432 dnl better job than uname). Normally we'll use AC_CANONICAL_HOST, but allow
433 dnl an extra parameter that we may override, e.g., for AC_CANONICAL_SYSTEM
434 dnl which is useful in cross-compiles.
436 dnl Note: we would use $ac_config_sub, but that is one of the places where
437 dnl autoconf 2.5x broke compatibility with autoconf 2.13
438 AC_DEFUN([CF_CHECK_CACHE],
440 if test -f $srcdir/config.guess || test -f $ac_aux_dir/config.guess ; then
441 ifelse([$1],,[AC_CANONICAL_HOST],[$1])
442 system_name="$host_os"
444 system_name="`(uname -s -r) 2>/dev/null`"
445 if test -z "$system_name" ; then
446 system_name="`(hostname) 2>/dev/null`"
449 test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name")
450 AC_CACHE_VAL(cf_cv_system_name,[cf_cv_system_name="$system_name"])
452 test -z "$system_name" && system_name="$cf_cv_system_name"
453 test -n "$cf_cv_system_name" && AC_MSG_RESULT(Configuring for $cf_cv_system_name)
455 if test ".$system_name" != ".$cf_cv_system_name" ; then
456 AC_MSG_RESULT(Cached system name ($system_name) does not agree with actual ($cf_cv_system_name))
457 AC_MSG_ERROR("Please remove config.cache and try again.")
460 dnl ---------------------------------------------------------------------------
461 dnl CF_CHECK_CFLAGS version: 2 updated: 2001/12/30 19:09:58
463 dnl Conditionally add to $CFLAGS and $CPPFLAGS values which are derived from
464 dnl a build-configuration such as imake. These have the pitfall that they
465 dnl often contain compiler-specific options which we cannot use, mixed with
466 dnl preprocessor options that we usually can.
467 AC_DEFUN([CF_CHECK_CFLAGS],
469 CF_VERBOSE(checking additions to CFLAGS)
470 cf_check_cflags="$CFLAGS"
471 cf_check_cppflags="$CPPFLAGS"
472 CF_ADD_CFLAGS($1,yes)
473 if test "$cf_check_cflags" != "$CFLAGS" ; then
474 AC_TRY_LINK([#include <stdio.h>],[printf("Hello world");],,
475 [CF_VERBOSE(test-compile failed. Undoing change to \$CFLAGS)
476 if test "$cf_check_cppflags" != "$CPPFLAGS" ; then
477 CF_VERBOSE(but keeping change to \$CPPFLAGS)
479 CFLAGS="$cf_check_flags"])
482 dnl ---------------------------------------------------------------------------
483 dnl CF_CURSES_ACS_MAP version: 6 updated: 2010/10/23 15:54:49
484 dnl -----------------
485 dnl Check for likely values of acs_map[]:
486 AC_DEFUN([CF_CURSES_ACS_MAP],
488 AC_REQUIRE([CF_NCURSES_WRAP_PREFIX])dnl
489 AC_CACHE_CHECK(for alternate character set array, cf_cv_curses_acs_map,[
490 cf_cv_curses_acs_map=unknown
491 for name in acs_map _acs_map __acs_map ${NCURSES_WRAP_PREFIX}acs_map
494 #include <${cf_cv_ncurses_header:-curses.h}>
496 $name['k'] = ACS_PLUS
497 ],[cf_cv_curses_acs_map=$name; break])
501 test "$cf_cv_curses_acs_map" != unknown && AC_DEFINE_UNQUOTED(CURSES_ACS_ARRAY,$cf_cv_curses_acs_map)
503 dnl ---------------------------------------------------------------------------
504 dnl CF_CURSES_CHECK_DATA version: 4 updated: 2011/01/15 16:39:24
505 dnl --------------------
506 dnl Check if curses.h defines the given data/variable.
507 dnl Use this after CF_NCURSES_CONFIG or CF_CURSES_CONFIG.
508 AC_DEFUN([CF_CURSES_CHECK_DATA],
510 AC_MSG_CHECKING(for data $1 declaration in ${cf_cv_ncurses_header:-curses.h})
512 AC_TRY_COMPILE(CF__CURSES_HEAD,[
514 ],cf_result=yes,cf_result=no)
515 AC_MSG_RESULT($cf_result)
517 if test $cf_result = yes ; then
518 CF_UPPER(cf_result,have_curses_data_$1)
519 AC_DEFINE_UNQUOTED($cf_result)
521 AC_MSG_CHECKING(for data $1 in library)
522 # BSD linkers insist on making weak linkage, but resolve at runtime.
523 AC_TRY_RUN(CF__CURSES_HEAD
529 ${cf_cv_main_return:-return}(foo == 0);
530 }],[cf_result=yes],[cf_result=no],[
532 AC_TRY_LINK(CF__CURSES_HEAD
536 ${cf_cv_main_return:-return}(foo == 0);
538 ],[cf_result=yes],[cf_result=no])
540 AC_MSG_RESULT($cf_result)
541 if test $cf_result = yes ; then
542 CF_UPPER(cf_result,decl_curses_data_$1)
543 AC_DEFINE_UNQUOTED($cf_result)
547 dnl ---------------------------------------------------------------------------
548 dnl CF_CURSES_CHECK_TYPE version: 3 updated: 2010/10/23 15:54:49
549 dnl --------------------
550 dnl Check if curses.h defines the given type
551 AC_DEFUN([CF_CURSES_CHECK_TYPE],
553 AC_MSG_CHECKING(for type $1 in ${cf_cv_ncurses_header:-curses.h})
555 #ifndef _XOPEN_SOURCE_EXTENDED
556 #define _XOPEN_SOURCE_EXTENDED
558 #include <${cf_cv_ncurses_header:-curses.h}>],[
560 ],cf_result=yes,cf_result=no)
561 AC_MSG_RESULT($cf_result)
562 if test $cf_result = yes ; then
563 CF_UPPER(cf_result,have_type_$1)
564 AC_DEFINE_UNQUOTED($cf_result)
566 AC_DEFINE_UNQUOTED($1,$2)
569 dnl ---------------------------------------------------------------------------
570 dnl CF_CURSES_CONFIG version: 2 updated: 2006/10/29 11:06:27
572 dnl Tie together the configure-script macros for curses. It may be ncurses,
573 dnl but unless asked, we do not make a special search for ncurses. However,
574 dnl still check for the ncurses version number, for use in other macros.
575 AC_DEFUN([CF_CURSES_CONFIG],
581 dnl ---------------------------------------------------------------------------
582 dnl CF_CURSES_CPPFLAGS version: 11 updated: 2011/04/09 14:51:08
583 dnl ------------------
584 dnl Look for the curses headers.
585 AC_DEFUN([CF_CURSES_CPPFLAGS],[
587 AC_CACHE_CHECK(for extra include directories,cf_cv_curses_incdir,[
588 cf_cv_curses_incdir=no
589 case $host_os in #(vi
591 if test "x$cf_cv_screen" = "xcurses_colr"
593 test -d /usr/include/curses_colr && \
594 cf_cv_curses_incdir="-I/usr/include/curses_colr"
598 if test "x$cf_cv_screen" = "xcurses_5lib"
600 test -d /usr/5lib && \
601 test -d /usr/5include && \
602 cf_cv_curses_incdir="-I/usr/5include"
607 test "$cf_cv_curses_incdir" != no && CPPFLAGS="$CPPFLAGS $cf_cv_curses_incdir"
612 dnl ---------------------------------------------------------------------------
613 dnl CF_CURSES_FUNCS version: 17 updated: 2011/05/14 16:07:29
615 dnl Curses-functions are a little complicated, since a lot of them are macros.
616 AC_DEFUN([CF_CURSES_FUNCS],
618 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
619 AC_REQUIRE([CF_XOPEN_CURSES])
620 AC_REQUIRE([CF_CURSES_TERM_H])
621 AC_REQUIRE([CF_CURSES_UNCTRL_H])
624 CF_UPPER(cf_tr_func,$cf_func)
625 AC_MSG_CHECKING(for ${cf_func})
626 CF_MSG_LOG(${cf_func})
627 AC_CACHE_VAL(cf_cv_func_$cf_func,[
628 eval cf_result='$ac_cv_func_'$cf_func
629 if test ".$cf_result" != ".no"; then
630 AC_TRY_LINK(CF__CURSES_HEAD,
633 long foo = (long)(&${cf_func});
634 if (foo + 1234 > 5678)
635 ${cf_cv_main_return:-return}(foo);
641 eval 'cf_cv_func_'$cf_func'=$cf_result'
643 # use the computed/retrieved cache-value:
644 eval 'cf_result=$cf_cv_func_'$cf_func
645 AC_MSG_RESULT($cf_result)
646 if test $cf_result != no; then
647 AC_DEFINE_UNQUOTED(HAVE_${cf_tr_func})
651 dnl ---------------------------------------------------------------------------
652 dnl CF_CURSES_HEADER version: 3 updated: 2011/05/01 19:47:45
654 dnl Find a "curses" header file, e.g,. "curses.h", or one of the more common
655 dnl variations of ncurses' installs.
657 dnl $1 = ncurses when looking for ncurses, or is empty
658 AC_DEFUN([CF_CURSES_HEADER],[
659 AC_CACHE_CHECK(if we have identified curses headers,cf_cv_ncurses_header,[
660 cf_cv_ncurses_header=none
661 for cf_header in ifelse($1,,,[ \
665 curses.h ifelse($1,,[ncurses/ncurses.h ncurses/curses.h])
667 AC_TRY_COMPILE([#include <${cf_header}>],
668 [initscr(); tgoto("?", 0,0)],
669 [cf_cv_ncurses_header=$cf_header; break],[])
673 if test "$cf_cv_ncurses_header" = none ; then
674 AC_MSG_ERROR(No curses header-files found)
677 # cheat, to get the right #define's for HAVE_NCURSES_H, etc.
678 AC_CHECK_HEADERS($cf_cv_ncurses_header)
680 dnl ---------------------------------------------------------------------------
681 dnl CF_CURSES_LIBS version: 34 updated: 2011/04/09 14:51:08
683 dnl Look for the curses libraries. Older curses implementations may require
684 dnl termcap/termlib to be linked as well. Call CF_CURSES_CPPFLAGS first.
685 AC_DEFUN([CF_CURSES_LIBS],[
687 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
688 AC_MSG_CHECKING(if we have identified curses libraries)
689 AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
690 [initscr(); tgoto("?", 0,0)],
693 AC_MSG_RESULT($cf_result)
695 if test "$cf_result" = no ; then
696 case $host_os in #(vi
698 AC_CHECK_LIB(mytinfo,tgoto,[CF_ADD_LIBS(-lmytinfo)])
701 # Looking at HPUX 10.20, the Hcurses library is the oldest (1997), cur_colr
702 # next (1998), and xcurses "newer" (2000). There is no header file for
703 # Hcurses; the subdirectory curses_colr has the headers (curses.h and
704 # term.h) for cur_colr
705 if test "x$cf_cv_screen" = "xcurses_colr"
707 AC_CHECK_LIB(cur_colr,initscr,[
708 CF_ADD_LIBS(-lcur_colr)
709 ac_cv_func_initscr=yes
711 AC_CHECK_LIB(Hcurses,initscr,[
712 # HP's header uses __HP_CURSES, but user claims _HP_CURSES.
713 CF_ADD_LIBS(-lHcurses)
714 CPPFLAGS="$CPPFLAGS -D__HP_CURSES -D_HP_CURSES"
715 ac_cv_func_initscr=yes
720 case `arch 2>/dev/null` in
724 CF_ADD_LIBDIR(/lib64)
735 if test "x$cf_cv_screen" = "xcurses_5lib"
737 if test -d /usr/5lib ; then
738 CF_ADD_LIBDIR(/usr/5lib)
739 CF_ADD_LIBS(-lcurses -ltermcap)
742 ac_cv_func_initscr=yes
746 if test ".$ac_cv_func_initscr" != .yes ; then
751 if test ".${cf_cv_ncurses_version:-no}" != .no
753 cf_check_list="ncurses curses cursesX"
755 cf_check_list="cursesX curses ncurses"
758 # Check for library containing tgoto. Do this before curses library
759 # because it may be needed to link the test-case for initscr.
760 AC_CHECK_FUNC(tgoto,[cf_term_lib=predefined],[
761 for cf_term_lib in $cf_check_list termcap termlib unknown
763 AC_CHECK_LIB($cf_term_lib,tgoto,[break])
767 # Check for library containing initscr
768 test "$cf_term_lib" != predefined && test "$cf_term_lib" != unknown && LIBS="-l$cf_term_lib $cf_save_LIBS"
769 for cf_curs_lib in $cf_check_list xcurses jcurses pdcurses unknown
771 AC_CHECK_LIB($cf_curs_lib,initscr,[break])
773 test $cf_curs_lib = unknown && AC_MSG_ERROR(no curses library found)
775 LIBS="-l$cf_curs_lib $cf_save_LIBS"
776 if test "$cf_term_lib" = unknown ; then
777 AC_MSG_CHECKING(if we can link with $cf_curs_lib library)
778 AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
782 AC_MSG_RESULT($cf_result)
783 test $cf_result = no && AC_MSG_ERROR(Cannot link curses library)
784 elif test "$cf_curs_lib" = "$cf_term_lib" ; then
786 elif test "$cf_term_lib" != predefined ; then
787 AC_MSG_CHECKING(if we need both $cf_curs_lib and $cf_term_lib libraries)
788 AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
789 [initscr(); tgoto((char *)0, 0, 0);],
792 LIBS="-l$cf_curs_lib -l$cf_term_lib $cf_save_LIBS"
793 AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
798 AC_MSG_RESULT($cf_result)
804 dnl ---------------------------------------------------------------------------
805 dnl CF_CURSES_TERM_H version: 9 updated: 2011/04/09 18:19:55
807 dnl SVr4 curses should have term.h as well (where it puts the definitions of
808 dnl the low-level interface). This may not be true in old/broken implementations,
809 dnl as well as in misconfigured systems (e.g., gcc configured for Solaris 2.4
810 dnl running with Solaris 2.5.1).
811 AC_DEFUN([CF_CURSES_TERM_H],
813 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
815 AC_CACHE_CHECK(for term.h, cf_cv_term_header,[
817 # If we found <ncurses/curses.h>, look for <ncurses/term.h>, but always look
818 # for <term.h> if we do not find the variant.
820 cf_header_list="term.h ncurses/term.h ncursesw/term.h"
822 case ${cf_cv_ncurses_header:-curses.h} in #(vi
824 cf_header_item=`echo ${cf_cv_ncurses_header:-curses.h} | sed -e 's%\..*%%' -e 's%/.*%/%'`term.h
825 cf_header_list="$cf_header_item $cf_header_list"
829 for cf_header in $cf_header_list
832 #include <${cf_cv_ncurses_header:-curses.h}>
833 #include <${cf_header}>],
835 [cf_cv_term_header=$cf_header
837 [cf_cv_term_header=no])
840 case $cf_cv_term_header in #(vi
842 # If curses is ncurses, some packagers still mess it up by trying to make
843 # us use GNU termcap. This handles the most common case.
844 for cf_header in ncurses/term.h ncursesw/term.h
847 #include <${cf_cv_ncurses_header:-curses.h}>
848 #ifdef NCURSES_VERSION
849 #include <${cf_header}>
854 [cf_cv_term_header=$cf_header
856 [cf_cv_term_header=no])
862 case $cf_cv_term_header in #(vi
864 AC_DEFINE(HAVE_TERM_H)
867 AC_DEFINE(HAVE_NCURSES_TERM_H)
870 AC_DEFINE(HAVE_NCURSESW_TERM_H)
874 dnl ---------------------------------------------------------------------------
875 dnl CF_CURSES_UNCTRL_H version: 1 updated: 2011/04/09 18:19:55
876 dnl ------------------
877 dnl Any X/Open curses implementation must have unctrl.h, but ncurses packages
878 dnl may put it in a subdirectory (along with ncurses' other headers, of
879 dnl course). Packages which put the headers in inconsistent locations are
881 AC_DEFUN([CF_CURSES_UNCTRL_H],
883 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
885 AC_CACHE_CHECK(for unctrl.h, cf_cv_unctrl_header,[
887 # If we found <ncurses/curses.h>, look for <ncurses/unctrl.h>, but always look
888 # for <unctrl.h> if we do not find the variant.
890 cf_header_list="unctrl.h ncurses/unctrl.h ncursesw/unctrl.h"
892 case ${cf_cv_ncurses_header:-curses.h} in #(vi
894 cf_header_item=`echo ${cf_cv_ncurses_header:-curses.h} | sed -e 's%\..*%%' -e 's%/.*%/%'`unctrl.h
895 cf_header_list="$cf_header_item $cf_header_list"
899 for cf_header in $cf_header_list
902 #include <${cf_cv_ncurses_header:-curses.h}>
903 #include <${cf_header}>],
905 [cf_cv_unctrl_header=$cf_header
907 [cf_cv_unctrl_header=no])
910 case $cf_cv_unctrl_header in #(vi
912 AC_MSG_WARN(unctrl.h header not found)
917 case $cf_cv_unctrl_header in #(vi
919 AC_DEFINE(HAVE_UNCTRL_H)
921 ncurses/unctrl.h) #(vi
922 AC_DEFINE(HAVE_NCURSES_UNCTRL_H)
925 AC_DEFINE(HAVE_NCURSESW_UNCTRL_H)
929 dnl ---------------------------------------------------------------------------
930 dnl CF_CURSES_WACS_MAP version: 5 updated: 2011/01/15 11:28:59
931 dnl ------------------
932 dnl Check for likely values of wacs_map[].
933 AC_DEFUN([CF_CURSES_WACS_MAP],
935 AC_CACHE_CHECK(for wide alternate character set array, cf_cv_curses_wacs_map,[
936 cf_cv_curses_wacs_map=unknown
937 for name in wacs_map _wacs_map __wacs_map _nc_wacs _wacs_char
940 #ifndef _XOPEN_SOURCE_EXTENDED
941 #define _XOPEN_SOURCE_EXTENDED
943 #include <${cf_cv_ncurses_header:-curses.h}>],
944 [void *foo = &($name['k'])],
945 [cf_cv_curses_wacs_map=$name
949 test "$cf_cv_curses_wacs_map" != unknown && AC_DEFINE_UNQUOTED(CURSES_WACS_ARRAY,$cf_cv_curses_wacs_map)
951 dnl ---------------------------------------------------------------------------
952 dnl CF_CURSES_WACS_SYMBOLS version: 1 updated: 2011/01/15 11:28:59
953 dnl ----------------------
954 dnl Do a check to see if the WACS_xxx constants are defined compatibly with
955 dnl X/Open Curses. In particular, NetBSD's implementation of the WACS_xxx
956 dnl constants is broken since those constants do not point to cchar_t's.
957 AC_DEFUN([CF_CURSES_WACS_SYMBOLS],
959 AC_REQUIRE([CF_CURSES_WACS_MAP])
961 AC_CACHE_CHECK(for wide alternate character constants, cf_cv_curses_wacs_symbols,[
962 cf_cv_curses_wacs_symbols=no
963 if test "$cf_cv_curses_wacs_map" != unknown
966 #ifndef _XOPEN_SOURCE_EXTENDED
967 #define _XOPEN_SOURCE_EXTENDED
969 #include <${cf_cv_ncurses_header:-curses.h}>],
970 [cchar_t *foo = WACS_PLUS;
971 $cf_cv_curses_wacs_map['k'] = *WACS_PLUS],
972 [cf_cv_curses_wacs_symbols=yes])
975 #ifndef _XOPEN_SOURCE_EXTENDED
976 #define _XOPEN_SOURCE_EXTENDED
978 #include <${cf_cv_ncurses_header:-curses.h}>],
979 [cchar_t *foo = WACS_PLUS],
980 [cf_cv_curses_wacs_symbols=yes])
984 test "$cf_cv_curses_wacs_symbols" != no && AC_DEFINE(CURSES_WACS_SYMBOLS)
986 dnl ---------------------------------------------------------------------------
987 dnl CF_DIRNAME version: 4 updated: 2002/12/21 19:25:52
989 dnl "dirname" is not portable, so we fake it with a shell script.
990 AC_DEFUN([CF_DIRNAME],[$1=`echo $2 | sed -e 's%/[[^/]]*$%%'`])dnl
991 dnl ---------------------------------------------------------------------------
992 dnl CF_DISABLE_ECHO version: 11 updated: 2009/12/13 13:16:57
994 dnl You can always use "make -n" to see the actual options, but it's hard to
995 dnl pick out/analyze warning messages when the compile-line is long.
998 dnl ECHO_LT - symbol to control if libtool is verbose
999 dnl ECHO_LD - symbol to prefix "cc -o" lines
1000 dnl RULE_CC - symbol to put before implicit "cc -c" lines (e.g., .c.o)
1001 dnl SHOW_CC - symbol to put before explicit "cc -c" lines
1002 dnl ECHO_CC - symbol to put before any "cc" line
1004 AC_DEFUN([CF_DISABLE_ECHO],[
1005 AC_MSG_CHECKING(if you want to see long compiling messages)
1006 CF_ARG_DISABLE(echo,
1007 [ --disable-echo display "compiling" commands],
1010 ECHO_LD='@echo linking [$]@;'
1011 RULE_CC='@echo compiling [$]<'
1012 SHOW_CC='@echo compiling [$]@'
1021 AC_MSG_RESULT($enableval)
1028 dnl ---------------------------------------------------------------------------
1029 dnl CF_DISABLE_LEAKS version: 6 updated: 2010/07/23 04:14:32
1030 dnl ----------------
1031 dnl Combine no-leak checks with the libraries or tools that are used for the
1033 AC_DEFUN([CF_DISABLE_LEAKS],[
1035 AC_REQUIRE([CF_WITH_DMALLOC])
1036 AC_REQUIRE([CF_WITH_DBMALLOC])
1037 AC_REQUIRE([CF_WITH_VALGRIND])
1039 AC_MSG_CHECKING(if you want to perform memory-leak testing)
1040 AC_ARG_ENABLE(leaks,
1041 [ --disable-leaks test: free permanent memory, analyze leaks],
1042 [if test "x$enableval" = xno; then with_no_leaks=yes; else with_no_leaks=no; fi],
1043 : ${with_no_leaks:=no})
1044 AC_MSG_RESULT($with_no_leaks)
1046 if test "$with_no_leaks" = yes ; then
1048 AC_DEFINE(YY_NO_LEAKS)
1051 dnl ---------------------------------------------------------------------------
1052 dnl CF_ENABLE_WARNINGS version: 4 updated: 2009/07/26 17:53:03
1053 dnl ------------------
1054 dnl Configure-option to enable gcc warnings
1055 AC_DEFUN([CF_ENABLE_WARNINGS],[
1056 if ( test "$GCC" = yes || test "$GXX" = yes )
1058 AC_MSG_CHECKING(if you want to turn on gcc warnings)
1059 CF_ARG_ENABLE(warnings,
1060 [ --enable-warnings test: turn on gcc compiler warnings],
1061 [with_warnings=yes],
1063 AC_MSG_RESULT($with_warnings)
1064 if test "$with_warnings" = "yes"
1071 dnl ---------------------------------------------------------------------------
1072 dnl CF_FIND_LIBRARY version: 9 updated: 2008/03/23 14:48:54
1074 dnl Look for a non-standard library, given parameters for AC_TRY_LINK. We
1075 dnl prefer a standard location, and use -L options only if we do not find the
1076 dnl library in the standard library location(s).
1077 dnl $1 = library name
1078 dnl $2 = library class, usually the same as library name
1080 dnl $4 = code fragment to compile/link
1081 dnl $5 = corresponding function-name
1082 dnl $6 = flag, nonnull if failure should not cause an error-exit
1084 dnl Sets the variable "$cf_libdir" as a side-effect, so we can see if we had
1085 dnl to use a -L option.
1086 AC_DEFUN([CF_FIND_LIBRARY],
1088 eval 'cf_cv_have_lib_'$1'=no'
1091 eval 'cf_cv_have_lib_'$1'=yes',[
1092 cf_save_LIBS="$LIBS"
1093 AC_MSG_CHECKING(for $5 in -l$1)
1095 AC_TRY_LINK([$3],[$4],
1097 eval 'cf_cv_have_lib_'$1'=yes'
1100 CF_LIBRARY_PATH(cf_search,$2)
1101 for cf_libdir in $cf_search
1103 AC_MSG_CHECKING(for -l$1 in $cf_libdir)
1104 LIBS="-L$cf_libdir -l$1 $cf_save_LIBS"
1105 AC_TRY_LINK([$3],[$4],
1107 eval 'cf_cv_have_lib_'$1'=yes'
1110 LIBS="$cf_save_LIBS"])
1114 eval 'cf_found_library=[$]cf_cv_have_lib_'$1
1116 if test $cf_found_library = no ; then
1117 AC_MSG_ERROR(Cannot link $1 library)
1121 dnl ---------------------------------------------------------------------------
1122 dnl CF_FIND_LINKAGE version: 19 updated: 2010/05/29 16:31:02
1124 dnl Find a library (specifically the linkage used in the code fragment),
1125 dnl searching for it if it is not already in the library path.
1126 dnl See also CF_ADD_SEARCHPATH.
1128 dnl Parameters (4-on are optional):
1129 dnl $1 = headers for library entrypoint
1130 dnl $2 = code fragment for library entrypoint
1131 dnl $3 = the library name without the "-l" option or ".so" suffix.
1132 dnl $4 = action to perform if successful (default: update CPPFLAGS, etc)
1133 dnl $5 = action to perform if not successful
1134 dnl $6 = module name, if not the same as the library name
1135 dnl $7 = extra libraries
1137 dnl Sets these variables:
1138 dnl $cf_cv_find_linkage_$3 - yes/no according to whether linkage is found
1139 dnl $cf_cv_header_path_$3 - include-directory if needed
1140 dnl $cf_cv_library_path_$3 - library-directory if needed
1141 dnl $cf_cv_library_file_$3 - library-file if needed, e.g., -l$3
1142 AC_DEFUN([CF_FIND_LINKAGE],[
1144 # If the linkage is not already in the $CPPFLAGS/$LDFLAGS configuration, these
1145 # will be set on completion of the AC_TRY_LINK below.
1146 cf_cv_header_path_$3=
1147 cf_cv_library_path_$3=
1149 CF_MSG_LOG([Starting [FIND_LINKAGE]($3,$6)])
1151 cf_save_LIBS="$LIBS"
1153 AC_TRY_LINK([$1],[$2],[
1154 cf_cv_find_linkage_$3=yes
1155 cf_cv_header_path_$3=/usr/include
1156 cf_cv_library_path_$3=/usr/lib
1159 LIBS="-l$3 $7 $cf_save_LIBS"
1161 AC_TRY_LINK([$1],[$2],[
1162 cf_cv_find_linkage_$3=yes
1163 cf_cv_header_path_$3=/usr/include
1164 cf_cv_library_path_$3=/usr/lib
1165 cf_cv_library_file_$3="-l$3"
1167 cf_cv_find_linkage_$3=no
1168 LIBS="$cf_save_LIBS"
1170 CF_VERBOSE(find linkage for $3 library)
1171 CF_MSG_LOG([Searching for headers in [FIND_LINKAGE]($3,$6)])
1173 cf_save_CPPFLAGS="$CPPFLAGS"
1174 cf_test_CPPFLAGS="$CPPFLAGS"
1176 CF_HEADER_PATH(cf_search,ifelse([$6],,[$3],[$6]))
1177 for cf_cv_header_path_$3 in $cf_search
1179 if test -d $cf_cv_header_path_$3 ; then
1180 CF_VERBOSE(... testing $cf_cv_header_path_$3)
1181 CPPFLAGS="$cf_save_CPPFLAGS -I$cf_cv_header_path_$3"
1182 AC_TRY_COMPILE([$1],[$2],[
1183 CF_VERBOSE(... found $3 headers in $cf_cv_header_path_$3)
1184 cf_cv_find_linkage_$3=maybe
1185 cf_test_CPPFLAGS="$CPPFLAGS"
1187 CPPFLAGS="$cf_save_CPPFLAGS"
1192 if test "$cf_cv_find_linkage_$3" = maybe ; then
1194 CF_MSG_LOG([Searching for $3 library in [FIND_LINKAGE]($3,$6)])
1196 cf_save_LIBS="$LIBS"
1197 cf_save_LDFLAGS="$LDFLAGS"
1200 CPPFLAGS="$cf_test_CPPFLAGS"
1201 LIBS="-l$3 $7 $cf_save_LIBS"
1202 AC_TRY_LINK([$1],[$2],[
1203 CF_VERBOSE(... found $3 library in system)
1204 cf_cv_find_linkage_$3=yes])
1205 CPPFLAGS="$cf_save_CPPFLAGS"
1206 LIBS="$cf_save_LIBS"
1209 if test "$cf_cv_find_linkage_$3" != yes ; then
1210 CF_LIBRARY_PATH(cf_search,$3)
1211 for cf_cv_library_path_$3 in $cf_search
1213 if test -d $cf_cv_library_path_$3 ; then
1214 CF_VERBOSE(... testing $cf_cv_library_path_$3)
1215 CPPFLAGS="$cf_test_CPPFLAGS"
1216 LIBS="-l$3 $7 $cf_save_LIBS"
1217 LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_$3"
1218 AC_TRY_LINK([$1],[$2],[
1219 CF_VERBOSE(... found $3 library in $cf_cv_library_path_$3)
1220 cf_cv_find_linkage_$3=yes
1221 cf_cv_library_file_$3="-l$3"
1223 CPPFLAGS="$cf_save_CPPFLAGS"
1224 LIBS="$cf_save_LIBS"
1225 LDFLAGS="$cf_save_LDFLAGS"
1229 CPPFLAGS="$cf_save_CPPFLAGS"
1230 LDFLAGS="$cf_save_LDFLAGS"
1234 cf_cv_find_linkage_$3=no
1239 LIBS="$cf_save_LIBS"
1241 if test "$cf_cv_find_linkage_$3" = yes ; then
1243 CF_ADD_INCDIR($cf_cv_header_path_$3)
1244 CF_ADD_LIBDIR($cf_cv_library_path_$3)
1248 ifelse([$5],,AC_MSG_WARN(Cannot find $3 library),[$5])
1251 dnl ---------------------------------------------------------------------------
1252 dnl CF_FUNC_CURSES_VERSION version: 5 updated: 2010/10/23 15:54:49
1253 dnl ----------------------
1254 dnl Solaris has a data item 'curses_version', which confuses AC_CHECK_FUNCS.
1255 dnl It's a character string "SVR4", not documented.
1256 AC_DEFUN([CF_FUNC_CURSES_VERSION],
1258 AC_CACHE_CHECK(for function curses_version, cf_cv_func_curses_version,[
1260 #include <${cf_cv_ncurses_header:-curses.h}>
1264 sprintf(temp, "%s\n", curses_version());
1265 ${cf_cv_main_return:-return}(0);
1267 ,[cf_cv_func_curses_version=yes]
1268 ,[cf_cv_func_curses_version=no]
1269 ,[cf_cv_func_curses_version=unknown])
1271 test "$cf_cv_func_curses_version" = yes && AC_DEFINE(HAVE_CURSES_VERSION)
1273 dnl ---------------------------------------------------------------------------
1274 dnl CF_GCC_ATTRIBUTES version: 14 updated: 2010/10/23 15:52:32
1275 dnl -----------------
1276 dnl Test for availability of useful gcc __attribute__ directives to quiet
1277 dnl compiler warnings. Though useful, not all are supported -- and contrary
1278 dnl to documentation, unrecognized directives cause older compilers to barf.
1279 AC_DEFUN([CF_GCC_ATTRIBUTES],
1281 if test "$GCC" = yes
1283 cat > conftest.i <<EOF
1285 #define GCC_PRINTF 0
1290 #ifndef GCC_NORETURN
1291 #define GCC_NORETURN /* nothing */
1294 #define GCC_UNUSED /* nothing */
1297 if test "$GCC" = yes
1299 AC_CHECKING([for $CC __attribute__ directives])
1300 cat > conftest.$ac_ext <<EOF
1301 #line __oline__ "${as_me:-configure}"
1302 #include "confdefs.h"
1303 #include "conftest.h"
1304 #include "conftest.i"
1306 #define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
1308 #define GCC_PRINTFLIKE(fmt,var) /*nothing*/
1311 #define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
1313 #define GCC_SCANFLIKE(fmt,var) /*nothing*/
1315 extern void wow(char *,...) GCC_SCANFLIKE(1,2);
1316 extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
1317 extern void foo(void) GCC_NORETURN;
1318 int main(int argc GCC_UNUSED, char *argv[[]] GCC_UNUSED) { return 0; }
1320 cf_printf_attribute=no
1321 cf_scanf_attribute=no
1322 for cf_attribute in scanf printf unused noreturn
1324 CF_UPPER(cf_ATTRIBUTE,$cf_attribute)
1325 cf_directive="__attribute__(($cf_attribute))"
1326 echo "checking for $CC $cf_directive" 1>&AC_FD_CC
1328 case $cf_attribute in #(vi
1330 cf_printf_attribute=yes
1331 cat >conftest.h <<EOF
1332 #define GCC_$cf_ATTRIBUTE 1
1336 cf_scanf_attribute=yes
1337 cat >conftest.h <<EOF
1338 #define GCC_$cf_ATTRIBUTE 1
1342 cat >conftest.h <<EOF
1343 #define GCC_$cf_ATTRIBUTE $cf_directive
1348 if AC_TRY_EVAL(ac_compile); then
1349 test -n "$verbose" && AC_MSG_RESULT(... $cf_attribute)
1350 cat conftest.h >>confdefs.h
1351 case $cf_attribute in #(vi
1353 if test "$cf_printf_attribute" = no ; then
1354 cat >>confdefs.h <<EOF
1355 #define GCC_PRINTFLIKE(fmt,var) /* nothing */
1358 cat >>confdefs.h <<EOF
1359 #define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
1364 if test "$cf_scanf_attribute" = no ; then
1365 cat >>confdefs.h <<EOF
1366 #define GCC_SCANFLIKE(fmt,var) /* nothing */
1369 cat >>confdefs.h <<EOF
1370 #define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
1378 fgrep define conftest.i >>confdefs.h
1383 dnl ---------------------------------------------------------------------------
1384 dnl CF_GCC_VERSION version: 5 updated: 2010/04/24 11:02:31
1386 dnl Find version of gcc
1387 AC_DEFUN([CF_GCC_VERSION],[
1388 AC_REQUIRE([AC_PROG_CC])
1390 if test "$GCC" = yes ; then
1391 AC_MSG_CHECKING(version of $CC)
1392 GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
1393 test -z "$GCC_VERSION" && GCC_VERSION=unknown
1394 AC_MSG_RESULT($GCC_VERSION)
1397 dnl ---------------------------------------------------------------------------
1398 dnl CF_GCC_WARNINGS version: 27 updated: 2010/10/23 15:52:32
1400 dnl Check if the compiler supports useful warning options. There's a few that
1401 dnl we don't use, simply because they're too noisy:
1403 dnl -Wconversion (useful in older versions of gcc, but not in gcc 2.7.x)
1404 dnl -Wredundant-decls (system headers make this too noisy)
1405 dnl -Wtraditional (combines too many unrelated messages, only a few useful)
1406 dnl -Wwrite-strings (too noisy, but should review occasionally). This
1407 dnl is enabled for ncurses using "--enable-const".
1411 dnl $1 is an optional list of gcc warning flags that a particular
1412 dnl application might want to use, e.g., "no-unused" for
1415 dnl If $with_ext_const is "yes", add a check for -Wwrite-strings
1417 AC_DEFUN([CF_GCC_WARNINGS],
1419 AC_REQUIRE([CF_GCC_VERSION])
1420 CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
1422 cat > conftest.$ac_ext <<EOF
1423 #line __oline__ "${as_me:-configure}"
1424 int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
1427 if test "$INTEL_COMPILER" = yes
1429 # The "-wdXXX" options suppress warnings:
1430 # remark #1419: external declaration in primary source file
1431 # remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
1432 # remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
1433 # remark #193: zero used for undefined preprocessing identifier
1434 # remark #593: variable "curs_sb_left_arrow" was set but never used
1435 # remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
1436 # remark #869: parameter "tw" was never referenced
1437 # remark #981: operands are evaluated in unspecified order
1438 # warning #279: controlling expression is constant
1440 AC_CHECKING([for $CC warning options])
1441 cf_save_CFLAGS="$CFLAGS"
1442 EXTRA_CFLAGS="-Wall"
1454 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
1455 if AC_TRY_EVAL(ac_compile); then
1456 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1457 EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
1460 CFLAGS="$cf_save_CFLAGS"
1462 elif test "$GCC" = yes
1464 AC_CHECKING([for $CC warning options])
1465 cf_save_CFLAGS="$CFLAGS"
1468 test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
1469 for cf_opt in W Wall \
1470 Wbad-function-cast \
1474 Wmissing-declarations \
1475 Wmissing-prototypes \
1479 Wstrict-prototypes \
1480 Wundef $cf_warn_CONST $1
1482 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
1483 if AC_TRY_EVAL(ac_compile); then
1484 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1485 case $cf_opt in #(vi
1487 CPPFLAGS="$CPPFLAGS -DXTSTRINGDEFINES"
1490 case $GCC_VERSION in
1492 CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
1497 EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
1500 CFLAGS="$cf_save_CFLAGS"
1504 AC_SUBST(EXTRA_CFLAGS)
1506 dnl ---------------------------------------------------------------------------
1507 dnl CF_GETOPT_HEADER version: 4 updated: 2009/08/31 20:07:52
1508 dnl ----------------
1509 dnl Check for getopt's variables which are commonly defined in stdlib.h,
1510 dnl unistd.h or (nonstandard) in getopt.h
1511 AC_DEFUN([CF_GETOPT_HEADER],
1513 AC_HAVE_HEADERS(unistd.h getopt.h)
1514 AC_CACHE_CHECK(for header declaring getopt variables,cf_cv_getopt_header,[
1515 cf_cv_getopt_header=none
1516 for cf_header in stdio.h stdlib.h unistd.h getopt.h
1519 #include <$cf_header>],
1520 [int x = optind; char *y = optarg],
1521 [cf_cv_getopt_header=$cf_header
1525 if test $cf_cv_getopt_header != none ; then
1526 AC_DEFINE(HAVE_GETOPT_HEADER)
1529 dnl ---------------------------------------------------------------------------
1530 dnl CF_GNU_SOURCE version: 6 updated: 2005/07/09 13:23:07
1532 dnl Check if we must define _GNU_SOURCE to get a reasonable value for
1533 dnl _XOPEN_SOURCE, upon which many POSIX definitions depend. This is a defect
1534 dnl (or misfeature) of glibc2, which breaks portability of many applications,
1535 dnl since it is interwoven with GNU extensions.
1537 dnl Well, yes we could work around it...
1538 AC_DEFUN([CF_GNU_SOURCE],
1540 AC_CACHE_CHECK(if we must define _GNU_SOURCE,cf_cv_gnu_source,[
1541 AC_TRY_COMPILE([#include <sys/types.h>],[
1542 #ifndef _XOPEN_SOURCE
1545 [cf_cv_gnu_source=no],
1546 [cf_save="$CPPFLAGS"
1547 CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
1548 AC_TRY_COMPILE([#include <sys/types.h>],[
1549 #ifdef _XOPEN_SOURCE
1552 [cf_cv_gnu_source=no],
1553 [cf_cv_gnu_source=yes])
1557 test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
1559 dnl ---------------------------------------------------------------------------
1560 dnl CF_HEADER_PATH version: 12 updated: 2010/05/05 05:22:40
1562 dnl Construct a search-list of directories for a nonstandard header-file
1565 dnl $1 = the variable to return as result
1566 dnl $2 = the package name
1567 AC_DEFUN([CF_HEADER_PATH],
1571 # collect the current set of include-directories from compiler flags
1572 cf_header_path_list=""
1573 if test -n "${CFLAGS}${CPPFLAGS}" ; then
1574 for cf_header_path in $CPPFLAGS $CFLAGS
1576 case $cf_header_path in #(vi
1578 cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'`
1579 CF_ADD_SUBDIR_PATH($1,$2,include,$cf_header_path,NONE)
1580 cf_header_path_list="$cf_header_path_list [$]$1"
1586 # add the variations for the package we are looking for
1587 CF_SUBDIR_PATH($1,$2,include)
1589 test "$includedir" != NONE && \
1590 test "$includedir" != "/usr/include" && \
1591 test -d "$includedir" && {
1592 test -d $includedir && $1="[$]$1 $includedir"
1593 test -d $includedir/$2 && $1="[$]$1 $includedir/$2"
1596 test "$oldincludedir" != NONE && \
1597 test "$oldincludedir" != "/usr/include" && \
1598 test -d "$oldincludedir" && {
1599 test -d $oldincludedir && $1="[$]$1 $oldincludedir"
1600 test -d $oldincludedir/$2 && $1="[$]$1 $oldincludedir/$2"
1603 $1="[$]$1 $cf_header_path_list"
1605 dnl ---------------------------------------------------------------------------
1606 dnl CF_INHERIT_SCRIPT version: 2 updated: 2003/03/01 23:50:42
1607 dnl -----------------
1608 dnl If we do not have a given script, look for it in the parent directory.
1609 AC_DEFUN([CF_INHERIT_SCRIPT],
1611 test -f $1 || ( test -f ../$1 && cp ../$1 ./ )
1613 dnl ---------------------------------------------------------------------------
1614 dnl CF_INTEL_COMPILER version: 4 updated: 2010/05/26 05:38:42
1615 dnl -----------------
1616 dnl Check if the given compiler is really the Intel compiler for Linux. It
1617 dnl tries to imitate gcc, but does not return an error when it finds a mismatch
1618 dnl between prototypes, e.g., as exercised by CF_MISSING_CHECK.
1620 dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
1621 dnl ensure that it is not mistaken for gcc/g++. It is normally invoked from
1622 dnl the wrappers for gcc and g++ warnings.
1624 dnl $1 = GCC (default) or GXX
1625 dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS
1626 dnl $3 = CFLAGS (default) or CXXFLAGS
1627 AC_DEFUN([CF_INTEL_COMPILER],[
1628 ifelse([$2],,INTEL_COMPILER,[$2])=no
1630 if test "$ifelse([$1],,[$1],GCC)" = yes ; then
1633 AC_MSG_CHECKING(if this is really Intel ifelse([$1],GXX,C++,C) compiler)
1634 cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
1635 ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -no-gcc"
1637 #ifdef __INTEL_COMPILER
1641 ],[ifelse([$2],,INTEL_COMPILER,[$2])=yes
1642 cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
1644 ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
1645 AC_MSG_RESULT($ifelse([$2],,INTEL_COMPILER,[$2]))
1650 dnl ---------------------------------------------------------------------------
1651 dnl CF_LIBRARY_PATH version: 9 updated: 2010/03/28 12:52:50
1653 dnl Construct a search-list of directories for a nonstandard library-file
1656 dnl $1 = the variable to return as result
1657 dnl $2 = the package name
1658 AC_DEFUN([CF_LIBRARY_PATH],
1661 cf_library_path_list=""
1662 if test -n "${LDFLAGS}${LIBS}" ; then
1663 for cf_library_path in $LDFLAGS $LIBS
1665 case $cf_library_path in #(vi
1667 cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'`
1668 CF_ADD_SUBDIR_PATH($1,$2,lib,$cf_library_path,NONE)
1669 cf_library_path_list="$cf_library_path_list [$]$1"
1675 CF_SUBDIR_PATH($1,$2,lib)
1677 $1="$cf_library_path_list [$]$1"
1679 dnl ---------------------------------------------------------------------------
1680 dnl CF_MAKE_TAGS version: 6 updated: 2010/10/23 15:52:32
1682 dnl Generate tags/TAGS targets for makefiles. Do not generate TAGS if we have
1683 dnl a monocase filesystem.
1684 AC_DEFUN([CF_MAKE_TAGS],[
1685 AC_REQUIRE([CF_MIXEDCASE_FILENAMES])
1687 AC_CHECK_PROGS(CTAGS, exctags ctags)
1688 AC_CHECK_PROGS(ETAGS, exetags etags)
1690 AC_CHECK_PROG(MAKE_LOWER_TAGS, ${CTAGS:-ctags}, yes, no)
1692 if test "$cf_cv_mixedcase" = yes ; then
1693 AC_CHECK_PROG(MAKE_UPPER_TAGS, ${ETAGS:-etags}, yes, no)
1698 if test "$MAKE_UPPER_TAGS" = yes ; then
1704 if test "$MAKE_LOWER_TAGS" = yes ; then
1713 AC_SUBST(MAKE_UPPER_TAGS)
1714 AC_SUBST(MAKE_LOWER_TAGS)
1716 dnl ---------------------------------------------------------------------------
1717 dnl CF_MATH_LIB version: 8 updated: 2010/05/29 16:31:02
1719 dnl Checks for libraries. At least one UNIX system, Apple Macintosh
1720 dnl Rhapsody 5.5, does not have -lm. We cannot use the simpler
1721 dnl AC_CHECK_LIB(m,sin), because that fails for C++.
1722 AC_DEFUN([CF_MATH_LIB],
1724 AC_CACHE_CHECK(if -lm needed for math functions,
1730 [double x = rand(); printf("result = %g\n", ]ifelse([$2],,sin(x),$2)[)],
1731 [cf_cv_need_libm=no],
1732 [cf_cv_need_libm=yes])])
1733 if test "$cf_cv_need_libm" = yes
1740 dnl ---------------------------------------------------------------------------
1741 dnl CF_MIN_GETCCHAR version: 3 updated: 2010/10/23 15:54:49
1744 dnl Check whether getcchar's return value counts the trailing null in a wchar_t
1745 dnl string, or not. X/Open says it does, but Tru64 and Solaris do not do this.
1746 AC_DEFUN([CF_MIN_GETCCHAR],[
1747 AC_CACHE_CHECK(if getcchar counts trailing null,cf_cv_min_getcchar,[
1751 #include <${cf_cv_ncurses_header:-curses.h}>
1759 setcchar(temp, data, 0, 0, (void *)0);
1760 count = getcchar(temp, (wchar_t *)0, (attr_t *)0, (short *)0, (void *)0);
1761 ${cf_cv_main_return:-return}(count != 0);
1763 [cf_cv_min_getcchar=no],
1764 [cf_cv_min_getcchar=yes],
1765 [cf_cv_min_getcchar=yes])
1767 if test "$cf_cv_min_getcchar" = yes ; then
1768 AC_DEFINE(MIN_GETCCHAR,1)
1771 dnl ---------------------------------------------------------------------------
1772 dnl CF_MIXEDCASE_FILENAMES version: 3 updated: 2003/09/20 17:07:55
1773 dnl ----------------------
1774 dnl Check if the file-system supports mixed-case filenames. If we're able to
1775 dnl create a lowercase name and see it as uppercase, it doesn't support that.
1776 AC_DEFUN([CF_MIXEDCASE_FILENAMES],
1778 AC_CACHE_CHECK(if filesystem supports mixed-case filenames,cf_cv_mixedcase,[
1779 if test "$cross_compiling" = yes ; then
1780 case $target_alias in #(vi
1781 *-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-mingw32*|*-uwin*) #(vi
1789 rm -f conftest CONFTEST
1791 if test -f CONFTEST ; then
1796 rm -f conftest CONFTEST
1799 test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES)
1801 dnl ---------------------------------------------------------------------------
1802 dnl CF_MSG_LOG version: 5 updated: 2010/10/23 15:52:32
1804 dnl Write a debug message to config.log, along with the line number in the
1805 dnl configure script.
1806 AC_DEFUN([CF_MSG_LOG],[
1807 echo "${as_me:-configure}:__oline__: testing $* ..." 1>&AC_FD_CC
1809 dnl ---------------------------------------------------------------------------
1810 dnl CF_NCURSES_CC_CHECK version: 4 updated: 2007/07/29 10:39:05
1811 dnl -------------------
1812 dnl Check if we can compile with ncurses' header file
1813 dnl $1 is the cache variable to set
1814 dnl $2 is the header-file to include
1815 dnl $3 is the root name (ncurses or ncursesw)
1816 AC_DEFUN([CF_NCURSES_CC_CHECK],[
1818 ]ifelse($3,ncursesw,[
1819 #define _XOPEN_SOURCE_EXTENDED
1820 #undef HAVE_LIBUTF8_H /* in case we used CF_UTF8_LIB */
1821 #define HAVE_LIBUTF8_H /* to force ncurses' header file to use cchar_t */
1824 #ifdef NCURSES_VERSION
1825 ]ifelse($3,ncursesw,[
1830 printf("%s\n", NCURSES_VERSION);
1842 dnl ---------------------------------------------------------------------------
1843 dnl CF_NCURSES_CONFIG version: 8 updated: 2010/07/08 05:17:30
1844 dnl -----------------
1845 dnl Tie together the configure-script macros for ncurses.
1846 dnl Prefer the "-config" script from ncurses 6.x, to simplify analysis.
1847 dnl Allow that to be overridden using the $NCURSES_CONFIG environment variable.
1849 dnl $1 is the root library name (default: "ncurses")
1850 AC_DEFUN([CF_NCURSES_CONFIG],
1852 cf_ncuconfig_root=ifelse($1,,ncurses,$1)
1854 echo "Looking for ${cf_ncuconfig_root}-config"
1855 AC_PATH_PROGS(NCURSES_CONFIG,${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config,none)
1857 if test "$NCURSES_CONFIG" != none ; then
1859 CPPFLAGS="$CPPFLAGS `$NCURSES_CONFIG --cflags`"
1860 CF_ADD_LIBS(`$NCURSES_CONFIG --libs`)
1862 # even with config script, some packages use no-override for curses.h
1863 CF_CURSES_HEADER(ifelse($1,,ncurses,$1))
1865 dnl like CF_NCURSES_CPPFLAGS
1868 dnl like CF_NCURSES_LIBS
1869 CF_UPPER(cf_nculib_ROOT,HAVE_LIB$cf_ncuconfig_root)
1870 AC_DEFINE_UNQUOTED($cf_nculib_ROOT)
1872 dnl like CF_NCURSES_VERSION
1873 cf_cv_ncurses_version=`$NCURSES_CONFIG --version`
1877 CF_NCURSES_CPPFLAGS(ifelse($1,,ncurses,$1))
1878 CF_NCURSES_LIBS(ifelse($1,,ncurses,$1))
1882 dnl ---------------------------------------------------------------------------
1883 dnl CF_NCURSES_CPPFLAGS version: 20 updated: 2010/11/20 17:02:38
1884 dnl -------------------
1885 dnl Look for the SVr4 curses clone 'ncurses' in the standard places, adjusting
1886 dnl the CPPFLAGS variable so we can include its header.
1888 dnl The header files may be installed as either curses.h, or ncurses.h (would
1889 dnl be obsolete, except that some packagers prefer this name to distinguish it
1890 dnl from a "native" curses implementation). If not installed for overwrite,
1891 dnl the curses.h file would be in an ncurses subdirectory (e.g.,
1892 dnl /usr/include/ncurses), but someone may have installed overwriting the
1893 dnl vendor's curses. Only very old versions (pre-1.9.2d, the first autoconf'd
1894 dnl version) of ncurses don't define either __NCURSES_H or NCURSES_VERSION in
1897 dnl If the installer has set $CFLAGS or $CPPFLAGS so that the ncurses header
1898 dnl is already in the include-path, don't even bother with this, since we cannot
1899 dnl easily determine which file it is. In this case, it has to be <curses.h>.
1901 dnl The optional parameter gives the root name of the library, in case it is
1902 dnl not installed as the default curses library. That is how the
1903 dnl wide-character version of ncurses is installed.
1904 AC_DEFUN([CF_NCURSES_CPPFLAGS],
1905 [AC_REQUIRE([CF_WITH_CURSES_DIR])
1907 AC_PROVIDE([CF_CURSES_CPPFLAGS])dnl
1908 cf_ncuhdr_root=ifelse($1,,ncurses,$1)
1910 test -n "$cf_cv_curses_dir" && \
1911 test "$cf_cv_curses_dir" != "no" && { \
1912 CF_ADD_INCDIR($cf_cv_curses_dir/include/$cf_ncuhdr_root)
1915 AC_CACHE_CHECK(for $cf_ncuhdr_root header in include-path, cf_cv_ncurses_h,[
1916 cf_header_list="$cf_ncuhdr_root/curses.h $cf_ncuhdr_root/ncurses.h"
1917 ( test "$cf_ncuhdr_root" = ncurses || test "$cf_ncuhdr_root" = ncursesw ) && cf_header_list="$cf_header_list curses.h ncurses.h"
1918 for cf_header in $cf_header_list
1920 CF_NCURSES_CC_CHECK(cf_cv_ncurses_h,$cf_header,$1)
1921 test "$cf_cv_ncurses_h" != no && break
1928 # some applications need this, but should check for NCURSES_VERSION
1933 dnl ---------------------------------------------------------------------------
1934 dnl CF_NCURSES_EXT_FUNCS version: 3 updated: 2010/11/13 19:43:23
1935 dnl --------------------
1936 dnl Since 2007/11/17, ncurses has defined NCURSES_EXT_FUNCS; earlier versions
1937 dnl may provide these functions. Define the symbol if it is not defined, and
1939 AC_DEFUN([CF_NCURSES_EXT_FUNCS],
1941 AC_CACHE_CHECK(for ncurses extended functions,cf_cv_ncurses_ext_funcs,[
1943 #include <${cf_cv_ncurses_header:-curses.h}>],
1945 int x = NCURSES_EXT_FUNCS
1946 ],[cf_cv_ncurses_ext_funcs=defined],[
1948 #include <${cf_cv_ncurses_header:-curses.h}>],
1950 (void) assume_default_colors (0, 0);
1951 (void) curses_version ();
1952 (void) define_key (0, 0);
1953 (void) is_term_resized (0, 0);
1954 (void) key_defined (0);
1955 (void) keybound (0, 0);
1956 (void) keyok (0, 0);
1957 (void) resize_term (0, 0);
1958 (void) resizeterm (0, 0);
1959 (void) use_default_colors ();
1960 (void) use_extended_names (0);
1961 (void) wresize (0, 0, 0);],
1962 [cf_cv_ncurses_ext_funcs=yes],
1963 [cf_cv_ncurses_ext_funcs=no])
1966 test "$cf_cv_ncurses_ext_funcs" = yes && AC_DEFINE(NCURSES_EXT_FUNCS)
1968 dnl ---------------------------------------------------------------------------
1969 dnl CF_NCURSES_HEADER version: 2 updated: 2008/03/23 14:48:54
1970 dnl -----------------
1971 dnl Find a "curses" header file, e.g,. "curses.h", or one of the more common
1972 dnl variations of ncurses' installs.
1974 dnl See also CF_CURSES_HEADER, which sets the same cache variable.
1975 AC_DEFUN([CF_NCURSES_HEADER],[
1977 if test "$cf_cv_ncurses_h" != no ; then
1978 cf_cv_ncurses_header=$cf_cv_ncurses_h
1981 AC_CACHE_CHECK(for $cf_ncuhdr_root include-path, cf_cv_ncurses_h2,[
1982 test -n "$verbose" && echo
1983 CF_HEADER_PATH(cf_search,$cf_ncuhdr_root)
1984 test -n "$verbose" && echo search path $cf_search
1985 cf_save2_CPPFLAGS="$CPPFLAGS"
1986 for cf_incdir in $cf_search
1988 CF_ADD_INCDIR($cf_incdir)
1993 CF_NCURSES_CC_CHECK(cf_cv_ncurses_h2,$cf_header,$1)
1994 if test "$cf_cv_ncurses_h2" != no ; then
1995 cf_cv_ncurses_h2=$cf_incdir/$cf_header
1996 test -n "$verbose" && echo $ac_n " ... found $ac_c" 1>&AC_FD_MSG
1999 test -n "$verbose" && echo " ... tested $cf_incdir/$cf_header" 1>&AC_FD_MSG
2001 CPPFLAGS="$cf_save2_CPPFLAGS"
2002 test "$cf_cv_ncurses_h2" != no && break
2004 test "$cf_cv_ncurses_h2" = no && AC_MSG_ERROR(not found)
2007 CF_DIRNAME(cf_1st_incdir,$cf_cv_ncurses_h2)
2008 cf_cv_ncurses_header=`basename $cf_cv_ncurses_h2`
2009 if test `basename $cf_1st_incdir` = $cf_ncuhdr_root ; then
2010 cf_cv_ncurses_header=$cf_ncuhdr_root/$cf_cv_ncurses_header
2012 CF_ADD_INCDIR($cf_1st_incdir)
2016 # Set definitions to allow ifdef'ing for ncurses.h
2018 case $cf_cv_ncurses_header in # (vi
2020 AC_DEFINE(HAVE_NCURSES_H)
2024 case $cf_cv_ncurses_header in # (vi
2025 ncurses/curses.h|ncurses/ncurses.h)
2026 AC_DEFINE(HAVE_NCURSES_NCURSES_H)
2028 ncursesw/curses.h|ncursesw/ncurses.h)
2029 AC_DEFINE(HAVE_NCURSESW_NCURSES_H)
2034 dnl ---------------------------------------------------------------------------
2035 dnl CF_NCURSES_LIBS version: 16 updated: 2010/11/20 17:02:38
2037 dnl Look for the ncurses library. This is a little complicated on Linux,
2038 dnl because it may be linked with the gpm (general purpose mouse) library.
2039 dnl Some distributions have gpm linked with (bsd) curses, which makes it
2040 dnl unusable with ncurses. However, we don't want to link with gpm unless
2041 dnl ncurses has a dependency, since gpm is normally set up as a shared library,
2042 dnl and the linker will record a dependency.
2044 dnl The optional parameter gives the root name of the library, in case it is
2045 dnl not installed as the default curses library. That is how the
2046 dnl wide-character version of ncurses is installed.
2047 AC_DEFUN([CF_NCURSES_LIBS],
2048 [AC_REQUIRE([CF_NCURSES_CPPFLAGS])
2050 cf_nculib_root=ifelse($1,,ncurses,$1)
2051 # This works, except for the special case where we find gpm, but
2052 # ncurses is in a nonstandard location via $LIBS, and we really want
2055 cf_ncurses_SAVE="$LIBS"
2056 AC_CHECK_LIB(gpm,Gpm_Open,
2057 [AC_CHECK_LIB(gpm,initscr,
2058 [LIBS="$cf_ncurses_SAVE"],
2059 [cf_ncurses_LIBS="-lgpm"])])
2061 case $host_os in #(vi
2063 # This is only necessary if you are linking against an obsolete
2064 # version of ncurses (but it should do no harm, since it's static).
2065 if test "$cf_nculib_root" = ncurses ; then
2066 AC_CHECK_LIB(mytinfo,tgoto,[cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"])
2071 CF_ADD_LIBS($cf_ncurses_LIBS)
2073 if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
2075 CF_ADD_LIBS(-l$cf_nculib_root)
2077 CF_FIND_LIBRARY($cf_nculib_root,$cf_nculib_root,
2078 [#include <${cf_cv_ncurses_header:-curses.h}>],
2083 if test -n "$cf_ncurses_LIBS" ; then
2084 AC_MSG_CHECKING(if we can link $cf_nculib_root without $cf_ncurses_LIBS)
2085 cf_ncurses_SAVE="$LIBS"
2086 for p in $cf_ncurses_LIBS ; do
2087 q=`echo $LIBS | sed -e "s%$p %%" -e "s%$p$%%"`
2088 if test "$q" != "$LIBS" ; then
2092 AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
2093 [initscr(); mousemask(0,0); tgoto((char *)0, 0, 0);],
2094 [AC_MSG_RESULT(yes)],
2096 LIBS="$cf_ncurses_SAVE"])
2099 CF_UPPER(cf_nculib_ROOT,HAVE_LIB$cf_nculib_root)
2100 AC_DEFINE_UNQUOTED($cf_nculib_ROOT)
2102 dnl ---------------------------------------------------------------------------
2103 dnl CF_NCURSES_VERSION version: 13 updated: 2010/10/23 15:54:49
2104 dnl ------------------
2105 dnl Check for the version of ncurses, to aid in reporting bugs, etc.
2106 dnl Call CF_CURSES_CPPFLAGS first, or CF_NCURSES_CPPFLAGS. We don't use
2107 dnl AC_REQUIRE since that does not work with the shell's if/then/else/fi.
2108 AC_DEFUN([CF_NCURSES_VERSION],
2110 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
2111 AC_CACHE_CHECK(for ncurses version, cf_cv_ncurses_version,[
2112 cf_cv_ncurses_version=no
2116 #include <${cf_cv_ncurses_header:-curses.h}>
2120 FILE *fp = fopen("$cf_tempfile", "w");
2121 #ifdef NCURSES_VERSION
2122 # ifdef NCURSES_VERSION_PATCH
2123 fprintf(fp, "%s.%d\n", NCURSES_VERSION, NCURSES_VERSION_PATCH);
2125 fprintf(fp, "%s\n", NCURSES_VERSION);
2129 fprintf(fp, "old\n");
2134 ${cf_cv_main_return:-return}(0);
2136 cf_cv_ncurses_version=`cat $cf_tempfile`],,[
2138 # This will not work if the preprocessor splits the line after the
2139 # Autoconf token. The 'unproto' program does that.
2140 cat > conftest.$ac_ext <<EOF
2141 #include <${cf_cv_ncurses_header:-curses.h}>
2143 #ifdef NCURSES_VERSION
2144 Autoconf NCURSES_VERSION
2152 cf_try="$ac_cpp conftest.$ac_ext 2>&AC_FD_CC | grep '^Autoconf ' >conftest.out"
2154 if test -f conftest.out ; then
2155 cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[[^"]]*"%%' -e 's%".*%%'`
2156 test -n "$cf_out" && cf_cv_ncurses_version="$cf_out"
2162 test "$cf_cv_ncurses_version" = no || AC_DEFINE(NCURSES)
2164 dnl ---------------------------------------------------------------------------
2165 dnl CF_NCURSES_WRAP_PREFIX version: 1 updated: 2009/03/28 16:08:10
2166 dnl ----------------------
2167 dnl Check for ncurses "wrap-prefix" used for public variables which have been
2168 dnl wrapped with a function to help with concurrency control.
2169 AC_DEFUN([CF_NCURSES_WRAP_PREFIX],
2171 AC_MSG_CHECKING(for ncurses wrap-prefix)
2172 AC_ARG_WITH(ncurses-wrap-prefix,
2173 [ --with-ncurses-wrap-prefix naming-prefix for ncurses wrapped-variables],
2174 [NCURSES_WRAP_PREFIX=$withval],
2175 [NCURSES_WRAP_PREFIX=_nc_])
2176 AC_MSG_RESULT($NCURSES_WRAP_PREFIX)
2178 AC_SUBST(NCURSES_WRAP_PREFIX)
2180 dnl ---------------------------------------------------------------------------
2181 dnl CF_NETBSD_FORM_H version: 1 updated: 2011/01/15 14:59:18
2182 dnl ----------------
2183 dnl Check for NetBSD's form.h, which is incompatible with SVr4 and ncurses.
2184 dnl Some workarounds are needed in client programs to allow them to compile.
2185 AC_DEFUN([CF_NETBSD_FORM_H],[
2186 AC_CACHE_CHECK(for NetBSD form.h,cf_cv_netbsd_form_h,[
2188 #include <${cf_cv_ncurses_header:-curses.h}>
2192 int y = current_field(form)->cursor_ypos;
2193 int x = current_field(form)->cursor_xpos;
2194 ],[cf_cv_netbsd_form_h=yes
2195 ],[cf_cv_netbsd_form_h=no])
2198 test "$cf_cv_netbsd_form_h" = yes && AC_DEFINE(HAVE_NETBSD_FORM_H)
2200 dnl ---------------------------------------------------------------------------
2201 dnl CF_NETBSD_MENU_H version: 1 updated: 2011/01/15 14:59:18
2202 dnl ----------------
2203 dnl Check for NetBSD's menu.h, which is incompatible with SVr4 and ncurses.
2204 dnl Some workarounds are needed in client programs to allow them to compile.
2205 AC_DEFUN([CF_NETBSD_MENU_H],[
2206 AC_CACHE_CHECK(for NetBSD menu.h,cf_cv_netbsd_menu_h,[
2208 #include <${cf_cv_ncurses_header:-curses.h}>
2212 int y = menu->max_item_width;
2213 ],[cf_cv_netbsd_menu_h=yes
2214 ],[cf_cv_netbsd_menu_h=no])
2217 test "$cf_cv_netbsd_menu_h" = yes && AC_DEFINE(HAVE_NETBSD_MENU_H)
2219 dnl ---------------------------------------------------------------------------
2220 dnl CF_NO_LEAKS_OPTION version: 4 updated: 2006/12/16 14:24:05
2221 dnl ------------------
2222 dnl see CF_WITH_NO_LEAKS
2223 AC_DEFUN([CF_NO_LEAKS_OPTION],[
2224 AC_MSG_CHECKING(if you want to use $1 for testing)
2227 [AC_DEFINE($3)ifelse([$4],,[
2230 : ${with_cflags:=-g}
2231 : ${with_no_leaks:=yes}
2234 AC_MSG_RESULT(${with_$1:-no})
2236 case .$with_cflags in #(vi
2238 case .$CFLAGS in #(vi
2248 dnl ---------------------------------------------------------------------------
2249 dnl CF_PATH_SYNTAX version: 13 updated: 2010/05/26 05:38:42
2251 dnl Check the argument to see that it looks like a pathname. Rewrite it if it
2252 dnl begins with one of the prefix/exec_prefix variables, and then again if the
2253 dnl result begins with 'NONE'. This is necessary to work around autoconf's
2254 dnl delayed evaluation of those symbols.
2255 AC_DEFUN([CF_PATH_SYNTAX],[
2256 if test "x$prefix" != xNONE; then
2257 cf_path_syntax="$prefix"
2259 cf_path_syntax="$ac_default_prefix"
2262 case ".[$]$1" in #(vi
2263 .\[$]\(*\)*|.\'*\'*) #(vi
2267 .[[a-zA-Z]]:[[\\/]]*) #(vi OS/2 EMX
2269 .\[$]{*prefix}*) #(vi
2271 case ".[$]$1" in #(vi
2273 $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
2278 $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
2281 ifelse([$2],,[AC_MSG_ERROR([expected a pathname, not \"[$]$1\"])],$2)
2285 dnl ---------------------------------------------------------------------------
2286 dnl CF_PDCURSES_X11 version: 11 updated: 2011/01/15 18:45:38
2288 dnl Configure for PDCurses' X11 library
2289 AC_DEFUN([CF_PDCURSES_X11],[
2290 AC_REQUIRE([CF_X_ATHENA])
2292 AC_PATH_PROGS(XCURSES_CONFIG,xcurses-config,none)
2294 if test "$XCURSES_CONFIG" != none ; then
2296 CPPFLAGS="$CPPFLAGS `$XCURSES_CONFIG --cflags`"
2297 CF_ADD_LIBS(`$XCURSES_CONFIG --libs`)
2299 cf_cv_lib_XCurses=yes
2303 LDFLAGS="$LDFLAGS $X_LIBS"
2304 CF_CHECK_CFLAGS($X_CFLAGS)
2305 AC_CHECK_LIB(X11,XOpenDisplay,
2306 [CF_ADD_LIBS(-lX11)],,
2307 [$X_PRE_LIBS $LIBS $X_EXTRA_LIBS])
2308 AC_CACHE_CHECK(for XCurses library,cf_cv_lib_XCurses,[
2309 CF_ADD_LIBS(-lXCurses)
2311 #include <xcurses.h>
2312 char *XCursesProgramName = "test";
2314 [cf_cv_lib_XCurses=yes],
2315 [cf_cv_lib_XCurses=no])
2320 if test $cf_cv_lib_XCurses = yes ; then
2323 AC_CHECK_HEADER(xcurses.h, AC_DEFINE(HAVE_XCURSES))
2325 AC_MSG_ERROR(Cannot link with XCurses)
2328 dnl ---------------------------------------------------------------------------
2329 dnl CF_PKG_CONFIG version: 7 updated: 2011/04/29 04:53:22
2331 dnl Check for the package-config program, unless disabled by command-line.
2332 AC_DEFUN([CF_PKG_CONFIG],
2334 AC_MSG_CHECKING(if you want to use pkg-config)
2335 AC_ARG_WITH(pkg-config,
2336 [ --with-pkg-config{=path} enable/disable use of pkg-config],
2337 [cf_pkg_config=$withval],
2338 [cf_pkg_config=yes])
2339 AC_MSG_RESULT($cf_pkg_config)
2341 case $cf_pkg_config in #(vi
2346 CF_ACVERSION_CHECK(2.52,
2347 [AC_PATH_TOOL(PKG_CONFIG, pkg-config, none)],
2348 [AC_PATH_PROG(PKG_CONFIG, pkg-config, none)])
2355 test -z "$PKG_CONFIG" && PKG_CONFIG=none
2356 if test "$PKG_CONFIG" != none ; then
2357 CF_PATH_SYNTAX(PKG_CONFIG)
2360 AC_SUBST(PKG_CONFIG)
2362 dnl ---------------------------------------------------------------------------
2363 dnl CF_POSIX_C_SOURCE version: 8 updated: 2010/05/26 05:38:42
2364 dnl -----------------
2365 dnl Define _POSIX_C_SOURCE to the given level, and _POSIX_SOURCE if needed.
2367 dnl POSIX.1-1990 _POSIX_SOURCE
2368 dnl POSIX.1-1990 and _POSIX_SOURCE and
2369 dnl POSIX.2-1992 C-Language _POSIX_C_SOURCE=2
2371 dnl POSIX.1b-1993 _POSIX_C_SOURCE=199309L
2372 dnl POSIX.1c-1996 _POSIX_C_SOURCE=199506L
2373 dnl X/Open 2000 _POSIX_C_SOURCE=200112L
2376 dnl $1 is the nominal value for _POSIX_C_SOURCE
2377 AC_DEFUN([CF_POSIX_C_SOURCE],
2379 cf_POSIX_C_SOURCE=ifelse([$1],,199506L,[$1])
2381 cf_save_CFLAGS="$CFLAGS"
2382 cf_save_CPPFLAGS="$CPPFLAGS"
2384 CF_REMOVE_DEFINE(cf_trim_CFLAGS,$cf_save_CFLAGS,_POSIX_C_SOURCE)
2385 CF_REMOVE_DEFINE(cf_trim_CPPFLAGS,$cf_save_CPPFLAGS,_POSIX_C_SOURCE)
2387 AC_CACHE_CHECK(if we should define _POSIX_C_SOURCE,cf_cv_posix_c_source,[
2388 CF_MSG_LOG(if the symbol is already defined go no further)
2389 AC_TRY_COMPILE([#include <sys/types.h>],[
2390 #ifndef _POSIX_C_SOURCE
2393 [cf_cv_posix_c_source=no],
2394 [cf_want_posix_source=no
2395 case .$cf_POSIX_C_SOURCE in #(vi
2397 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
2400 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
2401 cf_want_posix_source=yes
2404 cf_want_posix_source=yes
2407 if test "$cf_want_posix_source" = yes ; then
2408 AC_TRY_COMPILE([#include <sys/types.h>],[
2409 #ifdef _POSIX_SOURCE
2412 cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE")
2414 CF_MSG_LOG(ifdef from value $cf_POSIX_C_SOURCE)
2415 CFLAGS="$cf_trim_CFLAGS"
2416 CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source"
2417 CF_MSG_LOG(if the second compile does not leave our definition intact error)
2418 AC_TRY_COMPILE([#include <sys/types.h>],[
2419 #ifndef _POSIX_C_SOURCE
2422 [cf_cv_posix_c_source=no])
2423 CFLAGS="$cf_save_CFLAGS"
2424 CPPFLAGS="$cf_save_CPPFLAGS"
2428 if test "$cf_cv_posix_c_source" != no ; then
2429 CFLAGS="$cf_trim_CFLAGS"
2430 CPPFLAGS="$cf_trim_CPPFLAGS"
2431 CF_ADD_CFLAGS($cf_cv_posix_c_source)
2435 dnl ---------------------------------------------------------------------------
2436 dnl CF_PRG_RULES version: 1 updated: 2006/06/03 11:45:08
2438 dnl Append definitions and rules for the given programs to the subdirectory
2439 dnl Makefiles, and the recursion rule for the top-level Makefile.
2442 dnl $1 = script to run
2443 dnl $2 = list of subdirectories
2447 AC_DEFUN([CF_PRG_RULES],
2451 if test ! -d $srcdir/$cf_dir; then
2453 elif test -f $srcdir/$cf_dir/programs; then
2454 $AWK -f $1 $srcdir/$cf_dir/programs >>$cf_dir/Makefile
2459 dnl ---------------------------------------------------------------------------
2460 dnl CF_PROG_CC_U_D version: 1 updated: 2005/07/14 16:59:30
2462 dnl Check if C (preprocessor) -U and -D options are processed in the order
2463 dnl given rather than by type of option. Some compilers insist on apply all
2464 dnl of the -U options after all of the -D options. Others allow mixing them,
2465 dnl and may predefine symbols that conflict with those we define.
2466 AC_DEFUN([CF_PROG_CC_U_D],
2468 AC_CACHE_CHECK(if $CC -U and -D options work together,cf_cv_cc_u_d_options,[
2469 cf_save_CPPFLAGS="$CPPFLAGS"
2470 CPPFLAGS="-UU_D_OPTIONS -DU_D_OPTIONS -DD_U_OPTIONS -UD_U_OPTIONS"
2473 make an undefined-error
2476 make a defined-error
2479 cf_cv_cc_u_d_options=yes],[
2480 cf_cv_cc_u_d_options=no])
2481 CPPFLAGS="$cf_save_CPPFLAGS"
2484 dnl ---------------------------------------------------------------------------
2485 dnl CF_PROG_INSTALL version: 5 updated: 2002/12/21 22:46:07
2487 dnl Force $INSTALL to be an absolute-path. Otherwise, edit_man.sh and the
2488 dnl misc/tabset install won't work properly. Usually this happens only when
2489 dnl using the fallback mkinstalldirs script
2490 AC_DEFUN([CF_PROG_INSTALL],
2496 CF_DIRNAME(cf_dir,$INSTALL)
2497 test -z "$cf_dir" && cf_dir=.
2498 INSTALL=`cd $cf_dir && pwd`/`echo $INSTALL | sed -e 's%^.*/%%'`
2502 dnl ---------------------------------------------------------------------------
2503 dnl CF_PROG_LINT version: 2 updated: 2009/08/12 04:43:14
2505 AC_DEFUN([CF_PROG_LINT],
2507 AC_CHECK_PROGS(LINT, tdlint lint alint splint lclint)
2510 dnl ---------------------------------------------------------------------------
2511 dnl CF_REMOVE_DEFINE version: 3 updated: 2010/01/09 11:05:50
2512 dnl ----------------
2513 dnl Remove all -U and -D options that refer to the given symbol from a list
2514 dnl of C compiler options. This works around the problem that not all
2515 dnl compilers process -U and -D options from left-to-right, so a -U option
2516 dnl cannot be used to cancel the effect of a preceding -D option.
2518 dnl $1 = target (which could be the same as the source variable)
2519 dnl $2 = source (including '$')
2520 dnl $3 = symbol to remove
2521 define([CF_REMOVE_DEFINE],
2524 sed -e 's/-[[UD]]'"$3"'\(=[[^ ]]*\)\?[[ ]]/ /g' \
2525 -e 's/-[[UD]]'"$3"'\(=[[^ ]]*\)\?[$]//g'`
2527 dnl ---------------------------------------------------------------------------
2528 dnl CF_SIG_ATOMIC_T version: 2 updated: 2005/09/18 17:27:12
2530 dnl signal handler, but there are some gcc depedencies in that recommendation.
2532 AC_DEFUN([CF_SIG_ATOMIC_T],
2534 AC_MSG_CHECKING(for signal global datatype)
2535 AC_CACHE_VAL(cf_cv_sig_atomic_t,[
2537 "volatile sig_atomic_t" \
2542 #include <sys/types.h>
2548 static void handler(int sig)
2552 [signal(SIGINT, handler);
2554 [cf_cv_sig_atomic_t=$cf_type],
2555 [cf_cv_sig_atomic_t=no])
2556 test "$cf_cv_sig_atomic_t" != no && break
2559 AC_MSG_RESULT($cf_cv_sig_atomic_t)
2560 test "$cf_cv_sig_atomic_t" != no && AC_DEFINE_UNQUOTED(SIG_ATOMIC_T, $cf_cv_sig_atomic_t)
2562 dnl ---------------------------------------------------------------------------
2563 dnl CF_SUBDIR_PATH version: 6 updated: 2010/04/21 06:20:50
2565 dnl Construct a search-list for a nonstandard header/lib-file
2566 dnl $1 = the variable to return as result
2567 dnl $2 = the package name
2568 dnl $3 = the subdirectory, e.g., bin, include or lib
2569 AC_DEFUN([CF_SUBDIR_PATH],
2573 CF_ADD_SUBDIR_PATH($1,$2,$3,/usr,$prefix)
2574 CF_ADD_SUBDIR_PATH($1,$2,$3,$prefix,NONE)
2575 CF_ADD_SUBDIR_PATH($1,$2,$3,/usr/local,$prefix)
2576 CF_ADD_SUBDIR_PATH($1,$2,$3,/opt,$prefix)
2577 CF_ADD_SUBDIR_PATH($1,$2,$3,[$]HOME,$prefix)
2579 dnl ---------------------------------------------------------------------------
2580 dnl CF_SYS_TIME_SELECT version: 4 updated: 2000/10/04 09:18:40
2581 dnl ------------------
2582 dnl Check if we can include <sys/time.h> with <sys/select.h>; this breaks on
2583 dnl older SCO configurations.
2584 AC_DEFUN([CF_SYS_TIME_SELECT],
2586 AC_MSG_CHECKING(if sys/time.h works with sys/select.h)
2587 AC_CACHE_VAL(cf_cv_sys_time_select,[
2589 #include <sys/types.h>
2590 #ifdef HAVE_SYS_TIME_H
2591 #include <sys/time.h>
2593 #ifdef HAVE_SYS_SELECT_H
2594 #include <sys/select.h>
2596 ],[],[cf_cv_sys_time_select=yes],
2597 [cf_cv_sys_time_select=no])
2599 AC_MSG_RESULT($cf_cv_sys_time_select)
2600 test "$cf_cv_sys_time_select" = yes && AC_DEFINE(HAVE_SYS_TIME_SELECT)
2602 dnl ---------------------------------------------------------------------------
2603 dnl CF_TERM_HEADER version: 2 updated: 2010/10/23 15:54:49
2605 dnl Look for term.h, which is part of X/Open curses. It defines the interface
2606 dnl to terminfo database. Usually it is in the same include-path as curses.h,
2607 dnl but some packagers change this, breaking various applications.
2608 AC_DEFUN([CF_TERM_HEADER],[
2609 AC_CACHE_CHECK(for terminfo header, cf_cv_term_header,[
2610 case ${cf_cv_ncurses_header} in #(vi
2611 */ncurses.h|*/ncursesw.h) #(vi
2612 cf_term_header=`echo "$cf_cv_ncurses_header" | sed -e 's%ncurses[[^.]]*\.h$%term.h%'`
2615 cf_term_header=term.h
2619 for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
2621 AC_TRY_COMPILE([#include <stdio.h>
2622 #include <${cf_cv_ncurses_header:-curses.h}>
2624 ],[int x = auto_left_margin],[
2625 cf_cv_term_header="$cf_test"],[
2626 cf_cv_term_header=unknown
2628 test "$cf_cv_term_header" != unknown && break
2632 # Set definitions to allow ifdef'ing to accommodate subdirectories
2634 case $cf_cv_term_header in # (vi
2636 AC_DEFINE(HAVE_TERM_H)
2640 case $cf_cv_term_header in # (vi
2641 ncurses/term.h) #(vi
2642 AC_DEFINE(HAVE_NCURSES_TERM_H)
2645 AC_DEFINE(HAVE_NCURSESW_TERM_H)
2649 dnl ---------------------------------------------------------------------------
2650 dnl CF_TPUTS_PROTO version: 2 updated: 2011/04/23 19:25:50
2652 dnl Check for type of function-pointer passed to tputs. Some old
2653 dnl implementations used functions that had different prototypes, making it
2654 dnl hard to compile portable programs using tputs.
2655 AC_DEFUN([CF_TPUTS_PROTO],[
2656 CF_CURSES_FUNCS(tputs)
2657 if test x$cf_cv_func_tputs = xyes
2660 for cf_arg in int char
2662 for cf_ret in int void
2664 if test $cf_ret = void
2666 cf_return="/* nothing */"
2668 cf_return="return value"
2671 #include <${cf_cv_ncurses_header:-curses.h}>
2672 #include <$cf_cv_term_header>
2674 static $cf_ret outc($cf_arg value) { $cf_return; }
2676 tputs("hello", 0, outc);
2677 ${cf_cv_main_return:-return}(0);
2679 CF_VERBOSE([prototype $cf_ret func($cf_arg value)])
2680 cat >>confdefs.h <<EOF
2681 #define TPUTS_ARG $cf_arg
2682 #define TPUTS_PROTO(func,value) $cf_ret func(TPUTS_ARG value)
2683 #define TPUTS_RETURN(value) $cf_return
2689 test $cf_done = yes && break
2693 dnl ---------------------------------------------------------------------------
2694 dnl CF_TRY_PKG_CONFIG version: 4 updated: 2010/06/14 17:42:30
2695 dnl -----------------
2696 dnl This is a simple wrapper to use for pkg-config, for libraries which may be
2697 dnl available in that form.
2699 dnl $1 = package name
2700 dnl $2 = extra logic to use, if any, after updating CFLAGS and LIBS
2701 dnl $3 = logic to use if pkg-config does not have the package
2702 AC_DEFUN([CF_TRY_PKG_CONFIG],[
2703 AC_REQUIRE([CF_PKG_CONFIG])
2705 if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists $1; then
2706 CF_VERBOSE(found package $1)
2707 cf_pkgconfig_incs="`$PKG_CONFIG --cflags $1 2>/dev/null`"
2708 cf_pkgconfig_libs="`$PKG_CONFIG --libs $1 2>/dev/null`"
2709 CF_VERBOSE(package $1 CFLAGS: $cf_pkgconfig_incs)
2710 CF_VERBOSE(package $1 LIBS: $cf_pkgconfig_libs)
2711 CF_ADD_CFLAGS($cf_pkgconfig_incs)
2712 CF_ADD_LIBS($cf_pkgconfig_libs)
2713 ifelse([$2],,:,[$2])
2715 ifelse([$3],,:,[$3])
2718 dnl ---------------------------------------------------------------------------
2719 dnl CF_UPPER version: 5 updated: 2001/01/29 23:40:59
2721 dnl Make an uppercase version of a variable
2722 dnl $1=uppercase($2)
2723 AC_DEFUN([CF_UPPER],
2725 $1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
2727 dnl ---------------------------------------------------------------------------
2728 dnl CF_UTF8_LIB version: 7 updated: 2010/06/20 09:24:28
2730 dnl Check for multibyte support, and if not found, utf8 compatibility library
2731 AC_DEFUN([CF_UTF8_LIB],
2733 AC_CACHE_CHECK(for multibyte character support,cf_cv_utf8_lib,[
2734 cf_save_LIBS="$LIBS"
2736 #include <stdlib.h>],[putwc(0,0);],
2737 [cf_cv_utf8_lib=yes],
2739 #include <libutf8.h>],[putwc(0,0);],utf8,
2740 [cf_cv_utf8_lib=add-on],
2741 [cf_cv_utf8_lib=no])
2744 # HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
2746 if test "$cf_cv_utf8_lib" = "add-on" ; then
2747 AC_DEFINE(HAVE_LIBUTF8_H)
2748 CF_ADD_INCDIR($cf_cv_header_path_utf8)
2749 CF_ADD_LIBDIR($cf_cv_library_path_utf8)
2750 CF_ADD_LIBS($cf_cv_library_file_utf8)
2753 dnl ---------------------------------------------------------------------------
2754 dnl CF_VERBOSE version: 3 updated: 2007/07/29 09:55:12
2756 dnl Use AC_VERBOSE w/o the warnings
2757 AC_DEFUN([CF_VERBOSE],
2758 [test -n "$verbose" && echo " $1" 1>&AC_FD_MSG
2761 dnl ---------------------------------------------------------------------------
2762 dnl CF_WCHAR_TYPE version: 3 updated: 2010/05/26 16:44:57
2764 dnl Check if type wide-character type $1 is declared, and if so, which header
2765 dnl file is needed. The second parameter is used to set a shell variable when
2766 dnl the type is not found. The first parameter sets a shell variable for the
2768 AC_DEFUN([CF_WCHAR_TYPE],
2770 # This is needed on Tru64 5.0 to declare $1
2771 AC_CACHE_CHECK(if we must include wchar.h to declare $1,cf_cv_$1,[
2776 #ifdef HAVE_LIBUTF8_H
2777 #include <libutf8.h>
2786 #ifdef HAVE_LIBUTF8_H
2787 #include <libutf8.h>
2791 [cf_cv_$1=unknown])])])
2793 if test "$cf_cv_$1" = yes ; then
2794 AC_DEFINE(NEED_WCHAR_H)
2799 # if we do not find $1 in either place, use substitution to provide a fallback.
2800 if test "$cf_cv_$1" = unknown ; then
2805 # if we find $1 in either place, use substitution to provide a fallback.
2806 if test "$cf_cv_$1" != unknown ; then
2811 dnl ---------------------------------------------------------------------------
2812 dnl CF_WITH_CURSES_DIR version: 3 updated: 2010/11/20 17:02:38
2813 dnl ------------------
2814 dnl Wrapper for AC_ARG_WITH to specify directory under which to look for curses
2816 AC_DEFUN([CF_WITH_CURSES_DIR],[
2818 AC_MSG_CHECKING(for specific curses-directory)
2819 AC_ARG_WITH(curses-dir,
2820 [ --with-curses-dir=DIR directory in which (n)curses is installed],
2821 [cf_cv_curses_dir=$withval],
2822 [cf_cv_curses_dir=no])
2823 AC_MSG_RESULT($cf_cv_curses_dir)
2825 if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
2827 CF_PATH_SYNTAX(withval)
2828 if test -d "$cf_cv_curses_dir"
2830 CF_ADD_INCDIR($cf_cv_curses_dir/include)
2831 CF_ADD_LIBDIR($cf_cv_curses_dir/lib)
2835 dnl ---------------------------------------------------------------------------
2836 dnl CF_WITH_DBMALLOC version: 7 updated: 2010/06/21 17:26:47
2837 dnl ----------------
2838 dnl Configure-option for dbmalloc. The optional parameter is used to override
2839 dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
2840 AC_DEFUN([CF_WITH_DBMALLOC],[
2841 CF_NO_LEAKS_OPTION(dbmalloc,
2842 [ --with-dbmalloc test: use Conor Cahill's dbmalloc library],
2845 if test "$with_dbmalloc" = yes ; then
2846 AC_CHECK_HEADER(dbmalloc.h,
2847 [AC_CHECK_LIB(dbmalloc,[debug_malloc]ifelse([$1],,[],[,$1]))])
2850 dnl ---------------------------------------------------------------------------
2851 dnl CF_WITH_DMALLOC version: 7 updated: 2010/06/21 17:26:47
2853 dnl Configure-option for dmalloc. The optional parameter is used to override
2854 dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
2855 AC_DEFUN([CF_WITH_DMALLOC],[
2856 CF_NO_LEAKS_OPTION(dmalloc,
2857 [ --with-dmalloc test: use Gray Watson's dmalloc library],
2860 if test "$with_dmalloc" = yes ; then
2861 AC_CHECK_HEADER(dmalloc.h,
2862 [AC_CHECK_LIB(dmalloc,[dmalloc_debug]ifelse([$1],,[],[,$1]))])
2865 dnl ---------------------------------------------------------------------------
2866 dnl CF_WITH_VALGRIND version: 1 updated: 2006/12/14 18:00:21
2867 dnl ----------------
2868 AC_DEFUN([CF_WITH_VALGRIND],[
2869 CF_NO_LEAKS_OPTION(valgrind,
2870 [ --with-valgrind test: use valgrind],
2873 dnl ---------------------------------------------------------------------------
2874 dnl CF_XOPEN_CURSES version: 11 updated: 2011/01/18 18:15:30
2876 dnl Test if we should define X/Open source for curses, needed on Digital Unix
2877 dnl 4.x, to see the extended functions, but breaks on IRIX 6.x.
2879 dnl The getbegyx() check is needed for HPUX, which omits legacy macros such
2880 dnl as getbegy(). The latter is better design, but the former is standard.
2881 AC_DEFUN([CF_XOPEN_CURSES],
2883 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
2884 AC_CACHE_CHECK(if we must define _XOPEN_SOURCE_EXTENDED,cf_cv_need_xopen_extension,[
2887 #include <${cf_cv_ncurses_header:-curses.h}>],[
2888 #if defined(NCURSES_VERSION_PATCH)
2889 #if (NCURSES_VERSION_PATCH < 20100501) && (NCURSES_VERSION_PATCH >= 20100403)
2893 long x = winnstr(stdscr, "", 0);
2895 getbegyx(stdscr, y1, x1)],
2896 [cf_cv_need_xopen_extension=no],
2898 #define _XOPEN_SOURCE_EXTENDED
2900 #include <${cf_cv_ncurses_header:-curses.h}>],[
2901 #ifdef NCURSES_VERSION
2903 int check2 = curs_set((int)sizeof(check));
2905 long x = winnstr(stdscr, "", 0);
2907 getbegyx(stdscr, y1, x1)],
2908 [cf_cv_need_xopen_extension=yes],
2909 [cf_cv_need_xopen_extension=unknown])])])
2910 test $cf_cv_need_xopen_extension = yes && CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED"
2912 dnl ---------------------------------------------------------------------------
2913 dnl CF_XOPEN_SOURCE version: 36 updated: 2011/07/02 15:36:04
2915 dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
2916 dnl or adapt to the vendor's definitions to get equivalent functionality,
2917 dnl without losing the common non-POSIX features.
2920 dnl $1 is the nominal value for _XOPEN_SOURCE
2921 dnl $2 is the nominal value for _POSIX_C_SOURCE
2922 AC_DEFUN([CF_XOPEN_SOURCE],[
2924 cf_XOPEN_SOURCE=ifelse([$1],,500,[$1])
2925 cf_POSIX_C_SOURCE=ifelse([$2],,199506L,[$2])
2928 case $host_os in #(vi
2930 cf_xopen_source="-D_ALL_SOURCE"
2935 darwin[[0-8]].*) #(vi
2936 cf_xopen_source="-D_APPLE_C_SOURCE"
2939 cf_xopen_source="-D_DARWIN_C_SOURCE"
2941 freebsd*|dragonfly*) #(vi
2942 # 5.x headers associate
2943 # _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L
2944 # _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L
2945 cf_POSIX_C_SOURCE=200112L
2947 cf_xopen_source="-D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
2950 cf_xopen_source="-D_HPUX_SOURCE -D_XOPEN_SOURCE=500"
2953 cf_xopen_source="-D_HPUX_SOURCE"
2956 cf_xopen_source="-D_SGI_SOURCE"
2958 linux*|gnu*|mint*|k*bsd*-gnu) #(vi
2962 # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <arpa/inet.h>
2965 # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
2968 # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
2971 cf_xopen_source="-D_OSF_SOURCE"
2974 cf_xopen_source="-D_QNX_SOURCE"
2977 # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
2979 solaris2.1[[0-9]]) #(vi
2980 cf_xopen_source="-D__EXTENSIONS__ -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
2982 solaris2.[[1-9]]) #(vi
2983 cf_xopen_source="-D__EXTENSIONS__"
2986 AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[
2987 AC_TRY_COMPILE([#include <sys/types.h>],[
2988 #ifndef _XOPEN_SOURCE
2991 [cf_cv_xopen_source=no],
2992 [cf_save="$CPPFLAGS"
2993 CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
2994 AC_TRY_COMPILE([#include <sys/types.h>],[
2995 #ifdef _XOPEN_SOURCE
2998 [cf_cv_xopen_source=no],
2999 [cf_cv_xopen_source=$cf_XOPEN_SOURCE])
3003 if test "$cf_cv_xopen_source" != no ; then
3004 CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE)
3005 CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE)
3006 cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
3007 CF_ADD_CFLAGS($cf_temp_xopen_source)
3009 CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
3013 if test -n "$cf_xopen_source" ; then
3014 CF_ADD_CFLAGS($cf_xopen_source)
3017 dnl ---------------------------------------------------------------------------
3018 dnl CF_X_ATHENA version: 20 updated: 2010/11/09 05:18:02
3020 dnl Check for Xaw (Athena) libraries
3022 dnl Sets $cf_x_athena according to the flavor of Xaw which is used.
3023 AC_DEFUN([CF_X_ATHENA],
3025 cf_x_athena=${cf_x_athena:-Xaw}
3027 AC_MSG_CHECKING(if you want to link with Xaw 3d library)
3030 [ --with-Xaw3d link with Xaw 3d library])
3031 if test "$withval" = yes ; then
3038 AC_MSG_CHECKING(if you want to link with neXT Athena library)
3041 [ --with-neXtaw link with neXT Athena library])
3042 if test "$withval" = yes ; then
3049 AC_MSG_CHECKING(if you want to link with Athena-Plus library)
3051 AC_ARG_WITH(XawPlus,
3052 [ --with-XawPlus link with Athena-Plus library])
3053 if test "$withval" = yes ; then
3062 if test "$PKG_CONFIG" != none ; then
3064 test "$cf_x_athena" = Xaw && cf_athena_list="xaw8 xaw7 xaw6"
3065 for cf_athena_pkg in \
3068 ${cf_x_athena}-devel \
3070 lib${cf_x_athena}-devel
3072 CF_TRY_PKG_CONFIG($cf_athena_pkg,[
3073 cf_x_athena_lib="$cf_pkgconfig_libs"
3074 CF_UPPER(cf_x_athena_LIBS,HAVE_LIB_$cf_x_athena)
3075 AC_DEFINE_UNQUOTED($cf_x_athena_LIBS)
3077 AC_CACHE_CHECK(for usable $cf_x_athena/Xmu package,cf_cv_xaw_compat,[
3079 #include <X11/Xmu/CharSet.h>
3081 int check = XmuCompareISOLatin1("big", "small")
3082 ],[cf_cv_xaw_compat=yes],[cf_cv_xaw_compat=no])])
3084 if test "$cf_cv_xaw_compat" = no
3086 # workaround for broken ".pc" files...
3087 case "$cf_x_athena_lib" in #(vi
3091 CF_VERBOSE(work around broken package)
3092 CF_TRY_PKG_CONFIG(xmu,,[CF_ADD_LIB_AFTER(-lXt,-lXmu)])
3101 if test -z "$cf_x_athena_lib" ; then
3104 CF_X_ATHENA_CPPFLAGS($cf_x_athena)
3105 CF_X_ATHENA_LIBS($cf_x_athena)
3108 dnl ---------------------------------------------------------------------------
3109 dnl CF_X_ATHENA_CPPFLAGS version: 5 updated: 2010/05/26 17:35:30
3110 dnl --------------------
3111 dnl Normally invoked by CF_X_ATHENA, with $1 set to the appropriate flavor of
3112 dnl the Athena widgets, e.g., Xaw, Xaw3d, neXtaw.
3113 AC_DEFUN([CF_X_ATHENA_CPPFLAGS],
3115 cf_x_athena_root=ifelse([$1],,Xaw,[$1])
3118 for cf_path in default \
3119 /usr/contrib/X11R6 \
3120 /usr/contrib/X11R5 \
3124 if test -z "$cf_x_athena_inc" ; then
3126 cf_test=X11/$cf_x_athena_root/SimpleMenu.h
3127 if test $cf_path != default ; then
3128 CPPFLAGS="$cf_save -I$cf_path/include"
3129 AC_MSG_CHECKING(for $cf_test in $cf_path)
3131 AC_MSG_CHECKING(for $cf_test)
3134 #include <X11/Intrinsic.h>
3135 #include <$cf_test>],[],
3138 AC_MSG_RESULT($cf_result)
3139 if test "$cf_result" = yes ; then
3140 cf_x_athena_inc=$cf_path
3148 if test -z "$cf_x_athena_inc" ; then
3150 [Unable to successfully find Athena header files with test program])
3151 elif test "$cf_x_athena_inc" != default ; then
3152 CPPFLAGS="$CPPFLAGS -I$cf_x_athena_inc"
3155 dnl ---------------------------------------------------------------------------
3156 dnl CF_X_ATHENA_LIBS version: 10 updated: 2011/02/13 13:31:33
3157 dnl ----------------
3158 dnl Normally invoked by CF_X_ATHENA, with $1 set to the appropriate flavor of
3159 dnl the Athena widgets, e.g., Xaw, Xaw3d, neXtaw.
3160 AC_DEFUN([CF_X_ATHENA_LIBS],
3161 [AC_REQUIRE([CF_X_TOOLKIT])
3162 cf_x_athena_root=ifelse([$1],,Xaw,[$1])
3165 for cf_path in default \
3166 /usr/contrib/X11R6 \
3167 /usr/contrib/X11R5 \
3172 "-l$cf_x_athena_root -lXmu" \
3173 "-l$cf_x_athena_root -lXpm -lXmu" \
3174 "-l${cf_x_athena_root}_s -lXmu_s"
3176 if test -z "$cf_x_athena_lib" ; then
3178 cf_test=XawSimpleMenuAddGlobalActions
3179 if test $cf_path != default ; then
3180 CF_ADD_LIBS(-L$cf_path/lib $cf_lib)
3181 AC_MSG_CHECKING(for $cf_lib in $cf_path)
3183 CF_ADD_LIBS($cf_lib)
3184 AC_MSG_CHECKING(for $cf_test in $cf_lib)
3187 #include <X11/Intrinsic.h>
3188 #include <X11/$cf_x_athena_root/SimpleMenu.h>
3190 $cf_test((XtAppContext) 0)],
3193 AC_MSG_RESULT($cf_result)
3194 if test "$cf_result" = yes ; then
3195 cf_x_athena_lib="$cf_lib"
3203 if test -z "$cf_x_athena_lib" ; then
3205 [Unable to successfully link Athena library (-l$cf_x_athena_root) with test program])
3208 CF_UPPER(cf_x_athena_LIBS,HAVE_LIB_$cf_x_athena)
3209 AC_DEFINE_UNQUOTED($cf_x_athena_LIBS)
3211 dnl ---------------------------------------------------------------------------
3212 dnl CF_X_EXT version: 3 updated: 2010/06/02 05:03:05
3214 AC_DEFUN([CF_X_EXT],[
3215 CF_TRY_PKG_CONFIG(Xext,,[
3216 AC_CHECK_LIB(Xext,XextCreateExtension,
3217 [CF_ADD_LIB(Xext)])])
3219 dnl ---------------------------------------------------------------------------
3220 dnl CF_X_TOOLKIT version: 20 updated: 2010/11/19 05:43:04
3222 dnl Check for X Toolkit libraries
3224 AC_DEFUN([CF_X_TOOLKIT],
3226 AC_REQUIRE([AC_PATH_XTRA])
3227 AC_REQUIRE([CF_CHECK_CACHE])
3231 CF_TRY_PKG_CONFIG(xt,[
3233 case "x$LIBS" in #(vi
3237 # we have an "xt" package, but it may omit Xt's dependency on X11
3238 AC_CACHE_CHECK(for usable X dependency,cf_cv_xt_x11_compat,[
3240 #include <X11/Xlib.h>
3242 int rc1 = XDrawLine((Display*) 0, (Drawable) 0, (GC) 0, 0, 0, 0, 0);
3243 int rc2 = XClearWindow((Display*) 0, (Window) 0);
3244 int rc3 = XMoveWindow((Display*) 0, (Window) 0, 0, 0);
3245 int rc4 = XMoveResizeWindow((Display*)0, (Window)0, 0, 0, 0, 0);
3246 ],[cf_cv_xt_x11_compat=yes],[cf_cv_xt_x11_compat=no])])
3247 if test "$cf_cv_xt_x11_compat" = no
3249 CF_VERBOSE(work around broken X11 dependency)
3250 # 2010/11/19 - good enough until a working Xt on Xcb is delivered.
3251 CF_TRY_PKG_CONFIG(x11,,[CF_ADD_LIB_AFTER(-lXt,-lX11)])
3256 AC_CACHE_CHECK(for usable X Toolkit package,cf_cv_xt_ice_compat,[
3258 #include <X11/Shell.h>
3259 ],[int num = IceConnectionNumber(0)
3260 ],[cf_cv_xt_ice_compat=yes],[cf_cv_xt_ice_compat=no])])
3262 if test "$cf_cv_xt_ice_compat" = no
3264 # workaround for broken ".pc" files used for X Toolkit.
3265 case "x$X_PRE_LIBS" in #(vi
3267 case "x$LIBS" in #(vi
3271 CF_VERBOSE(work around broken ICE dependency)
3272 CF_TRY_PKG_CONFIG(ice,
3273 [CF_TRY_PKG_CONFIG(sm)],
3274 [CF_ADD_LIB_AFTER(-lXt,$X_PRE_LIBS)])
3284 LDFLAGS="$X_LIBS $LDFLAGS"
3285 CF_CHECK_CFLAGS($X_CFLAGS)
3287 AC_CHECK_FUNC(XOpenDisplay,,[
3288 AC_CHECK_LIB(X11,XOpenDisplay,
3290 [$X_PRE_LIBS $LIBS $X_EXTRA_LIBS])])
3292 AC_CHECK_FUNC(XtAppInitialize,,[
3293 AC_CHECK_LIB(Xt, XtAppInitialize,
3294 [AC_DEFINE(HAVE_LIBXT)
3296 LIBS="-lXt $X_PRE_LIBS $LIBS $X_EXTRA_LIBS"],,
3297 [$X_PRE_LIBS $LIBS $X_EXTRA_LIBS])])
3300 if test $cf_have_X_LIBS = no ; then
3302 [Unable to successfully link X Toolkit library (-lXt) with
3303 test program. You will have to check and add the proper libraries by hand
3307 dnl ---------------------------------------------------------------------------
3308 dnl CF__CURSES_HEAD version: 2 updated: 2010/10/23 15:54:49
3310 dnl Define a reusable chunk which includes <curses.h> and <term.h> when they
3311 dnl are both available.
3312 define([CF__CURSES_HEAD],[
3314 #include <xcurses.h>
3315 char * XCursesProgramName = "test";
3317 #include <${cf_cv_ncurses_header:-curses.h}>
3318 #if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H)
3319 #include <ncursesw/term.h>
3320 #elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H)
3321 #include <ncurses/term.h>
3322 #elif defined(HAVE_TERM_H)