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.465 2008/09/20 23:52:48 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_ANSI_CC_CHECK version: 9 updated: 2001/12/30 17:53:34
266 dnl This is adapted from the macros 'fp_PROG_CC_STDC' and 'fp_C_PROTOTYPES'
267 dnl in the sharutils 4.2 distribution.
268 AC_DEFUN([CF_ANSI_CC_CHECK],
270 AC_CACHE_CHECK(for ${CC-cc} option to accept ANSI C, cf_cv_ansi_cc,[
272 cf_save_CFLAGS="$CFLAGS"
273 cf_save_CPPFLAGS="$CPPFLAGS"
274 # Don't try gcc -ansi; that turns off useful extensions and
275 # breaks some systems' header files.
277 # Ultrix and OSF/1 -std1
278 # HP-UX -Aa -D_HPUX_SOURCE
280 # UnixWare 1.2 (cannot use -Xc, since ANSI/POSIX clashes)
281 for cf_arg in "-DCC_HAS_PROTOS" \
286 "-Aa -D_HPUX_SOURCE" \
289 CF_ADD_CFLAGS($cf_arg)
292 #ifndef CC_HAS_PROTOS
293 #if !defined(__STDC__) || (__STDC__ != 1)
298 int test (int i, double x);
299 struct s1 {int (*f) (int a);};
300 struct s2 {int (*f) (double a);};],
301 [cf_cv_ansi_cc="$cf_arg"; break])
303 CFLAGS="$cf_save_CFLAGS"
304 CPPFLAGS="$cf_save_CPPFLAGS"
307 if test "$cf_cv_ansi_cc" != "no"; then
308 if test ".$cf_cv_ansi_cc" != ".-DCC_HAS_PROTOS"; then
309 CF_ADD_CFLAGS($cf_cv_ansi_cc)
311 AC_DEFINE(CC_HAS_PROTOS)
315 dnl ---------------------------------------------------------------------------
316 dnl CF_ANSI_CC_REQD version: 4 updated: 2008/03/23 14:48:54
318 dnl For programs that must use an ANSI compiler, obtain compiler options that
319 dnl will make it recognize prototypes. We'll do preprocessor checks in other
320 dnl macros, since tools such as unproto can fake prototypes, but only part of
321 dnl the preprocessor.
322 AC_DEFUN([CF_ANSI_CC_REQD],
323 [AC_REQUIRE([CF_ANSI_CC_CHECK])
324 if test "$cf_cv_ansi_cc" = "no"; then
326 [Your compiler does not appear to recognize prototypes.
327 You have the following choices:
328 a. adjust your compiler options
329 b. get an up-to-date compiler
330 c. use a wrapper such as unproto])
333 dnl ---------------------------------------------------------------------------
334 dnl CF_AWK_BIG_PRINTF version: 1 updated: 2008/09/06 17:17:18
335 dnl -----------------
336 dnl Check if awk can handle big strings using printf. Some older versions of
337 dnl awk choke on large strings passed via "%s".
339 dnl $1 = desired string size
340 dnl $2 = variable to set with result
341 AC_DEFUN([CF_AWK_BIG_PRINTF],
348 if ( ${AWK} 'BEGIN { xx = "x"; while (length(xx) < $1) { xx = xx "x"; }; printf("%s\n", xx); }' \
349 | $AWK '{ if (length([$]0) != $1) exit 1; }' 2>/dev/null >/dev/null ); then
357 dnl ---------------------------------------------------------------------------
358 dnl CF_BOOL_DECL version: 8 updated: 2004/01/30 15:51:18
360 dnl Test if 'bool' is a builtin type in the configured C++ compiler. Some
361 dnl older compilers (e.g., gcc 2.5.8) don't support 'bool' directly; gcc
362 dnl 2.6.3 does, in anticipation of the ANSI C++ standard.
364 dnl Treat the configuration-variable specially here, since we're directly
365 dnl substituting its value (i.e., 1/0).
367 dnl $1 is the shell variable to store the result in, if not $cv_cv_builtin_bool
368 AC_DEFUN([CF_BOOL_DECL],
370 AC_MSG_CHECKING(if we should include stdbool.h)
372 AC_CACHE_VAL(cf_cv_header_stdbool_h,[
373 AC_TRY_COMPILE([],[bool foo = false],
374 [cf_cv_header_stdbool_h=0],
379 ],[bool foo = false],
380 [cf_cv_header_stdbool_h=1],
381 [cf_cv_header_stdbool_h=0])])])
383 if test "$cf_cv_header_stdbool_h" = 1
384 then AC_MSG_RESULT(yes)
385 else AC_MSG_RESULT(no)
388 AC_MSG_CHECKING([for builtin bool type])
390 AC_CACHE_VAL(ifelse($1,,cf_cv_builtin_bool,[$1]),[
393 #include <sys/types.h>
395 [ifelse($1,,cf_cv_builtin_bool,[$1])=1],
396 [ifelse($1,,cf_cv_builtin_bool,[$1])=0])
399 if test "$ifelse($1,,cf_cv_builtin_bool,[$1])" = 1
400 then AC_MSG_RESULT(yes)
401 else AC_MSG_RESULT(no)
404 dnl ---------------------------------------------------------------------------
405 dnl CF_BOOL_SIZE version: 12 updated: 2006/12/16 12:33:30
407 dnl Test for the size of 'bool' in the configured C++ compiler (e.g., a type).
408 dnl Don't bother looking for bool.h, since it's been deprecated.
410 dnl If the current compiler is C rather than C++, we get the bool definition
411 dnl from <stdbool.h>.
412 AC_DEFUN([CF_BOOL_SIZE],
414 AC_MSG_CHECKING([for size of bool])
415 AC_CACHE_VAL(cf_cv_type_of_bool,[
421 #if defined(__cplusplus)
423 #ifdef HAVE_GXX_BUILTIN_H
424 #include <g++/builtin.h>
425 #elif HAVE_GPP_BUILTIN_H
426 #include <gpp/builtin.h>
433 #if $cf_cv_header_stdbool_h
441 FILE *fp = fopen("cf_test.out", "w");
445 fputs("unsigned ", fp);
446 if (sizeof(x) == sizeof(int)) fputs("int", fp);
447 else if (sizeof(x) == sizeof(char)) fputs("char", fp);
448 else if (sizeof(x) == sizeof(short))fputs("short",fp);
449 else if (sizeof(x) == sizeof(long)) fputs("long", fp);
452 ${cf_cv_main_return:-return}(0);
455 [cf_cv_type_of_bool=`cat cf_test.out`
456 if test -z "$cf_cv_type_of_bool"; then
457 cf_cv_type_of_bool=unknown
459 [cf_cv_type_of_bool=unknown],
460 [cf_cv_type_of_bool=unknown])
463 AC_MSG_RESULT($cf_cv_type_of_bool)
464 if test "$cf_cv_type_of_bool" = unknown ; then
465 case .$NCURSES_BOOL in #(vi
466 .auto|.) NCURSES_BOOL=unsigned;;
468 AC_MSG_WARN(Assuming $NCURSES_BOOL for type of bool)
469 cf_cv_type_of_bool=$NCURSES_BOOL
472 dnl ---------------------------------------------------------------------------
473 dnl CF_BUILD_CC version: 6 updated: 2006/10/14 15:23:15
475 dnl If we're cross-compiling, allow the user to override the tools and their
476 dnl options. The configure script is oriented toward identifying the host
477 dnl compiler, etc., but we need a build compiler to generate parts of the
480 dnl $1 = default for $CPPFLAGS
481 dnl $2 = default for $LIBS
482 AC_DEFUN([CF_BUILD_CC],[
483 AC_REQUIRE([CF_PROG_EXT])
484 if test "$cross_compiling" = yes ; then
486 # defaults that we might want to override
487 : ${BUILD_CFLAGS:=''}
488 : ${BUILD_CPPFLAGS:='ifelse([$1],,,[$1])'}
489 : ${BUILD_LDFLAGS:=''}
490 : ${BUILD_LIBS:='ifelse([$2],,,[$2])'}
491 : ${BUILD_EXEEXT:='$x'}
492 : ${BUILD_OBJEXT:='o'}
494 AC_ARG_WITH(build-cc,
495 [ --with-build-cc=XXX the build C compiler ($BUILD_CC)],
496 [BUILD_CC="$withval"],
497 [AC_CHECK_PROGS(BUILD_CC, gcc cc cl)])
498 AC_MSG_CHECKING(for native build C compiler)
499 AC_MSG_RESULT($BUILD_CC)
501 AC_MSG_CHECKING(for native build C preprocessor)
502 AC_ARG_WITH(build-cpp,
503 [ --with-build-cpp=XXX the build C preprocessor ($BUILD_CPP)],
504 [BUILD_CPP="$withval"],
505 [BUILD_CPP='${BUILD_CC} -E'])
506 AC_MSG_RESULT($BUILD_CPP)
508 AC_MSG_CHECKING(for native build C flags)
509 AC_ARG_WITH(build-cflags,
510 [ --with-build-cflags=XXX the build C compiler-flags ($BUILD_CFLAGS)],
511 [BUILD_CFLAGS="$withval"])
512 AC_MSG_RESULT($BUILD_CFLAGS)
514 AC_MSG_CHECKING(for native build C preprocessor-flags)
515 AC_ARG_WITH(build-cppflags,
516 [ --with-build-cppflags=XXX the build C preprocessor-flags ($BUILD_CPPFLAGS)],
517 [BUILD_CPPFLAGS="$withval"])
518 AC_MSG_RESULT($BUILD_CPPFLAGS)
520 AC_MSG_CHECKING(for native build linker-flags)
521 AC_ARG_WITH(build-ldflags,
522 [ --with-build-ldflags=XXX the build linker-flags ($BUILD_LDFLAGS)],
523 [BUILD_LDFLAGS="$withval"])
524 AC_MSG_RESULT($BUILD_LDFLAGS)
526 AC_MSG_CHECKING(for native build linker-libraries)
527 AC_ARG_WITH(build-libs,
528 [ --with-build-libs=XXX the build libraries (${BUILD_LIBS})],
529 [BUILD_LIBS="$withval"])
530 AC_MSG_RESULT($BUILD_LIBS)
532 # this assumes we're on Unix.
536 : ${BUILD_CC:='${CC}'}
538 if ( test "$BUILD_CC" = "$CC" || test "$BUILD_CC" = '${CC}' ) ; then
539 AC_MSG_ERROR([Cross-build requires two compilers.
540 Use --with-build-cc to specify the native compiler.])
544 : ${BUILD_CC:='${CC}'}
545 : ${BUILD_CPP:='${CPP}'}
546 : ${BUILD_CFLAGS:='${CFLAGS}'}
547 : ${BUILD_CPPFLAGS:='${CPPFLAGS}'}
548 : ${BUILD_LDFLAGS:='${LDFLAGS}'}
549 : ${BUILD_LIBS:='${LIBS}'}
550 : ${BUILD_EXEEXT:='$x'}
551 : ${BUILD_OBJEXT:='o'}
556 AC_SUBST(BUILD_CFLAGS)
557 AC_SUBST(BUILD_CPPFLAGS)
558 AC_SUBST(BUILD_LDFLAGS)
560 AC_SUBST(BUILD_EXEEXT)
561 AC_SUBST(BUILD_OBJEXT)
563 dnl ---------------------------------------------------------------------------
564 dnl CF_CFG_DEFAULTS version: 7 updated: 2005/09/24 16:15:00
566 dnl Determine the default configuration into which we'll install ncurses. This
567 dnl can be overridden by the user's command-line options. There's two items to
569 dnl 1. the prefix (e.g., /usr)
570 dnl 2. the header files (e.g., /usr/include/ncurses)
571 dnl We'll look for a previous installation of ncurses and use the same defaults.
573 dnl We don't use AC_PREFIX_DEFAULT, because it gets evaluated too soon, and
574 dnl we don't use AC_PREFIX_PROGRAM, because we cannot distinguish ncurses's
575 dnl programs from a vendor's.
576 AC_DEFUN([CF_CFG_DEFAULTS],
578 AC_MSG_CHECKING(for prefix)
579 if test "x$prefix" = "xNONE" ; then
580 case "$cf_cv_system_name" in
581 # non-vendor systems don't have a conflict
582 openbsd*|freebsd*|linux*|cygwin*|k*bsd*-gnu)
585 *) prefix=$ac_default_prefix
589 AC_MSG_RESULT($prefix)
591 if test "x$prefix" = "xNONE" ; then
592 AC_MSG_CHECKING(for default include-directory)
593 test -n "$verbose" && echo 1>&AC_FD_MSG
596 $includedir/ncurses \
598 $prefix/include/ncurses \
600 /usr/local/include/ncurses \
604 cf_dir=`eval echo $cf_symbol`
605 if test -f $cf_dir/curses.h ; then
606 if ( fgrep NCURSES_VERSION $cf_dir/curses.h 2>&1 >/dev/null ) ; then
607 includedir="$cf_symbol"
608 test -n "$verbose" && echo $ac_n " found " 1>&AC_FD_MSG
612 test -n "$verbose" && echo " tested $cf_dir" 1>&AC_FD_MSG
614 AC_MSG_RESULT($includedir)
617 dnl ---------------------------------------------------------------------------
618 dnl CF_CGETENT version: 3 updated: 2000/08/12 23:18:52
620 dnl Check if the terminal-capability database functions are available. If not,
621 dnl ncurses has a much-reduced version.
622 AC_DEFUN([CF_CGETENT],[
623 AC_MSG_CHECKING(for terminal-capability database functions)
624 AC_CACHE_VAL(cf_cv_cgetent,[
626 #include <stdlib.h>],[
629 char *db_array = temp;
630 cgetent(&buf, /* int *, */ &db_array, "vt100");
631 cgetcap(buf, "tc", '=');
632 cgetmatch(buf, "tc");
637 AC_MSG_RESULT($cf_cv_cgetent)
638 test "$cf_cv_cgetent" = yes && AC_DEFINE(HAVE_BSD_CGETENT)
640 dnl ---------------------------------------------------------------------------
641 dnl CF_CHECK_CACHE version: 11 updated: 2008/03/23 14:45:59
643 dnl Check if we're accidentally using a cache from a different machine.
644 dnl Derive the system name, as a check for reusing the autoconf cache.
646 dnl If we've packaged config.guess and config.sub, run that (since it does a
647 dnl better job than uname). Normally we'll use AC_CANONICAL_HOST, but allow
648 dnl an extra parameter that we may override, e.g., for AC_CANONICAL_SYSTEM
649 dnl which is useful in cross-compiles.
651 dnl Note: we would use $ac_config_sub, but that is one of the places where
652 dnl autoconf 2.5x broke compatibility with autoconf 2.13
653 AC_DEFUN([CF_CHECK_CACHE],
655 if test -f $srcdir/config.guess || test -f $ac_aux_dir/config.guess ; then
656 ifelse([$1],,[AC_CANONICAL_HOST],[$1])
657 system_name="$host_os"
659 system_name="`(uname -s -r) 2>/dev/null`"
660 if test -z "$system_name" ; then
661 system_name="`(hostname) 2>/dev/null`"
664 test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name")
665 AC_CACHE_VAL(cf_cv_system_name,[cf_cv_system_name="$system_name"])
667 test -z "$system_name" && system_name="$cf_cv_system_name"
668 test -n "$cf_cv_system_name" && AC_MSG_RESULT(Configuring for $cf_cv_system_name)
670 if test ".$system_name" != ".$cf_cv_system_name" ; then
671 AC_MSG_RESULT(Cached system name ($system_name) does not agree with actual ($cf_cv_system_name))
672 AC_MSG_ERROR("Please remove config.cache and try again.")
675 dnl ---------------------------------------------------------------------------
676 dnl CF_CHECK_ERRNO version: 10 updated: 2008/08/22 16:33:22
678 dnl Check for data that is usually declared in <stdio.h> or <errno.h>, e.g.,
679 dnl the 'errno' variable. Define a DECL_xxx symbol if we must declare it
682 dnl $1 = the name to check
683 dnl $2 = the assumed type
684 AC_DEFUN([CF_CHECK_ERRNO],
686 AC_CACHE_CHECK(if external $1 is declared, cf_cv_dcl_$1,[
692 #include <sys/types.h>
693 #include <errno.h> ],
694 ifelse($2,,int,$2) x = (ifelse($2,,int,$2)) $1,
699 if test "$cf_cv_dcl_$1" = no ; then
700 CF_UPPER(cf_result,decl_$1)
701 AC_DEFINE_UNQUOTED($cf_result)
704 # It's possible (for near-UNIX clones) that the data doesn't exist
705 CF_CHECK_EXTERN_DATA($1,ifelse($2,,int,$2))
707 dnl ---------------------------------------------------------------------------
708 dnl CF_CHECK_EXTERN_DATA version: 3 updated: 2001/12/30 18:03:23
709 dnl --------------------
710 dnl Check for existence of external data in the current set of libraries. If
711 dnl we can modify it, it's real enough.
712 dnl $1 = the name to check
714 AC_DEFUN([CF_CHECK_EXTERN_DATA],
716 AC_CACHE_CHECK(if external $1 exists, cf_cv_have_$1,[
726 if test "$cf_cv_have_$1" = yes ; then
727 CF_UPPER(cf_result,have_$1)
728 AC_DEFINE_UNQUOTED($cf_result)
732 dnl ---------------------------------------------------------------------------
733 dnl CF_CHECK_GPM_WGETCH version: 1 updated: 2007/04/28 14:38:06
734 dnl -------------------
735 dnl Check if GPM is already linked with curses. If so - and if the linkage
736 dnl is not "weak" - warn about this because it can create problems linking
737 dnl applications with ncurses.
738 AC_DEFUN([CF_CHECK_GPM_WGETCH],[
739 AC_CHECK_LIB(gpm,Gpm_Wgetch,[
741 AC_CACHE_CHECK(if GPM is weakly bound to curses library, cf_cv_check_gpm_wgetch,[
742 cf_cv_check_gpm_wgetch=unknown
743 if test "$cross_compiling" != yes ; then
745 cat >conftest.$ac_ext <<CF_EOF
750 ${cf_cv_main_return:-return}(0);
755 # This only works if we can look at the symbol table. If a shared
756 # library is stripped for install, we cannot use that. So we're forced
757 # to rely on the static library, noting that some packagers may not
759 LIBS="-static -lgpm -dynamic $LIBS"
760 if AC_TRY_EVAL(ac_compile) ; then
761 if AC_TRY_EVAL(ac_link) ; then
762 cf_cv_check_gpm_wgetch=`nm conftest$ac_exeext | egrep '\<wgetch\>' | egrep '\<[[vVwW]]\>'`
763 test -n "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=yes
764 test -z "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=no
772 if test "$cf_cv_check_gpm_wgetch" != yes ; then
773 AC_MSG_WARN(GPM library is already linked with curses - read the FAQ)
776 dnl ---------------------------------------------------------------------------
777 dnl CF_CPP_PARAM_INIT version: 4 updated: 2001/04/07 22:31:18
778 dnl -----------------
779 dnl Check if the C++ compiler accepts duplicate parameter initialization. This
780 dnl is a late feature for the standard and is not in some recent compilers
782 AC_DEFUN([CF_CPP_PARAM_INIT],
784 if test -n "$CXX"; then
785 AC_CACHE_CHECK(if $CXX accepts parameter initialization,cf_cv_cpp_param_init,[
797 TEST::TEST(int x = 1) // some compilers do not like second initializer
803 [cf_cv_cpp_param_init=yes],
804 [cf_cv_cpp_param_init=no],
805 [cf_cv_cpp_param_init=unknown])
809 test "$cf_cv_cpp_param_init" = yes && AC_DEFINE(CPP_HAS_PARAM_INIT)
811 dnl ---------------------------------------------------------------------------
812 dnl CF_CPP_STATIC_CAST version: 1 updated: 2005/07/23 16:52:43
813 dnl ------------------
814 dnl Check if the C++ compiler accepts static_cast in generics. This appears to
815 dnl not be supported in g++ before 3.0
816 AC_DEFUN([CF_CPP_STATIC_CAST],
818 if test -n "$CXX"; then
820 AC_CACHE_CHECK(if $CXX accepts static_cast,cf_cv_cpp_static_cast,[
828 NCursesPanel(int nlines,
838 template<class T> class NCursesUserPanel : public NCursesPanel
841 NCursesUserPanel (int nlines,
845 const T* p_UserData = static_cast<T*>(0))
846 : NCursesPanel (nlines, ncols, begin_y, begin_x)
849 NCursesUserPanel(const T* p_UserData = static_cast<T*>(0)) : NCursesPanel()
853 virtual ~NCursesUserPanel() {};
856 const char* p_UserData = static_cast<char*>(0)],
857 [cf_cv_cpp_static_cast=yes],
858 [cf_cv_cpp_static_cast=no])
865 test "$cf_cv_cpp_static_cast" = yes && AC_DEFINE(CPP_HAS_STATIC_CAST)
867 dnl ---------------------------------------------------------------------------
868 dnl CF_C_INLINE version: 2 updated: 2007/08/11 14:09:50
870 dnl Check if the C compiler supports "inline".
871 dnl $1 is the name of a shell variable to set if inline is supported
872 dnl $2 is the threshold for gcc 4.x's option controlling maximum inline size
873 AC_DEFUN([CF_C_INLINE],[
876 if test "$ac_cv_c_inline" != no ; then
878 if test "$INTEL_COMPILER" = yes
881 elif test "$GCC" = yes
883 AC_CACHE_CHECK(if gcc supports options to tune inlining,cf_cv_gcc_inline,[
884 cf_save_CFLAGS=$CFLAGS
885 CFLAGS="$CFLAGS --param max-inline-insns-single=$2"
886 AC_TRY_COMPILE([inline int foo(void) { return 1; }],
887 [${cf_cv_main_return:-return} foo()],
888 [cf_cv_gcc_inline=yes],
889 [cf_cv_gcc_inline=no])
890 CFLAGS=$cf_save_CFLAGS
892 if test "$cf_cv_gcc_inline" = yes ; then
893 CF_ADD_CFLAGS([--param max-inline-insns-single=$2])
899 dnl ---------------------------------------------------------------------------
900 dnl CF_DIRNAME version: 4 updated: 2002/12/21 19:25:52
902 dnl "dirname" is not portable, so we fake it with a shell script.
903 AC_DEFUN([CF_DIRNAME],[$1=`echo $2 | sed -e 's%/[[^/]]*$%%'`])dnl
904 dnl ---------------------------------------------------------------------------
905 dnl CF_DIRS_TO_MAKE version: 3 updated: 2002/02/23 20:38:31
907 AC_DEFUN([CF_DIRS_TO_MAKE],
910 for cf_item in $cf_list_models
912 CF_OBJ_SUBDIR($cf_item,cf_subdir)
913 for cf_item2 in $DIRS_TO_MAKE
915 test $cf_item2 = $cf_subdir && break
917 test ".$cf_item2" != ".$cf_subdir" && DIRS_TO_MAKE="$DIRS_TO_MAKE $cf_subdir"
919 for cf_dir in $DIRS_TO_MAKE
921 test ! -d $cf_dir && mkdir $cf_dir
923 AC_SUBST(DIRS_TO_MAKE)
925 dnl ---------------------------------------------------------------------------
926 dnl CF_DISABLE_LEAKS version: 4 updated: 2006/12/16 15:10:42
928 dnl Combine no-leak checks with the libraries or tools that are used for the
930 AC_DEFUN([CF_DISABLE_LEAKS],[
932 AC_REQUIRE([CF_WITH_DMALLOC])
933 AC_REQUIRE([CF_WITH_DBMALLOC])
934 AC_REQUIRE([CF_WITH_VALGRIND])
936 AC_MSG_CHECKING(if you want to perform memory-leak testing)
938 [ --disable-leaks test: free permanent memory, analyze leaks],
940 : ${with_no_leaks:=no})
941 AC_MSG_RESULT($with_no_leaks)
943 if test "$with_no_leaks" = yes ; then
947 dnl ---------------------------------------------------------------------------
948 dnl CF_ENABLE_RPATH version: 1 updated: 2008/09/13 10:22:30
950 dnl Check if the rpath option should be used, setting cache variable
951 dnl cf_cv_ld_rpath if so.
952 AC_DEFUN([CF_ENABLE_RPATH],
954 AC_MSG_CHECKING(if rpath option should be used)
956 [ --enable-rpath use rpath option when generating shared libraries],
957 [cf_cv_ld_rpath=$enableval],
959 AC_MSG_RESULT($cf_cv_ld_rpath)
961 dnl ---------------------------------------------------------------------------
962 dnl CF_ERRNO version: 5 updated: 1997/11/30 12:44:39
964 dnl Check if 'errno' is declared in <errno.h>
967 CF_CHECK_ERRNO(errno)
969 dnl ---------------------------------------------------------------------------
970 dnl CF_ETIP_DEFINES version: 3 updated: 2003/03/22 19:13:43
972 dnl Test for conflicting definitions of exception in gcc 2.8.0, etc., between
973 dnl math.h and builtin.h, only for ncurses
974 AC_DEFUN([CF_ETIP_DEFINES],
976 AC_MSG_CHECKING(for special defines needed for etip.h)
977 cf_save_CXXFLAGS="$CXXFLAGS"
979 for cf_math in "" MATH_H
981 for cf_excp in "" MATH_EXCEPTION
983 CXXFLAGS="$cf_save_CXXFLAGS -I${srcdir}/c++ -I${srcdir}/menu -I${srcdir}/include"
984 test -n "$cf_math" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_math}"
985 test -n "$cf_excp" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_excp}"
989 test -n "$cf_math" && AC_DEFINE_UNQUOTED(ETIP_NEEDS_${cf_math})
990 test -n "$cf_excp" && AC_DEFINE_UNQUOTED(ETIP_NEEDS_${cf_excp})
991 cf_result="$cf_math $cf_excp"
996 AC_MSG_RESULT($cf_result)
997 CXXFLAGS="$cf_save_CXXFLAGS"
999 dnl ---------------------------------------------------------------------------
1000 dnl CF_FUNC_DLSYM version: 1 updated: 2004/06/16 20:52:45
1002 dnl Test for dlsym() and related functions, as well as libdl.
1007 AC_DEFUN([CF_FUNC_DLSYM],[
1009 AC_CHECK_FUNC(dlsym,cf_have_dlsym=yes,[
1012 AC_CHECK_LIB(dl,dlsym,[
1014 cf_have_libdl=yes])])
1016 if test "$cf_have_dlsym" = yes ; then
1017 test "$cf_have_libdl" = yes && LIBS="-ldl $LIBS"
1019 AC_MSG_CHECKING(whether able to link to dl*() functions)
1020 AC_TRY_LINK([#include <dlfcn.h>],[
1022 if ((obj = dlopen("filename", 0)) != 0) {
1023 if (dlsym(obj, "symbolname") == 0) {
1027 AC_DEFINE(HAVE_LIBDL)],[
1028 AC_MSG_ERROR(Cannot link test program for libdl)])
1031 AC_MSG_ERROR(Cannot find dlsym function)
1034 dnl ---------------------------------------------------------------------------
1035 dnl CF_FUNC_MEMMOVE version: 7 updated: 2006/12/16 12:33:30
1037 dnl Check for memmove, or a bcopy that can handle overlapping copy. If neither
1038 dnl is found, add our own version of memmove to the list of objects.
1039 AC_DEFUN([CF_FUNC_MEMMOVE],
1041 AC_CHECK_FUNC(memmove,,[
1042 AC_CHECK_FUNC(bcopy,[
1043 AC_CACHE_CHECK(if bcopy does overlapping moves,cf_cv_good_bcopy,[
1046 static char data[] = "abcdefghijklmnopqrstuwwxyz";
1048 bcopy(data, temp, sizeof(data));
1049 bcopy(temp+10, temp, 15);
1050 bcopy(temp+5, temp+15, 10);
1051 ${cf_cv_main_return:-return} (strcmp(temp, "klmnopqrstuwwxypqrstuwwxyz"));
1054 [cf_cv_good_bcopy=yes],
1055 [cf_cv_good_bcopy=no],
1056 [cf_cv_good_bcopy=unknown])
1058 ],[cf_cv_good_bcopy=no])
1059 if test "$cf_cv_good_bcopy" = yes ; then
1060 AC_DEFINE(USE_OK_BCOPY)
1062 AC_DEFINE(USE_MY_MEMMOVE)
1065 dnl ---------------------------------------------------------------------------
1066 dnl CF_FUNC_NANOSLEEP version: 3 updated: 2006/12/16 12:33:30
1067 dnl -----------------
1068 dnl Check for existence of workable nanosleep() function. Some systems, e.g.,
1069 dnl AIX 4.x, provide a non-working version.
1070 AC_DEFUN([CF_FUNC_NANOSLEEP],[
1071 AC_CACHE_CHECK(if nanosleep really works,cf_cv_func_nanosleep,[
1077 #ifdef HAVE_SYS_TIME_H
1078 #include <sys/time.h>
1082 struct timespec ts1, ts2;
1085 ts1.tv_nsec = 750000000;
1089 code = nanosleep(&ts1, &ts2); /* on failure errno is ENOSYS. */
1090 ${cf_cv_main_return:-return}(code != 0);
1093 [cf_cv_func_nanosleep=yes],
1094 [cf_cv_func_nanosleep=no],
1095 [cf_cv_func_nanosleep=unknown])])
1097 test "$cf_cv_func_nanosleep" = "yes" && AC_DEFINE(HAVE_NANOSLEEP)
1099 dnl ---------------------------------------------------------------------------
1100 dnl CF_FUNC_OPENPTY version: 2 updated: 2008/04/12 19:49:01
1102 dnl Check for openpty() function, along with <pty.h> header. It may need the
1103 dnl "util" library as well.
1104 AC_DEFUN([CF_FUNC_OPENPTY],
1106 AC_CHECK_LIB(util,openpty,cf_cv_lib_util=yes,cf_cv_lib_util=no)
1107 AC_CACHE_CHECK(for openpty header,cf_cv_func_openpty,[
1108 cf_save_LIBS="$LIBS"
1109 test $cf_cv_lib_util = yes && LIBS="-lutil $LIBS"
1110 for cf_header in pty.h libutil.h util.h
1113 #include <$cf_header>
1115 int x = openpty((int *)0, (int *)0, (char *)0,
1116 (struct termios *)0, (struct winsize *)0);
1118 cf_cv_func_openpty=$cf_header
1121 cf_cv_func_openpty=no
1124 LIBS="$cf_save_LIBS"
1127 dnl ---------------------------------------------------------------------------
1128 dnl CF_FUNC_POLL version: 4 updated: 2006/12/16 12:33:30
1130 dnl See if the poll function really works. Some platforms have poll(), but
1131 dnl it does not work for terminals or files.
1132 AC_DEFUN([CF_FUNC_POLL],[
1133 AC_CACHE_CHECK(if poll really works,cf_cv_working_poll,[
1139 #include <sys/poll.h>
1142 struct pollfd myfds;
1146 myfds.events = POLLIN;
1148 ret = poll(&myfds, 1, 100);
1149 ${cf_cv_main_return:-return}(ret != 0);
1151 [cf_cv_working_poll=yes],
1152 [cf_cv_working_poll=no],
1153 [cf_cv_working_poll=unknown])])
1154 test "$cf_cv_working_poll" = "yes" && AC_DEFINE(HAVE_WORKING_POLL)
1156 dnl ---------------------------------------------------------------------------
1157 dnl CF_FUNC_TERMIOS version: 2 updated: 2000/07/22 23:37:24
1159 dnl Some old/broken variations define tcgetattr() only as a macro in
1161 AC_DEFUN([CF_FUNC_TERMIOS],[
1162 AC_REQUIRE([CF_STRUCT_TERMIOS])
1163 AC_CACHE_CHECK(for tcgetattr, cf_cv_have_tcgetattr,[
1165 #include <sys/types.h>
1166 #ifdef HAVE_UNISTD_H
1169 #ifdef HAVE_TERMIOS_H
1170 #include <termios.h>
1171 #define TTY struct termios
1173 #ifdef HAVE_TERMIO_H
1175 #define TTY struct termio
1180 tcgetattr(1, &foo);],
1181 [cf_cv_have_tcgetattr=yes],
1182 [cf_cv_have_tcgetattr=no])])
1183 test "$cf_cv_have_tcgetattr" = yes && AC_DEFINE(HAVE_TCGETATTR)
1185 dnl ---------------------------------------------------------------------------
1186 dnl CF_FUNC_VSSCANF version: 3 updated: 2001/12/19 00:50:10
1188 dnl Check for vsscanf() function, which is in c9x but generally not in earlier
1189 dnl versions of C. It is in the GNU C library, and can often be simulated by
1190 dnl other functions.
1191 AC_DEFUN([CF_FUNC_VSSCANF],
1193 AC_CACHE_CHECK(for vsscanf function or workaround,cf_cv_func_vsscanf,[
1196 #include <stdio.h>],[
1198 vsscanf("from", "%d", ap)],[cf_cv_func_vsscanf=vsscanf],[
1201 #include <stdio.h>],[
1205 strbuf._flag = _IOREAD;
1206 strbuf._ptr = strbuf._base = (unsigned char *) str;
1207 strbuf._cnt = strlen(str);
1208 strbuf._file = _NFILE;
1209 return (vfscanf(&strbuf, "%d", ap))],[cf_cv_func_vsscanf=vfscanf],[
1212 #include <stdio.h>],[
1216 strbuf._flag = _IOREAD;
1217 strbuf._ptr = strbuf._base = (unsigned char *) str;
1218 strbuf._cnt = strlen(str);
1219 strbuf._file = _NFILE;
1220 return (_doscan(&strbuf, "%d", ap))],[cf_cv_func_vsscanf=_doscan],[
1221 cf_cv_func_vsscanf=no])])])])
1223 case $cf_cv_func_vsscanf in #(vi
1224 vsscanf) AC_DEFINE(HAVE_VSSCANF);; #(vi
1225 vfscanf) AC_DEFINE(HAVE_VFSCANF);; #(vi
1226 _doscan) AC_DEFINE(HAVE__DOSCAN);;
1230 dnl ---------------------------------------------------------------------------
1231 dnl CF_GCC_ATTRIBUTES version: 11 updated: 2007/07/29 09:55:12
1232 dnl -----------------
1233 dnl Test for availability of useful gcc __attribute__ directives to quiet
1234 dnl compiler warnings. Though useful, not all are supported -- and contrary
1235 dnl to documentation, unrecognized directives cause older compilers to barf.
1236 AC_DEFUN([CF_GCC_ATTRIBUTES],
1238 if test "$GCC" = yes
1240 cat > conftest.i <<EOF
1242 #define GCC_PRINTF 0
1247 #ifndef GCC_NORETURN
1248 #define GCC_NORETURN /* nothing */
1251 #define GCC_UNUSED /* nothing */
1254 if test "$GCC" = yes
1256 AC_CHECKING([for $CC __attribute__ directives])
1257 cat > conftest.$ac_ext <<EOF
1258 #line __oline__ "${as_me-configure}"
1259 #include "confdefs.h"
1260 #include "conftest.h"
1261 #include "conftest.i"
1263 #define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
1265 #define GCC_PRINTFLIKE(fmt,var) /*nothing*/
1268 #define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
1270 #define GCC_SCANFLIKE(fmt,var) /*nothing*/
1272 extern void wow(char *,...) GCC_SCANFLIKE(1,2);
1273 extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
1274 extern void foo(void) GCC_NORETURN;
1275 int main(int argc GCC_UNUSED, char *argv[[]] GCC_UNUSED) { return 0; }
1277 for cf_attribute in scanf printf unused noreturn
1279 CF_UPPER(cf_ATTRIBUTE,$cf_attribute)
1280 cf_directive="__attribute__(($cf_attribute))"
1281 echo "checking for $CC $cf_directive" 1>&AC_FD_CC
1282 case $cf_attribute in
1284 cat >conftest.h <<EOF
1285 #define GCC_$cf_ATTRIBUTE 1
1289 cat >conftest.h <<EOF
1290 #define GCC_$cf_ATTRIBUTE $cf_directive
1294 if AC_TRY_EVAL(ac_compile); then
1295 test -n "$verbose" && AC_MSG_RESULT(... $cf_attribute)
1296 cat conftest.h >>confdefs.h
1300 fgrep define conftest.i >>confdefs.h
1305 dnl ---------------------------------------------------------------------------
1306 dnl CF_GCC_VERSION version: 4 updated: 2005/08/27 09:53:42
1308 dnl Find version of gcc
1309 AC_DEFUN([CF_GCC_VERSION],[
1310 AC_REQUIRE([AC_PROG_CC])
1312 if test "$GCC" = yes ; then
1313 AC_MSG_CHECKING(version of $CC)
1314 GCC_VERSION="`${CC} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
1315 test -z "$GCC_VERSION" && GCC_VERSION=unknown
1316 AC_MSG_RESULT($GCC_VERSION)
1319 dnl ---------------------------------------------------------------------------
1320 dnl CF_GCC_WARNINGS version: 23 updated: 2008/07/26 17:54:02
1322 dnl Check if the compiler supports useful warning options. There's a few that
1323 dnl we don't use, simply because they're too noisy:
1325 dnl -Wconversion (useful in older versions of gcc, but not in gcc 2.7.x)
1326 dnl -Wredundant-decls (system headers make this too noisy)
1327 dnl -Wtraditional (combines too many unrelated messages, only a few useful)
1328 dnl -Wwrite-strings (too noisy, but should review occasionally). This
1329 dnl is enabled for ncurses using "--enable-const".
1333 dnl $1 is an optional list of gcc warning flags that a particular
1334 dnl application might want to use, e.g., "no-unused" for
1337 dnl If $with_ext_const is "yes", add a check for -Wwrite-strings
1339 AC_DEFUN([CF_GCC_WARNINGS],
1341 AC_REQUIRE([CF_GCC_VERSION])
1342 CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
1344 cat > conftest.$ac_ext <<EOF
1345 #line __oline__ "${as_me-configure}"
1346 int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
1349 if test "$INTEL_COMPILER" = yes
1351 # The "-wdXXX" options suppress warnings:
1352 # remark #1419: external declaration in primary source file
1353 # remark #1682: implicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
1354 # remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
1355 # remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
1356 # remark #193: zero used for undefined preprocessing identifier
1357 # remark #593: variable "curs_sb_left_arrow" was set but never used
1358 # remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
1359 # remark #869: parameter "tw" was never referenced
1360 # remark #981: operands are evaluated in unspecified order
1361 # warning #269: invalid format string conversion
1363 AC_CHECKING([for $CC warning options])
1364 cf_save_CFLAGS="$CFLAGS"
1365 EXTRA_CFLAGS="-Wall"
1378 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
1379 if AC_TRY_EVAL(ac_compile); then
1380 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1381 EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
1384 CFLAGS="$cf_save_CFLAGS"
1386 elif test "$GCC" = yes
1388 AC_CHECKING([for $CC warning options])
1389 cf_save_CFLAGS="$CFLAGS"
1390 EXTRA_CFLAGS="-W -Wall"
1392 test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
1394 Wbad-function-cast \
1398 Wmissing-declarations \
1399 Wmissing-prototypes \
1403 Wstrict-prototypes \
1404 Wundef $cf_warn_CONST $1
1406 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
1407 if AC_TRY_EVAL(ac_compile); then
1408 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1409 case $cf_opt in #(vi
1411 CPPFLAGS="$CPPFLAGS -DXTSTRINGDEFINES"
1414 case $GCC_VERSION in
1416 CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
1421 EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
1424 CFLAGS="$cf_save_CFLAGS"
1428 AC_SUBST(EXTRA_CFLAGS)
1430 dnl ---------------------------------------------------------------------------
1431 dnl CF_GNAT_TRY_LINK version: 1 updated: 2004/08/21 19:02:08
1432 dnl ----------------
1433 dnl Verify that a test program compiles/links with GNAT.
1434 dnl $cf_ada_make is set to the program that compiles/links
1435 dnl $ADAFLAGS may be set to the GNAT flags.
1437 dnl $1 is the text of the spec
1438 dnl $2 is the text of the body
1439 dnl $3 is the shell command to execute if successful
1440 dnl $4 is the shell command to execute if not successful
1441 AC_DEFUN([CF_GNAT_TRY_LINK],
1444 cat >>conftest.ads <<CF_EOF
1447 cat >>conftest.adb <<CF_EOF
1450 if ( $cf_ada_make $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
1451 ifelse($3,, :,[ $3])
1457 dnl ---------------------------------------------------------------------------
1458 dnl CF_GNAT_TRY_RUN version: 3 updated: 2004/08/21 19:02:08
1460 dnl Verify that a test program compiles and runs with GNAT
1461 dnl $cf_ada_make is set to the program that compiles/links
1462 dnl $ADAFLAGS may be set to the GNAT flags.
1464 dnl $1 is the text of the spec
1465 dnl $2 is the text of the body
1466 dnl $3 is the shell command to execute if successful
1467 dnl $4 is the shell command to execute if not successful
1468 AC_DEFUN([CF_GNAT_TRY_RUN],
1471 cat >>conftest.ads <<CF_EOF
1474 cat >>conftest.adb <<CF_EOF
1477 if ( $cf_ada_make $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
1478 if ( ./conftest 1>&AC_FD_CC 2>&1 ) ; then
1479 ifelse($3,, :,[ $3])
1488 dnl ---------------------------------------------------------------------------
1489 dnl CF_GNAT_VERSION version: 12 updated: 2006/10/14 15:23:15
1491 dnl Verify version of GNAT.
1492 AC_DEFUN([CF_GNAT_VERSION],
1494 AC_MSG_CHECKING(for gnat version)
1495 cf_gnat_version=`${cf_ada_make-gnatmake} -v 2>&1 | grep '[[0-9]].[[0-9]][[0-9]]*' |\
1496 sed -e '2,$d' -e 's/[[^0-9 \.]]//g' -e 's/^[[ ]]*//' -e 's/ .*//'`
1497 AC_MSG_RESULT($cf_gnat_version)
1499 case $cf_gnat_version in
1500 3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*)
1501 cf_cv_prog_gnat_correct=yes
1503 *) echo Unsupported GNAT version $cf_gnat_version. Required is 3.11 or better. Disabling Ada95 binding.
1504 cf_cv_prog_gnat_correct=no
1507 case $cf_gnat_version in
1508 3.[[1-9]]*|[[4-9]].*)
1509 cf_compile_generics=generics
1510 cf_generic_objects="\${GENOBJS}"
1512 *) cf_compile_generics=
1517 dnl ---------------------------------------------------------------------------
1518 dnl CF_GNU_SOURCE version: 6 updated: 2005/07/09 13:23:07
1520 dnl Check if we must define _GNU_SOURCE to get a reasonable value for
1521 dnl _XOPEN_SOURCE, upon which many POSIX definitions depend. This is a defect
1522 dnl (or misfeature) of glibc2, which breaks portability of many applications,
1523 dnl since it is interwoven with GNU extensions.
1525 dnl Well, yes we could work around it...
1526 AC_DEFUN([CF_GNU_SOURCE],
1528 AC_CACHE_CHECK(if we must define _GNU_SOURCE,cf_cv_gnu_source,[
1529 AC_TRY_COMPILE([#include <sys/types.h>],[
1530 #ifndef _XOPEN_SOURCE
1533 [cf_cv_gnu_source=no],
1534 [cf_save="$CPPFLAGS"
1535 CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
1536 AC_TRY_COMPILE([#include <sys/types.h>],[
1537 #ifdef _XOPEN_SOURCE
1540 [cf_cv_gnu_source=no],
1541 [cf_cv_gnu_source=yes])
1545 test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
1547 dnl ---------------------------------------------------------------------------
1548 dnl CF_GPP_LIBRARY version: 8 updated: 2003/02/02 01:41:46
1550 dnl If we're trying to use g++, test if libg++ is installed (a rather common
1551 dnl problem :-). If we have the compiler but no library, we'll be able to
1552 dnl configure, but won't be able to build the c++ demo program.
1553 AC_DEFUN([CF_GPP_LIBRARY],
1555 cf_cxx_library=unknown
1556 case $cf_cv_system_name in #(vi
1564 if test "$GXX" = yes; then
1565 AC_MSG_CHECKING([for lib$cf_gpp_libname])
1567 LIBS="$LIBS -l$cf_gpp_libname"
1569 #include <$cf_gpp_libname/builtin.h>
1571 [two_arg_error_handler_t foo2 = lib_error_handler],
1573 CXXLIBS="$CXXLIBS -l$cf_gpp_libname"
1574 if test "$cf_gpp_libname" = cpp ; then
1575 AC_DEFINE(HAVE_GPP_BUILTIN_H)
1577 AC_DEFINE(HAVE_GXX_BUILTIN_H)
1580 #include <builtin.h>
1582 [two_arg_error_handler_t foo2 = lib_error_handler],
1584 CXXLIBS="$CXXLIBS -l$cf_gpp_libname"
1585 AC_DEFINE(HAVE_BUILTIN_H)],
1586 [cf_cxx_library=no])])
1588 AC_MSG_RESULT($cf_cxx_library)
1591 dnl ---------------------------------------------------------------------------
1592 dnl CF_GXX_VERSION version: 5 updated: 2005/08/27 09:53:42
1594 dnl Check for version of g++
1595 AC_DEFUN([CF_GXX_VERSION],[
1596 AC_REQUIRE([AC_PROG_CPP])
1598 if test "$GXX" = yes; then
1599 AC_MSG_CHECKING(version of g++)
1600 GXX_VERSION="`${CXX-g++} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
1601 test -z "$GXX_VERSION" && GXX_VERSION=unknown
1602 AC_MSG_RESULT($GXX_VERSION)
1605 dnl ---------------------------------------------------------------------------
1606 dnl CF_GXX_WARNINGS version: 5 updated: 2005/08/13 14:54:38
1608 dnl Check if the compiler supports useful warning options.
1610 dnl Most of gcc's options apply to g++, except:
1611 dnl -Wbad-function-cast
1612 dnl -Wmissing-declarations
1613 dnl -Wnested-externs
1615 dnl Omit a few (for now):
1619 dnl $1 is an optional list of g++ warning flags that a particular
1620 dnl application might want to use, e.g., "no-unused" for
1623 dnl If $with_ext_const is "yes", add a check for -Wwrite-strings
1625 AC_DEFUN([CF_GXX_WARNINGS],
1628 CF_INTEL_COMPILER(GXX,INTEL_CPLUSPLUS,CXXFLAGS)
1630 AC_REQUIRE([CF_GXX_VERSION])
1635 cat > conftest.$ac_ext <<EOF
1636 #line __oline__ "configure"
1637 int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
1640 if test "$INTEL_CPLUSPLUS" = yes
1642 # The "-wdXXX" options suppress warnings:
1643 # remark #1419: external declaration in primary source file
1644 # remark #1682: implicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
1645 # remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
1646 # remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
1647 # remark #193: zero used for undefined preprocessing identifier
1648 # remark #593: variable "curs_sb_left_arrow" was set but never used
1649 # remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
1650 # remark #869: parameter "tw" was never referenced
1651 # remark #981: operands are evaluated in unspecified order
1652 # warning #269: invalid format string conversion
1654 AC_CHECKING([for $CC warning options])
1655 cf_save_CXXFLAGS="$CXXFLAGS"
1656 EXTRA_CXXFLAGS="-Wall"
1669 CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -$cf_opt"
1670 if AC_TRY_EVAL(ac_compile); then
1671 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1672 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
1675 CXXFLAGS="$cf_save_CXXFLAGS"
1677 elif test "$GXX" = yes
1679 AC_CHECKING([for $CXX warning options])
1680 cf_save_CXXFLAGS="$CXXFLAGS"
1681 EXTRA_CXXFLAGS="-W -Wall"
1682 cf_gxx_extra_warnings=""
1683 test "$with_ext_const" = yes && cf_gxx_extra_warnings="Wwrite-strings"
1684 case "$GCC_VERSION" in
1688 cf_gxx_extra_warnings="$cf_gxx_extra_warnings Weffc++"
1694 Woverloaded-virtual \
1700 Wmissing-prototypes \
1703 Wstrict-prototypes \
1704 Wundef $cf_gxx_extra_warnings $1
1706 CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -Werror -$cf_opt"
1707 if AC_TRY_EVAL(ac_compile); then
1708 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1709 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
1711 test -n "$verbose" && AC_MSG_RESULT(... no -$cf_opt)
1714 CXXFLAGS="$cf_save_CXXFLAGS"
1719 AC_SUBST(EXTRA_CXXFLAGS)
1721 dnl ---------------------------------------------------------------------------
1722 dnl CF_HASHED_DB version: 3 updated: 2007/11/24 17:43:37
1724 dnl Look for an instance of the Berkeley hashed database.
1726 dnl $1 = optional parameter, to specify install-prefix for the database.
1727 AC_DEFUN([CF_HASHED_DB],
1734 if test -d "$1" ; then
1735 CF_ADD_INCDIR($1/include)
1736 CF_ADD_LIBDIR($1/lib)
1740 AC_CHECK_HEADER(db.h,[
1741 CF_HASHED_DB_VERSION
1742 if test "$cf_cv_hashed_db_version" = unknown ; then
1743 AC_MSG_ERROR(Cannot determine version of db)
1746 if test "$cf_cv_hashed_db_libs" = unknown ; then
1747 AC_MSG_ERROR(Cannot determine library for db)
1748 elif test "$cf_cv_hashed_db_libs" != default ; then
1749 LIBS="-l$cf_cv_hashed_db_libs $LIBS"
1753 AC_MSG_ERROR(Cannot find db.h)
1756 dnl ---------------------------------------------------------------------------
1757 dnl CF_HASHED_DB_LIBS version: 8 updated: 2008/08/04 06:18:06
1758 dnl -----------------
1759 dnl Given that we have the header and version for hashed database, find the
1760 dnl library information.
1761 AC_DEFUN([CF_HASHED_DB_LIBS],
1763 AC_CACHE_CHECK(for db libraries, cf_cv_hashed_db_libs,[
1764 cf_cv_hashed_db_libs=unknown
1765 for cf_db_libs in "" db$cf_cv_hashed_db_version db-$cf_cv_hashed_db_version db ''
1767 cf_save_libs="$LIBS"
1768 if test -n "$cf_db_libs"; then
1769 LIBS="-l$cf_db_libs $LIBS"
1771 CF_MSG_LOG(checking for library "$cf_db_libs")
1773 $ac_includes_default
1776 char *path = "/tmp/foo";
1777 #ifdef DB_VERSION_MAJOR
1778 #if DB_VERSION_MAJOR >= 4
1780 db_create(&result, NULL, 0);
1781 result->open(result,
1788 #elif DB_VERSION_MAJOR >= 3
1790 db_create(&result, NULL, 0);
1791 result->open(result,
1797 #elif DB_VERSION_MAJOR >= 2
1806 #endif /* DB_VERSION_MAJOR */
1808 DB *result = dbopen(path,
1814 ${cf_cv_main_return:-return}(result != 0)
1816 if test -n "$cf_db_libs" ; then
1817 cf_cv_hashed_db_libs=$cf_db_libs
1819 cf_cv_hashed_db_libs=default
1821 LIBS="$cf_save_libs"
1824 LIBS="$cf_save_libs"
1828 dnl ---------------------------------------------------------------------------
1829 dnl CF_HASHED_DB_VERSION version: 3 updated: 2007/12/01 15:01:37
1830 dnl --------------------
1831 dnl Given that we have the header file for hashed database, find the version
1833 AC_DEFUN([CF_HASHED_DB_VERSION],
1835 AC_CACHE_CHECK(for version of db, cf_cv_hashed_db_version,[
1836 cf_cv_hashed_db_version=unknown
1838 for cf_db_version in 1 2 3 4 5
1840 CF_MSG_LOG(checking for db version $cf_db_version)
1842 $ac_includes_default
1845 #ifdef DB_VERSION_MAJOR
1846 /* db2 (DB_VERSION_MAJOR=2) has also DB_VERSION_MINOR, tested with 7 */
1847 #if $cf_db_version == DB_VERSION_MAJOR
1853 #if $cf_db_version == 1
1854 /* ok: assuming this is DB 1.8.5 */
1860 cf_cv_hashed_db_version=$cf_db_version
1866 dnl ---------------------------------------------------------------------------
1867 dnl CF_HELP_MESSAGE version: 3 updated: 1998/01/14 10:56:23
1869 dnl Insert text into the help-message, for readability, from AC_ARG_WITH.
1870 AC_DEFUN([CF_HELP_MESSAGE],
1871 [AC_DIVERT_HELP([$1])dnl
1873 dnl ---------------------------------------------------------------------------
1874 dnl CF_INCLUDE_DIRS version: 5 updated: 2006/10/14 15:23:15
1876 dnl Construct the list of include-options according to whether we're building
1877 dnl in the source directory or using '--srcdir=DIR' option. If we're building
1878 dnl with gcc, don't append the includedir if it happens to be /usr/include,
1879 dnl since that usually breaks gcc's shadow-includes.
1880 AC_DEFUN([CF_INCLUDE_DIRS],
1882 CPPFLAGS="-I. -I../include $CPPFLAGS"
1883 if test "$srcdir" != "."; then
1884 CPPFLAGS="-I\${srcdir}/../include $CPPFLAGS"
1886 if test "$GCC" != yes; then
1887 CPPFLAGS="$CPPFLAGS -I\${includedir}"
1888 elif test "$includedir" != "/usr/include"; then
1889 if test "$includedir" = '${prefix}/include' ; then
1890 if test $prefix != /usr ; then
1891 CPPFLAGS="$CPPFLAGS -I\${includedir}"
1894 CPPFLAGS="$CPPFLAGS -I\${includedir}"
1899 dnl ---------------------------------------------------------------------------
1900 dnl CF_INTEL_COMPILER version: 3 updated: 2005/08/06 18:37:29
1901 dnl -----------------
1902 dnl Check if the given compiler is really the Intel compiler for Linux. It
1903 dnl tries to imitate gcc, but does not return an error when it finds a mismatch
1904 dnl between prototypes, e.g., as exercised by CF_MISSING_CHECK.
1906 dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
1907 dnl ensure that it is not mistaken for gcc/g++. It is normally invoked from
1908 dnl the wrappers for gcc and g++ warnings.
1910 dnl $1 = GCC (default) or GXX
1911 dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS
1912 dnl $3 = CFLAGS (default) or CXXFLAGS
1913 AC_DEFUN([CF_INTEL_COMPILER],[
1914 ifelse($2,,INTEL_COMPILER,[$2])=no
1916 if test "$ifelse($1,,[$1],GCC)" = yes ; then
1919 AC_MSG_CHECKING(if this is really Intel ifelse($1,GXX,C++,C) compiler)
1920 cf_save_CFLAGS="$ifelse($3,,CFLAGS,[$3])"
1921 ifelse($3,,CFLAGS,[$3])="$ifelse($3,,CFLAGS,[$3]) -no-gcc"
1923 #ifdef __INTEL_COMPILER
1927 ],[ifelse($2,,INTEL_COMPILER,[$2])=yes
1928 cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
1930 ifelse($3,,CFLAGS,[$3])="$cf_save_CFLAGS"
1931 AC_MSG_RESULT($ifelse($2,,INTEL_COMPILER,[$2]))
1936 dnl ---------------------------------------------------------------------------
1937 dnl CF_ISASCII version: 3 updated: 2000/08/12 23:18:52
1939 dnl Check if we have either a function or macro for 'isascii()'.
1940 AC_DEFUN([CF_ISASCII],
1942 AC_MSG_CHECKING(for isascii)
1943 AC_CACHE_VAL(cf_cv_have_isascii,[
1944 AC_TRY_LINK([#include <ctype.h>],[int x = isascii(' ')],
1945 [cf_cv_have_isascii=yes],
1946 [cf_cv_have_isascii=no])
1948 AC_MSG_RESULT($cf_cv_have_isascii)
1949 test "$cf_cv_have_isascii" = yes && AC_DEFINE(HAVE_ISASCII)
1951 dnl ---------------------------------------------------------------------------
1952 dnl CF_LARGEFILE version: 7 updated: 2007/06/02 11:58:50
1954 dnl Add checks for large file support.
1955 AC_DEFUN([CF_LARGEFILE],[
1956 ifdef([AC_FUNC_FSEEKO],[
1958 if test "$enable_largefile" != no ; then
1961 # Normally we would collect these definitions in the config.h,
1962 # but (like _XOPEN_SOURCE), some environments rely on having these
1963 # defined before any of the system headers are included. Another
1964 # case comes up with C++, e.g., on AIX the compiler compiles the
1965 # header files by themselves before looking at the body files it is
1966 # told to compile. For ncurses, those header files do not include
1968 test "$ac_cv_sys_large_files" != no && CPPFLAGS="$CPPFLAGS -D_LARGE_FILES "
1969 test "$ac_cv_sys_largefile_source" != no && CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE "
1970 test "$ac_cv_sys_file_offset_bits" != no && CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits "
1972 AC_CACHE_CHECK(whether to use struct dirent64, cf_cv_struct_dirent64,[
1974 #include <sys/types.h>
1977 /* if transitional largefile support is setup, this is true */
1978 extern struct dirent64 * readdir(DIR *);
1979 struct dirent64 *x = readdir((DIR *)0);
1980 struct dirent *y = readdir((DIR *)0);
1983 [cf_cv_struct_dirent64=yes],
1984 [cf_cv_struct_dirent64=no])
1986 test "$cf_cv_struct_dirent64" = yes && AC_DEFINE(HAVE_STRUCT_DIRENT64)
1990 dnl ---------------------------------------------------------------------------
1991 dnl CF_LDFLAGS_STATIC version: 3 updated: 2008/07/05 13:56:40
1992 dnl -----------------
1993 dnl Check for compiler/linker flags used to temporarily force usage of static
1994 dnl libraries. This depends on the compiler and platform. Use this to help
1995 dnl ensure that the linker picks up a given library based on its position in
1996 dnl the list of linker options and libraries.
1997 AC_DEFUN([CF_LDFLAGS_STATIC],[
1999 if test "$GCC" = yes ; then
2000 case $cf_cv_system_name in #(
2001 aix[[45]]*) #( gcc 4.2.4 linkage on AIX is broken
2005 *) #( normally, except when broken
2006 LDFLAGS_STATIC=-static
2007 LDFLAGS_SHARED=-dynamic
2011 case $cf_cv_system_name in #(
2012 aix[[45]]*) #( from ld manpage
2013 LDFLAGS_STATIC=-bstatic
2014 LDFLAGS_SHARED=-bdynamic
2016 hpux*) #( from ld manpage for hpux10.20, hpux11.11
2017 # We could also use just "archive" and "shared".
2018 LDFLAGS_STATIC=-Wl,-a,archive_shared
2019 LDFLAGS_SHARED=-Wl,-a,shared_archive
2021 irix*) #( from ld manpage IRIX64
2022 LDFLAGS_STATIC=-Bstatic
2023 LDFLAGS_SHARED=-Bdynamic
2025 osf[[45]]*) #( from ld manpage osf4.0d, osf5.1
2026 # alternative "-oldstyle_liblookup" (not in cc manpage)
2027 LDFLAGS_STATIC=-noso
2028 LDFLAGS_SHARED=-so_archive
2031 LDFLAGS_STATIC=-Bstatic
2032 LDFLAGS_SHARED=-Bdynamic
2037 AC_SUBST(LDFLAGS_STATIC)
2038 AC_SUBST(LDFLAGS_SHARED)
2040 dnl ---------------------------------------------------------------------------
2041 dnl CF_LIBUTF8 version: 2 updated: 2002/01/19 22:51:32
2043 dnl Check for libutf8
2044 AC_DEFUN([CF_LIBUTF8],
2046 AC_CACHE_CHECK(for putwc in libutf8,cf_cv_libutf8,[
2047 cf_save_LIBS="$LIBS"
2050 #include <libutf8.h>],[putwc(0,0);],
2051 [cf_cv_libutf8=yes],
2053 LIBS="$cf_save_LIBS"
2056 if test "$cf_cv_libutf8" = yes ; then
2057 AC_DEFINE(HAVE_LIBUTF8_H)
2061 dnl ---------------------------------------------------------------------------
2062 dnl CF_LIB_PREFIX version: 8 updated: 2008/09/13 11:34:16
2064 dnl Compute the library-prefix for the given host system
2065 dnl $1 = variable to set
2066 AC_DEFUN([CF_LIB_PREFIX],
2068 case $cf_cv_system_name in #(vi
2075 ifelse($1,,,[$1=$LIB_PREFIX])
2076 AC_SUBST(LIB_PREFIX)
2078 dnl ---------------------------------------------------------------------------
2079 dnl CF_LIB_RULES version: 53 updated: 2008/09/20 19:51:59
2081 dnl Append definitions and rules for the given models to the subdirectory
2082 dnl Makefiles, and the recursion rule for the top-level Makefile. If the
2083 dnl subdirectory is a library-source directory, modify the LIBS_TO_MAKE list in
2084 dnl the corresponding makefile to list the models that we'll generate.
2086 dnl For shared libraries, make a list of symbolic links to construct when
2087 dnl generating each library. The convention used for Linux is the simplest
2090 dnl lib<name>.so.<major> ->
2091 dnl lib<name>.so.<maj>.<minor>
2092 AC_DEFUN([CF_LIB_RULES],
2094 CF_LIB_PREFIX(cf_prefix)
2095 AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
2097 if test $cf_cv_shlib_version = cygdll ; then
2098 TINFO_NAME=$TINFO_ARG_SUFFIX
2102 for cf_dir in $SRC_SUBDIRS
2104 if test ! -d $srcdir/$cf_dir ; then
2106 elif test -f $srcdir/$cf_dir/modules; then
2110 for cf_item in $cf_LIST_MODELS
2112 CF_LIB_SUFFIX($cf_item,cf_suffix,cf_depsuf)
2113 if test $cf_item = shared ; then
2114 if test "$cf_cv_do_symlinks" = yes ; then
2115 case "$cf_cv_shlib_version" in #(vi
2117 case "$cf_cv_system_name" in #(vi
2119 case .${LIB_SUFFIX} in
2121 cf_suffix=`echo $cf_suffix | sed 's/^w//'`
2122 cf_suffix=w'.${REL_VERSION}'"$cf_suffix"
2125 cf_suffix='.${REL_VERSION}'"$cf_suffix"
2129 *) cf_suffix="$cf_suffix"'.${REL_VERSION}' ;;
2133 case "$cf_cv_system_name" in #(vi
2135 case .${LIB_SUFFIX} in
2137 cf_suffix=`echo $cf_suffix | sed 's/^w//'`
2138 cf_suffix=w'.${ABI_VERSION}'"$cf_suffix"
2141 cf_suffix='.${ABI_VERSION}'"$cf_suffix"
2145 *) cf_suffix="$cf_suffix"'.${ABI_VERSION}' ;;
2150 # cygwin needs import library, and has unique naming convention
2151 # use autodetected ${cf_prefix} for import lib and static lib, but
2152 # use 'cyg' prefix for shared lib.
2153 if test $cf_cv_shlib_version = cygdll ; then
2154 cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
2155 LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/cyg${cf_dir}${cf_cygsuf}"
2159 LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/${cf_prefix}${cf_dir}${cf_suffix}"
2162 if test $cf_dir = ncurses ; then
2163 cf_subsets="$LIB_SUBSETS"
2164 cf_r_parts="$cf_subsets"
2165 cf_liblist="$LIBS_TO_MAKE"
2167 while test -n "$cf_r_parts"
2169 cf_l_parts=`echo "$cf_r_parts" |sed -e 's/ .*$//'`
2170 cf_r_parts=`echo "$cf_r_parts" |sed -e 's/^[[^ ]]* //'`
2171 if test "$cf_l_parts" != "$cf_r_parts" ; then
2173 case $cf_l_parts in #(vi
2175 cf_item=`echo $cf_liblist |sed -e s%${LIB_NAME}${LIB_SUFFIX}%${TINFO_LIB_SUFFIX}%g`
2178 cf_item=`echo $cf_liblist |sed -e s%${LIB_NAME}${LIB_SUFFIX}%${TICS_LIB_SUFFIX}%g`
2184 if test -n "$cf_item"; then
2185 LIBS_TO_MAKE="$cf_item $LIBS_TO_MAKE"
2192 cf_subsets=`echo "$LIB_SUBSETS" | sed -e 's/^termlib.* //'`
2195 sed -e "s%@LIBS_TO_MAKE@%$LIBS_TO_MAKE%" \
2196 -e "s%@SHARED_LIB@%$SHARED_LIB%" \
2197 $cf_dir/Makefile >$cf_dir/Makefile.out
2198 mv $cf_dir/Makefile.out $cf_dir/Makefile
2200 $AWK -f $srcdir/mk-0th.awk \
2201 libname="${cf_dir}${LIB_SUFFIX}" subsets="$LIB_SUBSETS" \
2202 $srcdir/$cf_dir/modules >>$cf_dir/Makefile
2204 for cf_subset in $cf_subsets
2207 for cf_item in $cf_LIST_MODELS
2209 echo "Appending rules for ${cf_item} model (${cf_dir}: ${cf_subset})"
2210 CF_UPPER(cf_ITEM,$cf_item)
2211 CF_LIB_SUFFIX($cf_item,cf_suffix,cf_depsuf)
2212 CF_OBJ_SUBDIR($cf_item,cf_subdir)
2214 # Test for case where we build libtinfo with a different name.
2216 if test $cf_dir = ncurses ; then
2219 cf_libname=${cf_libname}$LIB_SUFFIX
2222 cf_libname=$TINFO_LIB_SUFFIX
2225 cf_libname=$TICS_LIB_SUFFIX
2229 cf_libname=${cf_libname}$LIB_SUFFIX
2231 if test -n "${DFT_ARG_SUFFIX}" ; then
2232 # undo $LIB_SUFFIX add-on in CF_LIB_SUFFIX
2233 cf_suffix=`echo $cf_suffix |sed -e "s%^${LIB_SUFFIX}%%"`
2236 # These dependencies really are for development, not
2237 # builds, but they are useful in porting, too.
2238 cf_depend="../include/ncurses_cfg.h"
2239 if test "$srcdir" = "."; then
2242 cf_reldir="\${srcdir}"
2245 if test -f $srcdir/$cf_dir/$cf_dir.priv.h; then
2246 cf_depend="$cf_depend $cf_reldir/$cf_dir.priv.h"
2247 elif test -f $srcdir/$cf_dir/curses.priv.h; then
2248 cf_depend="$cf_depend $cf_reldir/curses.priv.h"
2252 old_cf_suffix="$cf_suffix"
2253 if test "$cf_cv_shlib_version_infix" = yes ; then
2254 if test -n "$LIB_SUFFIX" ; then
2257 cf_libname=`echo $cf_libname | sed 's/w$//'`
2258 cf_suffix=`echo $cf_suffix | sed 's/^w//'`
2265 $AWK -f $srcdir/mk-1st.awk \
2266 name=${cf_libname}${cf_dir_suffix} \
2267 traces=$LIB_TRACING \
2273 TermlibRoot=$TINFO_NAME \
2274 TermlibSuffix=$TINFO_SUFFIX \
2275 ShlibVer=$cf_cv_shlib_version \
2276 ShlibVerInfix=$cf_cv_shlib_version_infix \
2277 ReLink=${cf_cv_do_relink-no} \
2278 DoLinks=$cf_cv_do_symlinks \
2279 rmSoLocs=$cf_cv_rm_so_locs \
2280 ldconfig="$LDCONFIG" \
2281 overwrite=$WITH_OVERWRITE \
2282 depend="$cf_depend" \
2284 $srcdir/$cf_dir/modules >>$cf_dir/Makefile
2286 cf_suffix="$old_cf_suffix"
2288 for cf_subdir2 in $cf_subdirs lib
2290 test $cf_subdir = $cf_subdir2 && break
2292 test "${cf_subset}.${cf_subdir2}" != "${cf_subset}.${cf_subdir}" && \
2293 $AWK -f $srcdir/mk-2nd.awk \
2295 traces=$LIB_TRACING \
2301 crenames=$cf_cv_prog_CC_c_o \
2302 cxxrenames=$cf_cv_prog_CXX_c_o \
2303 $srcdir/$cf_dir/modules >>$cf_dir/Makefile
2304 cf_subdirs="$cf_subdirs $cf_subdir"
2309 echo ' cd '$cf_dir' && ${MAKE} ${CF_MFLAGS} [$]@' >>Makefile
2312 for cf_dir in $SRC_SUBDIRS
2314 if test ! -d $srcdir/$cf_dir ; then
2318 if test -f $cf_dir/Makefile ; then
2321 echo 'libs \' >> Makefile
2322 echo 'install.libs \' >> Makefile
2323 echo 'uninstall.libs ::' >> Makefile
2324 echo ' cd '$cf_dir' && ${MAKE} ${CF_MFLAGS} [$]@' >> Makefile
2329 if test -f $srcdir/$cf_dir/modules; then
2331 if test -f $srcdir/$cf_dir/headers; then
2332 cat >> Makefile <<CF_EOF
2334 uninstall.includes \\
2337 if test "$cf_dir" != "c++" ; then
2338 echo 'lint \' >> Makefile
2340 cat >> Makefile <<CF_EOF
2346 uninstall.$cf_dir ::
2347 cd $cf_dir && \${MAKE} \${CF_MFLAGS} \[$]@
2349 elif test -f $srcdir/$cf_dir/headers; then
2350 cat >> Makefile <<CF_EOF
2356 uninstall.includes ::
2357 cd $cf_dir && \${MAKE} \${CF_MFLAGS} \[$]@
2362 cat >> Makefile <<CF_EOF
2364 install.libs uninstall.libs \\
2365 install.data uninstall.data ::
2366 $MAKE_TERMINFO cd misc && \${MAKE} \${CF_MFLAGS} \[$]@
2370 cd man && \${MAKE} \${CF_MFLAGS} \[$]@
2373 rm -f config.cache config.log config.status Makefile include/ncurses_cfg.h
2374 rm -f headers.sh headers.sed mk_shared_lib.sh
2375 rm -rf \${DIRS_TO_MAKE}
2378 # Special case: tack's manpage lives in its own directory.
2379 if test -d tack ; then
2380 if test -f $srcdir/$tack.h; then
2381 cat >> Makefile <<CF_EOF
2385 cd tack && \${MAKE} \${CF_MFLAGS} \[$]@
2390 dnl If we're installing into a subdirectory of /usr/include, etc., we should
2391 dnl prepend the subdirectory's name to the "#include" paths. It won't hurt
2392 dnl anything, and will make it more standardized. It's awkward to decide this
2393 dnl at configuration because of quoting, so we'll simply make all headers
2394 dnl installed via a script that can do the right thing.
2396 rm -f headers.sed headers.sh
2398 dnl ( generating this script makes the makefiles a little tidier :-)
2399 echo creating headers.sh
2400 cat >headers.sh <<CF_EOF
2402 # This shell script is generated by the 'configure' script. It is invoked in a
2403 # subdirectory of the build tree. It generates a sed-script in the parent
2404 # directory that is used to adjust includes for header files that reside in a
2405 # subdirectory of /usr/include, etc.
2407 while test \[$]# != 3
2409 PRG="\$PRG \[$]1"; shift
2414 TMPSRC=\${TMPDIR-/tmp}/\`basename \$SRC\`\$\$
2415 TMPSED=\${TMPDIR-/tmp}/headers.sed\$\$
2416 echo installing \$SRC in \$DST
2419 if test $WITH_CURSES_H = yes; then
2420 cat >>headers.sh <<CF_EOF
2423 END=\`basename \$DST\`
2424 for i in \`cat \$REF/../*/headers |fgrep -v "#"\`
2426 NAME=\`basename \$i\`
2427 echo "s/<\$NAME>/<\$END\/\$NAME>/" >> \$TMPSED
2437 cat >>headers.sh <<CF_EOF
2440 END=\`basename \$DST\`
2441 for i in \`cat \$REF/../*/headers |fgrep -v "#"\`
2443 NAME=\`basename \$i\`
2444 if test "\$NAME" = "curses.h"
2446 echo "s/<curses.h>/<ncurses.h>/" >> \$TMPSED
2449 echo "s/<\$NAME>/<\$END\/\$NAME>/" >> \$TMPSED
2453 echo "s/<curses.h>/<ncurses.h>/" >> \$TMPSED
2458 cat >>headers.sh <<CF_EOF
2460 sed -f \$TMPSED \$SRC > \$TMPSRC
2461 NAME=\`basename \$SRC\`
2463 if test $WITH_CURSES_H != yes; then
2464 cat >>headers.sh <<CF_EOF
2465 test "\$NAME" = "curses.h" && NAME=ncurses.h
2468 cat >>headers.sh <<CF_EOF
2469 # Just in case someone gzip'd manpages, remove the conflicting copy.
2470 test -f \$DST/\$NAME.gz && rm -f \$DST/\$NAME.gz
2472 eval \$PRG \$TMPSRC \$DST/\$NAME
2473 rm -f \$TMPSRC \$TMPSED
2476 chmod 0755 headers.sh
2478 for cf_dir in $SRC_SUBDIRS
2480 if test ! -d $srcdir/$cf_dir ; then
2484 if test -f $srcdir/$cf_dir/headers; then
2485 $AWK -f $srcdir/mk-hdr.awk \
2486 subset="$LIB_SUBSETS" \
2487 compat="$WITH_CURSES_H" \
2488 $srcdir/$cf_dir/headers >>$cf_dir/Makefile
2491 if test -f $srcdir/$cf_dir/modules; then
2492 if test "$cf_dir" != "c++" ; then
2493 cat >>$cf_dir/Makefile <<"CF_EOF"
2494 depend : ${AUTO_SRC}
2495 makedepend -- ${CPPFLAGS} -- ${C_SRC}
2497 # DO NOT DELETE THIS LINE -- make depend depends on it.
2504 dnl ---------------------------------------------------------------------------
2505 dnl CF_LIB_SONAME version: 3 updated: 2006/12/16 15:55:46
2507 dnl Find the and soname for the given shared library. Set the cache variable
2508 dnl cf_cv_$3_soname to this, unless it is not found. Then set the cache
2509 dnl variable to "unknown".
2513 dnl $3 = library name
2514 AC_DEFUN([CF_LIB_SONAME],
2516 AC_CACHE_CHECK(for soname of $3 library,cf_cv_$3_soname,[
2518 cf_cv_$3_soname=unknown
2519 if test "$cross_compiling" != yes ; then
2520 cat >conftest.$ac_ext <<CF_EOF
2525 ${cf_cv_main_return:-return}(0);
2528 cf_save_LIBS="$LIBS"
2530 if AC_TRY_EVAL(ac_compile) ; then
2531 if AC_TRY_EVAL(ac_link) ; then
2532 cf_cv_$3_soname=`ldd conftest$ac_exeext 2>/dev/null | sed -e 's,^.*/,,' -e 's, .*$,,' | fgrep lib$3.`
2533 test -z "$cf_cv_$3_soname" && cf_cv_$3_soname=unknown
2537 LIBS="$cf_save_LIBS"
2541 dnl ---------------------------------------------------------------------------
2542 dnl CF_LIB_SUFFIX version: 15 updated: 2008/09/13 11:54:48
2544 dnl Compute the library file-suffix from the given model name
2546 dnl $2 = variable to set (the nominal library suffix)
2547 dnl $3 = dependency variable to set (actual filename)
2548 dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
2549 AC_DEFUN([CF_LIB_SUFFIX],
2551 AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
2570 case $cf_cv_system_name in
2596 test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
2597 test -n "$LIB_SUFFIX" && $3="${LIB_SUFFIX}[$]{$3}"
2599 dnl ---------------------------------------------------------------------------
2600 dnl CF_LIB_TYPE version: 4 updated: 2000/10/20 22:57:49
2602 dnl Compute the string to append to -library from the given model name
2604 dnl $2 = variable to set
2605 dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
2606 AC_DEFUN([CF_LIB_TYPE],
2615 test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
2617 dnl ---------------------------------------------------------------------------
2618 dnl CF_LINK_DATAONLY version: 8 updated: 2006/12/16 12:33:30
2619 dnl ----------------
2620 dnl Some systems have a non-ANSI linker that doesn't pull in modules that have
2621 dnl only data (i.e., no functions), for example NeXT. On those systems we'll
2622 dnl have to provide wrappers for global tables to ensure they're linked
2624 AC_DEFUN([CF_LINK_DATAONLY],
2626 AC_MSG_CHECKING([if data-only library module links])
2627 AC_CACHE_VAL(cf_cv_link_dataonly,[
2629 cat >conftest.$ac_ext <<EOF
2630 #line __oline__ "configure"
2631 int testdata[[3]] = { 123, 456, 789 };
2633 if AC_TRY_EVAL(ac_compile) ; then
2634 mv conftest.o data.o && \
2635 ( $AR $AR_OPTS conftest.a data.o ) 2>&AC_FD_CC 1>/dev/null
2637 rm -f conftest.$ac_ext data.o
2638 cat >conftest.$ac_ext <<EOF
2639 #line __oline__ "configure"
2643 ${cf_cv_main_return:-return}(1); /* I'm told this linker is broken */
2645 extern int testdata[[3]];
2646 return testdata[[0]] == 123
2647 && testdata[[1]] == 456
2648 && testdata[[2]] == 789;
2652 if AC_TRY_EVAL(ac_compile); then
2653 mv conftest.o func.o && \
2654 ( $AR $AR_OPTS conftest.a func.o ) 2>&AC_FD_CC 1>/dev/null
2656 rm -f conftest.$ac_ext func.o
2657 ( eval $RANLIB conftest.a ) 2>&AC_FD_CC >/dev/null
2659 LIBS="conftest.a $LIBS"
2663 extern int testfunc();
2664 ${cf_cv_main_return:-return} (!testfunc());
2667 [cf_cv_link_dataonly=yes],
2668 [cf_cv_link_dataonly=no],
2669 [cf_cv_link_dataonly=unknown])
2672 AC_MSG_RESULT($cf_cv_link_dataonly)
2674 if test "$cf_cv_link_dataonly" = no ; then
2675 AC_DEFINE(BROKEN_LINKER)
2680 dnl ---------------------------------------------------------------------------
2681 dnl CF_LINK_FUNCS version: 7 updated: 2006/12/16 12:33:30
2683 dnl Most Unix systems have both link and symlink, a few don't have symlink.
2684 dnl A few non-Unix systems implement symlink, but not link.
2685 dnl A few non-systems implement neither (or have nonfunctional versions).
2686 AC_DEFUN([CF_LINK_FUNCS],
2692 if test "$cross_compiling" = yes ; then
2697 AC_CACHE_CHECK(if link/symlink functions work,cf_cv_link_funcs,[
2699 for cf_func in link symlink ; do
2701 #include <sys/types.h>
2702 #include <sys/stat.h>
2703 #ifdef HAVE_UNISTD_H
2709 char *src = "config.log";
2710 char *dst = "conftest.chk";
2715 fail = ($cf_func("config.log", "conftest.chk") < 0)
2716 || (stat(dst, &dst_sb) < 0)
2717 || (dst_sb.st_mtime != src_sb.st_mtime);
2723 ${cf_cv_main_return:-return} (fail);
2726 cf_cv_link_funcs="$cf_cv_link_funcs $cf_func"
2727 eval 'ac_cv_func_'$cf_func'=yes'],[
2728 eval 'ac_cv_func_'$cf_func'=no'],[
2729 eval 'ac_cv_func_'$cf_func'=error'])
2731 test -z "$cf_cv_link_funcs" && cf_cv_link_funcs=no
2733 test "$ac_cv_func_link" = yes && AC_DEFINE(HAVE_LINK)
2734 test "$ac_cv_func_symlink" = yes && AC_DEFINE(HAVE_SYMLINK)
2737 dnl ---------------------------------------------------------------------------
2738 dnl CF_MAIN_RETURN version: 1 updated: 2006/12/10 09:51:54
2740 dnl Check if a return from main to the shell actually returns the same exit
2741 dnl code. This is true for almost any POSIX environment.
2743 dnl Some very old environments did not flush stdout, etc., on an exit. That
2744 dnl would be a useful case to test for also.
2745 AC_DEFUN([CF_MAIN_RETURN],
2747 cf_cv_main_return=return
2749 dnl ---------------------------------------------------------------------------
2750 dnl CF_MAKEFLAGS version: 12 updated: 2006/10/21 08:27:03
2752 dnl Some 'make' programs support ${MAKEFLAGS}, some ${MFLAGS}, to pass 'make'
2753 dnl options to lower-levels. It's very useful for "make -n" -- if we have it.
2754 dnl (GNU 'make' does both, something POSIX 'make', which happens to make the
2755 dnl ${MAKEFLAGS} variable incompatible because it adds the assignments :-)
2756 AC_DEFUN([CF_MAKEFLAGS],
2758 AC_CACHE_CHECK(for makeflags variable, cf_cv_makeflags,[
2760 for cf_option in '-${MAKEFLAGS}' '${MFLAGS}'
2762 cat >cf_makeflags.tmp <<CF_EOF
2765 @ echo '.$cf_option'
2767 cf_result=`${MAKE-make} -k -f cf_makeflags.tmp 2>/dev/null | sed -e 's,[[ ]]*$,,'`
2768 case "$cf_result" in
2770 cf_result=`${MAKE-make} -k -f cf_makeflags.tmp CC=cc 2>/dev/null`
2771 case "$cf_result" in
2772 .*CC=*) cf_cv_makeflags=
2774 *) cf_cv_makeflags=$cf_option
2780 *) echo "given option \"$cf_option\", no match \"$cf_result\""
2784 rm -f cf_makeflags.tmp
2787 AC_SUBST(cf_cv_makeflags)
2789 dnl ---------------------------------------------------------------------------
2790 dnl CF_MAKE_TAGS version: 2 updated: 2000/10/04 09:18:40
2792 dnl Generate tags/TAGS targets for makefiles. Do not generate TAGS if we have
2793 dnl a monocase filesystem.
2794 AC_DEFUN([CF_MAKE_TAGS],[
2795 AC_REQUIRE([CF_MIXEDCASE_FILENAMES])
2796 AC_CHECK_PROG(MAKE_LOWER_TAGS, ctags, yes, no)
2798 if test "$cf_cv_mixedcase" = yes ; then
2799 AC_CHECK_PROG(MAKE_UPPER_TAGS, etags, yes, no)
2804 if test "$MAKE_UPPER_TAGS" = yes ; then
2809 AC_SUBST(MAKE_UPPER_TAGS)
2811 if test "$MAKE_LOWER_TAGS" = yes ; then
2816 AC_SUBST(MAKE_LOWER_TAGS)
2818 dnl ---------------------------------------------------------------------------
2819 dnl CF_MANPAGE_FORMAT version: 7 updated: 2003/12/20 19:30:34
2820 dnl -----------------
2821 dnl Option to allow user to override automatic configuration of manpage format.
2822 dnl There are several special cases:
2824 dnl gzip - man checks for, can display gzip'd files
2825 dnl compress - man checks for, can display compressed files
2826 dnl BSDI - files in the cat-directories are suffixed ".0"
2827 dnl formatted - installer should format (put files in cat-directory)
2828 dnl catonly - installer should only format, e.g., for a turnkey system.
2830 dnl There are other configurations which this macro does not test, e.g., HPUX's
2831 dnl compressed manpages (but uncompressed manpages are fine, and HPUX's naming
2832 dnl convention would not match our use).
2833 AC_DEFUN([CF_MANPAGE_FORMAT],
2835 AC_REQUIRE([CF_PATHSEP])
2836 AC_MSG_CHECKING(format of man-pages)
2838 AC_ARG_WITH(manpage-format,
2839 [ --with-manpage-format specify manpage-format: gzip/compress/BSDI/normal and
2840 optionally formatted/catonly, e.g., gzip,formatted],
2841 [MANPAGE_FORMAT=$withval],
2842 [MANPAGE_FORMAT=unknown])
2844 test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=unknown
2845 MANPAGE_FORMAT=`echo "$MANPAGE_FORMAT" | sed -e 's/,/ /g'`
2849 case $MANPAGE_FORMAT in
2851 if test -z "$MANPATH" ; then
2852 MANPATH="/usr/man:/usr/share/man"
2855 # look for the 'date' man-page (it's most likely to be installed!)
2861 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATHSEP}"
2862 for cf_dir in $MANPATH; do
2863 test -z "$cf_dir" && cf_dir=/usr/man
2864 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
2866 cf_test=`echo $cf_name | sed -e 's/*//'`
2867 if test "x$cf_test" = "x$cf_name" ; then
2870 *.gz) MANPAGE_FORMAT="$MANPAGE_FORMAT gzip";;
2871 *.Z) MANPAGE_FORMAT="$MANPAGE_FORMAT compress";;
2872 *.0) MANPAGE_FORMAT="$MANPAGE_FORMAT BSDI";;
2873 *) MANPAGE_FORMAT="$MANPAGE_FORMAT normal";;
2887 # if we found a match in either man* or cat*, stop looking
2888 if test -n "$MANPAGE_FORMAT" ; then
2890 test "$cf_preform" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT formatted"
2891 test "$cf_catonly" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT catonly"
2897 test $cf_found=yes && break
2900 # only check the first directory in $MANPATH where we find manpages
2901 if test -n "$MANPAGE_FORMAT" ; then
2905 # if we did not find the example, just assume it is normal
2906 test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=normal
2910 for cf_option in $MANPAGE_FORMAT; do
2911 case $cf_option in #(vi
2912 gzip|compress|BSDI|normal|formatted|catonly)
2915 cf_unknown="$cf_unknown $cf_option"
2922 AC_MSG_RESULT($MANPAGE_FORMAT)
2923 if test -n "$cf_unknown" ; then
2924 AC_MSG_WARN(Unexpected manpage-format $cf_unknown)
2927 dnl ---------------------------------------------------------------------------
2928 dnl CF_MANPAGE_RENAMES version: 7 updated: 2005/06/18 18:51:57
2929 dnl ------------------
2930 dnl The Debian people have their own naming convention for manpages. This
2931 dnl option lets us override the name of the file containing renaming, or
2932 dnl disable it altogether.
2933 AC_DEFUN([CF_MANPAGE_RENAMES],
2935 AC_MSG_CHECKING(for manpage renaming)
2937 AC_ARG_WITH(manpage-renames,
2938 [ --with-manpage-renames specify manpage-renaming],
2939 [MANPAGE_RENAMES=$withval],
2940 [MANPAGE_RENAMES=yes])
2942 case ".$MANPAGE_RENAMES" in #(vi
2946 # Debian 'man' program?
2947 if test -f /etc/debian_version ; then
2948 MANPAGE_RENAMES=`cd $srcdir && pwd`/man/man_db.renames
2955 if test "$MANPAGE_RENAMES" != no ; then
2956 if test -f $srcdir/man/$MANPAGE_RENAMES ; then
2957 MANPAGE_RENAMES=`cd $srcdir/man && pwd`/$MANPAGE_RENAMES
2958 elif test ! -f $MANPAGE_RENAMES ; then
2959 AC_MSG_ERROR(not a filename: $MANPAGE_RENAMES)
2962 test ! -d man && mkdir man
2964 # Construct a sed-script to perform renaming within man-pages
2965 if test -n "$MANPAGE_RENAMES" ; then
2966 test ! -d man && mkdir man
2967 sh $srcdir/man/make_sed.sh $MANPAGE_RENAMES >./edit_man.sed
2971 AC_MSG_RESULT($MANPAGE_RENAMES)
2972 AC_SUBST(MANPAGE_RENAMES)
2974 dnl ---------------------------------------------------------------------------
2975 dnl CF_MANPAGE_SYMLINKS version: 4 updated: 2003/12/13 18:01:58
2976 dnl -------------------
2977 dnl Some people expect each tool to make all aliases for manpages in the
2978 dnl man-directory. This accommodates the older, less-capable implementations
2979 dnl of 'man', and is optional.
2980 AC_DEFUN([CF_MANPAGE_SYMLINKS],
2982 AC_MSG_CHECKING(if manpage aliases will be installed)
2984 AC_ARG_WITH(manpage-aliases,
2985 [ --with-manpage-aliases specify manpage-aliases using .so],
2986 [MANPAGE_ALIASES=$withval],
2987 [MANPAGE_ALIASES=yes])
2989 AC_MSG_RESULT($MANPAGE_ALIASES)
2991 if test "$LN_S" = "ln -s"; then
2998 if test "$MANPAGE_ALIASES" = yes ; then
2999 AC_MSG_CHECKING(if manpage symlinks should be used)
3001 AC_ARG_WITH(manpage-symlinks,
3002 [ --with-manpage-symlinks specify manpage-aliases using symlinks],
3003 [MANPAGE_SYMLINKS=$withval],
3004 [MANPAGE_SYMLINKS=$cf_use_symlinks])
3006 if test "$$cf_use_symlinks" = no; then
3007 if test "$MANPAGE_SYMLINKS" = yes ; then
3008 AC_MSG_WARN(cannot make symlinks, will use .so files)
3013 AC_MSG_RESULT($MANPAGE_SYMLINKS)
3017 dnl ---------------------------------------------------------------------------
3018 dnl CF_MANPAGE_TBL version: 3 updated: 2002/01/19 22:51:32
3020 dnl This option causes manpages to be run through tbl(1) to generate tables
3022 AC_DEFUN([CF_MANPAGE_TBL],
3024 AC_MSG_CHECKING(for manpage tbl)
3026 AC_ARG_WITH(manpage-tbl,
3027 [ --with-manpage-tbl specify manpage processing with tbl],
3028 [MANPAGE_TBL=$withval],
3031 AC_MSG_RESULT($MANPAGE_TBL)
3033 dnl ---------------------------------------------------------------------------
3034 dnl CF_MAN_PAGES version: 35 updated: 2007/03/31 11:47:29
3036 dnl Try to determine if the man-pages on the system are compressed, and if
3037 dnl so, what format is used. Use this information to construct a script that
3038 dnl will install man-pages.
3039 AC_DEFUN([CF_MAN_PAGES],
3041 CF_HELP_MESSAGE(Options to Specify How Manpages are Installed:)
3047 if test "$prefix" = "NONE" ; then
3048 cf_prefix="$ac_default_prefix"
3053 case "$MANPAGE_FORMAT" in # (vi
3068 test ! -d man && mkdir man
3072 case "$MANPAGE_FORMAT" in #(vi
3075 cf_compress=compress
3083 cf_edit_man=./edit_man.sh
3084 cf_man_alias=`pwd`/man_alias.sed
3086 cat >$cf_edit_man <<CF_EOF
3088 # this script is generated by the configure-script CF_MAN_PAGES macro.
3093 NCURSES_MAJOR="$NCURSES_MAJOR"
3094 NCURSES_MINOR="$NCURSES_MINOR"
3095 NCURSES_PATCH="$NCURSES_PATCH"
3097 NCURSES_OSPEED="$NCURSES_OSPEED"
3098 TERMINFO="$TERMINFO"
3100 MKDIRS="sh `cd $srcdir && pwd`/mkdirs.sh"
3103 INSTALL_DATA="$INSTALL_DATA"
3105 transform="$program_transform_name"
3107 TMP=\${TMPDIR-/tmp}/man\$\$
3108 trap "rm -f \$TMP" 0 1 2 5 15
3120 top_srcdir=\[$]srcdir/..
3123 if test "\$form" = normal ; then
3124 if test "$cf_format" = yes ; then
3125 if test "$cf_inboth" = no ; then
3126 sh \[$]0 format \$verb \$mandir \$srcdir \[$]*
3130 cf_subdir=\$mandir/man
3131 cf_tables=$MANPAGE_TBL
3133 cf_subdir=\$mandir/cat
3137 # process the list of source-files
3140 *.orig|*.rej) ;; #(vi
3142 section=\`expr "\$i" : '.*\\.\\([[0-9]]\\)[[xm]]*'\`;
3143 if test \$verb = installing ; then
3144 if test ! -d \$cf_subdir\${section} ; then
3145 \$MKDIRS \$cf_subdir\$section
3149 # replace variables in man page
3150 if test ! -f $cf_man_alias ; then
3151 cat >>$cf_man_alias <<-CF_EOF2
3152 s,@DATADIR@,\$datadir,g
3153 s,@TERMINFO@,\$TERMINFO,g
3154 s,@NCURSES_MAJOR@,\$NCURSES_MAJOR,g
3155 s,@NCURSES_MINOR@,\$NCURSES_MINOR,g
3156 s,@NCURSES_PATCH@,\$NCURSES_PATCH,g
3157 s,@NCURSES_OSPEED@,\$NCURSES_OSPEED,g
3162 cf_NAME=`echo "$cf_name" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
3163 cf_name=`echo $cf_name|sed "$program_transform_name"`
3164 cat >>$cf_edit_man <<-CF_EOF
3165 s,@$cf_NAME@,$cf_name,
3169 cat >>$cf_edit_man <<CF_EOF
3171 echo "...made $cf_man_alias"
3175 cf_source=\`basename \$i\`
3177 test ! -f \$inalias && inalias="\$srcdir/\$inalias"
3178 if test ! -f \$inalias ; then
3179 echo .. skipped \$cf_source
3184 if test "$MANPAGE_ALIASES" != no ; then
3185 cat >>$cf_edit_man <<CF_EOF
3186 aliases=\`sed -f \$top_srcdir/man/manlinks.sed \$inalias |sed -f $cf_man_alias | sort -u\`
3190 if test "$MANPAGE_RENAMES" = no ; then
3191 cat >>$cf_edit_man <<CF_EOF
3192 # perform program transformations for section 1 man pages
3193 if test \$section = 1 ; then
3194 cf_target=\$cf_subdir\${section}/\`echo \$cf_source|sed "\${transform}"\`
3196 cf_target=\$cf_subdir\${section}/\$cf_source
3200 cat >>$cf_edit_man <<CF_EOF
3201 cf_target=\`grep "^\$cf_source" $MANPAGE_RENAMES | $AWK '{print \[$]2}'\`
3202 if test -z "\$cf_target" ; then
3203 echo '? missing rename for '\$cf_source
3204 cf_target="\$cf_source"
3206 cf_target="\$cf_subdir\${section}/\${cf_target}"
3211 cat >>$cf_edit_man <<CF_EOF
3212 sed -f $cf_man_alias \\
3215 if test -f $MANPAGE_RENAMES ; then
3216 cat >>$cf_edit_man <<CF_EOF
3217 < \$i | sed -f `pwd`/edit_man.sed >\$TMP
3220 cat >>$cf_edit_man <<CF_EOF
3225 cat >>$cf_edit_man <<CF_EOF
3226 if test \$cf_tables = yes ; then
3227 tbl \$TMP >\$TMP.out
3232 if test $with_curses_h != yes ; then
3233 cat >>$cf_edit_man <<CF_EOF
3234 sed -e "/\#[ ]*include/s,curses.h,ncurses.h," < \$TMP >\$TMP.out
3239 cat >>$cf_edit_man <<CF_EOF
3240 if test \$form = format ; then
3241 nroff -man \$TMP >\$TMP.out
3246 if test -n "$cf_compress" ; then
3247 cat >>$cf_edit_man <<CF_EOF
3248 if test \$verb = installing ; then
3249 if ( $cf_compress -f \$TMP )
3251 mv \$TMP.$cf_so_strip \$TMP
3254 cf_target="\$cf_target.$cf_so_strip"
3258 case "$MANPAGE_FORMAT" in #(vi
3260 cat >>$cf_edit_man <<CF_EOF
3261 if test \$form = format ; then
3262 # BSDI installs only .0 suffixes in the cat directories
3263 cf_target="\`echo \$cf_target|sed -e 's/\.[[1-9]]\+[[a-z]]*/.0/'\`"
3269 cat >>$cf_edit_man <<CF_EOF
3270 suffix=\`basename \$cf_target | sed -e 's%^[[^.]]*%%'\`
3271 if test \$verb = installing ; then
3272 echo \$verb \$cf_target
3273 \$INSTALL_DATA \$TMP \$cf_target
3274 test -d \$cf_subdir\${section} &&
3275 test -n "\$aliases" && (
3276 cd \$cf_subdir\${section} && (
3277 cf_source=\`echo \$cf_target |sed -e 's%^.*/\([[^/]][[^/]]*/[[^/]][[^/]]*$\)%\1%'\`
3278 test -n "$cf_so_strip" && cf_source=\`echo \$cf_source |sed -e 's%\.$cf_so_strip\$%%'\`
3279 cf_target=\`basename \$cf_target\`
3280 for cf_alias in \$aliases
3282 if test \$section = 1 ; then
3283 cf_alias=\`echo \$cf_alias|sed "\${transform}"\`
3286 if test "$MANPAGE_SYMLINKS" = yes ; then
3287 if test -f \$cf_alias\${suffix} ; then
3288 if ( cmp -s \$cf_target \$cf_alias\${suffix} )
3293 echo .. \$verb alias \$cf_alias\${suffix}
3294 rm -f \$cf_alias\${suffix}
3295 $LN_S \$cf_target \$cf_alias\${suffix}
3296 elif test "\$cf_target" != "\$cf_alias\${suffix}" ; then
3297 echo ".so \$cf_source" >\$TMP
3299 if test -n "$cf_compress" ; then
3300 cat >>$cf_edit_man <<CF_EOF
3301 if test -n "$cf_so_strip" ; then
3302 $cf_compress -f \$TMP
3303 mv \$TMP.$cf_so_strip \$TMP
3307 cat >>$cf_edit_man <<CF_EOF
3308 echo .. \$verb alias \$cf_alias\${suffix}
3309 rm -f \$cf_alias\${suffix}
3310 \$INSTALL_DATA \$TMP \$cf_alias\${suffix}
3315 elif test \$verb = removing ; then
3316 test -f \$cf_target && (
3317 echo \$verb \$cf_target
3320 test -d \$cf_subdir\${section} &&
3321 test -n "\$aliases" && (
3322 cd \$cf_subdir\${section} && (
3323 for cf_alias in \$aliases
3325 if test \$section = 1 ; then
3326 cf_alias=\`echo \$cf_alias|sed "\${transform}"\`
3329 echo .. \$verb alias \$cf_alias\${suffix}
3330 rm -f \$cf_alias\${suffix}
3342 if test $cf_inboth = yes ; then
3343 if test \$form != format ; then
3344 sh \[$]0 format \$verb \$mandir \$srcdir \[$]*
3350 chmod 755 $cf_edit_man
3353 dnl ---------------------------------------------------------------------------
3354 dnl CF_MATH_LIB version: 5 updated: 2000/05/28 01:39:10
3356 dnl Checks for libraries. At least one UNIX system, Apple Macintosh
3357 dnl Rhapsody 5.5, does not have -lm. We cannot use the simpler
3358 dnl AC_CHECK_LIB(m,sin), because that fails for C++.
3359 AC_DEFUN([CF_MATH_LIB],
3361 AC_CACHE_CHECK(if -lm needed for math functions,
3367 [double x = rand(); printf("result = %g\n", ]ifelse($2,,sin(x),$2)[)],
3368 [cf_cv_need_libm=no],
3369 [cf_cv_need_libm=yes])])
3370 if test "$cf_cv_need_libm" = yes
3377 dnl ---------------------------------------------------------------------------
3378 dnl CF_MIXEDCASE_FILENAMES version: 3 updated: 2003/09/20 17:07:55
3379 dnl ----------------------
3380 dnl Check if the file-system supports mixed-case filenames. If we're able to
3381 dnl create a lowercase name and see it as uppercase, it doesn't support that.
3382 AC_DEFUN([CF_MIXEDCASE_FILENAMES],
3384 AC_CACHE_CHECK(if filesystem supports mixed-case filenames,cf_cv_mixedcase,[
3385 if test "$cross_compiling" = yes ; then
3386 case $target_alias in #(vi
3387 *-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-mingw32*|*-uwin*) #(vi
3395 rm -f conftest CONFTEST
3397 if test -f CONFTEST ; then
3402 rm -f conftest CONFTEST
3405 test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES)
3407 dnl ---------------------------------------------------------------------------
3408 dnl CF_MKSTEMP version: 5 updated: 2006/12/16 12:33:30
3410 dnl Check for a working mkstemp. This creates two files, checks that they are
3411 dnl successfully created and distinct (AmigaOS apparently fails on the last).
3412 AC_DEFUN([CF_MKSTEMP],[
3413 AC_CACHE_CHECK(for working mkstemp, cf_cv_func_mkstemp,[
3416 #include <sys/types.h>
3420 #include <sys/stat.h>
3423 char *tmpl = "conftestXXXXXX";
3431 for (n = 0; n < 2; ++n) {
3432 strcpy(name[n], tmpl);
3433 if ((fd = mkstemp(name[n])) >= 0) {
3434 if (!strcmp(name[n], tmpl)
3435 || stat(name[n], &sb) != 0
3436 || (sb.st_mode & S_IFMT) != S_IFREG
3437 || (sb.st_mode & 077) != 0) {
3444 && !strcmp(name[0], name[1]))
3446 ${cf_cv_main_return:-return}(result);
3448 ],[cf_cv_func_mkstemp=yes
3449 ],[cf_cv_func_mkstemp=no
3450 ],[AC_CHECK_FUNC(mkstemp)
3453 if test "$cf_cv_func_mkstemp" = yes ; then
3454 AC_DEFINE(HAVE_MKSTEMP)
3457 dnl ---------------------------------------------------------------------------
3458 dnl CF_MSG_LOG version: 4 updated: 2007/07/29 09:55:12
3460 dnl Write a debug message to config.log, along with the line number in the
3461 dnl configure script.
3462 AC_DEFUN([CF_MSG_LOG],[
3463 echo "${as_me-configure}:__oline__: testing $* ..." 1>&AC_FD_CC
3465 dnl ---------------------------------------------------------------------------
3466 dnl CF_NCURSES_ABI_6 version: 1 updated: 2005/09/17 18:42:49
3467 dnl ----------------
3468 dnl Set ncurses' ABI to 6 unless overridden by explicit configure option, and
3469 dnl warn about this.
3470 AC_DEFUN([CF_NCURSES_ABI_6],[
3471 if test "${with_abi_version+set}" != set; then
3472 case $cf_cv_rel_version in
3474 cf_cv_rel_version=6.0
3476 AC_MSG_WARN(Overriding ABI version to $cf_cv_abi_version)
3481 dnl ---------------------------------------------------------------------------
3482 dnl CF_NO_LEAKS_OPTION version: 4 updated: 2006/12/16 14:24:05
3483 dnl ------------------
3484 dnl see CF_WITH_NO_LEAKS
3485 AC_DEFUN([CF_NO_LEAKS_OPTION],[
3486 AC_MSG_CHECKING(if you want to use $1 for testing)
3489 [AC_DEFINE($3)ifelse([$4],,[
3492 : ${with_cflags:=-g}
3493 : ${with_no_leaks:=yes}
3496 AC_MSG_RESULT(${with_$1:-no})
3498 case .$with_cflags in #(vi
3500 case .$CFLAGS in #(vi
3510 dnl ---------------------------------------------------------------------------
3511 dnl CF_NUMBER_SYNTAX version: 1 updated: 2003/09/20 18:12:49
3512 dnl ----------------
3513 dnl Check if the given variable is a number. If not, report an error.
3514 dnl $1 is the variable
3515 dnl $2 is the message
3516 AC_DEFUN([CF_NUMBER_SYNTAX],[
3517 if test -n "$1" ; then
3522 AC_MSG_ERROR($2 is not a number: $1)
3526 AC_MSG_ERROR($2 value is empty)
3529 dnl ---------------------------------------------------------------------------
3530 dnl CF_OBJ_SUBDIR version: 4 updated: 2002/02/23 20:38:31
3532 dnl Compute the object-directory name from the given model name
3533 AC_DEFUN([CF_OBJ_SUBDIR],
3536 libtool) $2='obj_lo' ;;
3537 normal) $2='objects' ;;
3538 debug) $2='obj_g' ;;
3539 profile) $2='obj_p' ;;
3541 case $cf_cv_system_name in #(vi
3549 dnl ---------------------------------------------------------------------------
3550 dnl CF_PATHSEP version: 3 updated: 2001/01/12 01:23:53
3552 dnl Provide a value for the $PATH and similar separator
3553 AC_DEFUN([CF_PATHSEP],
3555 case $cf_cv_system_name in
3556 os2*) PATHSEP=';' ;;
3559 ifelse($1,,,[$1=$PATHSEP])
3562 dnl ---------------------------------------------------------------------------
3563 dnl CF_PATH_SYNTAX version: 12 updated: 2008/03/23 14:45:59
3565 dnl Check the argument to see that it looks like a pathname. Rewrite it if it
3566 dnl begins with one of the prefix/exec_prefix variables, and then again if the
3567 dnl result begins with 'NONE'. This is necessary to work around autoconf's
3568 dnl delayed evaluation of those symbols.
3569 AC_DEFUN([CF_PATH_SYNTAX],[
3570 if test "x$prefix" != xNONE; then
3571 cf_path_syntax="$prefix"
3573 cf_path_syntax="$ac_default_prefix"
3576 case ".[$]$1" in #(vi
3577 .\[$]\(*\)*|.\'*\'*) #(vi
3581 .[[a-zA-Z]]:[[\\/]]*) #(vi OS/2 EMX
3583 .\[$]{*prefix}*) #(vi
3585 case ".[$]$1" in #(vi
3587 $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
3592 $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
3595 ifelse($2,,[AC_MSG_ERROR([expected a pathname, not \"[$]$1\"])],$2)
3599 dnl ---------------------------------------------------------------------------
3600 dnl CF_POSIX_C_SOURCE version: 6 updated: 2005/07/14 20:25:10
3601 dnl -----------------
3602 dnl Define _POSIX_C_SOURCE to the given level, and _POSIX_SOURCE if needed.
3604 dnl POSIX.1-1990 _POSIX_SOURCE
3605 dnl POSIX.1-1990 and _POSIX_SOURCE and
3606 dnl POSIX.2-1992 C-Language _POSIX_C_SOURCE=2
3608 dnl POSIX.1b-1993 _POSIX_C_SOURCE=199309L
3609 dnl POSIX.1c-1996 _POSIX_C_SOURCE=199506L
3610 dnl X/Open 2000 _POSIX_C_SOURCE=200112L
3613 dnl $1 is the nominal value for _POSIX_C_SOURCE
3614 AC_DEFUN([CF_POSIX_C_SOURCE],
3616 cf_POSIX_C_SOURCE=ifelse($1,,199506L,$1)
3618 cf_save_CFLAGS="$CFLAGS"
3619 cf_save_CPPFLAGS="$CPPFLAGS"
3621 CF_REMOVE_DEFINE(cf_trim_CFLAGS,$cf_save_CFLAGS,_POSIX_C_SOURCE)
3622 CF_REMOVE_DEFINE(cf_trim_CPPFLAGS,$cf_save_CPPFLAGS,_POSIX_C_SOURCE)
3624 AC_CACHE_CHECK(if we should define _POSIX_C_SOURCE,cf_cv_posix_c_source,[
3625 CF_MSG_LOG(if the symbol is already defined go no further)
3626 AC_TRY_COMPILE([#include <sys/types.h>],[
3627 #ifndef _POSIX_C_SOURCE
3630 [cf_cv_posix_c_source=no],
3631 [cf_want_posix_source=no
3632 case .$cf_POSIX_C_SOURCE in #(vi
3634 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
3637 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
3638 cf_want_posix_source=yes
3641 cf_want_posix_source=yes
3644 if test "$cf_want_posix_source" = yes ; then
3645 AC_TRY_COMPILE([#include <sys/types.h>],[
3646 #ifdef _POSIX_SOURCE
3649 cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE")
3651 CF_MSG_LOG(ifdef from value $cf_POSIX_C_SOURCE)
3652 CFLAGS="$cf_trim_CFLAGS"
3653 CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source"
3654 CF_MSG_LOG(if the second compile does not leave our definition intact error)
3655 AC_TRY_COMPILE([#include <sys/types.h>],[
3656 #ifndef _POSIX_C_SOURCE
3659 [cf_cv_posix_c_source=no])
3660 CFLAGS="$cf_save_CFLAGS"
3661 CPPFLAGS="$cf_save_CPPFLAGS"
3665 if test "$cf_cv_posix_c_source" != no ; then
3666 CFLAGS="$cf_trim_CFLAGS"
3667 CPPFLAGS="$cf_trim_CPPFLAGS"
3668 if test "$cf_cv_cc_u_d_options" = yes ; then
3669 cf_temp_posix_c_source=`echo "$cf_cv_posix_c_source" | \
3670 sed -e 's/-D/-U/g' -e 's/=[[^ ]]*//g'`
3671 CPPFLAGS="$CPPFLAGS $cf_temp_posix_c_source"
3673 CPPFLAGS="$CPPFLAGS $cf_cv_posix_c_source"
3677 dnl ---------------------------------------------------------------------------
3678 dnl CF_PREDEFINE version: 1 updated: 2003/07/26 17:53:56
3680 dnl Add definitions to CPPFLAGS to ensure they're predefined for all compiles.
3682 dnl $1 = symbol to test
3683 dnl $2 = value (if any) to use for a predefinition
3684 AC_DEFUN([CF_PREDEFINE],
3686 AC_MSG_CHECKING(if we must define $1)
3687 AC_TRY_COMPILE([#include <sys/types.h>
3691 #endif],[cf_result=no],[cf_result=yes])
3692 AC_MSG_RESULT($cf_result)
3694 if test "$cf_result" = yes ; then
3695 CPPFLAGS="$CPPFLAGS ifelse($2,,-D$1,[-D$1=$2])"
3696 elif test "x$2" != "x" ; then
3697 AC_MSG_CHECKING(checking for compatible value versus $2)
3698 AC_TRY_COMPILE([#include <sys/types.h>
3702 #endif],[cf_result=yes],[cf_result=no])
3703 AC_MSG_RESULT($cf_result)
3704 if test "$cf_result" = no ; then
3705 # perhaps we can override it - try...
3706 CPPFLAGS="$CPPFLAGS -D$1=$2"
3710 dnl ---------------------------------------------------------------------------
3711 dnl CF_PRG_RULES version: 1 updated: 2006/06/03 11:45:08
3713 dnl Append definitions and rules for the given programs to the subdirectory
3714 dnl Makefiles, and the recursion rule for the top-level Makefile.
3717 dnl $1 = script to run
3718 dnl $2 = list of subdirectories
3722 AC_DEFUN([CF_PRG_RULES],
3726 if test ! -d $srcdir/$cf_dir; then
3728 elif test -f $srcdir/$cf_dir/programs; then
3729 $AWK -f $1 $srcdir/$cf_dir/programs >>$cf_dir/Makefile
3734 dnl ---------------------------------------------------------------------------
3735 dnl CF_PROG_AWK version: 1 updated: 2006/09/16 11:40:59
3737 dnl Check for awk, ensure that the check found something.
3738 AC_DEFUN([CF_PROG_AWK],
3741 test -z "$AWK" && AC_MSG_ERROR(No awk program found)
3743 dnl ---------------------------------------------------------------------------
3744 dnl CF_PROG_CC_C_O version: 2 updated: 2006/12/16 15:55:46
3746 dnl Analogous to AC_PROG_CC_C_O, but more useful: tests only $CC, ensures that
3747 dnl the output file can be renamed, and allows for a shell variable that can
3748 dnl be used later. The parameter is either CC or CXX. The result is the
3750 dnl $cf_cv_prog_CC_c_o
3751 dnl $cf_cv_prog_CXX_c_o
3752 AC_DEFUN([CF_PROG_CC_C_O],
3753 [AC_REQUIRE([AC_PROG_CC])dnl
3754 AC_MSG_CHECKING([whether [$]$1 understands -c and -o together])
3755 AC_CACHE_VAL(cf_cv_prog_$1_c_o,
3757 cat > conftest.$ac_ext <<CF_EOF
3761 ${cf_cv_main_return:-return}(0);
3764 # We do the test twice because some compilers refuse to overwrite an
3765 # existing .o file with -o, though they will create one.
3766 ac_try='[$]$1 -c conftest.$ac_ext -o conftest2.$ac_objext >&AC_FD_CC'
3767 if AC_TRY_EVAL(ac_try) &&
3768 test -f conftest2.$ac_objext && AC_TRY_EVAL(ac_try);
3770 eval cf_cv_prog_$1_c_o=yes
3772 eval cf_cv_prog_$1_c_o=no
3776 if test $cf_cv_prog_$1_c_o = yes; then
3777 AC_MSG_RESULT([yes])
3782 dnl ---------------------------------------------------------------------------
3783 dnl CF_PROG_CC_U_D version: 1 updated: 2005/07/14 16:59:30
3785 dnl Check if C (preprocessor) -U and -D options are processed in the order
3786 dnl given rather than by type of option. Some compilers insist on apply all
3787 dnl of the -U options after all of the -D options. Others allow mixing them,
3788 dnl and may predefine symbols that conflict with those we define.
3789 AC_DEFUN([CF_PROG_CC_U_D],
3791 AC_CACHE_CHECK(if $CC -U and -D options work together,cf_cv_cc_u_d_options,[
3792 cf_save_CPPFLAGS="$CPPFLAGS"
3793 CPPFLAGS="-UU_D_OPTIONS -DU_D_OPTIONS -DD_U_OPTIONS -UD_U_OPTIONS"
3796 make an undefined-error
3799 make a defined-error
3802 cf_cv_cc_u_d_options=yes],[
3803 cf_cv_cc_u_d_options=no])
3804 CPPFLAGS="$cf_save_CPPFLAGS"
3807 dnl ---------------------------------------------------------------------------
3808 dnl CF_PROG_EGREP version: 1 updated: 2006/09/16 11:40:59
3810 dnl AC_PROG_EGREP was introduced in autoconf 2.53.
3811 dnl This macro adds a check to ensure the script found something.
3812 AC_DEFUN([CF_PROG_EGREP],
3813 [AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep],
3814 [if echo a | (grep -E '(a|b)') >/dev/null 2>&1
3815 then ac_cv_prog_egrep='grep -E'
3816 else ac_cv_prog_egrep='egrep'
3818 EGREP=$ac_cv_prog_egrep
3820 test -z "$EGREP" && AC_MSG_ERROR(No egrep program found)
3822 dnl ---------------------------------------------------------------------------
3823 dnl CF_PROG_EXT version: 10 updated: 2004/01/03 19:28:18
3825 dnl Compute $PROG_EXT, used for non-Unix ports, such as OS/2 EMX.
3826 AC_DEFUN([CF_PROG_EXT],
3828 AC_REQUIRE([CF_CHECK_CACHE])
3829 case $cf_cv_system_name in
3831 CFLAGS="$CFLAGS -Zmt"
3832 CPPFLAGS="$CPPFLAGS -D__ST_MT_ERRNO__"
3833 CXXFLAGS="$CXXFLAGS -Zmt"
3834 # autoconf's macro sets -Zexe and suffix both, which conflict:w
3835 LDFLAGS="$LDFLAGS -Zmt -Zcrtdll"
3845 test -n "$PROG_EXT" && AC_DEFINE_UNQUOTED(PROG_EXT,"$PROG_EXT")
3847 dnl ---------------------------------------------------------------------------
3848 dnl CF_PROG_INSTALL version: 5 updated: 2002/12/21 22:46:07
3850 dnl Force $INSTALL to be an absolute-path. Otherwise, edit_man.sh and the
3851 dnl misc/tabset install won't work properly. Usually this happens only when
3852 dnl using the fallback mkinstalldirs script
3853 AC_DEFUN([CF_PROG_INSTALL],
3859 CF_DIRNAME(cf_dir,$INSTALL)
3860 test -z "$cf_dir" && cf_dir=.
3861 INSTALL=`cd $cf_dir && pwd`/`echo $INSTALL | sed -e 's%^.*/%%'`
3865 dnl ---------------------------------------------------------------------------
3866 dnl CF_PROG_LDCONFIG version: 1 updated: 2003/09/20 17:07:55
3867 dnl ----------------
3868 dnl Check for ldconfig, needed to fixup shared libraries that would be built
3869 dnl and then used in the install.
3870 AC_DEFUN([CF_PROG_LDCONFIG],[
3871 if test "$cross_compiling" = yes ; then
3874 case "$cf_cv_system_name" in #(vi
3876 test -z "$LDCONFIG" && LDCONFIG="/sbin/ldconfig -R"
3878 *) LDPATH=$PATH:/sbin:/usr/sbin
3879 AC_PATH_PROG(LDCONFIG,ldconfig,,$LDPATH)
3885 dnl ---------------------------------------------------------------------------
3886 dnl CF_PROG_LINT version: 1 updated: 2006/09/16 11:40:59
3888 AC_DEFUN([CF_PROG_LINT],
3890 AC_CHECK_PROGS(LINT, tdlint lint alint)
3893 dnl ---------------------------------------------------------------------------
3894 dnl CF_REGEX version: 3 updated: 1997/11/01 14:26:01
3896 dnl Attempt to determine if we've got one of the flavors of regular-expression
3897 dnl code that we can support.
3898 AC_DEFUN([CF_REGEX],
3900 AC_MSG_CHECKING([for regular-expression headers])
3901 AC_CACHE_VAL(cf_cv_regex,[
3902 AC_TRY_LINK([#include <sys/types.h>
3903 #include <regex.h>],[
3905 int x = regcomp(p, "", 0);
3906 int y = regexec(p, "", 0, 0, 0);
3908 ],[cf_cv_regex="regex.h"],[
3909 AC_TRY_LINK([#include <regexp.h>],[
3910 char *p = compile("", "", "", 0);
3911 int x = step("", "");
3912 ],[cf_cv_regex="regexp.h"],[
3913 cf_save_LIBS="$LIBS"
3915 AC_TRY_LINK([#include <regexpr.h>],[
3916 char *p = compile("", "", "");
3917 int x = step("", "");
3918 ],[cf_cv_regex="regexpr.h"],[LIBS="$cf_save_LIBS"])])])
3920 AC_MSG_RESULT($cf_cv_regex)
3921 case $cf_cv_regex in
3922 regex.h) AC_DEFINE(HAVE_REGEX_H_FUNCS) ;;
3923 regexp.h) AC_DEFINE(HAVE_REGEXP_H_FUNCS) ;;
3924 regexpr.h) AC_DEFINE(HAVE_REGEXPR_H_FUNCS) ;;
3927 dnl ---------------------------------------------------------------------------
3928 dnl CF_REMOVE_DEFINE version: 2 updated: 2005/07/09 16:12:18
3929 dnl ----------------
3930 dnl Remove all -U and -D options that refer to the given symbol from a list
3931 dnl of C compiler options. This works around the problem that not all
3932 dnl compilers process -U and -D options from left-to-right, so a -U option
3933 dnl cannot be used to cancel the effect of a preceding -D option.
3935 dnl $1 = target (which could be the same as the source variable)
3936 dnl $2 = source (including '$')
3937 dnl $3 = symbol to remove
3938 define([CF_REMOVE_DEFINE],
3940 # remove $3 symbol from $2
3942 sed -e 's/-[[UD]]$3\(=[[^ ]]*\)\?[[ ]]/ /g' \
3943 -e 's/-[[UD]]$3\(=[[^ ]]*\)\?[$]//g'`
3945 dnl ---------------------------------------------------------------------------
3946 dnl CF_REMOVE_LIB version: 1 updated: 2007/02/17 14:11:52
3948 dnl Remove the given library from the symbol
3950 dnl $1 = target (which could be the same as the source variable)
3951 dnl $2 = source (including '$')
3952 dnl $3 = library to remove
3953 define([CF_REMOVE_LIB],
3955 # remove $3 library from $2
3956 $1=`echo "$2" | sed -e 's/-l$3[[ ]]//g' -e 's/-l$3[$]//'`
3958 dnl ---------------------------------------------------------------------------
3959 dnl CF_RPATH_HACK version: 4 updated: 2008/09/13 12:53:26
3961 AC_DEFUN([CF_RPATH_HACK],
3963 AC_REQUIRE([CF_SHARED_OPTS])
3964 AC_MSG_CHECKING(for updated LDFLAGS)
3965 if test -n "$LDFLAGS" ; then
3966 AC_MSG_RESULT(maybe)
3967 CF_VERBOSE(...checking LDFLAGS $LDFLAGS)
3968 CF_VERBOSE(...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS)
3969 case "$EXTRA_LDFLAGS" in #(vi
3971 cf_rpath_hack="-Wl,-rpath,"
3983 if test -n "$cf_rpath_hack" ; then
3985 for cf_rpath_src in $LDFLAGS
3987 CF_VERBOSE(Filtering $cf_rpath_src)
3988 case $cf_rpath_src in #(vi
3990 if test "$cf_rpath_hack" = "-R " ; then
3991 cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e 's%-L%-R %'`
3993 cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e s%-L%$cf_rpath_hack%`
3995 CF_VERBOSE(...Filter $cf_rpath_tmp)
3996 EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS"
3999 cf_rpath_dst="$cf_rpath_dst $cf_rpath_src"
4001 LDFLAGS=$cf_rpath_dst
4002 CF_VERBOSE(...checked LDFLAGS $LDFLAGS)
4003 CF_VERBOSE(...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS)
4009 dnl ---------------------------------------------------------------------------
4010 dnl CF_SHARED_OPTS version: 52 updated: 2008/09/13 11:54:48
4013 dnl Attempt to determine the appropriate CC/LD options for creating a shared
4016 dnl Note: ${LOCAL_LDFLAGS} is used to link executables that will run within the
4017 dnl build-tree, i.e., by making use of the libraries that are compiled in ../lib
4018 dnl We avoid compiling-in a ../lib path for the shared library since that can
4019 dnl lead to unexpected results at runtime.
4020 dnl ${LOCAL_LDFLAGS2} has the same intention but assumes that the shared libraries
4021 dnl are compiled in ../../lib
4023 dnl The variable 'cf_cv_do_symlinks' is used to control whether we configure
4024 dnl to install symbolic links to the rel/abi versions of shared libraries.
4026 dnl The variable 'cf_cv_shlib_version' controls whether we use the rel or abi
4027 dnl version when making symbolic links.
4029 dnl The variable 'cf_cv_shlib_version_infix' controls whether shared library
4030 dnl version numbers are infix (ex: libncurses.<ver>.dylib) or postfix
4031 dnl (ex: libncurses.so.<ver>).
4033 dnl Some loaders leave 'so_locations' lying around. It's nice to clean up.
4034 AC_DEFUN([CF_SHARED_OPTS],
4036 AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
4040 INSTALL_LIB="-m 644"
4042 cf_cv_do_symlinks=no
4044 AC_MSG_CHECKING(if release/abi version should be used for shared libs)
4045 AC_ARG_WITH(shlib-version,
4046 [ --with-shlib-version=X Specify rel or abi version for shared libs],
4047 [test -z "$withval" && withval=auto
4048 case $withval in #(vi
4050 cf_cv_shlib_version=auto
4052 rel|abi|auto|no) #(vi
4053 cf_cv_shlib_version=$withval
4056 AC_MSG_ERROR([option value must be one of: rel, abi, auto or no])
4059 ],[cf_cv_shlib_version=auto])
4060 AC_MSG_RESULT($cf_cv_shlib_version)
4064 # Some less-capable ports of gcc support only -fpic
4066 if test "$GCC" = yes
4068 AC_MSG_CHECKING(which $CC option to use)
4069 cf_save_CFLAGS="$CFLAGS"
4070 for CC_SHARED_OPTS in -fPIC -fpic ''
4072 CFLAGS="$cf_save_CFLAGS $CC_SHARED_OPTS"
4073 AC_TRY_COMPILE([#include <stdio.h>],[int x = 1],[break],[])
4075 AC_MSG_RESULT($CC_SHARED_OPTS)
4076 CFLAGS="$cf_save_CFLAGS"
4079 cf_cv_shlib_version_infix=no
4081 case $cf_cv_system_name in
4083 MK_SHARED_LIB='${CC} ${CFLAGS} -o $[@] -Xlinker -soname=`basename $[@]` -nostart -e 0'
4087 MK_SHARED_LIB='sh ../mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
4088 cf_cv_shlib_version=cygdll
4089 cf_cv_shlib_version_infix=cygdll
4090 cat >mk_shared_lib.sh <<-CF_EOF
4093 IMPORT_LIB=\`echo "\[$]1" | sed -e 's/cyg/lib/' -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
4096 Linking shared library
4097 ** SHARED_LIB \[$]SHARED_LIB
4098 ** IMPORT_LIB \[$]IMPORT_LIB
4100 exec \[$]* -shared -Wl,--out-implib=../lib/\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o ../lib/\[$]{SHARED_LIB}
4102 chmod +x mk_shared_lib.sh
4105 EXTRA_CFLAGS="-no-cpp-precomp"
4106 CC_SHARED_OPTS="-dynamic"
4107 MK_SHARED_LIB='${CC} ${CFLAGS} -dynamiclib -install_name ${libdir}/`basename $[@]` -compatibility_version ${ABI_VERSION} -current_version ${ABI_VERSION} -o $[@]'
4108 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi
4109 cf_cv_shlib_version_infix=yes
4110 AC_CACHE_CHECK([if ld -search_paths_first works], cf_cv_ldflags_search_paths_first, [
4111 cf_save_LDFLAGS=$LDFLAGS
4112 LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
4113 AC_TRY_LINK(, [int i;], cf_cv_ldflags_search_paths_first=yes, cf_cv_ldflags_search_paths_first=no)
4114 LDFLAGS=$cf_save_LDFLAGS])
4115 if test $cf_cv_ldflags_search_paths_first = yes; then
4116 LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
4120 # (tested with gcc 2.7.2 -- I don't have c89)
4121 if test "$GCC" = yes; then
4122 LD_SHARED_OPTS='-Xlinker +b -Xlinker ${libdir}'
4125 LD_SHARED_OPTS='-Wl,+b,${libdir}'
4127 MK_SHARED_LIB='${LD} +b ${libdir} -b -o $[@]'
4128 # HP-UX shared libraries must be executable, and should be
4129 # readonly to exploit a quirk in the memory manager.
4130 INSTALL_LIB="-m 555"
4133 if test "$cf_cv_ld_rpath" = yes ; then
4134 if test "$GCC" = yes; then
4135 cf_ld_rpath_opt="-Wl,-rpath,"
4136 EXTRA_LDFLAGS="-Wl,-rpath,\${libdir} $EXTRA_LDFLAGS"
4138 cf_ld_rpath_opt="-rpath "
4139 EXTRA_LDFLAGS="-rpath \${libdir} $EXTRA_LDFLAGS"
4142 # tested with IRIX 5.2 and 'cc'.
4143 if test "$GCC" != yes; then
4144 CC_SHARED_OPTS='-KPIC'
4145 MK_SHARED_LIB='${CC} -shared -rdata_shared -soname `basename $[@]` -o $[@]'
4147 MK_SHARED_LIB='${CC} -shared -Wl,-soname,`basename $[@]` -o $[@]'
4149 cf_cv_rm_so_locs=yes
4151 linux*|gnu*|k*bsd*-gnu)
4152 if test "$DFT_LWR_MODEL" = "shared" ; then
4153 LOCAL_LDFLAGS="-Wl,-rpath,\$(LOCAL_LIBDIR)"
4154 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4156 if test "$cf_cv_ld_rpath" = yes ; then
4157 cf_ld_rpath_opt="-Wl,-rpath,"
4158 EXTRA_LDFLAGS="-Wl,-rpath,\${libdir} $EXTRA_LDFLAGS"
4161 MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
4164 if test "$DFT_LWR_MODEL" = "shared" ; then
4165 LOCAL_LDFLAGS="-Wl,-rpath,\$(LOCAL_LIBDIR)"
4166 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4168 if test "$cf_cv_ld_rpath" = yes ; then
4169 cf_ld_rpath_opt="-Wl,-rpath,"
4170 EXTRA_LDFLAGS="-Wl,-rpath,\${libdir} $EXTRA_LDFLAGS"
4172 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
4174 MK_SHARED_LIB='${CC} ${CFLAGS} -Wl,-Bshareable,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
4176 openbsd*|freebsd[[12]].*)
4177 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
4178 MK_SHARED_LIB='${LD} -Bshareable -o $[@]'
4179 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
4182 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
4183 if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_ld_rpath" = yes ; then
4184 LOCAL_LDFLAGS="-rpath \$(LOCAL_LIBDIR)"
4185 LOCAL_LDFLAGS2="-rpath \${libdir} $LOCAL_LDFLAGS"
4186 cf_ld_rpath_opt="-rpath "
4187 EXTRA_LDFLAGS="-rpath \${libdir} $EXTRA_LDFLAGS"
4190 MK_SHARED_LIB='${LD} -Bshareable -soname=`basename $[@]` -o $[@]'
4193 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
4194 test "$cf_cv_ld_rpath" = yes && cf_ld_rpath_opt="-Wl,-rpath,"
4195 if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_ld_rpath" = yes ; then
4196 LOCAL_LDFLAGS="-Wl,-rpath,\$(LOCAL_LIBDIR)"
4197 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4198 EXTRA_LDFLAGS="-Wl,-rpath,\${libdir} $EXTRA_LDFLAGS"
4199 if test "$cf_cv_shlib_version" = auto; then
4200 if test -f /usr/libexec/ld.elf_so; then
4201 cf_cv_shlib_version=abi
4203 cf_cv_shlib_version=rel
4207 MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname' -o $[@]'
4209 MK_SHARED_LIB='${LD} -Bshareable -o $[@]'
4213 # tested with OSF/1 V3.2 and 'cc'
4214 # tested with OSF/1 V3.2 and gcc 2.6.3 (but the c++ demo didn't
4215 # link with shared libs).
4216 MK_SHARED_LIB='${LD} -set_version ${REL_VERSION}:${ABI_VERSION} -expect_unresolved "*" -shared -soname `basename $[@]`'
4219 MK_SHARED_LIB="${MK_SHARED_LIB} -msym"
4222 MK_SHARED_LIB="${MK_SHARED_LIB}"' -o $[@]'
4223 if test "$DFT_LWR_MODEL" = "shared" ; then
4224 LOCAL_LDFLAGS="-Wl,-rpath,\$(LOCAL_LIBDIR)"
4225 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4227 if test "$cf_cv_ld_rpath" = yes ; then
4228 cf_ld_rpath_opt="-rpath"
4229 # EXTRA_LDFLAGS="$LOCAL_LDFLAGS $EXTRA_LDFLAGS"
4231 cf_cv_rm_so_locs=yes
4233 sco3.2v5*) # (also uw2* and UW7) hops 13-Apr-98
4234 # tested with osr5.0.5
4235 if test "$GCC" != yes; then
4236 CC_SHARED_OPTS='-belf -KPIC'
4238 MK_SHARED_LIB='${LD} -dy -G -h `basename $[@] .${REL_VERSION}`.${ABI_VERSION} -o [$]@'
4239 if test "$cf_cv_ld_rpath" = yes ; then
4240 # only way is to set LD_RUN_PATH but no switch for it
4243 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
4244 LINK_PROGS='LD_RUN_PATH=${libdir}'
4245 LINK_TESTS='Pwd=`pwd`;LD_RUN_PATH=`dirname $${Pwd}`/lib'
4248 # tested with SunOS 4.1.1 and gcc 2.7.0
4249 if test "$GCC" != yes; then
4250 CC_SHARED_OPTS='-KPIC'
4252 MK_SHARED_LIB='${LD} -assert pure-text -o $[@]'
4253 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
4256 # tested with SunOS 5.5.1 (solaris 2.5.1) and gcc 2.7.2
4257 # tested with SunOS 5.10 (solaris 10) and gcc 3.4.3
4258 if test "$DFT_LWR_MODEL" = "shared" ; then
4259 LOCAL_LDFLAGS="-R \$(LOCAL_LIBDIR):\${libdir}"
4260 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4262 if test "$cf_cv_ld_rpath" = yes ; then
4263 cf_ld_rpath_opt="-R"
4264 EXTRA_LDFLAGS="$LOCAL_LDFLAGS $EXTRA_LDFLAGS"
4267 if test "$GCC" != yes; then
4268 CC_SHARED_OPTS='-xcode=pic32'
4269 MK_SHARED_LIB='${CC} -dy -G -h '$cf_cv_shared_soname' -o $[@]'
4271 MK_SHARED_LIB='${CC} -shared -dy -G -h '$cf_cv_shared_soname' -o $[@]'
4275 # tested with UnixWare 7.1.0 (gcc 2.95.2 and cc)
4276 if test "$GCC" != yes; then
4277 CC_SHARED_OPTS='-KPIC'
4279 MK_SHARED_LIB='${LD} -d y -G -o [$]@'
4282 CC_SHARED_OPTS='unknown'
4283 MK_SHARED_LIB='echo unknown'
4287 # This works if the last tokens in $MK_SHARED_LIB are the -o target.
4288 case "$cf_cv_shlib_version" in #(vi
4290 case "$MK_SHARED_LIB" in #(vi
4292 test "$cf_cv_do_symlinks" = no && cf_cv_do_symlinks=yes
4295 AC_MSG_WARN(ignored --with-shlib-version)
4301 if test -n "$cf_ld_rpath_opt" ; then
4302 AC_MSG_CHECKING(if we need a space after rpath option)
4303 cf_save_LIBS="$LIBS"
4304 LIBS="$LIBS ${cf_ld_rpath_opt}$libdir"
4305 AC_TRY_LINK(, , cf_rpath_space=no, cf_rpath_space=yes)
4306 LIBS="$cf_save_LIBS"
4307 AC_MSG_RESULT($cf_rpath_space)
4308 test "$cf_rpath_space" = yes && cf_ld_rpath_opt="$cf_ld_rpath_opt "
4309 MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${libdir}"
4312 AC_SUBST(CC_SHARED_OPTS)
4313 AC_SUBST(LD_SHARED_OPTS)
4314 AC_SUBST(MK_SHARED_LIB)
4315 AC_SUBST(LINK_PROGS)
4316 AC_SUBST(LINK_TESTS)
4317 AC_SUBST(EXTRA_LDFLAGS)
4318 AC_SUBST(LOCAL_LDFLAGS)
4319 AC_SUBST(LOCAL_LDFLAGS2)
4320 AC_SUBST(INSTALL_LIB)
4322 dnl ---------------------------------------------------------------------------
4323 dnl CF_SHARED_SONAME version: 3 updated: 2008/09/08 18:34:43
4324 dnl ----------------
4325 dnl utility macro for CF_SHARED_OPTS, constructs "$cf_cv_shared_soname" for
4326 dnl substitution into MK_SHARED_LIB string for the "-soname" (or similar)
4329 dnl $1 is the default that should be used for "$cf_cv_shlib_version".
4330 dnl If missing, use "rel".
4331 define([CF_SHARED_SONAME],
4333 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=ifelse($1,,rel,$1)
4334 if test "$cf_cv_shlib_version" = rel; then
4335 cf_cv_shared_soname='`basename $[@] .${REL_VERSION}`.${ABI_VERSION}'
4337 cf_cv_shared_soname='`basename $[@]`'
4340 dnl ---------------------------------------------------------------------------
4341 dnl CF_SIGWINCH version: 1 updated: 2006/04/02 16:41:09
4343 dnl Use this macro after CF_XOPEN_SOURCE, but do not require it (not all
4344 dnl programs need this test).
4346 dnl This is really a MacOS X 10.4.3 workaround. Defining _POSIX_C_SOURCE
4347 dnl forces SIGWINCH to be undefined (breaks xterm, ncurses). Oddly, the struct
4348 dnl winsize declaration is left alone - we may revisit this if Apple choose to
4349 dnl break that part of the interface as well.
4350 AC_DEFUN([CF_SIGWINCH],
4352 AC_CACHE_CHECK(if SIGWINCH is defined,cf_cv_define_sigwinch,[
4354 #include <sys/types.h>
4355 #include <sys/signal.h>
4356 ],[int x = SIGWINCH],
4357 [cf_cv_define_sigwinch=yes],
4359 #undef _XOPEN_SOURCE
4360 #undef _POSIX_SOURCE
4361 #undef _POSIX_C_SOURCE
4362 #include <sys/types.h>
4363 #include <sys/signal.h>
4364 ],[int x = SIGWINCH],
4365 [cf_cv_define_sigwinch=maybe],
4366 [cf_cv_define_sigwinch=no])
4370 if test "$cf_cv_define_sigwinch" = maybe ; then
4371 AC_CACHE_CHECK(for actual SIGWINCH definition,cf_cv_fixup_sigwinch,[
4372 cf_cv_fixup_sigwinch=unknown
4374 while test $cf_sigwinch != 1
4377 #undef _XOPEN_SOURCE
4378 #undef _POSIX_SOURCE
4379 #undef _POSIX_C_SOURCE
4380 #include <sys/types.h>
4381 #include <sys/signal.h>
4383 #if SIGWINCH != $cf_sigwinch
4387 [cf_cv_fixup_sigwinch=$cf_sigwinch
4390 cf_sigwinch=`expr $cf_sigwinch - 1`
4394 if test "$cf_cv_fixup_sigwinch" != unknown ; then
4395 CPPFLAGS="$CPPFLAGS -DSIGWINCH=$cf_cv_fixup_sigwinch"
4399 dnl ---------------------------------------------------------------------------
4400 dnl CF_SIG_ATOMIC_T version: 2 updated: 2005/09/18 17:27:12
4402 dnl signal handler, but there are some gcc depedencies in that recommendation.
4404 AC_DEFUN([CF_SIG_ATOMIC_T],
4406 AC_MSG_CHECKING(for signal global datatype)
4407 AC_CACHE_VAL(cf_cv_sig_atomic_t,[
4409 "volatile sig_atomic_t" \
4414 #include <sys/types.h>
4420 static void handler(int sig)
4424 [signal(SIGINT, handler);
4426 [cf_cv_sig_atomic_t=$cf_type],
4427 [cf_cv_sig_atomic_t=no])
4428 test "$cf_cv_sig_atomic_t" != no && break
4431 AC_MSG_RESULT($cf_cv_sig_atomic_t)
4432 test "$cf_cv_sig_atomic_t" != no && AC_DEFINE_UNQUOTED(SIG_ATOMIC_T, $cf_cv_sig_atomic_t)
4434 dnl ---------------------------------------------------------------------------
4435 dnl CF_SIZECHANGE version: 8 updated: 2000/11/04 12:22:16
4437 dnl Check for definitions & structures needed for window size-changing
4438 dnl FIXME: check that this works with "snake" (HP-UX 10.x)
4439 AC_DEFUN([CF_SIZECHANGE],
4441 AC_REQUIRE([CF_STRUCT_TERMIOS])
4442 AC_CACHE_CHECK(declaration of size-change, cf_cv_sizechange,[
4443 cf_cv_sizechange=unknown
4444 cf_save_CPPFLAGS="$CPPFLAGS"
4446 for cf_opts in "" "NEED_PTEM_H"
4449 CPPFLAGS="$cf_save_CPPFLAGS"
4450 test -n "$cf_opts" && CPPFLAGS="$CPPFLAGS -D$cf_opts"
4451 AC_TRY_COMPILE([#include <sys/types.h>
4452 #ifdef HAVE_TERMIOS_H
4453 #include <termios.h>
4455 #ifdef HAVE_TERMIO_H
4460 /* This is a workaround for SCO: they neglected to define struct winsize in
4461 * termios.h -- it's only in termio.h and ptem.h
4463 #include <sys/stream.h>
4464 #include <sys/ptem.h>
4466 #if !defined(sun) || !defined(HAVE_TERMIOS_H)
4467 #include <sys/ioctl.h>
4471 struct ttysize win; /* FIXME: what system is this? */
4472 int y = win.ts_lines;
4473 int x = win.ts_cols;
4480 no TIOCGSIZE or TIOCGWINSZ
4481 #endif /* TIOCGWINSZ */
4482 #endif /* TIOCGSIZE */
4484 [cf_cv_sizechange=yes],
4485 [cf_cv_sizechange=no])
4487 CPPFLAGS="$cf_save_CPPFLAGS"
4488 if test "$cf_cv_sizechange" = yes ; then
4489 echo "size-change succeeded ($cf_opts)" >&AC_FD_CC
4490 test -n "$cf_opts" && cf_cv_sizechange="$cf_opts"
4495 if test "$cf_cv_sizechange" != no ; then
4496 AC_DEFINE(HAVE_SIZECHANGE)
4497 case $cf_cv_sizechange in #(vi
4499 AC_DEFINE_UNQUOTED($cf_cv_sizechange )
4504 dnl ---------------------------------------------------------------------------
4505 dnl CF_SRC_MODULES version: 18 updated: 2005/05/28 12:58:54
4507 dnl For each parameter, test if the source-directory exists, and if it contains
4508 dnl a 'modules' file. If so, add to the list $cf_cv_src_modules which we'll
4509 dnl use in CF_LIB_RULES.
4511 dnl This uses the configured value to make the lists SRC_SUBDIRS and
4512 dnl SUB_MAKEFILES which are used in the makefile-generation scheme.
4513 AC_DEFUN([CF_SRC_MODULES],
4515 AC_MSG_CHECKING(for src modules)
4517 # dependencies and linker-arguments for test-programs
4518 TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEPS"
4519 TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEP2"
4520 if test "$DFT_LWR_MODEL" = "libtool"; then
4521 TEST_ARGS="${TEST_DEPS}"
4522 TEST_ARG2="${TEST_DEP2}"
4524 TEST_ARGS="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARGS"
4525 TEST_ARG2="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARG2"
4531 if test -f $srcdir/$cf_dir/modules; then
4533 # We may/may not have tack in the distribution, though the
4535 if test $cf_dir = tack ; then
4536 if test ! -f $srcdir/${cf_dir}/${cf_dir}.h; then
4541 if test -z "$cf_cv_src_modules"; then
4542 cf_cv_src_modules=$cf_dir
4544 cf_cv_src_modules="$cf_cv_src_modules $cf_dir"
4547 # Make the ncurses_cfg.h file record the library interface files as
4548 # well. These are header files that are the same name as their
4549 # directory. Ncurses is the only library that does not follow
4551 if test $cf_dir = tack ; then
4553 elif test -f $srcdir/${cf_dir}/${cf_dir}.h; then
4554 CF_UPPER(cf_have_include,$cf_dir)
4555 AC_DEFINE_UNQUOTED(HAVE_${cf_have_include}_H)
4556 AC_DEFINE_UNQUOTED(HAVE_LIB${cf_have_include})
4557 TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${cf_dir}${DFT_DEP_SUFFIX} $TEST_DEPS"
4558 TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${cf_dir}${DFT_DEP_SUFFIX} $TEST_DEP2"
4559 if test "$DFT_LWR_MODEL" = "libtool"; then
4560 TEST_ARGS="${TEST_DEPS}"
4561 TEST_ARG2="${TEST_DEP2}"
4563 TEST_ARGS="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARGS"
4564 TEST_ARG2="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARG2"
4569 AC_MSG_RESULT($cf_cv_src_modules)
4571 TEST_ARGS="-L${LIB_DIR} $TEST_ARGS"
4572 TEST_ARG2="-L${LIB_2ND} $TEST_ARG2"
4580 SRC_SUBDIRS="man include"
4581 for cf_dir in $cf_cv_src_modules
4583 SRC_SUBDIRS="$SRC_SUBDIRS $cf_dir"
4585 SRC_SUBDIRS="$SRC_SUBDIRS test"
4586 test -z "$MAKE_TERMINFO" && SRC_SUBDIRS="$SRC_SUBDIRS misc"
4587 test "$cf_with_cxx_binding" != no && SRC_SUBDIRS="$SRC_SUBDIRS c++"
4590 if test "$cf_cv_prog_gnat_correct" = yes && test -f $srcdir/Ada95/Makefile.in; then
4591 SRC_SUBDIRS="$SRC_SUBDIRS Ada95"
4592 ADA_SUBDIRS="gen src samples"
4596 for cf_dir in $SRC_SUBDIRS
4598 SUB_MAKEFILES="$SUB_MAKEFILES $cf_dir/Makefile"
4601 if test -n "$ADA_SUBDIRS"; then
4602 for cf_dir in $ADA_SUBDIRS
4604 SUB_MAKEFILES="$SUB_MAKEFILES Ada95/$cf_dir/Makefile"
4606 AC_SUBST(ADA_SUBDIRS)
4609 dnl ---------------------------------------------------------------------------
4610 dnl CF_STDCPP_LIBRARY version: 5 updated: 2000/08/12 23:18:52
4611 dnl -----------------
4612 dnl Check for -lstdc++, which is GNU's standard C++ library.
4613 AC_DEFUN([CF_STDCPP_LIBRARY],
4615 if test -n "$GXX" ; then
4616 case $cf_cv_system_name in #(vi
4618 cf_stdcpp_libname=stdcpp
4621 cf_stdcpp_libname=stdc++
4624 AC_CACHE_CHECK(for library $cf_stdcpp_libname,cf_cv_libstdcpp,[
4626 LIBS="$LIBS -l$cf_stdcpp_libname"
4628 #include <strstream.h>],[
4630 strstreambuf foo(buf, sizeof(buf))
4632 [cf_cv_libstdcpp=yes],
4633 [cf_cv_libstdcpp=no])
4636 test "$cf_cv_libstdcpp" = yes && CXXLIBS="$CXXLIBS -l$cf_stdcpp_libname"
4639 dnl ---------------------------------------------------------------------------
4640 dnl CF_STRIP_G_OPT version: 3 updated: 2002/12/21 19:25:52
4642 dnl Remove "-g" option from the compiler options
4643 AC_DEFUN([CF_STRIP_G_OPT],
4644 [$1=`echo ${$1} | sed -e 's%-g %%' -e 's%-g$%%'`])dnl
4645 dnl ---------------------------------------------------------------------------
4646 dnl CF_STRUCT_SIGACTION version: 3 updated: 2000/08/12 23:18:52
4647 dnl -------------------
4648 dnl Check if we need _POSIX_SOURCE defined to use struct sigaction. We'll only
4649 dnl do this if we've found the sigaction function.
4651 dnl If needed, define SVR4_ACTION.
4652 AC_DEFUN([CF_STRUCT_SIGACTION],[
4653 if test "$ac_cv_func_sigaction" = yes; then
4654 AC_MSG_CHECKING(whether sigaction needs _POSIX_SOURCE)
4656 #include <sys/types.h>
4657 #include <signal.h>],
4658 [struct sigaction act],
4662 #define _POSIX_SOURCE
4663 #include <sys/types.h>
4664 #include <signal.h>],
4665 [struct sigaction act],
4667 AC_DEFINE(SVR4_ACTION)],
4668 [sigact_bad=unknown])])
4669 AC_MSG_RESULT($sigact_bad)
4672 dnl ---------------------------------------------------------------------------
4673 dnl CF_STRUCT_TERMIOS version: 5 updated: 2000/11/04 12:22:46
4674 dnl -----------------
4675 dnl Some machines require _POSIX_SOURCE to completely define struct termios.
4676 dnl If so, define SVR4_TERMIO
4677 AC_DEFUN([CF_STRUCT_TERMIOS],[
4683 if test "$ISC" = yes ; then
4684 AC_CHECK_HEADERS( sys/termio.h )
4686 if test "$ac_cv_header_termios_h" = yes ; then
4687 case "$CFLAGS $CPPFLAGS" in
4689 termios_bad=dunno ;;
4690 *) termios_bad=maybe ;;
4692 if test "$termios_bad" = maybe ; then
4693 AC_MSG_CHECKING(whether termios.h needs _POSIX_SOURCE)
4694 AC_TRY_COMPILE([#include <termios.h>],
4695 [struct termios foo; int x = foo.c_iflag],
4698 #define _POSIX_SOURCE
4699 #include <termios.h>],
4700 [struct termios foo; int x = foo.c_iflag],
4701 termios_bad=unknown,
4702 termios_bad=yes AC_DEFINE(SVR4_TERMIO))
4704 AC_MSG_RESULT($termios_bad)
4708 dnl ---------------------------------------------------------------------------
4709 dnl CF_SUBST version: 4 updated: 2006/06/17 12:33:03
4711 dnl Shorthand macro for substituting things that the user may override
4712 dnl with an environment variable.
4714 dnl $1 = long/descriptive name
4715 dnl $2 = environment variable
4716 dnl $3 = default value
4717 AC_DEFUN([CF_SUBST],
4718 [AC_CACHE_VAL(cf_cv_subst_$2,[
4719 AC_MSG_CHECKING(for $1 (symbol $2))
4720 CF_SUBST_IF([-z "[$]$2"], [$2], [$3])
4721 cf_cv_subst_$2=[$]$2
4722 AC_MSG_RESULT([$]$2)
4725 dnl ---------------------------------------------------------------------------
4726 dnl CF_SUBST_IF version: 2 updated: 2006/06/17 12:33:03
4728 dnl Shorthand macro for substituting things that the user may override
4729 dnl with an environment variable.
4731 dnl $1 = condition to pass to "test"
4732 dnl $2 = environment variable
4733 dnl $3 = value if the test succeeds
4734 dnl $4 = value if the test fails
4735 AC_DEFUN([CF_SUBST_IF],
4744 dnl ---------------------------------------------------------------------------
4745 dnl CF_SUBST_NCURSES_VERSION version: 8 updated: 2006/09/16 11:40:59
4746 dnl ------------------------
4747 dnl Get the version-number for use in shared-library naming, etc.
4748 AC_DEFUN([CF_SUBST_NCURSES_VERSION],
4750 AC_REQUIRE([CF_PROG_EGREP])
4751 NCURSES_MAJOR="`$ac_cv_prog_egrep '^NCURSES_MAJOR[[ ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`"
4752 NCURSES_MINOR="`$ac_cv_prog_egrep '^NCURSES_MINOR[[ ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`"
4753 NCURSES_PATCH="`$ac_cv_prog_egrep '^NCURSES_PATCH[[ ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`"
4754 cf_cv_abi_version=${NCURSES_MAJOR}
4755 cf_cv_rel_version=${NCURSES_MAJOR}.${NCURSES_MINOR}
4756 dnl Show the computed version, for logging
4757 cf_cv_timestamp=`date`
4758 AC_MSG_RESULT(Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp))
4759 dnl We need these values in the generated headers
4760 AC_SUBST(NCURSES_MAJOR)
4761 AC_SUBST(NCURSES_MINOR)
4762 AC_SUBST(NCURSES_PATCH)
4763 dnl We need these values in the generated makefiles
4764 AC_SUBST(cf_cv_rel_version)
4765 AC_SUBST(cf_cv_abi_version)
4766 AC_SUBST(cf_cv_builtin_bool)
4767 AC_SUBST(cf_cv_header_stdbool_h)
4768 AC_SUBST(cf_cv_type_of_bool)dnl
4770 dnl ---------------------------------------------------------------------------
4771 dnl CF_SYS_TIME_SELECT version: 4 updated: 2000/10/04 09:18:40
4772 dnl ------------------
4773 dnl Check if we can include <sys/time.h> with <sys/select.h>; this breaks on
4774 dnl older SCO configurations.
4775 AC_DEFUN([CF_SYS_TIME_SELECT],
4777 AC_MSG_CHECKING(if sys/time.h works with sys/select.h)
4778 AC_CACHE_VAL(cf_cv_sys_time_select,[
4780 #include <sys/types.h>
4781 #ifdef HAVE_SYS_TIME_H
4782 #include <sys/time.h>
4784 #ifdef HAVE_SYS_SELECT_H
4785 #include <sys/select.h>
4787 ],[],[cf_cv_sys_time_select=yes],
4788 [cf_cv_sys_time_select=no])
4790 AC_MSG_RESULT($cf_cv_sys_time_select)
4791 test "$cf_cv_sys_time_select" = yes && AC_DEFINE(HAVE_SYS_TIME_SELECT)
4793 dnl ---------------------------------------------------------------------------
4794 dnl CF_TOP_BUILDDIR version: 1 updated: 2006/10/15 16:33:23
4796 dnl Define a top_builddir symbol, for applications that need an absolute path.
4797 AC_DEFUN([CF_TOP_BUILDDIR],
4800 AC_SUBST(top_builddir)
4802 dnl ---------------------------------------------------------------------------
4803 dnl CF_TYPEOF_CHTYPE version: 8 updated: 2006/12/16 12:33:30
4804 dnl ----------------
4805 dnl Determine the type we should use for chtype (and attr_t, which is treated
4806 dnl as the same thing). We want around 32 bits, so on most machines want a
4807 dnl long, but on newer 64-bit machines, probably want an int. If we're using
4808 dnl wide characters, we have to have a type compatible with that, as well.
4809 AC_DEFUN([CF_TYPEOF_CHTYPE],
4811 AC_MSG_CHECKING([for type of chtype])
4812 AC_CACHE_VAL(cf_cv_typeof_chtype,[
4814 #define WANT_BITS 31
4818 FILE *fp = fopen("cf_test.out", "w");
4820 char *result = "long";
4821 if (sizeof(unsigned long) > sizeof(unsigned int)) {
4824 for (n = 0; n < WANT_BITS; n++) {
4827 if (y != 1 || x == 0) {
4833 * If x is nonzero, an int is big enough for the bits
4836 result = (x != 0) ? "int" : "long";
4841 ${cf_cv_main_return:-return}(0);
4844 [cf_cv_typeof_chtype=`cat cf_test.out`],
4845 [cf_cv_typeof_chtype=long],
4846 [cf_cv_typeof_chtype=long])
4849 AC_MSG_RESULT($cf_cv_typeof_chtype)
4851 AC_SUBST(cf_cv_typeof_chtype)
4852 AC_DEFINE_UNQUOTED(TYPEOF_CHTYPE,$cf_cv_typeof_chtype)
4854 dnl ---------------------------------------------------------------------------
4855 dnl CF_TYPE_SIGACTION version: 3 updated: 2000/08/12 23:18:52
4856 dnl -----------------
4858 AC_DEFUN([CF_TYPE_SIGACTION],
4860 AC_MSG_CHECKING([for type sigaction_t])
4861 AC_CACHE_VAL(cf_cv_type_sigaction,[
4863 #include <signal.h>],
4865 [cf_cv_type_sigaction=yes],
4866 [cf_cv_type_sigaction=no])])
4867 AC_MSG_RESULT($cf_cv_type_sigaction)
4868 test "$cf_cv_type_sigaction" = yes && AC_DEFINE(HAVE_TYPE_SIGACTION)
4870 dnl ---------------------------------------------------------------------------
4871 dnl CF_UNSIGNED_LITERALS version: 2 updated: 1998/02/07 22:10:16
4872 dnl --------------------
4873 dnl Test if the compiler supports 'U' and 'L' suffixes. Only old compilers
4874 dnl won't, but they're still there.
4875 AC_DEFUN([CF_UNSIGNED_LITERALS],
4877 AC_MSG_CHECKING([if unsigned literals are legal])
4878 AC_CACHE_VAL(cf_cv_unsigned_literals,[
4879 AC_TRY_COMPILE([],[long x = 1L + 1UL + 1U + 1],
4880 [cf_cv_unsigned_literals=yes],
4881 [cf_cv_unsigned_literals=no])
4883 AC_MSG_RESULT($cf_cv_unsigned_literals)
4885 dnl ---------------------------------------------------------------------------
4886 dnl CF_UPPER version: 5 updated: 2001/01/29 23:40:59
4888 dnl Make an uppercase version of a variable
4889 dnl $1=uppercase($2)
4890 AC_DEFUN([CF_UPPER],
4892 $1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
4894 dnl ---------------------------------------------------------------------------
4895 dnl CF_VERBOSE version: 3 updated: 2007/07/29 09:55:12
4897 dnl Use AC_VERBOSE w/o the warnings
4898 AC_DEFUN([CF_VERBOSE],
4899 [test -n "$verbose" && echo " $1" 1>&AC_FD_MSG
4902 dnl ---------------------------------------------------------------------------
4903 dnl CF_WCHAR_TYPE version: 2 updated: 2004/01/17 19:18:20
4905 dnl Check if type wide-character type $1 is declared, and if so, which header
4906 dnl file is needed. The second parameter is used to set a shell variable when
4907 dnl the type is not found. The first parameter sets a shell variable for the
4909 AC_DEFUN([CF_WCHAR_TYPE],
4911 # This is needed on Tru64 5.0 to declare $1
4912 AC_CACHE_CHECK(if we must include wchar.h to declare $1,cf_cv_$1,[
4917 #ifdef HAVE_LIBUTF8_H
4918 #include <libutf8.h>
4927 #ifdef HAVE_LIBUTF8_H
4928 #include <libutf8.h>
4932 [cf_cv_$1=unknown])])])
4934 if test "$cf_cv_$1" = yes ; then
4935 AC_DEFINE(NEED_WCHAR_H)
4940 # if we do not find $1 in either place, use substitution to provide a fallback.
4941 if test "$cf_cv_$1" = unknown ; then
4946 # if we find $1 in either place, use substitution to provide a fallback.
4947 if test "$cf_cv_$1" != unknown ; then
4952 dnl ---------------------------------------------------------------------------
4953 dnl CF_WEAK_SYMBOLS version: 1 updated: 2008/08/16 19:18:06
4955 dnl Check for compiler-support for weak symbols.
4956 dnl This works with "recent" gcc.
4957 AC_DEFUN([CF_WEAK_SYMBOLS],[
4958 AC_CACHE_CHECK(if $CC supports weak symbols,cf_cv_weak_symbols,[
4961 #include <stdio.h>],
4963 #if defined(__GNUC__)
4964 # if defined __USE_ISOC99
4965 # define _cat_pragma(exp) _Pragma(#exp)
4966 # define _weak_pragma(exp) _cat_pragma(weak name)
4968 # define _weak_pragma(exp)
4970 # define _declare(name) __extension__ extern __typeof__(name) name
4971 # define weak_symbol(name) _weak_pragma(name) _declare(name) __attribute__((weak))
4975 ],[cf_cv_weak_symbols=yes],[cf_cv_weak_symbols=no])
4978 dnl ---------------------------------------------------------------------------
4979 dnl CF_WITH_ABI_VERSION version: 1 updated: 2003/09/20 18:12:49
4980 dnl -------------------
4981 dnl Allow library's ABI to be overridden. Generally this happens when a
4982 dnl packager has incremented the ABI past that used in the original package,
4983 dnl and wishes to keep doing this.
4985 dnl $1 is the package name, if any, to derive a corresponding {package}_ABI
4987 AC_DEFUN([CF_WITH_ABI_VERSION],[
4988 test -z "$cf_cv_abi_version" && cf_cv_abi_version=0
4989 AC_ARG_WITH(abi-version,
4990 [ --with-abi-version=XXX override derived ABI version],
4991 [AC_MSG_WARN(overriding ABI version $cf_cv_abi_version to $withval)
4992 cf_cv_abi_version=$withval])
4993 CF_NUMBER_SYNTAX($cf_cv_abi_version,ABI version)
4995 $1_ABI=$cf_cv_abi_version
4998 dnl ---------------------------------------------------------------------------
4999 dnl CF_WITH_DBMALLOC version: 6 updated: 2006/12/16 14:24:05
5000 dnl ----------------
5001 dnl Configure-option for dbmalloc. The optional parameter is used to override
5002 dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
5003 AC_DEFUN([CF_WITH_DBMALLOC],[
5004 CF_NO_LEAKS_OPTION(dbmalloc,
5005 [ --with-dbmalloc test: use Conor Cahill's dbmalloc library],
5008 if test "$with_dbmalloc" = yes ; then
5009 AC_CHECK_HEADER(dbmalloc.h,
5010 [AC_CHECK_LIB(dbmalloc,[debug_malloc]ifelse($1,,[],[,$1]))])
5013 dnl ---------------------------------------------------------------------------
5014 dnl CF_WITH_DMALLOC version: 6 updated: 2006/12/16 14:24:05
5016 dnl Configure-option for dmalloc. The optional parameter is used to override
5017 dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
5018 AC_DEFUN([CF_WITH_DMALLOC],[
5019 CF_NO_LEAKS_OPTION(dmalloc,
5020 [ --with-dmalloc test: use Gray Watson's dmalloc library],
5023 if test "$with_dmalloc" = yes ; then
5024 AC_CHECK_HEADER(dmalloc.h,
5025 [AC_CHECK_LIB(dmalloc,[dmalloc_debug]ifelse($1,,[],[,$1]))])
5028 dnl ---------------------------------------------------------------------------
5029 dnl CF_WITH_GPM version: 7 updated: 2008/03/23 14:48:54
5032 dnl The option parameter (if neither yes/no) is assumed to be the name of
5033 dnl the gpm library, e.g., for dynamic loading.
5034 AC_DEFUN([CF_WITH_GPM],
5036 AC_MSG_CHECKING(if you want to link with the GPM mouse library)
5038 [ --with-gpm use Alessandro Rubini's GPM library],
5039 [with_gpm=$withval],
5041 AC_MSG_RESULT($with_gpm)
5043 if test "$with_gpm" != no ; then
5044 AC_CHECK_HEADER(gpm.h,[
5045 AC_DEFINE(HAVE_GPM_H)
5046 if test "$with_gpm" != yes && test "$with_gpm" != maybe ; then
5047 CF_VERBOSE(assuming we really have GPM library)
5048 AC_DEFINE(HAVE_LIBGPM)
5050 AC_CHECK_LIB(gpm,Gpm_Open,[:],[
5051 AC_MSG_ERROR(Cannot link with GPM library)
5056 test "$with_gpm" != maybe && AC_MSG_WARN(Cannot find GPM header)
5061 dnl ---------------------------------------------------------------------------
5062 dnl CF_WITH_LIBTOOL version: 19 updated: 2008/03/29 15:46:43
5064 dnl Provide a configure option to incorporate libtool. Define several useful
5065 dnl symbols for the makefile rules.
5067 dnl The reference to AC_PROG_LIBTOOL does not normally work, since it uses
5068 dnl macros from libtool.m4 which is in the aclocal directory of automake.
5069 dnl Following is a simple script which turns on the AC_PROG_LIBTOOL macro.
5070 dnl But that still does not work properly since the macro is expanded outside
5071 dnl the CF_WITH_LIBTOOL macro:
5074 dnl ACLOCAL=`aclocal --print-ac-dir`
5075 dnl if test -z "$ACLOCAL" ; then
5076 dnl echo cannot find aclocal directory
5078 dnl elif test ! -f $ACLOCAL/libtool.m4 ; then
5079 dnl echo cannot find libtool.m4 file
5083 dnl LOCAL=aclocal.m4
5084 dnl ORIG=aclocal.m4.orig
5086 dnl trap "mv $ORIG $LOCAL" 0 1 2 5 15
5090 dnl # sed the LIBTOOL= assignment to omit the current directory?
5091 dnl sed -e 's/^LIBTOOL=.*/LIBTOOL=${LIBTOOL-libtool}/' $ACLOCAL/libtool.m4 >>$LOCAL
5092 dnl cat $ORIG >>$LOCAL
5096 AC_DEFUN([CF_WITH_LIBTOOL],
5098 ifdef([AC_PROG_LIBTOOL],,[
5101 # common library maintenance symbols that are convenient for libtool scripts:
5102 LIB_CREATE='${AR} -cr'
5103 LIB_OBJECT='${OBJECTS}'
5107 # symbols used to prop libtool up to enable it to determine what it should be
5115 AC_MSG_CHECKING(if you want to build libraries with libtool)
5116 AC_ARG_WITH(libtool,
5117 [ --with-libtool generate libraries with libtool],
5118 [with_libtool=$withval],
5120 AC_MSG_RESULT($with_libtool)
5121 if test "$with_libtool" != "no"; then
5122 ifdef([AC_PROG_LIBTOOL],[
5123 # missing_content_AC_PROG_LIBTOOL{{
5125 # missing_content_AC_PROG_LIBTOOL}}
5127 if test "$with_libtool" != "yes" ; then
5128 CF_PATH_SYNTAX(with_libtool)
5129 LIBTOOL=$with_libtool
5131 AC_PATH_PROG(LIBTOOL,libtool)
5133 if test -z "$LIBTOOL" ; then
5134 AC_MSG_ERROR(Cannot find libtool)
5137 LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${DESTDIR}${libdir} -version-info `cut -f1 ${srcdir}/VERSION` ${LIBTOOL_OPTS} -o'
5138 LIB_OBJECT='${OBJECTS:.o=.lo}'
5140 LIB_CLEAN='${LIBTOOL} --mode=clean'
5141 LIB_COMPILE='${LIBTOOL} --mode=compile'
5142 LIB_LINK='${LIBTOOL} --mode=link ${CC} ${LIBTOOL_OPTS}'
5143 LIB_INSTALL='${LIBTOOL} --mode=install'
5144 LIB_UNINSTALL='${LIBTOOL} --mode=uninstall'
5147 # Show the version of libtool
5148 AC_MSG_CHECKING(version of libtool)
5150 # Save the version in a cache variable - this is not entirely a good
5151 # thing, but the version string from libtool is very ugly, and for
5152 # bug reports it might be useful to have the original string.
5153 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.]].*//'`
5154 AC_MSG_RESULT($cf_cv_libtool_version)
5155 if test -z "$cf_cv_libtool_version" ; then
5156 AC_MSG_ERROR(This is not GNU libtool)
5159 # special hack to add --tag option for C++ compiler
5160 case $cf_cv_libtool_version in
5161 1.[[5-9]]*|[[2-9]]*)
5162 LIBTOOL_CXX="$LIBTOOL --tag=CXX"
5163 LIBTOOL="$LIBTOOL --tag=CC"
5166 LIBTOOL_CXX="$LIBTOOL"
5174 test -z "$LIBTOOL" && ECHO_LT=
5177 AC_SUBST(LIBTOOL_CXX)
5178 AC_SUBST(LIBTOOL_OPTS)
5180 AC_SUBST(LIB_CREATE)
5181 AC_SUBST(LIB_OBJECT)
5182 AC_SUBST(LIB_SUFFIX)
5186 AC_SUBST(LIB_COMPILE)
5188 AC_SUBST(LIB_INSTALL)
5189 AC_SUBST(LIB_UNINSTALL)
5192 dnl ---------------------------------------------------------------------------
5193 dnl CF_WITH_PATH version: 8 updated: 2007/05/13 13:16:35
5195 dnl Wrapper for AC_ARG_WITH to ensure that user supplies a pathname, not just
5196 dnl defaulting to yes/no.
5198 dnl $1 = option name
5200 dnl $3 = environment variable to set
5201 dnl $4 = default value, shown in the help-message, must be a constant
5202 dnl $5 = default value, if it's an expression & cannot be in the help-message
5204 AC_DEFUN([CF_WITH_PATH],
5205 [AC_ARG_WITH($1,[$2 ](default: ifelse($4,,empty,$4)),,
5206 ifelse($4,,[withval="${$3}"],[withval="${$3-ifelse($5,,$4,$5)}"]))dnl
5207 if ifelse($5,,true,[test -n "$5"]) ; then
5208 CF_PATH_SYNTAX(withval)
5213 dnl ---------------------------------------------------------------------------
5214 dnl CF_WITH_PATHLIST version: 5 updated: 2001/12/10 01:28:30
5215 dnl ----------------
5216 dnl Process an option specifying a list of colon-separated paths.
5218 dnl $1 = option name
5220 dnl $3 = environment variable to set
5221 dnl $4 = default value, shown in the help-message, must be a constant
5222 dnl $5 = default value, if it's an expression & cannot be in the help-message
5223 dnl $6 = flag to tell if we want to define or substitute
5225 AC_DEFUN([CF_WITH_PATHLIST],[
5226 AC_REQUIRE([CF_PATHSEP])
5227 AC_ARG_WITH($1,[$2 ](default: ifelse($4,,empty,$4)),,
5228 ifelse($4,,[withval=${$3}],[withval=${$3-ifelse($5,,$4,$5)}]))dnl
5230 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${PATHSEP}"
5232 for cf_src_path in $withval
5234 CF_PATH_SYNTAX(cf_src_path)
5235 test -n "$cf_dst_path" && cf_dst_path="${cf_dst_path}:"
5236 cf_dst_path="${cf_dst_path}${cf_src_path}"
5241 # Strip single quotes from the value, e.g., when it was supplied as a literal
5243 case $cf_dst_path in #(vi
5245 cf_dst_path=`echo $cf_dst_path |sed -e s/\'// -e s/\'\$//`
5248 cf_dst_path=`echo "$cf_dst_path" | sed -e 's/\\\\/\\\\\\\\/g'`
5251 eval '$3="$cf_dst_path"'
5255 dnl ---------------------------------------------------------------------------
5256 dnl CF_WITH_PTHREAD version: 2 updated: 2008/08/23 18:26:05
5258 dnl Check for POSIX thread library.
5259 AC_DEFUN([CF_WITH_PTHREAD],
5261 AC_MSG_CHECKING(if you want to link with the pthread library)
5262 AC_ARG_WITH(pthread,
5263 [ --with-pthread use POSIX thread library],
5264 [with_pthread=$withval],
5266 AC_MSG_RESULT($with_pthread)
5268 if test "$with_pthread" != no ; then
5269 AC_CHECK_HEADER(pthread.h,[
5270 AC_DEFINE(HAVE_PTHREADS_H)
5272 AC_MSG_CHECKING(if we can link with the pthread library)
5273 cf_save_LIBS="$LIBS"
5274 LIBS="-lpthread $LIBS"
5276 #include <pthread.h>
5278 int rc = pthread_create(0,0,0,0);
5279 ],[with_pthread=yes],[with_pthread=no])
5280 LIBS="$cf_save_LIBS"
5281 AC_MSG_RESULT($with_pthread)
5283 if test "$with_pthread" = yes ; then
5284 LIBS="-lpthread $LIBS"
5285 AC_DEFINE(HAVE_LIBPTHREADS)
5287 AC_MSG_ERROR(Cannot link with pthread library)
5292 dnl ---------------------------------------------------------------------------
5293 dnl CF_WITH_REL_VERSION version: 1 updated: 2003/09/20 18:12:49
5294 dnl -------------------
5295 dnl Allow library's release-version to be overridden. Generally this happens when a
5296 dnl packager has incremented the release-version past that used in the original package,
5297 dnl and wishes to keep doing this.
5299 dnl $1 is the package name, if any, to derive corresponding {package}_MAJOR
5300 dnl and {package}_MINOR symbols
5302 AC_DEFUN([CF_WITH_REL_VERSION],[
5303 test -z "$cf_cv_rel_version" && cf_cv_rel_version=0.0
5304 AC_ARG_WITH(rel-version,
5305 [ --with-rel-version=XXX override derived release version],
5306 [AC_MSG_WARN(overriding release version $cf_cv_rel_version to $withval)
5307 cf_cv_rel_version=$withval])
5309 CF_NUMBER_SYNTAX($cf_cv_rel_version,Release version)
5311 $1_MAJOR=`echo "$cf_cv_rel_version" | sed -e 's/\..*//'`
5312 $1_MINOR=`echo "$cf_cv_rel_version" | sed -e 's/^[[^.]]*//' -e 's/^\.//' -e 's/\..*//'`
5313 CF_NUMBER_SYNTAX([$]$1_MAJOR,Release major-version)
5314 CF_NUMBER_SYNTAX([$]$1_MINOR,Release minor-version)
5317 dnl ---------------------------------------------------------------------------
5318 dnl CF_WITH_SYSMOUSE version: 2 updated: 2003/03/22 19:13:43
5319 dnl ----------------
5320 dnl If we can compile with sysmouse, make it available unless it is not wanted.
5321 AC_DEFUN([CF_WITH_SYSMOUSE],[
5322 # not everyone has "test -c"
5323 if test -c /dev/sysmouse 2>/dev/null ; then
5324 AC_MSG_CHECKING(if you want to use sysmouse)
5325 AC_ARG_WITH(sysmouse,
5326 [ --with-sysmouse use sysmouse (FreeBSD console)],
5327 [cf_with_sysmouse=$withval],
5328 [cf_with_sysmouse=maybe])
5329 if test "$cf_with_sysmouse" != no ; then
5331 #include <osreldate.h>
5332 #if (__FreeBSD_version >= 400017)
5333 #include <sys/consio.h>
5334 #include <sys/fbio.h>
5336 #include <machine/console.h>
5339 struct mouse_info the_mouse;
5340 ioctl(0, CONS_MOUSECTL, &the_mouse);
5341 ],[cf_with_sysmouse=yes],[cf_with_sysmouse=no])
5343 AC_MSG_RESULT($cf_with_sysmouse)
5344 test "$cf_with_sysmouse" = yes && AC_DEFINE(USE_SYSMOUSE)
5347 dnl ---------------------------------------------------------------------------
5348 dnl CF_WITH_VALGRIND version: 1 updated: 2006/12/14 18:00:21
5349 dnl ----------------
5350 AC_DEFUN([CF_WITH_VALGRIND],[
5351 CF_NO_LEAKS_OPTION(valgrind,
5352 [ --with-valgrind test: use valgrind],
5355 dnl ---------------------------------------------------------------------------
5356 dnl CF_XOPEN_SOURCE version: 26 updated: 2008/07/27 11:26:57
5358 dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
5359 dnl or adapt to the vendor's definitions to get equivalent functionality,
5360 dnl without losing the common non-POSIX features.
5363 dnl $1 is the nominal value for _XOPEN_SOURCE
5364 dnl $2 is the nominal value for _POSIX_C_SOURCE
5365 AC_DEFUN([CF_XOPEN_SOURCE],[
5367 AC_REQUIRE([CF_PROG_CC_U_D])
5369 cf_XOPEN_SOURCE=ifelse($1,,500,$1)
5370 cf_POSIX_C_SOURCE=ifelse($2,,199506L,$2)
5372 case $host_os in #(vi
5374 CPPFLAGS="$CPPFLAGS -D_ALL_SOURCE"
5376 freebsd*|dragonfly*) #(vi
5377 # 5.x headers associate
5378 # _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L
5379 # _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L
5380 cf_POSIX_C_SOURCE=200112L
5382 CPPFLAGS="$CPPFLAGS -D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
5385 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE"
5388 CPPFLAGS="$CPPFLAGS -D_SGI_SOURCE"
5390 linux*|gnu*|k*bsd*-gnu) #(vi
5394 # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <arpa/inet.h>
5397 # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
5400 # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
5403 CPPFLAGS="$CPPFLAGS -D_OSF_SOURCE"
5406 CPPFLAGS="$CPPFLAGS -D_QNX_SOURCE"
5409 # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
5412 CPPFLAGS="$CPPFLAGS -D__EXTENSIONS__"
5415 AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[
5416 AC_TRY_COMPILE([#include <sys/types.h>],[
5417 #ifndef _XOPEN_SOURCE
5420 [cf_cv_xopen_source=no],
5421 [cf_save="$CPPFLAGS"
5422 CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
5423 AC_TRY_COMPILE([#include <sys/types.h>],[
5424 #ifdef _XOPEN_SOURCE
5427 [cf_cv_xopen_source=no],
5428 [cf_cv_xopen_source=$cf_XOPEN_SOURCE])
5432 if test "$cf_cv_xopen_source" != no ; then
5433 CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE)
5434 CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE)
5435 test "$cf_cv_cc_u_d_options" = yes && \
5436 CPPFLAGS="$CPPFLAGS -U_XOPEN_SOURCE"
5437 CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_cv_xopen_source"
5439 CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)