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.453 2008/08/23 22:27:51 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_BOOL_DECL version: 8 updated: 2004/01/30 15:51:18
336 dnl Test if 'bool' is a builtin type in the configured C++ compiler. Some
337 dnl older compilers (e.g., gcc 2.5.8) don't support 'bool' directly; gcc
338 dnl 2.6.3 does, in anticipation of the ANSI C++ standard.
340 dnl Treat the configuration-variable specially here, since we're directly
341 dnl substituting its value (i.e., 1/0).
343 dnl $1 is the shell variable to store the result in, if not $cv_cv_builtin_bool
344 AC_DEFUN([CF_BOOL_DECL],
346 AC_MSG_CHECKING(if we should include stdbool.h)
348 AC_CACHE_VAL(cf_cv_header_stdbool_h,[
349 AC_TRY_COMPILE([],[bool foo = false],
350 [cf_cv_header_stdbool_h=0],
355 ],[bool foo = false],
356 [cf_cv_header_stdbool_h=1],
357 [cf_cv_header_stdbool_h=0])])])
359 if test "$cf_cv_header_stdbool_h" = 1
360 then AC_MSG_RESULT(yes)
361 else AC_MSG_RESULT(no)
364 AC_MSG_CHECKING([for builtin bool type])
366 AC_CACHE_VAL(ifelse($1,,cf_cv_builtin_bool,[$1]),[
369 #include <sys/types.h>
371 [ifelse($1,,cf_cv_builtin_bool,[$1])=1],
372 [ifelse($1,,cf_cv_builtin_bool,[$1])=0])
375 if test "$ifelse($1,,cf_cv_builtin_bool,[$1])" = 1
376 then AC_MSG_RESULT(yes)
377 else AC_MSG_RESULT(no)
380 dnl ---------------------------------------------------------------------------
381 dnl CF_BOOL_SIZE version: 12 updated: 2006/12/16 12:33:30
383 dnl Test for the size of 'bool' in the configured C++ compiler (e.g., a type).
384 dnl Don't bother looking for bool.h, since it's been deprecated.
386 dnl If the current compiler is C rather than C++, we get the bool definition
387 dnl from <stdbool.h>.
388 AC_DEFUN([CF_BOOL_SIZE],
390 AC_MSG_CHECKING([for size of bool])
391 AC_CACHE_VAL(cf_cv_type_of_bool,[
397 #if defined(__cplusplus)
399 #ifdef HAVE_GXX_BUILTIN_H
400 #include <g++/builtin.h>
401 #elif HAVE_GPP_BUILTIN_H
402 #include <gpp/builtin.h>
409 #if $cf_cv_header_stdbool_h
417 FILE *fp = fopen("cf_test.out", "w");
421 fputs("unsigned ", fp);
422 if (sizeof(x) == sizeof(int)) fputs("int", fp);
423 else if (sizeof(x) == sizeof(char)) fputs("char", fp);
424 else if (sizeof(x) == sizeof(short))fputs("short",fp);
425 else if (sizeof(x) == sizeof(long)) fputs("long", fp);
428 ${cf_cv_main_return:-return}(0);
431 [cf_cv_type_of_bool=`cat cf_test.out`
432 if test -z "$cf_cv_type_of_bool"; then
433 cf_cv_type_of_bool=unknown
435 [cf_cv_type_of_bool=unknown],
436 [cf_cv_type_of_bool=unknown])
439 AC_MSG_RESULT($cf_cv_type_of_bool)
440 if test "$cf_cv_type_of_bool" = unknown ; then
441 case .$NCURSES_BOOL in #(vi
442 .auto|.) NCURSES_BOOL=unsigned;;
444 AC_MSG_WARN(Assuming $NCURSES_BOOL for type of bool)
445 cf_cv_type_of_bool=$NCURSES_BOOL
448 dnl ---------------------------------------------------------------------------
449 dnl CF_BUILD_CC version: 6 updated: 2006/10/14 15:23:15
451 dnl If we're cross-compiling, allow the user to override the tools and their
452 dnl options. The configure script is oriented toward identifying the host
453 dnl compiler, etc., but we need a build compiler to generate parts of the
456 dnl $1 = default for $CPPFLAGS
457 dnl $2 = default for $LIBS
458 AC_DEFUN([CF_BUILD_CC],[
459 AC_REQUIRE([CF_PROG_EXT])
460 if test "$cross_compiling" = yes ; then
462 # defaults that we might want to override
463 : ${BUILD_CFLAGS:=''}
464 : ${BUILD_CPPFLAGS:='ifelse([$1],,,[$1])'}
465 : ${BUILD_LDFLAGS:=''}
466 : ${BUILD_LIBS:='ifelse([$2],,,[$2])'}
467 : ${BUILD_EXEEXT:='$x'}
468 : ${BUILD_OBJEXT:='o'}
470 AC_ARG_WITH(build-cc,
471 [ --with-build-cc=XXX the build C compiler ($BUILD_CC)],
472 [BUILD_CC="$withval"],
473 [AC_CHECK_PROGS(BUILD_CC, gcc cc cl)])
474 AC_MSG_CHECKING(for native build C compiler)
475 AC_MSG_RESULT($BUILD_CC)
477 AC_MSG_CHECKING(for native build C preprocessor)
478 AC_ARG_WITH(build-cpp,
479 [ --with-build-cpp=XXX the build C preprocessor ($BUILD_CPP)],
480 [BUILD_CPP="$withval"],
481 [BUILD_CPP='${BUILD_CC} -E'])
482 AC_MSG_RESULT($BUILD_CPP)
484 AC_MSG_CHECKING(for native build C flags)
485 AC_ARG_WITH(build-cflags,
486 [ --with-build-cflags=XXX the build C compiler-flags ($BUILD_CFLAGS)],
487 [BUILD_CFLAGS="$withval"])
488 AC_MSG_RESULT($BUILD_CFLAGS)
490 AC_MSG_CHECKING(for native build C preprocessor-flags)
491 AC_ARG_WITH(build-cppflags,
492 [ --with-build-cppflags=XXX the build C preprocessor-flags ($BUILD_CPPFLAGS)],
493 [BUILD_CPPFLAGS="$withval"])
494 AC_MSG_RESULT($BUILD_CPPFLAGS)
496 AC_MSG_CHECKING(for native build linker-flags)
497 AC_ARG_WITH(build-ldflags,
498 [ --with-build-ldflags=XXX the build linker-flags ($BUILD_LDFLAGS)],
499 [BUILD_LDFLAGS="$withval"])
500 AC_MSG_RESULT($BUILD_LDFLAGS)
502 AC_MSG_CHECKING(for native build linker-libraries)
503 AC_ARG_WITH(build-libs,
504 [ --with-build-libs=XXX the build libraries (${BUILD_LIBS})],
505 [BUILD_LIBS="$withval"])
506 AC_MSG_RESULT($BUILD_LIBS)
508 # this assumes we're on Unix.
512 : ${BUILD_CC:='${CC}'}
514 if ( test "$BUILD_CC" = "$CC" || test "$BUILD_CC" = '${CC}' ) ; then
515 AC_MSG_ERROR([Cross-build requires two compilers.
516 Use --with-build-cc to specify the native compiler.])
520 : ${BUILD_CC:='${CC}'}
521 : ${BUILD_CPP:='${CPP}'}
522 : ${BUILD_CFLAGS:='${CFLAGS}'}
523 : ${BUILD_CPPFLAGS:='${CPPFLAGS}'}
524 : ${BUILD_LDFLAGS:='${LDFLAGS}'}
525 : ${BUILD_LIBS:='${LIBS}'}
526 : ${BUILD_EXEEXT:='$x'}
527 : ${BUILD_OBJEXT:='o'}
532 AC_SUBST(BUILD_CFLAGS)
533 AC_SUBST(BUILD_CPPFLAGS)
534 AC_SUBST(BUILD_LDFLAGS)
536 AC_SUBST(BUILD_EXEEXT)
537 AC_SUBST(BUILD_OBJEXT)
539 dnl ---------------------------------------------------------------------------
540 dnl CF_CFG_DEFAULTS version: 7 updated: 2005/09/24 16:15:00
542 dnl Determine the default configuration into which we'll install ncurses. This
543 dnl can be overridden by the user's command-line options. There's two items to
545 dnl 1. the prefix (e.g., /usr)
546 dnl 2. the header files (e.g., /usr/include/ncurses)
547 dnl We'll look for a previous installation of ncurses and use the same defaults.
549 dnl We don't use AC_PREFIX_DEFAULT, because it gets evaluated too soon, and
550 dnl we don't use AC_PREFIX_PROGRAM, because we cannot distinguish ncurses's
551 dnl programs from a vendor's.
552 AC_DEFUN([CF_CFG_DEFAULTS],
554 AC_MSG_CHECKING(for prefix)
555 if test "x$prefix" = "xNONE" ; then
556 case "$cf_cv_system_name" in
557 # non-vendor systems don't have a conflict
558 openbsd*|freebsd*|linux*|cygwin*|k*bsd*-gnu)
561 *) prefix=$ac_default_prefix
565 AC_MSG_RESULT($prefix)
567 if test "x$prefix" = "xNONE" ; then
568 AC_MSG_CHECKING(for default include-directory)
569 test -n "$verbose" && echo 1>&AC_FD_MSG
572 $includedir/ncurses \
574 $prefix/include/ncurses \
576 /usr/local/include/ncurses \
580 cf_dir=`eval echo $cf_symbol`
581 if test -f $cf_dir/curses.h ; then
582 if ( fgrep NCURSES_VERSION $cf_dir/curses.h 2>&1 >/dev/null ) ; then
583 includedir="$cf_symbol"
584 test -n "$verbose" && echo $ac_n " found " 1>&AC_FD_MSG
588 test -n "$verbose" && echo " tested $cf_dir" 1>&AC_FD_MSG
590 AC_MSG_RESULT($includedir)
593 dnl ---------------------------------------------------------------------------
594 dnl CF_CGETENT version: 3 updated: 2000/08/12 23:18:52
596 dnl Check if the terminal-capability database functions are available. If not,
597 dnl ncurses has a much-reduced version.
598 AC_DEFUN([CF_CGETENT],[
599 AC_MSG_CHECKING(for terminal-capability database functions)
600 AC_CACHE_VAL(cf_cv_cgetent,[
602 #include <stdlib.h>],[
605 char *db_array = temp;
606 cgetent(&buf, /* int *, */ &db_array, "vt100");
607 cgetcap(buf, "tc", '=');
608 cgetmatch(buf, "tc");
613 AC_MSG_RESULT($cf_cv_cgetent)
614 test "$cf_cv_cgetent" = yes && AC_DEFINE(HAVE_BSD_CGETENT)
616 dnl ---------------------------------------------------------------------------
617 dnl CF_CHECK_CACHE version: 11 updated: 2008/03/23 14:45:59
619 dnl Check if we're accidentally using a cache from a different machine.
620 dnl Derive the system name, as a check for reusing the autoconf cache.
622 dnl If we've packaged config.guess and config.sub, run that (since it does a
623 dnl better job than uname). Normally we'll use AC_CANONICAL_HOST, but allow
624 dnl an extra parameter that we may override, e.g., for AC_CANONICAL_SYSTEM
625 dnl which is useful in cross-compiles.
627 dnl Note: we would use $ac_config_sub, but that is one of the places where
628 dnl autoconf 2.5x broke compatibility with autoconf 2.13
629 AC_DEFUN([CF_CHECK_CACHE],
631 if test -f $srcdir/config.guess || test -f $ac_aux_dir/config.guess ; then
632 ifelse([$1],,[AC_CANONICAL_HOST],[$1])
633 system_name="$host_os"
635 system_name="`(uname -s -r) 2>/dev/null`"
636 if test -z "$system_name" ; then
637 system_name="`(hostname) 2>/dev/null`"
640 test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name")
641 AC_CACHE_VAL(cf_cv_system_name,[cf_cv_system_name="$system_name"])
643 test -z "$system_name" && system_name="$cf_cv_system_name"
644 test -n "$cf_cv_system_name" && AC_MSG_RESULT(Configuring for $cf_cv_system_name)
646 if test ".$system_name" != ".$cf_cv_system_name" ; then
647 AC_MSG_RESULT(Cached system name ($system_name) does not agree with actual ($cf_cv_system_name))
648 AC_MSG_ERROR("Please remove config.cache and try again.")
651 dnl ---------------------------------------------------------------------------
652 dnl CF_CHECK_ERRNO version: 10 updated: 2008/08/22 16:33:22
654 dnl Check for data that is usually declared in <stdio.h> or <errno.h>, e.g.,
655 dnl the 'errno' variable. Define a DECL_xxx symbol if we must declare it
658 dnl $1 = the name to check
659 dnl $2 = the assumed type
660 AC_DEFUN([CF_CHECK_ERRNO],
662 AC_CACHE_CHECK(if external $1 is declared, cf_cv_dcl_$1,[
668 #include <sys/types.h>
669 #include <errno.h> ],
670 ifelse($2,,int,$2) x = (ifelse($2,,int,$2)) $1,
675 if test "$cf_cv_dcl_$1" = no ; then
676 CF_UPPER(cf_result,decl_$1)
677 AC_DEFINE_UNQUOTED($cf_result)
680 # It's possible (for near-UNIX clones) that the data doesn't exist
681 CF_CHECK_EXTERN_DATA($1,ifelse($2,,int,$2))
683 dnl ---------------------------------------------------------------------------
684 dnl CF_CHECK_EXTERN_DATA version: 3 updated: 2001/12/30 18:03:23
685 dnl --------------------
686 dnl Check for existence of external data in the current set of libraries. If
687 dnl we can modify it, it's real enough.
688 dnl $1 = the name to check
690 AC_DEFUN([CF_CHECK_EXTERN_DATA],
692 AC_CACHE_CHECK(if external $1 exists, cf_cv_have_$1,[
702 if test "$cf_cv_have_$1" = yes ; then
703 CF_UPPER(cf_result,have_$1)
704 AC_DEFINE_UNQUOTED($cf_result)
708 dnl ---------------------------------------------------------------------------
709 dnl CF_CHECK_GPM_WGETCH version: 1 updated: 2007/04/28 14:38:06
710 dnl -------------------
711 dnl Check if GPM is already linked with curses. If so - and if the linkage
712 dnl is not "weak" - warn about this because it can create problems linking
713 dnl applications with ncurses.
714 AC_DEFUN([CF_CHECK_GPM_WGETCH],[
715 AC_CHECK_LIB(gpm,Gpm_Wgetch,[
717 AC_CACHE_CHECK(if GPM is weakly bound to curses library, cf_cv_check_gpm_wgetch,[
718 cf_cv_check_gpm_wgetch=unknown
719 if test "$cross_compiling" != yes ; then
721 cat >conftest.$ac_ext <<CF_EOF
726 ${cf_cv_main_return:-return}(0);
731 # This only works if we can look at the symbol table. If a shared
732 # library is stripped for install, we cannot use that. So we're forced
733 # to rely on the static library, noting that some packagers may not
735 LIBS="-static -lgpm -dynamic $LIBS"
736 if AC_TRY_EVAL(ac_compile) ; then
737 if AC_TRY_EVAL(ac_link) ; then
738 cf_cv_check_gpm_wgetch=`nm conftest$ac_exeext | egrep '\<wgetch\>' | egrep '\<[[vVwW]]\>'`
739 test -n "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=yes
740 test -z "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=no
748 if test "$cf_cv_check_gpm_wgetch" != yes ; then
749 AC_MSG_WARN(GPM library is already linked with curses - read the FAQ)
752 dnl ---------------------------------------------------------------------------
753 dnl CF_CPP_PARAM_INIT version: 4 updated: 2001/04/07 22:31:18
754 dnl -----------------
755 dnl Check if the C++ compiler accepts duplicate parameter initialization. This
756 dnl is a late feature for the standard and is not in some recent compilers
758 AC_DEFUN([CF_CPP_PARAM_INIT],
760 if test -n "$CXX"; then
761 AC_CACHE_CHECK(if $CXX accepts parameter initialization,cf_cv_cpp_param_init,[
773 TEST::TEST(int x = 1) // some compilers do not like second initializer
779 [cf_cv_cpp_param_init=yes],
780 [cf_cv_cpp_param_init=no],
781 [cf_cv_cpp_param_init=unknown])
785 test "$cf_cv_cpp_param_init" = yes && AC_DEFINE(CPP_HAS_PARAM_INIT)
787 dnl ---------------------------------------------------------------------------
788 dnl CF_CPP_STATIC_CAST version: 1 updated: 2005/07/23 16:52:43
789 dnl ------------------
790 dnl Check if the C++ compiler accepts static_cast in generics. This appears to
791 dnl not be supported in g++ before 3.0
792 AC_DEFUN([CF_CPP_STATIC_CAST],
794 if test -n "$CXX"; then
796 AC_CACHE_CHECK(if $CXX accepts static_cast,cf_cv_cpp_static_cast,[
804 NCursesPanel(int nlines,
814 template<class T> class NCursesUserPanel : public NCursesPanel
817 NCursesUserPanel (int nlines,
821 const T* p_UserData = static_cast<T*>(0))
822 : NCursesPanel (nlines, ncols, begin_y, begin_x)
825 NCursesUserPanel(const T* p_UserData = static_cast<T*>(0)) : NCursesPanel()
829 virtual ~NCursesUserPanel() {};
832 const char* p_UserData = static_cast<char*>(0)],
833 [cf_cv_cpp_static_cast=yes],
834 [cf_cv_cpp_static_cast=no])
841 test "$cf_cv_cpp_static_cast" = yes && AC_DEFINE(CPP_HAS_STATIC_CAST)
843 dnl ---------------------------------------------------------------------------
844 dnl CF_C_INLINE version: 2 updated: 2007/08/11 14:09:50
846 dnl Check if the C compiler supports "inline".
847 dnl $1 is the name of a shell variable to set if inline is supported
848 dnl $2 is the threshold for gcc 4.x's option controlling maximum inline size
849 AC_DEFUN([CF_C_INLINE],[
852 if test "$ac_cv_c_inline" != no ; then
854 if test "$INTEL_COMPILER" = yes
857 elif test "$GCC" = yes
859 AC_CACHE_CHECK(if gcc supports options to tune inlining,cf_cv_gcc_inline,[
860 cf_save_CFLAGS=$CFLAGS
861 CFLAGS="$CFLAGS --param max-inline-insns-single=$2"
862 AC_TRY_COMPILE([inline int foo(void) { return 1; }],
863 [${cf_cv_main_return:-return} foo()],
864 [cf_cv_gcc_inline=yes],
865 [cf_cv_gcc_inline=no])
866 CFLAGS=$cf_save_CFLAGS
868 if test "$cf_cv_gcc_inline" = yes ; then
869 CF_ADD_CFLAGS([--param max-inline-insns-single=$2])
875 dnl ---------------------------------------------------------------------------
876 dnl CF_DIRNAME version: 4 updated: 2002/12/21 19:25:52
878 dnl "dirname" is not portable, so we fake it with a shell script.
879 AC_DEFUN([CF_DIRNAME],[$1=`echo $2 | sed -e 's%/[[^/]]*$%%'`])dnl
880 dnl ---------------------------------------------------------------------------
881 dnl CF_DIRS_TO_MAKE version: 3 updated: 2002/02/23 20:38:31
883 AC_DEFUN([CF_DIRS_TO_MAKE],
886 for cf_item in $cf_list_models
888 CF_OBJ_SUBDIR($cf_item,cf_subdir)
889 for cf_item2 in $DIRS_TO_MAKE
891 test $cf_item2 = $cf_subdir && break
893 test ".$cf_item2" != ".$cf_subdir" && DIRS_TO_MAKE="$DIRS_TO_MAKE $cf_subdir"
895 for cf_dir in $DIRS_TO_MAKE
897 test ! -d $cf_dir && mkdir $cf_dir
899 AC_SUBST(DIRS_TO_MAKE)
901 dnl ---------------------------------------------------------------------------
902 dnl CF_DISABLE_LEAKS version: 4 updated: 2006/12/16 15:10:42
904 dnl Combine no-leak checks with the libraries or tools that are used for the
906 AC_DEFUN([CF_DISABLE_LEAKS],[
908 AC_REQUIRE([CF_WITH_DMALLOC])
909 AC_REQUIRE([CF_WITH_DBMALLOC])
910 AC_REQUIRE([CF_WITH_VALGRIND])
912 AC_MSG_CHECKING(if you want to perform memory-leak testing)
914 [ --disable-leaks test: free permanent memory, analyze leaks],
916 : ${with_no_leaks:=no})
917 AC_MSG_RESULT($with_no_leaks)
919 if test "$with_no_leaks" = yes ; then
923 dnl ---------------------------------------------------------------------------
924 dnl CF_ERRNO version: 5 updated: 1997/11/30 12:44:39
926 dnl Check if 'errno' is declared in <errno.h>
929 CF_CHECK_ERRNO(errno)
931 dnl ---------------------------------------------------------------------------
932 dnl CF_ETIP_DEFINES version: 3 updated: 2003/03/22 19:13:43
934 dnl Test for conflicting definitions of exception in gcc 2.8.0, etc., between
935 dnl math.h and builtin.h, only for ncurses
936 AC_DEFUN([CF_ETIP_DEFINES],
938 AC_MSG_CHECKING(for special defines needed for etip.h)
939 cf_save_CXXFLAGS="$CXXFLAGS"
941 for cf_math in "" MATH_H
943 for cf_excp in "" MATH_EXCEPTION
945 CXXFLAGS="$cf_save_CXXFLAGS -I${srcdir}/c++ -I${srcdir}/menu -I${srcdir}/include"
946 test -n "$cf_math" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_math}"
947 test -n "$cf_excp" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_excp}"
951 test -n "$cf_math" && AC_DEFINE_UNQUOTED(ETIP_NEEDS_${cf_math})
952 test -n "$cf_excp" && AC_DEFINE_UNQUOTED(ETIP_NEEDS_${cf_excp})
953 cf_result="$cf_math $cf_excp"
958 AC_MSG_RESULT($cf_result)
959 CXXFLAGS="$cf_save_CXXFLAGS"
961 dnl ---------------------------------------------------------------------------
962 dnl CF_FUNC_DLSYM version: 1 updated: 2004/06/16 20:52:45
964 dnl Test for dlsym() and related functions, as well as libdl.
969 AC_DEFUN([CF_FUNC_DLSYM],[
971 AC_CHECK_FUNC(dlsym,cf_have_dlsym=yes,[
974 AC_CHECK_LIB(dl,dlsym,[
976 cf_have_libdl=yes])])
978 if test "$cf_have_dlsym" = yes ; then
979 test "$cf_have_libdl" = yes && LIBS="-ldl $LIBS"
981 AC_MSG_CHECKING(whether able to link to dl*() functions)
982 AC_TRY_LINK([#include <dlfcn.h>],[
984 if ((obj = dlopen("filename", 0)) != 0) {
985 if (dlsym(obj, "symbolname") == 0) {
989 AC_DEFINE(HAVE_LIBDL)],[
990 AC_MSG_ERROR(Cannot link test program for libdl)])
993 AC_MSG_ERROR(Cannot find dlsym function)
996 dnl ---------------------------------------------------------------------------
997 dnl CF_FUNC_MEMMOVE version: 7 updated: 2006/12/16 12:33:30
999 dnl Check for memmove, or a bcopy that can handle overlapping copy. If neither
1000 dnl is found, add our own version of memmove to the list of objects.
1001 AC_DEFUN([CF_FUNC_MEMMOVE],
1003 AC_CHECK_FUNC(memmove,,[
1004 AC_CHECK_FUNC(bcopy,[
1005 AC_CACHE_CHECK(if bcopy does overlapping moves,cf_cv_good_bcopy,[
1008 static char data[] = "abcdefghijklmnopqrstuwwxyz";
1010 bcopy(data, temp, sizeof(data));
1011 bcopy(temp+10, temp, 15);
1012 bcopy(temp+5, temp+15, 10);
1013 ${cf_cv_main_return:-return} (strcmp(temp, "klmnopqrstuwwxypqrstuwwxyz"));
1016 [cf_cv_good_bcopy=yes],
1017 [cf_cv_good_bcopy=no],
1018 [cf_cv_good_bcopy=unknown])
1020 ],[cf_cv_good_bcopy=no])
1021 if test "$cf_cv_good_bcopy" = yes ; then
1022 AC_DEFINE(USE_OK_BCOPY)
1024 AC_DEFINE(USE_MY_MEMMOVE)
1027 dnl ---------------------------------------------------------------------------
1028 dnl CF_FUNC_NANOSLEEP version: 3 updated: 2006/12/16 12:33:30
1029 dnl -----------------
1030 dnl Check for existence of workable nanosleep() function. Some systems, e.g.,
1031 dnl AIX 4.x, provide a non-working version.
1032 AC_DEFUN([CF_FUNC_NANOSLEEP],[
1033 AC_CACHE_CHECK(if nanosleep really works,cf_cv_func_nanosleep,[
1039 #ifdef HAVE_SYS_TIME_H
1040 #include <sys/time.h>
1044 struct timespec ts1, ts2;
1047 ts1.tv_nsec = 750000000;
1051 code = nanosleep(&ts1, &ts2); /* on failure errno is ENOSYS. */
1052 ${cf_cv_main_return:-return}(code != 0);
1055 [cf_cv_func_nanosleep=yes],
1056 [cf_cv_func_nanosleep=no],
1057 [cf_cv_func_nanosleep=unknown])])
1059 test "$cf_cv_func_nanosleep" = "yes" && AC_DEFINE(HAVE_NANOSLEEP)
1061 dnl ---------------------------------------------------------------------------
1062 dnl CF_FUNC_OPENPTY version: 2 updated: 2008/04/12 19:49:01
1064 dnl Check for openpty() function, along with <pty.h> header. It may need the
1065 dnl "util" library as well.
1066 AC_DEFUN([CF_FUNC_OPENPTY],
1068 AC_CHECK_LIB(util,openpty,cf_cv_lib_util=yes,cf_cv_lib_util=no)
1069 AC_CACHE_CHECK(for openpty header,cf_cv_func_openpty,[
1070 cf_save_LIBS="$LIBS"
1071 test $cf_cv_lib_util = yes && LIBS="-lutil $LIBS"
1072 for cf_header in pty.h libutil.h util.h
1075 #include <$cf_header>
1077 int x = openpty((int *)0, (int *)0, (char *)0,
1078 (struct termios *)0, (struct winsize *)0);
1080 cf_cv_func_openpty=$cf_header
1083 cf_cv_func_openpty=no
1086 LIBS="$cf_save_LIBS"
1089 dnl ---------------------------------------------------------------------------
1090 dnl CF_FUNC_POLL version: 4 updated: 2006/12/16 12:33:30
1092 dnl See if the poll function really works. Some platforms have poll(), but
1093 dnl it does not work for terminals or files.
1094 AC_DEFUN([CF_FUNC_POLL],[
1095 AC_CACHE_CHECK(if poll really works,cf_cv_working_poll,[
1101 #include <sys/poll.h>
1104 struct pollfd myfds;
1108 myfds.events = POLLIN;
1110 ret = poll(&myfds, 1, 100);
1111 ${cf_cv_main_return:-return}(ret != 0);
1113 [cf_cv_working_poll=yes],
1114 [cf_cv_working_poll=no],
1115 [cf_cv_working_poll=unknown])])
1116 test "$cf_cv_working_poll" = "yes" && AC_DEFINE(HAVE_WORKING_POLL)
1118 dnl ---------------------------------------------------------------------------
1119 dnl CF_FUNC_TERMIOS version: 2 updated: 2000/07/22 23:37:24
1121 dnl Some old/broken variations define tcgetattr() only as a macro in
1123 AC_DEFUN([CF_FUNC_TERMIOS],[
1124 AC_REQUIRE([CF_STRUCT_TERMIOS])
1125 AC_CACHE_CHECK(for tcgetattr, cf_cv_have_tcgetattr,[
1127 #include <sys/types.h>
1128 #ifdef HAVE_UNISTD_H
1131 #ifdef HAVE_TERMIOS_H
1132 #include <termios.h>
1133 #define TTY struct termios
1135 #ifdef HAVE_TERMIO_H
1137 #define TTY struct termio
1142 tcgetattr(1, &foo);],
1143 [cf_cv_have_tcgetattr=yes],
1144 [cf_cv_have_tcgetattr=no])])
1145 test "$cf_cv_have_tcgetattr" = yes && AC_DEFINE(HAVE_TCGETATTR)
1147 dnl ---------------------------------------------------------------------------
1148 dnl CF_FUNC_VSSCANF version: 3 updated: 2001/12/19 00:50:10
1150 dnl Check for vsscanf() function, which is in c9x but generally not in earlier
1151 dnl versions of C. It is in the GNU C library, and can often be simulated by
1152 dnl other functions.
1153 AC_DEFUN([CF_FUNC_VSSCANF],
1155 AC_CACHE_CHECK(for vsscanf function or workaround,cf_cv_func_vsscanf,[
1158 #include <stdio.h>],[
1160 vsscanf("from", "%d", ap)],[cf_cv_func_vsscanf=vsscanf],[
1163 #include <stdio.h>],[
1167 strbuf._flag = _IOREAD;
1168 strbuf._ptr = strbuf._base = (unsigned char *) str;
1169 strbuf._cnt = strlen(str);
1170 strbuf._file = _NFILE;
1171 return (vfscanf(&strbuf, "%d", ap))],[cf_cv_func_vsscanf=vfscanf],[
1174 #include <stdio.h>],[
1178 strbuf._flag = _IOREAD;
1179 strbuf._ptr = strbuf._base = (unsigned char *) str;
1180 strbuf._cnt = strlen(str);
1181 strbuf._file = _NFILE;
1182 return (_doscan(&strbuf, "%d", ap))],[cf_cv_func_vsscanf=_doscan],[
1183 cf_cv_func_vsscanf=no])])])])
1185 case $cf_cv_func_vsscanf in #(vi
1186 vsscanf) AC_DEFINE(HAVE_VSSCANF);; #(vi
1187 vfscanf) AC_DEFINE(HAVE_VFSCANF);; #(vi
1188 _doscan) AC_DEFINE(HAVE__DOSCAN);;
1192 dnl ---------------------------------------------------------------------------
1193 dnl CF_GCC_ATTRIBUTES version: 11 updated: 2007/07/29 09:55:12
1194 dnl -----------------
1195 dnl Test for availability of useful gcc __attribute__ directives to quiet
1196 dnl compiler warnings. Though useful, not all are supported -- and contrary
1197 dnl to documentation, unrecognized directives cause older compilers to barf.
1198 AC_DEFUN([CF_GCC_ATTRIBUTES],
1200 if test "$GCC" = yes
1202 cat > conftest.i <<EOF
1204 #define GCC_PRINTF 0
1209 #ifndef GCC_NORETURN
1210 #define GCC_NORETURN /* nothing */
1213 #define GCC_UNUSED /* nothing */
1216 if test "$GCC" = yes
1218 AC_CHECKING([for $CC __attribute__ directives])
1219 cat > conftest.$ac_ext <<EOF
1220 #line __oline__ "${as_me-configure}"
1221 #include "confdefs.h"
1222 #include "conftest.h"
1223 #include "conftest.i"
1225 #define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
1227 #define GCC_PRINTFLIKE(fmt,var) /*nothing*/
1230 #define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
1232 #define GCC_SCANFLIKE(fmt,var) /*nothing*/
1234 extern void wow(char *,...) GCC_SCANFLIKE(1,2);
1235 extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
1236 extern void foo(void) GCC_NORETURN;
1237 int main(int argc GCC_UNUSED, char *argv[[]] GCC_UNUSED) { return 0; }
1239 for cf_attribute in scanf printf unused noreturn
1241 CF_UPPER(cf_ATTRIBUTE,$cf_attribute)
1242 cf_directive="__attribute__(($cf_attribute))"
1243 echo "checking for $CC $cf_directive" 1>&AC_FD_CC
1244 case $cf_attribute in
1246 cat >conftest.h <<EOF
1247 #define GCC_$cf_ATTRIBUTE 1
1251 cat >conftest.h <<EOF
1252 #define GCC_$cf_ATTRIBUTE $cf_directive
1256 if AC_TRY_EVAL(ac_compile); then
1257 test -n "$verbose" && AC_MSG_RESULT(... $cf_attribute)
1258 cat conftest.h >>confdefs.h
1262 fgrep define conftest.i >>confdefs.h
1267 dnl ---------------------------------------------------------------------------
1268 dnl CF_GCC_VERSION version: 4 updated: 2005/08/27 09:53:42
1270 dnl Find version of gcc
1271 AC_DEFUN([CF_GCC_VERSION],[
1272 AC_REQUIRE([AC_PROG_CC])
1274 if test "$GCC" = yes ; then
1275 AC_MSG_CHECKING(version of $CC)
1276 GCC_VERSION="`${CC} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
1277 test -z "$GCC_VERSION" && GCC_VERSION=unknown
1278 AC_MSG_RESULT($GCC_VERSION)
1281 dnl ---------------------------------------------------------------------------
1282 dnl CF_GCC_WARNINGS version: 23 updated: 2008/07/26 17:54:02
1284 dnl Check if the compiler supports useful warning options. There's a few that
1285 dnl we don't use, simply because they're too noisy:
1287 dnl -Wconversion (useful in older versions of gcc, but not in gcc 2.7.x)
1288 dnl -Wredundant-decls (system headers make this too noisy)
1289 dnl -Wtraditional (combines too many unrelated messages, only a few useful)
1290 dnl -Wwrite-strings (too noisy, but should review occasionally). This
1291 dnl is enabled for ncurses using "--enable-const".
1295 dnl $1 is an optional list of gcc warning flags that a particular
1296 dnl application might want to use, e.g., "no-unused" for
1299 dnl If $with_ext_const is "yes", add a check for -Wwrite-strings
1301 AC_DEFUN([CF_GCC_WARNINGS],
1303 AC_REQUIRE([CF_GCC_VERSION])
1304 CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
1306 cat > conftest.$ac_ext <<EOF
1307 #line __oline__ "${as_me-configure}"
1308 int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
1311 if test "$INTEL_COMPILER" = yes
1313 # The "-wdXXX" options suppress warnings:
1314 # remark #1419: external declaration in primary source file
1315 # remark #1682: implicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
1316 # remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
1317 # remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
1318 # remark #193: zero used for undefined preprocessing identifier
1319 # remark #593: variable "curs_sb_left_arrow" was set but never used
1320 # remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
1321 # remark #869: parameter "tw" was never referenced
1322 # remark #981: operands are evaluated in unspecified order
1323 # warning #269: invalid format string conversion
1325 AC_CHECKING([for $CC warning options])
1326 cf_save_CFLAGS="$CFLAGS"
1327 EXTRA_CFLAGS="-Wall"
1340 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
1341 if AC_TRY_EVAL(ac_compile); then
1342 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1343 EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
1346 CFLAGS="$cf_save_CFLAGS"
1348 elif test "$GCC" = yes
1350 AC_CHECKING([for $CC warning options])
1351 cf_save_CFLAGS="$CFLAGS"
1352 EXTRA_CFLAGS="-W -Wall"
1354 test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
1356 Wbad-function-cast \
1360 Wmissing-declarations \
1361 Wmissing-prototypes \
1365 Wstrict-prototypes \
1366 Wundef $cf_warn_CONST $1
1368 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
1369 if AC_TRY_EVAL(ac_compile); then
1370 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1371 case $cf_opt in #(vi
1373 CPPFLAGS="$CPPFLAGS -DXTSTRINGDEFINES"
1376 case $GCC_VERSION in
1378 CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
1383 EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
1386 CFLAGS="$cf_save_CFLAGS"
1390 AC_SUBST(EXTRA_CFLAGS)
1392 dnl ---------------------------------------------------------------------------
1393 dnl CF_GNAT_TRY_LINK version: 1 updated: 2004/08/21 19:02:08
1394 dnl ----------------
1395 dnl Verify that a test program compiles/links with GNAT.
1396 dnl $cf_ada_make is set to the program that compiles/links
1397 dnl $ADAFLAGS may be set to the GNAT flags.
1399 dnl $1 is the text of the spec
1400 dnl $2 is the text of the body
1401 dnl $3 is the shell command to execute if successful
1402 dnl $4 is the shell command to execute if not successful
1403 AC_DEFUN([CF_GNAT_TRY_LINK],
1406 cat >>conftest.ads <<CF_EOF
1409 cat >>conftest.adb <<CF_EOF
1412 if ( $cf_ada_make $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
1413 ifelse($3,, :,[ $3])
1419 dnl ---------------------------------------------------------------------------
1420 dnl CF_GNAT_TRY_RUN version: 3 updated: 2004/08/21 19:02:08
1422 dnl Verify that a test program compiles and runs with GNAT
1423 dnl $cf_ada_make is set to the program that compiles/links
1424 dnl $ADAFLAGS may be set to the GNAT flags.
1426 dnl $1 is the text of the spec
1427 dnl $2 is the text of the body
1428 dnl $3 is the shell command to execute if successful
1429 dnl $4 is the shell command to execute if not successful
1430 AC_DEFUN([CF_GNAT_TRY_RUN],
1433 cat >>conftest.ads <<CF_EOF
1436 cat >>conftest.adb <<CF_EOF
1439 if ( $cf_ada_make $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
1440 if ( ./conftest 1>&AC_FD_CC 2>&1 ) ; then
1441 ifelse($3,, :,[ $3])
1450 dnl ---------------------------------------------------------------------------
1451 dnl CF_GNAT_VERSION version: 12 updated: 2006/10/14 15:23:15
1453 dnl Verify version of GNAT.
1454 AC_DEFUN([CF_GNAT_VERSION],
1456 AC_MSG_CHECKING(for gnat version)
1457 cf_gnat_version=`${cf_ada_make-gnatmake} -v 2>&1 | grep '[[0-9]].[[0-9]][[0-9]]*' |\
1458 sed -e '2,$d' -e 's/[[^0-9 \.]]//g' -e 's/^[[ ]]*//' -e 's/ .*//'`
1459 AC_MSG_RESULT($cf_gnat_version)
1461 case $cf_gnat_version in
1462 3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*)
1463 cf_cv_prog_gnat_correct=yes
1465 *) echo Unsupported GNAT version $cf_gnat_version. Required is 3.11 or better. Disabling Ada95 binding.
1466 cf_cv_prog_gnat_correct=no
1469 case $cf_gnat_version in
1470 3.[[1-9]]*|[[4-9]].*)
1471 cf_compile_generics=generics
1472 cf_generic_objects="\${GENOBJS}"
1474 *) cf_compile_generics=
1479 dnl ---------------------------------------------------------------------------
1480 dnl CF_GNU_SOURCE version: 6 updated: 2005/07/09 13:23:07
1482 dnl Check if we must define _GNU_SOURCE to get a reasonable value for
1483 dnl _XOPEN_SOURCE, upon which many POSIX definitions depend. This is a defect
1484 dnl (or misfeature) of glibc2, which breaks portability of many applications,
1485 dnl since it is interwoven with GNU extensions.
1487 dnl Well, yes we could work around it...
1488 AC_DEFUN([CF_GNU_SOURCE],
1490 AC_CACHE_CHECK(if we must define _GNU_SOURCE,cf_cv_gnu_source,[
1491 AC_TRY_COMPILE([#include <sys/types.h>],[
1492 #ifndef _XOPEN_SOURCE
1495 [cf_cv_gnu_source=no],
1496 [cf_save="$CPPFLAGS"
1497 CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
1498 AC_TRY_COMPILE([#include <sys/types.h>],[
1499 #ifdef _XOPEN_SOURCE
1502 [cf_cv_gnu_source=no],
1503 [cf_cv_gnu_source=yes])
1507 test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
1509 dnl ---------------------------------------------------------------------------
1510 dnl CF_GPP_LIBRARY version: 8 updated: 2003/02/02 01:41:46
1512 dnl If we're trying to use g++, test if libg++ is installed (a rather common
1513 dnl problem :-). If we have the compiler but no library, we'll be able to
1514 dnl configure, but won't be able to build the c++ demo program.
1515 AC_DEFUN([CF_GPP_LIBRARY],
1517 cf_cxx_library=unknown
1518 case $cf_cv_system_name in #(vi
1526 if test "$GXX" = yes; then
1527 AC_MSG_CHECKING([for lib$cf_gpp_libname])
1529 LIBS="$LIBS -l$cf_gpp_libname"
1531 #include <$cf_gpp_libname/builtin.h>
1533 [two_arg_error_handler_t foo2 = lib_error_handler],
1535 CXXLIBS="$CXXLIBS -l$cf_gpp_libname"
1536 if test "$cf_gpp_libname" = cpp ; then
1537 AC_DEFINE(HAVE_GPP_BUILTIN_H)
1539 AC_DEFINE(HAVE_GXX_BUILTIN_H)
1542 #include <builtin.h>
1544 [two_arg_error_handler_t foo2 = lib_error_handler],
1546 CXXLIBS="$CXXLIBS -l$cf_gpp_libname"
1547 AC_DEFINE(HAVE_BUILTIN_H)],
1548 [cf_cxx_library=no])])
1550 AC_MSG_RESULT($cf_cxx_library)
1553 dnl ---------------------------------------------------------------------------
1554 dnl CF_GXX_VERSION version: 5 updated: 2005/08/27 09:53:42
1556 dnl Check for version of g++
1557 AC_DEFUN([CF_GXX_VERSION],[
1558 AC_REQUIRE([AC_PROG_CPP])
1560 if test "$GXX" = yes; then
1561 AC_MSG_CHECKING(version of g++)
1562 GXX_VERSION="`${CXX-g++} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
1563 test -z "$GXX_VERSION" && GXX_VERSION=unknown
1564 AC_MSG_RESULT($GXX_VERSION)
1567 dnl ---------------------------------------------------------------------------
1568 dnl CF_GXX_WARNINGS version: 5 updated: 2005/08/13 14:54:38
1570 dnl Check if the compiler supports useful warning options.
1572 dnl Most of gcc's options apply to g++, except:
1573 dnl -Wbad-function-cast
1574 dnl -Wmissing-declarations
1575 dnl -Wnested-externs
1577 dnl Omit a few (for now):
1581 dnl $1 is an optional list of g++ warning flags that a particular
1582 dnl application might want to use, e.g., "no-unused" for
1585 dnl If $with_ext_const is "yes", add a check for -Wwrite-strings
1587 AC_DEFUN([CF_GXX_WARNINGS],
1590 CF_INTEL_COMPILER(GXX,INTEL_CPLUSPLUS,CXXFLAGS)
1592 AC_REQUIRE([CF_GXX_VERSION])
1597 cat > conftest.$ac_ext <<EOF
1598 #line __oline__ "configure"
1599 int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
1602 if test "$INTEL_CPLUSPLUS" = yes
1604 # The "-wdXXX" options suppress warnings:
1605 # remark #1419: external declaration in primary source file
1606 # remark #1682: implicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
1607 # remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
1608 # remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
1609 # remark #193: zero used for undefined preprocessing identifier
1610 # remark #593: variable "curs_sb_left_arrow" was set but never used
1611 # remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
1612 # remark #869: parameter "tw" was never referenced
1613 # remark #981: operands are evaluated in unspecified order
1614 # warning #269: invalid format string conversion
1616 AC_CHECKING([for $CC warning options])
1617 cf_save_CXXFLAGS="$CXXFLAGS"
1618 EXTRA_CXXFLAGS="-Wall"
1631 CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -$cf_opt"
1632 if AC_TRY_EVAL(ac_compile); then
1633 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1634 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
1637 CXXFLAGS="$cf_save_CXXFLAGS"
1639 elif test "$GXX" = yes
1641 AC_CHECKING([for $CXX warning options])
1642 cf_save_CXXFLAGS="$CXXFLAGS"
1643 EXTRA_CXXFLAGS="-W -Wall"
1644 cf_gxx_extra_warnings=""
1645 test "$with_ext_const" = yes && cf_gxx_extra_warnings="Wwrite-strings"
1646 case "$GCC_VERSION" in
1650 cf_gxx_extra_warnings="$cf_gxx_extra_warnings Weffc++"
1656 Woverloaded-virtual \
1662 Wmissing-prototypes \
1665 Wstrict-prototypes \
1666 Wundef $cf_gxx_extra_warnings $1
1668 CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -Werror -$cf_opt"
1669 if AC_TRY_EVAL(ac_compile); then
1670 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1671 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
1673 test -n "$verbose" && AC_MSG_RESULT(... no -$cf_opt)
1676 CXXFLAGS="$cf_save_CXXFLAGS"
1681 AC_SUBST(EXTRA_CXXFLAGS)
1683 dnl ---------------------------------------------------------------------------
1684 dnl CF_HASHED_DB version: 3 updated: 2007/11/24 17:43:37
1686 dnl Look for an instance of the Berkeley hashed database.
1688 dnl $1 = optional parameter, to specify install-prefix for the database.
1689 AC_DEFUN([CF_HASHED_DB],
1696 if test -d "$1" ; then
1697 CF_ADD_INCDIR($1/include)
1698 CF_ADD_LIBDIR($1/lib)
1702 AC_CHECK_HEADER(db.h,[
1703 CF_HASHED_DB_VERSION
1704 if test "$cf_cv_hashed_db_version" = unknown ; then
1705 AC_MSG_ERROR(Cannot determine version of db)
1708 if test "$cf_cv_hashed_db_libs" = unknown ; then
1709 AC_MSG_ERROR(Cannot determine library for db)
1710 elif test "$cf_cv_hashed_db_libs" != default ; then
1711 LIBS="-l$cf_cv_hashed_db_libs $LIBS"
1715 AC_MSG_ERROR(Cannot find db.h)
1718 dnl ---------------------------------------------------------------------------
1719 dnl CF_HASHED_DB_LIBS version: 8 updated: 2008/08/04 06:18:06
1720 dnl -----------------
1721 dnl Given that we have the header and version for hashed database, find the
1722 dnl library information.
1723 AC_DEFUN([CF_HASHED_DB_LIBS],
1725 AC_CACHE_CHECK(for db libraries, cf_cv_hashed_db_libs,[
1726 cf_cv_hashed_db_libs=unknown
1727 for cf_db_libs in "" db$cf_cv_hashed_db_version db-$cf_cv_hashed_db_version db ''
1729 cf_save_libs="$LIBS"
1730 if test -n "$cf_db_libs"; then
1731 LIBS="-l$cf_db_libs $LIBS"
1733 CF_MSG_LOG(checking for library "$cf_db_libs")
1735 $ac_includes_default
1738 char *path = "/tmp/foo";
1739 #ifdef DB_VERSION_MAJOR
1740 #if DB_VERSION_MAJOR >= 4
1742 db_create(&result, NULL, 0);
1743 result->open(result,
1750 #elif DB_VERSION_MAJOR >= 3
1752 db_create(&result, NULL, 0);
1753 result->open(result,
1759 #elif DB_VERSION_MAJOR >= 2
1768 #endif /* DB_VERSION_MAJOR */
1770 DB *result = dbopen(path,
1776 ${cf_cv_main_return:-return}(result != 0)
1778 if test -n "$cf_db_libs" ; then
1779 cf_cv_hashed_db_libs=$cf_db_libs
1781 cf_cv_hashed_db_libs=default
1783 LIBS="$cf_save_libs"
1786 LIBS="$cf_save_libs"
1790 dnl ---------------------------------------------------------------------------
1791 dnl CF_HASHED_DB_VERSION version: 3 updated: 2007/12/01 15:01:37
1792 dnl --------------------
1793 dnl Given that we have the header file for hashed database, find the version
1795 AC_DEFUN([CF_HASHED_DB_VERSION],
1797 AC_CACHE_CHECK(for version of db, cf_cv_hashed_db_version,[
1798 cf_cv_hashed_db_version=unknown
1800 for cf_db_version in 1 2 3 4 5
1802 CF_MSG_LOG(checking for db version $cf_db_version)
1804 $ac_includes_default
1807 #ifdef DB_VERSION_MAJOR
1808 /* db2 (DB_VERSION_MAJOR=2) has also DB_VERSION_MINOR, tested with 7 */
1809 #if $cf_db_version == DB_VERSION_MAJOR
1815 #if $cf_db_version == 1
1816 /* ok: assuming this is DB 1.8.5 */
1822 cf_cv_hashed_db_version=$cf_db_version
1828 dnl ---------------------------------------------------------------------------
1829 dnl CF_HELP_MESSAGE version: 3 updated: 1998/01/14 10:56:23
1831 dnl Insert text into the help-message, for readability, from AC_ARG_WITH.
1832 AC_DEFUN([CF_HELP_MESSAGE],
1833 [AC_DIVERT_HELP([$1])dnl
1835 dnl ---------------------------------------------------------------------------
1836 dnl CF_INCLUDE_DIRS version: 5 updated: 2006/10/14 15:23:15
1838 dnl Construct the list of include-options according to whether we're building
1839 dnl in the source directory or using '--srcdir=DIR' option. If we're building
1840 dnl with gcc, don't append the includedir if it happens to be /usr/include,
1841 dnl since that usually breaks gcc's shadow-includes.
1842 AC_DEFUN([CF_INCLUDE_DIRS],
1844 CPPFLAGS="-I. -I../include $CPPFLAGS"
1845 if test "$srcdir" != "."; then
1846 CPPFLAGS="-I\${srcdir}/../include $CPPFLAGS"
1848 if test "$GCC" != yes; then
1849 CPPFLAGS="$CPPFLAGS -I\${includedir}"
1850 elif test "$includedir" != "/usr/include"; then
1851 if test "$includedir" = '${prefix}/include' ; then
1852 if test $prefix != /usr ; then
1853 CPPFLAGS="$CPPFLAGS -I\${includedir}"
1856 CPPFLAGS="$CPPFLAGS -I\${includedir}"
1861 dnl ---------------------------------------------------------------------------
1862 dnl CF_INTEL_COMPILER version: 3 updated: 2005/08/06 18:37:29
1863 dnl -----------------
1864 dnl Check if the given compiler is really the Intel compiler for Linux. It
1865 dnl tries to imitate gcc, but does not return an error when it finds a mismatch
1866 dnl between prototypes, e.g., as exercised by CF_MISSING_CHECK.
1868 dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
1869 dnl ensure that it is not mistaken for gcc/g++. It is normally invoked from
1870 dnl the wrappers for gcc and g++ warnings.
1872 dnl $1 = GCC (default) or GXX
1873 dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS
1874 dnl $3 = CFLAGS (default) or CXXFLAGS
1875 AC_DEFUN([CF_INTEL_COMPILER],[
1876 ifelse($2,,INTEL_COMPILER,[$2])=no
1878 if test "$ifelse($1,,[$1],GCC)" = yes ; then
1881 AC_MSG_CHECKING(if this is really Intel ifelse($1,GXX,C++,C) compiler)
1882 cf_save_CFLAGS="$ifelse($3,,CFLAGS,[$3])"
1883 ifelse($3,,CFLAGS,[$3])="$ifelse($3,,CFLAGS,[$3]) -no-gcc"
1885 #ifdef __INTEL_COMPILER
1889 ],[ifelse($2,,INTEL_COMPILER,[$2])=yes
1890 cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
1892 ifelse($3,,CFLAGS,[$3])="$cf_save_CFLAGS"
1893 AC_MSG_RESULT($ifelse($2,,INTEL_COMPILER,[$2]))
1898 dnl ---------------------------------------------------------------------------
1899 dnl CF_ISASCII version: 3 updated: 2000/08/12 23:18:52
1901 dnl Check if we have either a function or macro for 'isascii()'.
1902 AC_DEFUN([CF_ISASCII],
1904 AC_MSG_CHECKING(for isascii)
1905 AC_CACHE_VAL(cf_cv_have_isascii,[
1906 AC_TRY_LINK([#include <ctype.h>],[int x = isascii(' ')],
1907 [cf_cv_have_isascii=yes],
1908 [cf_cv_have_isascii=no])
1910 AC_MSG_RESULT($cf_cv_have_isascii)
1911 test "$cf_cv_have_isascii" = yes && AC_DEFINE(HAVE_ISASCII)
1913 dnl ---------------------------------------------------------------------------
1914 dnl CF_LARGEFILE version: 7 updated: 2007/06/02 11:58:50
1916 dnl Add checks for large file support.
1917 AC_DEFUN([CF_LARGEFILE],[
1918 ifdef([AC_FUNC_FSEEKO],[
1920 if test "$enable_largefile" != no ; then
1923 # Normally we would collect these definitions in the config.h,
1924 # but (like _XOPEN_SOURCE), some environments rely on having these
1925 # defined before any of the system headers are included. Another
1926 # case comes up with C++, e.g., on AIX the compiler compiles the
1927 # header files by themselves before looking at the body files it is
1928 # told to compile. For ncurses, those header files do not include
1930 test "$ac_cv_sys_large_files" != no && CPPFLAGS="$CPPFLAGS -D_LARGE_FILES "
1931 test "$ac_cv_sys_largefile_source" != no && CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE "
1932 test "$ac_cv_sys_file_offset_bits" != no && CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits "
1934 AC_CACHE_CHECK(whether to use struct dirent64, cf_cv_struct_dirent64,[
1936 #include <sys/types.h>
1939 /* if transitional largefile support is setup, this is true */
1940 extern struct dirent64 * readdir(DIR *);
1941 struct dirent64 *x = readdir((DIR *)0);
1942 struct dirent *y = readdir((DIR *)0);
1945 [cf_cv_struct_dirent64=yes],
1946 [cf_cv_struct_dirent64=no])
1948 test "$cf_cv_struct_dirent64" = yes && AC_DEFINE(HAVE_STRUCT_DIRENT64)
1952 dnl ---------------------------------------------------------------------------
1953 dnl CF_LDFLAGS_STATIC version: 3 updated: 2008/07/05 13:56:40
1954 dnl -----------------
1955 dnl Check for compiler/linker flags used to temporarily force usage of static
1956 dnl libraries. This depends on the compiler and platform. Use this to help
1957 dnl ensure that the linker picks up a given library based on its position in
1958 dnl the list of linker options and libraries.
1959 AC_DEFUN([CF_LDFLAGS_STATIC],[
1961 if test "$GCC" = yes ; then
1962 case $cf_cv_system_name in #(
1963 aix[[45]]*) #( gcc 4.2.4 linkage on AIX is broken
1967 *) #( normally, except when broken
1968 LDFLAGS_STATIC=-static
1969 LDFLAGS_SHARED=-dynamic
1973 case $cf_cv_system_name in #(
1974 aix[[45]]*) #( from ld manpage
1975 LDFLAGS_STATIC=-bstatic
1976 LDFLAGS_SHARED=-bdynamic
1978 hpux*) #( from ld manpage for hpux10.20, hpux11.11
1979 # We could also use just "archive" and "shared".
1980 LDFLAGS_STATIC=-Wl,-a,archive_shared
1981 LDFLAGS_SHARED=-Wl,-a,shared_archive
1983 irix*) #( from ld manpage IRIX64
1984 LDFLAGS_STATIC=-Bstatic
1985 LDFLAGS_SHARED=-Bdynamic
1987 osf[[45]]*) #( from ld manpage osf4.0d, osf5.1
1988 # alternative "-oldstyle_liblookup" (not in cc manpage)
1989 LDFLAGS_STATIC=-noso
1990 LDFLAGS_SHARED=-so_archive
1993 LDFLAGS_STATIC=-Bstatic
1994 LDFLAGS_SHARED=-Bdynamic
1999 AC_SUBST(LDFLAGS_STATIC)
2000 AC_SUBST(LDFLAGS_SHARED)
2002 dnl ---------------------------------------------------------------------------
2003 dnl CF_LIBUTF8 version: 2 updated: 2002/01/19 22:51:32
2005 dnl Check for libutf8
2006 AC_DEFUN([CF_LIBUTF8],
2008 AC_CACHE_CHECK(for putwc in libutf8,cf_cv_libutf8,[
2009 cf_save_LIBS="$LIBS"
2012 #include <libutf8.h>],[putwc(0,0);],
2013 [cf_cv_libutf8=yes],
2015 LIBS="$cf_save_LIBS"
2018 if test "$cf_cv_libutf8" = yes ; then
2019 AC_DEFINE(HAVE_LIBUTF8_H)
2023 dnl ---------------------------------------------------------------------------
2024 dnl CF_LIB_PREFIX version: 7 updated: 2001/01/12 01:23:48
2026 dnl Compute the library-prefix for the given host system
2027 dnl $1 = variable to set
2028 AC_DEFUN([CF_LIB_PREFIX],
2030 case $cf_cv_system_name in
2031 OS/2*) LIB_PREFIX='' ;;
2032 os2*) LIB_PREFIX='' ;;
2033 *) LIB_PREFIX='lib' ;;
2035 ifelse($1,,,[$1=$LIB_PREFIX])
2036 AC_SUBST(LIB_PREFIX)
2038 dnl ---------------------------------------------------------------------------
2039 dnl CF_LIB_RULES version: 50 updated: 2007/03/24 18:26:59
2041 dnl Append definitions and rules for the given models to the subdirectory
2042 dnl Makefiles, and the recursion rule for the top-level Makefile. If the
2043 dnl subdirectory is a library-source directory, modify the LIBS_TO_MAKE list in
2044 dnl the corresponding makefile to list the models that we'll generate.
2046 dnl For shared libraries, make a list of symbolic links to construct when
2047 dnl generating each library. The convention used for Linux is the simplest
2050 dnl lib<name>.so.<major> ->
2051 dnl lib<name>.so.<maj>.<minor>
2052 AC_DEFUN([CF_LIB_RULES],
2054 CF_LIB_PREFIX(cf_prefix)
2055 AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
2056 for cf_dir in $SRC_SUBDIRS
2058 if test ! -d $srcdir/$cf_dir ; then
2060 elif test -f $srcdir/$cf_dir/modules; then
2064 for cf_item in $cf_LIST_MODELS
2066 CF_LIB_SUFFIX($cf_item,cf_suffix)
2067 if test $cf_item = shared ; then
2068 if test "$cf_cv_do_symlinks" = yes ; then
2069 case "$cf_cv_shlib_version" in #(vi
2071 case "$cf_cv_system_name" in #(vi
2073 case .${LIB_SUFFIX} in
2075 cf_suffix=`echo $cf_suffix | sed 's/^w//'`
2076 cf_suffix=w'.${REL_VERSION}'"$cf_suffix"
2079 cf_suffix='.${REL_VERSION}'"$cf_suffix"
2083 *) cf_suffix="$cf_suffix"'.${REL_VERSION}' ;;
2087 case "$cf_cv_system_name" in #(vi
2089 case .${LIB_SUFFIX} in
2091 cf_suffix=`echo $cf_suffix | sed 's/^w//'`
2092 cf_suffix=w'.${ABI_VERSION}'"$cf_suffix"
2095 cf_suffix='.${ABI_VERSION}'"$cf_suffix"
2099 *) cf_suffix="$cf_suffix"'.${ABI_VERSION}' ;;
2104 # cygwin needs import library, and has unique naming convention
2105 # use autodetected ${cf_prefix} for import lib and static lib, but
2106 # use 'cyg' prefix for shared lib.
2107 if test $cf_cv_shlib_version = cygdll ; then
2108 LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/cyg${cf_dir}\${ABI_VERSION}.dll"
2112 LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/${cf_prefix}${cf_dir}${cf_suffix}"
2115 if test $cf_dir = ncurses ; then
2116 cf_subsets="$LIB_SUBSETS"
2117 cf_r_parts="$cf_subsets"
2119 while test -n "$cf_r_parts"
2121 cf_l_parts=`echo "$cf_r_parts" |sed -e 's/ .*$//'`
2122 cf_r_parts=`echo "$cf_r_parts" |sed -e 's/^[[^ ]]* //'`
2123 if test "$cf_l_parts" != "$cf_r_parts" ; then
2124 case $cf_l_parts in #(vi
2126 cf_item=`echo $LIBS_TO_MAKE |sed -e s%${LIB_NAME}${LIB_SUFFIX}%${TINFO_LIB_SUFFIX}%g`
2129 cf_item=`echo $LIBS_TO_MAKE |sed -e s%${LIB_NAME}${LIB_SUFFIX}%${TICS_LIB_SUFFIX}%g`
2135 LIBS_TO_MAKE="$cf_item $LIBS_TO_MAKE"
2141 cf_subsets=`echo "$LIB_SUBSETS" | sed -e 's/^termlib.* //'`
2144 sed -e "s%@LIBS_TO_MAKE@%$LIBS_TO_MAKE%" \
2145 -e "s%@SHARED_LIB@%$SHARED_LIB%" \
2146 $cf_dir/Makefile >$cf_dir/Makefile.out
2147 mv $cf_dir/Makefile.out $cf_dir/Makefile
2149 $AWK -f $srcdir/mk-0th.awk \
2150 libname="${cf_dir}${LIB_SUFFIX}" subsets="$LIB_SUBSETS" \
2151 $srcdir/$cf_dir/modules >>$cf_dir/Makefile
2153 for cf_subset in $cf_subsets
2156 for cf_item in $cf_LIST_MODELS
2158 echo "Appending rules for ${cf_item} model (${cf_dir}: ${cf_subset})"
2159 CF_UPPER(cf_ITEM,$cf_item)
2160 CF_LIB_SUFFIX($cf_item,cf_suffix)
2161 CF_OBJ_SUBDIR($cf_item,cf_subdir)
2163 # Test for case where we build libtinfo with a different name.
2165 if test $cf_dir = ncurses ; then
2170 cf_libname=$TINFO_LIB_SUFFIX
2171 if test -n "${DFT_ARG_SUFFIX}" ; then
2172 # undo $LIB_SUFFIX add-on in CF_LIB_SUFFIX
2173 cf_suffix=`echo $cf_suffix |sed -e "s%^${LIB_SUFFIX}%%"`
2177 cf_libname=$TICS_LIB_SUFFIX
2178 if test -n "${DFT_ARG_SUFFIX}" ; then
2179 # undo $LIB_SUFFIX add-on in CF_LIB_SUFFIX
2180 cf_suffix=`echo $cf_suffix |sed -e "s%^${LIB_SUFFIX}%%"`
2186 # These dependencies really are for development, not
2187 # builds, but they are useful in porting, too.
2188 cf_depend="../include/ncurses_cfg.h"
2189 if test "$srcdir" = "."; then
2192 cf_reldir="\${srcdir}"
2195 if test -f $srcdir/$cf_dir/$cf_dir.priv.h; then
2196 cf_depend="$cf_depend $cf_reldir/$cf_dir.priv.h"
2197 elif test -f $srcdir/$cf_dir/curses.priv.h; then
2198 cf_depend="$cf_depend $cf_reldir/curses.priv.h"
2202 old_cf_suffix="$cf_suffix"
2203 if test "$cf_cv_shlib_version_infix" = yes ; then
2204 if test -n "$LIB_SUFFIX" ; then
2207 cf_libname=`echo $cf_libname | sed 's/w$//'`
2208 cf_suffix=`echo $cf_suffix | sed 's/^w//'`
2215 $AWK -f $srcdir/mk-1st.awk \
2216 name=${cf_libname}${cf_dir_suffix} \
2217 traces=$LIB_TRACING \
2223 TermlibRoot=$TINFO_NAME \
2224 TermlibSuffix=$TINFO_SUFFIX \
2225 ShlibVer=$cf_cv_shlib_version \
2226 ShlibVerInfix=$cf_cv_shlib_version_infix \
2227 ReLink=${cf_cv_do_relink-no} \
2228 DoLinks=$cf_cv_do_symlinks \
2229 rmSoLocs=$cf_cv_rm_so_locs \
2230 ldconfig="$LDCONFIG" \
2231 overwrite=$WITH_OVERWRITE \
2232 depend="$cf_depend" \
2234 $srcdir/$cf_dir/modules >>$cf_dir/Makefile
2236 cf_suffix="$old_cf_suffix"
2238 for cf_subdir2 in $cf_subdirs lib
2240 test $cf_subdir = $cf_subdir2 && break
2242 test "${cf_subset}.${cf_subdir2}" != "${cf_subset}.${cf_subdir}" && \
2243 $AWK -f $srcdir/mk-2nd.awk \
2245 traces=$LIB_TRACING \
2251 crenames=$cf_cv_prog_CC_c_o \
2252 cxxrenames=$cf_cv_prog_CXX_c_o \
2253 $srcdir/$cf_dir/modules >>$cf_dir/Makefile
2254 cf_subdirs="$cf_subdirs $cf_subdir"
2259 echo ' cd '$cf_dir' && ${MAKE} ${CF_MFLAGS} [$]@' >>Makefile
2262 for cf_dir in $SRC_SUBDIRS
2264 if test ! -d $srcdir/$cf_dir ; then
2268 if test -f $cf_dir/Makefile ; then
2271 echo 'libs \' >> Makefile
2272 echo 'install.libs \' >> Makefile
2273 echo 'uninstall.libs ::' >> Makefile
2274 echo ' cd '$cf_dir' && ${MAKE} ${CF_MFLAGS} [$]@' >> Makefile
2279 if test -f $srcdir/$cf_dir/modules; then
2281 if test -f $srcdir/$cf_dir/headers; then
2282 cat >> Makefile <<CF_EOF
2284 uninstall.includes \\
2287 if test "$cf_dir" != "c++" ; then
2288 echo 'lint \' >> Makefile
2290 cat >> Makefile <<CF_EOF
2296 uninstall.$cf_dir ::
2297 cd $cf_dir && \${MAKE} \${CF_MFLAGS} \[$]@
2299 elif test -f $srcdir/$cf_dir/headers; then
2300 cat >> Makefile <<CF_EOF
2306 uninstall.includes ::
2307 cd $cf_dir && \${MAKE} \${CF_MFLAGS} \[$]@
2312 cat >> Makefile <<CF_EOF
2314 install.libs uninstall.libs \\
2315 install.data uninstall.data ::
2316 $MAKE_TERMINFO cd misc && \${MAKE} \${CF_MFLAGS} \[$]@
2320 cd man && \${MAKE} \${CF_MFLAGS} \[$]@
2323 rm -f config.cache config.log config.status Makefile include/ncurses_cfg.h
2324 rm -f headers.sh headers.sed mk_shared_lib.sh
2325 rm -rf \${DIRS_TO_MAKE}
2328 # Special case: tack's manpage lives in its own directory.
2329 if test -d tack ; then
2330 if test -f $srcdir/$tack.h; then
2331 cat >> Makefile <<CF_EOF
2335 cd tack && \${MAKE} \${CF_MFLAGS} \[$]@
2340 dnl If we're installing into a subdirectory of /usr/include, etc., we should
2341 dnl prepend the subdirectory's name to the "#include" paths. It won't hurt
2342 dnl anything, and will make it more standardized. It's awkward to decide this
2343 dnl at configuration because of quoting, so we'll simply make all headers
2344 dnl installed via a script that can do the right thing.
2346 rm -f headers.sed headers.sh
2348 dnl ( generating this script makes the makefiles a little tidier :-)
2349 echo creating headers.sh
2350 cat >headers.sh <<CF_EOF
2352 # This shell script is generated by the 'configure' script. It is invoked in a
2353 # subdirectory of the build tree. It generates a sed-script in the parent
2354 # directory that is used to adjust includes for header files that reside in a
2355 # subdirectory of /usr/include, etc.
2357 while test \[$]# != 3
2359 PRG="\$PRG \[$]1"; shift
2364 TMPSRC=\${TMPDIR-/tmp}/\`basename \$SRC\`\$\$
2365 TMPSED=\${TMPDIR-/tmp}/headers.sed\$\$
2366 echo installing \$SRC in \$DST
2369 if test $WITH_CURSES_H = yes; then
2370 cat >>headers.sh <<CF_EOF
2373 END=\`basename \$DST\`
2374 for i in \`cat \$REF/../*/headers |fgrep -v "#"\`
2376 NAME=\`basename \$i\`
2377 echo "s/<\$NAME>/<\$END\/\$NAME>/" >> \$TMPSED
2387 cat >>headers.sh <<CF_EOF
2390 END=\`basename \$DST\`
2391 for i in \`cat \$REF/../*/headers |fgrep -v "#"\`
2393 NAME=\`basename \$i\`
2394 if test "\$NAME" = "curses.h"
2396 echo "s/<curses.h>/<ncurses.h>/" >> \$TMPSED
2399 echo "s/<\$NAME>/<\$END\/\$NAME>/" >> \$TMPSED
2403 echo "s/<curses.h>/<ncurses.h>/" >> \$TMPSED
2408 cat >>headers.sh <<CF_EOF
2410 sed -f \$TMPSED \$SRC > \$TMPSRC
2411 NAME=\`basename \$SRC\`
2413 if test $WITH_CURSES_H != yes; then
2414 cat >>headers.sh <<CF_EOF
2415 test "\$NAME" = "curses.h" && NAME=ncurses.h
2418 cat >>headers.sh <<CF_EOF
2419 # Just in case someone gzip'd manpages, remove the conflicting copy.
2420 test -f \$DST/\$NAME.gz && rm -f \$DST/\$NAME.gz
2422 eval \$PRG \$TMPSRC \$DST/\$NAME
2423 rm -f \$TMPSRC \$TMPSED
2426 chmod 0755 headers.sh
2428 for cf_dir in $SRC_SUBDIRS
2430 if test ! -d $srcdir/$cf_dir ; then
2434 if test -f $srcdir/$cf_dir/headers; then
2435 $AWK -f $srcdir/mk-hdr.awk \
2436 subset="$LIB_SUBSETS" \
2437 compat="$WITH_CURSES_H" \
2438 $srcdir/$cf_dir/headers >>$cf_dir/Makefile
2441 if test -f $srcdir/$cf_dir/modules; then
2442 if test "$cf_dir" != "c++" ; then
2443 cat >>$cf_dir/Makefile <<"CF_EOF"
2444 depend : ${AUTO_SRC}
2445 makedepend -- ${CPPFLAGS} -- ${C_SRC}
2447 # DO NOT DELETE THIS LINE -- make depend depends on it.
2454 dnl ---------------------------------------------------------------------------
2455 dnl CF_LIB_SONAME version: 3 updated: 2006/12/16 15:55:46
2457 dnl Find the and soname for the given shared library. Set the cache variable
2458 dnl cf_cv_$3_soname to this, unless it is not found. Then set the cache
2459 dnl variable to "unknown".
2463 dnl $3 = library name
2464 AC_DEFUN([CF_LIB_SONAME],
2466 AC_CACHE_CHECK(for soname of $3 library,cf_cv_$3_soname,[
2468 cf_cv_$3_soname=unknown
2469 if test "$cross_compiling" != yes ; then
2470 cat >conftest.$ac_ext <<CF_EOF
2475 ${cf_cv_main_return:-return}(0);
2478 cf_save_LIBS="$LIBS"
2480 if AC_TRY_EVAL(ac_compile) ; then
2481 if AC_TRY_EVAL(ac_link) ; then
2482 cf_cv_$3_soname=`ldd conftest$ac_exeext 2>/dev/null | sed -e 's,^.*/,,' -e 's, .*$,,' | fgrep lib$3.`
2483 test -z "$cf_cv_$3_soname" && cf_cv_$3_soname=unknown
2487 LIBS="$cf_save_LIBS"
2491 dnl ---------------------------------------------------------------------------
2492 dnl CF_LIB_SUFFIX version: 13 updated: 2003/11/01 16:09:07
2494 dnl Compute the library file-suffix from the given model name
2496 dnl $2 = variable to set
2497 dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
2498 AC_DEFUN([CF_LIB_SUFFIX],
2500 AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
2502 libtool) $2='.la' ;;
2505 profile) $2='_p.a' ;;
2507 case $cf_cv_system_name in
2508 cygwin*) $2='.dll' ;;
2509 darwin*) $2='.dylib' ;;
2519 test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
2521 dnl ---------------------------------------------------------------------------
2522 dnl CF_LIB_TYPE version: 4 updated: 2000/10/20 22:57:49
2524 dnl Compute the string to append to -library from the given model name
2526 dnl $2 = variable to set
2527 dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
2528 AC_DEFUN([CF_LIB_TYPE],
2537 test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
2539 dnl ---------------------------------------------------------------------------
2540 dnl CF_LINK_DATAONLY version: 8 updated: 2006/12/16 12:33:30
2541 dnl ----------------
2542 dnl Some systems have a non-ANSI linker that doesn't pull in modules that have
2543 dnl only data (i.e., no functions), for example NeXT. On those systems we'll
2544 dnl have to provide wrappers for global tables to ensure they're linked
2546 AC_DEFUN([CF_LINK_DATAONLY],
2548 AC_MSG_CHECKING([if data-only library module links])
2549 AC_CACHE_VAL(cf_cv_link_dataonly,[
2551 cat >conftest.$ac_ext <<EOF
2552 #line __oline__ "configure"
2553 int testdata[[3]] = { 123, 456, 789 };
2555 if AC_TRY_EVAL(ac_compile) ; then
2556 mv conftest.o data.o && \
2557 ( $AR $AR_OPTS conftest.a data.o ) 2>&AC_FD_CC 1>/dev/null
2559 rm -f conftest.$ac_ext data.o
2560 cat >conftest.$ac_ext <<EOF
2561 #line __oline__ "configure"
2565 ${cf_cv_main_return:-return}(1); /* I'm told this linker is broken */
2567 extern int testdata[[3]];
2568 return testdata[[0]] == 123
2569 && testdata[[1]] == 456
2570 && testdata[[2]] == 789;
2574 if AC_TRY_EVAL(ac_compile); then
2575 mv conftest.o func.o && \
2576 ( $AR $AR_OPTS conftest.a func.o ) 2>&AC_FD_CC 1>/dev/null
2578 rm -f conftest.$ac_ext func.o
2579 ( eval $RANLIB conftest.a ) 2>&AC_FD_CC >/dev/null
2581 LIBS="conftest.a $LIBS"
2585 extern int testfunc();
2586 ${cf_cv_main_return:-return} (!testfunc());
2589 [cf_cv_link_dataonly=yes],
2590 [cf_cv_link_dataonly=no],
2591 [cf_cv_link_dataonly=unknown])
2594 AC_MSG_RESULT($cf_cv_link_dataonly)
2596 if test "$cf_cv_link_dataonly" = no ; then
2597 AC_DEFINE(BROKEN_LINKER)
2602 dnl ---------------------------------------------------------------------------
2603 dnl CF_LINK_FUNCS version: 7 updated: 2006/12/16 12:33:30
2605 dnl Most Unix systems have both link and symlink, a few don't have symlink.
2606 dnl A few non-Unix systems implement symlink, but not link.
2607 dnl A few non-systems implement neither (or have nonfunctional versions).
2608 AC_DEFUN([CF_LINK_FUNCS],
2614 if test "$cross_compiling" = yes ; then
2619 AC_CACHE_CHECK(if link/symlink functions work,cf_cv_link_funcs,[
2621 for cf_func in link symlink ; do
2623 #include <sys/types.h>
2624 #include <sys/stat.h>
2625 #ifdef HAVE_UNISTD_H
2631 char *src = "config.log";
2632 char *dst = "conftest.chk";
2637 fail = ($cf_func("config.log", "conftest.chk") < 0)
2638 || (stat(dst, &dst_sb) < 0)
2639 || (dst_sb.st_mtime != src_sb.st_mtime);
2645 ${cf_cv_main_return:-return} (fail);
2648 cf_cv_link_funcs="$cf_cv_link_funcs $cf_func"
2649 eval 'ac_cv_func_'$cf_func'=yes'],[
2650 eval 'ac_cv_func_'$cf_func'=no'],[
2651 eval 'ac_cv_func_'$cf_func'=error'])
2653 test -z "$cf_cv_link_funcs" && cf_cv_link_funcs=no
2655 test "$ac_cv_func_link" = yes && AC_DEFINE(HAVE_LINK)
2656 test "$ac_cv_func_symlink" = yes && AC_DEFINE(HAVE_SYMLINK)
2659 dnl ---------------------------------------------------------------------------
2660 dnl CF_MAIN_RETURN version: 1 updated: 2006/12/10 09:51:54
2662 dnl Check if a return from main to the shell actually returns the same exit
2663 dnl code. This is true for almost any POSIX environment.
2665 dnl Some very old environments did not flush stdout, etc., on an exit. That
2666 dnl would be a useful case to test for also.
2667 AC_DEFUN([CF_MAIN_RETURN],
2669 cf_cv_main_return=return
2671 dnl ---------------------------------------------------------------------------
2672 dnl CF_MAKEFLAGS version: 12 updated: 2006/10/21 08:27:03
2674 dnl Some 'make' programs support ${MAKEFLAGS}, some ${MFLAGS}, to pass 'make'
2675 dnl options to lower-levels. It's very useful for "make -n" -- if we have it.
2676 dnl (GNU 'make' does both, something POSIX 'make', which happens to make the
2677 dnl ${MAKEFLAGS} variable incompatible because it adds the assignments :-)
2678 AC_DEFUN([CF_MAKEFLAGS],
2680 AC_CACHE_CHECK(for makeflags variable, cf_cv_makeflags,[
2682 for cf_option in '-${MAKEFLAGS}' '${MFLAGS}'
2684 cat >cf_makeflags.tmp <<CF_EOF
2687 @ echo '.$cf_option'
2689 cf_result=`${MAKE-make} -k -f cf_makeflags.tmp 2>/dev/null | sed -e 's,[[ ]]*$,,'`
2690 case "$cf_result" in
2692 cf_result=`${MAKE-make} -k -f cf_makeflags.tmp CC=cc 2>/dev/null`
2693 case "$cf_result" in
2694 .*CC=*) cf_cv_makeflags=
2696 *) cf_cv_makeflags=$cf_option
2702 *) echo "given option \"$cf_option\", no match \"$cf_result\""
2706 rm -f cf_makeflags.tmp
2709 AC_SUBST(cf_cv_makeflags)
2711 dnl ---------------------------------------------------------------------------
2712 dnl CF_MAKE_TAGS version: 2 updated: 2000/10/04 09:18:40
2714 dnl Generate tags/TAGS targets for makefiles. Do not generate TAGS if we have
2715 dnl a monocase filesystem.
2716 AC_DEFUN([CF_MAKE_TAGS],[
2717 AC_REQUIRE([CF_MIXEDCASE_FILENAMES])
2718 AC_CHECK_PROG(MAKE_LOWER_TAGS, ctags, yes, no)
2720 if test "$cf_cv_mixedcase" = yes ; then
2721 AC_CHECK_PROG(MAKE_UPPER_TAGS, etags, yes, no)
2726 if test "$MAKE_UPPER_TAGS" = yes ; then
2731 AC_SUBST(MAKE_UPPER_TAGS)
2733 if test "$MAKE_LOWER_TAGS" = yes ; then
2738 AC_SUBST(MAKE_LOWER_TAGS)
2740 dnl ---------------------------------------------------------------------------
2741 dnl CF_MANPAGE_FORMAT version: 7 updated: 2003/12/20 19:30:34
2742 dnl -----------------
2743 dnl Option to allow user to override automatic configuration of manpage format.
2744 dnl There are several special cases:
2746 dnl gzip - man checks for, can display gzip'd files
2747 dnl compress - man checks for, can display compressed files
2748 dnl BSDI - files in the cat-directories are suffixed ".0"
2749 dnl formatted - installer should format (put files in cat-directory)
2750 dnl catonly - installer should only format, e.g., for a turnkey system.
2752 dnl There are other configurations which this macro does not test, e.g., HPUX's
2753 dnl compressed manpages (but uncompressed manpages are fine, and HPUX's naming
2754 dnl convention would not match our use).
2755 AC_DEFUN([CF_MANPAGE_FORMAT],
2757 AC_REQUIRE([CF_PATHSEP])
2758 AC_MSG_CHECKING(format of man-pages)
2760 AC_ARG_WITH(manpage-format,
2761 [ --with-manpage-format specify manpage-format: gzip/compress/BSDI/normal and
2762 optionally formatted/catonly, e.g., gzip,formatted],
2763 [MANPAGE_FORMAT=$withval],
2764 [MANPAGE_FORMAT=unknown])
2766 test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=unknown
2767 MANPAGE_FORMAT=`echo "$MANPAGE_FORMAT" | sed -e 's/,/ /g'`
2771 case $MANPAGE_FORMAT in
2773 if test -z "$MANPATH" ; then
2774 MANPATH="/usr/man:/usr/share/man"
2777 # look for the 'date' man-page (it's most likely to be installed!)
2783 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATHSEP}"
2784 for cf_dir in $MANPATH; do
2785 test -z "$cf_dir" && cf_dir=/usr/man
2786 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
2788 cf_test=`echo $cf_name | sed -e 's/*//'`
2789 if test "x$cf_test" = "x$cf_name" ; then
2792 *.gz) MANPAGE_FORMAT="$MANPAGE_FORMAT gzip";;
2793 *.Z) MANPAGE_FORMAT="$MANPAGE_FORMAT compress";;
2794 *.0) MANPAGE_FORMAT="$MANPAGE_FORMAT BSDI";;
2795 *) MANPAGE_FORMAT="$MANPAGE_FORMAT normal";;
2809 # if we found a match in either man* or cat*, stop looking
2810 if test -n "$MANPAGE_FORMAT" ; then
2812 test "$cf_preform" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT formatted"
2813 test "$cf_catonly" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT catonly"
2819 test $cf_found=yes && break
2822 # only check the first directory in $MANPATH where we find manpages
2823 if test -n "$MANPAGE_FORMAT" ; then
2827 # if we did not find the example, just assume it is normal
2828 test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=normal
2832 for cf_option in $MANPAGE_FORMAT; do
2833 case $cf_option in #(vi
2834 gzip|compress|BSDI|normal|formatted|catonly)
2837 cf_unknown="$cf_unknown $cf_option"
2844 AC_MSG_RESULT($MANPAGE_FORMAT)
2845 if test -n "$cf_unknown" ; then
2846 AC_MSG_WARN(Unexpected manpage-format $cf_unknown)
2849 dnl ---------------------------------------------------------------------------
2850 dnl CF_MANPAGE_RENAMES version: 7 updated: 2005/06/18 18:51:57
2851 dnl ------------------
2852 dnl The Debian people have their own naming convention for manpages. This
2853 dnl option lets us override the name of the file containing renaming, or
2854 dnl disable it altogether.
2855 AC_DEFUN([CF_MANPAGE_RENAMES],
2857 AC_MSG_CHECKING(for manpage renaming)
2859 AC_ARG_WITH(manpage-renames,
2860 [ --with-manpage-renames specify manpage-renaming],
2861 [MANPAGE_RENAMES=$withval],
2862 [MANPAGE_RENAMES=yes])
2864 case ".$MANPAGE_RENAMES" in #(vi
2868 # Debian 'man' program?
2869 if test -f /etc/debian_version ; then
2870 MANPAGE_RENAMES=`cd $srcdir && pwd`/man/man_db.renames
2877 if test "$MANPAGE_RENAMES" != no ; then
2878 if test -f $srcdir/man/$MANPAGE_RENAMES ; then
2879 MANPAGE_RENAMES=`cd $srcdir/man && pwd`/$MANPAGE_RENAMES
2880 elif test ! -f $MANPAGE_RENAMES ; then
2881 AC_MSG_ERROR(not a filename: $MANPAGE_RENAMES)
2884 test ! -d man && mkdir man
2886 # Construct a sed-script to perform renaming within man-pages
2887 if test -n "$MANPAGE_RENAMES" ; then
2888 test ! -d man && mkdir man
2889 sh $srcdir/man/make_sed.sh $MANPAGE_RENAMES >./edit_man.sed
2893 AC_MSG_RESULT($MANPAGE_RENAMES)
2894 AC_SUBST(MANPAGE_RENAMES)
2896 dnl ---------------------------------------------------------------------------
2897 dnl CF_MANPAGE_SYMLINKS version: 4 updated: 2003/12/13 18:01:58
2898 dnl -------------------
2899 dnl Some people expect each tool to make all aliases for manpages in the
2900 dnl man-directory. This accommodates the older, less-capable implementations
2901 dnl of 'man', and is optional.
2902 AC_DEFUN([CF_MANPAGE_SYMLINKS],
2904 AC_MSG_CHECKING(if manpage aliases will be installed)
2906 AC_ARG_WITH(manpage-aliases,
2907 [ --with-manpage-aliases specify manpage-aliases using .so],
2908 [MANPAGE_ALIASES=$withval],
2909 [MANPAGE_ALIASES=yes])
2911 AC_MSG_RESULT($MANPAGE_ALIASES)
2913 if test "$LN_S" = "ln -s"; then
2920 if test "$MANPAGE_ALIASES" = yes ; then
2921 AC_MSG_CHECKING(if manpage symlinks should be used)
2923 AC_ARG_WITH(manpage-symlinks,
2924 [ --with-manpage-symlinks specify manpage-aliases using symlinks],
2925 [MANPAGE_SYMLINKS=$withval],
2926 [MANPAGE_SYMLINKS=$cf_use_symlinks])
2928 if test "$$cf_use_symlinks" = no; then
2929 if test "$MANPAGE_SYMLINKS" = yes ; then
2930 AC_MSG_WARN(cannot make symlinks, will use .so files)
2935 AC_MSG_RESULT($MANPAGE_SYMLINKS)
2939 dnl ---------------------------------------------------------------------------
2940 dnl CF_MANPAGE_TBL version: 3 updated: 2002/01/19 22:51:32
2942 dnl This option causes manpages to be run through tbl(1) to generate tables
2944 AC_DEFUN([CF_MANPAGE_TBL],
2946 AC_MSG_CHECKING(for manpage tbl)
2948 AC_ARG_WITH(manpage-tbl,
2949 [ --with-manpage-tbl specify manpage processing with tbl],
2950 [MANPAGE_TBL=$withval],
2953 AC_MSG_RESULT($MANPAGE_TBL)
2955 dnl ---------------------------------------------------------------------------
2956 dnl CF_MAN_PAGES version: 35 updated: 2007/03/31 11:47:29
2958 dnl Try to determine if the man-pages on the system are compressed, and if
2959 dnl so, what format is used. Use this information to construct a script that
2960 dnl will install man-pages.
2961 AC_DEFUN([CF_MAN_PAGES],
2963 CF_HELP_MESSAGE(Options to Specify How Manpages are Installed:)
2969 if test "$prefix" = "NONE" ; then
2970 cf_prefix="$ac_default_prefix"
2975 case "$MANPAGE_FORMAT" in # (vi
2990 test ! -d man && mkdir man
2994 case "$MANPAGE_FORMAT" in #(vi
2997 cf_compress=compress
3005 cf_edit_man=./edit_man.sh
3006 cf_man_alias=`pwd`/man_alias.sed
3008 cat >$cf_edit_man <<CF_EOF
3010 # this script is generated by the configure-script CF_MAN_PAGES macro.
3015 NCURSES_MAJOR="$NCURSES_MAJOR"
3016 NCURSES_MINOR="$NCURSES_MINOR"
3017 NCURSES_PATCH="$NCURSES_PATCH"
3019 NCURSES_OSPEED="$NCURSES_OSPEED"
3020 TERMINFO="$TERMINFO"
3022 MKDIRS="sh `cd $srcdir && pwd`/mkdirs.sh"
3025 INSTALL_DATA="$INSTALL_DATA"
3027 transform="$program_transform_name"
3029 TMP=\${TMPDIR-/tmp}/man\$\$
3030 trap "rm -f \$TMP" 0 1 2 5 15
3042 top_srcdir=\[$]srcdir/..
3045 if test "\$form" = normal ; then
3046 if test "$cf_format" = yes ; then
3047 if test "$cf_inboth" = no ; then
3048 sh \[$]0 format \$verb \$mandir \$srcdir \[$]*
3052 cf_subdir=\$mandir/man
3053 cf_tables=$MANPAGE_TBL
3055 cf_subdir=\$mandir/cat
3059 # process the list of source-files
3062 *.orig|*.rej) ;; #(vi
3064 section=\`expr "\$i" : '.*\\.\\([[0-9]]\\)[[xm]]*'\`;
3065 if test \$verb = installing ; then
3066 if test ! -d \$cf_subdir\${section} ; then
3067 \$MKDIRS \$cf_subdir\$section
3071 # replace variables in man page
3072 if test ! -f $cf_man_alias ; then
3073 cat >>$cf_man_alias <<-CF_EOF2
3074 s,@DATADIR@,\$datadir,g
3075 s,@TERMINFO@,\$TERMINFO,g
3076 s,@NCURSES_MAJOR@,\$NCURSES_MAJOR,g
3077 s,@NCURSES_MINOR@,\$NCURSES_MINOR,g
3078 s,@NCURSES_PATCH@,\$NCURSES_PATCH,g
3079 s,@NCURSES_OSPEED@,\$NCURSES_OSPEED,g
3084 cf_NAME=`echo "$cf_name" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
3085 cf_name=`echo $cf_name|sed "$program_transform_name"`
3086 cat >>$cf_edit_man <<-CF_EOF
3087 s,@$cf_NAME@,$cf_name,
3091 cat >>$cf_edit_man <<CF_EOF
3093 echo "...made $cf_man_alias"
3097 cf_source=\`basename \$i\`
3099 test ! -f \$inalias && inalias="\$srcdir/\$inalias"
3100 if test ! -f \$inalias ; then
3101 echo .. skipped \$cf_source
3106 if test "$MANPAGE_ALIASES" != no ; then
3107 cat >>$cf_edit_man <<CF_EOF
3108 aliases=\`sed -f \$top_srcdir/man/manlinks.sed \$inalias |sed -f $cf_man_alias | sort -u\`
3112 if test "$MANPAGE_RENAMES" = no ; then
3113 cat >>$cf_edit_man <<CF_EOF
3114 # perform program transformations for section 1 man pages
3115 if test \$section = 1 ; then
3116 cf_target=\$cf_subdir\${section}/\`echo \$cf_source|sed "\${transform}"\`
3118 cf_target=\$cf_subdir\${section}/\$cf_source
3122 cat >>$cf_edit_man <<CF_EOF
3123 cf_target=\`grep "^\$cf_source" $MANPAGE_RENAMES | $AWK '{print \[$]2}'\`
3124 if test -z "\$cf_target" ; then
3125 echo '? missing rename for '\$cf_source
3126 cf_target="\$cf_source"
3128 cf_target="\$cf_subdir\${section}/\${cf_target}"
3133 cat >>$cf_edit_man <<CF_EOF
3134 sed -f $cf_man_alias \\
3137 if test -f $MANPAGE_RENAMES ; then
3138 cat >>$cf_edit_man <<CF_EOF
3139 < \$i | sed -f `pwd`/edit_man.sed >\$TMP
3142 cat >>$cf_edit_man <<CF_EOF
3147 cat >>$cf_edit_man <<CF_EOF
3148 if test \$cf_tables = yes ; then
3149 tbl \$TMP >\$TMP.out
3154 if test $with_curses_h != yes ; then
3155 cat >>$cf_edit_man <<CF_EOF
3156 sed -e "/\#[ ]*include/s,curses.h,ncurses.h," < \$TMP >\$TMP.out
3161 cat >>$cf_edit_man <<CF_EOF
3162 if test \$form = format ; then
3163 nroff -man \$TMP >\$TMP.out
3168 if test -n "$cf_compress" ; then
3169 cat >>$cf_edit_man <<CF_EOF
3170 if test \$verb = installing ; then
3171 if ( $cf_compress -f \$TMP )
3173 mv \$TMP.$cf_so_strip \$TMP
3176 cf_target="\$cf_target.$cf_so_strip"
3180 case "$MANPAGE_FORMAT" in #(vi
3182 cat >>$cf_edit_man <<CF_EOF
3183 if test \$form = format ; then
3184 # BSDI installs only .0 suffixes in the cat directories
3185 cf_target="\`echo \$cf_target|sed -e 's/\.[[1-9]]\+[[a-z]]*/.0/'\`"
3191 cat >>$cf_edit_man <<CF_EOF
3192 suffix=\`basename \$cf_target | sed -e 's%^[[^.]]*%%'\`
3193 if test \$verb = installing ; then
3194 echo \$verb \$cf_target
3195 \$INSTALL_DATA \$TMP \$cf_target
3196 test -d \$cf_subdir\${section} &&
3197 test -n "\$aliases" && (
3198 cd \$cf_subdir\${section} && (
3199 cf_source=\`echo \$cf_target |sed -e 's%^.*/\([[^/]][[^/]]*/[[^/]][[^/]]*$\)%\1%'\`
3200 test -n "$cf_so_strip" && cf_source=\`echo \$cf_source |sed -e 's%\.$cf_so_strip\$%%'\`
3201 cf_target=\`basename \$cf_target\`
3202 for cf_alias in \$aliases
3204 if test \$section = 1 ; then
3205 cf_alias=\`echo \$cf_alias|sed "\${transform}"\`
3208 if test "$MANPAGE_SYMLINKS" = yes ; then
3209 if test -f \$cf_alias\${suffix} ; then
3210 if ( cmp -s \$cf_target \$cf_alias\${suffix} )
3215 echo .. \$verb alias \$cf_alias\${suffix}
3216 rm -f \$cf_alias\${suffix}
3217 $LN_S \$cf_target \$cf_alias\${suffix}
3218 elif test "\$cf_target" != "\$cf_alias\${suffix}" ; then
3219 echo ".so \$cf_source" >\$TMP
3221 if test -n "$cf_compress" ; then
3222 cat >>$cf_edit_man <<CF_EOF
3223 if test -n "$cf_so_strip" ; then
3224 $cf_compress -f \$TMP
3225 mv \$TMP.$cf_so_strip \$TMP
3229 cat >>$cf_edit_man <<CF_EOF
3230 echo .. \$verb alias \$cf_alias\${suffix}
3231 rm -f \$cf_alias\${suffix}
3232 \$INSTALL_DATA \$TMP \$cf_alias\${suffix}
3237 elif test \$verb = removing ; then
3238 test -f \$cf_target && (
3239 echo \$verb \$cf_target
3242 test -d \$cf_subdir\${section} &&
3243 test -n "\$aliases" && (
3244 cd \$cf_subdir\${section} && (
3245 for cf_alias in \$aliases
3247 if test \$section = 1 ; then
3248 cf_alias=\`echo \$cf_alias|sed "\${transform}"\`
3251 echo .. \$verb alias \$cf_alias\${suffix}
3252 rm -f \$cf_alias\${suffix}
3264 if test $cf_inboth = yes ; then
3265 if test \$form != format ; then
3266 sh \[$]0 format \$verb \$mandir \$srcdir \[$]*
3272 chmod 755 $cf_edit_man
3275 dnl ---------------------------------------------------------------------------
3276 dnl CF_MATH_LIB version: 5 updated: 2000/05/28 01:39:10
3278 dnl Checks for libraries. At least one UNIX system, Apple Macintosh
3279 dnl Rhapsody 5.5, does not have -lm. We cannot use the simpler
3280 dnl AC_CHECK_LIB(m,sin), because that fails for C++.
3281 AC_DEFUN([CF_MATH_LIB],
3283 AC_CACHE_CHECK(if -lm needed for math functions,
3289 [double x = rand(); printf("result = %g\n", ]ifelse($2,,sin(x),$2)[)],
3290 [cf_cv_need_libm=no],
3291 [cf_cv_need_libm=yes])])
3292 if test "$cf_cv_need_libm" = yes
3299 dnl ---------------------------------------------------------------------------
3300 dnl CF_MIXEDCASE_FILENAMES version: 3 updated: 2003/09/20 17:07:55
3301 dnl ----------------------
3302 dnl Check if the file-system supports mixed-case filenames. If we're able to
3303 dnl create a lowercase name and see it as uppercase, it doesn't support that.
3304 AC_DEFUN([CF_MIXEDCASE_FILENAMES],
3306 AC_CACHE_CHECK(if filesystem supports mixed-case filenames,cf_cv_mixedcase,[
3307 if test "$cross_compiling" = yes ; then
3308 case $target_alias in #(vi
3309 *-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-mingw32*|*-uwin*) #(vi
3317 rm -f conftest CONFTEST
3319 if test -f CONFTEST ; then
3324 rm -f conftest CONFTEST
3327 test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES)
3329 dnl ---------------------------------------------------------------------------
3330 dnl CF_MKSTEMP version: 5 updated: 2006/12/16 12:33:30
3332 dnl Check for a working mkstemp. This creates two files, checks that they are
3333 dnl successfully created and distinct (AmigaOS apparently fails on the last).
3334 AC_DEFUN([CF_MKSTEMP],[
3335 AC_CACHE_CHECK(for working mkstemp, cf_cv_func_mkstemp,[
3338 #include <sys/types.h>
3342 #include <sys/stat.h>
3345 char *tmpl = "conftestXXXXXX";
3353 for (n = 0; n < 2; ++n) {
3354 strcpy(name[n], tmpl);
3355 if ((fd = mkstemp(name[n])) >= 0) {
3356 if (!strcmp(name[n], tmpl)
3357 || stat(name[n], &sb) != 0
3358 || (sb.st_mode & S_IFMT) != S_IFREG
3359 || (sb.st_mode & 077) != 0) {
3366 && !strcmp(name[0], name[1]))
3368 ${cf_cv_main_return:-return}(result);
3370 ],[cf_cv_func_mkstemp=yes
3371 ],[cf_cv_func_mkstemp=no
3372 ],[AC_CHECK_FUNC(mkstemp)
3375 if test "$cf_cv_func_mkstemp" = yes ; then
3376 AC_DEFINE(HAVE_MKSTEMP)
3379 dnl ---------------------------------------------------------------------------
3380 dnl CF_MSG_LOG version: 4 updated: 2007/07/29 09:55:12
3382 dnl Write a debug message to config.log, along with the line number in the
3383 dnl configure script.
3384 AC_DEFUN([CF_MSG_LOG],[
3385 echo "${as_me-configure}:__oline__: testing $* ..." 1>&AC_FD_CC
3387 dnl ---------------------------------------------------------------------------
3388 dnl CF_NCURSES_ABI_6 version: 1 updated: 2005/09/17 18:42:49
3389 dnl ----------------
3390 dnl Set ncurses' ABI to 6 unless overridden by explicit configure option, and
3391 dnl warn about this.
3392 AC_DEFUN([CF_NCURSES_ABI_6],[
3393 if test "${with_abi_version+set}" != set; then
3394 case $cf_cv_rel_version in
3396 cf_cv_rel_version=6.0
3398 AC_MSG_WARN(Overriding ABI version to $cf_cv_abi_version)
3403 dnl ---------------------------------------------------------------------------
3404 dnl CF_NO_LEAKS_OPTION version: 4 updated: 2006/12/16 14:24:05
3405 dnl ------------------
3406 dnl see CF_WITH_NO_LEAKS
3407 AC_DEFUN([CF_NO_LEAKS_OPTION],[
3408 AC_MSG_CHECKING(if you want to use $1 for testing)
3411 [AC_DEFINE($3)ifelse([$4],,[
3414 : ${with_cflags:=-g}
3415 : ${with_no_leaks:=yes}
3418 AC_MSG_RESULT(${with_$1:-no})
3420 case .$with_cflags in #(vi
3422 case .$CFLAGS in #(vi
3432 dnl ---------------------------------------------------------------------------
3433 dnl CF_NUMBER_SYNTAX version: 1 updated: 2003/09/20 18:12:49
3434 dnl ----------------
3435 dnl Check if the given variable is a number. If not, report an error.
3436 dnl $1 is the variable
3437 dnl $2 is the message
3438 AC_DEFUN([CF_NUMBER_SYNTAX],[
3439 if test -n "$1" ; then
3444 AC_MSG_ERROR($2 is not a number: $1)
3448 AC_MSG_ERROR($2 value is empty)
3451 dnl ---------------------------------------------------------------------------
3452 dnl CF_OBJ_SUBDIR version: 4 updated: 2002/02/23 20:38:31
3454 dnl Compute the object-directory name from the given model name
3455 AC_DEFUN([CF_OBJ_SUBDIR],
3458 libtool) $2='obj_lo' ;;
3459 normal) $2='objects' ;;
3460 debug) $2='obj_g' ;;
3461 profile) $2='obj_p' ;;
3463 case $cf_cv_system_name in #(vi
3471 dnl ---------------------------------------------------------------------------
3472 dnl CF_PATHSEP version: 3 updated: 2001/01/12 01:23:53
3474 dnl Provide a value for the $PATH and similar separator
3475 AC_DEFUN([CF_PATHSEP],
3477 case $cf_cv_system_name in
3478 os2*) PATHSEP=';' ;;
3481 ifelse($1,,,[$1=$PATHSEP])
3484 dnl ---------------------------------------------------------------------------
3485 dnl CF_PATH_SYNTAX version: 12 updated: 2008/03/23 14:45:59
3487 dnl Check the argument to see that it looks like a pathname. Rewrite it if it
3488 dnl begins with one of the prefix/exec_prefix variables, and then again if the
3489 dnl result begins with 'NONE'. This is necessary to work around autoconf's
3490 dnl delayed evaluation of those symbols.
3491 AC_DEFUN([CF_PATH_SYNTAX],[
3492 if test "x$prefix" != xNONE; then
3493 cf_path_syntax="$prefix"
3495 cf_path_syntax="$ac_default_prefix"
3498 case ".[$]$1" in #(vi
3499 .\[$]\(*\)*|.\'*\'*) #(vi
3503 .[[a-zA-Z]]:[[\\/]]*) #(vi OS/2 EMX
3505 .\[$]{*prefix}*) #(vi
3507 case ".[$]$1" in #(vi
3509 $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
3514 $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
3517 ifelse($2,,[AC_MSG_ERROR([expected a pathname, not \"[$]$1\"])],$2)
3521 dnl ---------------------------------------------------------------------------
3522 dnl CF_POSIX_C_SOURCE version: 6 updated: 2005/07/14 20:25:10
3523 dnl -----------------
3524 dnl Define _POSIX_C_SOURCE to the given level, and _POSIX_SOURCE if needed.
3526 dnl POSIX.1-1990 _POSIX_SOURCE
3527 dnl POSIX.1-1990 and _POSIX_SOURCE and
3528 dnl POSIX.2-1992 C-Language _POSIX_C_SOURCE=2
3530 dnl POSIX.1b-1993 _POSIX_C_SOURCE=199309L
3531 dnl POSIX.1c-1996 _POSIX_C_SOURCE=199506L
3532 dnl X/Open 2000 _POSIX_C_SOURCE=200112L
3535 dnl $1 is the nominal value for _POSIX_C_SOURCE
3536 AC_DEFUN([CF_POSIX_C_SOURCE],
3538 cf_POSIX_C_SOURCE=ifelse($1,,199506L,$1)
3540 cf_save_CFLAGS="$CFLAGS"
3541 cf_save_CPPFLAGS="$CPPFLAGS"
3543 CF_REMOVE_DEFINE(cf_trim_CFLAGS,$cf_save_CFLAGS,_POSIX_C_SOURCE)
3544 CF_REMOVE_DEFINE(cf_trim_CPPFLAGS,$cf_save_CPPFLAGS,_POSIX_C_SOURCE)
3546 AC_CACHE_CHECK(if we should define _POSIX_C_SOURCE,cf_cv_posix_c_source,[
3547 CF_MSG_LOG(if the symbol is already defined go no further)
3548 AC_TRY_COMPILE([#include <sys/types.h>],[
3549 #ifndef _POSIX_C_SOURCE
3552 [cf_cv_posix_c_source=no],
3553 [cf_want_posix_source=no
3554 case .$cf_POSIX_C_SOURCE in #(vi
3556 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
3559 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
3560 cf_want_posix_source=yes
3563 cf_want_posix_source=yes
3566 if test "$cf_want_posix_source" = yes ; then
3567 AC_TRY_COMPILE([#include <sys/types.h>],[
3568 #ifdef _POSIX_SOURCE
3571 cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE")
3573 CF_MSG_LOG(ifdef from value $cf_POSIX_C_SOURCE)
3574 CFLAGS="$cf_trim_CFLAGS"
3575 CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source"
3576 CF_MSG_LOG(if the second compile does not leave our definition intact error)
3577 AC_TRY_COMPILE([#include <sys/types.h>],[
3578 #ifndef _POSIX_C_SOURCE
3581 [cf_cv_posix_c_source=no])
3582 CFLAGS="$cf_save_CFLAGS"
3583 CPPFLAGS="$cf_save_CPPFLAGS"
3587 if test "$cf_cv_posix_c_source" != no ; then
3588 CFLAGS="$cf_trim_CFLAGS"
3589 CPPFLAGS="$cf_trim_CPPFLAGS"
3590 if test "$cf_cv_cc_u_d_options" = yes ; then
3591 cf_temp_posix_c_source=`echo "$cf_cv_posix_c_source" | \
3592 sed -e 's/-D/-U/g' -e 's/=[[^ ]]*//g'`
3593 CPPFLAGS="$CPPFLAGS $cf_temp_posix_c_source"
3595 CPPFLAGS="$CPPFLAGS $cf_cv_posix_c_source"
3599 dnl ---------------------------------------------------------------------------
3600 dnl CF_PREDEFINE version: 1 updated: 2003/07/26 17:53:56
3602 dnl Add definitions to CPPFLAGS to ensure they're predefined for all compiles.
3604 dnl $1 = symbol to test
3605 dnl $2 = value (if any) to use for a predefinition
3606 AC_DEFUN([CF_PREDEFINE],
3608 AC_MSG_CHECKING(if we must define $1)
3609 AC_TRY_COMPILE([#include <sys/types.h>
3613 #endif],[cf_result=no],[cf_result=yes])
3614 AC_MSG_RESULT($cf_result)
3616 if test "$cf_result" = yes ; then
3617 CPPFLAGS="$CPPFLAGS ifelse($2,,-D$1,[-D$1=$2])"
3618 elif test "x$2" != "x" ; then
3619 AC_MSG_CHECKING(checking for compatible value versus $2)
3620 AC_TRY_COMPILE([#include <sys/types.h>
3624 #endif],[cf_result=yes],[cf_result=no])
3625 AC_MSG_RESULT($cf_result)
3626 if test "$cf_result" = no ; then
3627 # perhaps we can override it - try...
3628 CPPFLAGS="$CPPFLAGS -D$1=$2"
3632 dnl ---------------------------------------------------------------------------
3633 dnl CF_PRG_RULES version: 1 updated: 2006/06/03 11:45:08
3635 dnl Append definitions and rules for the given programs to the subdirectory
3636 dnl Makefiles, and the recursion rule for the top-level Makefile.
3639 dnl $1 = script to run
3640 dnl $2 = list of subdirectories
3644 AC_DEFUN([CF_PRG_RULES],
3648 if test ! -d $srcdir/$cf_dir; then
3650 elif test -f $srcdir/$cf_dir/programs; then
3651 $AWK -f $1 $srcdir/$cf_dir/programs >>$cf_dir/Makefile
3656 dnl ---------------------------------------------------------------------------
3657 dnl CF_PROG_AWK version: 1 updated: 2006/09/16 11:40:59
3659 dnl Check for awk, ensure that the check found something.
3660 AC_DEFUN([CF_PROG_AWK],
3663 test -z "$AWK" && AC_MSG_ERROR(No awk program found)
3665 dnl ---------------------------------------------------------------------------
3666 dnl CF_PROG_CC_C_O version: 2 updated: 2006/12/16 15:55:46
3668 dnl Analogous to AC_PROG_CC_C_O, but more useful: tests only $CC, ensures that
3669 dnl the output file can be renamed, and allows for a shell variable that can
3670 dnl be used later. The parameter is either CC or CXX. The result is the
3672 dnl $cf_cv_prog_CC_c_o
3673 dnl $cf_cv_prog_CXX_c_o
3674 AC_DEFUN([CF_PROG_CC_C_O],
3675 [AC_REQUIRE([AC_PROG_CC])dnl
3676 AC_MSG_CHECKING([whether [$]$1 understands -c and -o together])
3677 AC_CACHE_VAL(cf_cv_prog_$1_c_o,
3679 cat > conftest.$ac_ext <<CF_EOF
3683 ${cf_cv_main_return:-return}(0);
3686 # We do the test twice because some compilers refuse to overwrite an
3687 # existing .o file with -o, though they will create one.
3688 ac_try='[$]$1 -c conftest.$ac_ext -o conftest2.$ac_objext >&AC_FD_CC'
3689 if AC_TRY_EVAL(ac_try) &&
3690 test -f conftest2.$ac_objext && AC_TRY_EVAL(ac_try);
3692 eval cf_cv_prog_$1_c_o=yes
3694 eval cf_cv_prog_$1_c_o=no
3698 if test $cf_cv_prog_$1_c_o = yes; then
3699 AC_MSG_RESULT([yes])
3704 dnl ---------------------------------------------------------------------------
3705 dnl CF_PROG_CC_U_D version: 1 updated: 2005/07/14 16:59:30
3707 dnl Check if C (preprocessor) -U and -D options are processed in the order
3708 dnl given rather than by type of option. Some compilers insist on apply all
3709 dnl of the -U options after all of the -D options. Others allow mixing them,
3710 dnl and may predefine symbols that conflict with those we define.
3711 AC_DEFUN([CF_PROG_CC_U_D],
3713 AC_CACHE_CHECK(if $CC -U and -D options work together,cf_cv_cc_u_d_options,[
3714 cf_save_CPPFLAGS="$CPPFLAGS"
3715 CPPFLAGS="-UU_D_OPTIONS -DU_D_OPTIONS -DD_U_OPTIONS -UD_U_OPTIONS"
3718 make an undefined-error
3721 make a defined-error
3724 cf_cv_cc_u_d_options=yes],[
3725 cf_cv_cc_u_d_options=no])
3726 CPPFLAGS="$cf_save_CPPFLAGS"
3729 dnl ---------------------------------------------------------------------------
3730 dnl CF_PROG_EGREP version: 1 updated: 2006/09/16 11:40:59
3732 dnl AC_PROG_EGREP was introduced in autoconf 2.53.
3733 dnl This macro adds a check to ensure the script found something.
3734 AC_DEFUN([CF_PROG_EGREP],
3735 [AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep],
3736 [if echo a | (grep -E '(a|b)') >/dev/null 2>&1
3737 then ac_cv_prog_egrep='grep -E'
3738 else ac_cv_prog_egrep='egrep'
3740 EGREP=$ac_cv_prog_egrep
3742 test -z "$EGREP" && AC_MSG_ERROR(No egrep program found)
3744 dnl ---------------------------------------------------------------------------
3745 dnl CF_PROG_EXT version: 10 updated: 2004/01/03 19:28:18
3747 dnl Compute $PROG_EXT, used for non-Unix ports, such as OS/2 EMX.
3748 AC_DEFUN([CF_PROG_EXT],
3750 AC_REQUIRE([CF_CHECK_CACHE])
3751 case $cf_cv_system_name in
3753 CFLAGS="$CFLAGS -Zmt"
3754 CPPFLAGS="$CPPFLAGS -D__ST_MT_ERRNO__"
3755 CXXFLAGS="$CXXFLAGS -Zmt"
3756 # autoconf's macro sets -Zexe and suffix both, which conflict:w
3757 LDFLAGS="$LDFLAGS -Zmt -Zcrtdll"
3767 test -n "$PROG_EXT" && AC_DEFINE_UNQUOTED(PROG_EXT,"$PROG_EXT")
3769 dnl ---------------------------------------------------------------------------
3770 dnl CF_PROG_INSTALL version: 5 updated: 2002/12/21 22:46:07
3772 dnl Force $INSTALL to be an absolute-path. Otherwise, edit_man.sh and the
3773 dnl misc/tabset install won't work properly. Usually this happens only when
3774 dnl using the fallback mkinstalldirs script
3775 AC_DEFUN([CF_PROG_INSTALL],
3781 CF_DIRNAME(cf_dir,$INSTALL)
3782 test -z "$cf_dir" && cf_dir=.
3783 INSTALL=`cd $cf_dir && pwd`/`echo $INSTALL | sed -e 's%^.*/%%'`
3787 dnl ---------------------------------------------------------------------------
3788 dnl CF_PROG_LDCONFIG version: 1 updated: 2003/09/20 17:07:55
3789 dnl ----------------
3790 dnl Check for ldconfig, needed to fixup shared libraries that would be built
3791 dnl and then used in the install.
3792 AC_DEFUN([CF_PROG_LDCONFIG],[
3793 if test "$cross_compiling" = yes ; then
3796 case "$cf_cv_system_name" in #(vi
3798 test -z "$LDCONFIG" && LDCONFIG="/sbin/ldconfig -R"
3800 *) LDPATH=$PATH:/sbin:/usr/sbin
3801 AC_PATH_PROG(LDCONFIG,ldconfig,,$LDPATH)
3807 dnl ---------------------------------------------------------------------------
3808 dnl CF_PROG_LINT version: 1 updated: 2006/09/16 11:40:59
3810 AC_DEFUN([CF_PROG_LINT],
3812 AC_CHECK_PROGS(LINT, tdlint lint alint)
3815 dnl ---------------------------------------------------------------------------
3816 dnl CF_REGEX version: 3 updated: 1997/11/01 14:26:01
3818 dnl Attempt to determine if we've got one of the flavors of regular-expression
3819 dnl code that we can support.
3820 AC_DEFUN([CF_REGEX],
3822 AC_MSG_CHECKING([for regular-expression headers])
3823 AC_CACHE_VAL(cf_cv_regex,[
3824 AC_TRY_LINK([#include <sys/types.h>
3825 #include <regex.h>],[
3827 int x = regcomp(p, "", 0);
3828 int y = regexec(p, "", 0, 0, 0);
3830 ],[cf_cv_regex="regex.h"],[
3831 AC_TRY_LINK([#include <regexp.h>],[
3832 char *p = compile("", "", "", 0);
3833 int x = step("", "");
3834 ],[cf_cv_regex="regexp.h"],[
3835 cf_save_LIBS="$LIBS"
3837 AC_TRY_LINK([#include <regexpr.h>],[
3838 char *p = compile("", "", "");
3839 int x = step("", "");
3840 ],[cf_cv_regex="regexpr.h"],[LIBS="$cf_save_LIBS"])])])
3842 AC_MSG_RESULT($cf_cv_regex)
3843 case $cf_cv_regex in
3844 regex.h) AC_DEFINE(HAVE_REGEX_H_FUNCS) ;;
3845 regexp.h) AC_DEFINE(HAVE_REGEXP_H_FUNCS) ;;
3846 regexpr.h) AC_DEFINE(HAVE_REGEXPR_H_FUNCS) ;;
3849 dnl ---------------------------------------------------------------------------
3850 dnl CF_REMOVE_DEFINE version: 2 updated: 2005/07/09 16:12:18
3851 dnl ----------------
3852 dnl Remove all -U and -D options that refer to the given symbol from a list
3853 dnl of C compiler options. This works around the problem that not all
3854 dnl compilers process -U and -D options from left-to-right, so a -U option
3855 dnl cannot be used to cancel the effect of a preceding -D option.
3857 dnl $1 = target (which could be the same as the source variable)
3858 dnl $2 = source (including '$')
3859 dnl $3 = symbol to remove
3860 define([CF_REMOVE_DEFINE],
3862 # remove $3 symbol from $2
3864 sed -e 's/-[[UD]]$3\(=[[^ ]]*\)\?[[ ]]/ /g' \
3865 -e 's/-[[UD]]$3\(=[[^ ]]*\)\?[$]//g'`
3867 dnl ---------------------------------------------------------------------------
3868 dnl CF_REMOVE_LIB version: 1 updated: 2007/02/17 14:11:52
3870 dnl Remove the given library from the symbol
3872 dnl $1 = target (which could be the same as the source variable)
3873 dnl $2 = source (including '$')
3874 dnl $3 = library to remove
3875 define([CF_REMOVE_LIB],
3877 # remove $3 library from $2
3878 $1=`echo "$2" | sed -e 's/-l$3[[ ]]//g' -e 's/-l$3[$]//'`
3880 dnl ---------------------------------------------------------------------------
3881 dnl CF_RPATH_HACK version: 3 updated: 2007/12/01 11:14:13
3883 AC_DEFUN([CF_RPATH_HACK],
3885 AC_REQUIRE([CF_SHARED_OPTS])
3886 AC_MSG_CHECKING(for updated LDFLAGS)
3887 if test -n "$LDFLAGS" ; then
3888 AC_MSG_RESULT(maybe)
3889 CF_VERBOSE(...checking LDFLAGS $LDFLAGS)
3890 CF_VERBOSE(...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS)
3891 case "$EXTRA_LDFLAGS" in #(vi
3893 cf_rpath_hack="-Wl,-rpath,"
3905 if test -n "$cf_rpath_hack" ; then
3907 for cf_rpath_src in $LDFLAGS
3909 CF_VERBOSE(Filtering $cf_rpath_src)
3910 case $cf_rpath_src in #(vi
3912 if test "$cf_rpath_hack" = "-R " ; then
3913 cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e 's%-L%-R %'`
3915 cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e s%-L%$cf_rpath_hack%`
3917 CF_VERBOSE(...Filter $cf_rpath_tmp)
3918 EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS"
3921 cf_rpath_dst="$cf_rpath_dst $cf_rpath_src"
3925 LDFLAGS=$cf_rpath_dst
3926 CF_VERBOSE(...checked LDFLAGS $LDFLAGS)
3927 CF_VERBOSE(...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS)
3933 dnl ---------------------------------------------------------------------------
3934 dnl CF_SHARED_OPTS version: 48 updated: 2008/06/14 15:08:17
3937 dnl Attempt to determine the appropriate CC/LD options for creating a shared
3940 dnl Note: ${LOCAL_LDFLAGS} is used to link executables that will run within the
3941 dnl build-tree, i.e., by making use of the libraries that are compiled in ../lib
3942 dnl We avoid compiling-in a ../lib path for the shared library since that can
3943 dnl lead to unexpected results at runtime.
3944 dnl ${LOCAL_LDFLAGS2} has the same intention but assumes that the shared libraries
3945 dnl are compiled in ../../lib
3947 dnl The variable 'cf_cv_do_symlinks' is used to control whether we configure
3948 dnl to install symbolic links to the rel/abi versions of shared libraries.
3950 dnl The variable 'cf_cv_shlib_version' controls whether we use the rel or abi
3951 dnl version when making symbolic links.
3953 dnl The variable 'cf_cv_shlib_version_infix' controls whether shared library
3954 dnl version numbers are infix (ex: libncurses.<ver>.dylib) or postfix
3955 dnl (ex: libncurses.so.<ver>).
3957 dnl Some loaders leave 'so_locations' lying around. It's nice to clean up.
3958 AC_DEFUN([CF_SHARED_OPTS],
3960 AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
3964 INSTALL_LIB="-m 644"
3966 cf_cv_do_symlinks=no
3968 AC_MSG_CHECKING(if release/abi version should be used for shared libs)
3969 AC_ARG_WITH(shlib-version,
3970 [ --with-shlib-version=X Specify rel or abi version for shared libs],
3971 [test -z "$withval" && withval=auto
3972 case $withval in #(vi
3974 cf_cv_shlib_version=auto
3976 rel|abi|auto|no) #(vi
3977 cf_cv_shlib_version=$withval
3980 AC_MSG_ERROR([option value must be one of: rel, abi, auto or no])
3983 ],[cf_cv_shlib_version=auto])
3984 AC_MSG_RESULT($cf_cv_shlib_version)
3988 # Some less-capable ports of gcc support only -fpic
3990 if test "$GCC" = yes
3992 AC_MSG_CHECKING(which $CC option to use)
3993 cf_save_CFLAGS="$CFLAGS"
3994 for CC_SHARED_OPTS in -fPIC -fpic ''
3996 CFLAGS="$cf_save_CFLAGS $CC_SHARED_OPTS"
3997 AC_TRY_COMPILE([#include <stdio.h>],[int x = 1],[break],[])
3999 AC_MSG_RESULT($CC_SHARED_OPTS)
4000 CFLAGS="$cf_save_CFLAGS"
4003 cf_cv_shlib_version_infix=no
4005 case $cf_cv_system_name in
4007 MK_SHARED_LIB='${CC} ${CFLAGS} -o $[@] -Xlinker -soname=`basename $[@]` -nostart -e 0'
4011 MK_SHARED_LIB='sh ../mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
4012 cf_cv_shlib_version=cygdll
4013 cf_cv_shlib_version_infix=cygdll
4014 cat >mk_shared_lib.sh <<-CF_EOF
4017 IMPORT_LIB=\`echo "\[$]1" | sed -e 's/cyg/lib/' -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
4020 Linking shared library
4021 ** SHARED_LIB \[$]SHARED_LIB
4022 ** IMPORT_LIB \[$]IMPORT_LIB
4024 exec \[$]* -shared -Wl,--out-implib=../lib/\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o ../lib/\[$]{SHARED_LIB}
4026 chmod +x mk_shared_lib.sh
4029 EXTRA_CFLAGS="-no-cpp-precomp"
4030 CC_SHARED_OPTS="-dynamic"
4031 MK_SHARED_LIB='${CC} ${CFLAGS} -dynamiclib -install_name ${libdir}/`basename $[@]` -compatibility_version ${ABI_VERSION} -current_version ${ABI_VERSION} -o $[@]'
4032 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi
4033 cf_cv_shlib_version_infix=yes
4034 AC_CACHE_CHECK([if ld -search_paths_first works], cf_cv_ldflags_search_paths_first, [
4035 cf_save_LDFLAGS=$LDFLAGS
4036 LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
4037 AC_TRY_LINK(, [int i;], cf_cv_ldflags_search_paths_first=yes, cf_cv_ldflags_search_paths_first=no)
4038 LDFLAGS=$cf_save_LDFLAGS])
4039 if test $cf_cv_ldflags_search_paths_first = yes; then
4040 LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
4044 # (tested with gcc 2.7.2 -- I don't have c89)
4045 if test "$GCC" = yes; then
4046 LD_SHARED_OPTS='-Xlinker +b -Xlinker ${libdir}'
4049 LD_SHARED_OPTS='-Wl,+b,${libdir}'
4051 MK_SHARED_LIB='${LD} +b ${libdir} -b -o $[@]'
4052 # HP-UX shared libraries must be executable, and should be
4053 # readonly to exploit a quirk in the memory manager.
4054 INSTALL_LIB="-m 555"
4057 if test "$cf_cv_ld_rpath" = yes ; then
4058 if test "$GCC" = yes; then
4059 cf_ld_rpath_opt="-Wl,-rpath,"
4060 EXTRA_LDFLAGS="-Wl,-rpath,\${libdir} $EXTRA_LDFLAGS"
4062 cf_ld_rpath_opt="-rpath "
4063 EXTRA_LDFLAGS="-rpath \${libdir} $EXTRA_LDFLAGS"
4066 # tested with IRIX 5.2 and 'cc'.
4067 if test "$GCC" != yes; then
4068 CC_SHARED_OPTS='-KPIC'
4070 MK_SHARED_LIB='${CC} -shared -rdata_shared -soname `basename $[@]` -o $[@]'
4071 cf_cv_rm_so_locs=yes
4073 linux*|gnu*|k*bsd*-gnu)
4074 if test "$DFT_LWR_MODEL" = "shared" ; then
4075 LOCAL_LDFLAGS="-Wl,-rpath,\$(LOCAL_LIBDIR)"
4076 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4078 if test "$cf_cv_ld_rpath" = yes ; then
4079 cf_ld_rpath_opt="-Wl,-rpath,"
4080 EXTRA_LDFLAGS="-Wl,-rpath,\${libdir} $EXTRA_LDFLAGS"
4083 MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_shared_soname',-stats,-lc -o $[@]'
4086 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
4087 MK_SHARED_LIB='${LD} -Bshareable -soname,`basename $[@].${ABI_VERSION}` -o $[@]'
4089 openbsd*|freebsd[[12]].*)
4090 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
4091 MK_SHARED_LIB='${LD} -Bshareable -o $[@]'
4092 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
4095 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
4096 if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_ld_rpath" = yes ; then
4097 LOCAL_LDFLAGS="-rpath \$(LOCAL_LIBDIR)"
4098 LOCAL_LDFLAGS2="-rpath \${libdir} $LOCAL_LDFLAGS"
4099 cf_ld_rpath_opt="-rpath "
4100 EXTRA_LDFLAGS="-rpath \${libdir} $EXTRA_LDFLAGS"
4103 MK_SHARED_LIB='${LD} -Bshareable -soname=`basename $[@]` -o $[@]'
4106 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
4107 test "$cf_cv_ld_rpath" = yes && cf_ld_rpath_opt="-Wl,-rpath,"
4108 if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_ld_rpath" = yes ; then
4109 LOCAL_LDFLAGS="-Wl,-rpath,\$(LOCAL_LIBDIR)"
4110 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4111 EXTRA_LDFLAGS="-Wl,-rpath,\${libdir} $EXTRA_LDFLAGS"
4112 if test "$cf_cv_shlib_version" = auto; then
4113 if test -f /usr/libexec/ld.elf_so; then
4114 cf_cv_shlib_version=abi
4116 cf_cv_shlib_version=rel
4120 MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_shared_soname' -o $[@]'
4122 MK_SHARED_LIB='${LD} -Bshareable -o $[@]'
4126 # tested with OSF/1 V3.2 and 'cc'
4127 # tested with OSF/1 V3.2 and gcc 2.6.3 (but the c++ demo didn't
4128 # link with shared libs).
4129 MK_SHARED_LIB='${LD} -set_version ${REL_VERSION}:${ABI_VERSION} -expect_unresolved "*" -shared -soname `basename $[@]`'
4132 MK_SHARED_LIB="${MK_SHARED_LIB} -msym"
4135 MK_SHARED_LIB="${MK_SHARED_LIB}"' -o $[@]'
4136 if test "$DFT_LWR_MODEL" = "shared" ; then
4137 LOCAL_LDFLAGS="-Wl,-rpath,\$(LOCAL_LIBDIR)"
4138 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4140 if test "$cf_cv_ld_rpath" = yes ; then
4141 cf_ld_rpath_opt="-rpath"
4142 # EXTRA_LDFLAGS="$LOCAL_LDFLAGS $EXTRA_LDFLAGS"
4144 cf_cv_rm_so_locs=yes
4146 sco3.2v5*) # (also uw2* and UW7) hops 13-Apr-98
4147 # tested with osr5.0.5
4148 if test "$GCC" != yes; then
4149 CC_SHARED_OPTS='-belf -KPIC'
4151 MK_SHARED_LIB='${LD} -dy -G -h `basename $[@] .${REL_VERSION}`.${ABI_VERSION} -o [$]@'
4152 if test "$cf_cv_ld_rpath" = yes ; then
4153 # only way is to set LD_RUN_PATH but no switch for it
4156 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
4157 LINK_PROGS='LD_RUN_PATH=${libdir}'
4158 LINK_TESTS='Pwd=`pwd`;LD_RUN_PATH=`dirname $${Pwd}`/lib'
4161 # tested with SunOS 4.1.1 and gcc 2.7.0
4162 if test "$GCC" != yes; then
4163 CC_SHARED_OPTS='-KPIC'
4165 MK_SHARED_LIB='${LD} -assert pure-text -o $[@]'
4166 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
4169 # tested with SunOS 5.5.1 (solaris 2.5.1) and gcc 2.7.2
4170 # tested with SunOS 5.10 (solaris 10) and gcc 3.4.3
4171 if test "$DFT_LWR_MODEL" = "shared" ; then
4172 LOCAL_LDFLAGS="-R \$(LOCAL_LIBDIR):\${libdir}"
4173 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4175 if test "$cf_cv_ld_rpath" = yes ; then
4176 cf_ld_rpath_opt="-R"
4177 EXTRA_LDFLAGS="$LOCAL_LDFLAGS $EXTRA_LDFLAGS"
4180 if test "$GCC" != yes; then
4181 CC_SHARED_OPTS='-xcode=pic32'
4182 MK_SHARED_LIB='${CC} -dy -G -h '$cf_shared_soname' -o $[@]'
4184 MK_SHARED_LIB='${CC} -shared -dy -G -h '$cf_shared_soname' -o $[@]'
4188 # tested with UnixWare 7.1.0 (gcc 2.95.2 and cc)
4189 if test "$GCC" != yes; then
4190 CC_SHARED_OPTS='-KPIC'
4192 MK_SHARED_LIB='${LD} -d y -G -o [$]@'
4195 CC_SHARED_OPTS='unknown'
4196 MK_SHARED_LIB='echo unknown'
4200 # This works if the last tokens in $MK_SHARED_LIB are the -o target.
4201 case "$cf_cv_shlib_version" in #(vi
4203 case "$MK_SHARED_LIB" in #(vi
4205 test "$cf_cv_do_symlinks" = no && cf_cv_do_symlinks=yes
4208 AC_MSG_WARN(ignored --with-shlib-version)
4214 if test -n "$cf_ld_rpath_opt" ; then
4215 AC_MSG_CHECKING(if we need a space after rpath option)
4216 cf_save_LIBS="$LIBS"
4217 LIBS="$LIBS ${cf_ld_rpath_opt}$libdir"
4218 AC_TRY_LINK(, , cf_rpath_space=no, cf_rpath_space=yes)
4219 LIBS="$cf_save_LIBS"
4220 AC_MSG_RESULT($cf_rpath_space)
4221 test "$cf_rpath_space" = yes && cf_ld_rpath_opt="$cf_ld_rpath_opt "
4222 MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${libdir}"
4225 AC_SUBST(CC_SHARED_OPTS)
4226 AC_SUBST(LD_SHARED_OPTS)
4227 AC_SUBST(MK_SHARED_LIB)
4228 AC_SUBST(LINK_PROGS)
4229 AC_SUBST(LINK_TESTS)
4230 AC_SUBST(EXTRA_LDFLAGS)
4231 AC_SUBST(LOCAL_LDFLAGS)
4232 AC_SUBST(LOCAL_LDFLAGS2)
4233 AC_SUBST(INSTALL_LIB)
4235 dnl ---------------------------------------------------------------------------
4236 dnl CF_SHARED_SONAME version: 2 updated: 2006/10/21 12:33:41
4237 dnl ----------------
4238 dnl utility macro for CF_SHARED_OPTS, constructs "$cf_shared_soname" for
4239 dnl substitution into MK_SHARED_LIB string for the "-soname" (or similar)
4242 dnl $1 is the default that should be used for "$cf_cv_shlib_version".
4243 dnl If missing, use "rel".
4244 define([CF_SHARED_SONAME],
4246 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=ifelse($1,,rel,$1)
4247 if test "$cf_cv_shlib_version" = rel; then
4248 cf_shared_soname='`basename $[@] .${REL_VERSION}`.${ABI_VERSION}'
4250 cf_shared_soname='`basename $[@]`'
4253 dnl ---------------------------------------------------------------------------
4254 dnl CF_SIGWINCH version: 1 updated: 2006/04/02 16:41:09
4256 dnl Use this macro after CF_XOPEN_SOURCE, but do not require it (not all
4257 dnl programs need this test).
4259 dnl This is really a MacOS X 10.4.3 workaround. Defining _POSIX_C_SOURCE
4260 dnl forces SIGWINCH to be undefined (breaks xterm, ncurses). Oddly, the struct
4261 dnl winsize declaration is left alone - we may revisit this if Apple choose to
4262 dnl break that part of the interface as well.
4263 AC_DEFUN([CF_SIGWINCH],
4265 AC_CACHE_CHECK(if SIGWINCH is defined,cf_cv_define_sigwinch,[
4267 #include <sys/types.h>
4268 #include <sys/signal.h>
4269 ],[int x = SIGWINCH],
4270 [cf_cv_define_sigwinch=yes],
4272 #undef _XOPEN_SOURCE
4273 #undef _POSIX_SOURCE
4274 #undef _POSIX_C_SOURCE
4275 #include <sys/types.h>
4276 #include <sys/signal.h>
4277 ],[int x = SIGWINCH],
4278 [cf_cv_define_sigwinch=maybe],
4279 [cf_cv_define_sigwinch=no])
4283 if test "$cf_cv_define_sigwinch" = maybe ; then
4284 AC_CACHE_CHECK(for actual SIGWINCH definition,cf_cv_fixup_sigwinch,[
4285 cf_cv_fixup_sigwinch=unknown
4287 while test $cf_sigwinch != 1
4290 #undef _XOPEN_SOURCE
4291 #undef _POSIX_SOURCE
4292 #undef _POSIX_C_SOURCE
4293 #include <sys/types.h>
4294 #include <sys/signal.h>
4296 #if SIGWINCH != $cf_sigwinch
4300 [cf_cv_fixup_sigwinch=$cf_sigwinch
4303 cf_sigwinch=`expr $cf_sigwinch - 1`
4307 if test "$cf_cv_fixup_sigwinch" != unknown ; then
4308 CPPFLAGS="$CPPFLAGS -DSIGWINCH=$cf_cv_fixup_sigwinch"
4312 dnl ---------------------------------------------------------------------------
4313 dnl CF_SIG_ATOMIC_T version: 2 updated: 2005/09/18 17:27:12
4315 dnl signal handler, but there are some gcc depedencies in that recommendation.
4317 AC_DEFUN([CF_SIG_ATOMIC_T],
4319 AC_MSG_CHECKING(for signal global datatype)
4320 AC_CACHE_VAL(cf_cv_sig_atomic_t,[
4322 "volatile sig_atomic_t" \
4327 #include <sys/types.h>
4333 static void handler(int sig)
4337 [signal(SIGINT, handler);
4339 [cf_cv_sig_atomic_t=$cf_type],
4340 [cf_cv_sig_atomic_t=no])
4341 test "$cf_cv_sig_atomic_t" != no && break
4344 AC_MSG_RESULT($cf_cv_sig_atomic_t)
4345 test "$cf_cv_sig_atomic_t" != no && AC_DEFINE_UNQUOTED(SIG_ATOMIC_T, $cf_cv_sig_atomic_t)
4347 dnl ---------------------------------------------------------------------------
4348 dnl CF_SIZECHANGE version: 8 updated: 2000/11/04 12:22:16
4350 dnl Check for definitions & structures needed for window size-changing
4351 dnl FIXME: check that this works with "snake" (HP-UX 10.x)
4352 AC_DEFUN([CF_SIZECHANGE],
4354 AC_REQUIRE([CF_STRUCT_TERMIOS])
4355 AC_CACHE_CHECK(declaration of size-change, cf_cv_sizechange,[
4356 cf_cv_sizechange=unknown
4357 cf_save_CPPFLAGS="$CPPFLAGS"
4359 for cf_opts in "" "NEED_PTEM_H"
4362 CPPFLAGS="$cf_save_CPPFLAGS"
4363 test -n "$cf_opts" && CPPFLAGS="$CPPFLAGS -D$cf_opts"
4364 AC_TRY_COMPILE([#include <sys/types.h>
4365 #ifdef HAVE_TERMIOS_H
4366 #include <termios.h>
4368 #ifdef HAVE_TERMIO_H
4373 /* This is a workaround for SCO: they neglected to define struct winsize in
4374 * termios.h -- it's only in termio.h and ptem.h
4376 #include <sys/stream.h>
4377 #include <sys/ptem.h>
4379 #if !defined(sun) || !defined(HAVE_TERMIOS_H)
4380 #include <sys/ioctl.h>
4384 struct ttysize win; /* FIXME: what system is this? */
4385 int y = win.ts_lines;
4386 int x = win.ts_cols;
4393 no TIOCGSIZE or TIOCGWINSZ
4394 #endif /* TIOCGWINSZ */
4395 #endif /* TIOCGSIZE */
4397 [cf_cv_sizechange=yes],
4398 [cf_cv_sizechange=no])
4400 CPPFLAGS="$cf_save_CPPFLAGS"
4401 if test "$cf_cv_sizechange" = yes ; then
4402 echo "size-change succeeded ($cf_opts)" >&AC_FD_CC
4403 test -n "$cf_opts" && cf_cv_sizechange="$cf_opts"
4408 if test "$cf_cv_sizechange" != no ; then
4409 AC_DEFINE(HAVE_SIZECHANGE)
4410 case $cf_cv_sizechange in #(vi
4412 AC_DEFINE_UNQUOTED($cf_cv_sizechange )
4417 dnl ---------------------------------------------------------------------------
4418 dnl CF_SRC_MODULES version: 18 updated: 2005/05/28 12:58:54
4420 dnl For each parameter, test if the source-directory exists, and if it contains
4421 dnl a 'modules' file. If so, add to the list $cf_cv_src_modules which we'll
4422 dnl use in CF_LIB_RULES.
4424 dnl This uses the configured value to make the lists SRC_SUBDIRS and
4425 dnl SUB_MAKEFILES which are used in the makefile-generation scheme.
4426 AC_DEFUN([CF_SRC_MODULES],
4428 AC_MSG_CHECKING(for src modules)
4430 # dependencies and linker-arguments for test-programs
4431 TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEPS"
4432 TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEP2"
4433 if test "$DFT_LWR_MODEL" = "libtool"; then
4434 TEST_ARGS="${TEST_DEPS}"
4435 TEST_ARG2="${TEST_DEP2}"
4437 TEST_ARGS="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARGS"
4438 TEST_ARG2="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARG2"
4444 if test -f $srcdir/$cf_dir/modules; then
4446 # We may/may not have tack in the distribution, though the
4448 if test $cf_dir = tack ; then
4449 if test ! -f $srcdir/${cf_dir}/${cf_dir}.h; then
4454 if test -z "$cf_cv_src_modules"; then
4455 cf_cv_src_modules=$cf_dir
4457 cf_cv_src_modules="$cf_cv_src_modules $cf_dir"
4460 # Make the ncurses_cfg.h file record the library interface files as
4461 # well. These are header files that are the same name as their
4462 # directory. Ncurses is the only library that does not follow
4464 if test $cf_dir = tack ; then
4466 elif test -f $srcdir/${cf_dir}/${cf_dir}.h; then
4467 CF_UPPER(cf_have_include,$cf_dir)
4468 AC_DEFINE_UNQUOTED(HAVE_${cf_have_include}_H)
4469 AC_DEFINE_UNQUOTED(HAVE_LIB${cf_have_include})
4470 TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${cf_dir}${DFT_DEP_SUFFIX} $TEST_DEPS"
4471 TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${cf_dir}${DFT_DEP_SUFFIX} $TEST_DEP2"
4472 if test "$DFT_LWR_MODEL" = "libtool"; then
4473 TEST_ARGS="${TEST_DEPS}"
4474 TEST_ARG2="${TEST_DEP2}"
4476 TEST_ARGS="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARGS"
4477 TEST_ARG2="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARG2"
4482 AC_MSG_RESULT($cf_cv_src_modules)
4484 TEST_ARGS="-L${LIB_DIR} $TEST_ARGS"
4485 TEST_ARG2="-L${LIB_2ND} $TEST_ARG2"
4493 SRC_SUBDIRS="man include"
4494 for cf_dir in $cf_cv_src_modules
4496 SRC_SUBDIRS="$SRC_SUBDIRS $cf_dir"
4498 SRC_SUBDIRS="$SRC_SUBDIRS test"
4499 test -z "$MAKE_TERMINFO" && SRC_SUBDIRS="$SRC_SUBDIRS misc"
4500 test "$cf_with_cxx_binding" != no && SRC_SUBDIRS="$SRC_SUBDIRS c++"
4503 if test "$cf_cv_prog_gnat_correct" = yes && test -f $srcdir/Ada95/Makefile.in; then
4504 SRC_SUBDIRS="$SRC_SUBDIRS Ada95"
4505 ADA_SUBDIRS="gen src samples"
4509 for cf_dir in $SRC_SUBDIRS
4511 SUB_MAKEFILES="$SUB_MAKEFILES $cf_dir/Makefile"
4514 if test -n "$ADA_SUBDIRS"; then
4515 for cf_dir in $ADA_SUBDIRS
4517 SUB_MAKEFILES="$SUB_MAKEFILES Ada95/$cf_dir/Makefile"
4519 AC_SUBST(ADA_SUBDIRS)
4522 dnl ---------------------------------------------------------------------------
4523 dnl CF_STDCPP_LIBRARY version: 5 updated: 2000/08/12 23:18:52
4524 dnl -----------------
4525 dnl Check for -lstdc++, which is GNU's standard C++ library.
4526 AC_DEFUN([CF_STDCPP_LIBRARY],
4528 if test -n "$GXX" ; then
4529 case $cf_cv_system_name in #(vi
4531 cf_stdcpp_libname=stdcpp
4534 cf_stdcpp_libname=stdc++
4537 AC_CACHE_CHECK(for library $cf_stdcpp_libname,cf_cv_libstdcpp,[
4539 LIBS="$LIBS -l$cf_stdcpp_libname"
4541 #include <strstream.h>],[
4543 strstreambuf foo(buf, sizeof(buf))
4545 [cf_cv_libstdcpp=yes],
4546 [cf_cv_libstdcpp=no])
4549 test "$cf_cv_libstdcpp" = yes && CXXLIBS="$CXXLIBS -l$cf_stdcpp_libname"
4552 dnl ---------------------------------------------------------------------------
4553 dnl CF_STRIP_G_OPT version: 3 updated: 2002/12/21 19:25:52
4555 dnl Remove "-g" option from the compiler options
4556 AC_DEFUN([CF_STRIP_G_OPT],
4557 [$1=`echo ${$1} | sed -e 's%-g %%' -e 's%-g$%%'`])dnl
4558 dnl ---------------------------------------------------------------------------
4559 dnl CF_STRUCT_SIGACTION version: 3 updated: 2000/08/12 23:18:52
4560 dnl -------------------
4561 dnl Check if we need _POSIX_SOURCE defined to use struct sigaction. We'll only
4562 dnl do this if we've found the sigaction function.
4564 dnl If needed, define SVR4_ACTION.
4565 AC_DEFUN([CF_STRUCT_SIGACTION],[
4566 if test "$ac_cv_func_sigaction" = yes; then
4567 AC_MSG_CHECKING(whether sigaction needs _POSIX_SOURCE)
4569 #include <sys/types.h>
4570 #include <signal.h>],
4571 [struct sigaction act],
4575 #define _POSIX_SOURCE
4576 #include <sys/types.h>
4577 #include <signal.h>],
4578 [struct sigaction act],
4580 AC_DEFINE(SVR4_ACTION)],
4581 [sigact_bad=unknown])])
4582 AC_MSG_RESULT($sigact_bad)
4585 dnl ---------------------------------------------------------------------------
4586 dnl CF_STRUCT_TERMIOS version: 5 updated: 2000/11/04 12:22:46
4587 dnl -----------------
4588 dnl Some machines require _POSIX_SOURCE to completely define struct termios.
4589 dnl If so, define SVR4_TERMIO
4590 AC_DEFUN([CF_STRUCT_TERMIOS],[
4596 if test "$ISC" = yes ; then
4597 AC_CHECK_HEADERS( sys/termio.h )
4599 if test "$ac_cv_header_termios_h" = yes ; then
4600 case "$CFLAGS $CPPFLAGS" in
4602 termios_bad=dunno ;;
4603 *) termios_bad=maybe ;;
4605 if test "$termios_bad" = maybe ; then
4606 AC_MSG_CHECKING(whether termios.h needs _POSIX_SOURCE)
4607 AC_TRY_COMPILE([#include <termios.h>],
4608 [struct termios foo; int x = foo.c_iflag],
4611 #define _POSIX_SOURCE
4612 #include <termios.h>],
4613 [struct termios foo; int x = foo.c_iflag],
4614 termios_bad=unknown,
4615 termios_bad=yes AC_DEFINE(SVR4_TERMIO))
4617 AC_MSG_RESULT($termios_bad)
4621 dnl ---------------------------------------------------------------------------
4622 dnl CF_SUBST version: 4 updated: 2006/06/17 12:33:03
4624 dnl Shorthand macro for substituting things that the user may override
4625 dnl with an environment variable.
4627 dnl $1 = long/descriptive name
4628 dnl $2 = environment variable
4629 dnl $3 = default value
4630 AC_DEFUN([CF_SUBST],
4631 [AC_CACHE_VAL(cf_cv_subst_$2,[
4632 AC_MSG_CHECKING(for $1 (symbol $2))
4633 CF_SUBST_IF([-z "[$]$2"], [$2], [$3])
4634 cf_cv_subst_$2=[$]$2
4635 AC_MSG_RESULT([$]$2)
4638 dnl ---------------------------------------------------------------------------
4639 dnl CF_SUBST_IF version: 2 updated: 2006/06/17 12:33:03
4641 dnl Shorthand macro for substituting things that the user may override
4642 dnl with an environment variable.
4644 dnl $1 = condition to pass to "test"
4645 dnl $2 = environment variable
4646 dnl $3 = value if the test succeeds
4647 dnl $4 = value if the test fails
4648 AC_DEFUN([CF_SUBST_IF],
4657 dnl ---------------------------------------------------------------------------
4658 dnl CF_SUBST_NCURSES_VERSION version: 8 updated: 2006/09/16 11:40:59
4659 dnl ------------------------
4660 dnl Get the version-number for use in shared-library naming, etc.
4661 AC_DEFUN([CF_SUBST_NCURSES_VERSION],
4663 AC_REQUIRE([CF_PROG_EGREP])
4664 NCURSES_MAJOR="`$ac_cv_prog_egrep '^NCURSES_MAJOR[[ ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`"
4665 NCURSES_MINOR="`$ac_cv_prog_egrep '^NCURSES_MINOR[[ ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`"
4666 NCURSES_PATCH="`$ac_cv_prog_egrep '^NCURSES_PATCH[[ ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`"
4667 cf_cv_abi_version=${NCURSES_MAJOR}
4668 cf_cv_rel_version=${NCURSES_MAJOR}.${NCURSES_MINOR}
4669 dnl Show the computed version, for logging
4670 cf_cv_timestamp=`date`
4671 AC_MSG_RESULT(Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp))
4672 dnl We need these values in the generated headers
4673 AC_SUBST(NCURSES_MAJOR)
4674 AC_SUBST(NCURSES_MINOR)
4675 AC_SUBST(NCURSES_PATCH)
4676 dnl We need these values in the generated makefiles
4677 AC_SUBST(cf_cv_rel_version)
4678 AC_SUBST(cf_cv_abi_version)
4679 AC_SUBST(cf_cv_builtin_bool)
4680 AC_SUBST(cf_cv_header_stdbool_h)
4681 AC_SUBST(cf_cv_type_of_bool)dnl
4683 dnl ---------------------------------------------------------------------------
4684 dnl CF_SYS_TIME_SELECT version: 4 updated: 2000/10/04 09:18:40
4685 dnl ------------------
4686 dnl Check if we can include <sys/time.h> with <sys/select.h>; this breaks on
4687 dnl older SCO configurations.
4688 AC_DEFUN([CF_SYS_TIME_SELECT],
4690 AC_MSG_CHECKING(if sys/time.h works with sys/select.h)
4691 AC_CACHE_VAL(cf_cv_sys_time_select,[
4693 #include <sys/types.h>
4694 #ifdef HAVE_SYS_TIME_H
4695 #include <sys/time.h>
4697 #ifdef HAVE_SYS_SELECT_H
4698 #include <sys/select.h>
4700 ],[],[cf_cv_sys_time_select=yes],
4701 [cf_cv_sys_time_select=no])
4703 AC_MSG_RESULT($cf_cv_sys_time_select)
4704 test "$cf_cv_sys_time_select" = yes && AC_DEFINE(HAVE_SYS_TIME_SELECT)
4706 dnl ---------------------------------------------------------------------------
4707 dnl CF_TOP_BUILDDIR version: 1 updated: 2006/10/15 16:33:23
4709 dnl Define a top_builddir symbol, for applications that need an absolute path.
4710 AC_DEFUN([CF_TOP_BUILDDIR],
4713 AC_SUBST(top_builddir)
4715 dnl ---------------------------------------------------------------------------
4716 dnl CF_TYPEOF_CHTYPE version: 8 updated: 2006/12/16 12:33:30
4717 dnl ----------------
4718 dnl Determine the type we should use for chtype (and attr_t, which is treated
4719 dnl as the same thing). We want around 32 bits, so on most machines want a
4720 dnl long, but on newer 64-bit machines, probably want an int. If we're using
4721 dnl wide characters, we have to have a type compatible with that, as well.
4722 AC_DEFUN([CF_TYPEOF_CHTYPE],
4724 AC_MSG_CHECKING([for type of chtype])
4725 AC_CACHE_VAL(cf_cv_typeof_chtype,[
4727 #define WANT_BITS 31
4731 FILE *fp = fopen("cf_test.out", "w");
4733 char *result = "long";
4734 if (sizeof(unsigned long) > sizeof(unsigned int)) {
4737 for (n = 0; n < WANT_BITS; n++) {
4740 if (y != 1 || x == 0) {
4746 * If x is nonzero, an int is big enough for the bits
4749 result = (x != 0) ? "int" : "long";
4754 ${cf_cv_main_return:-return}(0);
4757 [cf_cv_typeof_chtype=`cat cf_test.out`],
4758 [cf_cv_typeof_chtype=long],
4759 [cf_cv_typeof_chtype=long])
4762 AC_MSG_RESULT($cf_cv_typeof_chtype)
4764 AC_SUBST(cf_cv_typeof_chtype)
4765 AC_DEFINE_UNQUOTED(TYPEOF_CHTYPE,$cf_cv_typeof_chtype)
4767 dnl ---------------------------------------------------------------------------
4768 dnl CF_TYPE_SIGACTION version: 3 updated: 2000/08/12 23:18:52
4769 dnl -----------------
4771 AC_DEFUN([CF_TYPE_SIGACTION],
4773 AC_MSG_CHECKING([for type sigaction_t])
4774 AC_CACHE_VAL(cf_cv_type_sigaction,[
4776 #include <signal.h>],
4778 [cf_cv_type_sigaction=yes],
4779 [cf_cv_type_sigaction=no])])
4780 AC_MSG_RESULT($cf_cv_type_sigaction)
4781 test "$cf_cv_type_sigaction" = yes && AC_DEFINE(HAVE_TYPE_SIGACTION)
4783 dnl ---------------------------------------------------------------------------
4784 dnl CF_UNSIGNED_LITERALS version: 2 updated: 1998/02/07 22:10:16
4785 dnl --------------------
4786 dnl Test if the compiler supports 'U' and 'L' suffixes. Only old compilers
4787 dnl won't, but they're still there.
4788 AC_DEFUN([CF_UNSIGNED_LITERALS],
4790 AC_MSG_CHECKING([if unsigned literals are legal])
4791 AC_CACHE_VAL(cf_cv_unsigned_literals,[
4792 AC_TRY_COMPILE([],[long x = 1L + 1UL + 1U + 1],
4793 [cf_cv_unsigned_literals=yes],
4794 [cf_cv_unsigned_literals=no])
4796 AC_MSG_RESULT($cf_cv_unsigned_literals)
4798 dnl ---------------------------------------------------------------------------
4799 dnl CF_UPPER version: 5 updated: 2001/01/29 23:40:59
4801 dnl Make an uppercase version of a variable
4802 dnl $1=uppercase($2)
4803 AC_DEFUN([CF_UPPER],
4805 $1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
4807 dnl ---------------------------------------------------------------------------
4808 dnl CF_VERBOSE version: 3 updated: 2007/07/29 09:55:12
4810 dnl Use AC_VERBOSE w/o the warnings
4811 AC_DEFUN([CF_VERBOSE],
4812 [test -n "$verbose" && echo " $1" 1>&AC_FD_MSG
4815 dnl ---------------------------------------------------------------------------
4816 dnl CF_WCHAR_TYPE version: 2 updated: 2004/01/17 19:18:20
4818 dnl Check if type wide-character type $1 is declared, and if so, which header
4819 dnl file is needed. The second parameter is used to set a shell variable when
4820 dnl the type is not found. The first parameter sets a shell variable for the
4822 AC_DEFUN([CF_WCHAR_TYPE],
4824 # This is needed on Tru64 5.0 to declare $1
4825 AC_CACHE_CHECK(if we must include wchar.h to declare $1,cf_cv_$1,[
4830 #ifdef HAVE_LIBUTF8_H
4831 #include <libutf8.h>
4840 #ifdef HAVE_LIBUTF8_H
4841 #include <libutf8.h>
4845 [cf_cv_$1=unknown])])])
4847 if test "$cf_cv_$1" = yes ; then
4848 AC_DEFINE(NEED_WCHAR_H)
4853 # if we do not find $1 in either place, use substitution to provide a fallback.
4854 if test "$cf_cv_$1" = unknown ; then
4859 # if we find $1 in either place, use substitution to provide a fallback.
4860 if test "$cf_cv_$1" != unknown ; then
4865 dnl ---------------------------------------------------------------------------
4866 dnl CF_WEAK_SYMBOLS version: 1 updated: 2008/08/16 19:18:06
4868 dnl Check for compiler-support for weak symbols.
4869 dnl This works with "recent" gcc.
4870 AC_DEFUN([CF_WEAK_SYMBOLS],[
4871 AC_CACHE_CHECK(if $CC supports weak symbols,cf_cv_weak_symbols,[
4874 #include <stdio.h>],
4876 #if defined(__GNUC__)
4877 # if defined __USE_ISOC99
4878 # define _cat_pragma(exp) _Pragma(#exp)
4879 # define _weak_pragma(exp) _cat_pragma(weak name)
4881 # define _weak_pragma(exp)
4883 # define _declare(name) __extension__ extern __typeof__(name) name
4884 # define weak_symbol(name) _weak_pragma(name) _declare(name) __attribute__((weak))
4888 ],[cf_cv_weak_symbols=yes],[cf_cv_weak_symbols=no])
4891 dnl ---------------------------------------------------------------------------
4892 dnl CF_WITH_ABI_VERSION version: 1 updated: 2003/09/20 18:12:49
4893 dnl -------------------
4894 dnl Allow library's ABI to be overridden. Generally this happens when a
4895 dnl packager has incremented the ABI past that used in the original package,
4896 dnl and wishes to keep doing this.
4898 dnl $1 is the package name, if any, to derive a corresponding {package}_ABI
4900 AC_DEFUN([CF_WITH_ABI_VERSION],[
4901 test -z "$cf_cv_abi_version" && cf_cv_abi_version=0
4902 AC_ARG_WITH(abi-version,
4903 [ --with-abi-version=XXX override derived ABI version],
4904 [AC_MSG_WARN(overriding ABI version $cf_cv_abi_version to $withval)
4905 cf_cv_abi_version=$withval])
4906 CF_NUMBER_SYNTAX($cf_cv_abi_version,ABI version)
4908 $1_ABI=$cf_cv_abi_version
4911 dnl ---------------------------------------------------------------------------
4912 dnl CF_WITH_DBMALLOC version: 6 updated: 2006/12/16 14:24:05
4913 dnl ----------------
4914 dnl Configure-option for dbmalloc. The optional parameter is used to override
4915 dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
4916 AC_DEFUN([CF_WITH_DBMALLOC],[
4917 CF_NO_LEAKS_OPTION(dbmalloc,
4918 [ --with-dbmalloc test: use Conor Cahill's dbmalloc library],
4921 if test "$with_dbmalloc" = yes ; then
4922 AC_CHECK_HEADER(dbmalloc.h,
4923 [AC_CHECK_LIB(dbmalloc,[debug_malloc]ifelse($1,,[],[,$1]))])
4926 dnl ---------------------------------------------------------------------------
4927 dnl CF_WITH_DMALLOC version: 6 updated: 2006/12/16 14:24:05
4929 dnl Configure-option for dmalloc. The optional parameter is used to override
4930 dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
4931 AC_DEFUN([CF_WITH_DMALLOC],[
4932 CF_NO_LEAKS_OPTION(dmalloc,
4933 [ --with-dmalloc test: use Gray Watson's dmalloc library],
4936 if test "$with_dmalloc" = yes ; then
4937 AC_CHECK_HEADER(dmalloc.h,
4938 [AC_CHECK_LIB(dmalloc,[dmalloc_debug]ifelse($1,,[],[,$1]))])
4941 dnl ---------------------------------------------------------------------------
4942 dnl CF_WITH_GPM version: 7 updated: 2008/03/23 14:48:54
4945 dnl The option parameter (if neither yes/no) is assumed to be the name of
4946 dnl the gpm library, e.g., for dynamic loading.
4947 AC_DEFUN([CF_WITH_GPM],
4949 AC_MSG_CHECKING(if you want to link with the GPM mouse library)
4951 [ --with-gpm use Alessandro Rubini's GPM library],
4952 [with_gpm=$withval],
4954 AC_MSG_RESULT($with_gpm)
4956 if test "$with_gpm" != no ; then
4957 AC_CHECK_HEADER(gpm.h,[
4958 AC_DEFINE(HAVE_GPM_H)
4959 if test "$with_gpm" != yes && test "$with_gpm" != maybe ; then
4960 CF_VERBOSE(assuming we really have GPM library)
4961 AC_DEFINE(HAVE_LIBGPM)
4963 AC_CHECK_LIB(gpm,Gpm_Open,[:],[
4964 AC_MSG_ERROR(Cannot link with GPM library)
4969 test "$with_gpm" != maybe && AC_MSG_WARN(Cannot find GPM header)
4974 dnl ---------------------------------------------------------------------------
4975 dnl CF_WITH_LIBTOOL version: 19 updated: 2008/03/29 15:46:43
4977 dnl Provide a configure option to incorporate libtool. Define several useful
4978 dnl symbols for the makefile rules.
4980 dnl The reference to AC_PROG_LIBTOOL does not normally work, since it uses
4981 dnl macros from libtool.m4 which is in the aclocal directory of automake.
4982 dnl Following is a simple script which turns on the AC_PROG_LIBTOOL macro.
4983 dnl But that still does not work properly since the macro is expanded outside
4984 dnl the CF_WITH_LIBTOOL macro:
4987 dnl ACLOCAL=`aclocal --print-ac-dir`
4988 dnl if test -z "$ACLOCAL" ; then
4989 dnl echo cannot find aclocal directory
4991 dnl elif test ! -f $ACLOCAL/libtool.m4 ; then
4992 dnl echo cannot find libtool.m4 file
4996 dnl LOCAL=aclocal.m4
4997 dnl ORIG=aclocal.m4.orig
4999 dnl trap "mv $ORIG $LOCAL" 0 1 2 5 15
5003 dnl # sed the LIBTOOL= assignment to omit the current directory?
5004 dnl sed -e 's/^LIBTOOL=.*/LIBTOOL=${LIBTOOL-libtool}/' $ACLOCAL/libtool.m4 >>$LOCAL
5005 dnl cat $ORIG >>$LOCAL
5009 AC_DEFUN([CF_WITH_LIBTOOL],
5011 ifdef([AC_PROG_LIBTOOL],,[
5014 # common library maintenance symbols that are convenient for libtool scripts:
5015 LIB_CREATE='${AR} -cr'
5016 LIB_OBJECT='${OBJECTS}'
5020 # symbols used to prop libtool up to enable it to determine what it should be
5028 AC_MSG_CHECKING(if you want to build libraries with libtool)
5029 AC_ARG_WITH(libtool,
5030 [ --with-libtool generate libraries with libtool],
5031 [with_libtool=$withval],
5033 AC_MSG_RESULT($with_libtool)
5034 if test "$with_libtool" != "no"; then
5035 ifdef([AC_PROG_LIBTOOL],[
5036 # missing_content_AC_PROG_LIBTOOL{{
5038 # missing_content_AC_PROG_LIBTOOL}}
5040 if test "$with_libtool" != "yes" ; then
5041 CF_PATH_SYNTAX(with_libtool)
5042 LIBTOOL=$with_libtool
5044 AC_PATH_PROG(LIBTOOL,libtool)
5046 if test -z "$LIBTOOL" ; then
5047 AC_MSG_ERROR(Cannot find libtool)
5050 LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${DESTDIR}${libdir} -version-info `cut -f1 ${srcdir}/VERSION` ${LIBTOOL_OPTS} -o'
5051 LIB_OBJECT='${OBJECTS:.o=.lo}'
5053 LIB_CLEAN='${LIBTOOL} --mode=clean'
5054 LIB_COMPILE='${LIBTOOL} --mode=compile'
5055 LIB_LINK='${LIBTOOL} --mode=link ${CC} ${LIBTOOL_OPTS}'
5056 LIB_INSTALL='${LIBTOOL} --mode=install'
5057 LIB_UNINSTALL='${LIBTOOL} --mode=uninstall'
5060 # Show the version of libtool
5061 AC_MSG_CHECKING(version of libtool)
5063 # Save the version in a cache variable - this is not entirely a good
5064 # thing, but the version string from libtool is very ugly, and for
5065 # bug reports it might be useful to have the original string.
5066 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.]].*//'`
5067 AC_MSG_RESULT($cf_cv_libtool_version)
5068 if test -z "$cf_cv_libtool_version" ; then
5069 AC_MSG_ERROR(This is not GNU libtool)
5072 # special hack to add --tag option for C++ compiler
5073 case $cf_cv_libtool_version in
5074 1.[[5-9]]*|[[2-9]]*)
5075 LIBTOOL_CXX="$LIBTOOL --tag=CXX"
5076 LIBTOOL="$LIBTOOL --tag=CC"
5079 LIBTOOL_CXX="$LIBTOOL"
5087 test -z "$LIBTOOL" && ECHO_LT=
5090 AC_SUBST(LIBTOOL_CXX)
5091 AC_SUBST(LIBTOOL_OPTS)
5093 AC_SUBST(LIB_CREATE)
5094 AC_SUBST(LIB_OBJECT)
5095 AC_SUBST(LIB_SUFFIX)
5099 AC_SUBST(LIB_COMPILE)
5101 AC_SUBST(LIB_INSTALL)
5102 AC_SUBST(LIB_UNINSTALL)
5105 dnl ---------------------------------------------------------------------------
5106 dnl CF_WITH_PATH version: 8 updated: 2007/05/13 13:16:35
5108 dnl Wrapper for AC_ARG_WITH to ensure that user supplies a pathname, not just
5109 dnl defaulting to yes/no.
5111 dnl $1 = option name
5113 dnl $3 = environment variable to set
5114 dnl $4 = default value, shown in the help-message, must be a constant
5115 dnl $5 = default value, if it's an expression & cannot be in the help-message
5117 AC_DEFUN([CF_WITH_PATH],
5118 [AC_ARG_WITH($1,[$2 ](default: ifelse($4,,empty,$4)),,
5119 ifelse($4,,[withval="${$3}"],[withval="${$3-ifelse($5,,$4,$5)}"]))dnl
5120 if ifelse($5,,true,[test -n "$5"]) ; then
5121 CF_PATH_SYNTAX(withval)
5126 dnl ---------------------------------------------------------------------------
5127 dnl CF_WITH_PATHLIST version: 5 updated: 2001/12/10 01:28:30
5128 dnl ----------------
5129 dnl Process an option specifying a list of colon-separated paths.
5131 dnl $1 = option name
5133 dnl $3 = environment variable to set
5134 dnl $4 = default value, shown in the help-message, must be a constant
5135 dnl $5 = default value, if it's an expression & cannot be in the help-message
5136 dnl $6 = flag to tell if we want to define or substitute
5138 AC_DEFUN([CF_WITH_PATHLIST],[
5139 AC_REQUIRE([CF_PATHSEP])
5140 AC_ARG_WITH($1,[$2 ](default: ifelse($4,,empty,$4)),,
5141 ifelse($4,,[withval=${$3}],[withval=${$3-ifelse($5,,$4,$5)}]))dnl
5143 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${PATHSEP}"
5145 for cf_src_path in $withval
5147 CF_PATH_SYNTAX(cf_src_path)
5148 test -n "$cf_dst_path" && cf_dst_path="${cf_dst_path}:"
5149 cf_dst_path="${cf_dst_path}${cf_src_path}"
5154 # Strip single quotes from the value, e.g., when it was supplied as a literal
5156 case $cf_dst_path in #(vi
5158 cf_dst_path=`echo $cf_dst_path |sed -e s/\'// -e s/\'\$//`
5161 cf_dst_path=`echo "$cf_dst_path" | sed -e 's/\\\\/\\\\\\\\/g'`
5164 eval '$3="$cf_dst_path"'
5168 dnl ---------------------------------------------------------------------------
5169 dnl CF_WITH_PTHREAD version: 2 updated: 2008/08/23 18:26:05
5171 dnl Check for POSIX thread library.
5172 AC_DEFUN([CF_WITH_PTHREAD],
5174 AC_MSG_CHECKING(if you want to link with the pthread library)
5175 AC_ARG_WITH(pthread,
5176 [ --with-pthread use POSIX thread library],
5177 [with_pthread=$withval],
5179 AC_MSG_RESULT($with_pthread)
5181 if test "$with_pthread" != no ; then
5182 AC_CHECK_HEADER(pthread.h,[
5183 AC_DEFINE(HAVE_PTHREADS_H)
5185 AC_MSG_CHECKING(if we can link with the pthread library)
5186 cf_save_LIBS="$LIBS"
5187 LIBS="-lpthread $LIBS"
5189 #include <pthread.h>
5191 int rc = pthread_create(0,0,0,0);
5192 ],[with_pthread=yes],[with_pthread=no])
5193 LIBS="$cf_save_LIBS"
5194 AC_MSG_RESULT($with_pthread)
5196 if test "$with_pthread" = yes ; then
5197 LIBS="-lpthread $LIBS"
5198 AC_DEFINE(HAVE_LIBPTHREADS)
5200 AC_MSG_ERROR(Cannot link with pthread library)
5205 dnl ---------------------------------------------------------------------------
5206 dnl CF_WITH_REL_VERSION version: 1 updated: 2003/09/20 18:12:49
5207 dnl -------------------
5208 dnl Allow library's release-version to be overridden. Generally this happens when a
5209 dnl packager has incremented the release-version past that used in the original package,
5210 dnl and wishes to keep doing this.
5212 dnl $1 is the package name, if any, to derive corresponding {package}_MAJOR
5213 dnl and {package}_MINOR symbols
5215 AC_DEFUN([CF_WITH_REL_VERSION],[
5216 test -z "$cf_cv_rel_version" && cf_cv_rel_version=0.0
5217 AC_ARG_WITH(rel-version,
5218 [ --with-rel-version=XXX override derived release version],
5219 [AC_MSG_WARN(overriding release version $cf_cv_rel_version to $withval)
5220 cf_cv_rel_version=$withval])
5222 CF_NUMBER_SYNTAX($cf_cv_rel_version,Release version)
5224 $1_MAJOR=`echo "$cf_cv_rel_version" | sed -e 's/\..*//'`
5225 $1_MINOR=`echo "$cf_cv_rel_version" | sed -e 's/^[[^.]]*//' -e 's/^\.//' -e 's/\..*//'`
5226 CF_NUMBER_SYNTAX([$]$1_MAJOR,Release major-version)
5227 CF_NUMBER_SYNTAX([$]$1_MINOR,Release minor-version)
5230 dnl ---------------------------------------------------------------------------
5231 dnl CF_WITH_SYSMOUSE version: 2 updated: 2003/03/22 19:13:43
5232 dnl ----------------
5233 dnl If we can compile with sysmouse, make it available unless it is not wanted.
5234 AC_DEFUN([CF_WITH_SYSMOUSE],[
5235 # not everyone has "test -c"
5236 if test -c /dev/sysmouse 2>/dev/null ; then
5237 AC_MSG_CHECKING(if you want to use sysmouse)
5238 AC_ARG_WITH(sysmouse,
5239 [ --with-sysmouse use sysmouse (FreeBSD console)],
5240 [cf_with_sysmouse=$withval],
5241 [cf_with_sysmouse=maybe])
5242 if test "$cf_with_sysmouse" != no ; then
5244 #include <osreldate.h>
5245 #if (__FreeBSD_version >= 400017)
5246 #include <sys/consio.h>
5247 #include <sys/fbio.h>
5249 #include <machine/console.h>
5252 struct mouse_info the_mouse;
5253 ioctl(0, CONS_MOUSECTL, &the_mouse);
5254 ],[cf_with_sysmouse=yes],[cf_with_sysmouse=no])
5256 AC_MSG_RESULT($cf_with_sysmouse)
5257 test "$cf_with_sysmouse" = yes && AC_DEFINE(USE_SYSMOUSE)
5260 dnl ---------------------------------------------------------------------------
5261 dnl CF_WITH_VALGRIND version: 1 updated: 2006/12/14 18:00:21
5262 dnl ----------------
5263 AC_DEFUN([CF_WITH_VALGRIND],[
5264 CF_NO_LEAKS_OPTION(valgrind,
5265 [ --with-valgrind test: use valgrind],
5268 dnl ---------------------------------------------------------------------------
5269 dnl CF_XOPEN_SOURCE version: 26 updated: 2008/07/27 11:26:57
5271 dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
5272 dnl or adapt to the vendor's definitions to get equivalent functionality,
5273 dnl without losing the common non-POSIX features.
5276 dnl $1 is the nominal value for _XOPEN_SOURCE
5277 dnl $2 is the nominal value for _POSIX_C_SOURCE
5278 AC_DEFUN([CF_XOPEN_SOURCE],[
5280 AC_REQUIRE([CF_PROG_CC_U_D])
5282 cf_XOPEN_SOURCE=ifelse($1,,500,$1)
5283 cf_POSIX_C_SOURCE=ifelse($2,,199506L,$2)
5285 case $host_os in #(vi
5287 CPPFLAGS="$CPPFLAGS -D_ALL_SOURCE"
5289 freebsd*|dragonfly*) #(vi
5290 # 5.x headers associate
5291 # _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L
5292 # _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L
5293 cf_POSIX_C_SOURCE=200112L
5295 CPPFLAGS="$CPPFLAGS -D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
5298 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE"
5301 CPPFLAGS="$CPPFLAGS -D_SGI_SOURCE"
5303 linux*|gnu*|k*bsd*-gnu) #(vi
5307 # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <arpa/inet.h>
5310 # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
5313 # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
5316 CPPFLAGS="$CPPFLAGS -D_OSF_SOURCE"
5319 CPPFLAGS="$CPPFLAGS -D_QNX_SOURCE"
5322 # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
5325 CPPFLAGS="$CPPFLAGS -D__EXTENSIONS__"
5328 AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[
5329 AC_TRY_COMPILE([#include <sys/types.h>],[
5330 #ifndef _XOPEN_SOURCE
5333 [cf_cv_xopen_source=no],
5334 [cf_save="$CPPFLAGS"
5335 CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
5336 AC_TRY_COMPILE([#include <sys/types.h>],[
5337 #ifdef _XOPEN_SOURCE
5340 [cf_cv_xopen_source=no],
5341 [cf_cv_xopen_source=$cf_XOPEN_SOURCE])
5345 if test "$cf_cv_xopen_source" != no ; then
5346 CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE)
5347 CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE)
5348 test "$cf_cv_cc_u_d_options" = yes && \
5349 CPPFLAGS="$CPPFLAGS -U_XOPEN_SOURCE"
5350 CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_cv_xopen_source"
5352 CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)