1 dnl***************************************************************************
2 dnl Copyright (c) 2003-2011,2012 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.84 2012/10/27 17:20:04 tom Exp $
31 dnl Author: Thomas E. Dickey
33 dnl Macros used in NCURSES test programs auto-configuration script.
35 dnl These macros are maintained separately from NCURSES. The copyright on
36 dnl this file applies to the aggregation of macros and does not affect use of
37 dnl these macros in other applications.
39 dnl See http://invisible-island.net/autoconf/ for additional information.
41 dnl ---------------------------------------------------------------------------
42 dnl ---------------------------------------------------------------------------
43 dnl CF_ACVERSION_CHECK version: 3 updated: 2012/10/03 18:39:53
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: 3 updated: 2012/10/03 18:39:53
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_ARG_DISABLE version: 3 updated: 1999/03/30 17:24:31
302 dnl Allow user to disable a normally-on option.
303 AC_DEFUN([CF_ARG_DISABLE],
304 [CF_ARG_OPTION($1,[$2],[$3],[$4],yes)])dnl
305 dnl ---------------------------------------------------------------------------
306 dnl CF_ARG_ENABLE version: 3 updated: 1999/03/30 17:24:31
308 dnl Allow user to enable a normally-off option.
309 AC_DEFUN([CF_ARG_ENABLE],
310 [CF_ARG_OPTION($1,[$2],[$3],[$4],no)])dnl
311 dnl ---------------------------------------------------------------------------
312 dnl CF_ARG_OPTION version: 4 updated: 2010/05/26 05:38:42
314 dnl Restricted form of AC_ARG_ENABLE that ensures user doesn't give bogus
320 dnl $3 = action to perform if option is not default
321 dnl $4 = action if perform if option is default
322 dnl $5 = default option value (either 'yes' or 'no')
323 AC_DEFUN([CF_ARG_OPTION],
324 [AC_ARG_ENABLE([$1],[$2],[test "$enableval" != ifelse([$5],no,yes,no) && enableval=ifelse([$5],no,no,yes)
325 if test "$enableval" != "$5" ; then
327 ,[ $3]) ifelse([$4],,,[
330 fi],[enableval=$5 ifelse([$4],,,[
334 dnl ---------------------------------------------------------------------------
335 dnl CF_CC_ENV_FLAGS version: 1 updated: 2012/10/03 05:25:49
337 dnl Check for user's environment-breakage by stuffing CFLAGS/CPPFLAGS content
338 dnl into CC. This will not help with broken scripts that wrap the compiler with
339 dnl options, but eliminates a more common category of user confusion.
340 AC_DEFUN([CF_CC_ENV_FLAGS],
342 # This should have been defined by AC_PROG_CC
345 AC_MSG_CHECKING(\$CC variable)
348 AC_MSG_RESULT(broken)
349 AC_MSG_WARN(your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options)
351 cf_flags=`echo "$CC" | sed -e 's/^[[^ ]]*[[ ]]//'`
352 CC=`echo "$CC" | sed -e 's/[[ ]].*//'`
353 CF_ADD_CFLAGS($cf_flags)
360 dnl ---------------------------------------------------------------------------
361 dnl CF_CHECK_CACHE version: 12 updated: 2012/10/02 20:55:03
363 dnl Check if we're accidentally using a cache from a different machine.
364 dnl Derive the system name, as a check for reusing the autoconf cache.
366 dnl If we've packaged config.guess and config.sub, run that (since it does a
367 dnl better job than uname). Normally we'll use AC_CANONICAL_HOST, but allow
368 dnl an extra parameter that we may override, e.g., for AC_CANONICAL_SYSTEM
369 dnl which is useful in cross-compiles.
371 dnl Note: we would use $ac_config_sub, but that is one of the places where
372 dnl autoconf 2.5x broke compatibility with autoconf 2.13
373 AC_DEFUN([CF_CHECK_CACHE],
375 if test -f $srcdir/config.guess || test -f $ac_aux_dir/config.guess ; then
376 ifelse([$1],,[AC_CANONICAL_HOST],[$1])
377 system_name="$host_os"
379 system_name="`(uname -s -r) 2>/dev/null`"
380 if test -z "$system_name" ; then
381 system_name="`(hostname) 2>/dev/null`"
384 test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name",[Define to the system name.])
385 AC_CACHE_VAL(cf_cv_system_name,[cf_cv_system_name="$system_name"])
387 test -z "$system_name" && system_name="$cf_cv_system_name"
388 test -n "$cf_cv_system_name" && AC_MSG_RESULT(Configuring for $cf_cv_system_name)
390 if test ".$system_name" != ".$cf_cv_system_name" ; then
391 AC_MSG_RESULT(Cached system name ($system_name) does not agree with actual ($cf_cv_system_name))
392 AC_MSG_ERROR("Please remove config.cache and try again.")
395 dnl ---------------------------------------------------------------------------
396 dnl CF_CHECK_CFLAGS version: 2 updated: 2001/12/30 19:09:58
398 dnl Conditionally add to $CFLAGS and $CPPFLAGS values which are derived from
399 dnl a build-configuration such as imake. These have the pitfall that they
400 dnl often contain compiler-specific options which we cannot use, mixed with
401 dnl preprocessor options that we usually can.
402 AC_DEFUN([CF_CHECK_CFLAGS],
404 CF_VERBOSE(checking additions to CFLAGS)
405 cf_check_cflags="$CFLAGS"
406 cf_check_cppflags="$CPPFLAGS"
407 CF_ADD_CFLAGS($1,yes)
408 if test "$cf_check_cflags" != "$CFLAGS" ; then
409 AC_TRY_LINK([#include <stdio.h>],[printf("Hello world");],,
410 [CF_VERBOSE(test-compile failed. Undoing change to \$CFLAGS)
411 if test "$cf_check_cppflags" != "$CPPFLAGS" ; then
412 CF_VERBOSE(but keeping change to \$CPPFLAGS)
414 CFLAGS="$cf_check_flags"])
417 dnl ---------------------------------------------------------------------------
418 dnl CF_CLANG_COMPILER version: 1 updated: 2012/06/16 14:55:39
419 dnl -----------------
420 dnl Check if the given compiler is really clang. clang's C driver defines
421 dnl __GNUC__ (fooling the configure script into setting $GCC to yes) but does
422 dnl not ignore some gcc options.
424 dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
425 dnl ensure that it is not mistaken for gcc/g++. It is normally invoked from
426 dnl the wrappers for gcc and g++ warnings.
428 dnl $1 = GCC (default) or GXX
429 dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS
430 dnl $3 = CFLAGS (default) or CXXFLAGS
431 AC_DEFUN([CF_CLANG_COMPILER],[
432 ifelse([$2],,CLANG_COMPILER,[$2])=no
434 if test "$ifelse([$1],,[$1],GCC)" = yes ; then
435 AC_MSG_CHECKING(if this is really Clang ifelse([$1],GXX,C++,C) compiler)
436 cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
437 ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -Qunused-arguments"
443 ],[ifelse([$2],,CLANG_COMPILER,[$2])=yes
444 cf_save_CFLAGS="$cf_save_CFLAGS -Qunused-arguments"
446 ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
447 AC_MSG_RESULT($ifelse([$2],,CLANG_COMPILER,[$2]))
450 dnl ---------------------------------------------------------------------------
451 dnl CF_CURSES_ACS_MAP version: 7 updated: 2012/10/06 16:39:58
452 dnl -----------------
453 dnl Check for likely values of acs_map[]:
454 AC_DEFUN([CF_CURSES_ACS_MAP],
456 AC_REQUIRE([CF_NCURSES_WRAP_PREFIX])dnl
457 AC_CACHE_CHECK(for alternate character set array, cf_cv_curses_acs_map,[
458 cf_cv_curses_acs_map=unknown
459 for name in acs_map _acs_map __acs_map ${NCURSES_WRAP_PREFIX}acs_map
462 #include <${cf_cv_ncurses_header:-curses.h}>
464 $name['k'] = ACS_PLUS
465 ],[cf_cv_curses_acs_map=$name; break])
469 test "$cf_cv_curses_acs_map" != unknown && AC_DEFINE_UNQUOTED(CURSES_ACS_ARRAY,$cf_cv_curses_acs_map,[Define as needed to override ncurses prefix _nc_])
471 dnl ---------------------------------------------------------------------------
472 dnl CF_CURSES_CHECK_DATA version: 4 updated: 2011/01/15 16:39:24
473 dnl --------------------
474 dnl Check if curses.h defines the given data/variable.
475 dnl Use this after CF_NCURSES_CONFIG or CF_CURSES_CONFIG.
476 AC_DEFUN([CF_CURSES_CHECK_DATA],
478 AC_MSG_CHECKING(for data $1 declaration in ${cf_cv_ncurses_header:-curses.h})
480 AC_TRY_COMPILE(CF__CURSES_HEAD,[
482 ],cf_result=yes,cf_result=no)
483 AC_MSG_RESULT($cf_result)
485 if test $cf_result = yes ; then
486 CF_UPPER(cf_result,have_curses_data_$1)
487 AC_DEFINE_UNQUOTED($cf_result)
489 AC_MSG_CHECKING(for data $1 in library)
490 # BSD linkers insist on making weak linkage, but resolve at runtime.
491 AC_TRY_RUN(CF__CURSES_HEAD
497 ${cf_cv_main_return:-return}(foo == 0);
498 }],[cf_result=yes],[cf_result=no],[
500 AC_TRY_LINK(CF__CURSES_HEAD
504 ${cf_cv_main_return:-return}(foo == 0);
506 ],[cf_result=yes],[cf_result=no])
508 AC_MSG_RESULT($cf_result)
509 if test $cf_result = yes ; then
510 CF_UPPER(cf_result,decl_curses_data_$1)
511 AC_DEFINE_UNQUOTED($cf_result)
515 dnl ---------------------------------------------------------------------------
516 dnl CF_CURSES_CHECK_TYPE version: 4 updated: 2012/10/06 16:39:58
517 dnl --------------------
518 dnl Check if curses.h defines the given type
519 AC_DEFUN([CF_CURSES_CHECK_TYPE],
521 AC_MSG_CHECKING(for type $1 in ${cf_cv_ncurses_header:-curses.h})
523 #ifndef _XOPEN_SOURCE_EXTENDED
524 #define _XOPEN_SOURCE_EXTENDED
526 #include <${cf_cv_ncurses_header:-curses.h}>],[
528 ],cf_result=yes,cf_result=no)
529 AC_MSG_RESULT($cf_result)
530 if test $cf_result = yes ; then
531 CF_UPPER(cf_result,have_type_$1)
532 AC_DEFINE_UNQUOTED($cf_result,1,[Define to 1 if we have type $1])
534 AC_DEFINE_UNQUOTED($1,$2,[Define to appropriate type if $1 is not declared])
537 dnl ---------------------------------------------------------------------------
538 dnl CF_CURSES_CONFIG version: 2 updated: 2006/10/29 11:06:27
540 dnl Tie together the configure-script macros for curses. It may be ncurses,
541 dnl but unless asked, we do not make a special search for ncurses. However,
542 dnl still check for the ncurses version number, for use in other macros.
543 AC_DEFUN([CF_CURSES_CONFIG],
549 dnl ---------------------------------------------------------------------------
550 dnl CF_CURSES_CPPFLAGS version: 11 updated: 2011/04/09 14:51:08
551 dnl ------------------
552 dnl Look for the curses headers.
553 AC_DEFUN([CF_CURSES_CPPFLAGS],[
555 AC_CACHE_CHECK(for extra include directories,cf_cv_curses_incdir,[
556 cf_cv_curses_incdir=no
557 case $host_os in #(vi
559 if test "x$cf_cv_screen" = "xcurses_colr"
561 test -d /usr/include/curses_colr && \
562 cf_cv_curses_incdir="-I/usr/include/curses_colr"
566 if test "x$cf_cv_screen" = "xcurses_5lib"
568 test -d /usr/5lib && \
569 test -d /usr/5include && \
570 cf_cv_curses_incdir="-I/usr/5include"
575 test "$cf_cv_curses_incdir" != no && CPPFLAGS="$CPPFLAGS $cf_cv_curses_incdir"
580 dnl ---------------------------------------------------------------------------
581 dnl CF_CURSES_FUNCS version: 17 updated: 2011/05/14 16:07:29
583 dnl Curses-functions are a little complicated, since a lot of them are macros.
584 AC_DEFUN([CF_CURSES_FUNCS],
586 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
587 AC_REQUIRE([CF_XOPEN_CURSES])
588 AC_REQUIRE([CF_CURSES_TERM_H])
589 AC_REQUIRE([CF_CURSES_UNCTRL_H])
592 CF_UPPER(cf_tr_func,$cf_func)
593 AC_MSG_CHECKING(for ${cf_func})
594 CF_MSG_LOG(${cf_func})
595 AC_CACHE_VAL(cf_cv_func_$cf_func,[
596 eval cf_result='$ac_cv_func_'$cf_func
597 if test ".$cf_result" != ".no"; then
598 AC_TRY_LINK(CF__CURSES_HEAD,
601 long foo = (long)(&${cf_func});
602 if (foo + 1234 > 5678)
603 ${cf_cv_main_return:-return}(foo);
609 eval 'cf_cv_func_'$cf_func'=$cf_result'
611 # use the computed/retrieved cache-value:
612 eval 'cf_result=$cf_cv_func_'$cf_func
613 AC_MSG_RESULT($cf_result)
614 if test $cf_result != no; then
615 AC_DEFINE_UNQUOTED(HAVE_${cf_tr_func})
619 dnl ---------------------------------------------------------------------------
620 dnl CF_CURSES_HEADER version: 3 updated: 2011/05/01 19:47:45
622 dnl Find a "curses" header file, e.g,. "curses.h", or one of the more common
623 dnl variations of ncurses' installs.
625 dnl $1 = ncurses when looking for ncurses, or is empty
626 AC_DEFUN([CF_CURSES_HEADER],[
627 AC_CACHE_CHECK(if we have identified curses headers,cf_cv_ncurses_header,[
628 cf_cv_ncurses_header=none
629 for cf_header in ifelse($1,,,[ \
633 curses.h ifelse($1,,[ncurses/ncurses.h ncurses/curses.h])
635 AC_TRY_COMPILE([#include <${cf_header}>],
636 [initscr(); tgoto("?", 0,0)],
637 [cf_cv_ncurses_header=$cf_header; break],[])
641 if test "$cf_cv_ncurses_header" = none ; then
642 AC_MSG_ERROR(No curses header-files found)
645 # cheat, to get the right #define's for HAVE_NCURSES_H, etc.
646 AC_CHECK_HEADERS($cf_cv_ncurses_header)
648 dnl ---------------------------------------------------------------------------
649 dnl CF_CURSES_LIBS version: 36 updated: 2012/07/07 21:02:48
651 dnl Look for the curses libraries. Older curses implementations may require
652 dnl termcap/termlib to be linked as well. Call CF_CURSES_CPPFLAGS first.
653 AC_DEFUN([CF_CURSES_LIBS],[
655 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
656 AC_MSG_CHECKING(if we have identified curses libraries)
657 AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
658 [initscr(); tgoto("?", 0,0)],
661 AC_MSG_RESULT($cf_result)
663 if test "$cf_result" = no ; then
664 case $host_os in #(vi
666 AC_CHECK_LIB(mytinfo,tgoto,[CF_ADD_LIBS(-lmytinfo)])
669 # Looking at HPUX 10.20, the Hcurses library is the oldest (1997), cur_colr
670 # next (1998), and xcurses "newer" (2000). There is no header file for
671 # Hcurses; the subdirectory curses_colr has the headers (curses.h and
672 # term.h) for cur_colr
673 if test "x$cf_cv_screen" = "xcurses_colr"
675 AC_CHECK_LIB(cur_colr,initscr,[
676 CF_ADD_LIBS(-lcur_colr)
677 ac_cv_func_initscr=yes
679 AC_CHECK_LIB(Hcurses,initscr,[
680 # HP's header uses __HP_CURSES, but user claims _HP_CURSES.
681 CF_ADD_LIBS(-lHcurses)
682 CPPFLAGS="$CPPFLAGS -D__HP_CURSES -D_HP_CURSES"
683 ac_cv_func_initscr=yes
688 case `arch 2>/dev/null` in
692 CF_ADD_LIBDIR(/lib64)
703 if test "x$cf_cv_screen" = "xcurses_5lib"
705 if test -d /usr/5lib ; then
706 CF_ADD_LIBDIR(/usr/5lib)
707 CF_ADD_LIBS(-lcurses -ltermcap)
710 ac_cv_func_initscr=yes
714 if test ".$ac_cv_func_initscr" != .yes ; then
719 if test ".${cf_cv_ncurses_version:-no}" != .no
721 cf_check_list="ncurses curses cursesX"
723 cf_check_list="cursesX curses ncurses"
726 # Check for library containing tgoto. Do this before curses library
727 # because it may be needed to link the test-case for initscr.
728 AC_CHECK_FUNC(tgoto,[cf_term_lib=predefined],[
729 for cf_term_lib in $cf_check_list otermcap termcap tinfo termlib unknown
731 AC_CHECK_LIB($cf_term_lib,tgoto,[break])
735 # Check for library containing initscr
736 test "$cf_term_lib" != predefined && test "$cf_term_lib" != unknown && LIBS="-l$cf_term_lib $cf_save_LIBS"
737 for cf_curs_lib in $cf_check_list xcurses jcurses pdcurses unknown
739 AC_CHECK_LIB($cf_curs_lib,initscr,[break])
741 test $cf_curs_lib = unknown && AC_MSG_ERROR(no curses library found)
743 LIBS="-l$cf_curs_lib $cf_save_LIBS"
744 if test "$cf_term_lib" = unknown ; then
745 AC_MSG_CHECKING(if we can link with $cf_curs_lib library)
746 AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
750 AC_MSG_RESULT($cf_result)
751 test $cf_result = no && AC_MSG_ERROR(Cannot link curses library)
752 elif test "$cf_curs_lib" = "$cf_term_lib" ; then
754 elif test "$cf_term_lib" != predefined ; then
755 AC_MSG_CHECKING(if we need both $cf_curs_lib and $cf_term_lib libraries)
756 AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
757 [initscr(); tgoto((char *)0, 0, 0);],
760 LIBS="-l$cf_curs_lib -l$cf_term_lib $cf_save_LIBS"
761 AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
766 AC_MSG_RESULT($cf_result)
772 dnl ---------------------------------------------------------------------------
773 dnl CF_CURSES_TERM_H version: 10 updated: 2012/10/06 08:57:51
775 dnl SVr4 curses should have term.h as well (where it puts the definitions of
776 dnl the low-level interface). This may not be true in old/broken implementations,
777 dnl as well as in misconfigured systems (e.g., gcc configured for Solaris 2.4
778 dnl running with Solaris 2.5.1).
779 AC_DEFUN([CF_CURSES_TERM_H],
781 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
783 AC_CACHE_CHECK(for term.h, cf_cv_term_header,[
785 # If we found <ncurses/curses.h>, look for <ncurses/term.h>, but always look
786 # for <term.h> if we do not find the variant.
788 cf_header_list="term.h ncurses/term.h ncursesw/term.h"
790 case ${cf_cv_ncurses_header:-curses.h} in #(vi
792 cf_header_item=`echo ${cf_cv_ncurses_header:-curses.h} | sed -e 's%\..*%%' -e 's%/.*%/%'`term.h
793 cf_header_list="$cf_header_item $cf_header_list"
797 for cf_header in $cf_header_list
800 #include <${cf_cv_ncurses_header:-curses.h}>
801 #include <${cf_header}>],
803 [cf_cv_term_header=$cf_header
805 [cf_cv_term_header=no])
808 case $cf_cv_term_header in #(vi
810 # If curses is ncurses, some packagers still mess it up by trying to make
811 # us use GNU termcap. This handles the most common case.
812 for cf_header in ncurses/term.h ncursesw/term.h
815 #include <${cf_cv_ncurses_header:-curses.h}>
816 #ifdef NCURSES_VERSION
817 #include <${cf_header}>
822 [cf_cv_term_header=$cf_header
824 [cf_cv_term_header=no])
830 case $cf_cv_term_header in #(vi
832 AC_DEFINE(HAVE_TERM_H,1,[Define to 1 if we have term.h])
835 AC_DEFINE(HAVE_NCURSES_TERM_H,1,[Define to 1 if we have ncurses/term.h])
838 AC_DEFINE(HAVE_NCURSESW_TERM_H,1,[Define to 1 if we have ncursesw/term.h])
842 dnl ---------------------------------------------------------------------------
843 dnl CF_CURSES_UNCTRL_H version: 2 updated: 2012/10/06 08:57:51
844 dnl ------------------
845 dnl Any X/Open curses implementation must have unctrl.h, but ncurses packages
846 dnl may put it in a subdirectory (along with ncurses' other headers, of
847 dnl course). Packages which put the headers in inconsistent locations are
849 AC_DEFUN([CF_CURSES_UNCTRL_H],
851 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
853 AC_CACHE_CHECK(for unctrl.h, cf_cv_unctrl_header,[
855 # If we found <ncurses/curses.h>, look for <ncurses/unctrl.h>, but always look
856 # for <unctrl.h> if we do not find the variant.
858 cf_header_list="unctrl.h ncurses/unctrl.h ncursesw/unctrl.h"
860 case ${cf_cv_ncurses_header:-curses.h} in #(vi
862 cf_header_item=`echo ${cf_cv_ncurses_header:-curses.h} | sed -e 's%\..*%%' -e 's%/.*%/%'`unctrl.h
863 cf_header_list="$cf_header_item $cf_header_list"
867 for cf_header in $cf_header_list
870 #include <${cf_cv_ncurses_header:-curses.h}>
871 #include <${cf_header}>],
873 [cf_cv_unctrl_header=$cf_header
875 [cf_cv_unctrl_header=no])
878 case $cf_cv_unctrl_header in #(vi
880 AC_MSG_WARN(unctrl.h header not found)
885 case $cf_cv_unctrl_header in #(vi
887 AC_DEFINE(HAVE_UNCTRL_H,1,[Define to 1 if we have unctrl.h])
889 ncurses/unctrl.h) #(vi
890 AC_DEFINE(HAVE_NCURSES_UNCTRL_H,1,[Define to 1 if we have ncurses/unctrl.h])
893 AC_DEFINE(HAVE_NCURSESW_UNCTRL_H,1,[Define to 1 if we have ncursesw/unctrl.h])
897 dnl ---------------------------------------------------------------------------
898 dnl CF_CURSES_WACS_MAP version: 6 updated: 2012/10/06 08:57:51
899 dnl ------------------
900 dnl Check for likely values of wacs_map[].
901 AC_DEFUN([CF_CURSES_WACS_MAP],
903 AC_CACHE_CHECK(for wide alternate character set array, cf_cv_curses_wacs_map,[
904 cf_cv_curses_wacs_map=unknown
905 for name in wacs_map _wacs_map __wacs_map _nc_wacs _wacs_char
908 #ifndef _XOPEN_SOURCE_EXTENDED
909 #define _XOPEN_SOURCE_EXTENDED
911 #include <${cf_cv_ncurses_header:-curses.h}>],
912 [void *foo = &($name['k'])],
913 [cf_cv_curses_wacs_map=$name
917 test "$cf_cv_curses_wacs_map" != unknown && AC_DEFINE_UNQUOTED(CURSES_WACS_ARRAY,$cf_cv_curses_wacs_map,[Define to name of (n)curses wide-character array])
919 dnl ---------------------------------------------------------------------------
920 dnl CF_CURSES_WACS_SYMBOLS version: 2 updated: 2012/10/06 08:57:51
921 dnl ----------------------
922 dnl Do a check to see if the WACS_xxx constants are defined compatibly with
923 dnl X/Open Curses. In particular, NetBSD's implementation of the WACS_xxx
924 dnl constants is broken since those constants do not point to cchar_t's.
925 AC_DEFUN([CF_CURSES_WACS_SYMBOLS],
927 AC_REQUIRE([CF_CURSES_WACS_MAP])
929 AC_CACHE_CHECK(for wide alternate character constants, cf_cv_curses_wacs_symbols,[
930 cf_cv_curses_wacs_symbols=no
931 if test "$cf_cv_curses_wacs_map" != unknown
934 #ifndef _XOPEN_SOURCE_EXTENDED
935 #define _XOPEN_SOURCE_EXTENDED
937 #include <${cf_cv_ncurses_header:-curses.h}>],
938 [cchar_t *foo = WACS_PLUS;
939 $cf_cv_curses_wacs_map['k'] = *WACS_PLUS],
940 [cf_cv_curses_wacs_symbols=yes])
943 #ifndef _XOPEN_SOURCE_EXTENDED
944 #define _XOPEN_SOURCE_EXTENDED
946 #include <${cf_cv_ncurses_header:-curses.h}>],
947 [cchar_t *foo = WACS_PLUS],
948 [cf_cv_curses_wacs_symbols=yes])
952 test "$cf_cv_curses_wacs_symbols" != no && AC_DEFINE(CURSES_WACS_SYMBOLS,1,[Define to 1 if (n)curses supports wide-character WACS_ symbols])
954 dnl ---------------------------------------------------------------------------
955 dnl CF_DIRNAME version: 4 updated: 2002/12/21 19:25:52
957 dnl "dirname" is not portable, so we fake it with a shell script.
958 AC_DEFUN([CF_DIRNAME],[$1=`echo $2 | sed -e 's%/[[^/]]*$%%'`])dnl
959 dnl ---------------------------------------------------------------------------
960 dnl CF_DISABLE_ECHO version: 12 updated: 2012/10/06 16:30:28
962 dnl You can always use "make -n" to see the actual options, but it's hard to
963 dnl pick out/analyze warning messages when the compile-line is long.
966 dnl ECHO_LT - symbol to control if libtool is verbose
967 dnl ECHO_LD - symbol to prefix "cc -o" lines
968 dnl RULE_CC - symbol to put before implicit "cc -c" lines (e.g., .c.o)
969 dnl SHOW_CC - symbol to put before explicit "cc -c" lines
970 dnl ECHO_CC - symbol to put before any "cc" line
972 AC_DEFUN([CF_DISABLE_ECHO],[
973 AC_MSG_CHECKING(if you want to see long compiling messages)
975 [ --disable-echo do not display "compiling" commands],
978 ECHO_LD='@echo linking [$]@;'
979 RULE_CC='@echo compiling [$]<'
980 SHOW_CC='@echo compiling [$]@'
989 AC_MSG_RESULT($enableval)
996 dnl ---------------------------------------------------------------------------
997 dnl CF_DISABLE_LEAKS version: 7 updated: 2012/10/02 20:55:03
999 dnl Combine no-leak checks with the libraries or tools that are used for the
1001 AC_DEFUN([CF_DISABLE_LEAKS],[
1003 AC_REQUIRE([CF_WITH_DMALLOC])
1004 AC_REQUIRE([CF_WITH_DBMALLOC])
1005 AC_REQUIRE([CF_WITH_VALGRIND])
1007 AC_MSG_CHECKING(if you want to perform memory-leak testing)
1008 AC_ARG_ENABLE(leaks,
1009 [ --disable-leaks test: free permanent memory, analyze leaks],
1010 [if test "x$enableval" = xno; then with_no_leaks=yes; else with_no_leaks=no; fi],
1011 : ${with_no_leaks:=no})
1012 AC_MSG_RESULT($with_no_leaks)
1014 if test "$with_no_leaks" = yes ; then
1015 AC_DEFINE(NO_LEAKS,1,[Define to 1 if you want to perform memory-leak testing.])
1016 AC_DEFINE(YY_NO_LEAKS,1,[Define to 1 if you want to perform memory-leak testing.])
1019 dnl ---------------------------------------------------------------------------
1020 dnl CF_DISABLE_RPATH_HACK version: 2 updated: 2011/02/13 13:31:33
1021 dnl ---------------------
1022 dnl The rpath-hack makes it simpler to build programs, particularly with the
1023 dnl *BSD ports which may have essential libraries in unusual places. But it
1024 dnl can interfere with building an executable for the base system. Use this
1025 dnl option in that case.
1026 AC_DEFUN([CF_DISABLE_RPATH_HACK],
1028 AC_MSG_CHECKING(if rpath-hack should be disabled)
1029 CF_ARG_DISABLE(rpath-hack,
1030 [ --disable-rpath-hack don't add rpath options for additional libraries],
1031 [cf_disable_rpath_hack=yes],
1032 [cf_disable_rpath_hack=no])
1033 AC_MSG_RESULT($cf_disable_rpath_hack)
1034 if test "$cf_disable_rpath_hack" = no ; then
1038 dnl ---------------------------------------------------------------------------
1039 dnl CF_ENABLE_WARNINGS version: 4 updated: 2009/07/26 17:53:03
1040 dnl ------------------
1041 dnl Configure-option to enable gcc warnings
1042 AC_DEFUN([CF_ENABLE_WARNINGS],[
1043 if ( test "$GCC" = yes || test "$GXX" = yes )
1045 AC_MSG_CHECKING(if you want to turn on gcc warnings)
1046 CF_ARG_ENABLE(warnings,
1047 [ --enable-warnings test: turn on gcc compiler warnings],
1048 [with_warnings=yes],
1050 AC_MSG_RESULT($with_warnings)
1051 if test "$with_warnings" = "yes"
1058 dnl ---------------------------------------------------------------------------
1059 dnl CF_FIND_LIBRARY version: 9 updated: 2008/03/23 14:48:54
1061 dnl Look for a non-standard library, given parameters for AC_TRY_LINK. We
1062 dnl prefer a standard location, and use -L options only if we do not find the
1063 dnl library in the standard library location(s).
1064 dnl $1 = library name
1065 dnl $2 = library class, usually the same as library name
1067 dnl $4 = code fragment to compile/link
1068 dnl $5 = corresponding function-name
1069 dnl $6 = flag, nonnull if failure should not cause an error-exit
1071 dnl Sets the variable "$cf_libdir" as a side-effect, so we can see if we had
1072 dnl to use a -L option.
1073 AC_DEFUN([CF_FIND_LIBRARY],
1075 eval 'cf_cv_have_lib_'$1'=no'
1078 eval 'cf_cv_have_lib_'$1'=yes',[
1079 cf_save_LIBS="$LIBS"
1080 AC_MSG_CHECKING(for $5 in -l$1)
1082 AC_TRY_LINK([$3],[$4],
1084 eval 'cf_cv_have_lib_'$1'=yes'
1087 CF_LIBRARY_PATH(cf_search,$2)
1088 for cf_libdir in $cf_search
1090 AC_MSG_CHECKING(for -l$1 in $cf_libdir)
1091 LIBS="-L$cf_libdir -l$1 $cf_save_LIBS"
1092 AC_TRY_LINK([$3],[$4],
1094 eval 'cf_cv_have_lib_'$1'=yes'
1097 LIBS="$cf_save_LIBS"])
1101 eval 'cf_found_library=[$]cf_cv_have_lib_'$1
1103 if test $cf_found_library = no ; then
1104 AC_MSG_ERROR(Cannot link $1 library)
1108 dnl ---------------------------------------------------------------------------
1109 dnl CF_FIND_LINKAGE version: 19 updated: 2010/05/29 16:31:02
1111 dnl Find a library (specifically the linkage used in the code fragment),
1112 dnl searching for it if it is not already in the library path.
1113 dnl See also CF_ADD_SEARCHPATH.
1115 dnl Parameters (4-on are optional):
1116 dnl $1 = headers for library entrypoint
1117 dnl $2 = code fragment for library entrypoint
1118 dnl $3 = the library name without the "-l" option or ".so" suffix.
1119 dnl $4 = action to perform if successful (default: update CPPFLAGS, etc)
1120 dnl $5 = action to perform if not successful
1121 dnl $6 = module name, if not the same as the library name
1122 dnl $7 = extra libraries
1124 dnl Sets these variables:
1125 dnl $cf_cv_find_linkage_$3 - yes/no according to whether linkage is found
1126 dnl $cf_cv_header_path_$3 - include-directory if needed
1127 dnl $cf_cv_library_path_$3 - library-directory if needed
1128 dnl $cf_cv_library_file_$3 - library-file if needed, e.g., -l$3
1129 AC_DEFUN([CF_FIND_LINKAGE],[
1131 # If the linkage is not already in the $CPPFLAGS/$LDFLAGS configuration, these
1132 # will be set on completion of the AC_TRY_LINK below.
1133 cf_cv_header_path_$3=
1134 cf_cv_library_path_$3=
1136 CF_MSG_LOG([Starting [FIND_LINKAGE]($3,$6)])
1138 cf_save_LIBS="$LIBS"
1140 AC_TRY_LINK([$1],[$2],[
1141 cf_cv_find_linkage_$3=yes
1142 cf_cv_header_path_$3=/usr/include
1143 cf_cv_library_path_$3=/usr/lib
1146 LIBS="-l$3 $7 $cf_save_LIBS"
1148 AC_TRY_LINK([$1],[$2],[
1149 cf_cv_find_linkage_$3=yes
1150 cf_cv_header_path_$3=/usr/include
1151 cf_cv_library_path_$3=/usr/lib
1152 cf_cv_library_file_$3="-l$3"
1154 cf_cv_find_linkage_$3=no
1155 LIBS="$cf_save_LIBS"
1157 CF_VERBOSE(find linkage for $3 library)
1158 CF_MSG_LOG([Searching for headers in [FIND_LINKAGE]($3,$6)])
1160 cf_save_CPPFLAGS="$CPPFLAGS"
1161 cf_test_CPPFLAGS="$CPPFLAGS"
1163 CF_HEADER_PATH(cf_search,ifelse([$6],,[$3],[$6]))
1164 for cf_cv_header_path_$3 in $cf_search
1166 if test -d $cf_cv_header_path_$3 ; then
1167 CF_VERBOSE(... testing $cf_cv_header_path_$3)
1168 CPPFLAGS="$cf_save_CPPFLAGS -I$cf_cv_header_path_$3"
1169 AC_TRY_COMPILE([$1],[$2],[
1170 CF_VERBOSE(... found $3 headers in $cf_cv_header_path_$3)
1171 cf_cv_find_linkage_$3=maybe
1172 cf_test_CPPFLAGS="$CPPFLAGS"
1174 CPPFLAGS="$cf_save_CPPFLAGS"
1179 if test "$cf_cv_find_linkage_$3" = maybe ; then
1181 CF_MSG_LOG([Searching for $3 library in [FIND_LINKAGE]($3,$6)])
1183 cf_save_LIBS="$LIBS"
1184 cf_save_LDFLAGS="$LDFLAGS"
1187 CPPFLAGS="$cf_test_CPPFLAGS"
1188 LIBS="-l$3 $7 $cf_save_LIBS"
1189 AC_TRY_LINK([$1],[$2],[
1190 CF_VERBOSE(... found $3 library in system)
1191 cf_cv_find_linkage_$3=yes])
1192 CPPFLAGS="$cf_save_CPPFLAGS"
1193 LIBS="$cf_save_LIBS"
1196 if test "$cf_cv_find_linkage_$3" != yes ; then
1197 CF_LIBRARY_PATH(cf_search,$3)
1198 for cf_cv_library_path_$3 in $cf_search
1200 if test -d $cf_cv_library_path_$3 ; then
1201 CF_VERBOSE(... testing $cf_cv_library_path_$3)
1202 CPPFLAGS="$cf_test_CPPFLAGS"
1203 LIBS="-l$3 $7 $cf_save_LIBS"
1204 LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_$3"
1205 AC_TRY_LINK([$1],[$2],[
1206 CF_VERBOSE(... found $3 library in $cf_cv_library_path_$3)
1207 cf_cv_find_linkage_$3=yes
1208 cf_cv_library_file_$3="-l$3"
1210 CPPFLAGS="$cf_save_CPPFLAGS"
1211 LIBS="$cf_save_LIBS"
1212 LDFLAGS="$cf_save_LDFLAGS"
1216 CPPFLAGS="$cf_save_CPPFLAGS"
1217 LDFLAGS="$cf_save_LDFLAGS"
1221 cf_cv_find_linkage_$3=no
1226 LIBS="$cf_save_LIBS"
1228 if test "$cf_cv_find_linkage_$3" = yes ; then
1230 CF_ADD_INCDIR($cf_cv_header_path_$3)
1231 CF_ADD_LIBDIR($cf_cv_library_path_$3)
1235 ifelse([$5],,AC_MSG_WARN(Cannot find $3 library),[$5])
1238 dnl ---------------------------------------------------------------------------
1239 dnl CF_FUNC_CURSES_VERSION version: 6 updated: 2012/10/06 16:39:58
1240 dnl ----------------------
1241 dnl Solaris has a data item 'curses_version', which confuses AC_CHECK_FUNCS.
1242 dnl It's a character string "SVR4", not documented.
1243 AC_DEFUN([CF_FUNC_CURSES_VERSION],
1245 AC_CACHE_CHECK(for function curses_version, cf_cv_func_curses_version,[
1247 #include <${cf_cv_ncurses_header:-curses.h}>
1251 sprintf(temp, "%s\n", curses_version());
1252 ${cf_cv_main_return:-return}(0);
1254 ,[cf_cv_func_curses_version=yes]
1255 ,[cf_cv_func_curses_version=no]
1256 ,[cf_cv_func_curses_version=unknown])
1258 test "$cf_cv_func_curses_version" = yes && AC_DEFINE(HAVE_CURSES_VERSION,1,[Define to 1 if we have curses_version function])
1260 dnl ---------------------------------------------------------------------------
1261 dnl CF_GCC_ATTRIBUTES version: 16 updated: 2012/10/02 20:55:03
1262 dnl -----------------
1263 dnl Test for availability of useful gcc __attribute__ directives to quiet
1264 dnl compiler warnings. Though useful, not all are supported -- and contrary
1265 dnl to documentation, unrecognized directives cause older compilers to barf.
1266 AC_DEFUN([CF_GCC_ATTRIBUTES],
1268 if test "$GCC" = yes
1270 cat > conftest.i <<EOF
1272 #define GCC_PRINTF 0
1277 #ifndef GCC_NORETURN
1278 #define GCC_NORETURN /* nothing */
1281 #define GCC_UNUSED /* nothing */
1284 if test "$GCC" = yes
1286 AC_CHECKING([for $CC __attribute__ directives])
1287 cat > conftest.$ac_ext <<EOF
1288 #line __oline__ "${as_me:-configure}"
1289 #include "confdefs.h"
1290 #include "conftest.h"
1291 #include "conftest.i"
1293 #define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
1295 #define GCC_PRINTFLIKE(fmt,var) /*nothing*/
1298 #define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
1300 #define GCC_SCANFLIKE(fmt,var) /*nothing*/
1302 extern void wow(char *,...) GCC_SCANFLIKE(1,2);
1303 extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
1304 extern void foo(void) GCC_NORETURN;
1305 int main(int argc GCC_UNUSED, char *argv[[]] GCC_UNUSED) { return 0; }
1307 cf_printf_attribute=no
1308 cf_scanf_attribute=no
1309 for cf_attribute in scanf printf unused noreturn
1311 CF_UPPER(cf_ATTRIBUTE,$cf_attribute)
1312 cf_directive="__attribute__(($cf_attribute))"
1313 echo "checking for $CC $cf_directive" 1>&AC_FD_CC
1315 case $cf_attribute in #(vi
1317 cf_printf_attribute=yes
1318 cat >conftest.h <<EOF
1319 #define GCC_$cf_ATTRIBUTE 1
1323 cf_scanf_attribute=yes
1324 cat >conftest.h <<EOF
1325 #define GCC_$cf_ATTRIBUTE 1
1329 cat >conftest.h <<EOF
1330 #define GCC_$cf_ATTRIBUTE $cf_directive
1335 if AC_TRY_EVAL(ac_compile); then
1336 test -n "$verbose" && AC_MSG_RESULT(... $cf_attribute)
1337 cat conftest.h >>confdefs.h
1338 case $cf_attribute in #(vi
1340 AC_DEFINE_UNQUOTED(GCC_NORETURN,$cf_directive,[Define to noreturn-attribute for gcc])
1343 cf_value='/* nothing */'
1344 if test "$cf_printf_attribute" != no ; then
1345 cf_value='__attribute__((format(printf,fmt,var)))'
1346 AC_DEFINE(GCC_PRINTF,1,[Define to 1 if the compiler supports gcc-like printf attribute.])
1348 AC_DEFINE_UNQUOTED(GCC_PRINTFLIKE(fmt,var),$cf_value,[Define to printf-attribute for gcc])
1351 cf_value='/* nothing */'
1352 if test "$cf_scanf_attribute" != no ; then
1353 cf_value='__attribute__((format(scanf,fmt,var)))'
1354 AC_DEFINE(GCC_SCANF,1,[Define to 1 if the compiler supports gcc-like scanf attribute.])
1356 AC_DEFINE_UNQUOTED(GCC_SCANFLIKE(fmt,var),$cf_value,[Define to sscanf-attribute for gcc])
1359 AC_DEFINE_UNQUOTED(GCC_UNUSED,$cf_directive,[Define to unused-attribute for gcc])
1365 fgrep define conftest.i >>confdefs.h
1370 dnl ---------------------------------------------------------------------------
1371 dnl CF_GCC_VERSION version: 7 updated: 2012/10/18 06:46:33
1373 dnl Find version of gcc
1374 AC_DEFUN([CF_GCC_VERSION],[
1375 AC_REQUIRE([AC_PROG_CC])
1377 if test "$GCC" = yes ; then
1378 AC_MSG_CHECKING(version of $CC)
1379 GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(GCC[[^)]]*) //' -e 's/^.*(Debian[[^)]]*) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
1380 test -z "$GCC_VERSION" && GCC_VERSION=unknown
1381 AC_MSG_RESULT($GCC_VERSION)
1384 dnl ---------------------------------------------------------------------------
1385 dnl CF_GCC_WARNINGS version: 29 updated: 2012/06/16 14:55:39
1387 dnl Check if the compiler supports useful warning options. There's a few that
1388 dnl we don't use, simply because they're too noisy:
1390 dnl -Wconversion (useful in older versions of gcc, but not in gcc 2.7.x)
1391 dnl -Wredundant-decls (system headers make this too noisy)
1392 dnl -Wtraditional (combines too many unrelated messages, only a few useful)
1393 dnl -Wwrite-strings (too noisy, but should review occasionally). This
1394 dnl is enabled for ncurses using "--enable-const".
1398 dnl $1 is an optional list of gcc warning flags that a particular
1399 dnl application might want to use, e.g., "no-unused" for
1402 dnl If $with_ext_const is "yes", add a check for -Wwrite-strings
1404 AC_DEFUN([CF_GCC_WARNINGS],
1406 AC_REQUIRE([CF_GCC_VERSION])
1407 CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
1408 CF_CLANG_COMPILER(GCC,CLANG_COMPILER,CFLAGS)
1410 cat > conftest.$ac_ext <<EOF
1411 #line __oline__ "${as_me:-configure}"
1412 int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
1415 if test "$INTEL_COMPILER" = yes
1417 # The "-wdXXX" options suppress warnings:
1418 # remark #1419: external declaration in primary source file
1419 # remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
1420 # remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
1421 # remark #193: zero used for undefined preprocessing identifier
1422 # remark #593: variable "curs_sb_left_arrow" was set but never used
1423 # remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
1424 # remark #869: parameter "tw" was never referenced
1425 # remark #981: operands are evaluated in unspecified order
1426 # warning #279: controlling expression is constant
1428 AC_CHECKING([for $CC warning options])
1429 cf_save_CFLAGS="$CFLAGS"
1430 EXTRA_CFLAGS="-Wall"
1442 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
1443 if AC_TRY_EVAL(ac_compile); then
1444 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1445 EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
1448 CFLAGS="$cf_save_CFLAGS"
1450 elif test "$GCC" = yes
1452 AC_CHECKING([for $CC warning options])
1453 cf_save_CFLAGS="$CFLAGS"
1456 test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
1457 for cf_opt in W Wall \
1458 Wbad-function-cast \
1462 Wmissing-declarations \
1463 Wmissing-prototypes \
1467 Wstrict-prototypes \
1468 Wundef $cf_warn_CONST $1
1470 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
1471 if AC_TRY_EVAL(ac_compile); then
1472 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1473 case $cf_opt in #(vi
1475 CPPFLAGS="$CPPFLAGS -DXTSTRINGDEFINES"
1478 case $GCC_VERSION in
1480 CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
1484 Wpointer-arith) #(vi
1485 case $GCC_VERSION in
1487 CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
1492 EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
1495 CFLAGS="$cf_save_CFLAGS"
1499 AC_SUBST(EXTRA_CFLAGS)
1501 dnl ---------------------------------------------------------------------------
1502 dnl CF_GETOPT_HEADER version: 5 updated: 2012/10/06 16:39:58
1503 dnl ----------------
1504 dnl Check for getopt's variables which are commonly defined in stdlib.h,
1505 dnl unistd.h or (nonstandard) in getopt.h
1506 AC_DEFUN([CF_GETOPT_HEADER],
1508 AC_HAVE_HEADERS(unistd.h getopt.h)
1509 AC_CACHE_CHECK(for header declaring getopt variables,cf_cv_getopt_header,[
1510 cf_cv_getopt_header=none
1511 for cf_header in stdio.h stdlib.h unistd.h getopt.h
1514 #include <$cf_header>],
1515 [int x = optind; char *y = optarg],
1516 [cf_cv_getopt_header=$cf_header
1520 if test $cf_cv_getopt_header != none ; then
1521 AC_DEFINE(HAVE_GETOPT_HEADER,1,[Define to 1 if we need to include getopt.h])
1524 dnl ---------------------------------------------------------------------------
1525 dnl CF_GNU_SOURCE version: 6 updated: 2005/07/09 13:23:07
1527 dnl Check if we must define _GNU_SOURCE to get a reasonable value for
1528 dnl _XOPEN_SOURCE, upon which many POSIX definitions depend. This is a defect
1529 dnl (or misfeature) of glibc2, which breaks portability of many applications,
1530 dnl since it is interwoven with GNU extensions.
1532 dnl Well, yes we could work around it...
1533 AC_DEFUN([CF_GNU_SOURCE],
1535 AC_CACHE_CHECK(if we must define _GNU_SOURCE,cf_cv_gnu_source,[
1536 AC_TRY_COMPILE([#include <sys/types.h>],[
1537 #ifndef _XOPEN_SOURCE
1540 [cf_cv_gnu_source=no],
1541 [cf_save="$CPPFLAGS"
1542 CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
1543 AC_TRY_COMPILE([#include <sys/types.h>],[
1544 #ifdef _XOPEN_SOURCE
1547 [cf_cv_gnu_source=no],
1548 [cf_cv_gnu_source=yes])
1552 test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
1554 dnl ---------------------------------------------------------------------------
1555 dnl CF_HEADER_PATH version: 12 updated: 2010/05/05 05:22:40
1557 dnl Construct a search-list of directories for a nonstandard header-file
1560 dnl $1 = the variable to return as result
1561 dnl $2 = the package name
1562 AC_DEFUN([CF_HEADER_PATH],
1566 # collect the current set of include-directories from compiler flags
1567 cf_header_path_list=""
1568 if test -n "${CFLAGS}${CPPFLAGS}" ; then
1569 for cf_header_path in $CPPFLAGS $CFLAGS
1571 case $cf_header_path in #(vi
1573 cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'`
1574 CF_ADD_SUBDIR_PATH($1,$2,include,$cf_header_path,NONE)
1575 cf_header_path_list="$cf_header_path_list [$]$1"
1581 # add the variations for the package we are looking for
1582 CF_SUBDIR_PATH($1,$2,include)
1584 test "$includedir" != NONE && \
1585 test "$includedir" != "/usr/include" && \
1586 test -d "$includedir" && {
1587 test -d $includedir && $1="[$]$1 $includedir"
1588 test -d $includedir/$2 && $1="[$]$1 $includedir/$2"
1591 test "$oldincludedir" != NONE && \
1592 test "$oldincludedir" != "/usr/include" && \
1593 test -d "$oldincludedir" && {
1594 test -d $oldincludedir && $1="[$]$1 $oldincludedir"
1595 test -d $oldincludedir/$2 && $1="[$]$1 $oldincludedir/$2"
1598 $1="[$]$1 $cf_header_path_list"
1600 dnl ---------------------------------------------------------------------------
1601 dnl CF_HELP_MESSAGE version: 3 updated: 1998/01/14 10:56:23
1603 dnl Insert text into the help-message, for readability, from AC_ARG_WITH.
1604 AC_DEFUN([CF_HELP_MESSAGE],
1605 [AC_DIVERT_HELP([$1])dnl
1607 dnl ---------------------------------------------------------------------------
1608 dnl CF_INHERIT_SCRIPT version: 2 updated: 2003/03/01 23:50:42
1609 dnl -----------------
1610 dnl If we do not have a given script, look for it in the parent directory.
1611 AC_DEFUN([CF_INHERIT_SCRIPT],
1613 test -f $1 || ( test -f ../$1 && cp ../$1 ./ )
1615 dnl ---------------------------------------------------------------------------
1616 dnl CF_INTEL_COMPILER version: 4 updated: 2010/05/26 05:38:42
1617 dnl -----------------
1618 dnl Check if the given compiler is really the Intel compiler for Linux. It
1619 dnl tries to imitate gcc, but does not return an error when it finds a mismatch
1620 dnl between prototypes, e.g., as exercised by CF_MISSING_CHECK.
1622 dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
1623 dnl ensure that it is not mistaken for gcc/g++. It is normally invoked from
1624 dnl the wrappers for gcc and g++ warnings.
1626 dnl $1 = GCC (default) or GXX
1627 dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS
1628 dnl $3 = CFLAGS (default) or CXXFLAGS
1629 AC_DEFUN([CF_INTEL_COMPILER],[
1630 ifelse([$2],,INTEL_COMPILER,[$2])=no
1632 if test "$ifelse([$1],,[$1],GCC)" = yes ; then
1635 AC_MSG_CHECKING(if this is really Intel ifelse([$1],GXX,C++,C) compiler)
1636 cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
1637 ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -no-gcc"
1639 #ifdef __INTEL_COMPILER
1643 ],[ifelse([$2],,INTEL_COMPILER,[$2])=yes
1644 cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
1646 ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
1647 AC_MSG_RESULT($ifelse([$2],,INTEL_COMPILER,[$2]))
1652 dnl ---------------------------------------------------------------------------
1653 dnl CF_LD_RPATH_OPT version: 5 updated: 2011/07/17 14:48:41
1655 dnl For the given system and compiler, find the compiler flags to pass to the
1656 dnl loader to use the "rpath" feature.
1657 AC_DEFUN([CF_LD_RPATH_OPT],
1659 AC_REQUIRE([CF_CHECK_CACHE])
1662 AC_MSG_CHECKING(for an rpath option)
1663 case $cf_cv_system_name in #(vi
1665 if test "$GCC" = yes; then
1666 LD_RPATH_OPT="-Wl,-rpath,"
1668 LD_RPATH_OPT="-rpath "
1671 linux*|gnu*|k*bsd*-gnu) #(vi
1672 LD_RPATH_OPT="-Wl,-rpath,"
1674 openbsd[[2-9]].*|mirbsd*) #(vi
1675 LD_RPATH_OPT="-Wl,-rpath,"
1677 dragonfly*|freebsd*) #(vi
1678 LD_RPATH_OPT="-rpath "
1681 LD_RPATH_OPT="-Wl,-rpath,"
1684 LD_RPATH_OPT="-rpath "
1692 AC_MSG_RESULT($LD_RPATH_OPT)
1694 case "x$LD_RPATH_OPT" in #(vi
1696 AC_MSG_CHECKING(if we need a space after rpath option)
1697 cf_save_LIBS="$LIBS"
1698 CF_ADD_LIBS(${LD_RPATH_OPT}$libdir)
1699 AC_TRY_LINK(, , cf_rpath_space=no, cf_rpath_space=yes)
1700 LIBS="$cf_save_LIBS"
1701 AC_MSG_RESULT($cf_rpath_space)
1702 test "$cf_rpath_space" = yes && LD_RPATH_OPT="$LD_RPATH_OPT "
1706 dnl ---------------------------------------------------------------------------
1707 dnl CF_LIBRARY_PATH version: 9 updated: 2010/03/28 12:52:50
1709 dnl Construct a search-list of directories for a nonstandard library-file
1712 dnl $1 = the variable to return as result
1713 dnl $2 = the package name
1714 AC_DEFUN([CF_LIBRARY_PATH],
1717 cf_library_path_list=""
1718 if test -n "${LDFLAGS}${LIBS}" ; then
1719 for cf_library_path in $LDFLAGS $LIBS
1721 case $cf_library_path in #(vi
1723 cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'`
1724 CF_ADD_SUBDIR_PATH($1,$2,lib,$cf_library_path,NONE)
1725 cf_library_path_list="$cf_library_path_list [$]$1"
1731 CF_SUBDIR_PATH($1,$2,lib)
1733 $1="$cf_library_path_list [$]$1"
1735 dnl ---------------------------------------------------------------------------
1736 dnl CF_MAKE_TAGS version: 6 updated: 2010/10/23 15:52:32
1738 dnl Generate tags/TAGS targets for makefiles. Do not generate TAGS if we have
1739 dnl a monocase filesystem.
1740 AC_DEFUN([CF_MAKE_TAGS],[
1741 AC_REQUIRE([CF_MIXEDCASE_FILENAMES])
1743 AC_CHECK_PROGS(CTAGS, exctags ctags)
1744 AC_CHECK_PROGS(ETAGS, exetags etags)
1746 AC_CHECK_PROG(MAKE_LOWER_TAGS, ${CTAGS:-ctags}, yes, no)
1748 if test "$cf_cv_mixedcase" = yes ; then
1749 AC_CHECK_PROG(MAKE_UPPER_TAGS, ${ETAGS:-etags}, yes, no)
1754 if test "$MAKE_UPPER_TAGS" = yes ; then
1760 if test "$MAKE_LOWER_TAGS" = yes ; then
1769 AC_SUBST(MAKE_UPPER_TAGS)
1770 AC_SUBST(MAKE_LOWER_TAGS)
1772 dnl ---------------------------------------------------------------------------
1773 dnl CF_MATH_LIB version: 8 updated: 2010/05/29 16:31:02
1775 dnl Checks for libraries. At least one UNIX system, Apple Macintosh
1776 dnl Rhapsody 5.5, does not have -lm. We cannot use the simpler
1777 dnl AC_CHECK_LIB(m,sin), because that fails for C++.
1778 AC_DEFUN([CF_MATH_LIB],
1780 AC_CACHE_CHECK(if -lm needed for math functions,
1786 [double x = rand(); printf("result = %g\n", ]ifelse([$2],,sin(x),$2)[)],
1787 [cf_cv_need_libm=no],
1788 [cf_cv_need_libm=yes])])
1789 if test "$cf_cv_need_libm" = yes
1796 dnl ---------------------------------------------------------------------------
1797 dnl CF_MIXEDCASE_FILENAMES version: 4 updated: 2012/10/02 20:55:03
1798 dnl ----------------------
1799 dnl Check if the file-system supports mixed-case filenames. If we're able to
1800 dnl create a lowercase name and see it as uppercase, it doesn't support that.
1801 AC_DEFUN([CF_MIXEDCASE_FILENAMES],
1803 AC_CACHE_CHECK(if filesystem supports mixed-case filenames,cf_cv_mixedcase,[
1804 if test "$cross_compiling" = yes ; then
1805 case $target_alias in #(vi
1806 *-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-mingw32*|*-uwin*) #(vi
1814 rm -f conftest CONFTEST
1816 if test -f CONFTEST ; then
1821 rm -f conftest CONFTEST
1824 test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES,1,[Define to 1 if filesystem supports mixed-case filenames.])
1826 dnl ---------------------------------------------------------------------------
1827 dnl CF_MSG_LOG version: 5 updated: 2010/10/23 15:52:32
1829 dnl Write a debug message to config.log, along with the line number in the
1830 dnl configure script.
1831 AC_DEFUN([CF_MSG_LOG],[
1832 echo "${as_me:-configure}:__oline__: testing $* ..." 1>&AC_FD_CC
1834 dnl ---------------------------------------------------------------------------
1835 dnl CF_NCURSES_CC_CHECK version: 4 updated: 2007/07/29 10:39:05
1836 dnl -------------------
1837 dnl Check if we can compile with ncurses' header file
1838 dnl $1 is the cache variable to set
1839 dnl $2 is the header-file to include
1840 dnl $3 is the root name (ncurses or ncursesw)
1841 AC_DEFUN([CF_NCURSES_CC_CHECK],[
1843 ]ifelse($3,ncursesw,[
1844 #define _XOPEN_SOURCE_EXTENDED
1845 #undef HAVE_LIBUTF8_H /* in case we used CF_UTF8_LIB */
1846 #define HAVE_LIBUTF8_H /* to force ncurses' header file to use cchar_t */
1849 #ifdef NCURSES_VERSION
1850 ]ifelse($3,ncursesw,[
1855 printf("%s\n", NCURSES_VERSION);
1867 dnl ---------------------------------------------------------------------------
1868 dnl CF_NCURSES_CONFIG version: 10 updated: 2012/10/06 08:57:51
1869 dnl -----------------
1870 dnl Tie together the configure-script macros for ncurses.
1871 dnl Prefer the "-config" script from ncurses 6.x, to simplify analysis.
1872 dnl Allow that to be overridden using the $NCURSES_CONFIG environment variable.
1874 dnl $1 is the root library name (default: "ncurses")
1875 AC_DEFUN([CF_NCURSES_CONFIG],
1877 cf_ncuconfig_root=ifelse($1,,ncurses,$1)
1879 echo "Looking for ${cf_ncuconfig_root}-config"
1881 CF_ACVERSION_CHECK(2.52,
1882 [AC_CHECK_TOOLS(NCURSES_CONFIG, ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config, none)],
1883 [AC_PATH_PROGS(NCURSES_CONFIG, ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config, none)])
1885 if test "$NCURSES_CONFIG" != none ; then
1887 CPPFLAGS="$CPPFLAGS `$NCURSES_CONFIG --cflags`"
1888 CF_ADD_LIBS(`$NCURSES_CONFIG --libs`)
1890 # even with config script, some packages use no-override for curses.h
1891 CF_CURSES_HEADER(ifelse($1,,ncurses,$1))
1893 dnl like CF_NCURSES_CPPFLAGS
1894 AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
1896 dnl like CF_NCURSES_LIBS
1897 CF_UPPER(cf_nculib_ROOT,HAVE_LIB$cf_ncuconfig_root)
1898 AC_DEFINE_UNQUOTED($cf_nculib_ROOT)
1900 dnl like CF_NCURSES_VERSION
1901 cf_cv_ncurses_version=`$NCURSES_CONFIG --version`
1905 CF_NCURSES_CPPFLAGS(ifelse($1,,ncurses,$1))
1906 CF_NCURSES_LIBS(ifelse($1,,ncurses,$1))
1910 dnl ---------------------------------------------------------------------------
1911 dnl CF_NCURSES_CPPFLAGS version: 21 updated: 2012/10/06 08:57:51
1912 dnl -------------------
1913 dnl Look for the SVr4 curses clone 'ncurses' in the standard places, adjusting
1914 dnl the CPPFLAGS variable so we can include its header.
1916 dnl The header files may be installed as either curses.h, or ncurses.h (would
1917 dnl be obsolete, except that some packagers prefer this name to distinguish it
1918 dnl from a "native" curses implementation). If not installed for overwrite,
1919 dnl the curses.h file would be in an ncurses subdirectory (e.g.,
1920 dnl /usr/include/ncurses), but someone may have installed overwriting the
1921 dnl vendor's curses. Only very old versions (pre-1.9.2d, the first autoconf'd
1922 dnl version) of ncurses don't define either __NCURSES_H or NCURSES_VERSION in
1925 dnl If the installer has set $CFLAGS or $CPPFLAGS so that the ncurses header
1926 dnl is already in the include-path, don't even bother with this, since we cannot
1927 dnl easily determine which file it is. In this case, it has to be <curses.h>.
1929 dnl The optional parameter gives the root name of the library, in case it is
1930 dnl not installed as the default curses library. That is how the
1931 dnl wide-character version of ncurses is installed.
1932 AC_DEFUN([CF_NCURSES_CPPFLAGS],
1933 [AC_REQUIRE([CF_WITH_CURSES_DIR])
1935 AC_PROVIDE([CF_CURSES_CPPFLAGS])dnl
1936 cf_ncuhdr_root=ifelse($1,,ncurses,$1)
1938 test -n "$cf_cv_curses_dir" && \
1939 test "$cf_cv_curses_dir" != "no" && { \
1940 CF_ADD_INCDIR($cf_cv_curses_dir/include/$cf_ncuhdr_root)
1943 AC_CACHE_CHECK(for $cf_ncuhdr_root header in include-path, cf_cv_ncurses_h,[
1944 cf_header_list="$cf_ncuhdr_root/curses.h $cf_ncuhdr_root/ncurses.h"
1945 ( test "$cf_ncuhdr_root" = ncurses || test "$cf_ncuhdr_root" = ncursesw ) && cf_header_list="$cf_header_list curses.h ncurses.h"
1946 for cf_header in $cf_header_list
1948 CF_NCURSES_CC_CHECK(cf_cv_ncurses_h,$cf_header,$1)
1949 test "$cf_cv_ncurses_h" != no && break
1956 # some applications need this, but should check for NCURSES_VERSION
1957 AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
1961 dnl ---------------------------------------------------------------------------
1962 dnl CF_NCURSES_EXT_FUNCS version: 4 updated: 2012/10/06 16:39:58
1963 dnl --------------------
1964 dnl Since 2007/11/17, ncurses has defined NCURSES_EXT_FUNCS; earlier versions
1965 dnl may provide these functions. Define the symbol if it is not defined, and
1967 AC_DEFUN([CF_NCURSES_EXT_FUNCS],
1969 AC_CACHE_CHECK(for ncurses extended functions,cf_cv_ncurses_ext_funcs,[
1971 #include <${cf_cv_ncurses_header:-curses.h}>],
1973 int x = NCURSES_EXT_FUNCS
1974 ],[cf_cv_ncurses_ext_funcs=defined],[
1976 #include <${cf_cv_ncurses_header:-curses.h}>],
1978 (void) assume_default_colors (0, 0);
1979 (void) curses_version ();
1980 (void) define_key (0, 0);
1981 (void) is_term_resized (0, 0);
1982 (void) key_defined (0);
1983 (void) keybound (0, 0);
1984 (void) keyok (0, 0);
1985 (void) resize_term (0, 0);
1986 (void) resizeterm (0, 0);
1987 (void) use_default_colors ();
1988 (void) use_extended_names (0);
1989 (void) wresize (0, 0, 0);],
1990 [cf_cv_ncurses_ext_funcs=yes],
1991 [cf_cv_ncurses_ext_funcs=no])
1994 test "$cf_cv_ncurses_ext_funcs" = yes && AC_DEFINE(NCURSES_EXT_FUNCS,1,[Define to 1 if we have ncurses extensions])
1996 dnl ---------------------------------------------------------------------------
1997 dnl CF_NCURSES_HEADER version: 3 updated: 2012/10/06 08:57:51
1998 dnl -----------------
1999 dnl Find a "curses" header file, e.g,. "curses.h", or one of the more common
2000 dnl variations of ncurses' installs.
2002 dnl See also CF_CURSES_HEADER, which sets the same cache variable.
2003 AC_DEFUN([CF_NCURSES_HEADER],[
2005 if test "$cf_cv_ncurses_h" != no ; then
2006 cf_cv_ncurses_header=$cf_cv_ncurses_h
2009 AC_CACHE_CHECK(for $cf_ncuhdr_root include-path, cf_cv_ncurses_h2,[
2010 test -n "$verbose" && echo
2011 CF_HEADER_PATH(cf_search,$cf_ncuhdr_root)
2012 test -n "$verbose" && echo search path $cf_search
2013 cf_save2_CPPFLAGS="$CPPFLAGS"
2014 for cf_incdir in $cf_search
2016 CF_ADD_INCDIR($cf_incdir)
2021 CF_NCURSES_CC_CHECK(cf_cv_ncurses_h2,$cf_header,$1)
2022 if test "$cf_cv_ncurses_h2" != no ; then
2023 cf_cv_ncurses_h2=$cf_incdir/$cf_header
2024 test -n "$verbose" && echo $ac_n " ... found $ac_c" 1>&AC_FD_MSG
2027 test -n "$verbose" && echo " ... tested $cf_incdir/$cf_header" 1>&AC_FD_MSG
2029 CPPFLAGS="$cf_save2_CPPFLAGS"
2030 test "$cf_cv_ncurses_h2" != no && break
2032 test "$cf_cv_ncurses_h2" = no && AC_MSG_ERROR(not found)
2035 CF_DIRNAME(cf_1st_incdir,$cf_cv_ncurses_h2)
2036 cf_cv_ncurses_header=`basename $cf_cv_ncurses_h2`
2037 if test `basename $cf_1st_incdir` = $cf_ncuhdr_root ; then
2038 cf_cv_ncurses_header=$cf_ncuhdr_root/$cf_cv_ncurses_header
2040 CF_ADD_INCDIR($cf_1st_incdir)
2044 # Set definitions to allow ifdef'ing for ncurses.h
2046 case $cf_cv_ncurses_header in # (vi
2048 AC_DEFINE(HAVE_NCURSES_H,1,[Define to 1 if we have ncurses.h])
2052 case $cf_cv_ncurses_header in # (vi
2053 ncurses/curses.h|ncurses/ncurses.h)
2054 AC_DEFINE(HAVE_NCURSES_NCURSES_H,1,[Define to 1 if we have ncurses/ncurses.h])
2056 ncursesw/curses.h|ncursesw/ncurses.h)
2057 AC_DEFINE(HAVE_NCURSESW_NCURSES_H,1,[Define to 1 if we have ncursesw/ncurses.h])
2062 dnl ---------------------------------------------------------------------------
2063 dnl CF_NCURSES_LIBS version: 16 updated: 2010/11/20 17:02:38
2065 dnl Look for the ncurses library. This is a little complicated on Linux,
2066 dnl because it may be linked with the gpm (general purpose mouse) library.
2067 dnl Some distributions have gpm linked with (bsd) curses, which makes it
2068 dnl unusable with ncurses. However, we don't want to link with gpm unless
2069 dnl ncurses has a dependency, since gpm is normally set up as a shared library,
2070 dnl and the linker will record a dependency.
2072 dnl The optional parameter gives the root name of the library, in case it is
2073 dnl not installed as the default curses library. That is how the
2074 dnl wide-character version of ncurses is installed.
2075 AC_DEFUN([CF_NCURSES_LIBS],
2076 [AC_REQUIRE([CF_NCURSES_CPPFLAGS])
2078 cf_nculib_root=ifelse($1,,ncurses,$1)
2079 # This works, except for the special case where we find gpm, but
2080 # ncurses is in a nonstandard location via $LIBS, and we really want
2083 cf_ncurses_SAVE="$LIBS"
2084 AC_CHECK_LIB(gpm,Gpm_Open,
2085 [AC_CHECK_LIB(gpm,initscr,
2086 [LIBS="$cf_ncurses_SAVE"],
2087 [cf_ncurses_LIBS="-lgpm"])])
2089 case $host_os in #(vi
2091 # This is only necessary if you are linking against an obsolete
2092 # version of ncurses (but it should do no harm, since it's static).
2093 if test "$cf_nculib_root" = ncurses ; then
2094 AC_CHECK_LIB(mytinfo,tgoto,[cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"])
2099 CF_ADD_LIBS($cf_ncurses_LIBS)
2101 if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
2103 CF_ADD_LIBS(-l$cf_nculib_root)
2105 CF_FIND_LIBRARY($cf_nculib_root,$cf_nculib_root,
2106 [#include <${cf_cv_ncurses_header:-curses.h}>],
2111 if test -n "$cf_ncurses_LIBS" ; then
2112 AC_MSG_CHECKING(if we can link $cf_nculib_root without $cf_ncurses_LIBS)
2113 cf_ncurses_SAVE="$LIBS"
2114 for p in $cf_ncurses_LIBS ; do
2115 q=`echo $LIBS | sed -e "s%$p %%" -e "s%$p$%%"`
2116 if test "$q" != "$LIBS" ; then
2120 AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
2121 [initscr(); mousemask(0,0); tgoto((char *)0, 0, 0);],
2122 [AC_MSG_RESULT(yes)],
2124 LIBS="$cf_ncurses_SAVE"])
2127 CF_UPPER(cf_nculib_ROOT,HAVE_LIB$cf_nculib_root)
2128 AC_DEFINE_UNQUOTED($cf_nculib_ROOT)
2130 dnl ---------------------------------------------------------------------------
2131 dnl CF_NCURSES_VERSION version: 14 updated: 2012/10/06 08:57:51
2132 dnl ------------------
2133 dnl Check for the version of ncurses, to aid in reporting bugs, etc.
2134 dnl Call CF_CURSES_CPPFLAGS first, or CF_NCURSES_CPPFLAGS. We don't use
2135 dnl AC_REQUIRE since that does not work with the shell's if/then/else/fi.
2136 AC_DEFUN([CF_NCURSES_VERSION],
2138 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
2139 AC_CACHE_CHECK(for ncurses version, cf_cv_ncurses_version,[
2140 cf_cv_ncurses_version=no
2144 #include <${cf_cv_ncurses_header:-curses.h}>
2148 FILE *fp = fopen("$cf_tempfile", "w");
2149 #ifdef NCURSES_VERSION
2150 # ifdef NCURSES_VERSION_PATCH
2151 fprintf(fp, "%s.%d\n", NCURSES_VERSION, NCURSES_VERSION_PATCH);
2153 fprintf(fp, "%s\n", NCURSES_VERSION);
2157 fprintf(fp, "old\n");
2162 ${cf_cv_main_return:-return}(0);
2164 cf_cv_ncurses_version=`cat $cf_tempfile`],,[
2166 # This will not work if the preprocessor splits the line after the
2167 # Autoconf token. The 'unproto' program does that.
2168 cat > conftest.$ac_ext <<EOF
2169 #include <${cf_cv_ncurses_header:-curses.h}>
2171 #ifdef NCURSES_VERSION
2172 Autoconf NCURSES_VERSION
2180 cf_try="$ac_cpp conftest.$ac_ext 2>&AC_FD_CC | grep '^Autoconf ' >conftest.out"
2182 if test -f conftest.out ; then
2183 cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[[^"]]*"%%' -e 's%".*%%'`
2184 test -n "$cf_out" && cf_cv_ncurses_version="$cf_out"
2190 test "$cf_cv_ncurses_version" = no || AC_DEFINE(NCURSES,1,[Define to 1 if we are using ncurses headers/libraries])
2192 dnl ---------------------------------------------------------------------------
2193 dnl CF_NCURSES_WRAP_PREFIX version: 1 updated: 2009/03/28 16:08:10
2194 dnl ----------------------
2195 dnl Check for ncurses "wrap-prefix" used for public variables which have been
2196 dnl wrapped with a function to help with concurrency control.
2197 AC_DEFUN([CF_NCURSES_WRAP_PREFIX],
2199 AC_MSG_CHECKING(for ncurses wrap-prefix)
2200 AC_ARG_WITH(ncurses-wrap-prefix,
2201 [ --with-ncurses-wrap-prefix naming-prefix for ncurses wrapped-variables],
2202 [NCURSES_WRAP_PREFIX=$withval],
2203 [NCURSES_WRAP_PREFIX=_nc_])
2204 AC_MSG_RESULT($NCURSES_WRAP_PREFIX)
2206 AC_SUBST(NCURSES_WRAP_PREFIX)
2208 dnl ---------------------------------------------------------------------------
2209 dnl CF_NETBSD_FORM_H version: 2 updated: 2012/10/06 16:39:58
2210 dnl ----------------
2211 dnl Check for NetBSD's form.h, which is incompatible with SVr4 and ncurses.
2212 dnl Some workarounds are needed in client programs to allow them to compile.
2213 AC_DEFUN([CF_NETBSD_FORM_H],[
2214 AC_CACHE_CHECK(for NetBSD form.h,cf_cv_netbsd_form_h,[
2216 #include <${cf_cv_ncurses_header:-curses.h}>
2220 int y = current_field(form)->cursor_ypos;
2221 int x = current_field(form)->cursor_xpos;
2222 ],[cf_cv_netbsd_form_h=yes
2223 ],[cf_cv_netbsd_form_h=no])
2226 test "$cf_cv_netbsd_form_h" = yes && AC_DEFINE(HAVE_NETBSD_FORM_H,1,[Define to 1 if we appear to be using NetBSD form.h])
2228 dnl ---------------------------------------------------------------------------
2229 dnl CF_NETBSD_MENU_H version: 2 updated: 2012/10/06 16:39:58
2230 dnl ----------------
2231 dnl Check for NetBSD's menu.h, which is incompatible with SVr4 and ncurses.
2232 dnl Some workarounds are needed in client programs to allow them to compile.
2233 AC_DEFUN([CF_NETBSD_MENU_H],[
2234 AC_CACHE_CHECK(for NetBSD menu.h,cf_cv_netbsd_menu_h,[
2236 #include <${cf_cv_ncurses_header:-curses.h}>
2240 int y = menu->max_item_width;
2241 ],[cf_cv_netbsd_menu_h=yes
2242 ],[cf_cv_netbsd_menu_h=no])
2245 test "$cf_cv_netbsd_menu_h" = yes && AC_DEFINE(HAVE_NETBSD_MENU_H,1,[Define to 1 if we appear to be using NetBSD menu.h])
2247 dnl ---------------------------------------------------------------------------
2248 dnl CF_NO_LEAKS_OPTION version: 5 updated: 2012/10/02 20:55:03
2249 dnl ------------------
2250 dnl see CF_WITH_NO_LEAKS
2251 AC_DEFUN([CF_NO_LEAKS_OPTION],[
2252 AC_MSG_CHECKING(if you want to use $1 for testing)
2255 [AC_DEFINE_UNQUOTED($3,1,"Define to 1 if you want to use $1 for testing.")ifelse([$4],,[
2258 : ${with_cflags:=-g}
2259 : ${with_no_leaks:=yes}
2262 AC_MSG_RESULT(${with_$1:-no})
2264 case .$with_cflags in #(vi
2266 case .$CFLAGS in #(vi
2276 dnl ---------------------------------------------------------------------------
2277 dnl CF_PATH_SYNTAX version: 14 updated: 2012/06/19 20:58:54
2279 dnl Check the argument to see that it looks like a pathname. Rewrite it if it
2280 dnl begins with one of the prefix/exec_prefix variables, and then again if the
2281 dnl result begins with 'NONE'. This is necessary to work around autoconf's
2282 dnl delayed evaluation of those symbols.
2283 AC_DEFUN([CF_PATH_SYNTAX],[
2284 if test "x$prefix" != xNONE; then
2285 cf_path_syntax="$prefix"
2287 cf_path_syntax="$ac_default_prefix"
2290 case ".[$]$1" in #(vi
2291 .\[$]\(*\)*|.\'*\'*) #(vi
2295 .[[a-zA-Z]]:[[\\/]]*) #(vi OS/2 EMX
2297 .\[$]{*prefix}*|.\[$]{*dir}*) #(vi
2299 case ".[$]$1" in #(vi
2301 $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
2306 $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
2309 ifelse([$2],,[AC_MSG_ERROR([expected a pathname, not \"[$]$1\"])],$2)
2313 dnl ---------------------------------------------------------------------------
2314 dnl CF_PDCURSES_X11 version: 13 updated: 2012/10/06 16:39:58
2316 dnl Configure for PDCurses' X11 library
2317 AC_DEFUN([CF_PDCURSES_X11],[
2318 AC_REQUIRE([CF_X_ATHENA])
2320 CF_ACVERSION_CHECK(2.52,
2321 [AC_CHECK_TOOLS(XCURSES_CONFIG, xcurses-config, none)],
2322 [AC_PATH_PROGS(XCURSES_CONFIG, xcurses-config, none)])
2324 if test "$XCURSES_CONFIG" != none ; then
2326 CPPFLAGS="$CPPFLAGS `$XCURSES_CONFIG --cflags`"
2327 CF_ADD_LIBS(`$XCURSES_CONFIG --libs`)
2329 cf_cv_lib_XCurses=yes
2333 LDFLAGS="$LDFLAGS $X_LIBS"
2334 CF_CHECK_CFLAGS($X_CFLAGS)
2335 AC_CHECK_LIB(X11,XOpenDisplay,
2336 [CF_ADD_LIBS(-lX11)],,
2337 [$X_PRE_LIBS $LIBS $X_EXTRA_LIBS])
2338 AC_CACHE_CHECK(for XCurses library,cf_cv_lib_XCurses,[
2339 CF_ADD_LIBS(-lXCurses)
2341 #include <xcurses.h>
2342 char *XCursesProgramName = "test";
2344 [cf_cv_lib_XCurses=yes],
2345 [cf_cv_lib_XCurses=no])
2350 if test $cf_cv_lib_XCurses = yes ; then
2351 AC_DEFINE(UNIX,1,[Define to 1 if using PDCurses on Unix])
2352 AC_DEFINE(XCURSES,1,[Define to 1 if using PDCurses on Unix])
2353 AC_CHECK_HEADER(xcurses.h, AC_DEFINE(HAVE_XCURSES,1,[Define to 1 if using PDCurses on Unix]))
2355 AC_MSG_ERROR(Cannot link with XCurses)
2358 dnl ---------------------------------------------------------------------------
2359 dnl CF_PKG_CONFIG version: 7 updated: 2011/04/29 04:53:22
2361 dnl Check for the package-config program, unless disabled by command-line.
2362 AC_DEFUN([CF_PKG_CONFIG],
2364 AC_MSG_CHECKING(if you want to use pkg-config)
2365 AC_ARG_WITH(pkg-config,
2366 [ --with-pkg-config{=path} enable/disable use of pkg-config],
2367 [cf_pkg_config=$withval],
2368 [cf_pkg_config=yes])
2369 AC_MSG_RESULT($cf_pkg_config)
2371 case $cf_pkg_config in #(vi
2376 CF_ACVERSION_CHECK(2.52,
2377 [AC_PATH_TOOL(PKG_CONFIG, pkg-config, none)],
2378 [AC_PATH_PROG(PKG_CONFIG, pkg-config, none)])
2385 test -z "$PKG_CONFIG" && PKG_CONFIG=none
2386 if test "$PKG_CONFIG" != none ; then
2387 CF_PATH_SYNTAX(PKG_CONFIG)
2390 AC_SUBST(PKG_CONFIG)
2392 dnl ---------------------------------------------------------------------------
2393 dnl CF_POSIX_C_SOURCE version: 8 updated: 2010/05/26 05:38:42
2394 dnl -----------------
2395 dnl Define _POSIX_C_SOURCE to the given level, and _POSIX_SOURCE if needed.
2397 dnl POSIX.1-1990 _POSIX_SOURCE
2398 dnl POSIX.1-1990 and _POSIX_SOURCE and
2399 dnl POSIX.2-1992 C-Language _POSIX_C_SOURCE=2
2401 dnl POSIX.1b-1993 _POSIX_C_SOURCE=199309L
2402 dnl POSIX.1c-1996 _POSIX_C_SOURCE=199506L
2403 dnl X/Open 2000 _POSIX_C_SOURCE=200112L
2406 dnl $1 is the nominal value for _POSIX_C_SOURCE
2407 AC_DEFUN([CF_POSIX_C_SOURCE],
2409 cf_POSIX_C_SOURCE=ifelse([$1],,199506L,[$1])
2411 cf_save_CFLAGS="$CFLAGS"
2412 cf_save_CPPFLAGS="$CPPFLAGS"
2414 CF_REMOVE_DEFINE(cf_trim_CFLAGS,$cf_save_CFLAGS,_POSIX_C_SOURCE)
2415 CF_REMOVE_DEFINE(cf_trim_CPPFLAGS,$cf_save_CPPFLAGS,_POSIX_C_SOURCE)
2417 AC_CACHE_CHECK(if we should define _POSIX_C_SOURCE,cf_cv_posix_c_source,[
2418 CF_MSG_LOG(if the symbol is already defined go no further)
2419 AC_TRY_COMPILE([#include <sys/types.h>],[
2420 #ifndef _POSIX_C_SOURCE
2423 [cf_cv_posix_c_source=no],
2424 [cf_want_posix_source=no
2425 case .$cf_POSIX_C_SOURCE in #(vi
2427 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
2430 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
2431 cf_want_posix_source=yes
2434 cf_want_posix_source=yes
2437 if test "$cf_want_posix_source" = yes ; then
2438 AC_TRY_COMPILE([#include <sys/types.h>],[
2439 #ifdef _POSIX_SOURCE
2442 cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE")
2444 CF_MSG_LOG(ifdef from value $cf_POSIX_C_SOURCE)
2445 CFLAGS="$cf_trim_CFLAGS"
2446 CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source"
2447 CF_MSG_LOG(if the second compile does not leave our definition intact error)
2448 AC_TRY_COMPILE([#include <sys/types.h>],[
2449 #ifndef _POSIX_C_SOURCE
2452 [cf_cv_posix_c_source=no])
2453 CFLAGS="$cf_save_CFLAGS"
2454 CPPFLAGS="$cf_save_CPPFLAGS"
2458 if test "$cf_cv_posix_c_source" != no ; then
2459 CFLAGS="$cf_trim_CFLAGS"
2460 CPPFLAGS="$cf_trim_CPPFLAGS"
2461 CF_ADD_CFLAGS($cf_cv_posix_c_source)
2465 dnl ---------------------------------------------------------------------------
2466 dnl CF_PRG_RULES version: 1 updated: 2006/06/03 11:45:08
2468 dnl Append definitions and rules for the given programs to the subdirectory
2469 dnl Makefiles, and the recursion rule for the top-level Makefile.
2472 dnl $1 = script to run
2473 dnl $2 = list of subdirectories
2477 AC_DEFUN([CF_PRG_RULES],
2481 if test ! -d $srcdir/$cf_dir; then
2483 elif test -f $srcdir/$cf_dir/programs; then
2484 $AWK -f $1 $srcdir/$cf_dir/programs >>$cf_dir/Makefile
2489 dnl ---------------------------------------------------------------------------
2490 dnl CF_PROG_CC version: 3 updated: 2012/10/06 15:31:55
2492 dnl standard check for CC, plus followup sanity checks
2493 dnl $1 = optional parameter to pass to AC_PROG_CC to specify compiler name
2494 AC_DEFUN([CF_PROG_CC],[
2495 ifelse($1,,[AC_PROG_CC],[AC_PROG_CC($1)])
2497 CF_ACVERSION_CHECK(2.52,
2502 dnl ---------------------------------------------------------------------------
2503 dnl CF_PROG_INSTALL version: 5 updated: 2002/12/21 22:46:07
2505 dnl Force $INSTALL to be an absolute-path. Otherwise, edit_man.sh and the
2506 dnl misc/tabset install won't work properly. Usually this happens only when
2507 dnl using the fallback mkinstalldirs script
2508 AC_DEFUN([CF_PROG_INSTALL],
2514 CF_DIRNAME(cf_dir,$INSTALL)
2515 test -z "$cf_dir" && cf_dir=.
2516 INSTALL=`cd $cf_dir && pwd`/`echo $INSTALL | sed -e 's%^.*/%%'`
2520 dnl ---------------------------------------------------------------------------
2521 dnl CF_PROG_LINT version: 2 updated: 2009/08/12 04:43:14
2523 AC_DEFUN([CF_PROG_LINT],
2525 AC_CHECK_PROGS(LINT, tdlint lint alint splint lclint)
2528 dnl ---------------------------------------------------------------------------
2529 dnl CF_REMOVE_DEFINE version: 3 updated: 2010/01/09 11:05:50
2530 dnl ----------------
2531 dnl Remove all -U and -D options that refer to the given symbol from a list
2532 dnl of C compiler options. This works around the problem that not all
2533 dnl compilers process -U and -D options from left-to-right, so a -U option
2534 dnl cannot be used to cancel the effect of a preceding -D option.
2536 dnl $1 = target (which could be the same as the source variable)
2537 dnl $2 = source (including '$')
2538 dnl $3 = symbol to remove
2539 define([CF_REMOVE_DEFINE],
2542 sed -e 's/-[[UD]]'"$3"'\(=[[^ ]]*\)\?[[ ]]/ /g' \
2543 -e 's/-[[UD]]'"$3"'\(=[[^ ]]*\)\?[$]//g'`
2545 dnl ---------------------------------------------------------------------------
2546 dnl CF_RPATH_HACK version: 9 updated: 2011/02/13 13:31:33
2548 AC_DEFUN([CF_RPATH_HACK],
2550 AC_REQUIRE([CF_LD_RPATH_OPT])
2551 AC_MSG_CHECKING(for updated LDFLAGS)
2552 if test -n "$LD_RPATH_OPT" ; then
2553 AC_MSG_RESULT(maybe)
2555 AC_CHECK_PROGS(cf_ldd_prog,ldd,no)
2556 cf_rpath_list="/usr/lib /lib"
2557 if test "$cf_ldd_prog" != no
2561 AC_TRY_LINK([#include <stdio.h>],
2563 [cf_rpath_oops=`$cf_ldd_prog conftest$ac_exeext | fgrep ' not found' | sed -e 's% =>.*$%%' |sort -u`
2564 cf_rpath_list=`$cf_ldd_prog conftest$ac_exeext | fgrep / | sed -e 's%^.*[[ ]]/%/%' -e 's%/[[^/]][[^/]]*$%%' |sort -u`])
2566 # If we passed the link-test, but get a "not found" on a given library,
2567 # this could be due to inept reconfiguration of gcc to make it only
2568 # partly honor /usr/local/lib (or whatever). Sometimes this behavior
2569 # is intentional, e.g., installing gcc in /usr/bin and suppressing the
2570 # /usr/local libraries.
2571 if test -n "$cf_rpath_oops"
2573 for cf_rpath_src in $cf_rpath_oops
2575 for cf_rpath_dir in \
2580 if test -f $cf_rpath_dir/lib/$cf_rpath_src
2582 CF_VERBOSE(...adding -L$cf_rpath_dir/lib to LDFLAGS for $cf_rpath_src)
2583 LDFLAGS="$LDFLAGS -L$cf_rpath_dir/lib"
2591 CF_VERBOSE(...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS)
2593 CF_RPATH_HACK_2(LDFLAGS)
2594 CF_RPATH_HACK_2(LIBS)
2596 CF_VERBOSE(...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS)
2598 AC_SUBST(EXTRA_LDFLAGS)
2600 dnl ---------------------------------------------------------------------------
2601 dnl CF_RPATH_HACK_2 version: 6 updated: 2010/04/17 16:31:24
2603 dnl Do one set of substitutions for CF_RPATH_HACK, adding an rpath option to
2604 dnl EXTRA_LDFLAGS for each -L option found.
2606 dnl $cf_rpath_list contains a list of directories to ignore.
2608 dnl $1 = variable name to update. The LDFLAGS variable should be the only one,
2609 dnl but LIBS often has misplaced -L options.
2610 AC_DEFUN([CF_RPATH_HACK_2],
2612 CF_VERBOSE(...checking $1 [$]$1)
2615 for cf_rpath_src in [$]$1
2617 case $cf_rpath_src in #(vi
2620 # check if this refers to a directory which we will ignore
2622 if test -n "$cf_rpath_list"
2624 for cf_rpath_item in $cf_rpath_list
2626 if test "x$cf_rpath_src" = "x-L$cf_rpath_item"
2634 if test "$cf_rpath_skip" = no
2636 # transform the option
2637 if test "$LD_RPATH_OPT" = "-R " ; then
2638 cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%-R %"`
2640 cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e "s%-L%$LD_RPATH_OPT%"`
2643 # if we have not already added this, add it now
2644 cf_rpath_tst=`echo "$EXTRA_LDFLAGS" | sed -e "s%$cf_rpath_tmp %%"`
2645 if test "x$cf_rpath_tst" = "x$EXTRA_LDFLAGS"
2647 CF_VERBOSE(...Filter $cf_rpath_src ->$cf_rpath_tmp)
2648 EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS"
2653 cf_rpath_dst="$cf_rpath_dst $cf_rpath_src"
2657 CF_VERBOSE(...checked $1 [$]$1)
2658 AC_SUBST(EXTRA_LDFLAGS)
2660 dnl ---------------------------------------------------------------------------
2661 dnl CF_SIG_ATOMIC_T version: 3 updated: 2012/10/04 20:12:20
2663 dnl signal handler, but there are some gcc depedencies in that recommendation.
2665 AC_DEFUN([CF_SIG_ATOMIC_T],
2667 AC_MSG_CHECKING(for signal global datatype)
2668 AC_CACHE_VAL(cf_cv_sig_atomic_t,[
2670 "volatile sig_atomic_t" \
2675 #include <sys/types.h>
2681 static void handler(int sig)
2685 [signal(SIGINT, handler);
2687 [cf_cv_sig_atomic_t=$cf_type],
2688 [cf_cv_sig_atomic_t=no])
2689 test "$cf_cv_sig_atomic_t" != no && break
2692 AC_MSG_RESULT($cf_cv_sig_atomic_t)
2693 test "$cf_cv_sig_atomic_t" != no && AC_DEFINE_UNQUOTED(SIG_ATOMIC_T, $cf_cv_sig_atomic_t,[Define to signal global datatype])
2695 dnl ---------------------------------------------------------------------------
2696 dnl CF_SUBDIR_PATH version: 6 updated: 2010/04/21 06:20:50
2698 dnl Construct a search-list for a nonstandard header/lib-file
2699 dnl $1 = the variable to return as result
2700 dnl $2 = the package name
2701 dnl $3 = the subdirectory, e.g., bin, include or lib
2702 AC_DEFUN([CF_SUBDIR_PATH],
2706 CF_ADD_SUBDIR_PATH($1,$2,$3,/usr,$prefix)
2707 CF_ADD_SUBDIR_PATH($1,$2,$3,$prefix,NONE)
2708 CF_ADD_SUBDIR_PATH($1,$2,$3,/usr/local,$prefix)
2709 CF_ADD_SUBDIR_PATH($1,$2,$3,/opt,$prefix)
2710 CF_ADD_SUBDIR_PATH($1,$2,$3,[$]HOME,$prefix)
2712 dnl ---------------------------------------------------------------------------
2713 dnl CF_SYS_TIME_SELECT version: 5 updated: 2012/10/04 05:24:07
2714 dnl ------------------
2715 dnl Check if we can include <sys/time.h> with <sys/select.h>; this breaks on
2716 dnl older SCO configurations.
2717 AC_DEFUN([CF_SYS_TIME_SELECT],
2719 AC_MSG_CHECKING(if sys/time.h works with sys/select.h)
2720 AC_CACHE_VAL(cf_cv_sys_time_select,[
2722 #include <sys/types.h>
2723 #ifdef HAVE_SYS_TIME_H
2724 #include <sys/time.h>
2726 #ifdef HAVE_SYS_SELECT_H
2727 #include <sys/select.h>
2729 ],[],[cf_cv_sys_time_select=yes],
2730 [cf_cv_sys_time_select=no])
2732 AC_MSG_RESULT($cf_cv_sys_time_select)
2733 test "$cf_cv_sys_time_select" = yes && AC_DEFINE(HAVE_SYS_TIME_SELECT,1,[Define to 1 if we can include <sys/time.h> with <sys/select.h>])
2735 dnl ---------------------------------------------------------------------------
2736 dnl CF_TERM_HEADER version: 3 updated: 2012/10/06 08:57:51
2738 dnl Look for term.h, which is part of X/Open curses. It defines the interface
2739 dnl to terminfo database. Usually it is in the same include-path as curses.h,
2740 dnl but some packagers change this, breaking various applications.
2741 AC_DEFUN([CF_TERM_HEADER],[
2742 AC_CACHE_CHECK(for terminfo header, cf_cv_term_header,[
2743 case ${cf_cv_ncurses_header} in #(vi
2744 */ncurses.h|*/ncursesw.h) #(vi
2745 cf_term_header=`echo "$cf_cv_ncurses_header" | sed -e 's%ncurses[[^.]]*\.h$%term.h%'`
2748 cf_term_header=term.h
2752 for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
2754 AC_TRY_COMPILE([#include <stdio.h>
2755 #include <${cf_cv_ncurses_header:-curses.h}>
2757 ],[int x = auto_left_margin],[
2758 cf_cv_term_header="$cf_test"],[
2759 cf_cv_term_header=unknown
2761 test "$cf_cv_term_header" != unknown && break
2765 # Set definitions to allow ifdef'ing to accommodate subdirectories
2767 case $cf_cv_term_header in # (vi
2769 AC_DEFINE(HAVE_TERM_H,1,[Define to 1 if we have term.h])
2773 case $cf_cv_term_header in # (vi
2774 ncurses/term.h) #(vi
2775 AC_DEFINE(HAVE_NCURSES_TERM_H,1,[Define to 1 if we have ncurses/term.h])
2778 AC_DEFINE(HAVE_NCURSESW_TERM_H,1,[Define to 1 if we have ncursesw/term.h])
2782 dnl ---------------------------------------------------------------------------
2783 dnl CF_TOP_BUILDDIR version: 1 updated: 2006/10/15 16:33:23
2785 dnl Define a top_builddir symbol, for applications that need an absolute path.
2786 AC_DEFUN([CF_TOP_BUILDDIR],
2789 AC_SUBST(top_builddir)
2791 dnl ---------------------------------------------------------------------------
2792 dnl CF_TPUTS_PROTO version: 2 updated: 2011/04/23 19:25:50
2794 dnl Check for type of function-pointer passed to tputs. Some old
2795 dnl implementations used functions that had different prototypes, making it
2796 dnl hard to compile portable programs using tputs.
2797 AC_DEFUN([CF_TPUTS_PROTO],[
2798 CF_CURSES_FUNCS(tputs)
2799 if test x$cf_cv_func_tputs = xyes
2802 for cf_arg in int char
2804 for cf_ret in int void
2806 if test $cf_ret = void
2808 cf_return="/* nothing */"
2810 cf_return="return value"
2813 #include <${cf_cv_ncurses_header:-curses.h}>
2814 #include <$cf_cv_term_header>
2816 static $cf_ret outc($cf_arg value) { $cf_return; }
2818 tputs("hello", 0, outc);
2819 ${cf_cv_main_return:-return}(0);
2821 CF_VERBOSE([prototype $cf_ret func($cf_arg value)])
2822 cat >>confdefs.h <<EOF
2823 #define TPUTS_ARG $cf_arg
2824 #define TPUTS_PROTO(func,value) $cf_ret func(TPUTS_ARG value)
2825 #define TPUTS_RETURN(value) $cf_return
2831 test $cf_done = yes && break
2835 dnl ---------------------------------------------------------------------------
2836 dnl CF_TRY_PKG_CONFIG version: 4 updated: 2010/06/14 17:42:30
2837 dnl -----------------
2838 dnl This is a simple wrapper to use for pkg-config, for libraries which may be
2839 dnl available in that form.
2841 dnl $1 = package name
2842 dnl $2 = extra logic to use, if any, after updating CFLAGS and LIBS
2843 dnl $3 = logic to use if pkg-config does not have the package
2844 AC_DEFUN([CF_TRY_PKG_CONFIG],[
2845 AC_REQUIRE([CF_PKG_CONFIG])
2847 if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists $1; then
2848 CF_VERBOSE(found package $1)
2849 cf_pkgconfig_incs="`$PKG_CONFIG --cflags $1 2>/dev/null`"
2850 cf_pkgconfig_libs="`$PKG_CONFIG --libs $1 2>/dev/null`"
2851 CF_VERBOSE(package $1 CFLAGS: $cf_pkgconfig_incs)
2852 CF_VERBOSE(package $1 LIBS: $cf_pkgconfig_libs)
2853 CF_ADD_CFLAGS($cf_pkgconfig_incs)
2854 CF_ADD_LIBS($cf_pkgconfig_libs)
2855 ifelse([$2],,:,[$2])
2857 ifelse([$3],,:,[$3])
2860 dnl ---------------------------------------------------------------------------
2861 dnl CF_TRY_XOPEN_SOURCE version: 1 updated: 2011/10/30 17:09:50
2862 dnl -------------------
2863 dnl If _XOPEN_SOURCE is not defined in the compile environment, check if we
2864 dnl can define it successfully.
2865 AC_DEFUN([CF_TRY_XOPEN_SOURCE],[
2866 AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[
2870 #include <sys/types.h>
2872 #ifndef _XOPEN_SOURCE
2875 [cf_cv_xopen_source=no],
2876 [cf_save="$CPPFLAGS"
2877 CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
2881 #include <sys/types.h>
2883 #ifdef _XOPEN_SOURCE
2886 [cf_cv_xopen_source=no],
2887 [cf_cv_xopen_source=$cf_XOPEN_SOURCE])
2892 if test "$cf_cv_xopen_source" != no ; then
2893 CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE)
2894 CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE)
2895 cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
2896 CF_ADD_CFLAGS($cf_temp_xopen_source)
2899 dnl ---------------------------------------------------------------------------
2900 dnl CF_UPPER version: 5 updated: 2001/01/29 23:40:59
2902 dnl Make an uppercase version of a variable
2903 dnl $1=uppercase($2)
2904 AC_DEFUN([CF_UPPER],
2906 $1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
2908 dnl ---------------------------------------------------------------------------
2909 dnl CF_UTF8_LIB version: 8 updated: 2012/10/06 08:57:51
2911 dnl Check for multibyte support, and if not found, utf8 compatibility library
2912 AC_DEFUN([CF_UTF8_LIB],
2914 AC_CACHE_CHECK(for multibyte character support,cf_cv_utf8_lib,[
2915 cf_save_LIBS="$LIBS"
2917 #include <stdlib.h>],[putwc(0,0);],
2918 [cf_cv_utf8_lib=yes],
2920 #include <libutf8.h>],[putwc(0,0);],utf8,
2921 [cf_cv_utf8_lib=add-on],
2922 [cf_cv_utf8_lib=no])
2925 # HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
2927 if test "$cf_cv_utf8_lib" = "add-on" ; then
2928 AC_DEFINE(HAVE_LIBUTF8_H,1,[Define to 1 if we should include libutf8.h])
2929 CF_ADD_INCDIR($cf_cv_header_path_utf8)
2930 CF_ADD_LIBDIR($cf_cv_library_path_utf8)
2931 CF_ADD_LIBS($cf_cv_library_file_utf8)
2934 dnl ---------------------------------------------------------------------------
2935 dnl CF_VERBOSE version: 3 updated: 2007/07/29 09:55:12
2937 dnl Use AC_VERBOSE w/o the warnings
2938 AC_DEFUN([CF_VERBOSE],
2939 [test -n "$verbose" && echo " $1" 1>&AC_FD_MSG
2942 dnl ---------------------------------------------------------------------------
2943 dnl CF_WCHAR_TYPE version: 4 updated: 2012/10/06 16:39:58
2945 dnl Check if type wide-character type $1 is declared, and if so, which header
2946 dnl file is needed. The second parameter is used to set a shell variable when
2947 dnl the type is not found. The first parameter sets a shell variable for the
2949 AC_DEFUN([CF_WCHAR_TYPE],
2951 # This is needed on Tru64 5.0 to declare $1
2952 AC_CACHE_CHECK(if we must include wchar.h to declare $1,cf_cv_$1,[
2957 #ifdef HAVE_LIBUTF8_H
2958 #include <libutf8.h>
2967 #ifdef HAVE_LIBUTF8_H
2968 #include <libutf8.h>
2972 [cf_cv_$1=unknown])])])
2974 if test "$cf_cv_$1" = yes ; then
2975 AC_DEFINE(NEED_WCHAR_H,1,[Define to 1 if we must include wchar.h])
2980 # if we do not find $1 in either place, use substitution to provide a fallback.
2981 if test "$cf_cv_$1" = unknown ; then
2986 # if we find $1 in either place, use substitution to provide a fallback.
2987 if test "$cf_cv_$1" != unknown ; then
2992 dnl ---------------------------------------------------------------------------
2993 dnl CF_WITH_CURSES_DIR version: 3 updated: 2010/11/20 17:02:38
2994 dnl ------------------
2995 dnl Wrapper for AC_ARG_WITH to specify directory under which to look for curses
2997 AC_DEFUN([CF_WITH_CURSES_DIR],[
2999 AC_MSG_CHECKING(for specific curses-directory)
3000 AC_ARG_WITH(curses-dir,
3001 [ --with-curses-dir=DIR directory in which (n)curses is installed],
3002 [cf_cv_curses_dir=$withval],
3003 [cf_cv_curses_dir=no])
3004 AC_MSG_RESULT($cf_cv_curses_dir)
3006 if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
3008 CF_PATH_SYNTAX(withval)
3009 if test -d "$cf_cv_curses_dir"
3011 CF_ADD_INCDIR($cf_cv_curses_dir/include)
3012 CF_ADD_LIBDIR($cf_cv_curses_dir/lib)
3016 dnl ---------------------------------------------------------------------------
3017 dnl CF_WITH_DBMALLOC version: 7 updated: 2010/06/21 17:26:47
3018 dnl ----------------
3019 dnl Configure-option for dbmalloc. The optional parameter is used to override
3020 dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
3021 AC_DEFUN([CF_WITH_DBMALLOC],[
3022 CF_NO_LEAKS_OPTION(dbmalloc,
3023 [ --with-dbmalloc test: use Conor Cahill's dbmalloc library],
3026 if test "$with_dbmalloc" = yes ; then
3027 AC_CHECK_HEADER(dbmalloc.h,
3028 [AC_CHECK_LIB(dbmalloc,[debug_malloc]ifelse([$1],,[],[,$1]))])
3031 dnl ---------------------------------------------------------------------------
3032 dnl CF_WITH_DMALLOC version: 7 updated: 2010/06/21 17:26:47
3034 dnl Configure-option for dmalloc. The optional parameter is used to override
3035 dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
3036 AC_DEFUN([CF_WITH_DMALLOC],[
3037 CF_NO_LEAKS_OPTION(dmalloc,
3038 [ --with-dmalloc test: use Gray Watson's dmalloc library],
3041 if test "$with_dmalloc" = yes ; then
3042 AC_CHECK_HEADER(dmalloc.h,
3043 [AC_CHECK_LIB(dmalloc,[dmalloc_debug]ifelse([$1],,[],[,$1]))])
3046 dnl ---------------------------------------------------------------------------
3047 dnl CF_WITH_NCURSES_ETC version: 2 updated: 2012/01/13 10:49:00
3048 dnl -------------------
3049 dnl Use this macro for programs which use any variant of "curses", e.g.,
3050 dnl "ncurses", and "PDCurses". Programs that can use curses and some unrelated
3051 dnl library (such as slang) should use a "--with-screen=XXX" option.
3053 dnl This does not use AC_DEFUN, because that would tell autoconf to run each
3054 dnl of the macros inside this one - before this macro.
3055 define([CF_WITH_NCURSES_ETC],[
3060 AC_MSG_CHECKING(for specified curses library type)
3061 AC_ARG_WITH(ncursesw,
3062 [ --with-ncursesw use wide ncurses-libraries],
3063 [cf_cv_screen=ncursesw],[
3065 AC_ARG_WITH(ncurses,
3066 [ --with-ncurses use ncurses-libraries],
3067 [cf_cv_screen=ncurses],[
3069 AC_ARG_WITH(pdcurses,
3070 [ --with-pdcurses compile/link with pdcurses X11 library],
3071 [cf_cv_screen=pdcurses],[
3073 AC_ARG_WITH(curses-colr,
3074 [ --with-curses-colr compile/link with HPUX 10.x color-curses],
3075 [cf_cv_screen=curses_colr],[
3077 AC_ARG_WITH(curses-5lib,
3078 [ --with-curses-5lib compile/link with SunOS 5lib curses],
3079 [cf_cv_screen=curses_5lib])])])])])
3081 AC_MSG_RESULT($cf_cv_screen)
3083 case $cf_cv_screen in #(vi
3084 curses|curses_*) #(vi
3092 CF_NCURSES_CONFIG(ncursesw)
3100 dnl ---------------------------------------------------------------------------
3101 dnl CF_WITH_VALGRIND version: 1 updated: 2006/12/14 18:00:21
3102 dnl ----------------
3103 AC_DEFUN([CF_WITH_VALGRIND],[
3104 CF_NO_LEAKS_OPTION(valgrind,
3105 [ --with-valgrind test: use valgrind],
3108 dnl ---------------------------------------------------------------------------
3109 dnl CF_XOPEN_CURSES version: 11 updated: 2011/01/18 18:15:30
3111 dnl Test if we should define X/Open source for curses, needed on Digital Unix
3112 dnl 4.x, to see the extended functions, but breaks on IRIX 6.x.
3114 dnl The getbegyx() check is needed for HPUX, which omits legacy macros such
3115 dnl as getbegy(). The latter is better design, but the former is standard.
3116 AC_DEFUN([CF_XOPEN_CURSES],
3118 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
3119 AC_CACHE_CHECK(if we must define _XOPEN_SOURCE_EXTENDED,cf_cv_need_xopen_extension,[
3122 #include <${cf_cv_ncurses_header:-curses.h}>],[
3123 #if defined(NCURSES_VERSION_PATCH)
3124 #if (NCURSES_VERSION_PATCH < 20100501) && (NCURSES_VERSION_PATCH >= 20100403)
3128 long x = winnstr(stdscr, "", 0);
3130 getbegyx(stdscr, y1, x1)],
3131 [cf_cv_need_xopen_extension=no],
3133 #define _XOPEN_SOURCE_EXTENDED
3135 #include <${cf_cv_ncurses_header:-curses.h}>],[
3136 #ifdef NCURSES_VERSION
3138 int check2 = curs_set((int)sizeof(check));
3140 long x = winnstr(stdscr, "", 0);
3142 getbegyx(stdscr, y1, x1)],
3143 [cf_cv_need_xopen_extension=yes],
3144 [cf_cv_need_xopen_extension=unknown])])])
3145 test $cf_cv_need_xopen_extension = yes && CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED"
3147 dnl ---------------------------------------------------------------------------
3148 dnl CF_XOPEN_SOURCE version: 42 updated: 2012/01/07 08:26:49
3150 dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
3151 dnl or adapt to the vendor's definitions to get equivalent functionality,
3152 dnl without losing the common non-POSIX features.
3155 dnl $1 is the nominal value for _XOPEN_SOURCE
3156 dnl $2 is the nominal value for _POSIX_C_SOURCE
3157 AC_DEFUN([CF_XOPEN_SOURCE],[
3159 cf_XOPEN_SOURCE=ifelse([$1],,500,[$1])
3160 cf_POSIX_C_SOURCE=ifelse([$2],,199506L,[$2])
3163 case $host_os in #(vi
3165 cf_xopen_source="-D_ALL_SOURCE"
3170 darwin[[0-8]].*) #(vi
3171 cf_xopen_source="-D_APPLE_C_SOURCE"
3174 cf_xopen_source="-D_DARWIN_C_SOURCE"
3177 freebsd*|dragonfly*) #(vi
3178 # 5.x headers associate
3179 # _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L
3180 # _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L
3181 cf_POSIX_C_SOURCE=200112L
3183 cf_xopen_source="-D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
3186 cf_xopen_source="-D_HPUX_SOURCE -D_XOPEN_SOURCE=500"
3189 cf_xopen_source="-D_HPUX_SOURCE"
3192 cf_xopen_source="-D_SGI_SOURCE"
3195 linux*|gnu*|mint*|k*bsd*-gnu) #(vi
3199 # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <sys/select.h> and other headers which use u_int / u_short types
3201 CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
3204 cf_xopen_source="-D_NETBSD_SOURCE" # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
3206 openbsd[[4-9]]*) #(vi
3207 # setting _XOPEN_SOURCE lower than 500 breaks g++ compile with wchar.h, needed for ncursesw
3208 cf_xopen_source="-D_BSD_SOURCE"
3212 # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
3215 cf_xopen_source="-D_OSF_SOURCE"
3218 cf_xopen_source="-D_QNX_SOURCE"
3221 # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
3224 cf_xopen_source="-D__EXTENSIONS__"
3228 CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
3232 if test -n "$cf_xopen_source" ; then
3233 CF_ADD_CFLAGS($cf_xopen_source)
3236 dnl In anything but the default case, we may have system-specific setting
3237 dnl which is still not guaranteed to provide all of the entrypoints that
3238 dnl _XOPEN_SOURCE would yield.
3239 if test -n "$cf_XOPEN_SOURCE" && test -z "$cf_cv_xopen_source" ; then
3240 AC_MSG_CHECKING(if _XOPEN_SOURCE really is set)
3241 AC_TRY_COMPILE([#include <stdlib.h>],[
3242 #ifndef _XOPEN_SOURCE
3245 [cf_XOPEN_SOURCE_set=yes],
3246 [cf_XOPEN_SOURCE_set=no])
3247 AC_MSG_RESULT($cf_XOPEN_SOURCE_set)
3248 if test $cf_XOPEN_SOURCE_set = yes
3250 AC_TRY_COMPILE([#include <stdlib.h>],[
3251 #if (_XOPEN_SOURCE - 0) < $cf_XOPEN_SOURCE
3254 [cf_XOPEN_SOURCE_set_ok=yes],
3255 [cf_XOPEN_SOURCE_set_ok=no])
3256 if test $cf_XOPEN_SOURCE_set_ok = no
3258 AC_MSG_WARN(_XOPEN_SOURCE is lower than requested)
3265 dnl ---------------------------------------------------------------------------
3266 dnl CF_X_ATHENA version: 20 updated: 2010/11/09 05:18:02
3268 dnl Check for Xaw (Athena) libraries
3270 dnl Sets $cf_x_athena according to the flavor of Xaw which is used.
3271 AC_DEFUN([CF_X_ATHENA],
3273 cf_x_athena=${cf_x_athena:-Xaw}
3275 AC_MSG_CHECKING(if you want to link with Xaw 3d library)
3278 [ --with-Xaw3d link with Xaw 3d library])
3279 if test "$withval" = yes ; then
3286 AC_MSG_CHECKING(if you want to link with neXT Athena library)
3289 [ --with-neXtaw link with neXT Athena library])
3290 if test "$withval" = yes ; then
3297 AC_MSG_CHECKING(if you want to link with Athena-Plus library)
3299 AC_ARG_WITH(XawPlus,
3300 [ --with-XawPlus link with Athena-Plus library])
3301 if test "$withval" = yes ; then
3310 if test "$PKG_CONFIG" != none ; then
3312 test "$cf_x_athena" = Xaw && cf_athena_list="xaw8 xaw7 xaw6"
3313 for cf_athena_pkg in \
3316 ${cf_x_athena}-devel \
3318 lib${cf_x_athena}-devel
3320 CF_TRY_PKG_CONFIG($cf_athena_pkg,[
3321 cf_x_athena_lib="$cf_pkgconfig_libs"
3322 CF_UPPER(cf_x_athena_LIBS,HAVE_LIB_$cf_x_athena)
3323 AC_DEFINE_UNQUOTED($cf_x_athena_LIBS)
3325 AC_CACHE_CHECK(for usable $cf_x_athena/Xmu package,cf_cv_xaw_compat,[
3327 #include <X11/Xmu/CharSet.h>
3329 int check = XmuCompareISOLatin1("big", "small")
3330 ],[cf_cv_xaw_compat=yes],[cf_cv_xaw_compat=no])])
3332 if test "$cf_cv_xaw_compat" = no
3334 # workaround for broken ".pc" files...
3335 case "$cf_x_athena_lib" in #(vi
3339 CF_VERBOSE(work around broken package)
3340 CF_TRY_PKG_CONFIG(xmu,,[CF_ADD_LIB_AFTER(-lXt,-lXmu)])
3349 if test -z "$cf_x_athena_lib" ; then
3352 CF_X_ATHENA_CPPFLAGS($cf_x_athena)
3353 CF_X_ATHENA_LIBS($cf_x_athena)
3356 dnl ---------------------------------------------------------------------------
3357 dnl CF_X_ATHENA_CPPFLAGS version: 5 updated: 2010/05/26 17:35:30
3358 dnl --------------------
3359 dnl Normally invoked by CF_X_ATHENA, with $1 set to the appropriate flavor of
3360 dnl the Athena widgets, e.g., Xaw, Xaw3d, neXtaw.
3361 AC_DEFUN([CF_X_ATHENA_CPPFLAGS],
3363 cf_x_athena_root=ifelse([$1],,Xaw,[$1])
3366 for cf_path in default \
3367 /usr/contrib/X11R6 \
3368 /usr/contrib/X11R5 \
3372 if test -z "$cf_x_athena_inc" ; then
3374 cf_test=X11/$cf_x_athena_root/SimpleMenu.h
3375 if test $cf_path != default ; then
3376 CPPFLAGS="$cf_save -I$cf_path/include"
3377 AC_MSG_CHECKING(for $cf_test in $cf_path)
3379 AC_MSG_CHECKING(for $cf_test)
3382 #include <X11/Intrinsic.h>
3383 #include <$cf_test>],[],
3386 AC_MSG_RESULT($cf_result)
3387 if test "$cf_result" = yes ; then
3388 cf_x_athena_inc=$cf_path
3396 if test -z "$cf_x_athena_inc" ; then
3398 [Unable to successfully find Athena header files with test program])
3399 elif test "$cf_x_athena_inc" != default ; then
3400 CPPFLAGS="$CPPFLAGS -I$cf_x_athena_inc"
3403 dnl ---------------------------------------------------------------------------
3404 dnl CF_X_ATHENA_LIBS version: 12 updated: 2011/07/17 19:55:02
3405 dnl ----------------
3406 dnl Normally invoked by CF_X_ATHENA, with $1 set to the appropriate flavor of
3407 dnl the Athena widgets, e.g., Xaw, Xaw3d, neXtaw.
3408 AC_DEFUN([CF_X_ATHENA_LIBS],
3409 [AC_REQUIRE([CF_X_TOOLKIT])
3410 cf_x_athena_root=ifelse([$1],,Xaw,[$1])
3413 for cf_path in default \
3414 /usr/contrib/X11R6 \
3415 /usr/contrib/X11R5 \
3420 ${cf_x_athena_root} \
3421 ${cf_x_athena_root}7 \
3422 ${cf_x_athena_root}6
3426 "-l$cf_lib -lXpm -lXmu" \
3427 "-l${cf_lib}_s -lXmu_s"
3429 if test -z "$cf_x_athena_lib" ; then
3431 cf_test=XawSimpleMenuAddGlobalActions
3432 if test $cf_path != default ; then
3433 CF_ADD_LIBS(-L$cf_path/lib $cf_libs)
3434 AC_MSG_CHECKING(for $cf_libs in $cf_path)
3436 CF_ADD_LIBS($cf_libs)
3437 AC_MSG_CHECKING(for $cf_test in $cf_libs)
3440 #include <X11/Intrinsic.h>
3441 #include <X11/$cf_x_athena_root/SimpleMenu.h>
3443 $cf_test((XtAppContext) 0)],
3446 AC_MSG_RESULT($cf_result)
3447 if test "$cf_result" = yes ; then
3448 cf_x_athena_lib="$cf_libs"
3454 test -n "$cf_x_athena_lib" && break
3458 if test -z "$cf_x_athena_lib" ; then
3460 [Unable to successfully link Athena library (-l$cf_x_athena_root) with test program])
3463 CF_UPPER(cf_x_athena_LIBS,HAVE_LIB_$cf_x_athena)
3464 AC_DEFINE_UNQUOTED($cf_x_athena_LIBS)
3466 dnl ---------------------------------------------------------------------------
3467 dnl CF_X_EXT version: 3 updated: 2010/06/02 05:03:05
3469 AC_DEFUN([CF_X_EXT],[
3470 CF_TRY_PKG_CONFIG(Xext,,[
3471 AC_CHECK_LIB(Xext,XextCreateExtension,
3472 [CF_ADD_LIB(Xext)])])
3474 dnl ---------------------------------------------------------------------------
3475 dnl CF_X_TOOLKIT version: 21 updated: 2012/10/04 06:57:36
3477 dnl Check for X Toolkit libraries
3479 AC_DEFUN([CF_X_TOOLKIT],
3481 AC_REQUIRE([AC_PATH_XTRA])
3482 AC_REQUIRE([CF_CHECK_CACHE])
3486 CF_TRY_PKG_CONFIG(xt,[
3488 case "x$LIBS" in #(vi
3492 # we have an "xt" package, but it may omit Xt's dependency on X11
3493 AC_CACHE_CHECK(for usable X dependency,cf_cv_xt_x11_compat,[
3495 #include <X11/Xlib.h>
3497 int rc1 = XDrawLine((Display*) 0, (Drawable) 0, (GC) 0, 0, 0, 0, 0);
3498 int rc2 = XClearWindow((Display*) 0, (Window) 0);
3499 int rc3 = XMoveWindow((Display*) 0, (Window) 0, 0, 0);
3500 int rc4 = XMoveResizeWindow((Display*)0, (Window)0, 0, 0, 0, 0);
3501 ],[cf_cv_xt_x11_compat=yes],[cf_cv_xt_x11_compat=no])])
3502 if test "$cf_cv_xt_x11_compat" = no
3504 CF_VERBOSE(work around broken X11 dependency)
3505 # 2010/11/19 - good enough until a working Xt on Xcb is delivered.
3506 CF_TRY_PKG_CONFIG(x11,,[CF_ADD_LIB_AFTER(-lXt,-lX11)])
3511 AC_CACHE_CHECK(for usable X Toolkit package,cf_cv_xt_ice_compat,[
3513 #include <X11/Shell.h>
3514 ],[int num = IceConnectionNumber(0)
3515 ],[cf_cv_xt_ice_compat=yes],[cf_cv_xt_ice_compat=no])])
3517 if test "$cf_cv_xt_ice_compat" = no
3519 # workaround for broken ".pc" files used for X Toolkit.
3520 case "x$X_PRE_LIBS" in #(vi
3522 case "x$LIBS" in #(vi
3526 CF_VERBOSE(work around broken ICE dependency)
3527 CF_TRY_PKG_CONFIG(ice,
3528 [CF_TRY_PKG_CONFIG(sm)],
3529 [CF_ADD_LIB_AFTER(-lXt,$X_PRE_LIBS)])
3539 LDFLAGS="$X_LIBS $LDFLAGS"
3540 CF_CHECK_CFLAGS($X_CFLAGS)
3542 AC_CHECK_FUNC(XOpenDisplay,,[
3543 AC_CHECK_LIB(X11,XOpenDisplay,
3545 [$X_PRE_LIBS $LIBS $X_EXTRA_LIBS])])
3547 AC_CHECK_FUNC(XtAppInitialize,,[
3548 AC_CHECK_LIB(Xt, XtAppInitialize,
3549 [AC_DEFINE(HAVE_LIBXT,1,[Define to 1 if we can compile with the Xt library])
3551 LIBS="-lXt $X_PRE_LIBS $LIBS $X_EXTRA_LIBS"],,
3552 [$X_PRE_LIBS $LIBS $X_EXTRA_LIBS])])
3555 if test $cf_have_X_LIBS = no ; then
3557 [Unable to successfully link X Toolkit library (-lXt) with
3558 test program. You will have to check and add the proper libraries by hand
3562 dnl ---------------------------------------------------------------------------
3563 dnl CF__CURSES_HEAD version: 2 updated: 2010/10/23 15:54:49
3565 dnl Define a reusable chunk which includes <curses.h> and <term.h> when they
3566 dnl are both available.
3567 define([CF__CURSES_HEAD],[
3569 #include <xcurses.h>
3570 char * XCursesProgramName = "test";
3572 #include <${cf_cv_ncurses_header:-curses.h}>
3573 #if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H)
3574 #include <ncursesw/term.h>
3575 #elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H)
3576 #include <ncurses/term.h>
3577 #elif defined(HAVE_TERM_H)