1 dnl***************************************************************************
2 dnl Copyright (c) 1998-2007,2008 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 Author: Thomas E. Dickey 1995-on
31 dnl $Id: aclocal.m4,v 1.470 2008/10/25 22:15:32 tom Exp $
32 dnl Macros used in NCURSES auto-configuration script.
34 dnl These macros are maintained separately from NCURSES. The copyright on
35 dnl this file applies to the aggregation of macros and does not affect use of
36 dnl these macros in other applications.
38 dnl See http://invisible-island.net/autoconf/ for additional information.
40 dnl ---------------------------------------------------------------------------
41 dnl ---------------------------------------------------------------------------
42 dnl AM_LANGINFO_CODESET version: 3 updated: 2002/10/27 23:21:42
43 dnl -------------------
44 dnl Inserted as requested by gettext 0.10.40
45 dnl File from /usr/share/aclocal
47 dnl ====================
50 dnl From Bruno Haible.
51 AC_DEFUN([AM_LANGINFO_CODESET],
53 AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset,
54 [AC_TRY_LINK([#include <langinfo.h>],
55 [char* cs = nl_langinfo(CODESET);],
56 am_cv_langinfo_codeset=yes,
57 am_cv_langinfo_codeset=no)
59 if test $am_cv_langinfo_codeset = yes; then
60 AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
61 [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
64 dnl ---------------------------------------------------------------------------
65 dnl CF_ADA_INCLUDE_DIRS version: 5 updated: 2006/10/14 15:23:15
66 dnl -------------------
67 dnl Construct the list of include-options for the C programs in the Ada95
69 AC_DEFUN([CF_ADA_INCLUDE_DIRS],
71 ACPPFLAGS="-I. -I../../include $ACPPFLAGS"
72 if test "$srcdir" != "."; then
73 ACPPFLAGS="-I\${srcdir}/../../include $ACPPFLAGS"
75 if test "$GCC" != yes; then
76 ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
77 elif test "$includedir" != "/usr/include"; then
78 if test "$includedir" = '${prefix}/include' ; then
79 if test $prefix != /usr ; then
80 ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
83 ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
88 dnl ---------------------------------------------------------------------------
89 dnl CF_ADD_CFLAGS version: 7 updated: 2004/04/25 17:48:30
91 dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS
92 dnl The second parameter if given makes this macro verbose.
94 dnl Put any preprocessor definitions that use quoted strings in $EXTRA_CPPFLAGS,
95 dnl to simplify use of $CPPFLAGS in compiler checks, etc., that are easily
96 dnl confused by the quotes (which require backslashes to keep them usable).
97 AC_DEFUN([CF_ADD_CFLAGS],
102 cf_new_extra_cppflags=
104 for cf_add_cflags in $1
106 case $cf_fix_cppflags in
108 case $cf_add_cflags in #(vi
109 -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
110 case $cf_add_cflags in
112 cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[[^=]]*='\''\"[[^"]]*//'`
114 test "${cf_add_cflags}" != "${cf_tst_cflags}" \
115 && test -z "${cf_tst_cflags}" \
116 && cf_fix_cppflags=yes
118 if test $cf_fix_cppflags = yes ; then
119 cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
121 elif test "${cf_tst_cflags}" = "\"'" ; then
122 cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
128 *$cf_add_cflags) #(vi
131 cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
136 cf_new_cflags="$cf_new_cflags $cf_add_cflags"
141 cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
143 cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[[^"]]*"'\''//'`
145 test "${cf_add_cflags}" != "${cf_tst_cflags}" \
146 && test -z "${cf_tst_cflags}" \
147 && cf_fix_cppflags=no
152 if test -n "$cf_new_cflags" ; then
153 ifelse($2,,,[CF_VERBOSE(add to \$CFLAGS $cf_new_cflags)])
154 CFLAGS="$CFLAGS $cf_new_cflags"
157 if test -n "$cf_new_cppflags" ; then
158 ifelse($2,,,[CF_VERBOSE(add to \$CPPFLAGS $cf_new_cppflags)])
159 CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
162 if test -n "$cf_new_extra_cppflags" ; then
163 ifelse($2,,,[CF_VERBOSE(add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags)])
164 EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
167 AC_SUBST(EXTRA_CPPFLAGS)
170 dnl ---------------------------------------------------------------------------
171 dnl CF_ADD_INCDIR version: 9 updated: 2008/02/09 13:15:34
173 dnl Add an include-directory to $CPPFLAGS. Don't add /usr/include, since it's
174 dnl redundant. We don't normally need to add -I/usr/local/include for gcc,
175 dnl but old versions (and some misinstalled ones) need that. To make things
176 dnl worse, gcc 3.x may give error messages if -I/usr/local/include is added to
177 dnl the include-path).
178 AC_DEFUN([CF_ADD_INCDIR],
180 if test -n "$1" ; then
181 for cf_add_incdir in $1
183 while test $cf_add_incdir != /usr/include
185 if test -d $cf_add_incdir
188 if test -n "$CFLAGS$CPPFLAGS" ; then
189 # a loop is needed to ensure we can add subdirs of existing dirs
190 for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
191 if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
192 cf_have_incdir=yes; break
197 if test "$cf_have_incdir" = no ; then
198 if test "$cf_add_incdir" = /usr/local/include ; then
201 cf_save_CPPFLAGS=$CPPFLAGS
202 CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
203 AC_TRY_COMPILE([#include <stdio.h>],
206 [cf_have_incdir=yes])
207 CPPFLAGS=$cf_save_CPPFLAGS
212 if test "$cf_have_incdir" = no ; then
213 CF_VERBOSE(adding $cf_add_incdir to include-path)
214 ifelse($2,,CPPFLAGS,$2)="-I$cf_add_incdir $ifelse($2,,CPPFLAGS,[$]$2)"
216 cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
217 test "$cf_top_incdir" = "$cf_add_incdir" && break
218 cf_add_incdir="$cf_top_incdir"
227 dnl ---------------------------------------------------------------------------
228 dnl CF_ADD_LIBDIR version: 6 updated: 2008/02/09 13:15:34
230 dnl Adds to the library-path
232 dnl Some machines have trouble with multiple -L options.
234 dnl $1 is the (list of) directory(s) to add
235 dnl $2 is the optional name of the variable to update (default LDFLAGS)
237 AC_DEFUN([CF_ADD_LIBDIR],
239 if test -n "$1" ; then
240 for cf_add_libdir in $1
242 if test $cf_add_libdir = /usr/lib ; then
244 elif test -d $cf_add_libdir
247 if test -n "$LDFLAGS$LIBS" ; then
248 # a loop is needed to ensure we can add subdirs of existing dirs
249 for cf_test_libdir in $LDFLAGS $LIBS ; do
250 if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
251 cf_have_libdir=yes; break
255 if test "$cf_have_libdir" = no ; then
256 CF_VERBOSE(adding $cf_add_libdir to library-path)
257 ifelse($2,,LDFLAGS,$2)="-L$cf_add_libdir $ifelse($2,,LDFLAGS,[$]$2)"
263 dnl ---------------------------------------------------------------------------
264 dnl CF_ADD_SUBDIR_PATH version: 2 updated: 2007/07/29 10:12:59
265 dnl ------------------
266 dnl Append to a search-list for a nonstandard header/lib-file
267 dnl $1 = the variable to return as result
268 dnl $2 = the package name
269 dnl $3 = the subdirectory, e.g., bin, include or lib
270 dnl $4 = the directory under which we will test for subdirectories
271 dnl $5 = a directory that we do not want $4 to match
272 AC_DEFUN([CF_ADD_SUBDIR_PATH],
274 test "$4" != "$5" && \
276 ifelse([$5],NONE,,[(test $5 = NONE || test -d $5) &&]) {
277 test -n "$verbose" && echo " ... testing for $3-directories under $4"
278 test -d $4/$3 && $1="[$]$1 $4/$3"
279 test -d $4/$3/$2 && $1="[$]$1 $4/$3/$2"
280 test -d $4/$3/$2/$3 && $1="[$]$1 $4/$3/$2/$3"
281 test -d $4/$2/$3 && $1="[$]$1 $4/$2/$3"
282 test -d $4/$2/$3/$2 && $1="[$]$1 $4/$2/$3/$2"
285 dnl ---------------------------------------------------------------------------
286 dnl CF_ANSI_CC_CHECK version: 9 updated: 2001/12/30 17:53:34
288 dnl This is adapted from the macros 'fp_PROG_CC_STDC' and 'fp_C_PROTOTYPES'
289 dnl in the sharutils 4.2 distribution.
290 AC_DEFUN([CF_ANSI_CC_CHECK],
292 AC_CACHE_CHECK(for ${CC-cc} option to accept ANSI C, cf_cv_ansi_cc,[
294 cf_save_CFLAGS="$CFLAGS"
295 cf_save_CPPFLAGS="$CPPFLAGS"
296 # Don't try gcc -ansi; that turns off useful extensions and
297 # breaks some systems' header files.
299 # Ultrix and OSF/1 -std1
300 # HP-UX -Aa -D_HPUX_SOURCE
302 # UnixWare 1.2 (cannot use -Xc, since ANSI/POSIX clashes)
303 for cf_arg in "-DCC_HAS_PROTOS" \
308 "-Aa -D_HPUX_SOURCE" \
311 CF_ADD_CFLAGS($cf_arg)
314 #ifndef CC_HAS_PROTOS
315 #if !defined(__STDC__) || (__STDC__ != 1)
320 int test (int i, double x);
321 struct s1 {int (*f) (int a);};
322 struct s2 {int (*f) (double a);};],
323 [cf_cv_ansi_cc="$cf_arg"; break])
325 CFLAGS="$cf_save_CFLAGS"
326 CPPFLAGS="$cf_save_CPPFLAGS"
329 if test "$cf_cv_ansi_cc" != "no"; then
330 if test ".$cf_cv_ansi_cc" != ".-DCC_HAS_PROTOS"; then
331 CF_ADD_CFLAGS($cf_cv_ansi_cc)
333 AC_DEFINE(CC_HAS_PROTOS)
337 dnl ---------------------------------------------------------------------------
338 dnl CF_ANSI_CC_REQD version: 4 updated: 2008/03/23 14:48:54
340 dnl For programs that must use an ANSI compiler, obtain compiler options that
341 dnl will make it recognize prototypes. We'll do preprocessor checks in other
342 dnl macros, since tools such as unproto can fake prototypes, but only part of
343 dnl the preprocessor.
344 AC_DEFUN([CF_ANSI_CC_REQD],
345 [AC_REQUIRE([CF_ANSI_CC_CHECK])
346 if test "$cf_cv_ansi_cc" = "no"; then
348 [Your compiler does not appear to recognize prototypes.
349 You have the following choices:
350 a. adjust your compiler options
351 b. get an up-to-date compiler
352 c. use a wrapper such as unproto])
355 dnl ---------------------------------------------------------------------------
356 dnl CF_AWK_BIG_PRINTF version: 2 updated: 2008/10/04 17:16:18
357 dnl -----------------
358 dnl Check if awk can handle big strings using printf. Some older versions of
359 dnl awk choke on large strings passed via "%s".
361 dnl $1 = desired string size
362 dnl $2 = variable to set with result
363 AC_DEFUN([CF_AWK_BIG_PRINTF],
370 if ( ${AWK} 'BEGIN { xx = "x"; while (length(xx) < $1) { xx = xx "x"; }; printf("%s\n", xx); }' \
371 | $AWK '{ printf "%d\n", length([$]0); }' | $AWK 'BEGIN { eqls=0; recs=0; } { recs++; if ([$]0 == 12000) eqls++; } END { if (recs != 1 || eqls != 1) exit 1; }' 2>/dev/null >/dev/null ) ; then
379 dnl ---------------------------------------------------------------------------
380 dnl CF_BOOL_DECL version: 8 updated: 2004/01/30 15:51:18
382 dnl Test if 'bool' is a builtin type in the configured C++ compiler. Some
383 dnl older compilers (e.g., gcc 2.5.8) don't support 'bool' directly; gcc
384 dnl 2.6.3 does, in anticipation of the ANSI C++ standard.
386 dnl Treat the configuration-variable specially here, since we're directly
387 dnl substituting its value (i.e., 1/0).
389 dnl $1 is the shell variable to store the result in, if not $cv_cv_builtin_bool
390 AC_DEFUN([CF_BOOL_DECL],
392 AC_MSG_CHECKING(if we should include stdbool.h)
394 AC_CACHE_VAL(cf_cv_header_stdbool_h,[
395 AC_TRY_COMPILE([],[bool foo = false],
396 [cf_cv_header_stdbool_h=0],
401 ],[bool foo = false],
402 [cf_cv_header_stdbool_h=1],
403 [cf_cv_header_stdbool_h=0])])])
405 if test "$cf_cv_header_stdbool_h" = 1
406 then AC_MSG_RESULT(yes)
407 else AC_MSG_RESULT(no)
410 AC_MSG_CHECKING([for builtin bool type])
412 AC_CACHE_VAL(ifelse($1,,cf_cv_builtin_bool,[$1]),[
415 #include <sys/types.h>
417 [ifelse($1,,cf_cv_builtin_bool,[$1])=1],
418 [ifelse($1,,cf_cv_builtin_bool,[$1])=0])
421 if test "$ifelse($1,,cf_cv_builtin_bool,[$1])" = 1
422 then AC_MSG_RESULT(yes)
423 else AC_MSG_RESULT(no)
426 dnl ---------------------------------------------------------------------------
427 dnl CF_BOOL_SIZE version: 12 updated: 2006/12/16 12:33:30
429 dnl Test for the size of 'bool' in the configured C++ compiler (e.g., a type).
430 dnl Don't bother looking for bool.h, since it's been deprecated.
432 dnl If the current compiler is C rather than C++, we get the bool definition
433 dnl from <stdbool.h>.
434 AC_DEFUN([CF_BOOL_SIZE],
436 AC_MSG_CHECKING([for size of bool])
437 AC_CACHE_VAL(cf_cv_type_of_bool,[
443 #if defined(__cplusplus)
445 #ifdef HAVE_GXX_BUILTIN_H
446 #include <g++/builtin.h>
447 #elif HAVE_GPP_BUILTIN_H
448 #include <gpp/builtin.h>
455 #if $cf_cv_header_stdbool_h
463 FILE *fp = fopen("cf_test.out", "w");
467 fputs("unsigned ", fp);
468 if (sizeof(x) == sizeof(int)) fputs("int", fp);
469 else if (sizeof(x) == sizeof(char)) fputs("char", fp);
470 else if (sizeof(x) == sizeof(short))fputs("short",fp);
471 else if (sizeof(x) == sizeof(long)) fputs("long", fp);
474 ${cf_cv_main_return:-return}(0);
477 [cf_cv_type_of_bool=`cat cf_test.out`
478 if test -z "$cf_cv_type_of_bool"; then
479 cf_cv_type_of_bool=unknown
481 [cf_cv_type_of_bool=unknown],
482 [cf_cv_type_of_bool=unknown])
485 AC_MSG_RESULT($cf_cv_type_of_bool)
486 if test "$cf_cv_type_of_bool" = unknown ; then
487 case .$NCURSES_BOOL in #(vi
488 .auto|.) NCURSES_BOOL=unsigned;;
490 AC_MSG_WARN(Assuming $NCURSES_BOOL for type of bool)
491 cf_cv_type_of_bool=$NCURSES_BOOL
494 dnl ---------------------------------------------------------------------------
495 dnl CF_BUILD_CC version: 6 updated: 2006/10/14 15:23:15
497 dnl If we're cross-compiling, allow the user to override the tools and their
498 dnl options. The configure script is oriented toward identifying the host
499 dnl compiler, etc., but we need a build compiler to generate parts of the
502 dnl $1 = default for $CPPFLAGS
503 dnl $2 = default for $LIBS
504 AC_DEFUN([CF_BUILD_CC],[
505 AC_REQUIRE([CF_PROG_EXT])
506 if test "$cross_compiling" = yes ; then
508 # defaults that we might want to override
509 : ${BUILD_CFLAGS:=''}
510 : ${BUILD_CPPFLAGS:='ifelse([$1],,,[$1])'}
511 : ${BUILD_LDFLAGS:=''}
512 : ${BUILD_LIBS:='ifelse([$2],,,[$2])'}
513 : ${BUILD_EXEEXT:='$x'}
514 : ${BUILD_OBJEXT:='o'}
516 AC_ARG_WITH(build-cc,
517 [ --with-build-cc=XXX the build C compiler ($BUILD_CC)],
518 [BUILD_CC="$withval"],
519 [AC_CHECK_PROGS(BUILD_CC, gcc cc cl)])
520 AC_MSG_CHECKING(for native build C compiler)
521 AC_MSG_RESULT($BUILD_CC)
523 AC_MSG_CHECKING(for native build C preprocessor)
524 AC_ARG_WITH(build-cpp,
525 [ --with-build-cpp=XXX the build C preprocessor ($BUILD_CPP)],
526 [BUILD_CPP="$withval"],
527 [BUILD_CPP='${BUILD_CC} -E'])
528 AC_MSG_RESULT($BUILD_CPP)
530 AC_MSG_CHECKING(for native build C flags)
531 AC_ARG_WITH(build-cflags,
532 [ --with-build-cflags=XXX the build C compiler-flags ($BUILD_CFLAGS)],
533 [BUILD_CFLAGS="$withval"])
534 AC_MSG_RESULT($BUILD_CFLAGS)
536 AC_MSG_CHECKING(for native build C preprocessor-flags)
537 AC_ARG_WITH(build-cppflags,
538 [ --with-build-cppflags=XXX the build C preprocessor-flags ($BUILD_CPPFLAGS)],
539 [BUILD_CPPFLAGS="$withval"])
540 AC_MSG_RESULT($BUILD_CPPFLAGS)
542 AC_MSG_CHECKING(for native build linker-flags)
543 AC_ARG_WITH(build-ldflags,
544 [ --with-build-ldflags=XXX the build linker-flags ($BUILD_LDFLAGS)],
545 [BUILD_LDFLAGS="$withval"])
546 AC_MSG_RESULT($BUILD_LDFLAGS)
548 AC_MSG_CHECKING(for native build linker-libraries)
549 AC_ARG_WITH(build-libs,
550 [ --with-build-libs=XXX the build libraries (${BUILD_LIBS})],
551 [BUILD_LIBS="$withval"])
552 AC_MSG_RESULT($BUILD_LIBS)
554 # this assumes we're on Unix.
558 : ${BUILD_CC:='${CC}'}
560 if ( test "$BUILD_CC" = "$CC" || test "$BUILD_CC" = '${CC}' ) ; then
561 AC_MSG_ERROR([Cross-build requires two compilers.
562 Use --with-build-cc to specify the native compiler.])
566 : ${BUILD_CC:='${CC}'}
567 : ${BUILD_CPP:='${CPP}'}
568 : ${BUILD_CFLAGS:='${CFLAGS}'}
569 : ${BUILD_CPPFLAGS:='${CPPFLAGS}'}
570 : ${BUILD_LDFLAGS:='${LDFLAGS}'}
571 : ${BUILD_LIBS:='${LIBS}'}
572 : ${BUILD_EXEEXT:='$x'}
573 : ${BUILD_OBJEXT:='o'}
578 AC_SUBST(BUILD_CFLAGS)
579 AC_SUBST(BUILD_CPPFLAGS)
580 AC_SUBST(BUILD_LDFLAGS)
582 AC_SUBST(BUILD_EXEEXT)
583 AC_SUBST(BUILD_OBJEXT)
585 dnl ---------------------------------------------------------------------------
586 dnl CF_CFG_DEFAULTS version: 7 updated: 2005/09/24 16:15:00
588 dnl Determine the default configuration into which we'll install ncurses. This
589 dnl can be overridden by the user's command-line options. There's two items to
591 dnl 1. the prefix (e.g., /usr)
592 dnl 2. the header files (e.g., /usr/include/ncurses)
593 dnl We'll look for a previous installation of ncurses and use the same defaults.
595 dnl We don't use AC_PREFIX_DEFAULT, because it gets evaluated too soon, and
596 dnl we don't use AC_PREFIX_PROGRAM, because we cannot distinguish ncurses's
597 dnl programs from a vendor's.
598 AC_DEFUN([CF_CFG_DEFAULTS],
600 AC_MSG_CHECKING(for prefix)
601 if test "x$prefix" = "xNONE" ; then
602 case "$cf_cv_system_name" in
603 # non-vendor systems don't have a conflict
604 openbsd*|freebsd*|linux*|cygwin*|k*bsd*-gnu)
607 *) prefix=$ac_default_prefix
611 AC_MSG_RESULT($prefix)
613 if test "x$prefix" = "xNONE" ; then
614 AC_MSG_CHECKING(for default include-directory)
615 test -n "$verbose" && echo 1>&AC_FD_MSG
618 $includedir/ncurses \
620 $prefix/include/ncurses \
622 /usr/local/include/ncurses \
626 cf_dir=`eval echo $cf_symbol`
627 if test -f $cf_dir/curses.h ; then
628 if ( fgrep NCURSES_VERSION $cf_dir/curses.h 2>&1 >/dev/null ) ; then
629 includedir="$cf_symbol"
630 test -n "$verbose" && echo $ac_n " found " 1>&AC_FD_MSG
634 test -n "$verbose" && echo " tested $cf_dir" 1>&AC_FD_MSG
636 AC_MSG_RESULT($includedir)
639 dnl ---------------------------------------------------------------------------
640 dnl CF_CGETENT version: 3 updated: 2000/08/12 23:18:52
642 dnl Check if the terminal-capability database functions are available. If not,
643 dnl ncurses has a much-reduced version.
644 AC_DEFUN([CF_CGETENT],[
645 AC_MSG_CHECKING(for terminal-capability database functions)
646 AC_CACHE_VAL(cf_cv_cgetent,[
648 #include <stdlib.h>],[
651 char *db_array = temp;
652 cgetent(&buf, /* int *, */ &db_array, "vt100");
653 cgetcap(buf, "tc", '=');
654 cgetmatch(buf, "tc");
659 AC_MSG_RESULT($cf_cv_cgetent)
660 test "$cf_cv_cgetent" = yes && AC_DEFINE(HAVE_BSD_CGETENT)
662 dnl ---------------------------------------------------------------------------
663 dnl CF_CHECK_CACHE version: 11 updated: 2008/03/23 14:45:59
665 dnl Check if we're accidentally using a cache from a different machine.
666 dnl Derive the system name, as a check for reusing the autoconf cache.
668 dnl If we've packaged config.guess and config.sub, run that (since it does a
669 dnl better job than uname). Normally we'll use AC_CANONICAL_HOST, but allow
670 dnl an extra parameter that we may override, e.g., for AC_CANONICAL_SYSTEM
671 dnl which is useful in cross-compiles.
673 dnl Note: we would use $ac_config_sub, but that is one of the places where
674 dnl autoconf 2.5x broke compatibility with autoconf 2.13
675 AC_DEFUN([CF_CHECK_CACHE],
677 if test -f $srcdir/config.guess || test -f $ac_aux_dir/config.guess ; then
678 ifelse([$1],,[AC_CANONICAL_HOST],[$1])
679 system_name="$host_os"
681 system_name="`(uname -s -r) 2>/dev/null`"
682 if test -z "$system_name" ; then
683 system_name="`(hostname) 2>/dev/null`"
686 test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name")
687 AC_CACHE_VAL(cf_cv_system_name,[cf_cv_system_name="$system_name"])
689 test -z "$system_name" && system_name="$cf_cv_system_name"
690 test -n "$cf_cv_system_name" && AC_MSG_RESULT(Configuring for $cf_cv_system_name)
692 if test ".$system_name" != ".$cf_cv_system_name" ; then
693 AC_MSG_RESULT(Cached system name ($system_name) does not agree with actual ($cf_cv_system_name))
694 AC_MSG_ERROR("Please remove config.cache and try again.")
697 dnl ---------------------------------------------------------------------------
698 dnl CF_CHECK_ERRNO version: 10 updated: 2008/08/22 16:33:22
700 dnl Check for data that is usually declared in <stdio.h> or <errno.h>, e.g.,
701 dnl the 'errno' variable. Define a DECL_xxx symbol if we must declare it
704 dnl $1 = the name to check
705 dnl $2 = the assumed type
706 AC_DEFUN([CF_CHECK_ERRNO],
708 AC_CACHE_CHECK(if external $1 is declared, cf_cv_dcl_$1,[
714 #include <sys/types.h>
715 #include <errno.h> ],
716 ifelse($2,,int,$2) x = (ifelse($2,,int,$2)) $1,
721 if test "$cf_cv_dcl_$1" = no ; then
722 CF_UPPER(cf_result,decl_$1)
723 AC_DEFINE_UNQUOTED($cf_result)
726 # It's possible (for near-UNIX clones) that the data doesn't exist
727 CF_CHECK_EXTERN_DATA($1,ifelse($2,,int,$2))
729 dnl ---------------------------------------------------------------------------
730 dnl CF_CHECK_EXTERN_DATA version: 3 updated: 2001/12/30 18:03:23
731 dnl --------------------
732 dnl Check for existence of external data in the current set of libraries. If
733 dnl we can modify it, it's real enough.
734 dnl $1 = the name to check
736 AC_DEFUN([CF_CHECK_EXTERN_DATA],
738 AC_CACHE_CHECK(if external $1 exists, cf_cv_have_$1,[
748 if test "$cf_cv_have_$1" = yes ; then
749 CF_UPPER(cf_result,have_$1)
750 AC_DEFINE_UNQUOTED($cf_result)
754 dnl ---------------------------------------------------------------------------
755 dnl CF_CHECK_GPM_WGETCH version: 1 updated: 2007/04/28 14:38:06
756 dnl -------------------
757 dnl Check if GPM is already linked with curses. If so - and if the linkage
758 dnl is not "weak" - warn about this because it can create problems linking
759 dnl applications with ncurses.
760 AC_DEFUN([CF_CHECK_GPM_WGETCH],[
761 AC_CHECK_LIB(gpm,Gpm_Wgetch,[
763 AC_CACHE_CHECK(if GPM is weakly bound to curses library, cf_cv_check_gpm_wgetch,[
764 cf_cv_check_gpm_wgetch=unknown
765 if test "$cross_compiling" != yes ; then
767 cat >conftest.$ac_ext <<CF_EOF
772 ${cf_cv_main_return:-return}(0);
777 # This only works if we can look at the symbol table. If a shared
778 # library is stripped for install, we cannot use that. So we're forced
779 # to rely on the static library, noting that some packagers may not
781 LIBS="-static -lgpm -dynamic $LIBS"
782 if AC_TRY_EVAL(ac_compile) ; then
783 if AC_TRY_EVAL(ac_link) ; then
784 cf_cv_check_gpm_wgetch=`nm conftest$ac_exeext | egrep '\<wgetch\>' | egrep '\<[[vVwW]]\>'`
785 test -n "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=yes
786 test -z "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=no
794 if test "$cf_cv_check_gpm_wgetch" != yes ; then
795 AC_MSG_WARN(GPM library is already linked with curses - read the FAQ)
798 dnl ---------------------------------------------------------------------------
799 dnl CF_CPP_PARAM_INIT version: 4 updated: 2001/04/07 22:31:18
800 dnl -----------------
801 dnl Check if the C++ compiler accepts duplicate parameter initialization. This
802 dnl is a late feature for the standard and is not in some recent compilers
804 AC_DEFUN([CF_CPP_PARAM_INIT],
806 if test -n "$CXX"; then
807 AC_CACHE_CHECK(if $CXX accepts parameter initialization,cf_cv_cpp_param_init,[
819 TEST::TEST(int x = 1) // some compilers do not like second initializer
825 [cf_cv_cpp_param_init=yes],
826 [cf_cv_cpp_param_init=no],
827 [cf_cv_cpp_param_init=unknown])
831 test "$cf_cv_cpp_param_init" = yes && AC_DEFINE(CPP_HAS_PARAM_INIT)
833 dnl ---------------------------------------------------------------------------
834 dnl CF_CPP_STATIC_CAST version: 1 updated: 2005/07/23 16:52:43
835 dnl ------------------
836 dnl Check if the C++ compiler accepts static_cast in generics. This appears to
837 dnl not be supported in g++ before 3.0
838 AC_DEFUN([CF_CPP_STATIC_CAST],
840 if test -n "$CXX"; then
842 AC_CACHE_CHECK(if $CXX accepts static_cast,cf_cv_cpp_static_cast,[
850 NCursesPanel(int nlines,
860 template<class T> class NCursesUserPanel : public NCursesPanel
863 NCursesUserPanel (int nlines,
867 const T* p_UserData = static_cast<T*>(0))
868 : NCursesPanel (nlines, ncols, begin_y, begin_x)
871 NCursesUserPanel(const T* p_UserData = static_cast<T*>(0)) : NCursesPanel()
875 virtual ~NCursesUserPanel() {};
878 const char* p_UserData = static_cast<char*>(0)],
879 [cf_cv_cpp_static_cast=yes],
880 [cf_cv_cpp_static_cast=no])
887 test "$cf_cv_cpp_static_cast" = yes && AC_DEFINE(CPP_HAS_STATIC_CAST)
889 dnl ---------------------------------------------------------------------------
890 dnl CF_C_INLINE version: 2 updated: 2007/08/11 14:09:50
892 dnl Check if the C compiler supports "inline".
893 dnl $1 is the name of a shell variable to set if inline is supported
894 dnl $2 is the threshold for gcc 4.x's option controlling maximum inline size
895 AC_DEFUN([CF_C_INLINE],[
898 if test "$ac_cv_c_inline" != no ; then
900 if test "$INTEL_COMPILER" = yes
903 elif test "$GCC" = yes
905 AC_CACHE_CHECK(if gcc supports options to tune inlining,cf_cv_gcc_inline,[
906 cf_save_CFLAGS=$CFLAGS
907 CFLAGS="$CFLAGS --param max-inline-insns-single=$2"
908 AC_TRY_COMPILE([inline int foo(void) { return 1; }],
909 [${cf_cv_main_return:-return} foo()],
910 [cf_cv_gcc_inline=yes],
911 [cf_cv_gcc_inline=no])
912 CFLAGS=$cf_save_CFLAGS
914 if test "$cf_cv_gcc_inline" = yes ; then
915 CF_ADD_CFLAGS([--param max-inline-insns-single=$2])
921 dnl ---------------------------------------------------------------------------
922 dnl CF_DIRNAME version: 4 updated: 2002/12/21 19:25:52
924 dnl "dirname" is not portable, so we fake it with a shell script.
925 AC_DEFUN([CF_DIRNAME],[$1=`echo $2 | sed -e 's%/[[^/]]*$%%'`])dnl
926 dnl ---------------------------------------------------------------------------
927 dnl CF_DIRS_TO_MAKE version: 3 updated: 2002/02/23 20:38:31
929 AC_DEFUN([CF_DIRS_TO_MAKE],
932 for cf_item in $cf_list_models
934 CF_OBJ_SUBDIR($cf_item,cf_subdir)
935 for cf_item2 in $DIRS_TO_MAKE
937 test $cf_item2 = $cf_subdir && break
939 test ".$cf_item2" != ".$cf_subdir" && DIRS_TO_MAKE="$DIRS_TO_MAKE $cf_subdir"
941 for cf_dir in $DIRS_TO_MAKE
943 test ! -d $cf_dir && mkdir $cf_dir
945 AC_SUBST(DIRS_TO_MAKE)
947 dnl ---------------------------------------------------------------------------
948 dnl CF_DISABLE_LEAKS version: 4 updated: 2006/12/16 15:10:42
950 dnl Combine no-leak checks with the libraries or tools that are used for the
952 AC_DEFUN([CF_DISABLE_LEAKS],[
954 AC_REQUIRE([CF_WITH_DMALLOC])
955 AC_REQUIRE([CF_WITH_DBMALLOC])
956 AC_REQUIRE([CF_WITH_VALGRIND])
958 AC_MSG_CHECKING(if you want to perform memory-leak testing)
960 [ --disable-leaks test: free permanent memory, analyze leaks],
962 : ${with_no_leaks:=no})
963 AC_MSG_RESULT($with_no_leaks)
965 if test "$with_no_leaks" = yes ; then
969 dnl ---------------------------------------------------------------------------
970 dnl CF_ENABLE_RPATH version: 1 updated: 2008/09/13 10:22:30
972 dnl Check if the rpath option should be used, setting cache variable
973 dnl cf_cv_ld_rpath if so.
974 AC_DEFUN([CF_ENABLE_RPATH],
976 AC_MSG_CHECKING(if rpath option should be used)
978 [ --enable-rpath use rpath option when generating shared libraries],
979 [cf_cv_ld_rpath=$enableval],
981 AC_MSG_RESULT($cf_cv_ld_rpath)
983 dnl ---------------------------------------------------------------------------
984 dnl CF_ERRNO version: 5 updated: 1997/11/30 12:44:39
986 dnl Check if 'errno' is declared in <errno.h>
989 CF_CHECK_ERRNO(errno)
991 dnl ---------------------------------------------------------------------------
992 dnl CF_ETIP_DEFINES version: 3 updated: 2003/03/22 19:13:43
994 dnl Test for conflicting definitions of exception in gcc 2.8.0, etc., between
995 dnl math.h and builtin.h, only for ncurses
996 AC_DEFUN([CF_ETIP_DEFINES],
998 AC_MSG_CHECKING(for special defines needed for etip.h)
999 cf_save_CXXFLAGS="$CXXFLAGS"
1001 for cf_math in "" MATH_H
1003 for cf_excp in "" MATH_EXCEPTION
1005 CXXFLAGS="$cf_save_CXXFLAGS -I${srcdir}/c++ -I${srcdir}/menu -I${srcdir}/include"
1006 test -n "$cf_math" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_math}"
1007 test -n "$cf_excp" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_excp}"
1009 #include <etip.h.in>
1011 test -n "$cf_math" && AC_DEFINE_UNQUOTED(ETIP_NEEDS_${cf_math})
1012 test -n "$cf_excp" && AC_DEFINE_UNQUOTED(ETIP_NEEDS_${cf_excp})
1013 cf_result="$cf_math $cf_excp"
1018 AC_MSG_RESULT($cf_result)
1019 CXXFLAGS="$cf_save_CXXFLAGS"
1021 dnl ---------------------------------------------------------------------------
1022 dnl CF_FIND_LINKAGE version: 12 updated: 2007/07/29 20:13:53
1024 dnl Find a library (specifically the linkage used in the code fragment),
1025 dnl searching for it if it is not already in the library path.
1026 dnl See also CF_ADD_SEARCHPATH.
1028 dnl Parameters (4-on are optional):
1029 dnl $1 = headers for library entrypoint
1030 dnl $2 = code fragment for library entrypoint
1031 dnl $3 = the library name without the "-l" option or ".so" suffix.
1032 dnl $4 = action to perform if successful (default: update CPPFLAGS, etc)
1033 dnl $5 = action to perform if not successful
1034 dnl $6 = module name, if not the same as the library name
1035 dnl $7 = extra libraries
1037 dnl Sets these variables:
1038 dnl $cf_cv_find_linkage_$3 - yes/no according to whether linkage is found
1039 dnl $cf_cv_header_path_$3 - include-directory if needed
1040 dnl $cf_cv_library_path_$3 - library-directory if needed
1041 dnl $cf_cv_library_file_$3 - library-file if needed, e.g., -l$3
1042 AC_DEFUN([CF_FIND_LINKAGE],[
1044 # If the linkage is not already in the $CPPFLAGS/$LDFLAGS configuration, these
1045 # will be set on completion of the AC_TRY_LINK below.
1046 cf_cv_header_path_$3=
1047 cf_cv_library_path_$3=
1049 CF_MSG_LOG([Starting [FIND_LINKAGE]($3,$6)])
1051 AC_TRY_LINK([$1],[$2],
1052 cf_cv_find_linkage_$3=yes,[
1053 cf_cv_find_linkage_$3=no
1055 CF_MSG_LOG([Searching for headers in [FIND_LINKAGE]($3,$6)])
1057 cf_save_CPPFLAGS="$CPPFLAGS"
1058 cf_test_CPPFLAGS="$CPPFLAGS"
1060 CF_HEADER_PATH(cf_search,ifelse([$6],,[$3],[$6]))
1061 for cf_cv_header_path_$3 in $cf_search
1063 if test -d $cf_cv_header_path_$3 ; then
1064 CF_VERBOSE(... testing $cf_cv_header_path_$3)
1065 CPPFLAGS="$cf_save_CPPFLAGS -I$cf_cv_header_path_$3"
1066 AC_TRY_COMPILE([$1],[$2],[
1067 CF_VERBOSE(... found $3 headers in $cf_cv_header_path_$3)
1068 cf_cv_find_linkage_$3=maybe
1069 cf_test_CPPFLAGS="$CPPFLAGS"
1071 CPPFLAGS="$cf_save_CPPFLAGS"
1076 if test "$cf_cv_find_linkage_$3" = maybe ; then
1078 CF_MSG_LOG([Searching for $3 library in [FIND_LINKAGE]($3,$6)])
1080 cf_save_LIBS="$LIBS"
1081 cf_save_LDFLAGS="$LDFLAGS"
1084 CPPFLAGS="$cf_test_CPPFLAGS"
1085 LIBS="-l$3 $7 $cf_save_LIBS"
1086 AC_TRY_LINK([$1],[$2],[
1087 CF_VERBOSE(... found $3 library in system)
1088 cf_cv_find_linkage_$3=yes])
1089 CPPFLAGS="$cf_save_CPPFLAGS"
1090 LIBS="$cf_save_LIBS"
1093 if test "$cf_cv_find_linkage_$3" != yes ; then
1094 CF_LIBRARY_PATH(cf_search,$3)
1095 for cf_cv_library_path_$3 in $cf_search
1097 if test -d $cf_cv_library_path_$3 ; then
1098 CF_VERBOSE(... testing $cf_cv_library_path_$3)
1099 CPPFLAGS="$cf_test_CPPFLAGS"
1100 LIBS="-l$3 $7 $cf_save_LIBS"
1101 LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_$3"
1102 AC_TRY_LINK([$1],[$2],[
1103 CF_VERBOSE(... found $3 library in $cf_cv_library_path_$3)
1104 cf_cv_find_linkage_$3=yes
1105 cf_cv_library_file_$3="-l$3"
1107 CPPFLAGS="$cf_save_CPPFLAGS"
1108 LIBS="$cf_save_LIBS"
1109 LDFLAGS="$cf_save_LDFLAGS"
1113 LIBS="$cf_save_LIBS"
1114 CPPFLAGS="$cf_save_CPPFLAGS"
1115 LDFLAGS="$cf_save_LDFLAGS"
1119 cf_cv_find_linkage_$3=no
1123 if test "$cf_cv_find_linkage_$3" = yes ; then
1125 CF_ADD_INCDIR($cf_cv_header_path_$3)
1126 CF_ADD_LIBDIR($cf_cv_library_path_$3)
1130 ifelse([$5],,AC_MSG_WARN(Cannot find $3 library),[$5])
1133 dnl ---------------------------------------------------------------------------
1134 dnl CF_FUNC_DLSYM version: 1 updated: 2004/06/16 20:52:45
1136 dnl Test for dlsym() and related functions, as well as libdl.
1141 AC_DEFUN([CF_FUNC_DLSYM],[
1143 AC_CHECK_FUNC(dlsym,cf_have_dlsym=yes,[
1146 AC_CHECK_LIB(dl,dlsym,[
1148 cf_have_libdl=yes])])
1150 if test "$cf_have_dlsym" = yes ; then
1151 test "$cf_have_libdl" = yes && LIBS="-ldl $LIBS"
1153 AC_MSG_CHECKING(whether able to link to dl*() functions)
1154 AC_TRY_LINK([#include <dlfcn.h>],[
1156 if ((obj = dlopen("filename", 0)) != 0) {
1157 if (dlsym(obj, "symbolname") == 0) {
1161 AC_DEFINE(HAVE_LIBDL)],[
1162 AC_MSG_ERROR(Cannot link test program for libdl)])
1165 AC_MSG_ERROR(Cannot find dlsym function)
1168 dnl ---------------------------------------------------------------------------
1169 dnl CF_FUNC_MEMMOVE version: 7 updated: 2006/12/16 12:33:30
1171 dnl Check for memmove, or a bcopy that can handle overlapping copy. If neither
1172 dnl is found, add our own version of memmove to the list of objects.
1173 AC_DEFUN([CF_FUNC_MEMMOVE],
1175 AC_CHECK_FUNC(memmove,,[
1176 AC_CHECK_FUNC(bcopy,[
1177 AC_CACHE_CHECK(if bcopy does overlapping moves,cf_cv_good_bcopy,[
1180 static char data[] = "abcdefghijklmnopqrstuwwxyz";
1182 bcopy(data, temp, sizeof(data));
1183 bcopy(temp+10, temp, 15);
1184 bcopy(temp+5, temp+15, 10);
1185 ${cf_cv_main_return:-return} (strcmp(temp, "klmnopqrstuwwxypqrstuwwxyz"));
1188 [cf_cv_good_bcopy=yes],
1189 [cf_cv_good_bcopy=no],
1190 [cf_cv_good_bcopy=unknown])
1192 ],[cf_cv_good_bcopy=no])
1193 if test "$cf_cv_good_bcopy" = yes ; then
1194 AC_DEFINE(USE_OK_BCOPY)
1196 AC_DEFINE(USE_MY_MEMMOVE)
1199 dnl ---------------------------------------------------------------------------
1200 dnl CF_FUNC_NANOSLEEP version: 3 updated: 2006/12/16 12:33:30
1201 dnl -----------------
1202 dnl Check for existence of workable nanosleep() function. Some systems, e.g.,
1203 dnl AIX 4.x, provide a non-working version.
1204 AC_DEFUN([CF_FUNC_NANOSLEEP],[
1205 AC_CACHE_CHECK(if nanosleep really works,cf_cv_func_nanosleep,[
1211 #ifdef HAVE_SYS_TIME_H
1212 #include <sys/time.h>
1216 struct timespec ts1, ts2;
1219 ts1.tv_nsec = 750000000;
1223 code = nanosleep(&ts1, &ts2); /* on failure errno is ENOSYS. */
1224 ${cf_cv_main_return:-return}(code != 0);
1227 [cf_cv_func_nanosleep=yes],
1228 [cf_cv_func_nanosleep=no],
1229 [cf_cv_func_nanosleep=unknown])])
1231 test "$cf_cv_func_nanosleep" = "yes" && AC_DEFINE(HAVE_NANOSLEEP)
1233 dnl ---------------------------------------------------------------------------
1234 dnl CF_FUNC_OPENPTY version: 2 updated: 2008/04/12 19:49:01
1236 dnl Check for openpty() function, along with <pty.h> header. It may need the
1237 dnl "util" library as well.
1238 AC_DEFUN([CF_FUNC_OPENPTY],
1240 AC_CHECK_LIB(util,openpty,cf_cv_lib_util=yes,cf_cv_lib_util=no)
1241 AC_CACHE_CHECK(for openpty header,cf_cv_func_openpty,[
1242 cf_save_LIBS="$LIBS"
1243 test $cf_cv_lib_util = yes && LIBS="-lutil $LIBS"
1244 for cf_header in pty.h libutil.h util.h
1247 #include <$cf_header>
1249 int x = openpty((int *)0, (int *)0, (char *)0,
1250 (struct termios *)0, (struct winsize *)0);
1252 cf_cv_func_openpty=$cf_header
1255 cf_cv_func_openpty=no
1258 LIBS="$cf_save_LIBS"
1261 dnl ---------------------------------------------------------------------------
1262 dnl CF_FUNC_POLL version: 4 updated: 2006/12/16 12:33:30
1264 dnl See if the poll function really works. Some platforms have poll(), but
1265 dnl it does not work for terminals or files.
1266 AC_DEFUN([CF_FUNC_POLL],[
1267 AC_CACHE_CHECK(if poll really works,cf_cv_working_poll,[
1273 #include <sys/poll.h>
1276 struct pollfd myfds;
1280 myfds.events = POLLIN;
1282 ret = poll(&myfds, 1, 100);
1283 ${cf_cv_main_return:-return}(ret != 0);
1285 [cf_cv_working_poll=yes],
1286 [cf_cv_working_poll=no],
1287 [cf_cv_working_poll=unknown])])
1288 test "$cf_cv_working_poll" = "yes" && AC_DEFINE(HAVE_WORKING_POLL)
1290 dnl ---------------------------------------------------------------------------
1291 dnl CF_FUNC_TERMIOS version: 2 updated: 2000/07/22 23:37:24
1293 dnl Some old/broken variations define tcgetattr() only as a macro in
1295 AC_DEFUN([CF_FUNC_TERMIOS],[
1296 AC_REQUIRE([CF_STRUCT_TERMIOS])
1297 AC_CACHE_CHECK(for tcgetattr, cf_cv_have_tcgetattr,[
1299 #include <sys/types.h>
1300 #ifdef HAVE_UNISTD_H
1303 #ifdef HAVE_TERMIOS_H
1304 #include <termios.h>
1305 #define TTY struct termios
1307 #ifdef HAVE_TERMIO_H
1309 #define TTY struct termio
1314 tcgetattr(1, &foo);],
1315 [cf_cv_have_tcgetattr=yes],
1316 [cf_cv_have_tcgetattr=no])])
1317 test "$cf_cv_have_tcgetattr" = yes && AC_DEFINE(HAVE_TCGETATTR)
1319 dnl ---------------------------------------------------------------------------
1320 dnl CF_FUNC_VSSCANF version: 3 updated: 2001/12/19 00:50:10
1322 dnl Check for vsscanf() function, which is in c9x but generally not in earlier
1323 dnl versions of C. It is in the GNU C library, and can often be simulated by
1324 dnl other functions.
1325 AC_DEFUN([CF_FUNC_VSSCANF],
1327 AC_CACHE_CHECK(for vsscanf function or workaround,cf_cv_func_vsscanf,[
1330 #include <stdio.h>],[
1332 vsscanf("from", "%d", ap)],[cf_cv_func_vsscanf=vsscanf],[
1335 #include <stdio.h>],[
1339 strbuf._flag = _IOREAD;
1340 strbuf._ptr = strbuf._base = (unsigned char *) str;
1341 strbuf._cnt = strlen(str);
1342 strbuf._file = _NFILE;
1343 return (vfscanf(&strbuf, "%d", ap))],[cf_cv_func_vsscanf=vfscanf],[
1346 #include <stdio.h>],[
1350 strbuf._flag = _IOREAD;
1351 strbuf._ptr = strbuf._base = (unsigned char *) str;
1352 strbuf._cnt = strlen(str);
1353 strbuf._file = _NFILE;
1354 return (_doscan(&strbuf, "%d", ap))],[cf_cv_func_vsscanf=_doscan],[
1355 cf_cv_func_vsscanf=no])])])])
1357 case $cf_cv_func_vsscanf in #(vi
1358 vsscanf) AC_DEFINE(HAVE_VSSCANF);; #(vi
1359 vfscanf) AC_DEFINE(HAVE_VFSCANF);; #(vi
1360 _doscan) AC_DEFINE(HAVE__DOSCAN);;
1364 dnl ---------------------------------------------------------------------------
1365 dnl CF_GCC_ATTRIBUTES version: 11 updated: 2007/07/29 09:55:12
1366 dnl -----------------
1367 dnl Test for availability of useful gcc __attribute__ directives to quiet
1368 dnl compiler warnings. Though useful, not all are supported -- and contrary
1369 dnl to documentation, unrecognized directives cause older compilers to barf.
1370 AC_DEFUN([CF_GCC_ATTRIBUTES],
1372 if test "$GCC" = yes
1374 cat > conftest.i <<EOF
1376 #define GCC_PRINTF 0
1381 #ifndef GCC_NORETURN
1382 #define GCC_NORETURN /* nothing */
1385 #define GCC_UNUSED /* nothing */
1388 if test "$GCC" = yes
1390 AC_CHECKING([for $CC __attribute__ directives])
1391 cat > conftest.$ac_ext <<EOF
1392 #line __oline__ "${as_me-configure}"
1393 #include "confdefs.h"
1394 #include "conftest.h"
1395 #include "conftest.i"
1397 #define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
1399 #define GCC_PRINTFLIKE(fmt,var) /*nothing*/
1402 #define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
1404 #define GCC_SCANFLIKE(fmt,var) /*nothing*/
1406 extern void wow(char *,...) GCC_SCANFLIKE(1,2);
1407 extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
1408 extern void foo(void) GCC_NORETURN;
1409 int main(int argc GCC_UNUSED, char *argv[[]] GCC_UNUSED) { return 0; }
1411 for cf_attribute in scanf printf unused noreturn
1413 CF_UPPER(cf_ATTRIBUTE,$cf_attribute)
1414 cf_directive="__attribute__(($cf_attribute))"
1415 echo "checking for $CC $cf_directive" 1>&AC_FD_CC
1416 case $cf_attribute in
1418 cat >conftest.h <<EOF
1419 #define GCC_$cf_ATTRIBUTE 1
1423 cat >conftest.h <<EOF
1424 #define GCC_$cf_ATTRIBUTE $cf_directive
1428 if AC_TRY_EVAL(ac_compile); then
1429 test -n "$verbose" && AC_MSG_RESULT(... $cf_attribute)
1430 cat conftest.h >>confdefs.h
1434 fgrep define conftest.i >>confdefs.h
1439 dnl ---------------------------------------------------------------------------
1440 dnl CF_GCC_VERSION version: 4 updated: 2005/08/27 09:53:42
1442 dnl Find version of gcc
1443 AC_DEFUN([CF_GCC_VERSION],[
1444 AC_REQUIRE([AC_PROG_CC])
1446 if test "$GCC" = yes ; then
1447 AC_MSG_CHECKING(version of $CC)
1448 GCC_VERSION="`${CC} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
1449 test -z "$GCC_VERSION" && GCC_VERSION=unknown
1450 AC_MSG_RESULT($GCC_VERSION)
1453 dnl ---------------------------------------------------------------------------
1454 dnl CF_GCC_WARNINGS version: 23 updated: 2008/07/26 17:54:02
1456 dnl Check if the compiler supports useful warning options. There's a few that
1457 dnl we don't use, simply because they're too noisy:
1459 dnl -Wconversion (useful in older versions of gcc, but not in gcc 2.7.x)
1460 dnl -Wredundant-decls (system headers make this too noisy)
1461 dnl -Wtraditional (combines too many unrelated messages, only a few useful)
1462 dnl -Wwrite-strings (too noisy, but should review occasionally). This
1463 dnl is enabled for ncurses using "--enable-const".
1467 dnl $1 is an optional list of gcc warning flags that a particular
1468 dnl application might want to use, e.g., "no-unused" for
1471 dnl If $with_ext_const is "yes", add a check for -Wwrite-strings
1473 AC_DEFUN([CF_GCC_WARNINGS],
1475 AC_REQUIRE([CF_GCC_VERSION])
1476 CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
1478 cat > conftest.$ac_ext <<EOF
1479 #line __oline__ "${as_me-configure}"
1480 int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
1483 if test "$INTEL_COMPILER" = yes
1485 # The "-wdXXX" options suppress warnings:
1486 # remark #1419: external declaration in primary source file
1487 # remark #1682: implicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
1488 # remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
1489 # remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
1490 # remark #193: zero used for undefined preprocessing identifier
1491 # remark #593: variable "curs_sb_left_arrow" was set but never used
1492 # remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
1493 # remark #869: parameter "tw" was never referenced
1494 # remark #981: operands are evaluated in unspecified order
1495 # warning #269: invalid format string conversion
1497 AC_CHECKING([for $CC warning options])
1498 cf_save_CFLAGS="$CFLAGS"
1499 EXTRA_CFLAGS="-Wall"
1512 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
1513 if AC_TRY_EVAL(ac_compile); then
1514 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1515 EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
1518 CFLAGS="$cf_save_CFLAGS"
1520 elif test "$GCC" = yes
1522 AC_CHECKING([for $CC warning options])
1523 cf_save_CFLAGS="$CFLAGS"
1524 EXTRA_CFLAGS="-W -Wall"
1526 test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
1528 Wbad-function-cast \
1532 Wmissing-declarations \
1533 Wmissing-prototypes \
1537 Wstrict-prototypes \
1538 Wundef $cf_warn_CONST $1
1540 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
1541 if AC_TRY_EVAL(ac_compile); then
1542 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1543 case $cf_opt in #(vi
1545 CPPFLAGS="$CPPFLAGS -DXTSTRINGDEFINES"
1548 case $GCC_VERSION in
1550 CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
1555 EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
1558 CFLAGS="$cf_save_CFLAGS"
1562 AC_SUBST(EXTRA_CFLAGS)
1564 dnl ---------------------------------------------------------------------------
1565 dnl CF_GNAT_TRY_LINK version: 1 updated: 2004/08/21 19:02:08
1566 dnl ----------------
1567 dnl Verify that a test program compiles/links with GNAT.
1568 dnl $cf_ada_make is set to the program that compiles/links
1569 dnl $ADAFLAGS may be set to the GNAT flags.
1571 dnl $1 is the text of the spec
1572 dnl $2 is the text of the body
1573 dnl $3 is the shell command to execute if successful
1574 dnl $4 is the shell command to execute if not successful
1575 AC_DEFUN([CF_GNAT_TRY_LINK],
1578 cat >>conftest.ads <<CF_EOF
1581 cat >>conftest.adb <<CF_EOF
1584 if ( $cf_ada_make $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
1585 ifelse($3,, :,[ $3])
1591 dnl ---------------------------------------------------------------------------
1592 dnl CF_GNAT_TRY_RUN version: 3 updated: 2004/08/21 19:02:08
1594 dnl Verify that a test program compiles and runs with GNAT
1595 dnl $cf_ada_make is set to the program that compiles/links
1596 dnl $ADAFLAGS may be set to the GNAT flags.
1598 dnl $1 is the text of the spec
1599 dnl $2 is the text of the body
1600 dnl $3 is the shell command to execute if successful
1601 dnl $4 is the shell command to execute if not successful
1602 AC_DEFUN([CF_GNAT_TRY_RUN],
1605 cat >>conftest.ads <<CF_EOF
1608 cat >>conftest.adb <<CF_EOF
1611 if ( $cf_ada_make $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
1612 if ( ./conftest 1>&AC_FD_CC 2>&1 ) ; then
1613 ifelse($3,, :,[ $3])
1622 dnl ---------------------------------------------------------------------------
1623 dnl CF_GNAT_VERSION version: 12 updated: 2006/10/14 15:23:15
1625 dnl Verify version of GNAT.
1626 AC_DEFUN([CF_GNAT_VERSION],
1628 AC_MSG_CHECKING(for gnat version)
1629 cf_gnat_version=`${cf_ada_make-gnatmake} -v 2>&1 | grep '[[0-9]].[[0-9]][[0-9]]*' |\
1630 sed -e '2,$d' -e 's/[[^0-9 \.]]//g' -e 's/^[[ ]]*//' -e 's/ .*//'`
1631 AC_MSG_RESULT($cf_gnat_version)
1633 case $cf_gnat_version in
1634 3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*)
1635 cf_cv_prog_gnat_correct=yes
1637 *) echo Unsupported GNAT version $cf_gnat_version. Required is 3.11 or better. Disabling Ada95 binding.
1638 cf_cv_prog_gnat_correct=no
1641 case $cf_gnat_version in
1642 3.[[1-9]]*|[[4-9]].*)
1643 cf_compile_generics=generics
1644 cf_generic_objects="\${GENOBJS}"
1646 *) cf_compile_generics=
1651 dnl ---------------------------------------------------------------------------
1652 dnl CF_GNU_SOURCE version: 6 updated: 2005/07/09 13:23:07
1654 dnl Check if we must define _GNU_SOURCE to get a reasonable value for
1655 dnl _XOPEN_SOURCE, upon which many POSIX definitions depend. This is a defect
1656 dnl (or misfeature) of glibc2, which breaks portability of many applications,
1657 dnl since it is interwoven with GNU extensions.
1659 dnl Well, yes we could work around it...
1660 AC_DEFUN([CF_GNU_SOURCE],
1662 AC_CACHE_CHECK(if we must define _GNU_SOURCE,cf_cv_gnu_source,[
1663 AC_TRY_COMPILE([#include <sys/types.h>],[
1664 #ifndef _XOPEN_SOURCE
1667 [cf_cv_gnu_source=no],
1668 [cf_save="$CPPFLAGS"
1669 CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
1670 AC_TRY_COMPILE([#include <sys/types.h>],[
1671 #ifdef _XOPEN_SOURCE
1674 [cf_cv_gnu_source=no],
1675 [cf_cv_gnu_source=yes])
1679 test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
1681 dnl ---------------------------------------------------------------------------
1682 dnl CF_GPP_LIBRARY version: 8 updated: 2003/02/02 01:41:46
1684 dnl If we're trying to use g++, test if libg++ is installed (a rather common
1685 dnl problem :-). If we have the compiler but no library, we'll be able to
1686 dnl configure, but won't be able to build the c++ demo program.
1687 AC_DEFUN([CF_GPP_LIBRARY],
1689 cf_cxx_library=unknown
1690 case $cf_cv_system_name in #(vi
1698 if test "$GXX" = yes; then
1699 AC_MSG_CHECKING([for lib$cf_gpp_libname])
1701 LIBS="$LIBS -l$cf_gpp_libname"
1703 #include <$cf_gpp_libname/builtin.h>
1705 [two_arg_error_handler_t foo2 = lib_error_handler],
1707 CXXLIBS="$CXXLIBS -l$cf_gpp_libname"
1708 if test "$cf_gpp_libname" = cpp ; then
1709 AC_DEFINE(HAVE_GPP_BUILTIN_H)
1711 AC_DEFINE(HAVE_GXX_BUILTIN_H)
1714 #include <builtin.h>
1716 [two_arg_error_handler_t foo2 = lib_error_handler],
1718 CXXLIBS="$CXXLIBS -l$cf_gpp_libname"
1719 AC_DEFINE(HAVE_BUILTIN_H)],
1720 [cf_cxx_library=no])])
1722 AC_MSG_RESULT($cf_cxx_library)
1725 dnl ---------------------------------------------------------------------------
1726 dnl CF_GXX_VERSION version: 5 updated: 2005/08/27 09:53:42
1728 dnl Check for version of g++
1729 AC_DEFUN([CF_GXX_VERSION],[
1730 AC_REQUIRE([AC_PROG_CPP])
1732 if test "$GXX" = yes; then
1733 AC_MSG_CHECKING(version of g++)
1734 GXX_VERSION="`${CXX-g++} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
1735 test -z "$GXX_VERSION" && GXX_VERSION=unknown
1736 AC_MSG_RESULT($GXX_VERSION)
1739 dnl ---------------------------------------------------------------------------
1740 dnl CF_GXX_WARNINGS version: 5 updated: 2005/08/13 14:54:38
1742 dnl Check if the compiler supports useful warning options.
1744 dnl Most of gcc's options apply to g++, except:
1745 dnl -Wbad-function-cast
1746 dnl -Wmissing-declarations
1747 dnl -Wnested-externs
1749 dnl Omit a few (for now):
1753 dnl $1 is an optional list of g++ warning flags that a particular
1754 dnl application might want to use, e.g., "no-unused" for
1757 dnl If $with_ext_const is "yes", add a check for -Wwrite-strings
1759 AC_DEFUN([CF_GXX_WARNINGS],
1762 CF_INTEL_COMPILER(GXX,INTEL_CPLUSPLUS,CXXFLAGS)
1764 AC_REQUIRE([CF_GXX_VERSION])
1769 cat > conftest.$ac_ext <<EOF
1770 #line __oline__ "configure"
1771 int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
1774 if test "$INTEL_CPLUSPLUS" = yes
1776 # The "-wdXXX" options suppress warnings:
1777 # remark #1419: external declaration in primary source file
1778 # remark #1682: implicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
1779 # remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
1780 # remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
1781 # remark #193: zero used for undefined preprocessing identifier
1782 # remark #593: variable "curs_sb_left_arrow" was set but never used
1783 # remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
1784 # remark #869: parameter "tw" was never referenced
1785 # remark #981: operands are evaluated in unspecified order
1786 # warning #269: invalid format string conversion
1788 AC_CHECKING([for $CC warning options])
1789 cf_save_CXXFLAGS="$CXXFLAGS"
1790 EXTRA_CXXFLAGS="-Wall"
1803 CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -$cf_opt"
1804 if AC_TRY_EVAL(ac_compile); then
1805 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1806 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
1809 CXXFLAGS="$cf_save_CXXFLAGS"
1811 elif test "$GXX" = yes
1813 AC_CHECKING([for $CXX warning options])
1814 cf_save_CXXFLAGS="$CXXFLAGS"
1815 EXTRA_CXXFLAGS="-W -Wall"
1816 cf_gxx_extra_warnings=""
1817 test "$with_ext_const" = yes && cf_gxx_extra_warnings="Wwrite-strings"
1818 case "$GCC_VERSION" in
1822 cf_gxx_extra_warnings="$cf_gxx_extra_warnings Weffc++"
1828 Woverloaded-virtual \
1834 Wmissing-prototypes \
1837 Wstrict-prototypes \
1838 Wundef $cf_gxx_extra_warnings $1
1840 CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -Werror -$cf_opt"
1841 if AC_TRY_EVAL(ac_compile); then
1842 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1843 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
1845 test -n "$verbose" && AC_MSG_RESULT(... no -$cf_opt)
1848 CXXFLAGS="$cf_save_CXXFLAGS"
1853 AC_SUBST(EXTRA_CXXFLAGS)
1855 dnl ---------------------------------------------------------------------------
1856 dnl CF_HASHED_DB version: 3 updated: 2007/11/24 17:43:37
1858 dnl Look for an instance of the Berkeley hashed database.
1860 dnl $1 = optional parameter, to specify install-prefix for the database.
1861 AC_DEFUN([CF_HASHED_DB],
1868 if test -d "$1" ; then
1869 CF_ADD_INCDIR($1/include)
1870 CF_ADD_LIBDIR($1/lib)
1874 AC_CHECK_HEADER(db.h,[
1875 CF_HASHED_DB_VERSION
1876 if test "$cf_cv_hashed_db_version" = unknown ; then
1877 AC_MSG_ERROR(Cannot determine version of db)
1880 if test "$cf_cv_hashed_db_libs" = unknown ; then
1881 AC_MSG_ERROR(Cannot determine library for db)
1882 elif test "$cf_cv_hashed_db_libs" != default ; then
1883 LIBS="-l$cf_cv_hashed_db_libs $LIBS"
1887 AC_MSG_ERROR(Cannot find db.h)
1890 dnl ---------------------------------------------------------------------------
1891 dnl CF_HASHED_DB_LIBS version: 8 updated: 2008/08/04 06:18:06
1892 dnl -----------------
1893 dnl Given that we have the header and version for hashed database, find the
1894 dnl library information.
1895 AC_DEFUN([CF_HASHED_DB_LIBS],
1897 AC_CACHE_CHECK(for db libraries, cf_cv_hashed_db_libs,[
1898 cf_cv_hashed_db_libs=unknown
1899 for cf_db_libs in "" db$cf_cv_hashed_db_version db-$cf_cv_hashed_db_version db ''
1901 cf_save_libs="$LIBS"
1902 if test -n "$cf_db_libs"; then
1903 LIBS="-l$cf_db_libs $LIBS"
1905 CF_MSG_LOG(checking for library "$cf_db_libs")
1907 $ac_includes_default
1910 char *path = "/tmp/foo";
1911 #ifdef DB_VERSION_MAJOR
1912 #if DB_VERSION_MAJOR >= 4
1914 db_create(&result, NULL, 0);
1915 result->open(result,
1922 #elif DB_VERSION_MAJOR >= 3
1924 db_create(&result, NULL, 0);
1925 result->open(result,
1931 #elif DB_VERSION_MAJOR >= 2
1940 #endif /* DB_VERSION_MAJOR */
1942 DB *result = dbopen(path,
1948 ${cf_cv_main_return:-return}(result != 0)
1950 if test -n "$cf_db_libs" ; then
1951 cf_cv_hashed_db_libs=$cf_db_libs
1953 cf_cv_hashed_db_libs=default
1955 LIBS="$cf_save_libs"
1958 LIBS="$cf_save_libs"
1962 dnl ---------------------------------------------------------------------------
1963 dnl CF_HASHED_DB_VERSION version: 3 updated: 2007/12/01 15:01:37
1964 dnl --------------------
1965 dnl Given that we have the header file for hashed database, find the version
1967 AC_DEFUN([CF_HASHED_DB_VERSION],
1969 AC_CACHE_CHECK(for version of db, cf_cv_hashed_db_version,[
1970 cf_cv_hashed_db_version=unknown
1972 for cf_db_version in 1 2 3 4 5
1974 CF_MSG_LOG(checking for db version $cf_db_version)
1976 $ac_includes_default
1979 #ifdef DB_VERSION_MAJOR
1980 /* db2 (DB_VERSION_MAJOR=2) has also DB_VERSION_MINOR, tested with 7 */
1981 #if $cf_db_version == DB_VERSION_MAJOR
1987 #if $cf_db_version == 1
1988 /* ok: assuming this is DB 1.8.5 */
1994 cf_cv_hashed_db_version=$cf_db_version
2000 dnl ---------------------------------------------------------------------------
2001 dnl CF_HEADER_PATH version: 8 updated: 2002/11/10 14:46:59
2003 dnl Construct a search-list for a nonstandard header-file
2004 AC_DEFUN([CF_HEADER_PATH],
2005 [CF_SUBDIR_PATH($1,$2,include)
2006 test "$includedir" != NONE && \
2007 test "$includedir" != "/usr/include" && \
2008 test -d "$includedir" && {
2009 test -d $includedir && $1="[$]$1 $includedir"
2010 test -d $includedir/$2 && $1="[$]$1 $includedir/$2"
2013 test "$oldincludedir" != NONE && \
2014 test "$oldincludedir" != "/usr/include" && \
2015 test -d "$oldincludedir" && {
2016 test -d $oldincludedir && $1="[$]$1 $oldincludedir"
2017 test -d $oldincludedir/$2 && $1="[$]$1 $oldincludedir/$2"
2021 dnl ---------------------------------------------------------------------------
2022 dnl CF_HELP_MESSAGE version: 3 updated: 1998/01/14 10:56:23
2024 dnl Insert text into the help-message, for readability, from AC_ARG_WITH.
2025 AC_DEFUN([CF_HELP_MESSAGE],
2026 [AC_DIVERT_HELP([$1])dnl
2028 dnl ---------------------------------------------------------------------------
2029 dnl CF_INCLUDE_DIRS version: 5 updated: 2006/10/14 15:23:15
2031 dnl Construct the list of include-options according to whether we're building
2032 dnl in the source directory or using '--srcdir=DIR' option. If we're building
2033 dnl with gcc, don't append the includedir if it happens to be /usr/include,
2034 dnl since that usually breaks gcc's shadow-includes.
2035 AC_DEFUN([CF_INCLUDE_DIRS],
2037 CPPFLAGS="-I. -I../include $CPPFLAGS"
2038 if test "$srcdir" != "."; then
2039 CPPFLAGS="-I\${srcdir}/../include $CPPFLAGS"
2041 if test "$GCC" != yes; then
2042 CPPFLAGS="$CPPFLAGS -I\${includedir}"
2043 elif test "$includedir" != "/usr/include"; then
2044 if test "$includedir" = '${prefix}/include' ; then
2045 if test $prefix != /usr ; then
2046 CPPFLAGS="$CPPFLAGS -I\${includedir}"
2049 CPPFLAGS="$CPPFLAGS -I\${includedir}"
2054 dnl ---------------------------------------------------------------------------
2055 dnl CF_INTEL_COMPILER version: 3 updated: 2005/08/06 18:37:29
2056 dnl -----------------
2057 dnl Check if the given compiler is really the Intel compiler for Linux. It
2058 dnl tries to imitate gcc, but does not return an error when it finds a mismatch
2059 dnl between prototypes, e.g., as exercised by CF_MISSING_CHECK.
2061 dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
2062 dnl ensure that it is not mistaken for gcc/g++. It is normally invoked from
2063 dnl the wrappers for gcc and g++ warnings.
2065 dnl $1 = GCC (default) or GXX
2066 dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS
2067 dnl $3 = CFLAGS (default) or CXXFLAGS
2068 AC_DEFUN([CF_INTEL_COMPILER],[
2069 ifelse($2,,INTEL_COMPILER,[$2])=no
2071 if test "$ifelse($1,,[$1],GCC)" = yes ; then
2074 AC_MSG_CHECKING(if this is really Intel ifelse($1,GXX,C++,C) compiler)
2075 cf_save_CFLAGS="$ifelse($3,,CFLAGS,[$3])"
2076 ifelse($3,,CFLAGS,[$3])="$ifelse($3,,CFLAGS,[$3]) -no-gcc"
2078 #ifdef __INTEL_COMPILER
2082 ],[ifelse($2,,INTEL_COMPILER,[$2])=yes
2083 cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
2085 ifelse($3,,CFLAGS,[$3])="$cf_save_CFLAGS"
2086 AC_MSG_RESULT($ifelse($2,,INTEL_COMPILER,[$2]))
2091 dnl ---------------------------------------------------------------------------
2092 dnl CF_ISASCII version: 3 updated: 2000/08/12 23:18:52
2094 dnl Check if we have either a function or macro for 'isascii()'.
2095 AC_DEFUN([CF_ISASCII],
2097 AC_MSG_CHECKING(for isascii)
2098 AC_CACHE_VAL(cf_cv_have_isascii,[
2099 AC_TRY_LINK([#include <ctype.h>],[int x = isascii(' ')],
2100 [cf_cv_have_isascii=yes],
2101 [cf_cv_have_isascii=no])
2103 AC_MSG_RESULT($cf_cv_have_isascii)
2104 test "$cf_cv_have_isascii" = yes && AC_DEFINE(HAVE_ISASCII)
2106 dnl ---------------------------------------------------------------------------
2107 dnl CF_LARGEFILE version: 7 updated: 2007/06/02 11:58:50
2109 dnl Add checks for large file support.
2110 AC_DEFUN([CF_LARGEFILE],[
2111 ifdef([AC_FUNC_FSEEKO],[
2113 if test "$enable_largefile" != no ; then
2116 # Normally we would collect these definitions in the config.h,
2117 # but (like _XOPEN_SOURCE), some environments rely on having these
2118 # defined before any of the system headers are included. Another
2119 # case comes up with C++, e.g., on AIX the compiler compiles the
2120 # header files by themselves before looking at the body files it is
2121 # told to compile. For ncurses, those header files do not include
2123 test "$ac_cv_sys_large_files" != no && CPPFLAGS="$CPPFLAGS -D_LARGE_FILES "
2124 test "$ac_cv_sys_largefile_source" != no && CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE "
2125 test "$ac_cv_sys_file_offset_bits" != no && CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits "
2127 AC_CACHE_CHECK(whether to use struct dirent64, cf_cv_struct_dirent64,[
2129 #include <sys/types.h>
2132 /* if transitional largefile support is setup, this is true */
2133 extern struct dirent64 * readdir(DIR *);
2134 struct dirent64 *x = readdir((DIR *)0);
2135 struct dirent *y = readdir((DIR *)0);
2138 [cf_cv_struct_dirent64=yes],
2139 [cf_cv_struct_dirent64=no])
2141 test "$cf_cv_struct_dirent64" = yes && AC_DEFINE(HAVE_STRUCT_DIRENT64)
2145 dnl ---------------------------------------------------------------------------
2146 dnl CF_LDFLAGS_STATIC version: 4 updated: 2008/10/18 17:58:20
2147 dnl -----------------
2148 dnl Check for compiler/linker flags used to temporarily force usage of static
2149 dnl libraries. This depends on the compiler and platform. Use this to help
2150 dnl ensure that the linker picks up a given library based on its position in
2151 dnl the list of linker options and libraries.
2152 AC_DEFUN([CF_LDFLAGS_STATIC],[
2154 if test "$GCC" = yes ; then
2155 case $cf_cv_system_name in #(
2156 OS/2*|os2*|aix[[45]]*) #( vi
2160 *) #( normally, except when broken
2161 LDFLAGS_STATIC=-static
2162 LDFLAGS_SHARED=-dynamic
2166 case $cf_cv_system_name in #(
2167 aix[[45]]*) #( from ld manpage
2168 LDFLAGS_STATIC=-bstatic
2169 LDFLAGS_SHARED=-bdynamic
2171 hpux*) #( from ld manpage for hpux10.20, hpux11.11
2172 # We could also use just "archive" and "shared".
2173 LDFLAGS_STATIC=-Wl,-a,archive_shared
2174 LDFLAGS_SHARED=-Wl,-a,shared_archive
2176 irix*) #( from ld manpage IRIX64
2177 LDFLAGS_STATIC=-Bstatic
2178 LDFLAGS_SHARED=-Bdynamic
2180 osf[[45]]*) #( from ld manpage osf4.0d, osf5.1
2181 # alternative "-oldstyle_liblookup" (not in cc manpage)
2182 LDFLAGS_STATIC=-noso
2183 LDFLAGS_SHARED=-so_archive
2186 LDFLAGS_STATIC=-Bstatic
2187 LDFLAGS_SHARED=-Bdynamic
2192 AC_SUBST(LDFLAGS_STATIC)
2193 AC_SUBST(LDFLAGS_SHARED)
2195 dnl ---------------------------------------------------------------------------
2196 dnl CF_LIBRARY_PATH version: 7 updated: 2002/11/10 14:46:59
2198 dnl Construct a search-list for a nonstandard library-file
2199 AC_DEFUN([CF_LIBRARY_PATH],
2200 [CF_SUBDIR_PATH($1,$2,lib)])dnl
2201 dnl ---------------------------------------------------------------------------
2202 dnl CF_LIB_PREFIX version: 8 updated: 2008/09/13 11:34:16
2204 dnl Compute the library-prefix for the given host system
2205 dnl $1 = variable to set
2206 AC_DEFUN([CF_LIB_PREFIX],
2208 case $cf_cv_system_name in #(vi
2215 ifelse($1,,,[$1=$LIB_PREFIX])
2216 AC_SUBST(LIB_PREFIX)
2218 dnl ---------------------------------------------------------------------------
2219 dnl CF_LIB_RULES version: 53 updated: 2008/09/20 19:51:59
2221 dnl Append definitions and rules for the given models to the subdirectory
2222 dnl Makefiles, and the recursion rule for the top-level Makefile. If the
2223 dnl subdirectory is a library-source directory, modify the LIBS_TO_MAKE list in
2224 dnl the corresponding makefile to list the models that we'll generate.
2226 dnl For shared libraries, make a list of symbolic links to construct when
2227 dnl generating each library. The convention used for Linux is the simplest
2230 dnl lib<name>.so.<major> ->
2231 dnl lib<name>.so.<maj>.<minor>
2232 AC_DEFUN([CF_LIB_RULES],
2234 CF_LIB_PREFIX(cf_prefix)
2235 AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
2237 if test $cf_cv_shlib_version = cygdll ; then
2238 TINFO_NAME=$TINFO_ARG_SUFFIX
2242 for cf_dir in $SRC_SUBDIRS
2244 if test ! -d $srcdir/$cf_dir ; then
2246 elif test -f $srcdir/$cf_dir/modules; then
2250 for cf_item in $cf_LIST_MODELS
2252 CF_LIB_SUFFIX($cf_item,cf_suffix,cf_depsuf)
2253 if test $cf_item = shared ; then
2254 if test "$cf_cv_do_symlinks" = yes ; then
2255 case "$cf_cv_shlib_version" in #(vi
2257 case "$cf_cv_system_name" in #(vi
2259 case .${LIB_SUFFIX} in
2261 cf_suffix=`echo $cf_suffix | sed 's/^w//'`
2262 cf_suffix=w'.${REL_VERSION}'"$cf_suffix"
2265 cf_suffix='.${REL_VERSION}'"$cf_suffix"
2269 *) cf_suffix="$cf_suffix"'.${REL_VERSION}' ;;
2273 case "$cf_cv_system_name" in #(vi
2275 case .${LIB_SUFFIX} in
2277 cf_suffix=`echo $cf_suffix | sed 's/^w//'`
2278 cf_suffix=w'.${ABI_VERSION}'"$cf_suffix"
2281 cf_suffix='.${ABI_VERSION}'"$cf_suffix"
2285 *) cf_suffix="$cf_suffix"'.${ABI_VERSION}' ;;
2290 # cygwin needs import library, and has unique naming convention
2291 # use autodetected ${cf_prefix} for import lib and static lib, but
2292 # use 'cyg' prefix for shared lib.
2293 if test $cf_cv_shlib_version = cygdll ; then
2294 cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
2295 LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/cyg${cf_dir}${cf_cygsuf}"
2299 LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/${cf_prefix}${cf_dir}${cf_suffix}"
2302 if test $cf_dir = ncurses ; then
2303 cf_subsets="$LIB_SUBSETS"
2304 cf_r_parts="$cf_subsets"
2305 cf_liblist="$LIBS_TO_MAKE"
2307 while test -n "$cf_r_parts"
2309 cf_l_parts=`echo "$cf_r_parts" |sed -e 's/ .*$//'`
2310 cf_r_parts=`echo "$cf_r_parts" |sed -e 's/^[[^ ]]* //'`
2311 if test "$cf_l_parts" != "$cf_r_parts" ; then
2313 case $cf_l_parts in #(vi
2315 cf_item=`echo $cf_liblist |sed -e s%${LIB_NAME}${LIB_SUFFIX}%${TINFO_LIB_SUFFIX}%g`
2318 cf_item=`echo $cf_liblist |sed -e s%${LIB_NAME}${LIB_SUFFIX}%${TICS_LIB_SUFFIX}%g`
2324 if test -n "$cf_item"; then
2325 LIBS_TO_MAKE="$cf_item $LIBS_TO_MAKE"
2332 cf_subsets=`echo "$LIB_SUBSETS" | sed -e 's/^termlib.* //'`
2335 sed -e "s%@LIBS_TO_MAKE@%$LIBS_TO_MAKE%" \
2336 -e "s%@SHARED_LIB@%$SHARED_LIB%" \
2337 $cf_dir/Makefile >$cf_dir/Makefile.out
2338 mv $cf_dir/Makefile.out $cf_dir/Makefile
2340 $AWK -f $srcdir/mk-0th.awk \
2341 libname="${cf_dir}${LIB_SUFFIX}" subsets="$LIB_SUBSETS" \
2342 $srcdir/$cf_dir/modules >>$cf_dir/Makefile
2344 for cf_subset in $cf_subsets
2347 for cf_item in $cf_LIST_MODELS
2349 echo "Appending rules for ${cf_item} model (${cf_dir}: ${cf_subset})"
2350 CF_UPPER(cf_ITEM,$cf_item)
2351 CF_LIB_SUFFIX($cf_item,cf_suffix,cf_depsuf)
2352 CF_OBJ_SUBDIR($cf_item,cf_subdir)
2354 # Test for case where we build libtinfo with a different name.
2356 if test $cf_dir = ncurses ; then
2359 cf_libname=${cf_libname}$LIB_SUFFIX
2362 cf_libname=$TINFO_LIB_SUFFIX
2365 cf_libname=$TICS_LIB_SUFFIX
2369 cf_libname=${cf_libname}$LIB_SUFFIX
2371 if test -n "${DFT_ARG_SUFFIX}" ; then
2372 # undo $LIB_SUFFIX add-on in CF_LIB_SUFFIX
2373 cf_suffix=`echo $cf_suffix |sed -e "s%^${LIB_SUFFIX}%%"`
2376 # These dependencies really are for development, not
2377 # builds, but they are useful in porting, too.
2378 cf_depend="../include/ncurses_cfg.h"
2379 if test "$srcdir" = "."; then
2382 cf_reldir="\${srcdir}"
2385 if test -f $srcdir/$cf_dir/$cf_dir.priv.h; then
2386 cf_depend="$cf_depend $cf_reldir/$cf_dir.priv.h"
2387 elif test -f $srcdir/$cf_dir/curses.priv.h; then
2388 cf_depend="$cf_depend $cf_reldir/curses.priv.h"
2392 old_cf_suffix="$cf_suffix"
2393 if test "$cf_cv_shlib_version_infix" = yes ; then
2394 if test -n "$LIB_SUFFIX" ; then
2397 cf_libname=`echo $cf_libname | sed 's/w$//'`
2398 cf_suffix=`echo $cf_suffix | sed 's/^w//'`
2405 $AWK -f $srcdir/mk-1st.awk \
2406 name=${cf_libname}${cf_dir_suffix} \
2407 traces=$LIB_TRACING \
2413 TermlibRoot=$TINFO_NAME \
2414 TermlibSuffix=$TINFO_SUFFIX \
2415 ShlibVer=$cf_cv_shlib_version \
2416 ShlibVerInfix=$cf_cv_shlib_version_infix \
2417 ReLink=${cf_cv_do_relink-no} \
2418 DoLinks=$cf_cv_do_symlinks \
2419 rmSoLocs=$cf_cv_rm_so_locs \
2420 ldconfig="$LDCONFIG" \
2421 overwrite=$WITH_OVERWRITE \
2422 depend="$cf_depend" \
2424 $srcdir/$cf_dir/modules >>$cf_dir/Makefile
2426 cf_suffix="$old_cf_suffix"
2428 for cf_subdir2 in $cf_subdirs lib
2430 test $cf_subdir = $cf_subdir2 && break
2432 test "${cf_subset}.${cf_subdir2}" != "${cf_subset}.${cf_subdir}" && \
2433 $AWK -f $srcdir/mk-2nd.awk \
2435 traces=$LIB_TRACING \
2441 crenames=$cf_cv_prog_CC_c_o \
2442 cxxrenames=$cf_cv_prog_CXX_c_o \
2443 $srcdir/$cf_dir/modules >>$cf_dir/Makefile
2444 cf_subdirs="$cf_subdirs $cf_subdir"
2449 echo ' cd '$cf_dir' && ${MAKE} ${CF_MFLAGS} [$]@' >>Makefile
2452 for cf_dir in $SRC_SUBDIRS
2454 if test ! -d $srcdir/$cf_dir ; then
2458 if test -f $cf_dir/Makefile ; then
2461 echo 'libs \' >> Makefile
2462 echo 'install.libs \' >> Makefile
2463 echo 'uninstall.libs ::' >> Makefile
2464 echo ' cd '$cf_dir' && ${MAKE} ${CF_MFLAGS} [$]@' >> Makefile
2469 if test -f $srcdir/$cf_dir/modules; then
2471 if test -f $srcdir/$cf_dir/headers; then
2472 cat >> Makefile <<CF_EOF
2474 uninstall.includes \\
2477 if test "$cf_dir" != "c++" ; then
2478 echo 'lint \' >> Makefile
2480 cat >> Makefile <<CF_EOF
2486 uninstall.$cf_dir ::
2487 cd $cf_dir && \${MAKE} \${CF_MFLAGS} \[$]@
2489 elif test -f $srcdir/$cf_dir/headers; then
2490 cat >> Makefile <<CF_EOF
2496 uninstall.includes ::
2497 cd $cf_dir && \${MAKE} \${CF_MFLAGS} \[$]@
2502 cat >> Makefile <<CF_EOF
2504 install.libs uninstall.libs \\
2505 install.data uninstall.data ::
2506 $MAKE_TERMINFO cd misc && \${MAKE} \${CF_MFLAGS} \[$]@
2510 cd man && \${MAKE} \${CF_MFLAGS} \[$]@
2513 rm -f config.cache config.log config.status Makefile include/ncurses_cfg.h
2514 rm -f headers.sh headers.sed mk_shared_lib.sh
2515 rm -rf \${DIRS_TO_MAKE}
2518 # Special case: tack's manpage lives in its own directory.
2519 if test -d tack ; then
2520 if test -f $srcdir/$tack.h; then
2521 cat >> Makefile <<CF_EOF
2525 cd tack && \${MAKE} \${CF_MFLAGS} \[$]@
2530 dnl If we're installing into a subdirectory of /usr/include, etc., we should
2531 dnl prepend the subdirectory's name to the "#include" paths. It won't hurt
2532 dnl anything, and will make it more standardized. It's awkward to decide this
2533 dnl at configuration because of quoting, so we'll simply make all headers
2534 dnl installed via a script that can do the right thing.
2536 rm -f headers.sed headers.sh
2538 dnl ( generating this script makes the makefiles a little tidier :-)
2539 echo creating headers.sh
2540 cat >headers.sh <<CF_EOF
2542 # This shell script is generated by the 'configure' script. It is invoked in a
2543 # subdirectory of the build tree. It generates a sed-script in the parent
2544 # directory that is used to adjust includes for header files that reside in a
2545 # subdirectory of /usr/include, etc.
2547 while test \[$]# != 3
2549 PRG="\$PRG \[$]1"; shift
2554 TMPSRC=\${TMPDIR-/tmp}/\`basename \$SRC\`\$\$
2555 TMPSED=\${TMPDIR-/tmp}/headers.sed\$\$
2556 echo installing \$SRC in \$DST
2559 if test $WITH_CURSES_H = yes; then
2560 cat >>headers.sh <<CF_EOF
2563 END=\`basename \$DST\`
2564 for i in \`cat \$REF/../*/headers |fgrep -v "#"\`
2566 NAME=\`basename \$i\`
2567 echo "s/<\$NAME>/<\$END\/\$NAME>/" >> \$TMPSED
2577 cat >>headers.sh <<CF_EOF
2580 END=\`basename \$DST\`
2581 for i in \`cat \$REF/../*/headers |fgrep -v "#"\`
2583 NAME=\`basename \$i\`
2584 if test "\$NAME" = "curses.h"
2586 echo "s/<curses.h>/<ncurses.h>/" >> \$TMPSED
2589 echo "s/<\$NAME>/<\$END\/\$NAME>/" >> \$TMPSED
2593 echo "s/<curses.h>/<ncurses.h>/" >> \$TMPSED
2598 cat >>headers.sh <<CF_EOF
2600 sed -f \$TMPSED \$SRC > \$TMPSRC
2601 NAME=\`basename \$SRC\`
2603 if test $WITH_CURSES_H != yes; then
2604 cat >>headers.sh <<CF_EOF
2605 test "\$NAME" = "curses.h" && NAME=ncurses.h
2608 cat >>headers.sh <<CF_EOF
2609 # Just in case someone gzip'd manpages, remove the conflicting copy.
2610 test -f \$DST/\$NAME.gz && rm -f \$DST/\$NAME.gz
2612 eval \$PRG \$TMPSRC \$DST/\$NAME
2613 rm -f \$TMPSRC \$TMPSED
2616 chmod 0755 headers.sh
2618 for cf_dir in $SRC_SUBDIRS
2620 if test ! -d $srcdir/$cf_dir ; then
2624 if test -f $srcdir/$cf_dir/headers; then
2625 $AWK -f $srcdir/mk-hdr.awk \
2626 subset="$LIB_SUBSETS" \
2627 compat="$WITH_CURSES_H" \
2628 $srcdir/$cf_dir/headers >>$cf_dir/Makefile
2631 if test -f $srcdir/$cf_dir/modules; then
2632 if test "$cf_dir" != "c++" ; then
2633 cat >>$cf_dir/Makefile <<"CF_EOF"
2634 depend : ${AUTO_SRC}
2635 makedepend -- ${CPPFLAGS} -- ${C_SRC}
2637 # DO NOT DELETE THIS LINE -- make depend depends on it.
2644 dnl ---------------------------------------------------------------------------
2645 dnl CF_LIB_SONAME version: 3 updated: 2006/12/16 15:55:46
2647 dnl Find the and soname for the given shared library. Set the cache variable
2648 dnl cf_cv_$3_soname to this, unless it is not found. Then set the cache
2649 dnl variable to "unknown".
2653 dnl $3 = library name
2654 AC_DEFUN([CF_LIB_SONAME],
2656 AC_CACHE_CHECK(for soname of $3 library,cf_cv_$3_soname,[
2658 cf_cv_$3_soname=unknown
2659 if test "$cross_compiling" != yes ; then
2660 cat >conftest.$ac_ext <<CF_EOF
2665 ${cf_cv_main_return:-return}(0);
2668 cf_save_LIBS="$LIBS"
2670 if AC_TRY_EVAL(ac_compile) ; then
2671 if AC_TRY_EVAL(ac_link) ; then
2672 cf_cv_$3_soname=`ldd conftest$ac_exeext 2>/dev/null | sed -e 's,^.*/,,' -e 's, .*$,,' | fgrep lib$3.`
2673 test -z "$cf_cv_$3_soname" && cf_cv_$3_soname=unknown
2677 LIBS="$cf_save_LIBS"
2681 dnl ---------------------------------------------------------------------------
2682 dnl CF_LIB_SUFFIX version: 15 updated: 2008/09/13 11:54:48
2684 dnl Compute the library file-suffix from the given model name
2686 dnl $2 = variable to set (the nominal library suffix)
2687 dnl $3 = dependency variable to set (actual filename)
2688 dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
2689 AC_DEFUN([CF_LIB_SUFFIX],
2691 AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
2710 case $cf_cv_system_name in
2736 test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
2737 test -n "$LIB_SUFFIX" && $3="${LIB_SUFFIX}[$]{$3}"
2739 dnl ---------------------------------------------------------------------------
2740 dnl CF_LIB_TYPE version: 4 updated: 2000/10/20 22:57:49
2742 dnl Compute the string to append to -library from the given model name
2744 dnl $2 = variable to set
2745 dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
2746 AC_DEFUN([CF_LIB_TYPE],
2755 test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
2757 dnl ---------------------------------------------------------------------------
2758 dnl CF_LINK_DATAONLY version: 8 updated: 2006/12/16 12:33:30
2759 dnl ----------------
2760 dnl Some systems have a non-ANSI linker that doesn't pull in modules that have
2761 dnl only data (i.e., no functions), for example NeXT. On those systems we'll
2762 dnl have to provide wrappers for global tables to ensure they're linked
2764 AC_DEFUN([CF_LINK_DATAONLY],
2766 AC_MSG_CHECKING([if data-only library module links])
2767 AC_CACHE_VAL(cf_cv_link_dataonly,[
2769 cat >conftest.$ac_ext <<EOF
2770 #line __oline__ "configure"
2771 int testdata[[3]] = { 123, 456, 789 };
2773 if AC_TRY_EVAL(ac_compile) ; then
2774 mv conftest.o data.o && \
2775 ( $AR $AR_OPTS conftest.a data.o ) 2>&AC_FD_CC 1>/dev/null
2777 rm -f conftest.$ac_ext data.o
2778 cat >conftest.$ac_ext <<EOF
2779 #line __oline__ "configure"
2783 ${cf_cv_main_return:-return}(1); /* I'm told this linker is broken */
2785 extern int testdata[[3]];
2786 return testdata[[0]] == 123
2787 && testdata[[1]] == 456
2788 && testdata[[2]] == 789;
2792 if AC_TRY_EVAL(ac_compile); then
2793 mv conftest.o func.o && \
2794 ( $AR $AR_OPTS conftest.a func.o ) 2>&AC_FD_CC 1>/dev/null
2796 rm -f conftest.$ac_ext func.o
2797 ( eval $RANLIB conftest.a ) 2>&AC_FD_CC >/dev/null
2799 LIBS="conftest.a $LIBS"
2803 extern int testfunc();
2804 ${cf_cv_main_return:-return} (!testfunc());
2807 [cf_cv_link_dataonly=yes],
2808 [cf_cv_link_dataonly=no],
2809 [cf_cv_link_dataonly=unknown])
2812 AC_MSG_RESULT($cf_cv_link_dataonly)
2814 if test "$cf_cv_link_dataonly" = no ; then
2815 AC_DEFINE(BROKEN_LINKER)
2820 dnl ---------------------------------------------------------------------------
2821 dnl CF_LINK_FUNCS version: 7 updated: 2006/12/16 12:33:30
2823 dnl Most Unix systems have both link and symlink, a few don't have symlink.
2824 dnl A few non-Unix systems implement symlink, but not link.
2825 dnl A few non-systems implement neither (or have nonfunctional versions).
2826 AC_DEFUN([CF_LINK_FUNCS],
2832 if test "$cross_compiling" = yes ; then
2837 AC_CACHE_CHECK(if link/symlink functions work,cf_cv_link_funcs,[
2839 for cf_func in link symlink ; do
2841 #include <sys/types.h>
2842 #include <sys/stat.h>
2843 #ifdef HAVE_UNISTD_H
2849 char *src = "config.log";
2850 char *dst = "conftest.chk";
2855 fail = ($cf_func("config.log", "conftest.chk") < 0)
2856 || (stat(dst, &dst_sb) < 0)
2857 || (dst_sb.st_mtime != src_sb.st_mtime);
2863 ${cf_cv_main_return:-return} (fail);
2866 cf_cv_link_funcs="$cf_cv_link_funcs $cf_func"
2867 eval 'ac_cv_func_'$cf_func'=yes'],[
2868 eval 'ac_cv_func_'$cf_func'=no'],[
2869 eval 'ac_cv_func_'$cf_func'=error'])
2871 test -z "$cf_cv_link_funcs" && cf_cv_link_funcs=no
2873 test "$ac_cv_func_link" = yes && AC_DEFINE(HAVE_LINK)
2874 test "$ac_cv_func_symlink" = yes && AC_DEFINE(HAVE_SYMLINK)
2877 dnl ---------------------------------------------------------------------------
2878 dnl CF_MAIN_RETURN version: 1 updated: 2006/12/10 09:51:54
2880 dnl Check if a return from main to the shell actually returns the same exit
2881 dnl code. This is true for almost any POSIX environment.
2883 dnl Some very old environments did not flush stdout, etc., on an exit. That
2884 dnl would be a useful case to test for also.
2885 AC_DEFUN([CF_MAIN_RETURN],
2887 cf_cv_main_return=return
2889 dnl ---------------------------------------------------------------------------
2890 dnl CF_MAKEFLAGS version: 12 updated: 2006/10/21 08:27:03
2892 dnl Some 'make' programs support ${MAKEFLAGS}, some ${MFLAGS}, to pass 'make'
2893 dnl options to lower-levels. It's very useful for "make -n" -- if we have it.
2894 dnl (GNU 'make' does both, something POSIX 'make', which happens to make the
2895 dnl ${MAKEFLAGS} variable incompatible because it adds the assignments :-)
2896 AC_DEFUN([CF_MAKEFLAGS],
2898 AC_CACHE_CHECK(for makeflags variable, cf_cv_makeflags,[
2900 for cf_option in '-${MAKEFLAGS}' '${MFLAGS}'
2902 cat >cf_makeflags.tmp <<CF_EOF
2905 @ echo '.$cf_option'
2907 cf_result=`${MAKE-make} -k -f cf_makeflags.tmp 2>/dev/null | sed -e 's,[[ ]]*$,,'`
2908 case "$cf_result" in
2910 cf_result=`${MAKE-make} -k -f cf_makeflags.tmp CC=cc 2>/dev/null`
2911 case "$cf_result" in
2912 .*CC=*) cf_cv_makeflags=
2914 *) cf_cv_makeflags=$cf_option
2920 *) echo "given option \"$cf_option\", no match \"$cf_result\""
2924 rm -f cf_makeflags.tmp
2927 AC_SUBST(cf_cv_makeflags)
2929 dnl ---------------------------------------------------------------------------
2930 dnl CF_MAKE_TAGS version: 2 updated: 2000/10/04 09:18:40
2932 dnl Generate tags/TAGS targets for makefiles. Do not generate TAGS if we have
2933 dnl a monocase filesystem.
2934 AC_DEFUN([CF_MAKE_TAGS],[
2935 AC_REQUIRE([CF_MIXEDCASE_FILENAMES])
2936 AC_CHECK_PROG(MAKE_LOWER_TAGS, ctags, yes, no)
2938 if test "$cf_cv_mixedcase" = yes ; then
2939 AC_CHECK_PROG(MAKE_UPPER_TAGS, etags, yes, no)
2944 if test "$MAKE_UPPER_TAGS" = yes ; then
2949 AC_SUBST(MAKE_UPPER_TAGS)
2951 if test "$MAKE_LOWER_TAGS" = yes ; then
2956 AC_SUBST(MAKE_LOWER_TAGS)
2958 dnl ---------------------------------------------------------------------------
2959 dnl CF_MANPAGE_FORMAT version: 7 updated: 2003/12/20 19:30:34
2960 dnl -----------------
2961 dnl Option to allow user to override automatic configuration of manpage format.
2962 dnl There are several special cases:
2964 dnl gzip - man checks for, can display gzip'd files
2965 dnl compress - man checks for, can display compressed files
2966 dnl BSDI - files in the cat-directories are suffixed ".0"
2967 dnl formatted - installer should format (put files in cat-directory)
2968 dnl catonly - installer should only format, e.g., for a turnkey system.
2970 dnl There are other configurations which this macro does not test, e.g., HPUX's
2971 dnl compressed manpages (but uncompressed manpages are fine, and HPUX's naming
2972 dnl convention would not match our use).
2973 AC_DEFUN([CF_MANPAGE_FORMAT],
2975 AC_REQUIRE([CF_PATHSEP])
2976 AC_MSG_CHECKING(format of man-pages)
2978 AC_ARG_WITH(manpage-format,
2979 [ --with-manpage-format specify manpage-format: gzip/compress/BSDI/normal and
2980 optionally formatted/catonly, e.g., gzip,formatted],
2981 [MANPAGE_FORMAT=$withval],
2982 [MANPAGE_FORMAT=unknown])
2984 test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=unknown
2985 MANPAGE_FORMAT=`echo "$MANPAGE_FORMAT" | sed -e 's/,/ /g'`
2989 case $MANPAGE_FORMAT in
2991 if test -z "$MANPATH" ; then
2992 MANPATH="/usr/man:/usr/share/man"
2995 # look for the 'date' man-page (it's most likely to be installed!)
3001 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATHSEP}"
3002 for cf_dir in $MANPATH; do
3003 test -z "$cf_dir" && cf_dir=/usr/man
3004 for cf_name in $cf_dir/man*/$cf_example.[[01]]* $cf_dir/cat*/$cf_example.[[01]]* $cf_dir/man*/$cf_example $cf_dir/cat*/$cf_example
3006 cf_test=`echo $cf_name | sed -e 's/*//'`
3007 if test "x$cf_test" = "x$cf_name" ; then
3010 *.gz) MANPAGE_FORMAT="$MANPAGE_FORMAT gzip";;
3011 *.Z) MANPAGE_FORMAT="$MANPAGE_FORMAT compress";;
3012 *.0) MANPAGE_FORMAT="$MANPAGE_FORMAT BSDI";;
3013 *) MANPAGE_FORMAT="$MANPAGE_FORMAT normal";;
3027 # if we found a match in either man* or cat*, stop looking
3028 if test -n "$MANPAGE_FORMAT" ; then
3030 test "$cf_preform" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT formatted"
3031 test "$cf_catonly" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT catonly"
3037 test $cf_found=yes && break
3040 # only check the first directory in $MANPATH where we find manpages
3041 if test -n "$MANPAGE_FORMAT" ; then
3045 # if we did not find the example, just assume it is normal
3046 test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=normal
3050 for cf_option in $MANPAGE_FORMAT; do
3051 case $cf_option in #(vi
3052 gzip|compress|BSDI|normal|formatted|catonly)
3055 cf_unknown="$cf_unknown $cf_option"
3062 AC_MSG_RESULT($MANPAGE_FORMAT)
3063 if test -n "$cf_unknown" ; then
3064 AC_MSG_WARN(Unexpected manpage-format $cf_unknown)
3067 dnl ---------------------------------------------------------------------------
3068 dnl CF_MANPAGE_RENAMES version: 7 updated: 2005/06/18 18:51:57
3069 dnl ------------------
3070 dnl The Debian people have their own naming convention for manpages. This
3071 dnl option lets us override the name of the file containing renaming, or
3072 dnl disable it altogether.
3073 AC_DEFUN([CF_MANPAGE_RENAMES],
3075 AC_MSG_CHECKING(for manpage renaming)
3077 AC_ARG_WITH(manpage-renames,
3078 [ --with-manpage-renames specify manpage-renaming],
3079 [MANPAGE_RENAMES=$withval],
3080 [MANPAGE_RENAMES=yes])
3082 case ".$MANPAGE_RENAMES" in #(vi
3086 # Debian 'man' program?
3087 if test -f /etc/debian_version ; then
3088 MANPAGE_RENAMES=`cd $srcdir && pwd`/man/man_db.renames
3095 if test "$MANPAGE_RENAMES" != no ; then
3096 if test -f $srcdir/man/$MANPAGE_RENAMES ; then
3097 MANPAGE_RENAMES=`cd $srcdir/man && pwd`/$MANPAGE_RENAMES
3098 elif test ! -f $MANPAGE_RENAMES ; then
3099 AC_MSG_ERROR(not a filename: $MANPAGE_RENAMES)
3102 test ! -d man && mkdir man
3104 # Construct a sed-script to perform renaming within man-pages
3105 if test -n "$MANPAGE_RENAMES" ; then
3106 test ! -d man && mkdir man
3107 sh $srcdir/man/make_sed.sh $MANPAGE_RENAMES >./edit_man.sed
3111 AC_MSG_RESULT($MANPAGE_RENAMES)
3112 AC_SUBST(MANPAGE_RENAMES)
3114 dnl ---------------------------------------------------------------------------
3115 dnl CF_MANPAGE_SYMLINKS version: 4 updated: 2003/12/13 18:01:58
3116 dnl -------------------
3117 dnl Some people expect each tool to make all aliases for manpages in the
3118 dnl man-directory. This accommodates the older, less-capable implementations
3119 dnl of 'man', and is optional.
3120 AC_DEFUN([CF_MANPAGE_SYMLINKS],
3122 AC_MSG_CHECKING(if manpage aliases will be installed)
3124 AC_ARG_WITH(manpage-aliases,
3125 [ --with-manpage-aliases specify manpage-aliases using .so],
3126 [MANPAGE_ALIASES=$withval],
3127 [MANPAGE_ALIASES=yes])
3129 AC_MSG_RESULT($MANPAGE_ALIASES)
3131 if test "$LN_S" = "ln -s"; then
3138 if test "$MANPAGE_ALIASES" = yes ; then
3139 AC_MSG_CHECKING(if manpage symlinks should be used)
3141 AC_ARG_WITH(manpage-symlinks,
3142 [ --with-manpage-symlinks specify manpage-aliases using symlinks],
3143 [MANPAGE_SYMLINKS=$withval],
3144 [MANPAGE_SYMLINKS=$cf_use_symlinks])
3146 if test "$$cf_use_symlinks" = no; then
3147 if test "$MANPAGE_SYMLINKS" = yes ; then
3148 AC_MSG_WARN(cannot make symlinks, will use .so files)
3153 AC_MSG_RESULT($MANPAGE_SYMLINKS)
3157 dnl ---------------------------------------------------------------------------
3158 dnl CF_MANPAGE_TBL version: 3 updated: 2002/01/19 22:51:32
3160 dnl This option causes manpages to be run through tbl(1) to generate tables
3162 AC_DEFUN([CF_MANPAGE_TBL],
3164 AC_MSG_CHECKING(for manpage tbl)
3166 AC_ARG_WITH(manpage-tbl,
3167 [ --with-manpage-tbl specify manpage processing with tbl],
3168 [MANPAGE_TBL=$withval],
3171 AC_MSG_RESULT($MANPAGE_TBL)
3173 dnl ---------------------------------------------------------------------------
3174 dnl CF_MAN_PAGES version: 35 updated: 2007/03/31 11:47:29
3176 dnl Try to determine if the man-pages on the system are compressed, and if
3177 dnl so, what format is used. Use this information to construct a script that
3178 dnl will install man-pages.
3179 AC_DEFUN([CF_MAN_PAGES],
3181 CF_HELP_MESSAGE(Options to Specify How Manpages are Installed:)
3187 if test "$prefix" = "NONE" ; then
3188 cf_prefix="$ac_default_prefix"
3193 case "$MANPAGE_FORMAT" in # (vi
3208 test ! -d man && mkdir man
3212 case "$MANPAGE_FORMAT" in #(vi
3215 cf_compress=compress
3223 cf_edit_man=./edit_man.sh
3224 cf_man_alias=`pwd`/man_alias.sed
3226 cat >$cf_edit_man <<CF_EOF
3228 # this script is generated by the configure-script CF_MAN_PAGES macro.
3233 NCURSES_MAJOR="$NCURSES_MAJOR"
3234 NCURSES_MINOR="$NCURSES_MINOR"
3235 NCURSES_PATCH="$NCURSES_PATCH"
3237 NCURSES_OSPEED="$NCURSES_OSPEED"
3238 TERMINFO="$TERMINFO"
3240 MKDIRS="sh `cd $srcdir && pwd`/mkdirs.sh"
3243 INSTALL_DATA="$INSTALL_DATA"
3245 transform="$program_transform_name"
3247 TMP=\${TMPDIR-/tmp}/man\$\$
3248 trap "rm -f \$TMP" 0 1 2 5 15
3260 top_srcdir=\[$]srcdir/..
3263 if test "\$form" = normal ; then
3264 if test "$cf_format" = yes ; then
3265 if test "$cf_inboth" = no ; then
3266 sh \[$]0 format \$verb \$mandir \$srcdir \[$]*
3270 cf_subdir=\$mandir/man
3271 cf_tables=$MANPAGE_TBL
3273 cf_subdir=\$mandir/cat
3277 # process the list of source-files
3280 *.orig|*.rej) ;; #(vi
3282 section=\`expr "\$i" : '.*\\.\\([[0-9]]\\)[[xm]]*'\`;
3283 if test \$verb = installing ; then
3284 if test ! -d \$cf_subdir\${section} ; then
3285 \$MKDIRS \$cf_subdir\$section
3289 # replace variables in man page
3290 if test ! -f $cf_man_alias ; then
3291 cat >>$cf_man_alias <<-CF_EOF2
3292 s,@DATADIR@,\$datadir,g
3293 s,@TERMINFO@,\$TERMINFO,g
3294 s,@NCURSES_MAJOR@,\$NCURSES_MAJOR,g
3295 s,@NCURSES_MINOR@,\$NCURSES_MINOR,g
3296 s,@NCURSES_PATCH@,\$NCURSES_PATCH,g
3297 s,@NCURSES_OSPEED@,\$NCURSES_OSPEED,g
3302 cf_NAME=`echo "$cf_name" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
3303 cf_name=`echo $cf_name|sed "$program_transform_name"`
3304 cat >>$cf_edit_man <<-CF_EOF
3305 s,@$cf_NAME@,$cf_name,
3309 cat >>$cf_edit_man <<CF_EOF
3311 echo "...made $cf_man_alias"
3315 cf_source=\`basename \$i\`
3317 test ! -f \$inalias && inalias="\$srcdir/\$inalias"
3318 if test ! -f \$inalias ; then
3319 echo .. skipped \$cf_source
3324 if test "$MANPAGE_ALIASES" != no ; then
3325 cat >>$cf_edit_man <<CF_EOF
3326 aliases=\`sed -f \$top_srcdir/man/manlinks.sed \$inalias |sed -f $cf_man_alias | sort -u\`
3330 if test "$MANPAGE_RENAMES" = no ; then
3331 cat >>$cf_edit_man <<CF_EOF
3332 # perform program transformations for section 1 man pages
3333 if test \$section = 1 ; then
3334 cf_target=\$cf_subdir\${section}/\`echo \$cf_source|sed "\${transform}"\`
3336 cf_target=\$cf_subdir\${section}/\$cf_source
3340 cat >>$cf_edit_man <<CF_EOF
3341 cf_target=\`grep "^\$cf_source" $MANPAGE_RENAMES | $AWK '{print \[$]2}'\`
3342 if test -z "\$cf_target" ; then
3343 echo '? missing rename for '\$cf_source
3344 cf_target="\$cf_source"
3346 cf_target="\$cf_subdir\${section}/\${cf_target}"
3351 cat >>$cf_edit_man <<CF_EOF
3352 sed -f $cf_man_alias \\
3355 if test -f $MANPAGE_RENAMES ; then
3356 cat >>$cf_edit_man <<CF_EOF
3357 < \$i | sed -f `pwd`/edit_man.sed >\$TMP
3360 cat >>$cf_edit_man <<CF_EOF
3365 cat >>$cf_edit_man <<CF_EOF
3366 if test \$cf_tables = yes ; then
3367 tbl \$TMP >\$TMP.out
3372 if test $with_curses_h != yes ; then
3373 cat >>$cf_edit_man <<CF_EOF
3374 sed -e "/\#[ ]*include/s,curses.h,ncurses.h," < \$TMP >\$TMP.out
3379 cat >>$cf_edit_man <<CF_EOF
3380 if test \$form = format ; then
3381 nroff -man \$TMP >\$TMP.out
3386 if test -n "$cf_compress" ; then
3387 cat >>$cf_edit_man <<CF_EOF
3388 if test \$verb = installing ; then
3389 if ( $cf_compress -f \$TMP )
3391 mv \$TMP.$cf_so_strip \$TMP
3394 cf_target="\$cf_target.$cf_so_strip"
3398 case "$MANPAGE_FORMAT" in #(vi
3400 cat >>$cf_edit_man <<CF_EOF
3401 if test \$form = format ; then
3402 # BSDI installs only .0 suffixes in the cat directories
3403 cf_target="\`echo \$cf_target|sed -e 's/\.[[1-9]]\+[[a-z]]*/.0/'\`"
3409 cat >>$cf_edit_man <<CF_EOF
3410 suffix=\`basename \$cf_target | sed -e 's%^[[^.]]*%%'\`
3411 if test \$verb = installing ; then
3412 echo \$verb \$cf_target
3413 \$INSTALL_DATA \$TMP \$cf_target
3414 test -d \$cf_subdir\${section} &&
3415 test -n "\$aliases" && (
3416 cd \$cf_subdir\${section} && (
3417 cf_source=\`echo \$cf_target |sed -e 's%^.*/\([[^/]][[^/]]*/[[^/]][[^/]]*$\)%\1%'\`
3418 test -n "$cf_so_strip" && cf_source=\`echo \$cf_source |sed -e 's%\.$cf_so_strip\$%%'\`
3419 cf_target=\`basename \$cf_target\`
3420 for cf_alias in \$aliases
3422 if test \$section = 1 ; then
3423 cf_alias=\`echo \$cf_alias|sed "\${transform}"\`
3426 if test "$MANPAGE_SYMLINKS" = yes ; then
3427 if test -f \$cf_alias\${suffix} ; then
3428 if ( cmp -s \$cf_target \$cf_alias\${suffix} )
3433 echo .. \$verb alias \$cf_alias\${suffix}
3434 rm -f \$cf_alias\${suffix}
3435 $LN_S \$cf_target \$cf_alias\${suffix}
3436 elif test "\$cf_target" != "\$cf_alias\${suffix}" ; then
3437 echo ".so \$cf_source" >\$TMP
3439 if test -n "$cf_compress" ; then
3440 cat >>$cf_edit_man <<CF_EOF
3441 if test -n "$cf_so_strip" ; then
3442 $cf_compress -f \$TMP
3443 mv \$TMP.$cf_so_strip \$TMP
3447 cat >>$cf_edit_man <<CF_EOF
3448 echo .. \$verb alias \$cf_alias\${suffix}
3449 rm -f \$cf_alias\${suffix}
3450 \$INSTALL_DATA \$TMP \$cf_alias\${suffix}
3455 elif test \$verb = removing ; then
3456 test -f \$cf_target && (
3457 echo \$verb \$cf_target
3460 test -d \$cf_subdir\${section} &&
3461 test -n "\$aliases" && (
3462 cd \$cf_subdir\${section} && (
3463 for cf_alias in \$aliases
3465 if test \$section = 1 ; then
3466 cf_alias=\`echo \$cf_alias|sed "\${transform}"\`
3469 echo .. \$verb alias \$cf_alias\${suffix}
3470 rm -f \$cf_alias\${suffix}
3482 if test $cf_inboth = yes ; then
3483 if test \$form != format ; then
3484 sh \[$]0 format \$verb \$mandir \$srcdir \[$]*
3490 chmod 755 $cf_edit_man
3493 dnl ---------------------------------------------------------------------------
3494 dnl CF_MATH_LIB version: 5 updated: 2000/05/28 01:39:10
3496 dnl Checks for libraries. At least one UNIX system, Apple Macintosh
3497 dnl Rhapsody 5.5, does not have -lm. We cannot use the simpler
3498 dnl AC_CHECK_LIB(m,sin), because that fails for C++.
3499 AC_DEFUN([CF_MATH_LIB],
3501 AC_CACHE_CHECK(if -lm needed for math functions,
3507 [double x = rand(); printf("result = %g\n", ]ifelse($2,,sin(x),$2)[)],
3508 [cf_cv_need_libm=no],
3509 [cf_cv_need_libm=yes])])
3510 if test "$cf_cv_need_libm" = yes
3517 dnl ---------------------------------------------------------------------------
3518 dnl CF_MIXEDCASE_FILENAMES version: 3 updated: 2003/09/20 17:07:55
3519 dnl ----------------------
3520 dnl Check if the file-system supports mixed-case filenames. If we're able to
3521 dnl create a lowercase name and see it as uppercase, it doesn't support that.
3522 AC_DEFUN([CF_MIXEDCASE_FILENAMES],
3524 AC_CACHE_CHECK(if filesystem supports mixed-case filenames,cf_cv_mixedcase,[
3525 if test "$cross_compiling" = yes ; then
3526 case $target_alias in #(vi
3527 *-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-mingw32*|*-uwin*) #(vi
3535 rm -f conftest CONFTEST
3537 if test -f CONFTEST ; then
3542 rm -f conftest CONFTEST
3545 test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES)
3547 dnl ---------------------------------------------------------------------------
3548 dnl CF_MKSTEMP version: 5 updated: 2006/12/16 12:33:30
3550 dnl Check for a working mkstemp. This creates two files, checks that they are
3551 dnl successfully created and distinct (AmigaOS apparently fails on the last).
3552 AC_DEFUN([CF_MKSTEMP],[
3553 AC_CACHE_CHECK(for working mkstemp, cf_cv_func_mkstemp,[
3556 #include <sys/types.h>
3560 #include <sys/stat.h>
3563 char *tmpl = "conftestXXXXXX";
3571 for (n = 0; n < 2; ++n) {
3572 strcpy(name[n], tmpl);
3573 if ((fd = mkstemp(name[n])) >= 0) {
3574 if (!strcmp(name[n], tmpl)
3575 || stat(name[n], &sb) != 0
3576 || (sb.st_mode & S_IFMT) != S_IFREG
3577 || (sb.st_mode & 077) != 0) {
3584 && !strcmp(name[0], name[1]))
3586 ${cf_cv_main_return:-return}(result);
3588 ],[cf_cv_func_mkstemp=yes
3589 ],[cf_cv_func_mkstemp=no
3590 ],[AC_CHECK_FUNC(mkstemp)
3593 if test "$cf_cv_func_mkstemp" = yes ; then
3594 AC_DEFINE(HAVE_MKSTEMP)
3597 dnl ---------------------------------------------------------------------------
3598 dnl CF_MSG_LOG version: 4 updated: 2007/07/29 09:55:12
3600 dnl Write a debug message to config.log, along with the line number in the
3601 dnl configure script.
3602 AC_DEFUN([CF_MSG_LOG],[
3603 echo "${as_me-configure}:__oline__: testing $* ..." 1>&AC_FD_CC
3605 dnl ---------------------------------------------------------------------------
3606 dnl CF_NCURSES_ABI_6 version: 1 updated: 2005/09/17 18:42:49
3607 dnl ----------------
3608 dnl Set ncurses' ABI to 6 unless overridden by explicit configure option, and
3609 dnl warn about this.
3610 AC_DEFUN([CF_NCURSES_ABI_6],[
3611 if test "${with_abi_version+set}" != set; then
3612 case $cf_cv_rel_version in
3614 cf_cv_rel_version=6.0
3616 AC_MSG_WARN(Overriding ABI version to $cf_cv_abi_version)
3621 dnl ---------------------------------------------------------------------------
3622 dnl CF_NO_LEAKS_OPTION version: 4 updated: 2006/12/16 14:24:05
3623 dnl ------------------
3624 dnl see CF_WITH_NO_LEAKS
3625 AC_DEFUN([CF_NO_LEAKS_OPTION],[
3626 AC_MSG_CHECKING(if you want to use $1 for testing)
3629 [AC_DEFINE($3)ifelse([$4],,[
3632 : ${with_cflags:=-g}
3633 : ${with_no_leaks:=yes}
3636 AC_MSG_RESULT(${with_$1:-no})
3638 case .$with_cflags in #(vi
3640 case .$CFLAGS in #(vi
3650 dnl ---------------------------------------------------------------------------
3651 dnl CF_NUMBER_SYNTAX version: 1 updated: 2003/09/20 18:12:49
3652 dnl ----------------
3653 dnl Check if the given variable is a number. If not, report an error.
3654 dnl $1 is the variable
3655 dnl $2 is the message
3656 AC_DEFUN([CF_NUMBER_SYNTAX],[
3657 if test -n "$1" ; then
3662 AC_MSG_ERROR($2 is not a number: $1)
3666 AC_MSG_ERROR($2 value is empty)
3669 dnl ---------------------------------------------------------------------------
3670 dnl CF_OBJ_SUBDIR version: 4 updated: 2002/02/23 20:38:31
3672 dnl Compute the object-directory name from the given model name
3673 AC_DEFUN([CF_OBJ_SUBDIR],
3676 libtool) $2='obj_lo' ;;
3677 normal) $2='objects' ;;
3678 debug) $2='obj_g' ;;
3679 profile) $2='obj_p' ;;
3681 case $cf_cv_system_name in #(vi
3689 dnl ---------------------------------------------------------------------------
3690 dnl CF_PATHSEP version: 3 updated: 2001/01/12 01:23:53
3692 dnl Provide a value for the $PATH and similar separator
3693 AC_DEFUN([CF_PATHSEP],
3695 case $cf_cv_system_name in
3696 os2*) PATHSEP=';' ;;
3699 ifelse($1,,,[$1=$PATHSEP])
3702 dnl ---------------------------------------------------------------------------
3703 dnl CF_PATH_SYNTAX version: 12 updated: 2008/03/23 14:45:59
3705 dnl Check the argument to see that it looks like a pathname. Rewrite it if it
3706 dnl begins with one of the prefix/exec_prefix variables, and then again if the
3707 dnl result begins with 'NONE'. This is necessary to work around autoconf's
3708 dnl delayed evaluation of those symbols.
3709 AC_DEFUN([CF_PATH_SYNTAX],[
3710 if test "x$prefix" != xNONE; then
3711 cf_path_syntax="$prefix"
3713 cf_path_syntax="$ac_default_prefix"
3716 case ".[$]$1" in #(vi
3717 .\[$]\(*\)*|.\'*\'*) #(vi
3721 .[[a-zA-Z]]:[[\\/]]*) #(vi OS/2 EMX
3723 .\[$]{*prefix}*) #(vi
3725 case ".[$]$1" in #(vi
3727 $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
3732 $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
3735 ifelse($2,,[AC_MSG_ERROR([expected a pathname, not \"[$]$1\"])],$2)
3739 dnl ---------------------------------------------------------------------------
3740 dnl CF_POSIX_C_SOURCE version: 6 updated: 2005/07/14 20:25:10
3741 dnl -----------------
3742 dnl Define _POSIX_C_SOURCE to the given level, and _POSIX_SOURCE if needed.
3744 dnl POSIX.1-1990 _POSIX_SOURCE
3745 dnl POSIX.1-1990 and _POSIX_SOURCE and
3746 dnl POSIX.2-1992 C-Language _POSIX_C_SOURCE=2
3748 dnl POSIX.1b-1993 _POSIX_C_SOURCE=199309L
3749 dnl POSIX.1c-1996 _POSIX_C_SOURCE=199506L
3750 dnl X/Open 2000 _POSIX_C_SOURCE=200112L
3753 dnl $1 is the nominal value for _POSIX_C_SOURCE
3754 AC_DEFUN([CF_POSIX_C_SOURCE],
3756 cf_POSIX_C_SOURCE=ifelse($1,,199506L,$1)
3758 cf_save_CFLAGS="$CFLAGS"
3759 cf_save_CPPFLAGS="$CPPFLAGS"
3761 CF_REMOVE_DEFINE(cf_trim_CFLAGS,$cf_save_CFLAGS,_POSIX_C_SOURCE)
3762 CF_REMOVE_DEFINE(cf_trim_CPPFLAGS,$cf_save_CPPFLAGS,_POSIX_C_SOURCE)
3764 AC_CACHE_CHECK(if we should define _POSIX_C_SOURCE,cf_cv_posix_c_source,[
3765 CF_MSG_LOG(if the symbol is already defined go no further)
3766 AC_TRY_COMPILE([#include <sys/types.h>],[
3767 #ifndef _POSIX_C_SOURCE
3770 [cf_cv_posix_c_source=no],
3771 [cf_want_posix_source=no
3772 case .$cf_POSIX_C_SOURCE in #(vi
3774 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
3777 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
3778 cf_want_posix_source=yes
3781 cf_want_posix_source=yes
3784 if test "$cf_want_posix_source" = yes ; then
3785 AC_TRY_COMPILE([#include <sys/types.h>],[
3786 #ifdef _POSIX_SOURCE
3789 cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE")
3791 CF_MSG_LOG(ifdef from value $cf_POSIX_C_SOURCE)
3792 CFLAGS="$cf_trim_CFLAGS"
3793 CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source"
3794 CF_MSG_LOG(if the second compile does not leave our definition intact error)
3795 AC_TRY_COMPILE([#include <sys/types.h>],[
3796 #ifndef _POSIX_C_SOURCE
3799 [cf_cv_posix_c_source=no])
3800 CFLAGS="$cf_save_CFLAGS"
3801 CPPFLAGS="$cf_save_CPPFLAGS"
3805 if test "$cf_cv_posix_c_source" != no ; then
3806 CFLAGS="$cf_trim_CFLAGS"
3807 CPPFLAGS="$cf_trim_CPPFLAGS"
3808 if test "$cf_cv_cc_u_d_options" = yes ; then
3809 cf_temp_posix_c_source=`echo "$cf_cv_posix_c_source" | \
3810 sed -e 's/-D/-U/g' -e 's/=[[^ ]]*//g'`
3811 CPPFLAGS="$CPPFLAGS $cf_temp_posix_c_source"
3813 CPPFLAGS="$CPPFLAGS $cf_cv_posix_c_source"
3817 dnl ---------------------------------------------------------------------------
3818 dnl CF_PREDEFINE version: 1 updated: 2003/07/26 17:53:56
3820 dnl Add definitions to CPPFLAGS to ensure they're predefined for all compiles.
3822 dnl $1 = symbol to test
3823 dnl $2 = value (if any) to use for a predefinition
3824 AC_DEFUN([CF_PREDEFINE],
3826 AC_MSG_CHECKING(if we must define $1)
3827 AC_TRY_COMPILE([#include <sys/types.h>
3831 #endif],[cf_result=no],[cf_result=yes])
3832 AC_MSG_RESULT($cf_result)
3834 if test "$cf_result" = yes ; then
3835 CPPFLAGS="$CPPFLAGS ifelse($2,,-D$1,[-D$1=$2])"
3836 elif test "x$2" != "x" ; then
3837 AC_MSG_CHECKING(checking for compatible value versus $2)
3838 AC_TRY_COMPILE([#include <sys/types.h>
3842 #endif],[cf_result=yes],[cf_result=no])
3843 AC_MSG_RESULT($cf_result)
3844 if test "$cf_result" = no ; then
3845 # perhaps we can override it - try...
3846 CPPFLAGS="$CPPFLAGS -D$1=$2"
3850 dnl ---------------------------------------------------------------------------
3851 dnl CF_PRG_RULES version: 1 updated: 2006/06/03 11:45:08
3853 dnl Append definitions and rules for the given programs to the subdirectory
3854 dnl Makefiles, and the recursion rule for the top-level Makefile.
3857 dnl $1 = script to run
3858 dnl $2 = list of subdirectories
3862 AC_DEFUN([CF_PRG_RULES],
3866 if test ! -d $srcdir/$cf_dir; then
3868 elif test -f $srcdir/$cf_dir/programs; then
3869 $AWK -f $1 $srcdir/$cf_dir/programs >>$cf_dir/Makefile
3874 dnl ---------------------------------------------------------------------------
3875 dnl CF_PROG_AWK version: 1 updated: 2006/09/16 11:40:59
3877 dnl Check for awk, ensure that the check found something.
3878 AC_DEFUN([CF_PROG_AWK],
3881 test -z "$AWK" && AC_MSG_ERROR(No awk program found)
3883 dnl ---------------------------------------------------------------------------
3884 dnl CF_PROG_CC_C_O version: 2 updated: 2006/12/16 15:55:46
3886 dnl Analogous to AC_PROG_CC_C_O, but more useful: tests only $CC, ensures that
3887 dnl the output file can be renamed, and allows for a shell variable that can
3888 dnl be used later. The parameter is either CC or CXX. The result is the
3890 dnl $cf_cv_prog_CC_c_o
3891 dnl $cf_cv_prog_CXX_c_o
3892 AC_DEFUN([CF_PROG_CC_C_O],
3893 [AC_REQUIRE([AC_PROG_CC])dnl
3894 AC_MSG_CHECKING([whether [$]$1 understands -c and -o together])
3895 AC_CACHE_VAL(cf_cv_prog_$1_c_o,
3897 cat > conftest.$ac_ext <<CF_EOF
3901 ${cf_cv_main_return:-return}(0);
3904 # We do the test twice because some compilers refuse to overwrite an
3905 # existing .o file with -o, though they will create one.
3906 ac_try='[$]$1 -c conftest.$ac_ext -o conftest2.$ac_objext >&AC_FD_CC'
3907 if AC_TRY_EVAL(ac_try) &&
3908 test -f conftest2.$ac_objext && AC_TRY_EVAL(ac_try);
3910 eval cf_cv_prog_$1_c_o=yes
3912 eval cf_cv_prog_$1_c_o=no
3916 if test $cf_cv_prog_$1_c_o = yes; then
3917 AC_MSG_RESULT([yes])
3922 dnl ---------------------------------------------------------------------------
3923 dnl CF_PROG_CC_U_D version: 1 updated: 2005/07/14 16:59:30
3925 dnl Check if C (preprocessor) -U and -D options are processed in the order
3926 dnl given rather than by type of option. Some compilers insist on apply all
3927 dnl of the -U options after all of the -D options. Others allow mixing them,
3928 dnl and may predefine symbols that conflict with those we define.
3929 AC_DEFUN([CF_PROG_CC_U_D],
3931 AC_CACHE_CHECK(if $CC -U and -D options work together,cf_cv_cc_u_d_options,[
3932 cf_save_CPPFLAGS="$CPPFLAGS"
3933 CPPFLAGS="-UU_D_OPTIONS -DU_D_OPTIONS -DD_U_OPTIONS -UD_U_OPTIONS"
3936 make an undefined-error
3939 make a defined-error
3942 cf_cv_cc_u_d_options=yes],[
3943 cf_cv_cc_u_d_options=no])
3944 CPPFLAGS="$cf_save_CPPFLAGS"
3947 dnl ---------------------------------------------------------------------------
3948 dnl CF_PROG_EGREP version: 1 updated: 2006/09/16 11:40:59
3950 dnl AC_PROG_EGREP was introduced in autoconf 2.53.
3951 dnl This macro adds a check to ensure the script found something.
3952 AC_DEFUN([CF_PROG_EGREP],
3953 [AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep],
3954 [if echo a | (grep -E '(a|b)') >/dev/null 2>&1
3955 then ac_cv_prog_egrep='grep -E'
3956 else ac_cv_prog_egrep='egrep'
3958 EGREP=$ac_cv_prog_egrep
3960 test -z "$EGREP" && AC_MSG_ERROR(No egrep program found)
3962 dnl ---------------------------------------------------------------------------
3963 dnl CF_PROG_EXT version: 10 updated: 2004/01/03 19:28:18
3965 dnl Compute $PROG_EXT, used for non-Unix ports, such as OS/2 EMX.
3966 AC_DEFUN([CF_PROG_EXT],
3968 AC_REQUIRE([CF_CHECK_CACHE])
3969 case $cf_cv_system_name in
3971 CFLAGS="$CFLAGS -Zmt"
3972 CPPFLAGS="$CPPFLAGS -D__ST_MT_ERRNO__"
3973 CXXFLAGS="$CXXFLAGS -Zmt"
3974 # autoconf's macro sets -Zexe and suffix both, which conflict:w
3975 LDFLAGS="$LDFLAGS -Zmt -Zcrtdll"
3985 test -n "$PROG_EXT" && AC_DEFINE_UNQUOTED(PROG_EXT,"$PROG_EXT")
3987 dnl ---------------------------------------------------------------------------
3988 dnl CF_PROG_INSTALL version: 5 updated: 2002/12/21 22:46:07
3990 dnl Force $INSTALL to be an absolute-path. Otherwise, edit_man.sh and the
3991 dnl misc/tabset install won't work properly. Usually this happens only when
3992 dnl using the fallback mkinstalldirs script
3993 AC_DEFUN([CF_PROG_INSTALL],
3999 CF_DIRNAME(cf_dir,$INSTALL)
4000 test -z "$cf_dir" && cf_dir=.
4001 INSTALL=`cd $cf_dir && pwd`/`echo $INSTALL | sed -e 's%^.*/%%'`
4005 dnl ---------------------------------------------------------------------------
4006 dnl CF_PROG_LDCONFIG version: 1 updated: 2003/09/20 17:07:55
4007 dnl ----------------
4008 dnl Check for ldconfig, needed to fixup shared libraries that would be built
4009 dnl and then used in the install.
4010 AC_DEFUN([CF_PROG_LDCONFIG],[
4011 if test "$cross_compiling" = yes ; then
4014 case "$cf_cv_system_name" in #(vi
4016 test -z "$LDCONFIG" && LDCONFIG="/sbin/ldconfig -R"
4018 *) LDPATH=$PATH:/sbin:/usr/sbin
4019 AC_PATH_PROG(LDCONFIG,ldconfig,,$LDPATH)
4025 dnl ---------------------------------------------------------------------------
4026 dnl CF_PROG_LINT version: 1 updated: 2006/09/16 11:40:59
4028 AC_DEFUN([CF_PROG_LINT],
4030 AC_CHECK_PROGS(LINT, tdlint lint alint)
4033 dnl ---------------------------------------------------------------------------
4034 dnl CF_REGEX version: 3 updated: 1997/11/01 14:26:01
4036 dnl Attempt to determine if we've got one of the flavors of regular-expression
4037 dnl code that we can support.
4038 AC_DEFUN([CF_REGEX],
4040 AC_MSG_CHECKING([for regular-expression headers])
4041 AC_CACHE_VAL(cf_cv_regex,[
4042 AC_TRY_LINK([#include <sys/types.h>
4043 #include <regex.h>],[
4045 int x = regcomp(p, "", 0);
4046 int y = regexec(p, "", 0, 0, 0);
4048 ],[cf_cv_regex="regex.h"],[
4049 AC_TRY_LINK([#include <regexp.h>],[
4050 char *p = compile("", "", "", 0);
4051 int x = step("", "");
4052 ],[cf_cv_regex="regexp.h"],[
4053 cf_save_LIBS="$LIBS"
4055 AC_TRY_LINK([#include <regexpr.h>],[
4056 char *p = compile("", "", "");
4057 int x = step("", "");
4058 ],[cf_cv_regex="regexpr.h"],[LIBS="$cf_save_LIBS"])])])
4060 AC_MSG_RESULT($cf_cv_regex)
4061 case $cf_cv_regex in
4062 regex.h) AC_DEFINE(HAVE_REGEX_H_FUNCS) ;;
4063 regexp.h) AC_DEFINE(HAVE_REGEXP_H_FUNCS) ;;
4064 regexpr.h) AC_DEFINE(HAVE_REGEXPR_H_FUNCS) ;;
4067 dnl ---------------------------------------------------------------------------
4068 dnl CF_REMOVE_DEFINE version: 2 updated: 2005/07/09 16:12:18
4069 dnl ----------------
4070 dnl Remove all -U and -D options that refer to the given symbol from a list
4071 dnl of C compiler options. This works around the problem that not all
4072 dnl compilers process -U and -D options from left-to-right, so a -U option
4073 dnl cannot be used to cancel the effect of a preceding -D option.
4075 dnl $1 = target (which could be the same as the source variable)
4076 dnl $2 = source (including '$')
4077 dnl $3 = symbol to remove
4078 define([CF_REMOVE_DEFINE],
4080 # remove $3 symbol from $2
4082 sed -e 's/-[[UD]]$3\(=[[^ ]]*\)\?[[ ]]/ /g' \
4083 -e 's/-[[UD]]$3\(=[[^ ]]*\)\?[$]//g'`
4085 dnl ---------------------------------------------------------------------------
4086 dnl CF_REMOVE_LIB version: 1 updated: 2007/02/17 14:11:52
4088 dnl Remove the given library from the symbol
4090 dnl $1 = target (which could be the same as the source variable)
4091 dnl $2 = source (including '$')
4092 dnl $3 = library to remove
4093 define([CF_REMOVE_LIB],
4095 # remove $3 library from $2
4096 $1=`echo "$2" | sed -e 's/-l$3[[ ]]//g' -e 's/-l$3[$]//'`
4098 dnl ---------------------------------------------------------------------------
4099 dnl CF_RPATH_HACK version: 4 updated: 2008/09/13 12:53:26
4101 AC_DEFUN([CF_RPATH_HACK],
4103 AC_REQUIRE([CF_SHARED_OPTS])
4104 AC_MSG_CHECKING(for updated LDFLAGS)
4105 if test -n "$LDFLAGS" ; then
4106 AC_MSG_RESULT(maybe)
4107 CF_VERBOSE(...checking LDFLAGS $LDFLAGS)
4108 CF_VERBOSE(...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS)
4109 case "$EXTRA_LDFLAGS" in #(vi
4111 cf_rpath_hack="-Wl,-rpath,"
4123 if test -n "$cf_rpath_hack" ; then
4125 for cf_rpath_src in $LDFLAGS
4127 CF_VERBOSE(Filtering $cf_rpath_src)
4128 case $cf_rpath_src in #(vi
4130 if test "$cf_rpath_hack" = "-R " ; then
4131 cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e 's%-L%-R %'`
4133 cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e s%-L%$cf_rpath_hack%`
4135 CF_VERBOSE(...Filter $cf_rpath_tmp)
4136 EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS"
4139 cf_rpath_dst="$cf_rpath_dst $cf_rpath_src"
4141 LDFLAGS=$cf_rpath_dst
4142 CF_VERBOSE(...checked LDFLAGS $LDFLAGS)
4143 CF_VERBOSE(...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS)
4149 dnl ---------------------------------------------------------------------------
4150 dnl CF_SHARED_OPTS version: 53 updated: 2008/10/25 18:14:20
4153 dnl Attempt to determine the appropriate CC/LD options for creating a shared
4156 dnl Note: ${LOCAL_LDFLAGS} is used to link executables that will run within the
4157 dnl build-tree, i.e., by making use of the libraries that are compiled in ../lib
4158 dnl We avoid compiling-in a ../lib path for the shared library since that can
4159 dnl lead to unexpected results at runtime.
4160 dnl ${LOCAL_LDFLAGS2} has the same intention but assumes that the shared libraries
4161 dnl are compiled in ../../lib
4163 dnl The variable 'cf_cv_do_symlinks' is used to control whether we configure
4164 dnl to install symbolic links to the rel/abi versions of shared libraries.
4166 dnl The variable 'cf_cv_shlib_version' controls whether we use the rel or abi
4167 dnl version when making symbolic links.
4169 dnl The variable 'cf_cv_shlib_version_infix' controls whether shared library
4170 dnl version numbers are infix (ex: libncurses.<ver>.dylib) or postfix
4171 dnl (ex: libncurses.so.<ver>).
4173 dnl Some loaders leave 'so_locations' lying around. It's nice to clean up.
4174 AC_DEFUN([CF_SHARED_OPTS],
4176 AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
4180 INSTALL_LIB="-m 644"
4182 cf_cv_do_symlinks=no
4184 AC_MSG_CHECKING(if release/abi version should be used for shared libs)
4185 AC_ARG_WITH(shlib-version,
4186 [ --with-shlib-version=X Specify rel or abi version for shared libs],
4187 [test -z "$withval" && withval=auto
4188 case $withval in #(vi
4190 cf_cv_shlib_version=auto
4192 rel|abi|auto|no) #(vi
4193 cf_cv_shlib_version=$withval
4196 AC_MSG_ERROR([option value must be one of: rel, abi, auto or no])
4199 ],[cf_cv_shlib_version=auto])
4200 AC_MSG_RESULT($cf_cv_shlib_version)
4204 # Some less-capable ports of gcc support only -fpic
4206 if test "$GCC" = yes
4208 AC_MSG_CHECKING(which $CC option to use)
4209 cf_save_CFLAGS="$CFLAGS"
4210 for CC_SHARED_OPTS in -fPIC -fpic ''
4212 CFLAGS="$cf_save_CFLAGS $CC_SHARED_OPTS"
4213 AC_TRY_COMPILE([#include <stdio.h>],[int x = 1],[break],[])
4215 AC_MSG_RESULT($CC_SHARED_OPTS)
4216 CFLAGS="$cf_save_CFLAGS"
4219 cf_cv_shlib_version_infix=no
4221 case $cf_cv_system_name in
4223 MK_SHARED_LIB='${CC} ${CFLAGS} -o $[@] -Xlinker -soname=`basename $[@]` -nostart -e 0'
4227 MK_SHARED_LIB='sh ../mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
4228 cf_cv_shlib_version=cygdll
4229 cf_cv_shlib_version_infix=cygdll
4230 cat >mk_shared_lib.sh <<-CF_EOF
4233 IMPORT_LIB=\`echo "\[$]1" | sed -e 's/cyg/lib/' -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
4236 Linking shared library
4237 ** SHARED_LIB \[$]SHARED_LIB
4238 ** IMPORT_LIB \[$]IMPORT_LIB
4240 exec \[$]* -shared -Wl,--out-implib=../lib/\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o ../lib/\[$]{SHARED_LIB}
4242 chmod +x mk_shared_lib.sh
4245 EXTRA_CFLAGS="-no-cpp-precomp"
4246 CC_SHARED_OPTS="-dynamic"
4247 MK_SHARED_LIB='${CC} ${CFLAGS} -dynamiclib -install_name ${libdir}/`basename $[@]` -compatibility_version ${ABI_VERSION} -current_version ${ABI_VERSION} -o $[@]'
4248 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi
4249 cf_cv_shlib_version_infix=yes
4250 AC_CACHE_CHECK([if ld -search_paths_first works], cf_cv_ldflags_search_paths_first, [
4251 cf_save_LDFLAGS=$LDFLAGS
4252 LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
4253 AC_TRY_LINK(, [int i;], cf_cv_ldflags_search_paths_first=yes, cf_cv_ldflags_search_paths_first=no)
4254 LDFLAGS=$cf_save_LDFLAGS])
4255 if test $cf_cv_ldflags_search_paths_first = yes; then
4256 LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
4260 # (tested with gcc 2.7.2 -- I don't have c89)
4261 if test "$GCC" = yes; then
4262 LD_SHARED_OPTS='-Xlinker +b -Xlinker ${libdir}'
4265 LD_SHARED_OPTS='-Wl,+b,${libdir}'
4267 MK_SHARED_LIB='${LD} +b ${libdir} -b -o $[@]'
4268 # HP-UX shared libraries must be executable, and should be
4269 # readonly to exploit a quirk in the memory manager.
4270 INSTALL_LIB="-m 555"
4273 if test "$cf_cv_ld_rpath" = yes ; then
4274 if test "$GCC" = yes; then
4275 cf_ld_rpath_opt="-Wl,-rpath,"
4276 EXTRA_LDFLAGS="-Wl,-rpath,\${libdir} $EXTRA_LDFLAGS"
4278 cf_ld_rpath_opt="-rpath "
4279 EXTRA_LDFLAGS="-rpath \${libdir} $EXTRA_LDFLAGS"
4282 # tested with IRIX 5.2 and 'cc'.
4283 if test "$GCC" != yes; then
4284 CC_SHARED_OPTS='-KPIC'
4285 MK_SHARED_LIB='${CC} -shared -rdata_shared -soname `basename $[@]` -o $[@]'
4287 MK_SHARED_LIB='${CC} -shared -Wl,-soname,`basename $[@]` -o $[@]'
4289 cf_cv_rm_so_locs=yes
4291 linux*|gnu*|k*bsd*-gnu)
4292 if test "$DFT_LWR_MODEL" = "shared" ; then
4293 LOCAL_LDFLAGS="-Wl,-rpath,\$(LOCAL_LIBDIR)"
4294 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4296 if test "$cf_cv_ld_rpath" = yes ; then
4297 cf_ld_rpath_opt="-Wl,-rpath,"
4298 EXTRA_LDFLAGS="-Wl,-rpath,\${libdir} $EXTRA_LDFLAGS"
4301 MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
4304 if test "$DFT_LWR_MODEL" = "shared" ; then
4305 LOCAL_LDFLAGS="-Wl,-rpath,\$(LOCAL_LIBDIR)"
4306 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4308 if test "$cf_cv_ld_rpath" = yes ; then
4309 cf_ld_rpath_opt="-Wl,-rpath,"
4310 EXTRA_LDFLAGS="-Wl,-rpath,\${libdir} $EXTRA_LDFLAGS"
4312 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
4314 MK_SHARED_LIB='${CC} ${CFLAGS} -Wl,-Bshareable,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
4316 nto-qnx*|openbsd*|freebsd[[12]].*)
4317 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
4318 MK_SHARED_LIB='${LD} -Bshareable -o $[@]'
4319 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
4322 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
4323 if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_ld_rpath" = yes ; then
4324 LOCAL_LDFLAGS="-rpath \$(LOCAL_LIBDIR)"
4325 LOCAL_LDFLAGS2="-rpath \${libdir} $LOCAL_LDFLAGS"
4326 cf_ld_rpath_opt="-rpath "
4327 EXTRA_LDFLAGS="-rpath \${libdir} $EXTRA_LDFLAGS"
4330 MK_SHARED_LIB='${LD} -Bshareable -soname=`basename $[@]` -o $[@]'
4333 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
4334 test "$cf_cv_ld_rpath" = yes && cf_ld_rpath_opt="-Wl,-rpath,"
4335 if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_ld_rpath" = yes ; then
4336 LOCAL_LDFLAGS="-Wl,-rpath,\$(LOCAL_LIBDIR)"
4337 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4338 EXTRA_LDFLAGS="-Wl,-rpath,\${libdir} $EXTRA_LDFLAGS"
4339 if test "$cf_cv_shlib_version" = auto; then
4340 if test -f /usr/libexec/ld.elf_so; then
4341 cf_cv_shlib_version=abi
4343 cf_cv_shlib_version=rel
4347 MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname' -o $[@]'
4349 MK_SHARED_LIB='${LD} -Bshareable -o $[@]'
4353 # tested with OSF/1 V3.2 and 'cc'
4354 # tested with OSF/1 V3.2 and gcc 2.6.3 (but the c++ demo didn't
4355 # link with shared libs).
4356 MK_SHARED_LIB='${LD} -set_version ${REL_VERSION}:${ABI_VERSION} -expect_unresolved "*" -shared -soname `basename $[@]`'
4359 MK_SHARED_LIB="${MK_SHARED_LIB} -msym"
4362 MK_SHARED_LIB="${MK_SHARED_LIB}"' -o $[@]'
4363 if test "$DFT_LWR_MODEL" = "shared" ; then
4364 LOCAL_LDFLAGS="-Wl,-rpath,\$(LOCAL_LIBDIR)"
4365 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4367 if test "$cf_cv_ld_rpath" = yes ; then
4368 cf_ld_rpath_opt="-rpath"
4369 # EXTRA_LDFLAGS="$LOCAL_LDFLAGS $EXTRA_LDFLAGS"
4371 cf_cv_rm_so_locs=yes
4373 sco3.2v5*) # (also uw2* and UW7) hops 13-Apr-98
4374 # tested with osr5.0.5
4375 if test "$GCC" != yes; then
4376 CC_SHARED_OPTS='-belf -KPIC'
4378 MK_SHARED_LIB='${LD} -dy -G -h `basename $[@] .${REL_VERSION}`.${ABI_VERSION} -o [$]@'
4379 if test "$cf_cv_ld_rpath" = yes ; then
4380 # only way is to set LD_RUN_PATH but no switch for it
4383 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
4384 LINK_PROGS='LD_RUN_PATH=${libdir}'
4385 LINK_TESTS='Pwd=`pwd`;LD_RUN_PATH=`dirname $${Pwd}`/lib'
4388 # tested with SunOS 4.1.1 and gcc 2.7.0
4389 if test "$GCC" != yes; then
4390 CC_SHARED_OPTS='-KPIC'
4392 MK_SHARED_LIB='${LD} -assert pure-text -o $[@]'
4393 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
4396 # tested with SunOS 5.5.1 (solaris 2.5.1) and gcc 2.7.2
4397 # tested with SunOS 5.10 (solaris 10) and gcc 3.4.3
4398 if test "$DFT_LWR_MODEL" = "shared" ; then
4399 LOCAL_LDFLAGS="-R \$(LOCAL_LIBDIR):\${libdir}"
4400 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4402 if test "$cf_cv_ld_rpath" = yes ; then
4403 cf_ld_rpath_opt="-R"
4404 EXTRA_LDFLAGS="$LOCAL_LDFLAGS $EXTRA_LDFLAGS"
4407 if test "$GCC" != yes; then
4408 CC_SHARED_OPTS='-xcode=pic32'
4409 MK_SHARED_LIB='${CC} -dy -G -h '$cf_cv_shared_soname' -o $[@]'
4411 MK_SHARED_LIB='${CC} -shared -dy -G -h '$cf_cv_shared_soname' -o $[@]'
4415 # tested with UnixWare 7.1.0 (gcc 2.95.2 and cc)
4416 if test "$GCC" != yes; then
4417 CC_SHARED_OPTS='-KPIC'
4419 MK_SHARED_LIB='${LD} -d y -G -o [$]@'
4422 CC_SHARED_OPTS='unknown'
4423 MK_SHARED_LIB='echo unknown'
4427 # This works if the last tokens in $MK_SHARED_LIB are the -o target.
4428 case "$cf_cv_shlib_version" in #(vi
4430 case "$MK_SHARED_LIB" in #(vi
4432 test "$cf_cv_do_symlinks" = no && cf_cv_do_symlinks=yes
4435 AC_MSG_WARN(ignored --with-shlib-version)
4441 if test -n "$cf_ld_rpath_opt" ; then
4442 AC_MSG_CHECKING(if we need a space after rpath option)
4443 cf_save_LIBS="$LIBS"
4444 LIBS="$LIBS ${cf_ld_rpath_opt}$libdir"
4445 AC_TRY_LINK(, , cf_rpath_space=no, cf_rpath_space=yes)
4446 LIBS="$cf_save_LIBS"
4447 AC_MSG_RESULT($cf_rpath_space)
4448 test "$cf_rpath_space" = yes && cf_ld_rpath_opt="$cf_ld_rpath_opt "
4449 MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${libdir}"
4452 AC_SUBST(CC_SHARED_OPTS)
4453 AC_SUBST(LD_SHARED_OPTS)
4454 AC_SUBST(MK_SHARED_LIB)
4455 AC_SUBST(LINK_PROGS)
4456 AC_SUBST(LINK_TESTS)
4457 AC_SUBST(EXTRA_LDFLAGS)
4458 AC_SUBST(LOCAL_LDFLAGS)
4459 AC_SUBST(LOCAL_LDFLAGS2)
4460 AC_SUBST(INSTALL_LIB)
4462 dnl ---------------------------------------------------------------------------
4463 dnl CF_SHARED_SONAME version: 3 updated: 2008/09/08 18:34:43
4464 dnl ----------------
4465 dnl utility macro for CF_SHARED_OPTS, constructs "$cf_cv_shared_soname" for
4466 dnl substitution into MK_SHARED_LIB string for the "-soname" (or similar)
4469 dnl $1 is the default that should be used for "$cf_cv_shlib_version".
4470 dnl If missing, use "rel".
4471 define([CF_SHARED_SONAME],
4473 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=ifelse($1,,rel,$1)
4474 if test "$cf_cv_shlib_version" = rel; then
4475 cf_cv_shared_soname='`basename $[@] .${REL_VERSION}`.${ABI_VERSION}'
4477 cf_cv_shared_soname='`basename $[@]`'
4480 dnl ---------------------------------------------------------------------------
4481 dnl CF_SIGWINCH version: 1 updated: 2006/04/02 16:41:09
4483 dnl Use this macro after CF_XOPEN_SOURCE, but do not require it (not all
4484 dnl programs need this test).
4486 dnl This is really a MacOS X 10.4.3 workaround. Defining _POSIX_C_SOURCE
4487 dnl forces SIGWINCH to be undefined (breaks xterm, ncurses). Oddly, the struct
4488 dnl winsize declaration is left alone - we may revisit this if Apple choose to
4489 dnl break that part of the interface as well.
4490 AC_DEFUN([CF_SIGWINCH],
4492 AC_CACHE_CHECK(if SIGWINCH is defined,cf_cv_define_sigwinch,[
4494 #include <sys/types.h>
4495 #include <sys/signal.h>
4496 ],[int x = SIGWINCH],
4497 [cf_cv_define_sigwinch=yes],
4499 #undef _XOPEN_SOURCE
4500 #undef _POSIX_SOURCE
4501 #undef _POSIX_C_SOURCE
4502 #include <sys/types.h>
4503 #include <sys/signal.h>
4504 ],[int x = SIGWINCH],
4505 [cf_cv_define_sigwinch=maybe],
4506 [cf_cv_define_sigwinch=no])
4510 if test "$cf_cv_define_sigwinch" = maybe ; then
4511 AC_CACHE_CHECK(for actual SIGWINCH definition,cf_cv_fixup_sigwinch,[
4512 cf_cv_fixup_sigwinch=unknown
4514 while test $cf_sigwinch != 1
4517 #undef _XOPEN_SOURCE
4518 #undef _POSIX_SOURCE
4519 #undef _POSIX_C_SOURCE
4520 #include <sys/types.h>
4521 #include <sys/signal.h>
4523 #if SIGWINCH != $cf_sigwinch
4527 [cf_cv_fixup_sigwinch=$cf_sigwinch
4530 cf_sigwinch=`expr $cf_sigwinch - 1`
4534 if test "$cf_cv_fixup_sigwinch" != unknown ; then
4535 CPPFLAGS="$CPPFLAGS -DSIGWINCH=$cf_cv_fixup_sigwinch"
4539 dnl ---------------------------------------------------------------------------
4540 dnl CF_SIG_ATOMIC_T version: 2 updated: 2005/09/18 17:27:12
4542 dnl signal handler, but there are some gcc depedencies in that recommendation.
4544 AC_DEFUN([CF_SIG_ATOMIC_T],
4546 AC_MSG_CHECKING(for signal global datatype)
4547 AC_CACHE_VAL(cf_cv_sig_atomic_t,[
4549 "volatile sig_atomic_t" \
4554 #include <sys/types.h>
4560 static void handler(int sig)
4564 [signal(SIGINT, handler);
4566 [cf_cv_sig_atomic_t=$cf_type],
4567 [cf_cv_sig_atomic_t=no])
4568 test "$cf_cv_sig_atomic_t" != no && break
4571 AC_MSG_RESULT($cf_cv_sig_atomic_t)
4572 test "$cf_cv_sig_atomic_t" != no && AC_DEFINE_UNQUOTED(SIG_ATOMIC_T, $cf_cv_sig_atomic_t)
4574 dnl ---------------------------------------------------------------------------
4575 dnl CF_SIZECHANGE version: 8 updated: 2000/11/04 12:22:16
4577 dnl Check for definitions & structures needed for window size-changing
4578 dnl FIXME: check that this works with "snake" (HP-UX 10.x)
4579 AC_DEFUN([CF_SIZECHANGE],
4581 AC_REQUIRE([CF_STRUCT_TERMIOS])
4582 AC_CACHE_CHECK(declaration of size-change, cf_cv_sizechange,[
4583 cf_cv_sizechange=unknown
4584 cf_save_CPPFLAGS="$CPPFLAGS"
4586 for cf_opts in "" "NEED_PTEM_H"
4589 CPPFLAGS="$cf_save_CPPFLAGS"
4590 test -n "$cf_opts" && CPPFLAGS="$CPPFLAGS -D$cf_opts"
4591 AC_TRY_COMPILE([#include <sys/types.h>
4592 #ifdef HAVE_TERMIOS_H
4593 #include <termios.h>
4595 #ifdef HAVE_TERMIO_H
4600 /* This is a workaround for SCO: they neglected to define struct winsize in
4601 * termios.h -- it's only in termio.h and ptem.h
4603 #include <sys/stream.h>
4604 #include <sys/ptem.h>
4606 #if !defined(sun) || !defined(HAVE_TERMIOS_H)
4607 #include <sys/ioctl.h>
4611 struct ttysize win; /* FIXME: what system is this? */
4612 int y = win.ts_lines;
4613 int x = win.ts_cols;
4620 no TIOCGSIZE or TIOCGWINSZ
4621 #endif /* TIOCGWINSZ */
4622 #endif /* TIOCGSIZE */
4624 [cf_cv_sizechange=yes],
4625 [cf_cv_sizechange=no])
4627 CPPFLAGS="$cf_save_CPPFLAGS"
4628 if test "$cf_cv_sizechange" = yes ; then
4629 echo "size-change succeeded ($cf_opts)" >&AC_FD_CC
4630 test -n "$cf_opts" && cf_cv_sizechange="$cf_opts"
4635 if test "$cf_cv_sizechange" != no ; then
4636 AC_DEFINE(HAVE_SIZECHANGE)
4637 case $cf_cv_sizechange in #(vi
4639 AC_DEFINE_UNQUOTED($cf_cv_sizechange )
4644 dnl ---------------------------------------------------------------------------
4645 dnl CF_SRC_MODULES version: 18 updated: 2005/05/28 12:58:54
4647 dnl For each parameter, test if the source-directory exists, and if it contains
4648 dnl a 'modules' file. If so, add to the list $cf_cv_src_modules which we'll
4649 dnl use in CF_LIB_RULES.
4651 dnl This uses the configured value to make the lists SRC_SUBDIRS and
4652 dnl SUB_MAKEFILES which are used in the makefile-generation scheme.
4653 AC_DEFUN([CF_SRC_MODULES],
4655 AC_MSG_CHECKING(for src modules)
4657 # dependencies and linker-arguments for test-programs
4658 TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEPS"
4659 TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEP2"
4660 if test "$DFT_LWR_MODEL" = "libtool"; then
4661 TEST_ARGS="${TEST_DEPS}"
4662 TEST_ARG2="${TEST_DEP2}"
4664 TEST_ARGS="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARGS"
4665 TEST_ARG2="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARG2"
4671 if test -f $srcdir/$cf_dir/modules; then
4673 # We may/may not have tack in the distribution, though the
4675 if test $cf_dir = tack ; then
4676 if test ! -f $srcdir/${cf_dir}/${cf_dir}.h; then
4681 if test -z "$cf_cv_src_modules"; then
4682 cf_cv_src_modules=$cf_dir
4684 cf_cv_src_modules="$cf_cv_src_modules $cf_dir"
4687 # Make the ncurses_cfg.h file record the library interface files as
4688 # well. These are header files that are the same name as their
4689 # directory. Ncurses is the only library that does not follow
4691 if test $cf_dir = tack ; then
4693 elif test -f $srcdir/${cf_dir}/${cf_dir}.h; then
4694 CF_UPPER(cf_have_include,$cf_dir)
4695 AC_DEFINE_UNQUOTED(HAVE_${cf_have_include}_H)
4696 AC_DEFINE_UNQUOTED(HAVE_LIB${cf_have_include})
4697 TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${cf_dir}${DFT_DEP_SUFFIX} $TEST_DEPS"
4698 TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${cf_dir}${DFT_DEP_SUFFIX} $TEST_DEP2"
4699 if test "$DFT_LWR_MODEL" = "libtool"; then
4700 TEST_ARGS="${TEST_DEPS}"
4701 TEST_ARG2="${TEST_DEP2}"
4703 TEST_ARGS="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARGS"
4704 TEST_ARG2="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARG2"
4709 AC_MSG_RESULT($cf_cv_src_modules)
4711 TEST_ARGS="-L${LIB_DIR} $TEST_ARGS"
4712 TEST_ARG2="-L${LIB_2ND} $TEST_ARG2"
4720 SRC_SUBDIRS="man include"
4721 for cf_dir in $cf_cv_src_modules
4723 SRC_SUBDIRS="$SRC_SUBDIRS $cf_dir"
4725 SRC_SUBDIRS="$SRC_SUBDIRS test"
4726 test -z "$MAKE_TERMINFO" && SRC_SUBDIRS="$SRC_SUBDIRS misc"
4727 test "$cf_with_cxx_binding" != no && SRC_SUBDIRS="$SRC_SUBDIRS c++"
4730 if test "$cf_cv_prog_gnat_correct" = yes && test -f $srcdir/Ada95/Makefile.in; then
4731 SRC_SUBDIRS="$SRC_SUBDIRS Ada95"
4732 ADA_SUBDIRS="gen src samples"
4736 for cf_dir in $SRC_SUBDIRS
4738 SUB_MAKEFILES="$SUB_MAKEFILES $cf_dir/Makefile"
4741 if test -n "$ADA_SUBDIRS"; then
4742 for cf_dir in $ADA_SUBDIRS
4744 SUB_MAKEFILES="$SUB_MAKEFILES Ada95/$cf_dir/Makefile"
4746 AC_SUBST(ADA_SUBDIRS)
4749 dnl ---------------------------------------------------------------------------
4750 dnl CF_STDCPP_LIBRARY version: 5 updated: 2000/08/12 23:18:52
4751 dnl -----------------
4752 dnl Check for -lstdc++, which is GNU's standard C++ library.
4753 AC_DEFUN([CF_STDCPP_LIBRARY],
4755 if test -n "$GXX" ; then
4756 case $cf_cv_system_name in #(vi
4758 cf_stdcpp_libname=stdcpp
4761 cf_stdcpp_libname=stdc++
4764 AC_CACHE_CHECK(for library $cf_stdcpp_libname,cf_cv_libstdcpp,[
4766 LIBS="$LIBS -l$cf_stdcpp_libname"
4768 #include <strstream.h>],[
4770 strstreambuf foo(buf, sizeof(buf))
4772 [cf_cv_libstdcpp=yes],
4773 [cf_cv_libstdcpp=no])
4776 test "$cf_cv_libstdcpp" = yes && CXXLIBS="$CXXLIBS -l$cf_stdcpp_libname"
4779 dnl ---------------------------------------------------------------------------
4780 dnl CF_STRIP_G_OPT version: 3 updated: 2002/12/21 19:25:52
4782 dnl Remove "-g" option from the compiler options
4783 AC_DEFUN([CF_STRIP_G_OPT],
4784 [$1=`echo ${$1} | sed -e 's%-g %%' -e 's%-g$%%'`])dnl
4785 dnl ---------------------------------------------------------------------------
4786 dnl CF_STRUCT_SIGACTION version: 3 updated: 2000/08/12 23:18:52
4787 dnl -------------------
4788 dnl Check if we need _POSIX_SOURCE defined to use struct sigaction. We'll only
4789 dnl do this if we've found the sigaction function.
4791 dnl If needed, define SVR4_ACTION.
4792 AC_DEFUN([CF_STRUCT_SIGACTION],[
4793 if test "$ac_cv_func_sigaction" = yes; then
4794 AC_MSG_CHECKING(whether sigaction needs _POSIX_SOURCE)
4796 #include <sys/types.h>
4797 #include <signal.h>],
4798 [struct sigaction act],
4802 #define _POSIX_SOURCE
4803 #include <sys/types.h>
4804 #include <signal.h>],
4805 [struct sigaction act],
4807 AC_DEFINE(SVR4_ACTION)],
4808 [sigact_bad=unknown])])
4809 AC_MSG_RESULT($sigact_bad)
4812 dnl ---------------------------------------------------------------------------
4813 dnl CF_STRUCT_TERMIOS version: 5 updated: 2000/11/04 12:22:46
4814 dnl -----------------
4815 dnl Some machines require _POSIX_SOURCE to completely define struct termios.
4816 dnl If so, define SVR4_TERMIO
4817 AC_DEFUN([CF_STRUCT_TERMIOS],[
4823 if test "$ISC" = yes ; then
4824 AC_CHECK_HEADERS( sys/termio.h )
4826 if test "$ac_cv_header_termios_h" = yes ; then
4827 case "$CFLAGS $CPPFLAGS" in
4829 termios_bad=dunno ;;
4830 *) termios_bad=maybe ;;
4832 if test "$termios_bad" = maybe ; then
4833 AC_MSG_CHECKING(whether termios.h needs _POSIX_SOURCE)
4834 AC_TRY_COMPILE([#include <termios.h>],
4835 [struct termios foo; int x = foo.c_iflag],
4838 #define _POSIX_SOURCE
4839 #include <termios.h>],
4840 [struct termios foo; int x = foo.c_iflag],
4841 termios_bad=unknown,
4842 termios_bad=yes AC_DEFINE(SVR4_TERMIO))
4844 AC_MSG_RESULT($termios_bad)
4848 dnl ---------------------------------------------------------------------------
4849 dnl CF_SUBDIR_PATH version: 5 updated: 2007/07/29 09:55:12
4851 dnl Construct a search-list for a nonstandard header/lib-file
4852 dnl $1 = the variable to return as result
4853 dnl $2 = the package name
4854 dnl $3 = the subdirectory, e.g., bin, include or lib
4855 AC_DEFUN([CF_SUBDIR_PATH],
4858 CF_ADD_SUBDIR_PATH($1,$2,$3,/usr,$prefix)
4859 CF_ADD_SUBDIR_PATH($1,$2,$3,$prefix,NONE)
4860 CF_ADD_SUBDIR_PATH($1,$2,$3,/usr/local,$prefix)
4861 CF_ADD_SUBDIR_PATH($1,$2,$3,/opt,$prefix)
4862 CF_ADD_SUBDIR_PATH($1,$2,$3,[$]HOME,$prefix)
4864 dnl ---------------------------------------------------------------------------
4865 dnl CF_SUBST version: 4 updated: 2006/06/17 12:33:03
4867 dnl Shorthand macro for substituting things that the user may override
4868 dnl with an environment variable.
4870 dnl $1 = long/descriptive name
4871 dnl $2 = environment variable
4872 dnl $3 = default value
4873 AC_DEFUN([CF_SUBST],
4874 [AC_CACHE_VAL(cf_cv_subst_$2,[
4875 AC_MSG_CHECKING(for $1 (symbol $2))
4876 CF_SUBST_IF([-z "[$]$2"], [$2], [$3])
4877 cf_cv_subst_$2=[$]$2
4878 AC_MSG_RESULT([$]$2)
4881 dnl ---------------------------------------------------------------------------
4882 dnl CF_SUBST_IF version: 2 updated: 2006/06/17 12:33:03
4884 dnl Shorthand macro for substituting things that the user may override
4885 dnl with an environment variable.
4887 dnl $1 = condition to pass to "test"
4888 dnl $2 = environment variable
4889 dnl $3 = value if the test succeeds
4890 dnl $4 = value if the test fails
4891 AC_DEFUN([CF_SUBST_IF],
4900 dnl ---------------------------------------------------------------------------
4901 dnl CF_SUBST_NCURSES_VERSION version: 8 updated: 2006/09/16 11:40:59
4902 dnl ------------------------
4903 dnl Get the version-number for use in shared-library naming, etc.
4904 AC_DEFUN([CF_SUBST_NCURSES_VERSION],
4906 AC_REQUIRE([CF_PROG_EGREP])
4907 NCURSES_MAJOR="`$ac_cv_prog_egrep '^NCURSES_MAJOR[[ ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`"
4908 NCURSES_MINOR="`$ac_cv_prog_egrep '^NCURSES_MINOR[[ ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`"
4909 NCURSES_PATCH="`$ac_cv_prog_egrep '^NCURSES_PATCH[[ ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`"
4910 cf_cv_abi_version=${NCURSES_MAJOR}
4911 cf_cv_rel_version=${NCURSES_MAJOR}.${NCURSES_MINOR}
4912 dnl Show the computed version, for logging
4913 cf_cv_timestamp=`date`
4914 AC_MSG_RESULT(Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp))
4915 dnl We need these values in the generated headers
4916 AC_SUBST(NCURSES_MAJOR)
4917 AC_SUBST(NCURSES_MINOR)
4918 AC_SUBST(NCURSES_PATCH)
4919 dnl We need these values in the generated makefiles
4920 AC_SUBST(cf_cv_rel_version)
4921 AC_SUBST(cf_cv_abi_version)
4922 AC_SUBST(cf_cv_builtin_bool)
4923 AC_SUBST(cf_cv_header_stdbool_h)
4924 AC_SUBST(cf_cv_type_of_bool)dnl
4926 dnl ---------------------------------------------------------------------------
4927 dnl CF_SYS_TIME_SELECT version: 4 updated: 2000/10/04 09:18:40
4928 dnl ------------------
4929 dnl Check if we can include <sys/time.h> with <sys/select.h>; this breaks on
4930 dnl older SCO configurations.
4931 AC_DEFUN([CF_SYS_TIME_SELECT],
4933 AC_MSG_CHECKING(if sys/time.h works with sys/select.h)
4934 AC_CACHE_VAL(cf_cv_sys_time_select,[
4936 #include <sys/types.h>
4937 #ifdef HAVE_SYS_TIME_H
4938 #include <sys/time.h>
4940 #ifdef HAVE_SYS_SELECT_H
4941 #include <sys/select.h>
4943 ],[],[cf_cv_sys_time_select=yes],
4944 [cf_cv_sys_time_select=no])
4946 AC_MSG_RESULT($cf_cv_sys_time_select)
4947 test "$cf_cv_sys_time_select" = yes && AC_DEFINE(HAVE_SYS_TIME_SELECT)
4949 dnl ---------------------------------------------------------------------------
4950 dnl CF_TOP_BUILDDIR version: 1 updated: 2006/10/15 16:33:23
4952 dnl Define a top_builddir symbol, for applications that need an absolute path.
4953 AC_DEFUN([CF_TOP_BUILDDIR],
4956 AC_SUBST(top_builddir)
4958 dnl ---------------------------------------------------------------------------
4959 dnl CF_TYPEOF_CHTYPE version: 8 updated: 2006/12/16 12:33:30
4960 dnl ----------------
4961 dnl Determine the type we should use for chtype (and attr_t, which is treated
4962 dnl as the same thing). We want around 32 bits, so on most machines want a
4963 dnl long, but on newer 64-bit machines, probably want an int. If we're using
4964 dnl wide characters, we have to have a type compatible with that, as well.
4965 AC_DEFUN([CF_TYPEOF_CHTYPE],
4967 AC_MSG_CHECKING([for type of chtype])
4968 AC_CACHE_VAL(cf_cv_typeof_chtype,[
4970 #define WANT_BITS 31
4974 FILE *fp = fopen("cf_test.out", "w");
4976 char *result = "long";
4977 if (sizeof(unsigned long) > sizeof(unsigned int)) {
4980 for (n = 0; n < WANT_BITS; n++) {
4983 if (y != 1 || x == 0) {
4989 * If x is nonzero, an int is big enough for the bits
4992 result = (x != 0) ? "int" : "long";
4997 ${cf_cv_main_return:-return}(0);
5000 [cf_cv_typeof_chtype=`cat cf_test.out`],
5001 [cf_cv_typeof_chtype=long],
5002 [cf_cv_typeof_chtype=long])
5005 AC_MSG_RESULT($cf_cv_typeof_chtype)
5007 AC_SUBST(cf_cv_typeof_chtype)
5008 AC_DEFINE_UNQUOTED(TYPEOF_CHTYPE,$cf_cv_typeof_chtype)
5010 dnl ---------------------------------------------------------------------------
5011 dnl CF_TYPE_SIGACTION version: 3 updated: 2000/08/12 23:18:52
5012 dnl -----------------
5014 AC_DEFUN([CF_TYPE_SIGACTION],
5016 AC_MSG_CHECKING([for type sigaction_t])
5017 AC_CACHE_VAL(cf_cv_type_sigaction,[
5019 #include <signal.h>],
5021 [cf_cv_type_sigaction=yes],
5022 [cf_cv_type_sigaction=no])])
5023 AC_MSG_RESULT($cf_cv_type_sigaction)
5024 test "$cf_cv_type_sigaction" = yes && AC_DEFINE(HAVE_TYPE_SIGACTION)
5026 dnl ---------------------------------------------------------------------------
5027 dnl CF_UNSIGNED_LITERALS version: 2 updated: 1998/02/07 22:10:16
5028 dnl --------------------
5029 dnl Test if the compiler supports 'U' and 'L' suffixes. Only old compilers
5030 dnl won't, but they're still there.
5031 AC_DEFUN([CF_UNSIGNED_LITERALS],
5033 AC_MSG_CHECKING([if unsigned literals are legal])
5034 AC_CACHE_VAL(cf_cv_unsigned_literals,[
5035 AC_TRY_COMPILE([],[long x = 1L + 1UL + 1U + 1],
5036 [cf_cv_unsigned_literals=yes],
5037 [cf_cv_unsigned_literals=no])
5039 AC_MSG_RESULT($cf_cv_unsigned_literals)
5041 dnl ---------------------------------------------------------------------------
5042 dnl CF_UPPER version: 5 updated: 2001/01/29 23:40:59
5044 dnl Make an uppercase version of a variable
5045 dnl $1=uppercase($2)
5046 AC_DEFUN([CF_UPPER],
5048 $1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
5050 dnl ---------------------------------------------------------------------------
5051 dnl CF_UTF8_LIB version: 5 updated: 2008/10/17 19:37:52
5053 dnl Check for multibyte support, and if not found, utf8 compatibility library
5054 AC_DEFUN([CF_UTF8_LIB],
5056 AC_CACHE_CHECK(for multibyte character support,cf_cv_utf8_lib,[
5057 cf_save_LIBS="$LIBS"
5059 #include <stdlib.h>],[putwc(0,0);],
5060 [cf_cv_utf8_lib=yes],
5062 #include <libutf8.h>],[putwc(0,0);],utf8,
5063 [cf_cv_utf8_lib=add-on],
5064 [cf_cv_utf8_lib=no])
5067 # HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
5069 if test "$cf_cv_utf8_lib" = "add-on" ; then
5070 AC_DEFINE(HAVE_LIBUTF8_H)
5071 CF_ADD_INCDIR($cf_cv_header_path_utf8)
5072 CF_ADD_LIBDIR($cf_cv_library_path_utf8)
5076 dnl ---------------------------------------------------------------------------
5077 dnl CF_VERBOSE version: 3 updated: 2007/07/29 09:55:12
5079 dnl Use AC_VERBOSE w/o the warnings
5080 AC_DEFUN([CF_VERBOSE],
5081 [test -n "$verbose" && echo " $1" 1>&AC_FD_MSG
5084 dnl ---------------------------------------------------------------------------
5085 dnl CF_WCHAR_TYPE version: 2 updated: 2004/01/17 19:18:20
5087 dnl Check if type wide-character type $1 is declared, and if so, which header
5088 dnl file is needed. The second parameter is used to set a shell variable when
5089 dnl the type is not found. The first parameter sets a shell variable for the
5091 AC_DEFUN([CF_WCHAR_TYPE],
5093 # This is needed on Tru64 5.0 to declare $1
5094 AC_CACHE_CHECK(if we must include wchar.h to declare $1,cf_cv_$1,[
5099 #ifdef HAVE_LIBUTF8_H
5100 #include <libutf8.h>
5109 #ifdef HAVE_LIBUTF8_H
5110 #include <libutf8.h>
5114 [cf_cv_$1=unknown])])])
5116 if test "$cf_cv_$1" = yes ; then
5117 AC_DEFINE(NEED_WCHAR_H)
5122 # if we do not find $1 in either place, use substitution to provide a fallback.
5123 if test "$cf_cv_$1" = unknown ; then
5128 # if we find $1 in either place, use substitution to provide a fallback.
5129 if test "$cf_cv_$1" != unknown ; then
5134 dnl ---------------------------------------------------------------------------
5135 dnl CF_WEAK_SYMBOLS version: 1 updated: 2008/08/16 19:18:06
5137 dnl Check for compiler-support for weak symbols.
5138 dnl This works with "recent" gcc.
5139 AC_DEFUN([CF_WEAK_SYMBOLS],[
5140 AC_CACHE_CHECK(if $CC supports weak symbols,cf_cv_weak_symbols,[
5143 #include <stdio.h>],
5145 #if defined(__GNUC__)
5146 # if defined __USE_ISOC99
5147 # define _cat_pragma(exp) _Pragma(#exp)
5148 # define _weak_pragma(exp) _cat_pragma(weak name)
5150 # define _weak_pragma(exp)
5152 # define _declare(name) __extension__ extern __typeof__(name) name
5153 # define weak_symbol(name) _weak_pragma(name) _declare(name) __attribute__((weak))
5157 ],[cf_cv_weak_symbols=yes],[cf_cv_weak_symbols=no])
5160 dnl ---------------------------------------------------------------------------
5161 dnl CF_WITH_ABI_VERSION version: 1 updated: 2003/09/20 18:12:49
5162 dnl -------------------
5163 dnl Allow library's ABI to be overridden. Generally this happens when a
5164 dnl packager has incremented the ABI past that used in the original package,
5165 dnl and wishes to keep doing this.
5167 dnl $1 is the package name, if any, to derive a corresponding {package}_ABI
5169 AC_DEFUN([CF_WITH_ABI_VERSION],[
5170 test -z "$cf_cv_abi_version" && cf_cv_abi_version=0
5171 AC_ARG_WITH(abi-version,
5172 [ --with-abi-version=XXX override derived ABI version],
5173 [AC_MSG_WARN(overriding ABI version $cf_cv_abi_version to $withval)
5174 cf_cv_abi_version=$withval])
5175 CF_NUMBER_SYNTAX($cf_cv_abi_version,ABI version)
5177 $1_ABI=$cf_cv_abi_version
5180 dnl ---------------------------------------------------------------------------
5181 dnl CF_WITH_DBMALLOC version: 6 updated: 2006/12/16 14:24:05
5182 dnl ----------------
5183 dnl Configure-option for dbmalloc. The optional parameter is used to override
5184 dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
5185 AC_DEFUN([CF_WITH_DBMALLOC],[
5186 CF_NO_LEAKS_OPTION(dbmalloc,
5187 [ --with-dbmalloc test: use Conor Cahill's dbmalloc library],
5190 if test "$with_dbmalloc" = yes ; then
5191 AC_CHECK_HEADER(dbmalloc.h,
5192 [AC_CHECK_LIB(dbmalloc,[debug_malloc]ifelse($1,,[],[,$1]))])
5195 dnl ---------------------------------------------------------------------------
5196 dnl CF_WITH_DMALLOC version: 6 updated: 2006/12/16 14:24:05
5198 dnl Configure-option for dmalloc. The optional parameter is used to override
5199 dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
5200 AC_DEFUN([CF_WITH_DMALLOC],[
5201 CF_NO_LEAKS_OPTION(dmalloc,
5202 [ --with-dmalloc test: use Gray Watson's dmalloc library],
5205 if test "$with_dmalloc" = yes ; then
5206 AC_CHECK_HEADER(dmalloc.h,
5207 [AC_CHECK_LIB(dmalloc,[dmalloc_debug]ifelse($1,,[],[,$1]))])
5210 dnl ---------------------------------------------------------------------------
5211 dnl CF_WITH_GPM version: 7 updated: 2008/03/23 14:48:54
5214 dnl The option parameter (if neither yes/no) is assumed to be the name of
5215 dnl the gpm library, e.g., for dynamic loading.
5216 AC_DEFUN([CF_WITH_GPM],
5218 AC_MSG_CHECKING(if you want to link with the GPM mouse library)
5220 [ --with-gpm use Alessandro Rubini's GPM library],
5221 [with_gpm=$withval],
5223 AC_MSG_RESULT($with_gpm)
5225 if test "$with_gpm" != no ; then
5226 AC_CHECK_HEADER(gpm.h,[
5227 AC_DEFINE(HAVE_GPM_H)
5228 if test "$with_gpm" != yes && test "$with_gpm" != maybe ; then
5229 CF_VERBOSE(assuming we really have GPM library)
5230 AC_DEFINE(HAVE_LIBGPM)
5232 AC_CHECK_LIB(gpm,Gpm_Open,[:],[
5233 AC_MSG_ERROR(Cannot link with GPM library)
5238 test "$with_gpm" != maybe && AC_MSG_WARN(Cannot find GPM header)
5243 dnl ---------------------------------------------------------------------------
5244 dnl CF_WITH_LIBTOOL version: 19 updated: 2008/03/29 15:46:43
5246 dnl Provide a configure option to incorporate libtool. Define several useful
5247 dnl symbols for the makefile rules.
5249 dnl The reference to AC_PROG_LIBTOOL does not normally work, since it uses
5250 dnl macros from libtool.m4 which is in the aclocal directory of automake.
5251 dnl Following is a simple script which turns on the AC_PROG_LIBTOOL macro.
5252 dnl But that still does not work properly since the macro is expanded outside
5253 dnl the CF_WITH_LIBTOOL macro:
5256 dnl ACLOCAL=`aclocal --print-ac-dir`
5257 dnl if test -z "$ACLOCAL" ; then
5258 dnl echo cannot find aclocal directory
5260 dnl elif test ! -f $ACLOCAL/libtool.m4 ; then
5261 dnl echo cannot find libtool.m4 file
5265 dnl LOCAL=aclocal.m4
5266 dnl ORIG=aclocal.m4.orig
5268 dnl trap "mv $ORIG $LOCAL" 0 1 2 5 15
5272 dnl # sed the LIBTOOL= assignment to omit the current directory?
5273 dnl sed -e 's/^LIBTOOL=.*/LIBTOOL=${LIBTOOL-libtool}/' $ACLOCAL/libtool.m4 >>$LOCAL
5274 dnl cat $ORIG >>$LOCAL
5278 AC_DEFUN([CF_WITH_LIBTOOL],
5280 ifdef([AC_PROG_LIBTOOL],,[
5283 # common library maintenance symbols that are convenient for libtool scripts:
5284 LIB_CREATE='${AR} -cr'
5285 LIB_OBJECT='${OBJECTS}'
5289 # symbols used to prop libtool up to enable it to determine what it should be
5297 AC_MSG_CHECKING(if you want to build libraries with libtool)
5298 AC_ARG_WITH(libtool,
5299 [ --with-libtool generate libraries with libtool],
5300 [with_libtool=$withval],
5302 AC_MSG_RESULT($with_libtool)
5303 if test "$with_libtool" != "no"; then
5304 ifdef([AC_PROG_LIBTOOL],[
5305 # missing_content_AC_PROG_LIBTOOL{{
5307 # missing_content_AC_PROG_LIBTOOL}}
5309 if test "$with_libtool" != "yes" ; then
5310 CF_PATH_SYNTAX(with_libtool)
5311 LIBTOOL=$with_libtool
5313 AC_PATH_PROG(LIBTOOL,libtool)
5315 if test -z "$LIBTOOL" ; then
5316 AC_MSG_ERROR(Cannot find libtool)
5319 LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${DESTDIR}${libdir} -version-info `cut -f1 ${srcdir}/VERSION` ${LIBTOOL_OPTS} -o'
5320 LIB_OBJECT='${OBJECTS:.o=.lo}'
5322 LIB_CLEAN='${LIBTOOL} --mode=clean'
5323 LIB_COMPILE='${LIBTOOL} --mode=compile'
5324 LIB_LINK='${LIBTOOL} --mode=link ${CC} ${LIBTOOL_OPTS}'
5325 LIB_INSTALL='${LIBTOOL} --mode=install'
5326 LIB_UNINSTALL='${LIBTOOL} --mode=uninstall'
5329 # Show the version of libtool
5330 AC_MSG_CHECKING(version of libtool)
5332 # Save the version in a cache variable - this is not entirely a good
5333 # thing, but the version string from libtool is very ugly, and for
5334 # bug reports it might be useful to have the original string.
5335 cf_cv_libtool_version=`$LIBTOOL --version 2>&1 | sed -e '/^$/d' |sed -e '2,$d' -e 's/([[^)]]*)//g' -e 's/^[[^1-9]]*//' -e 's/[[^0-9.]].*//'`
5336 AC_MSG_RESULT($cf_cv_libtool_version)
5337 if test -z "$cf_cv_libtool_version" ; then
5338 AC_MSG_ERROR(This is not GNU libtool)
5341 # special hack to add --tag option for C++ compiler
5342 case $cf_cv_libtool_version in
5343 1.[[5-9]]*|[[2-9]]*)
5344 LIBTOOL_CXX="$LIBTOOL --tag=CXX"
5345 LIBTOOL="$LIBTOOL --tag=CC"
5348 LIBTOOL_CXX="$LIBTOOL"
5356 test -z "$LIBTOOL" && ECHO_LT=
5359 AC_SUBST(LIBTOOL_CXX)
5360 AC_SUBST(LIBTOOL_OPTS)
5362 AC_SUBST(LIB_CREATE)
5363 AC_SUBST(LIB_OBJECT)
5364 AC_SUBST(LIB_SUFFIX)
5368 AC_SUBST(LIB_COMPILE)
5370 AC_SUBST(LIB_INSTALL)
5371 AC_SUBST(LIB_UNINSTALL)
5374 dnl ---------------------------------------------------------------------------
5375 dnl CF_WITH_PATH version: 8 updated: 2007/05/13 13:16:35
5377 dnl Wrapper for AC_ARG_WITH to ensure that user supplies a pathname, not just
5378 dnl defaulting to yes/no.
5380 dnl $1 = option name
5382 dnl $3 = environment variable to set
5383 dnl $4 = default value, shown in the help-message, must be a constant
5384 dnl $5 = default value, if it's an expression & cannot be in the help-message
5386 AC_DEFUN([CF_WITH_PATH],
5387 [AC_ARG_WITH($1,[$2 ](default: ifelse($4,,empty,$4)),,
5388 ifelse($4,,[withval="${$3}"],[withval="${$3-ifelse($5,,$4,$5)}"]))dnl
5389 if ifelse($5,,true,[test -n "$5"]) ; then
5390 CF_PATH_SYNTAX(withval)
5395 dnl ---------------------------------------------------------------------------
5396 dnl CF_WITH_PATHLIST version: 5 updated: 2001/12/10 01:28:30
5397 dnl ----------------
5398 dnl Process an option specifying a list of colon-separated paths.
5400 dnl $1 = option name
5402 dnl $3 = environment variable to set
5403 dnl $4 = default value, shown in the help-message, must be a constant
5404 dnl $5 = default value, if it's an expression & cannot be in the help-message
5405 dnl $6 = flag to tell if we want to define or substitute
5407 AC_DEFUN([CF_WITH_PATHLIST],[
5408 AC_REQUIRE([CF_PATHSEP])
5409 AC_ARG_WITH($1,[$2 ](default: ifelse($4,,empty,$4)),,
5410 ifelse($4,,[withval=${$3}],[withval=${$3-ifelse($5,,$4,$5)}]))dnl
5412 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${PATHSEP}"
5414 for cf_src_path in $withval
5416 CF_PATH_SYNTAX(cf_src_path)
5417 test -n "$cf_dst_path" && cf_dst_path="${cf_dst_path}:"
5418 cf_dst_path="${cf_dst_path}${cf_src_path}"
5423 # Strip single quotes from the value, e.g., when it was supplied as a literal
5425 case $cf_dst_path in #(vi
5427 cf_dst_path=`echo $cf_dst_path |sed -e s/\'// -e s/\'\$//`
5430 cf_dst_path=`echo "$cf_dst_path" | sed -e 's/\\\\/\\\\\\\\/g'`
5433 eval '$3="$cf_dst_path"'
5437 dnl ---------------------------------------------------------------------------
5438 dnl CF_WITH_PTHREAD version: 2 updated: 2008/08/23 18:26:05
5440 dnl Check for POSIX thread library.
5441 AC_DEFUN([CF_WITH_PTHREAD],
5443 AC_MSG_CHECKING(if you want to link with the pthread library)
5444 AC_ARG_WITH(pthread,
5445 [ --with-pthread use POSIX thread library],
5446 [with_pthread=$withval],
5448 AC_MSG_RESULT($with_pthread)
5450 if test "$with_pthread" != no ; then
5451 AC_CHECK_HEADER(pthread.h,[
5452 AC_DEFINE(HAVE_PTHREADS_H)
5454 AC_MSG_CHECKING(if we can link with the pthread library)
5455 cf_save_LIBS="$LIBS"
5456 LIBS="-lpthread $LIBS"
5458 #include <pthread.h>
5460 int rc = pthread_create(0,0,0,0);
5461 ],[with_pthread=yes],[with_pthread=no])
5462 LIBS="$cf_save_LIBS"
5463 AC_MSG_RESULT($with_pthread)
5465 if test "$with_pthread" = yes ; then
5466 LIBS="-lpthread $LIBS"
5467 AC_DEFINE(HAVE_LIBPTHREADS)
5469 AC_MSG_ERROR(Cannot link with pthread library)
5474 dnl ---------------------------------------------------------------------------
5475 dnl CF_WITH_REL_VERSION version: 1 updated: 2003/09/20 18:12:49
5476 dnl -------------------
5477 dnl Allow library's release-version to be overridden. Generally this happens when a
5478 dnl packager has incremented the release-version past that used in the original package,
5479 dnl and wishes to keep doing this.
5481 dnl $1 is the package name, if any, to derive corresponding {package}_MAJOR
5482 dnl and {package}_MINOR symbols
5484 AC_DEFUN([CF_WITH_REL_VERSION],[
5485 test -z "$cf_cv_rel_version" && cf_cv_rel_version=0.0
5486 AC_ARG_WITH(rel-version,
5487 [ --with-rel-version=XXX override derived release version],
5488 [AC_MSG_WARN(overriding release version $cf_cv_rel_version to $withval)
5489 cf_cv_rel_version=$withval])
5491 CF_NUMBER_SYNTAX($cf_cv_rel_version,Release version)
5493 $1_MAJOR=`echo "$cf_cv_rel_version" | sed -e 's/\..*//'`
5494 $1_MINOR=`echo "$cf_cv_rel_version" | sed -e 's/^[[^.]]*//' -e 's/^\.//' -e 's/\..*//'`
5495 CF_NUMBER_SYNTAX([$]$1_MAJOR,Release major-version)
5496 CF_NUMBER_SYNTAX([$]$1_MINOR,Release minor-version)
5499 dnl ---------------------------------------------------------------------------
5500 dnl CF_WITH_SYSMOUSE version: 2 updated: 2003/03/22 19:13:43
5501 dnl ----------------
5502 dnl If we can compile with sysmouse, make it available unless it is not wanted.
5503 AC_DEFUN([CF_WITH_SYSMOUSE],[
5504 # not everyone has "test -c"
5505 if test -c /dev/sysmouse 2>/dev/null ; then
5506 AC_MSG_CHECKING(if you want to use sysmouse)
5507 AC_ARG_WITH(sysmouse,
5508 [ --with-sysmouse use sysmouse (FreeBSD console)],
5509 [cf_with_sysmouse=$withval],
5510 [cf_with_sysmouse=maybe])
5511 if test "$cf_with_sysmouse" != no ; then
5513 #include <osreldate.h>
5514 #if (__FreeBSD_version >= 400017)
5515 #include <sys/consio.h>
5516 #include <sys/fbio.h>
5518 #include <machine/console.h>
5521 struct mouse_info the_mouse;
5522 ioctl(0, CONS_MOUSECTL, &the_mouse);
5523 ],[cf_with_sysmouse=yes],[cf_with_sysmouse=no])
5525 AC_MSG_RESULT($cf_with_sysmouse)
5526 test "$cf_with_sysmouse" = yes && AC_DEFINE(USE_SYSMOUSE)
5529 dnl ---------------------------------------------------------------------------
5530 dnl CF_WITH_VALGRIND version: 1 updated: 2006/12/14 18:00:21
5531 dnl ----------------
5532 AC_DEFUN([CF_WITH_VALGRIND],[
5533 CF_NO_LEAKS_OPTION(valgrind,
5534 [ --with-valgrind test: use valgrind],
5537 dnl ---------------------------------------------------------------------------
5538 dnl CF_XOPEN_SOURCE version: 26 updated: 2008/07/27 11:26:57
5540 dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
5541 dnl or adapt to the vendor's definitions to get equivalent functionality,
5542 dnl without losing the common non-POSIX features.
5545 dnl $1 is the nominal value for _XOPEN_SOURCE
5546 dnl $2 is the nominal value for _POSIX_C_SOURCE
5547 AC_DEFUN([CF_XOPEN_SOURCE],[
5549 AC_REQUIRE([CF_PROG_CC_U_D])
5551 cf_XOPEN_SOURCE=ifelse($1,,500,$1)
5552 cf_POSIX_C_SOURCE=ifelse($2,,199506L,$2)
5554 case $host_os in #(vi
5556 CPPFLAGS="$CPPFLAGS -D_ALL_SOURCE"
5558 freebsd*|dragonfly*) #(vi
5559 # 5.x headers associate
5560 # _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L
5561 # _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L
5562 cf_POSIX_C_SOURCE=200112L
5564 CPPFLAGS="$CPPFLAGS -D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
5567 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE"
5570 CPPFLAGS="$CPPFLAGS -D_SGI_SOURCE"
5572 linux*|gnu*|k*bsd*-gnu) #(vi
5576 # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <arpa/inet.h>
5579 # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
5582 # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
5585 CPPFLAGS="$CPPFLAGS -D_OSF_SOURCE"
5588 CPPFLAGS="$CPPFLAGS -D_QNX_SOURCE"
5591 # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
5594 CPPFLAGS="$CPPFLAGS -D__EXTENSIONS__"
5597 AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[
5598 AC_TRY_COMPILE([#include <sys/types.h>],[
5599 #ifndef _XOPEN_SOURCE
5602 [cf_cv_xopen_source=no],
5603 [cf_save="$CPPFLAGS"
5604 CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
5605 AC_TRY_COMPILE([#include <sys/types.h>],[
5606 #ifdef _XOPEN_SOURCE
5609 [cf_cv_xopen_source=no],
5610 [cf_cv_xopen_source=$cf_XOPEN_SOURCE])
5614 if test "$cf_cv_xopen_source" != no ; then
5615 CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE)
5616 CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE)
5617 test "$cf_cv_cc_u_d_options" = yes && \
5618 CPPFLAGS="$CPPFLAGS -U_XOPEN_SOURCE"
5619 CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_cv_xopen_source"
5621 CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)