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.471 2008/11/08 16:03:21 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: 54 updated: 2008/11/08 11:03:00
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} \[$]@
2509 if test "x$cf_with_manpages" = xyes; then
2510 cat >> Makefile <<CF_EOF
2514 cd man && \${MAKE} \${CF_MFLAGS} \[$]@
2518 cat >> Makefile <<CF_EOF
2521 rm -f config.cache config.log config.status Makefile include/ncurses_cfg.h
2522 rm -f headers.sh headers.sed mk_shared_lib.sh
2523 rm -rf \${DIRS_TO_MAKE}
2526 # Special case: tack's manpage lives in its own directory.
2527 if test "x$cf_with_manpages" = xyes; then
2528 if test -d tack ; then
2529 if test -f $srcdir/$tack.h; then
2530 cat >> Makefile <<CF_EOF
2534 cd tack && \${MAKE} \${CF_MFLAGS} \[$]@
2540 dnl If we're installing into a subdirectory of /usr/include, etc., we should
2541 dnl prepend the subdirectory's name to the "#include" paths. It won't hurt
2542 dnl anything, and will make it more standardized. It's awkward to decide this
2543 dnl at configuration because of quoting, so we'll simply make all headers
2544 dnl installed via a script that can do the right thing.
2546 rm -f headers.sed headers.sh
2548 dnl ( generating this script makes the makefiles a little tidier :-)
2549 echo creating headers.sh
2550 cat >headers.sh <<CF_EOF
2552 # This shell script is generated by the 'configure' script. It is invoked in a
2553 # subdirectory of the build tree. It generates a sed-script in the parent
2554 # directory that is used to adjust includes for header files that reside in a
2555 # subdirectory of /usr/include, etc.
2557 while test \[$]# != 3
2559 PRG="\$PRG \[$]1"; shift
2564 TMPSRC=\${TMPDIR-/tmp}/\`basename \$SRC\`\$\$
2565 TMPSED=\${TMPDIR-/tmp}/headers.sed\$\$
2566 echo installing \$SRC in \$DST
2569 if test $WITH_CURSES_H = yes; then
2570 cat >>headers.sh <<CF_EOF
2573 END=\`basename \$DST\`
2574 for i in \`cat \$REF/../*/headers |fgrep -v "#"\`
2576 NAME=\`basename \$i\`
2577 echo "s/<\$NAME>/<\$END\/\$NAME>/" >> \$TMPSED
2587 cat >>headers.sh <<CF_EOF
2590 END=\`basename \$DST\`
2591 for i in \`cat \$REF/../*/headers |fgrep -v "#"\`
2593 NAME=\`basename \$i\`
2594 if test "\$NAME" = "curses.h"
2596 echo "s/<curses.h>/<ncurses.h>/" >> \$TMPSED
2599 echo "s/<\$NAME>/<\$END\/\$NAME>/" >> \$TMPSED
2603 echo "s/<curses.h>/<ncurses.h>/" >> \$TMPSED
2608 cat >>headers.sh <<CF_EOF
2610 sed -f \$TMPSED \$SRC > \$TMPSRC
2611 NAME=\`basename \$SRC\`
2613 if test $WITH_CURSES_H != yes; then
2614 cat >>headers.sh <<CF_EOF
2615 test "\$NAME" = "curses.h" && NAME=ncurses.h
2618 cat >>headers.sh <<CF_EOF
2619 # Just in case someone gzip'd manpages, remove the conflicting copy.
2620 test -f \$DST/\$NAME.gz && rm -f \$DST/\$NAME.gz
2622 eval \$PRG \$TMPSRC \$DST/\$NAME
2623 rm -f \$TMPSRC \$TMPSED
2626 chmod 0755 headers.sh
2628 for cf_dir in $SRC_SUBDIRS
2630 if test ! -d $srcdir/$cf_dir ; then
2634 if test -f $srcdir/$cf_dir/headers; then
2635 $AWK -f $srcdir/mk-hdr.awk \
2636 subset="$LIB_SUBSETS" \
2637 compat="$WITH_CURSES_H" \
2638 $srcdir/$cf_dir/headers >>$cf_dir/Makefile
2641 if test -f $srcdir/$cf_dir/modules; then
2642 if test "$cf_dir" != "c++" ; then
2643 cat >>$cf_dir/Makefile <<"CF_EOF"
2644 depend : ${AUTO_SRC}
2645 makedepend -- ${CPPFLAGS} -- ${C_SRC}
2647 # DO NOT DELETE THIS LINE -- make depend depends on it.
2654 dnl ---------------------------------------------------------------------------
2655 dnl CF_LIB_SONAME version: 3 updated: 2006/12/16 15:55:46
2657 dnl Find the and soname for the given shared library. Set the cache variable
2658 dnl cf_cv_$3_soname to this, unless it is not found. Then set the cache
2659 dnl variable to "unknown".
2663 dnl $3 = library name
2664 AC_DEFUN([CF_LIB_SONAME],
2666 AC_CACHE_CHECK(for soname of $3 library,cf_cv_$3_soname,[
2668 cf_cv_$3_soname=unknown
2669 if test "$cross_compiling" != yes ; then
2670 cat >conftest.$ac_ext <<CF_EOF
2675 ${cf_cv_main_return:-return}(0);
2678 cf_save_LIBS="$LIBS"
2680 if AC_TRY_EVAL(ac_compile) ; then
2681 if AC_TRY_EVAL(ac_link) ; then
2682 cf_cv_$3_soname=`ldd conftest$ac_exeext 2>/dev/null | sed -e 's,^.*/,,' -e 's, .*$,,' | fgrep lib$3.`
2683 test -z "$cf_cv_$3_soname" && cf_cv_$3_soname=unknown
2687 LIBS="$cf_save_LIBS"
2691 dnl ---------------------------------------------------------------------------
2692 dnl CF_LIB_SUFFIX version: 15 updated: 2008/09/13 11:54:48
2694 dnl Compute the library file-suffix from the given model name
2696 dnl $2 = variable to set (the nominal library suffix)
2697 dnl $3 = dependency variable to set (actual filename)
2698 dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
2699 AC_DEFUN([CF_LIB_SUFFIX],
2701 AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
2720 case $cf_cv_system_name in
2746 test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
2747 test -n "$LIB_SUFFIX" && $3="${LIB_SUFFIX}[$]{$3}"
2749 dnl ---------------------------------------------------------------------------
2750 dnl CF_LIB_TYPE version: 4 updated: 2000/10/20 22:57:49
2752 dnl Compute the string to append to -library from the given model name
2754 dnl $2 = variable to set
2755 dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
2756 AC_DEFUN([CF_LIB_TYPE],
2765 test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
2767 dnl ---------------------------------------------------------------------------
2768 dnl CF_LINK_DATAONLY version: 8 updated: 2006/12/16 12:33:30
2769 dnl ----------------
2770 dnl Some systems have a non-ANSI linker that doesn't pull in modules that have
2771 dnl only data (i.e., no functions), for example NeXT. On those systems we'll
2772 dnl have to provide wrappers for global tables to ensure they're linked
2774 AC_DEFUN([CF_LINK_DATAONLY],
2776 AC_MSG_CHECKING([if data-only library module links])
2777 AC_CACHE_VAL(cf_cv_link_dataonly,[
2779 cat >conftest.$ac_ext <<EOF
2780 #line __oline__ "configure"
2781 int testdata[[3]] = { 123, 456, 789 };
2783 if AC_TRY_EVAL(ac_compile) ; then
2784 mv conftest.o data.o && \
2785 ( $AR $AR_OPTS conftest.a data.o ) 2>&AC_FD_CC 1>/dev/null
2787 rm -f conftest.$ac_ext data.o
2788 cat >conftest.$ac_ext <<EOF
2789 #line __oline__ "configure"
2793 ${cf_cv_main_return:-return}(1); /* I'm told this linker is broken */
2795 extern int testdata[[3]];
2796 return testdata[[0]] == 123
2797 && testdata[[1]] == 456
2798 && testdata[[2]] == 789;
2802 if AC_TRY_EVAL(ac_compile); then
2803 mv conftest.o func.o && \
2804 ( $AR $AR_OPTS conftest.a func.o ) 2>&AC_FD_CC 1>/dev/null
2806 rm -f conftest.$ac_ext func.o
2807 ( eval $RANLIB conftest.a ) 2>&AC_FD_CC >/dev/null
2809 LIBS="conftest.a $LIBS"
2813 extern int testfunc();
2814 ${cf_cv_main_return:-return} (!testfunc());
2817 [cf_cv_link_dataonly=yes],
2818 [cf_cv_link_dataonly=no],
2819 [cf_cv_link_dataonly=unknown])
2822 AC_MSG_RESULT($cf_cv_link_dataonly)
2824 if test "$cf_cv_link_dataonly" = no ; then
2825 AC_DEFINE(BROKEN_LINKER)
2830 dnl ---------------------------------------------------------------------------
2831 dnl CF_LINK_FUNCS version: 7 updated: 2006/12/16 12:33:30
2833 dnl Most Unix systems have both link and symlink, a few don't have symlink.
2834 dnl A few non-Unix systems implement symlink, but not link.
2835 dnl A few non-systems implement neither (or have nonfunctional versions).
2836 AC_DEFUN([CF_LINK_FUNCS],
2842 if test "$cross_compiling" = yes ; then
2847 AC_CACHE_CHECK(if link/symlink functions work,cf_cv_link_funcs,[
2849 for cf_func in link symlink ; do
2851 #include <sys/types.h>
2852 #include <sys/stat.h>
2853 #ifdef HAVE_UNISTD_H
2859 char *src = "config.log";
2860 char *dst = "conftest.chk";
2865 fail = ($cf_func("config.log", "conftest.chk") < 0)
2866 || (stat(dst, &dst_sb) < 0)
2867 || (dst_sb.st_mtime != src_sb.st_mtime);
2873 ${cf_cv_main_return:-return} (fail);
2876 cf_cv_link_funcs="$cf_cv_link_funcs $cf_func"
2877 eval 'ac_cv_func_'$cf_func'=yes'],[
2878 eval 'ac_cv_func_'$cf_func'=no'],[
2879 eval 'ac_cv_func_'$cf_func'=error'])
2881 test -z "$cf_cv_link_funcs" && cf_cv_link_funcs=no
2883 test "$ac_cv_func_link" = yes && AC_DEFINE(HAVE_LINK)
2884 test "$ac_cv_func_symlink" = yes && AC_DEFINE(HAVE_SYMLINK)
2887 dnl ---------------------------------------------------------------------------
2888 dnl CF_MAIN_RETURN version: 1 updated: 2006/12/10 09:51:54
2890 dnl Check if a return from main to the shell actually returns the same exit
2891 dnl code. This is true for almost any POSIX environment.
2893 dnl Some very old environments did not flush stdout, etc., on an exit. That
2894 dnl would be a useful case to test for also.
2895 AC_DEFUN([CF_MAIN_RETURN],
2897 cf_cv_main_return=return
2899 dnl ---------------------------------------------------------------------------
2900 dnl CF_MAKEFLAGS version: 12 updated: 2006/10/21 08:27:03
2902 dnl Some 'make' programs support ${MAKEFLAGS}, some ${MFLAGS}, to pass 'make'
2903 dnl options to lower-levels. It's very useful for "make -n" -- if we have it.
2904 dnl (GNU 'make' does both, something POSIX 'make', which happens to make the
2905 dnl ${MAKEFLAGS} variable incompatible because it adds the assignments :-)
2906 AC_DEFUN([CF_MAKEFLAGS],
2908 AC_CACHE_CHECK(for makeflags variable, cf_cv_makeflags,[
2910 for cf_option in '-${MAKEFLAGS}' '${MFLAGS}'
2912 cat >cf_makeflags.tmp <<CF_EOF
2915 @ echo '.$cf_option'
2917 cf_result=`${MAKE-make} -k -f cf_makeflags.tmp 2>/dev/null | sed -e 's,[[ ]]*$,,'`
2918 case "$cf_result" in
2920 cf_result=`${MAKE-make} -k -f cf_makeflags.tmp CC=cc 2>/dev/null`
2921 case "$cf_result" in
2922 .*CC=*) cf_cv_makeflags=
2924 *) cf_cv_makeflags=$cf_option
2930 *) echo "given option \"$cf_option\", no match \"$cf_result\""
2934 rm -f cf_makeflags.tmp
2937 AC_SUBST(cf_cv_makeflags)
2939 dnl ---------------------------------------------------------------------------
2940 dnl CF_MAKE_TAGS version: 2 updated: 2000/10/04 09:18:40
2942 dnl Generate tags/TAGS targets for makefiles. Do not generate TAGS if we have
2943 dnl a monocase filesystem.
2944 AC_DEFUN([CF_MAKE_TAGS],[
2945 AC_REQUIRE([CF_MIXEDCASE_FILENAMES])
2946 AC_CHECK_PROG(MAKE_LOWER_TAGS, ctags, yes, no)
2948 if test "$cf_cv_mixedcase" = yes ; then
2949 AC_CHECK_PROG(MAKE_UPPER_TAGS, etags, yes, no)
2954 if test "$MAKE_UPPER_TAGS" = yes ; then
2959 AC_SUBST(MAKE_UPPER_TAGS)
2961 if test "$MAKE_LOWER_TAGS" = yes ; then
2966 AC_SUBST(MAKE_LOWER_TAGS)
2968 dnl ---------------------------------------------------------------------------
2969 dnl CF_MANPAGE_FORMAT version: 7 updated: 2003/12/20 19:30:34
2970 dnl -----------------
2971 dnl Option to allow user to override automatic configuration of manpage format.
2972 dnl There are several special cases:
2974 dnl gzip - man checks for, can display gzip'd files
2975 dnl compress - man checks for, can display compressed files
2976 dnl BSDI - files in the cat-directories are suffixed ".0"
2977 dnl formatted - installer should format (put files in cat-directory)
2978 dnl catonly - installer should only format, e.g., for a turnkey system.
2980 dnl There are other configurations which this macro does not test, e.g., HPUX's
2981 dnl compressed manpages (but uncompressed manpages are fine, and HPUX's naming
2982 dnl convention would not match our use).
2983 AC_DEFUN([CF_MANPAGE_FORMAT],
2985 AC_REQUIRE([CF_PATHSEP])
2986 AC_MSG_CHECKING(format of man-pages)
2988 AC_ARG_WITH(manpage-format,
2989 [ --with-manpage-format specify manpage-format: gzip/compress/BSDI/normal and
2990 optionally formatted/catonly, e.g., gzip,formatted],
2991 [MANPAGE_FORMAT=$withval],
2992 [MANPAGE_FORMAT=unknown])
2994 test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=unknown
2995 MANPAGE_FORMAT=`echo "$MANPAGE_FORMAT" | sed -e 's/,/ /g'`
2999 case $MANPAGE_FORMAT in
3001 if test -z "$MANPATH" ; then
3002 MANPATH="/usr/man:/usr/share/man"
3005 # look for the 'date' man-page (it's most likely to be installed!)
3011 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATHSEP}"
3012 for cf_dir in $MANPATH; do
3013 test -z "$cf_dir" && cf_dir=/usr/man
3014 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
3016 cf_test=`echo $cf_name | sed -e 's/*//'`
3017 if test "x$cf_test" = "x$cf_name" ; then
3020 *.gz) MANPAGE_FORMAT="$MANPAGE_FORMAT gzip";;
3021 *.Z) MANPAGE_FORMAT="$MANPAGE_FORMAT compress";;
3022 *.0) MANPAGE_FORMAT="$MANPAGE_FORMAT BSDI";;
3023 *) MANPAGE_FORMAT="$MANPAGE_FORMAT normal";;
3037 # if we found a match in either man* or cat*, stop looking
3038 if test -n "$MANPAGE_FORMAT" ; then
3040 test "$cf_preform" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT formatted"
3041 test "$cf_catonly" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT catonly"
3047 test $cf_found=yes && break
3050 # only check the first directory in $MANPATH where we find manpages
3051 if test -n "$MANPAGE_FORMAT" ; then
3055 # if we did not find the example, just assume it is normal
3056 test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=normal
3060 for cf_option in $MANPAGE_FORMAT; do
3061 case $cf_option in #(vi
3062 gzip|compress|BSDI|normal|formatted|catonly)
3065 cf_unknown="$cf_unknown $cf_option"
3072 AC_MSG_RESULT($MANPAGE_FORMAT)
3073 if test -n "$cf_unknown" ; then
3074 AC_MSG_WARN(Unexpected manpage-format $cf_unknown)
3077 dnl ---------------------------------------------------------------------------
3078 dnl CF_MANPAGE_RENAMES version: 7 updated: 2005/06/18 18:51:57
3079 dnl ------------------
3080 dnl The Debian people have their own naming convention for manpages. This
3081 dnl option lets us override the name of the file containing renaming, or
3082 dnl disable it altogether.
3083 AC_DEFUN([CF_MANPAGE_RENAMES],
3085 AC_MSG_CHECKING(for manpage renaming)
3087 AC_ARG_WITH(manpage-renames,
3088 [ --with-manpage-renames specify manpage-renaming],
3089 [MANPAGE_RENAMES=$withval],
3090 [MANPAGE_RENAMES=yes])
3092 case ".$MANPAGE_RENAMES" in #(vi
3096 # Debian 'man' program?
3097 if test -f /etc/debian_version ; then
3098 MANPAGE_RENAMES=`cd $srcdir && pwd`/man/man_db.renames
3105 if test "$MANPAGE_RENAMES" != no ; then
3106 if test -f $srcdir/man/$MANPAGE_RENAMES ; then
3107 MANPAGE_RENAMES=`cd $srcdir/man && pwd`/$MANPAGE_RENAMES
3108 elif test ! -f $MANPAGE_RENAMES ; then
3109 AC_MSG_ERROR(not a filename: $MANPAGE_RENAMES)
3112 test ! -d man && mkdir man
3114 # Construct a sed-script to perform renaming within man-pages
3115 if test -n "$MANPAGE_RENAMES" ; then
3116 test ! -d man && mkdir man
3117 sh $srcdir/man/make_sed.sh $MANPAGE_RENAMES >./edit_man.sed
3121 AC_MSG_RESULT($MANPAGE_RENAMES)
3122 AC_SUBST(MANPAGE_RENAMES)
3124 dnl ---------------------------------------------------------------------------
3125 dnl CF_MANPAGE_SYMLINKS version: 4 updated: 2003/12/13 18:01:58
3126 dnl -------------------
3127 dnl Some people expect each tool to make all aliases for manpages in the
3128 dnl man-directory. This accommodates the older, less-capable implementations
3129 dnl of 'man', and is optional.
3130 AC_DEFUN([CF_MANPAGE_SYMLINKS],
3132 AC_MSG_CHECKING(if manpage aliases will be installed)
3134 AC_ARG_WITH(manpage-aliases,
3135 [ --with-manpage-aliases specify manpage-aliases using .so],
3136 [MANPAGE_ALIASES=$withval],
3137 [MANPAGE_ALIASES=yes])
3139 AC_MSG_RESULT($MANPAGE_ALIASES)
3141 if test "$LN_S" = "ln -s"; then
3148 if test "$MANPAGE_ALIASES" = yes ; then
3149 AC_MSG_CHECKING(if manpage symlinks should be used)
3151 AC_ARG_WITH(manpage-symlinks,
3152 [ --with-manpage-symlinks specify manpage-aliases using symlinks],
3153 [MANPAGE_SYMLINKS=$withval],
3154 [MANPAGE_SYMLINKS=$cf_use_symlinks])
3156 if test "$$cf_use_symlinks" = no; then
3157 if test "$MANPAGE_SYMLINKS" = yes ; then
3158 AC_MSG_WARN(cannot make symlinks, will use .so files)
3163 AC_MSG_RESULT($MANPAGE_SYMLINKS)
3167 dnl ---------------------------------------------------------------------------
3168 dnl CF_MANPAGE_TBL version: 3 updated: 2002/01/19 22:51:32
3170 dnl This option causes manpages to be run through tbl(1) to generate tables
3172 AC_DEFUN([CF_MANPAGE_TBL],
3174 AC_MSG_CHECKING(for manpage tbl)
3176 AC_ARG_WITH(manpage-tbl,
3177 [ --with-manpage-tbl specify manpage processing with tbl],
3178 [MANPAGE_TBL=$withval],
3181 AC_MSG_RESULT($MANPAGE_TBL)
3183 dnl ---------------------------------------------------------------------------
3184 dnl CF_MAN_PAGES version: 35 updated: 2007/03/31 11:47:29
3186 dnl Try to determine if the man-pages on the system are compressed, and if
3187 dnl so, what format is used. Use this information to construct a script that
3188 dnl will install man-pages.
3189 AC_DEFUN([CF_MAN_PAGES],
3191 CF_HELP_MESSAGE(Options to Specify How Manpages are Installed:)
3197 if test "$prefix" = "NONE" ; then
3198 cf_prefix="$ac_default_prefix"
3203 case "$MANPAGE_FORMAT" in # (vi
3218 test ! -d man && mkdir man
3222 case "$MANPAGE_FORMAT" in #(vi
3225 cf_compress=compress
3233 cf_edit_man=./edit_man.sh
3234 cf_man_alias=`pwd`/man_alias.sed
3236 cat >$cf_edit_man <<CF_EOF
3238 # this script is generated by the configure-script CF_MAN_PAGES macro.
3243 NCURSES_MAJOR="$NCURSES_MAJOR"
3244 NCURSES_MINOR="$NCURSES_MINOR"
3245 NCURSES_PATCH="$NCURSES_PATCH"
3247 NCURSES_OSPEED="$NCURSES_OSPEED"
3248 TERMINFO="$TERMINFO"
3250 MKDIRS="sh `cd $srcdir && pwd`/mkdirs.sh"
3253 INSTALL_DATA="$INSTALL_DATA"
3255 transform="$program_transform_name"
3257 TMP=\${TMPDIR-/tmp}/man\$\$
3258 trap "rm -f \$TMP" 0 1 2 5 15
3270 top_srcdir=\[$]srcdir/..
3273 if test "\$form" = normal ; then
3274 if test "$cf_format" = yes ; then
3275 if test "$cf_inboth" = no ; then
3276 sh \[$]0 format \$verb \$mandir \$srcdir \[$]*
3280 cf_subdir=\$mandir/man
3281 cf_tables=$MANPAGE_TBL
3283 cf_subdir=\$mandir/cat
3287 # process the list of source-files
3290 *.orig|*.rej) ;; #(vi
3292 section=\`expr "\$i" : '.*\\.\\([[0-9]]\\)[[xm]]*'\`;
3293 if test \$verb = installing ; then
3294 if test ! -d \$cf_subdir\${section} ; then
3295 \$MKDIRS \$cf_subdir\$section
3299 # replace variables in man page
3300 if test ! -f $cf_man_alias ; then
3301 cat >>$cf_man_alias <<-CF_EOF2
3302 s,@DATADIR@,\$datadir,g
3303 s,@TERMINFO@,\$TERMINFO,g
3304 s,@NCURSES_MAJOR@,\$NCURSES_MAJOR,g
3305 s,@NCURSES_MINOR@,\$NCURSES_MINOR,g
3306 s,@NCURSES_PATCH@,\$NCURSES_PATCH,g
3307 s,@NCURSES_OSPEED@,\$NCURSES_OSPEED,g
3312 cf_NAME=`echo "$cf_name" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
3313 cf_name=`echo $cf_name|sed "$program_transform_name"`
3314 cat >>$cf_edit_man <<-CF_EOF
3315 s,@$cf_NAME@,$cf_name,
3319 cat >>$cf_edit_man <<CF_EOF
3321 echo "...made $cf_man_alias"
3325 cf_source=\`basename \$i\`
3327 test ! -f \$inalias && inalias="\$srcdir/\$inalias"
3328 if test ! -f \$inalias ; then
3329 echo .. skipped \$cf_source
3334 if test "$MANPAGE_ALIASES" != no ; then
3335 cat >>$cf_edit_man <<CF_EOF
3336 aliases=\`sed -f \$top_srcdir/man/manlinks.sed \$inalias |sed -f $cf_man_alias | sort -u\`
3340 if test "$MANPAGE_RENAMES" = no ; then
3341 cat >>$cf_edit_man <<CF_EOF
3342 # perform program transformations for section 1 man pages
3343 if test \$section = 1 ; then
3344 cf_target=\$cf_subdir\${section}/\`echo \$cf_source|sed "\${transform}"\`
3346 cf_target=\$cf_subdir\${section}/\$cf_source
3350 cat >>$cf_edit_man <<CF_EOF
3351 cf_target=\`grep "^\$cf_source" $MANPAGE_RENAMES | $AWK '{print \[$]2}'\`
3352 if test -z "\$cf_target" ; then
3353 echo '? missing rename for '\$cf_source
3354 cf_target="\$cf_source"
3356 cf_target="\$cf_subdir\${section}/\${cf_target}"
3361 cat >>$cf_edit_man <<CF_EOF
3362 sed -f $cf_man_alias \\
3365 if test -f $MANPAGE_RENAMES ; then
3366 cat >>$cf_edit_man <<CF_EOF
3367 < \$i | sed -f `pwd`/edit_man.sed >\$TMP
3370 cat >>$cf_edit_man <<CF_EOF
3375 cat >>$cf_edit_man <<CF_EOF
3376 if test \$cf_tables = yes ; then
3377 tbl \$TMP >\$TMP.out
3382 if test $with_curses_h != yes ; then
3383 cat >>$cf_edit_man <<CF_EOF
3384 sed -e "/\#[ ]*include/s,curses.h,ncurses.h," < \$TMP >\$TMP.out
3389 cat >>$cf_edit_man <<CF_EOF
3390 if test \$form = format ; then
3391 nroff -man \$TMP >\$TMP.out
3396 if test -n "$cf_compress" ; then
3397 cat >>$cf_edit_man <<CF_EOF
3398 if test \$verb = installing ; then
3399 if ( $cf_compress -f \$TMP )
3401 mv \$TMP.$cf_so_strip \$TMP
3404 cf_target="\$cf_target.$cf_so_strip"
3408 case "$MANPAGE_FORMAT" in #(vi
3410 cat >>$cf_edit_man <<CF_EOF
3411 if test \$form = format ; then
3412 # BSDI installs only .0 suffixes in the cat directories
3413 cf_target="\`echo \$cf_target|sed -e 's/\.[[1-9]]\+[[a-z]]*/.0/'\`"
3419 cat >>$cf_edit_man <<CF_EOF
3420 suffix=\`basename \$cf_target | sed -e 's%^[[^.]]*%%'\`
3421 if test \$verb = installing ; then
3422 echo \$verb \$cf_target
3423 \$INSTALL_DATA \$TMP \$cf_target
3424 test -d \$cf_subdir\${section} &&
3425 test -n "\$aliases" && (
3426 cd \$cf_subdir\${section} && (
3427 cf_source=\`echo \$cf_target |sed -e 's%^.*/\([[^/]][[^/]]*/[[^/]][[^/]]*$\)%\1%'\`
3428 test -n "$cf_so_strip" && cf_source=\`echo \$cf_source |sed -e 's%\.$cf_so_strip\$%%'\`
3429 cf_target=\`basename \$cf_target\`
3430 for cf_alias in \$aliases
3432 if test \$section = 1 ; then
3433 cf_alias=\`echo \$cf_alias|sed "\${transform}"\`
3436 if test "$MANPAGE_SYMLINKS" = yes ; then
3437 if test -f \$cf_alias\${suffix} ; then
3438 if ( cmp -s \$cf_target \$cf_alias\${suffix} )
3443 echo .. \$verb alias \$cf_alias\${suffix}
3444 rm -f \$cf_alias\${suffix}
3445 $LN_S \$cf_target \$cf_alias\${suffix}
3446 elif test "\$cf_target" != "\$cf_alias\${suffix}" ; then
3447 echo ".so \$cf_source" >\$TMP
3449 if test -n "$cf_compress" ; then
3450 cat >>$cf_edit_man <<CF_EOF
3451 if test -n "$cf_so_strip" ; then
3452 $cf_compress -f \$TMP
3453 mv \$TMP.$cf_so_strip \$TMP
3457 cat >>$cf_edit_man <<CF_EOF
3458 echo .. \$verb alias \$cf_alias\${suffix}
3459 rm -f \$cf_alias\${suffix}
3460 \$INSTALL_DATA \$TMP \$cf_alias\${suffix}
3465 elif test \$verb = removing ; then
3466 test -f \$cf_target && (
3467 echo \$verb \$cf_target
3470 test -d \$cf_subdir\${section} &&
3471 test -n "\$aliases" && (
3472 cd \$cf_subdir\${section} && (
3473 for cf_alias in \$aliases
3475 if test \$section = 1 ; then
3476 cf_alias=\`echo \$cf_alias|sed "\${transform}"\`
3479 echo .. \$verb alias \$cf_alias\${suffix}
3480 rm -f \$cf_alias\${suffix}
3492 if test $cf_inboth = yes ; then
3493 if test \$form != format ; then
3494 sh \[$]0 format \$verb \$mandir \$srcdir \[$]*
3500 chmod 755 $cf_edit_man
3503 dnl ---------------------------------------------------------------------------
3504 dnl CF_MATH_LIB version: 5 updated: 2000/05/28 01:39:10
3506 dnl Checks for libraries. At least one UNIX system, Apple Macintosh
3507 dnl Rhapsody 5.5, does not have -lm. We cannot use the simpler
3508 dnl AC_CHECK_LIB(m,sin), because that fails for C++.
3509 AC_DEFUN([CF_MATH_LIB],
3511 AC_CACHE_CHECK(if -lm needed for math functions,
3517 [double x = rand(); printf("result = %g\n", ]ifelse($2,,sin(x),$2)[)],
3518 [cf_cv_need_libm=no],
3519 [cf_cv_need_libm=yes])])
3520 if test "$cf_cv_need_libm" = yes
3527 dnl ---------------------------------------------------------------------------
3528 dnl CF_MIXEDCASE_FILENAMES version: 3 updated: 2003/09/20 17:07:55
3529 dnl ----------------------
3530 dnl Check if the file-system supports mixed-case filenames. If we're able to
3531 dnl create a lowercase name and see it as uppercase, it doesn't support that.
3532 AC_DEFUN([CF_MIXEDCASE_FILENAMES],
3534 AC_CACHE_CHECK(if filesystem supports mixed-case filenames,cf_cv_mixedcase,[
3535 if test "$cross_compiling" = yes ; then
3536 case $target_alias in #(vi
3537 *-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-mingw32*|*-uwin*) #(vi
3545 rm -f conftest CONFTEST
3547 if test -f CONFTEST ; then
3552 rm -f conftest CONFTEST
3555 test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES)
3557 dnl ---------------------------------------------------------------------------
3558 dnl CF_MKSTEMP version: 5 updated: 2006/12/16 12:33:30
3560 dnl Check for a working mkstemp. This creates two files, checks that they are
3561 dnl successfully created and distinct (AmigaOS apparently fails on the last).
3562 AC_DEFUN([CF_MKSTEMP],[
3563 AC_CACHE_CHECK(for working mkstemp, cf_cv_func_mkstemp,[
3566 #include <sys/types.h>
3570 #include <sys/stat.h>
3573 char *tmpl = "conftestXXXXXX";
3581 for (n = 0; n < 2; ++n) {
3582 strcpy(name[n], tmpl);
3583 if ((fd = mkstemp(name[n])) >= 0) {
3584 if (!strcmp(name[n], tmpl)
3585 || stat(name[n], &sb) != 0
3586 || (sb.st_mode & S_IFMT) != S_IFREG
3587 || (sb.st_mode & 077) != 0) {
3594 && !strcmp(name[0], name[1]))
3596 ${cf_cv_main_return:-return}(result);
3598 ],[cf_cv_func_mkstemp=yes
3599 ],[cf_cv_func_mkstemp=no
3600 ],[AC_CHECK_FUNC(mkstemp)
3603 if test "$cf_cv_func_mkstemp" = yes ; then
3604 AC_DEFINE(HAVE_MKSTEMP)
3607 dnl ---------------------------------------------------------------------------
3608 dnl CF_MSG_LOG version: 4 updated: 2007/07/29 09:55:12
3610 dnl Write a debug message to config.log, along with the line number in the
3611 dnl configure script.
3612 AC_DEFUN([CF_MSG_LOG],[
3613 echo "${as_me-configure}:__oline__: testing $* ..." 1>&AC_FD_CC
3615 dnl ---------------------------------------------------------------------------
3616 dnl CF_NCURSES_ABI_6 version: 1 updated: 2005/09/17 18:42:49
3617 dnl ----------------
3618 dnl Set ncurses' ABI to 6 unless overridden by explicit configure option, and
3619 dnl warn about this.
3620 AC_DEFUN([CF_NCURSES_ABI_6],[
3621 if test "${with_abi_version+set}" != set; then
3622 case $cf_cv_rel_version in
3624 cf_cv_rel_version=6.0
3626 AC_MSG_WARN(Overriding ABI version to $cf_cv_abi_version)
3631 dnl ---------------------------------------------------------------------------
3632 dnl CF_NO_LEAKS_OPTION version: 4 updated: 2006/12/16 14:24:05
3633 dnl ------------------
3634 dnl see CF_WITH_NO_LEAKS
3635 AC_DEFUN([CF_NO_LEAKS_OPTION],[
3636 AC_MSG_CHECKING(if you want to use $1 for testing)
3639 [AC_DEFINE($3)ifelse([$4],,[
3642 : ${with_cflags:=-g}
3643 : ${with_no_leaks:=yes}
3646 AC_MSG_RESULT(${with_$1:-no})
3648 case .$with_cflags in #(vi
3650 case .$CFLAGS in #(vi
3660 dnl ---------------------------------------------------------------------------
3661 dnl CF_NUMBER_SYNTAX version: 1 updated: 2003/09/20 18:12:49
3662 dnl ----------------
3663 dnl Check if the given variable is a number. If not, report an error.
3664 dnl $1 is the variable
3665 dnl $2 is the message
3666 AC_DEFUN([CF_NUMBER_SYNTAX],[
3667 if test -n "$1" ; then
3672 AC_MSG_ERROR($2 is not a number: $1)
3676 AC_MSG_ERROR($2 value is empty)
3679 dnl ---------------------------------------------------------------------------
3680 dnl CF_OBJ_SUBDIR version: 4 updated: 2002/02/23 20:38:31
3682 dnl Compute the object-directory name from the given model name
3683 AC_DEFUN([CF_OBJ_SUBDIR],
3686 libtool) $2='obj_lo' ;;
3687 normal) $2='objects' ;;
3688 debug) $2='obj_g' ;;
3689 profile) $2='obj_p' ;;
3691 case $cf_cv_system_name in #(vi
3699 dnl ---------------------------------------------------------------------------
3700 dnl CF_PATHSEP version: 3 updated: 2001/01/12 01:23:53
3702 dnl Provide a value for the $PATH and similar separator
3703 AC_DEFUN([CF_PATHSEP],
3705 case $cf_cv_system_name in
3706 os2*) PATHSEP=';' ;;
3709 ifelse($1,,,[$1=$PATHSEP])
3712 dnl ---------------------------------------------------------------------------
3713 dnl CF_PATH_SYNTAX version: 12 updated: 2008/03/23 14:45:59
3715 dnl Check the argument to see that it looks like a pathname. Rewrite it if it
3716 dnl begins with one of the prefix/exec_prefix variables, and then again if the
3717 dnl result begins with 'NONE'. This is necessary to work around autoconf's
3718 dnl delayed evaluation of those symbols.
3719 AC_DEFUN([CF_PATH_SYNTAX],[
3720 if test "x$prefix" != xNONE; then
3721 cf_path_syntax="$prefix"
3723 cf_path_syntax="$ac_default_prefix"
3726 case ".[$]$1" in #(vi
3727 .\[$]\(*\)*|.\'*\'*) #(vi
3731 .[[a-zA-Z]]:[[\\/]]*) #(vi OS/2 EMX
3733 .\[$]{*prefix}*) #(vi
3735 case ".[$]$1" in #(vi
3737 $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
3742 $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
3745 ifelse($2,,[AC_MSG_ERROR([expected a pathname, not \"[$]$1\"])],$2)
3749 dnl ---------------------------------------------------------------------------
3750 dnl CF_POSIX_C_SOURCE version: 6 updated: 2005/07/14 20:25:10
3751 dnl -----------------
3752 dnl Define _POSIX_C_SOURCE to the given level, and _POSIX_SOURCE if needed.
3754 dnl POSIX.1-1990 _POSIX_SOURCE
3755 dnl POSIX.1-1990 and _POSIX_SOURCE and
3756 dnl POSIX.2-1992 C-Language _POSIX_C_SOURCE=2
3758 dnl POSIX.1b-1993 _POSIX_C_SOURCE=199309L
3759 dnl POSIX.1c-1996 _POSIX_C_SOURCE=199506L
3760 dnl X/Open 2000 _POSIX_C_SOURCE=200112L
3763 dnl $1 is the nominal value for _POSIX_C_SOURCE
3764 AC_DEFUN([CF_POSIX_C_SOURCE],
3766 cf_POSIX_C_SOURCE=ifelse($1,,199506L,$1)
3768 cf_save_CFLAGS="$CFLAGS"
3769 cf_save_CPPFLAGS="$CPPFLAGS"
3771 CF_REMOVE_DEFINE(cf_trim_CFLAGS,$cf_save_CFLAGS,_POSIX_C_SOURCE)
3772 CF_REMOVE_DEFINE(cf_trim_CPPFLAGS,$cf_save_CPPFLAGS,_POSIX_C_SOURCE)
3774 AC_CACHE_CHECK(if we should define _POSIX_C_SOURCE,cf_cv_posix_c_source,[
3775 CF_MSG_LOG(if the symbol is already defined go no further)
3776 AC_TRY_COMPILE([#include <sys/types.h>],[
3777 #ifndef _POSIX_C_SOURCE
3780 [cf_cv_posix_c_source=no],
3781 [cf_want_posix_source=no
3782 case .$cf_POSIX_C_SOURCE in #(vi
3784 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
3787 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
3788 cf_want_posix_source=yes
3791 cf_want_posix_source=yes
3794 if test "$cf_want_posix_source" = yes ; then
3795 AC_TRY_COMPILE([#include <sys/types.h>],[
3796 #ifdef _POSIX_SOURCE
3799 cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE")
3801 CF_MSG_LOG(ifdef from value $cf_POSIX_C_SOURCE)
3802 CFLAGS="$cf_trim_CFLAGS"
3803 CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source"
3804 CF_MSG_LOG(if the second compile does not leave our definition intact error)
3805 AC_TRY_COMPILE([#include <sys/types.h>],[
3806 #ifndef _POSIX_C_SOURCE
3809 [cf_cv_posix_c_source=no])
3810 CFLAGS="$cf_save_CFLAGS"
3811 CPPFLAGS="$cf_save_CPPFLAGS"
3815 if test "$cf_cv_posix_c_source" != no ; then
3816 CFLAGS="$cf_trim_CFLAGS"
3817 CPPFLAGS="$cf_trim_CPPFLAGS"
3818 if test "$cf_cv_cc_u_d_options" = yes ; then
3819 cf_temp_posix_c_source=`echo "$cf_cv_posix_c_source" | \
3820 sed -e 's/-D/-U/g' -e 's/=[[^ ]]*//g'`
3821 CPPFLAGS="$CPPFLAGS $cf_temp_posix_c_source"
3823 CPPFLAGS="$CPPFLAGS $cf_cv_posix_c_source"
3827 dnl ---------------------------------------------------------------------------
3828 dnl CF_PREDEFINE version: 1 updated: 2003/07/26 17:53:56
3830 dnl Add definitions to CPPFLAGS to ensure they're predefined for all compiles.
3832 dnl $1 = symbol to test
3833 dnl $2 = value (if any) to use for a predefinition
3834 AC_DEFUN([CF_PREDEFINE],
3836 AC_MSG_CHECKING(if we must define $1)
3837 AC_TRY_COMPILE([#include <sys/types.h>
3841 #endif],[cf_result=no],[cf_result=yes])
3842 AC_MSG_RESULT($cf_result)
3844 if test "$cf_result" = yes ; then
3845 CPPFLAGS="$CPPFLAGS ifelse($2,,-D$1,[-D$1=$2])"
3846 elif test "x$2" != "x" ; then
3847 AC_MSG_CHECKING(checking for compatible value versus $2)
3848 AC_TRY_COMPILE([#include <sys/types.h>
3852 #endif],[cf_result=yes],[cf_result=no])
3853 AC_MSG_RESULT($cf_result)
3854 if test "$cf_result" = no ; then
3855 # perhaps we can override it - try...
3856 CPPFLAGS="$CPPFLAGS -D$1=$2"
3860 dnl ---------------------------------------------------------------------------
3861 dnl CF_PRG_RULES version: 1 updated: 2006/06/03 11:45:08
3863 dnl Append definitions and rules for the given programs to the subdirectory
3864 dnl Makefiles, and the recursion rule for the top-level Makefile.
3867 dnl $1 = script to run
3868 dnl $2 = list of subdirectories
3872 AC_DEFUN([CF_PRG_RULES],
3876 if test ! -d $srcdir/$cf_dir; then
3878 elif test -f $srcdir/$cf_dir/programs; then
3879 $AWK -f $1 $srcdir/$cf_dir/programs >>$cf_dir/Makefile
3884 dnl ---------------------------------------------------------------------------
3885 dnl CF_PROG_AWK version: 1 updated: 2006/09/16 11:40:59
3887 dnl Check for awk, ensure that the check found something.
3888 AC_DEFUN([CF_PROG_AWK],
3891 test -z "$AWK" && AC_MSG_ERROR(No awk program found)
3893 dnl ---------------------------------------------------------------------------
3894 dnl CF_PROG_CC_C_O version: 2 updated: 2006/12/16 15:55:46
3896 dnl Analogous to AC_PROG_CC_C_O, but more useful: tests only $CC, ensures that
3897 dnl the output file can be renamed, and allows for a shell variable that can
3898 dnl be used later. The parameter is either CC or CXX. The result is the
3900 dnl $cf_cv_prog_CC_c_o
3901 dnl $cf_cv_prog_CXX_c_o
3902 AC_DEFUN([CF_PROG_CC_C_O],
3903 [AC_REQUIRE([AC_PROG_CC])dnl
3904 AC_MSG_CHECKING([whether [$]$1 understands -c and -o together])
3905 AC_CACHE_VAL(cf_cv_prog_$1_c_o,
3907 cat > conftest.$ac_ext <<CF_EOF
3911 ${cf_cv_main_return:-return}(0);
3914 # We do the test twice because some compilers refuse to overwrite an
3915 # existing .o file with -o, though they will create one.
3916 ac_try='[$]$1 -c conftest.$ac_ext -o conftest2.$ac_objext >&AC_FD_CC'
3917 if AC_TRY_EVAL(ac_try) &&
3918 test -f conftest2.$ac_objext && AC_TRY_EVAL(ac_try);
3920 eval cf_cv_prog_$1_c_o=yes
3922 eval cf_cv_prog_$1_c_o=no
3926 if test $cf_cv_prog_$1_c_o = yes; then
3927 AC_MSG_RESULT([yes])
3932 dnl ---------------------------------------------------------------------------
3933 dnl CF_PROG_CC_U_D version: 1 updated: 2005/07/14 16:59:30
3935 dnl Check if C (preprocessor) -U and -D options are processed in the order
3936 dnl given rather than by type of option. Some compilers insist on apply all
3937 dnl of the -U options after all of the -D options. Others allow mixing them,
3938 dnl and may predefine symbols that conflict with those we define.
3939 AC_DEFUN([CF_PROG_CC_U_D],
3941 AC_CACHE_CHECK(if $CC -U and -D options work together,cf_cv_cc_u_d_options,[
3942 cf_save_CPPFLAGS="$CPPFLAGS"
3943 CPPFLAGS="-UU_D_OPTIONS -DU_D_OPTIONS -DD_U_OPTIONS -UD_U_OPTIONS"
3946 make an undefined-error
3949 make a defined-error
3952 cf_cv_cc_u_d_options=yes],[
3953 cf_cv_cc_u_d_options=no])
3954 CPPFLAGS="$cf_save_CPPFLAGS"
3957 dnl ---------------------------------------------------------------------------
3958 dnl CF_PROG_EGREP version: 1 updated: 2006/09/16 11:40:59
3960 dnl AC_PROG_EGREP was introduced in autoconf 2.53.
3961 dnl This macro adds a check to ensure the script found something.
3962 AC_DEFUN([CF_PROG_EGREP],
3963 [AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep],
3964 [if echo a | (grep -E '(a|b)') >/dev/null 2>&1
3965 then ac_cv_prog_egrep='grep -E'
3966 else ac_cv_prog_egrep='egrep'
3968 EGREP=$ac_cv_prog_egrep
3970 test -z "$EGREP" && AC_MSG_ERROR(No egrep program found)
3972 dnl ---------------------------------------------------------------------------
3973 dnl CF_PROG_EXT version: 10 updated: 2004/01/03 19:28:18
3975 dnl Compute $PROG_EXT, used for non-Unix ports, such as OS/2 EMX.
3976 AC_DEFUN([CF_PROG_EXT],
3978 AC_REQUIRE([CF_CHECK_CACHE])
3979 case $cf_cv_system_name in
3981 CFLAGS="$CFLAGS -Zmt"
3982 CPPFLAGS="$CPPFLAGS -D__ST_MT_ERRNO__"
3983 CXXFLAGS="$CXXFLAGS -Zmt"
3984 # autoconf's macro sets -Zexe and suffix both, which conflict:w
3985 LDFLAGS="$LDFLAGS -Zmt -Zcrtdll"
3995 test -n "$PROG_EXT" && AC_DEFINE_UNQUOTED(PROG_EXT,"$PROG_EXT")
3997 dnl ---------------------------------------------------------------------------
3998 dnl CF_PROG_INSTALL version: 5 updated: 2002/12/21 22:46:07
4000 dnl Force $INSTALL to be an absolute-path. Otherwise, edit_man.sh and the
4001 dnl misc/tabset install won't work properly. Usually this happens only when
4002 dnl using the fallback mkinstalldirs script
4003 AC_DEFUN([CF_PROG_INSTALL],
4009 CF_DIRNAME(cf_dir,$INSTALL)
4010 test -z "$cf_dir" && cf_dir=.
4011 INSTALL=`cd $cf_dir && pwd`/`echo $INSTALL | sed -e 's%^.*/%%'`
4015 dnl ---------------------------------------------------------------------------
4016 dnl CF_PROG_LDCONFIG version: 1 updated: 2003/09/20 17:07:55
4017 dnl ----------------
4018 dnl Check for ldconfig, needed to fixup shared libraries that would be built
4019 dnl and then used in the install.
4020 AC_DEFUN([CF_PROG_LDCONFIG],[
4021 if test "$cross_compiling" = yes ; then
4024 case "$cf_cv_system_name" in #(vi
4026 test -z "$LDCONFIG" && LDCONFIG="/sbin/ldconfig -R"
4028 *) LDPATH=$PATH:/sbin:/usr/sbin
4029 AC_PATH_PROG(LDCONFIG,ldconfig,,$LDPATH)
4035 dnl ---------------------------------------------------------------------------
4036 dnl CF_PROG_LINT version: 1 updated: 2006/09/16 11:40:59
4038 AC_DEFUN([CF_PROG_LINT],
4040 AC_CHECK_PROGS(LINT, tdlint lint alint)
4043 dnl ---------------------------------------------------------------------------
4044 dnl CF_REGEX version: 3 updated: 1997/11/01 14:26:01
4046 dnl Attempt to determine if we've got one of the flavors of regular-expression
4047 dnl code that we can support.
4048 AC_DEFUN([CF_REGEX],
4050 AC_MSG_CHECKING([for regular-expression headers])
4051 AC_CACHE_VAL(cf_cv_regex,[
4052 AC_TRY_LINK([#include <sys/types.h>
4053 #include <regex.h>],[
4055 int x = regcomp(p, "", 0);
4056 int y = regexec(p, "", 0, 0, 0);
4058 ],[cf_cv_regex="regex.h"],[
4059 AC_TRY_LINK([#include <regexp.h>],[
4060 char *p = compile("", "", "", 0);
4061 int x = step("", "");
4062 ],[cf_cv_regex="regexp.h"],[
4063 cf_save_LIBS="$LIBS"
4065 AC_TRY_LINK([#include <regexpr.h>],[
4066 char *p = compile("", "", "");
4067 int x = step("", "");
4068 ],[cf_cv_regex="regexpr.h"],[LIBS="$cf_save_LIBS"])])])
4070 AC_MSG_RESULT($cf_cv_regex)
4071 case $cf_cv_regex in
4072 regex.h) AC_DEFINE(HAVE_REGEX_H_FUNCS) ;;
4073 regexp.h) AC_DEFINE(HAVE_REGEXP_H_FUNCS) ;;
4074 regexpr.h) AC_DEFINE(HAVE_REGEXPR_H_FUNCS) ;;
4077 dnl ---------------------------------------------------------------------------
4078 dnl CF_REMOVE_DEFINE version: 2 updated: 2005/07/09 16:12:18
4079 dnl ----------------
4080 dnl Remove all -U and -D options that refer to the given symbol from a list
4081 dnl of C compiler options. This works around the problem that not all
4082 dnl compilers process -U and -D options from left-to-right, so a -U option
4083 dnl cannot be used to cancel the effect of a preceding -D option.
4085 dnl $1 = target (which could be the same as the source variable)
4086 dnl $2 = source (including '$')
4087 dnl $3 = symbol to remove
4088 define([CF_REMOVE_DEFINE],
4090 # remove $3 symbol from $2
4092 sed -e 's/-[[UD]]$3\(=[[^ ]]*\)\?[[ ]]/ /g' \
4093 -e 's/-[[UD]]$3\(=[[^ ]]*\)\?[$]//g'`
4095 dnl ---------------------------------------------------------------------------
4096 dnl CF_REMOVE_LIB version: 1 updated: 2007/02/17 14:11:52
4098 dnl Remove the given library from the symbol
4100 dnl $1 = target (which could be the same as the source variable)
4101 dnl $2 = source (including '$')
4102 dnl $3 = library to remove
4103 define([CF_REMOVE_LIB],
4105 # remove $3 library from $2
4106 $1=`echo "$2" | sed -e 's/-l$3[[ ]]//g' -e 's/-l$3[$]//'`
4108 dnl ---------------------------------------------------------------------------
4109 dnl CF_RPATH_HACK version: 4 updated: 2008/09/13 12:53:26
4111 AC_DEFUN([CF_RPATH_HACK],
4113 AC_REQUIRE([CF_SHARED_OPTS])
4114 AC_MSG_CHECKING(for updated LDFLAGS)
4115 if test -n "$LDFLAGS" ; then
4116 AC_MSG_RESULT(maybe)
4117 CF_VERBOSE(...checking LDFLAGS $LDFLAGS)
4118 CF_VERBOSE(...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS)
4119 case "$EXTRA_LDFLAGS" in #(vi
4121 cf_rpath_hack="-Wl,-rpath,"
4133 if test -n "$cf_rpath_hack" ; then
4135 for cf_rpath_src in $LDFLAGS
4137 CF_VERBOSE(Filtering $cf_rpath_src)
4138 case $cf_rpath_src in #(vi
4140 if test "$cf_rpath_hack" = "-R " ; then
4141 cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e 's%-L%-R %'`
4143 cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e s%-L%$cf_rpath_hack%`
4145 CF_VERBOSE(...Filter $cf_rpath_tmp)
4146 EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS"
4149 cf_rpath_dst="$cf_rpath_dst $cf_rpath_src"
4151 LDFLAGS=$cf_rpath_dst
4152 CF_VERBOSE(...checked LDFLAGS $LDFLAGS)
4153 CF_VERBOSE(...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS)
4159 dnl ---------------------------------------------------------------------------
4160 dnl CF_SHARED_OPTS version: 53 updated: 2008/10/25 18:14:20
4163 dnl Attempt to determine the appropriate CC/LD options for creating a shared
4166 dnl Note: ${LOCAL_LDFLAGS} is used to link executables that will run within the
4167 dnl build-tree, i.e., by making use of the libraries that are compiled in ../lib
4168 dnl We avoid compiling-in a ../lib path for the shared library since that can
4169 dnl lead to unexpected results at runtime.
4170 dnl ${LOCAL_LDFLAGS2} has the same intention but assumes that the shared libraries
4171 dnl are compiled in ../../lib
4173 dnl The variable 'cf_cv_do_symlinks' is used to control whether we configure
4174 dnl to install symbolic links to the rel/abi versions of shared libraries.
4176 dnl The variable 'cf_cv_shlib_version' controls whether we use the rel or abi
4177 dnl version when making symbolic links.
4179 dnl The variable 'cf_cv_shlib_version_infix' controls whether shared library
4180 dnl version numbers are infix (ex: libncurses.<ver>.dylib) or postfix
4181 dnl (ex: libncurses.so.<ver>).
4183 dnl Some loaders leave 'so_locations' lying around. It's nice to clean up.
4184 AC_DEFUN([CF_SHARED_OPTS],
4186 AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
4190 INSTALL_LIB="-m 644"
4192 cf_cv_do_symlinks=no
4194 AC_MSG_CHECKING(if release/abi version should be used for shared libs)
4195 AC_ARG_WITH(shlib-version,
4196 [ --with-shlib-version=X Specify rel or abi version for shared libs],
4197 [test -z "$withval" && withval=auto
4198 case $withval in #(vi
4200 cf_cv_shlib_version=auto
4202 rel|abi|auto|no) #(vi
4203 cf_cv_shlib_version=$withval
4206 AC_MSG_ERROR([option value must be one of: rel, abi, auto or no])
4209 ],[cf_cv_shlib_version=auto])
4210 AC_MSG_RESULT($cf_cv_shlib_version)
4214 # Some less-capable ports of gcc support only -fpic
4216 if test "$GCC" = yes
4218 AC_MSG_CHECKING(which $CC option to use)
4219 cf_save_CFLAGS="$CFLAGS"
4220 for CC_SHARED_OPTS in -fPIC -fpic ''
4222 CFLAGS="$cf_save_CFLAGS $CC_SHARED_OPTS"
4223 AC_TRY_COMPILE([#include <stdio.h>],[int x = 1],[break],[])
4225 AC_MSG_RESULT($CC_SHARED_OPTS)
4226 CFLAGS="$cf_save_CFLAGS"
4229 cf_cv_shlib_version_infix=no
4231 case $cf_cv_system_name in
4233 MK_SHARED_LIB='${CC} ${CFLAGS} -o $[@] -Xlinker -soname=`basename $[@]` -nostart -e 0'
4237 MK_SHARED_LIB='sh ../mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
4238 cf_cv_shlib_version=cygdll
4239 cf_cv_shlib_version_infix=cygdll
4240 cat >mk_shared_lib.sh <<-CF_EOF
4243 IMPORT_LIB=\`echo "\[$]1" | sed -e 's/cyg/lib/' -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
4246 Linking shared library
4247 ** SHARED_LIB \[$]SHARED_LIB
4248 ** IMPORT_LIB \[$]IMPORT_LIB
4250 exec \[$]* -shared -Wl,--out-implib=../lib/\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o ../lib/\[$]{SHARED_LIB}
4252 chmod +x mk_shared_lib.sh
4255 EXTRA_CFLAGS="-no-cpp-precomp"
4256 CC_SHARED_OPTS="-dynamic"
4257 MK_SHARED_LIB='${CC} ${CFLAGS} -dynamiclib -install_name ${libdir}/`basename $[@]` -compatibility_version ${ABI_VERSION} -current_version ${ABI_VERSION} -o $[@]'
4258 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi
4259 cf_cv_shlib_version_infix=yes
4260 AC_CACHE_CHECK([if ld -search_paths_first works], cf_cv_ldflags_search_paths_first, [
4261 cf_save_LDFLAGS=$LDFLAGS
4262 LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
4263 AC_TRY_LINK(, [int i;], cf_cv_ldflags_search_paths_first=yes, cf_cv_ldflags_search_paths_first=no)
4264 LDFLAGS=$cf_save_LDFLAGS])
4265 if test $cf_cv_ldflags_search_paths_first = yes; then
4266 LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
4270 # (tested with gcc 2.7.2 -- I don't have c89)
4271 if test "$GCC" = yes; then
4272 LD_SHARED_OPTS='-Xlinker +b -Xlinker ${libdir}'
4275 LD_SHARED_OPTS='-Wl,+b,${libdir}'
4277 MK_SHARED_LIB='${LD} +b ${libdir} -b -o $[@]'
4278 # HP-UX shared libraries must be executable, and should be
4279 # readonly to exploit a quirk in the memory manager.
4280 INSTALL_LIB="-m 555"
4283 if test "$cf_cv_ld_rpath" = yes ; then
4284 if test "$GCC" = yes; then
4285 cf_ld_rpath_opt="-Wl,-rpath,"
4286 EXTRA_LDFLAGS="-Wl,-rpath,\${libdir} $EXTRA_LDFLAGS"
4288 cf_ld_rpath_opt="-rpath "
4289 EXTRA_LDFLAGS="-rpath \${libdir} $EXTRA_LDFLAGS"
4292 # tested with IRIX 5.2 and 'cc'.
4293 if test "$GCC" != yes; then
4294 CC_SHARED_OPTS='-KPIC'
4295 MK_SHARED_LIB='${CC} -shared -rdata_shared -soname `basename $[@]` -o $[@]'
4297 MK_SHARED_LIB='${CC} -shared -Wl,-soname,`basename $[@]` -o $[@]'
4299 cf_cv_rm_so_locs=yes
4301 linux*|gnu*|k*bsd*-gnu)
4302 if test "$DFT_LWR_MODEL" = "shared" ; then
4303 LOCAL_LDFLAGS="-Wl,-rpath,\$(LOCAL_LIBDIR)"
4304 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4306 if test "$cf_cv_ld_rpath" = yes ; then
4307 cf_ld_rpath_opt="-Wl,-rpath,"
4308 EXTRA_LDFLAGS="-Wl,-rpath,\${libdir} $EXTRA_LDFLAGS"
4311 MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
4314 if test "$DFT_LWR_MODEL" = "shared" ; then
4315 LOCAL_LDFLAGS="-Wl,-rpath,\$(LOCAL_LIBDIR)"
4316 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4318 if test "$cf_cv_ld_rpath" = yes ; then
4319 cf_ld_rpath_opt="-Wl,-rpath,"
4320 EXTRA_LDFLAGS="-Wl,-rpath,\${libdir} $EXTRA_LDFLAGS"
4322 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
4324 MK_SHARED_LIB='${CC} ${CFLAGS} -Wl,-Bshareable,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
4326 nto-qnx*|openbsd*|freebsd[[12]].*)
4327 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
4328 MK_SHARED_LIB='${LD} -Bshareable -o $[@]'
4329 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
4332 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
4333 if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_ld_rpath" = yes ; then
4334 LOCAL_LDFLAGS="-rpath \$(LOCAL_LIBDIR)"
4335 LOCAL_LDFLAGS2="-rpath \${libdir} $LOCAL_LDFLAGS"
4336 cf_ld_rpath_opt="-rpath "
4337 EXTRA_LDFLAGS="-rpath \${libdir} $EXTRA_LDFLAGS"
4340 MK_SHARED_LIB='${LD} -Bshareable -soname=`basename $[@]` -o $[@]'
4343 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
4344 test "$cf_cv_ld_rpath" = yes && cf_ld_rpath_opt="-Wl,-rpath,"
4345 if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_ld_rpath" = yes ; then
4346 LOCAL_LDFLAGS="-Wl,-rpath,\$(LOCAL_LIBDIR)"
4347 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4348 EXTRA_LDFLAGS="-Wl,-rpath,\${libdir} $EXTRA_LDFLAGS"
4349 if test "$cf_cv_shlib_version" = auto; then
4350 if test -f /usr/libexec/ld.elf_so; then
4351 cf_cv_shlib_version=abi
4353 cf_cv_shlib_version=rel
4357 MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname' -o $[@]'
4359 MK_SHARED_LIB='${LD} -Bshareable -o $[@]'
4363 # tested with OSF/1 V3.2 and 'cc'
4364 # tested with OSF/1 V3.2 and gcc 2.6.3 (but the c++ demo didn't
4365 # link with shared libs).
4366 MK_SHARED_LIB='${LD} -set_version ${REL_VERSION}:${ABI_VERSION} -expect_unresolved "*" -shared -soname `basename $[@]`'
4369 MK_SHARED_LIB="${MK_SHARED_LIB} -msym"
4372 MK_SHARED_LIB="${MK_SHARED_LIB}"' -o $[@]'
4373 if test "$DFT_LWR_MODEL" = "shared" ; then
4374 LOCAL_LDFLAGS="-Wl,-rpath,\$(LOCAL_LIBDIR)"
4375 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4377 if test "$cf_cv_ld_rpath" = yes ; then
4378 cf_ld_rpath_opt="-rpath"
4379 # EXTRA_LDFLAGS="$LOCAL_LDFLAGS $EXTRA_LDFLAGS"
4381 cf_cv_rm_so_locs=yes
4383 sco3.2v5*) # (also uw2* and UW7) hops 13-Apr-98
4384 # tested with osr5.0.5
4385 if test "$GCC" != yes; then
4386 CC_SHARED_OPTS='-belf -KPIC'
4388 MK_SHARED_LIB='${LD} -dy -G -h `basename $[@] .${REL_VERSION}`.${ABI_VERSION} -o [$]@'
4389 if test "$cf_cv_ld_rpath" = yes ; then
4390 # only way is to set LD_RUN_PATH but no switch for it
4393 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
4394 LINK_PROGS='LD_RUN_PATH=${libdir}'
4395 LINK_TESTS='Pwd=`pwd`;LD_RUN_PATH=`dirname $${Pwd}`/lib'
4398 # tested with SunOS 4.1.1 and gcc 2.7.0
4399 if test "$GCC" != yes; then
4400 CC_SHARED_OPTS='-KPIC'
4402 MK_SHARED_LIB='${LD} -assert pure-text -o $[@]'
4403 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
4406 # tested with SunOS 5.5.1 (solaris 2.5.1) and gcc 2.7.2
4407 # tested with SunOS 5.10 (solaris 10) and gcc 3.4.3
4408 if test "$DFT_LWR_MODEL" = "shared" ; then
4409 LOCAL_LDFLAGS="-R \$(LOCAL_LIBDIR):\${libdir}"
4410 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4412 if test "$cf_cv_ld_rpath" = yes ; then
4413 cf_ld_rpath_opt="-R"
4414 EXTRA_LDFLAGS="$LOCAL_LDFLAGS $EXTRA_LDFLAGS"
4417 if test "$GCC" != yes; then
4418 CC_SHARED_OPTS='-xcode=pic32'
4419 MK_SHARED_LIB='${CC} -dy -G -h '$cf_cv_shared_soname' -o $[@]'
4421 MK_SHARED_LIB='${CC} -shared -dy -G -h '$cf_cv_shared_soname' -o $[@]'
4425 # tested with UnixWare 7.1.0 (gcc 2.95.2 and cc)
4426 if test "$GCC" != yes; then
4427 CC_SHARED_OPTS='-KPIC'
4429 MK_SHARED_LIB='${LD} -d y -G -o [$]@'
4432 CC_SHARED_OPTS='unknown'
4433 MK_SHARED_LIB='echo unknown'
4437 # This works if the last tokens in $MK_SHARED_LIB are the -o target.
4438 case "$cf_cv_shlib_version" in #(vi
4440 case "$MK_SHARED_LIB" in #(vi
4442 test "$cf_cv_do_symlinks" = no && cf_cv_do_symlinks=yes
4445 AC_MSG_WARN(ignored --with-shlib-version)
4451 if test -n "$cf_ld_rpath_opt" ; then
4452 AC_MSG_CHECKING(if we need a space after rpath option)
4453 cf_save_LIBS="$LIBS"
4454 LIBS="$LIBS ${cf_ld_rpath_opt}$libdir"
4455 AC_TRY_LINK(, , cf_rpath_space=no, cf_rpath_space=yes)
4456 LIBS="$cf_save_LIBS"
4457 AC_MSG_RESULT($cf_rpath_space)
4458 test "$cf_rpath_space" = yes && cf_ld_rpath_opt="$cf_ld_rpath_opt "
4459 MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${libdir}"
4462 AC_SUBST(CC_SHARED_OPTS)
4463 AC_SUBST(LD_SHARED_OPTS)
4464 AC_SUBST(MK_SHARED_LIB)
4465 AC_SUBST(LINK_PROGS)
4466 AC_SUBST(LINK_TESTS)
4467 AC_SUBST(EXTRA_LDFLAGS)
4468 AC_SUBST(LOCAL_LDFLAGS)
4469 AC_SUBST(LOCAL_LDFLAGS2)
4470 AC_SUBST(INSTALL_LIB)
4472 dnl ---------------------------------------------------------------------------
4473 dnl CF_SHARED_SONAME version: 3 updated: 2008/09/08 18:34:43
4474 dnl ----------------
4475 dnl utility macro for CF_SHARED_OPTS, constructs "$cf_cv_shared_soname" for
4476 dnl substitution into MK_SHARED_LIB string for the "-soname" (or similar)
4479 dnl $1 is the default that should be used for "$cf_cv_shlib_version".
4480 dnl If missing, use "rel".
4481 define([CF_SHARED_SONAME],
4483 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=ifelse($1,,rel,$1)
4484 if test "$cf_cv_shlib_version" = rel; then
4485 cf_cv_shared_soname='`basename $[@] .${REL_VERSION}`.${ABI_VERSION}'
4487 cf_cv_shared_soname='`basename $[@]`'
4490 dnl ---------------------------------------------------------------------------
4491 dnl CF_SIGWINCH version: 1 updated: 2006/04/02 16:41:09
4493 dnl Use this macro after CF_XOPEN_SOURCE, but do not require it (not all
4494 dnl programs need this test).
4496 dnl This is really a MacOS X 10.4.3 workaround. Defining _POSIX_C_SOURCE
4497 dnl forces SIGWINCH to be undefined (breaks xterm, ncurses). Oddly, the struct
4498 dnl winsize declaration is left alone - we may revisit this if Apple choose to
4499 dnl break that part of the interface as well.
4500 AC_DEFUN([CF_SIGWINCH],
4502 AC_CACHE_CHECK(if SIGWINCH is defined,cf_cv_define_sigwinch,[
4504 #include <sys/types.h>
4505 #include <sys/signal.h>
4506 ],[int x = SIGWINCH],
4507 [cf_cv_define_sigwinch=yes],
4509 #undef _XOPEN_SOURCE
4510 #undef _POSIX_SOURCE
4511 #undef _POSIX_C_SOURCE
4512 #include <sys/types.h>
4513 #include <sys/signal.h>
4514 ],[int x = SIGWINCH],
4515 [cf_cv_define_sigwinch=maybe],
4516 [cf_cv_define_sigwinch=no])
4520 if test "$cf_cv_define_sigwinch" = maybe ; then
4521 AC_CACHE_CHECK(for actual SIGWINCH definition,cf_cv_fixup_sigwinch,[
4522 cf_cv_fixup_sigwinch=unknown
4524 while test $cf_sigwinch != 1
4527 #undef _XOPEN_SOURCE
4528 #undef _POSIX_SOURCE
4529 #undef _POSIX_C_SOURCE
4530 #include <sys/types.h>
4531 #include <sys/signal.h>
4533 #if SIGWINCH != $cf_sigwinch
4537 [cf_cv_fixup_sigwinch=$cf_sigwinch
4540 cf_sigwinch=`expr $cf_sigwinch - 1`
4544 if test "$cf_cv_fixup_sigwinch" != unknown ; then
4545 CPPFLAGS="$CPPFLAGS -DSIGWINCH=$cf_cv_fixup_sigwinch"
4549 dnl ---------------------------------------------------------------------------
4550 dnl CF_SIG_ATOMIC_T version: 2 updated: 2005/09/18 17:27:12
4552 dnl signal handler, but there are some gcc depedencies in that recommendation.
4554 AC_DEFUN([CF_SIG_ATOMIC_T],
4556 AC_MSG_CHECKING(for signal global datatype)
4557 AC_CACHE_VAL(cf_cv_sig_atomic_t,[
4559 "volatile sig_atomic_t" \
4564 #include <sys/types.h>
4570 static void handler(int sig)
4574 [signal(SIGINT, handler);
4576 [cf_cv_sig_atomic_t=$cf_type],
4577 [cf_cv_sig_atomic_t=no])
4578 test "$cf_cv_sig_atomic_t" != no && break
4581 AC_MSG_RESULT($cf_cv_sig_atomic_t)
4582 test "$cf_cv_sig_atomic_t" != no && AC_DEFINE_UNQUOTED(SIG_ATOMIC_T, $cf_cv_sig_atomic_t)
4584 dnl ---------------------------------------------------------------------------
4585 dnl CF_SIZECHANGE version: 8 updated: 2000/11/04 12:22:16
4587 dnl Check for definitions & structures needed for window size-changing
4588 dnl FIXME: check that this works with "snake" (HP-UX 10.x)
4589 AC_DEFUN([CF_SIZECHANGE],
4591 AC_REQUIRE([CF_STRUCT_TERMIOS])
4592 AC_CACHE_CHECK(declaration of size-change, cf_cv_sizechange,[
4593 cf_cv_sizechange=unknown
4594 cf_save_CPPFLAGS="$CPPFLAGS"
4596 for cf_opts in "" "NEED_PTEM_H"
4599 CPPFLAGS="$cf_save_CPPFLAGS"
4600 test -n "$cf_opts" && CPPFLAGS="$CPPFLAGS -D$cf_opts"
4601 AC_TRY_COMPILE([#include <sys/types.h>
4602 #ifdef HAVE_TERMIOS_H
4603 #include <termios.h>
4605 #ifdef HAVE_TERMIO_H
4610 /* This is a workaround for SCO: they neglected to define struct winsize in
4611 * termios.h -- it's only in termio.h and ptem.h
4613 #include <sys/stream.h>
4614 #include <sys/ptem.h>
4616 #if !defined(sun) || !defined(HAVE_TERMIOS_H)
4617 #include <sys/ioctl.h>
4621 struct ttysize win; /* FIXME: what system is this? */
4622 int y = win.ts_lines;
4623 int x = win.ts_cols;
4630 no TIOCGSIZE or TIOCGWINSZ
4631 #endif /* TIOCGWINSZ */
4632 #endif /* TIOCGSIZE */
4634 [cf_cv_sizechange=yes],
4635 [cf_cv_sizechange=no])
4637 CPPFLAGS="$cf_save_CPPFLAGS"
4638 if test "$cf_cv_sizechange" = yes ; then
4639 echo "size-change succeeded ($cf_opts)" >&AC_FD_CC
4640 test -n "$cf_opts" && cf_cv_sizechange="$cf_opts"
4645 if test "$cf_cv_sizechange" != no ; then
4646 AC_DEFINE(HAVE_SIZECHANGE)
4647 case $cf_cv_sizechange in #(vi
4649 AC_DEFINE_UNQUOTED($cf_cv_sizechange )
4654 dnl ---------------------------------------------------------------------------
4655 dnl CF_SRC_MODULES version: 18 updated: 2005/05/28 12:58:54
4657 dnl For each parameter, test if the source-directory exists, and if it contains
4658 dnl a 'modules' file. If so, add to the list $cf_cv_src_modules which we'll
4659 dnl use in CF_LIB_RULES.
4661 dnl This uses the configured value to make the lists SRC_SUBDIRS and
4662 dnl SUB_MAKEFILES which are used in the makefile-generation scheme.
4663 AC_DEFUN([CF_SRC_MODULES],
4665 AC_MSG_CHECKING(for src modules)
4667 # dependencies and linker-arguments for test-programs
4668 TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEPS"
4669 TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEP2"
4670 if test "$DFT_LWR_MODEL" = "libtool"; then
4671 TEST_ARGS="${TEST_DEPS}"
4672 TEST_ARG2="${TEST_DEP2}"
4674 TEST_ARGS="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARGS"
4675 TEST_ARG2="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARG2"
4681 if test -f $srcdir/$cf_dir/modules; then
4683 # We may/may not have tack in the distribution, though the
4685 if test $cf_dir = tack ; then
4686 if test ! -f $srcdir/${cf_dir}/${cf_dir}.h; then
4691 if test -z "$cf_cv_src_modules"; then
4692 cf_cv_src_modules=$cf_dir
4694 cf_cv_src_modules="$cf_cv_src_modules $cf_dir"
4697 # Make the ncurses_cfg.h file record the library interface files as
4698 # well. These are header files that are the same name as their
4699 # directory. Ncurses is the only library that does not follow
4701 if test $cf_dir = tack ; then
4703 elif test -f $srcdir/${cf_dir}/${cf_dir}.h; then
4704 CF_UPPER(cf_have_include,$cf_dir)
4705 AC_DEFINE_UNQUOTED(HAVE_${cf_have_include}_H)
4706 AC_DEFINE_UNQUOTED(HAVE_LIB${cf_have_include})
4707 TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${cf_dir}${DFT_DEP_SUFFIX} $TEST_DEPS"
4708 TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${cf_dir}${DFT_DEP_SUFFIX} $TEST_DEP2"
4709 if test "$DFT_LWR_MODEL" = "libtool"; then
4710 TEST_ARGS="${TEST_DEPS}"
4711 TEST_ARG2="${TEST_DEP2}"
4713 TEST_ARGS="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARGS"
4714 TEST_ARG2="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARG2"
4719 AC_MSG_RESULT($cf_cv_src_modules)
4721 TEST_ARGS="-L${LIB_DIR} $TEST_ARGS"
4722 TEST_ARG2="-L${LIB_2ND} $TEST_ARG2"
4730 SRC_SUBDIRS="man include"
4731 for cf_dir in $cf_cv_src_modules
4733 SRC_SUBDIRS="$SRC_SUBDIRS $cf_dir"
4735 SRC_SUBDIRS="$SRC_SUBDIRS test"
4736 test -z "$MAKE_TERMINFO" && SRC_SUBDIRS="$SRC_SUBDIRS misc"
4737 test "$cf_with_cxx_binding" != no && SRC_SUBDIRS="$SRC_SUBDIRS c++"
4740 if test "$cf_cv_prog_gnat_correct" = yes && test -f $srcdir/Ada95/Makefile.in; then
4741 SRC_SUBDIRS="$SRC_SUBDIRS Ada95"
4742 ADA_SUBDIRS="gen src samples"
4746 for cf_dir in $SRC_SUBDIRS
4748 SUB_MAKEFILES="$SUB_MAKEFILES $cf_dir/Makefile"
4751 if test -n "$ADA_SUBDIRS"; then
4752 for cf_dir in $ADA_SUBDIRS
4754 SUB_MAKEFILES="$SUB_MAKEFILES Ada95/$cf_dir/Makefile"
4756 AC_SUBST(ADA_SUBDIRS)
4759 dnl ---------------------------------------------------------------------------
4760 dnl CF_STDCPP_LIBRARY version: 5 updated: 2000/08/12 23:18:52
4761 dnl -----------------
4762 dnl Check for -lstdc++, which is GNU's standard C++ library.
4763 AC_DEFUN([CF_STDCPP_LIBRARY],
4765 if test -n "$GXX" ; then
4766 case $cf_cv_system_name in #(vi
4768 cf_stdcpp_libname=stdcpp
4771 cf_stdcpp_libname=stdc++
4774 AC_CACHE_CHECK(for library $cf_stdcpp_libname,cf_cv_libstdcpp,[
4776 LIBS="$LIBS -l$cf_stdcpp_libname"
4778 #include <strstream.h>],[
4780 strstreambuf foo(buf, sizeof(buf))
4782 [cf_cv_libstdcpp=yes],
4783 [cf_cv_libstdcpp=no])
4786 test "$cf_cv_libstdcpp" = yes && CXXLIBS="$CXXLIBS -l$cf_stdcpp_libname"
4789 dnl ---------------------------------------------------------------------------
4790 dnl CF_STRIP_G_OPT version: 3 updated: 2002/12/21 19:25:52
4792 dnl Remove "-g" option from the compiler options
4793 AC_DEFUN([CF_STRIP_G_OPT],
4794 [$1=`echo ${$1} | sed -e 's%-g %%' -e 's%-g$%%'`])dnl
4795 dnl ---------------------------------------------------------------------------
4796 dnl CF_STRUCT_SIGACTION version: 3 updated: 2000/08/12 23:18:52
4797 dnl -------------------
4798 dnl Check if we need _POSIX_SOURCE defined to use struct sigaction. We'll only
4799 dnl do this if we've found the sigaction function.
4801 dnl If needed, define SVR4_ACTION.
4802 AC_DEFUN([CF_STRUCT_SIGACTION],[
4803 if test "$ac_cv_func_sigaction" = yes; then
4804 AC_MSG_CHECKING(whether sigaction needs _POSIX_SOURCE)
4806 #include <sys/types.h>
4807 #include <signal.h>],
4808 [struct sigaction act],
4812 #define _POSIX_SOURCE
4813 #include <sys/types.h>
4814 #include <signal.h>],
4815 [struct sigaction act],
4817 AC_DEFINE(SVR4_ACTION)],
4818 [sigact_bad=unknown])])
4819 AC_MSG_RESULT($sigact_bad)
4822 dnl ---------------------------------------------------------------------------
4823 dnl CF_STRUCT_TERMIOS version: 5 updated: 2000/11/04 12:22:46
4824 dnl -----------------
4825 dnl Some machines require _POSIX_SOURCE to completely define struct termios.
4826 dnl If so, define SVR4_TERMIO
4827 AC_DEFUN([CF_STRUCT_TERMIOS],[
4833 if test "$ISC" = yes ; then
4834 AC_CHECK_HEADERS( sys/termio.h )
4836 if test "$ac_cv_header_termios_h" = yes ; then
4837 case "$CFLAGS $CPPFLAGS" in
4839 termios_bad=dunno ;;
4840 *) termios_bad=maybe ;;
4842 if test "$termios_bad" = maybe ; then
4843 AC_MSG_CHECKING(whether termios.h needs _POSIX_SOURCE)
4844 AC_TRY_COMPILE([#include <termios.h>],
4845 [struct termios foo; int x = foo.c_iflag],
4848 #define _POSIX_SOURCE
4849 #include <termios.h>],
4850 [struct termios foo; int x = foo.c_iflag],
4851 termios_bad=unknown,
4852 termios_bad=yes AC_DEFINE(SVR4_TERMIO))
4854 AC_MSG_RESULT($termios_bad)
4858 dnl ---------------------------------------------------------------------------
4859 dnl CF_SUBDIR_PATH version: 5 updated: 2007/07/29 09:55:12
4861 dnl Construct a search-list for a nonstandard header/lib-file
4862 dnl $1 = the variable to return as result
4863 dnl $2 = the package name
4864 dnl $3 = the subdirectory, e.g., bin, include or lib
4865 AC_DEFUN([CF_SUBDIR_PATH],
4868 CF_ADD_SUBDIR_PATH($1,$2,$3,/usr,$prefix)
4869 CF_ADD_SUBDIR_PATH($1,$2,$3,$prefix,NONE)
4870 CF_ADD_SUBDIR_PATH($1,$2,$3,/usr/local,$prefix)
4871 CF_ADD_SUBDIR_PATH($1,$2,$3,/opt,$prefix)
4872 CF_ADD_SUBDIR_PATH($1,$2,$3,[$]HOME,$prefix)
4874 dnl ---------------------------------------------------------------------------
4875 dnl CF_SUBST version: 4 updated: 2006/06/17 12:33:03
4877 dnl Shorthand macro for substituting things that the user may override
4878 dnl with an environment variable.
4880 dnl $1 = long/descriptive name
4881 dnl $2 = environment variable
4882 dnl $3 = default value
4883 AC_DEFUN([CF_SUBST],
4884 [AC_CACHE_VAL(cf_cv_subst_$2,[
4885 AC_MSG_CHECKING(for $1 (symbol $2))
4886 CF_SUBST_IF([-z "[$]$2"], [$2], [$3])
4887 cf_cv_subst_$2=[$]$2
4888 AC_MSG_RESULT([$]$2)
4891 dnl ---------------------------------------------------------------------------
4892 dnl CF_SUBST_IF version: 2 updated: 2006/06/17 12:33:03
4894 dnl Shorthand macro for substituting things that the user may override
4895 dnl with an environment variable.
4897 dnl $1 = condition to pass to "test"
4898 dnl $2 = environment variable
4899 dnl $3 = value if the test succeeds
4900 dnl $4 = value if the test fails
4901 AC_DEFUN([CF_SUBST_IF],
4910 dnl ---------------------------------------------------------------------------
4911 dnl CF_SUBST_NCURSES_VERSION version: 8 updated: 2006/09/16 11:40:59
4912 dnl ------------------------
4913 dnl Get the version-number for use in shared-library naming, etc.
4914 AC_DEFUN([CF_SUBST_NCURSES_VERSION],
4916 AC_REQUIRE([CF_PROG_EGREP])
4917 NCURSES_MAJOR="`$ac_cv_prog_egrep '^NCURSES_MAJOR[[ ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`"
4918 NCURSES_MINOR="`$ac_cv_prog_egrep '^NCURSES_MINOR[[ ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`"
4919 NCURSES_PATCH="`$ac_cv_prog_egrep '^NCURSES_PATCH[[ ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`"
4920 cf_cv_abi_version=${NCURSES_MAJOR}
4921 cf_cv_rel_version=${NCURSES_MAJOR}.${NCURSES_MINOR}
4922 dnl Show the computed version, for logging
4923 cf_cv_timestamp=`date`
4924 AC_MSG_RESULT(Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp))
4925 dnl We need these values in the generated headers
4926 AC_SUBST(NCURSES_MAJOR)
4927 AC_SUBST(NCURSES_MINOR)
4928 AC_SUBST(NCURSES_PATCH)
4929 dnl We need these values in the generated makefiles
4930 AC_SUBST(cf_cv_rel_version)
4931 AC_SUBST(cf_cv_abi_version)
4932 AC_SUBST(cf_cv_builtin_bool)
4933 AC_SUBST(cf_cv_header_stdbool_h)
4934 AC_SUBST(cf_cv_type_of_bool)dnl
4936 dnl ---------------------------------------------------------------------------
4937 dnl CF_SYS_TIME_SELECT version: 4 updated: 2000/10/04 09:18:40
4938 dnl ------------------
4939 dnl Check if we can include <sys/time.h> with <sys/select.h>; this breaks on
4940 dnl older SCO configurations.
4941 AC_DEFUN([CF_SYS_TIME_SELECT],
4943 AC_MSG_CHECKING(if sys/time.h works with sys/select.h)
4944 AC_CACHE_VAL(cf_cv_sys_time_select,[
4946 #include <sys/types.h>
4947 #ifdef HAVE_SYS_TIME_H
4948 #include <sys/time.h>
4950 #ifdef HAVE_SYS_SELECT_H
4951 #include <sys/select.h>
4953 ],[],[cf_cv_sys_time_select=yes],
4954 [cf_cv_sys_time_select=no])
4956 AC_MSG_RESULT($cf_cv_sys_time_select)
4957 test "$cf_cv_sys_time_select" = yes && AC_DEFINE(HAVE_SYS_TIME_SELECT)
4959 dnl ---------------------------------------------------------------------------
4960 dnl CF_TOP_BUILDDIR version: 1 updated: 2006/10/15 16:33:23
4962 dnl Define a top_builddir symbol, for applications that need an absolute path.
4963 AC_DEFUN([CF_TOP_BUILDDIR],
4966 AC_SUBST(top_builddir)
4968 dnl ---------------------------------------------------------------------------
4969 dnl CF_TYPEOF_CHTYPE version: 8 updated: 2006/12/16 12:33:30
4970 dnl ----------------
4971 dnl Determine the type we should use for chtype (and attr_t, which is treated
4972 dnl as the same thing). We want around 32 bits, so on most machines want a
4973 dnl long, but on newer 64-bit machines, probably want an int. If we're using
4974 dnl wide characters, we have to have a type compatible with that, as well.
4975 AC_DEFUN([CF_TYPEOF_CHTYPE],
4977 AC_MSG_CHECKING([for type of chtype])
4978 AC_CACHE_VAL(cf_cv_typeof_chtype,[
4980 #define WANT_BITS 31
4984 FILE *fp = fopen("cf_test.out", "w");
4986 char *result = "long";
4987 if (sizeof(unsigned long) > sizeof(unsigned int)) {
4990 for (n = 0; n < WANT_BITS; n++) {
4993 if (y != 1 || x == 0) {
4999 * If x is nonzero, an int is big enough for the bits
5002 result = (x != 0) ? "int" : "long";
5007 ${cf_cv_main_return:-return}(0);
5010 [cf_cv_typeof_chtype=`cat cf_test.out`],
5011 [cf_cv_typeof_chtype=long],
5012 [cf_cv_typeof_chtype=long])
5015 AC_MSG_RESULT($cf_cv_typeof_chtype)
5017 AC_SUBST(cf_cv_typeof_chtype)
5018 AC_DEFINE_UNQUOTED(TYPEOF_CHTYPE,$cf_cv_typeof_chtype)
5020 dnl ---------------------------------------------------------------------------
5021 dnl CF_TYPE_SIGACTION version: 3 updated: 2000/08/12 23:18:52
5022 dnl -----------------
5024 AC_DEFUN([CF_TYPE_SIGACTION],
5026 AC_MSG_CHECKING([for type sigaction_t])
5027 AC_CACHE_VAL(cf_cv_type_sigaction,[
5029 #include <signal.h>],
5031 [cf_cv_type_sigaction=yes],
5032 [cf_cv_type_sigaction=no])])
5033 AC_MSG_RESULT($cf_cv_type_sigaction)
5034 test "$cf_cv_type_sigaction" = yes && AC_DEFINE(HAVE_TYPE_SIGACTION)
5036 dnl ---------------------------------------------------------------------------
5037 dnl CF_UNSIGNED_LITERALS version: 2 updated: 1998/02/07 22:10:16
5038 dnl --------------------
5039 dnl Test if the compiler supports 'U' and 'L' suffixes. Only old compilers
5040 dnl won't, but they're still there.
5041 AC_DEFUN([CF_UNSIGNED_LITERALS],
5043 AC_MSG_CHECKING([if unsigned literals are legal])
5044 AC_CACHE_VAL(cf_cv_unsigned_literals,[
5045 AC_TRY_COMPILE([],[long x = 1L + 1UL + 1U + 1],
5046 [cf_cv_unsigned_literals=yes],
5047 [cf_cv_unsigned_literals=no])
5049 AC_MSG_RESULT($cf_cv_unsigned_literals)
5051 dnl ---------------------------------------------------------------------------
5052 dnl CF_UPPER version: 5 updated: 2001/01/29 23:40:59
5054 dnl Make an uppercase version of a variable
5055 dnl $1=uppercase($2)
5056 AC_DEFUN([CF_UPPER],
5058 $1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
5060 dnl ---------------------------------------------------------------------------
5061 dnl CF_UTF8_LIB version: 5 updated: 2008/10/17 19:37:52
5063 dnl Check for multibyte support, and if not found, utf8 compatibility library
5064 AC_DEFUN([CF_UTF8_LIB],
5066 AC_CACHE_CHECK(for multibyte character support,cf_cv_utf8_lib,[
5067 cf_save_LIBS="$LIBS"
5069 #include <stdlib.h>],[putwc(0,0);],
5070 [cf_cv_utf8_lib=yes],
5072 #include <libutf8.h>],[putwc(0,0);],utf8,
5073 [cf_cv_utf8_lib=add-on],
5074 [cf_cv_utf8_lib=no])
5077 # HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
5079 if test "$cf_cv_utf8_lib" = "add-on" ; then
5080 AC_DEFINE(HAVE_LIBUTF8_H)
5081 CF_ADD_INCDIR($cf_cv_header_path_utf8)
5082 CF_ADD_LIBDIR($cf_cv_library_path_utf8)
5086 dnl ---------------------------------------------------------------------------
5087 dnl CF_VERBOSE version: 3 updated: 2007/07/29 09:55:12
5089 dnl Use AC_VERBOSE w/o the warnings
5090 AC_DEFUN([CF_VERBOSE],
5091 [test -n "$verbose" && echo " $1" 1>&AC_FD_MSG
5094 dnl ---------------------------------------------------------------------------
5095 dnl CF_WCHAR_TYPE version: 2 updated: 2004/01/17 19:18:20
5097 dnl Check if type wide-character type $1 is declared, and if so, which header
5098 dnl file is needed. The second parameter is used to set a shell variable when
5099 dnl the type is not found. The first parameter sets a shell variable for the
5101 AC_DEFUN([CF_WCHAR_TYPE],
5103 # This is needed on Tru64 5.0 to declare $1
5104 AC_CACHE_CHECK(if we must include wchar.h to declare $1,cf_cv_$1,[
5109 #ifdef HAVE_LIBUTF8_H
5110 #include <libutf8.h>
5119 #ifdef HAVE_LIBUTF8_H
5120 #include <libutf8.h>
5124 [cf_cv_$1=unknown])])])
5126 if test "$cf_cv_$1" = yes ; then
5127 AC_DEFINE(NEED_WCHAR_H)
5132 # if we do not find $1 in either place, use substitution to provide a fallback.
5133 if test "$cf_cv_$1" = unknown ; then
5138 # if we find $1 in either place, use substitution to provide a fallback.
5139 if test "$cf_cv_$1" != unknown ; then
5144 dnl ---------------------------------------------------------------------------
5145 dnl CF_WEAK_SYMBOLS version: 1 updated: 2008/08/16 19:18:06
5147 dnl Check for compiler-support for weak symbols.
5148 dnl This works with "recent" gcc.
5149 AC_DEFUN([CF_WEAK_SYMBOLS],[
5150 AC_CACHE_CHECK(if $CC supports weak symbols,cf_cv_weak_symbols,[
5153 #include <stdio.h>],
5155 #if defined(__GNUC__)
5156 # if defined __USE_ISOC99
5157 # define _cat_pragma(exp) _Pragma(#exp)
5158 # define _weak_pragma(exp) _cat_pragma(weak name)
5160 # define _weak_pragma(exp)
5162 # define _declare(name) __extension__ extern __typeof__(name) name
5163 # define weak_symbol(name) _weak_pragma(name) _declare(name) __attribute__((weak))
5167 ],[cf_cv_weak_symbols=yes],[cf_cv_weak_symbols=no])
5170 dnl ---------------------------------------------------------------------------
5171 dnl CF_WITH_ABI_VERSION version: 1 updated: 2003/09/20 18:12:49
5172 dnl -------------------
5173 dnl Allow library's ABI to be overridden. Generally this happens when a
5174 dnl packager has incremented the ABI past that used in the original package,
5175 dnl and wishes to keep doing this.
5177 dnl $1 is the package name, if any, to derive a corresponding {package}_ABI
5179 AC_DEFUN([CF_WITH_ABI_VERSION],[
5180 test -z "$cf_cv_abi_version" && cf_cv_abi_version=0
5181 AC_ARG_WITH(abi-version,
5182 [ --with-abi-version=XXX override derived ABI version],
5183 [AC_MSG_WARN(overriding ABI version $cf_cv_abi_version to $withval)
5184 cf_cv_abi_version=$withval])
5185 CF_NUMBER_SYNTAX($cf_cv_abi_version,ABI version)
5187 $1_ABI=$cf_cv_abi_version
5190 dnl ---------------------------------------------------------------------------
5191 dnl CF_WITH_DBMALLOC version: 6 updated: 2006/12/16 14:24:05
5192 dnl ----------------
5193 dnl Configure-option for dbmalloc. The optional parameter is used to override
5194 dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
5195 AC_DEFUN([CF_WITH_DBMALLOC],[
5196 CF_NO_LEAKS_OPTION(dbmalloc,
5197 [ --with-dbmalloc test: use Conor Cahill's dbmalloc library],
5200 if test "$with_dbmalloc" = yes ; then
5201 AC_CHECK_HEADER(dbmalloc.h,
5202 [AC_CHECK_LIB(dbmalloc,[debug_malloc]ifelse($1,,[],[,$1]))])
5205 dnl ---------------------------------------------------------------------------
5206 dnl CF_WITH_DMALLOC version: 6 updated: 2006/12/16 14:24:05
5208 dnl Configure-option for dmalloc. The optional parameter is used to override
5209 dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
5210 AC_DEFUN([CF_WITH_DMALLOC],[
5211 CF_NO_LEAKS_OPTION(dmalloc,
5212 [ --with-dmalloc test: use Gray Watson's dmalloc library],
5215 if test "$with_dmalloc" = yes ; then
5216 AC_CHECK_HEADER(dmalloc.h,
5217 [AC_CHECK_LIB(dmalloc,[dmalloc_debug]ifelse($1,,[],[,$1]))])
5220 dnl ---------------------------------------------------------------------------
5221 dnl CF_WITH_GPM version: 7 updated: 2008/03/23 14:48:54
5224 dnl The option parameter (if neither yes/no) is assumed to be the name of
5225 dnl the gpm library, e.g., for dynamic loading.
5226 AC_DEFUN([CF_WITH_GPM],
5228 AC_MSG_CHECKING(if you want to link with the GPM mouse library)
5230 [ --with-gpm use Alessandro Rubini's GPM library],
5231 [with_gpm=$withval],
5233 AC_MSG_RESULT($with_gpm)
5235 if test "$with_gpm" != no ; then
5236 AC_CHECK_HEADER(gpm.h,[
5237 AC_DEFINE(HAVE_GPM_H)
5238 if test "$with_gpm" != yes && test "$with_gpm" != maybe ; then
5239 CF_VERBOSE(assuming we really have GPM library)
5240 AC_DEFINE(HAVE_LIBGPM)
5242 AC_CHECK_LIB(gpm,Gpm_Open,[:],[
5243 AC_MSG_ERROR(Cannot link with GPM library)
5248 test "$with_gpm" != maybe && AC_MSG_WARN(Cannot find GPM header)
5253 dnl ---------------------------------------------------------------------------
5254 dnl CF_WITH_LIBTOOL version: 19 updated: 2008/03/29 15:46:43
5256 dnl Provide a configure option to incorporate libtool. Define several useful
5257 dnl symbols for the makefile rules.
5259 dnl The reference to AC_PROG_LIBTOOL does not normally work, since it uses
5260 dnl macros from libtool.m4 which is in the aclocal directory of automake.
5261 dnl Following is a simple script which turns on the AC_PROG_LIBTOOL macro.
5262 dnl But that still does not work properly since the macro is expanded outside
5263 dnl the CF_WITH_LIBTOOL macro:
5266 dnl ACLOCAL=`aclocal --print-ac-dir`
5267 dnl if test -z "$ACLOCAL" ; then
5268 dnl echo cannot find aclocal directory
5270 dnl elif test ! -f $ACLOCAL/libtool.m4 ; then
5271 dnl echo cannot find libtool.m4 file
5275 dnl LOCAL=aclocal.m4
5276 dnl ORIG=aclocal.m4.orig
5278 dnl trap "mv $ORIG $LOCAL" 0 1 2 5 15
5282 dnl # sed the LIBTOOL= assignment to omit the current directory?
5283 dnl sed -e 's/^LIBTOOL=.*/LIBTOOL=${LIBTOOL-libtool}/' $ACLOCAL/libtool.m4 >>$LOCAL
5284 dnl cat $ORIG >>$LOCAL
5288 AC_DEFUN([CF_WITH_LIBTOOL],
5290 ifdef([AC_PROG_LIBTOOL],,[
5293 # common library maintenance symbols that are convenient for libtool scripts:
5294 LIB_CREATE='${AR} -cr'
5295 LIB_OBJECT='${OBJECTS}'
5299 # symbols used to prop libtool up to enable it to determine what it should be
5307 AC_MSG_CHECKING(if you want to build libraries with libtool)
5308 AC_ARG_WITH(libtool,
5309 [ --with-libtool generate libraries with libtool],
5310 [with_libtool=$withval],
5312 AC_MSG_RESULT($with_libtool)
5313 if test "$with_libtool" != "no"; then
5314 ifdef([AC_PROG_LIBTOOL],[
5315 # missing_content_AC_PROG_LIBTOOL{{
5317 # missing_content_AC_PROG_LIBTOOL}}
5319 if test "$with_libtool" != "yes" ; then
5320 CF_PATH_SYNTAX(with_libtool)
5321 LIBTOOL=$with_libtool
5323 AC_PATH_PROG(LIBTOOL,libtool)
5325 if test -z "$LIBTOOL" ; then
5326 AC_MSG_ERROR(Cannot find libtool)
5329 LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${DESTDIR}${libdir} -version-info `cut -f1 ${srcdir}/VERSION` ${LIBTOOL_OPTS} -o'
5330 LIB_OBJECT='${OBJECTS:.o=.lo}'
5332 LIB_CLEAN='${LIBTOOL} --mode=clean'
5333 LIB_COMPILE='${LIBTOOL} --mode=compile'
5334 LIB_LINK='${LIBTOOL} --mode=link ${CC} ${LIBTOOL_OPTS}'
5335 LIB_INSTALL='${LIBTOOL} --mode=install'
5336 LIB_UNINSTALL='${LIBTOOL} --mode=uninstall'
5339 # Show the version of libtool
5340 AC_MSG_CHECKING(version of libtool)
5342 # Save the version in a cache variable - this is not entirely a good
5343 # thing, but the version string from libtool is very ugly, and for
5344 # bug reports it might be useful to have the original string.
5345 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.]].*//'`
5346 AC_MSG_RESULT($cf_cv_libtool_version)
5347 if test -z "$cf_cv_libtool_version" ; then
5348 AC_MSG_ERROR(This is not GNU libtool)
5351 # special hack to add --tag option for C++ compiler
5352 case $cf_cv_libtool_version in
5353 1.[[5-9]]*|[[2-9]]*)
5354 LIBTOOL_CXX="$LIBTOOL --tag=CXX"
5355 LIBTOOL="$LIBTOOL --tag=CC"
5358 LIBTOOL_CXX="$LIBTOOL"
5366 test -z "$LIBTOOL" && ECHO_LT=
5369 AC_SUBST(LIBTOOL_CXX)
5370 AC_SUBST(LIBTOOL_OPTS)
5372 AC_SUBST(LIB_CREATE)
5373 AC_SUBST(LIB_OBJECT)
5374 AC_SUBST(LIB_SUFFIX)
5378 AC_SUBST(LIB_COMPILE)
5380 AC_SUBST(LIB_INSTALL)
5381 AC_SUBST(LIB_UNINSTALL)
5384 dnl ---------------------------------------------------------------------------
5385 dnl CF_WITH_PATH version: 8 updated: 2007/05/13 13:16:35
5387 dnl Wrapper for AC_ARG_WITH to ensure that user supplies a pathname, not just
5388 dnl defaulting to yes/no.
5390 dnl $1 = option name
5392 dnl $3 = environment variable to set
5393 dnl $4 = default value, shown in the help-message, must be a constant
5394 dnl $5 = default value, if it's an expression & cannot be in the help-message
5396 AC_DEFUN([CF_WITH_PATH],
5397 [AC_ARG_WITH($1,[$2 ](default: ifelse($4,,empty,$4)),,
5398 ifelse($4,,[withval="${$3}"],[withval="${$3-ifelse($5,,$4,$5)}"]))dnl
5399 if ifelse($5,,true,[test -n "$5"]) ; then
5400 CF_PATH_SYNTAX(withval)
5405 dnl ---------------------------------------------------------------------------
5406 dnl CF_WITH_PATHLIST version: 5 updated: 2001/12/10 01:28:30
5407 dnl ----------------
5408 dnl Process an option specifying a list of colon-separated paths.
5410 dnl $1 = option name
5412 dnl $3 = environment variable to set
5413 dnl $4 = default value, shown in the help-message, must be a constant
5414 dnl $5 = default value, if it's an expression & cannot be in the help-message
5415 dnl $6 = flag to tell if we want to define or substitute
5417 AC_DEFUN([CF_WITH_PATHLIST],[
5418 AC_REQUIRE([CF_PATHSEP])
5419 AC_ARG_WITH($1,[$2 ](default: ifelse($4,,empty,$4)),,
5420 ifelse($4,,[withval=${$3}],[withval=${$3-ifelse($5,,$4,$5)}]))dnl
5422 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${PATHSEP}"
5424 for cf_src_path in $withval
5426 CF_PATH_SYNTAX(cf_src_path)
5427 test -n "$cf_dst_path" && cf_dst_path="${cf_dst_path}:"
5428 cf_dst_path="${cf_dst_path}${cf_src_path}"
5433 # Strip single quotes from the value, e.g., when it was supplied as a literal
5435 case $cf_dst_path in #(vi
5437 cf_dst_path=`echo $cf_dst_path |sed -e s/\'// -e s/\'\$//`
5440 cf_dst_path=`echo "$cf_dst_path" | sed -e 's/\\\\/\\\\\\\\/g'`
5443 eval '$3="$cf_dst_path"'
5447 dnl ---------------------------------------------------------------------------
5448 dnl CF_WITH_PTHREAD version: 2 updated: 2008/08/23 18:26:05
5450 dnl Check for POSIX thread library.
5451 AC_DEFUN([CF_WITH_PTHREAD],
5453 AC_MSG_CHECKING(if you want to link with the pthread library)
5454 AC_ARG_WITH(pthread,
5455 [ --with-pthread use POSIX thread library],
5456 [with_pthread=$withval],
5458 AC_MSG_RESULT($with_pthread)
5460 if test "$with_pthread" != no ; then
5461 AC_CHECK_HEADER(pthread.h,[
5462 AC_DEFINE(HAVE_PTHREADS_H)
5464 AC_MSG_CHECKING(if we can link with the pthread library)
5465 cf_save_LIBS="$LIBS"
5466 LIBS="-lpthread $LIBS"
5468 #include <pthread.h>
5470 int rc = pthread_create(0,0,0,0);
5471 ],[with_pthread=yes],[with_pthread=no])
5472 LIBS="$cf_save_LIBS"
5473 AC_MSG_RESULT($with_pthread)
5475 if test "$with_pthread" = yes ; then
5476 LIBS="-lpthread $LIBS"
5477 AC_DEFINE(HAVE_LIBPTHREADS)
5479 AC_MSG_ERROR(Cannot link with pthread library)
5484 dnl ---------------------------------------------------------------------------
5485 dnl CF_WITH_REL_VERSION version: 1 updated: 2003/09/20 18:12:49
5486 dnl -------------------
5487 dnl Allow library's release-version to be overridden. Generally this happens when a
5488 dnl packager has incremented the release-version past that used in the original package,
5489 dnl and wishes to keep doing this.
5491 dnl $1 is the package name, if any, to derive corresponding {package}_MAJOR
5492 dnl and {package}_MINOR symbols
5494 AC_DEFUN([CF_WITH_REL_VERSION],[
5495 test -z "$cf_cv_rel_version" && cf_cv_rel_version=0.0
5496 AC_ARG_WITH(rel-version,
5497 [ --with-rel-version=XXX override derived release version],
5498 [AC_MSG_WARN(overriding release version $cf_cv_rel_version to $withval)
5499 cf_cv_rel_version=$withval])
5501 CF_NUMBER_SYNTAX($cf_cv_rel_version,Release version)
5503 $1_MAJOR=`echo "$cf_cv_rel_version" | sed -e 's/\..*//'`
5504 $1_MINOR=`echo "$cf_cv_rel_version" | sed -e 's/^[[^.]]*//' -e 's/^\.//' -e 's/\..*//'`
5505 CF_NUMBER_SYNTAX([$]$1_MAJOR,Release major-version)
5506 CF_NUMBER_SYNTAX([$]$1_MINOR,Release minor-version)
5509 dnl ---------------------------------------------------------------------------
5510 dnl CF_WITH_SYSMOUSE version: 2 updated: 2003/03/22 19:13:43
5511 dnl ----------------
5512 dnl If we can compile with sysmouse, make it available unless it is not wanted.
5513 AC_DEFUN([CF_WITH_SYSMOUSE],[
5514 # not everyone has "test -c"
5515 if test -c /dev/sysmouse 2>/dev/null ; then
5516 AC_MSG_CHECKING(if you want to use sysmouse)
5517 AC_ARG_WITH(sysmouse,
5518 [ --with-sysmouse use sysmouse (FreeBSD console)],
5519 [cf_with_sysmouse=$withval],
5520 [cf_with_sysmouse=maybe])
5521 if test "$cf_with_sysmouse" != no ; then
5523 #include <osreldate.h>
5524 #if (__FreeBSD_version >= 400017)
5525 #include <sys/consio.h>
5526 #include <sys/fbio.h>
5528 #include <machine/console.h>
5531 struct mouse_info the_mouse;
5532 ioctl(0, CONS_MOUSECTL, &the_mouse);
5533 ],[cf_with_sysmouse=yes],[cf_with_sysmouse=no])
5535 AC_MSG_RESULT($cf_with_sysmouse)
5536 test "$cf_with_sysmouse" = yes && AC_DEFINE(USE_SYSMOUSE)
5539 dnl ---------------------------------------------------------------------------
5540 dnl CF_WITH_VALGRIND version: 1 updated: 2006/12/14 18:00:21
5541 dnl ----------------
5542 AC_DEFUN([CF_WITH_VALGRIND],[
5543 CF_NO_LEAKS_OPTION(valgrind,
5544 [ --with-valgrind test: use valgrind],
5547 dnl ---------------------------------------------------------------------------
5548 dnl CF_XOPEN_SOURCE version: 26 updated: 2008/07/27 11:26:57
5550 dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
5551 dnl or adapt to the vendor's definitions to get equivalent functionality,
5552 dnl without losing the common non-POSIX features.
5555 dnl $1 is the nominal value for _XOPEN_SOURCE
5556 dnl $2 is the nominal value for _POSIX_C_SOURCE
5557 AC_DEFUN([CF_XOPEN_SOURCE],[
5559 AC_REQUIRE([CF_PROG_CC_U_D])
5561 cf_XOPEN_SOURCE=ifelse($1,,500,$1)
5562 cf_POSIX_C_SOURCE=ifelse($2,,199506L,$2)
5564 case $host_os in #(vi
5566 CPPFLAGS="$CPPFLAGS -D_ALL_SOURCE"
5568 freebsd*|dragonfly*) #(vi
5569 # 5.x headers associate
5570 # _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L
5571 # _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L
5572 cf_POSIX_C_SOURCE=200112L
5574 CPPFLAGS="$CPPFLAGS -D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
5577 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE"
5580 CPPFLAGS="$CPPFLAGS -D_SGI_SOURCE"
5582 linux*|gnu*|k*bsd*-gnu) #(vi
5586 # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <arpa/inet.h>
5589 # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
5592 # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
5595 CPPFLAGS="$CPPFLAGS -D_OSF_SOURCE"
5598 CPPFLAGS="$CPPFLAGS -D_QNX_SOURCE"
5601 # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
5604 CPPFLAGS="$CPPFLAGS -D__EXTENSIONS__"
5607 AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[
5608 AC_TRY_COMPILE([#include <sys/types.h>],[
5609 #ifndef _XOPEN_SOURCE
5612 [cf_cv_xopen_source=no],
5613 [cf_save="$CPPFLAGS"
5614 CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
5615 AC_TRY_COMPILE([#include <sys/types.h>],[
5616 #ifdef _XOPEN_SOURCE
5619 [cf_cv_xopen_source=no],
5620 [cf_cv_xopen_source=$cf_XOPEN_SOURCE])
5624 if test "$cf_cv_xopen_source" != no ; then
5625 CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE)
5626 CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE)
5627 test "$cf_cv_cc_u_d_options" = yes && \
5628 CPPFLAGS="$CPPFLAGS -U_XOPEN_SOURCE"
5629 CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_cv_xopen_source"
5631 CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)