1 dnl***************************************************************************
2 dnl Copyright (c) 1998-2009,2010 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.499 2010/03/28 00:14:25 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: 6 updated: 2010/02/26 19:52:07
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 -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: 9 updated: 2010/01/09 11:05:50
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 case $cf_add_cflags in #(vi
133 cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
134 CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,$cf_tst_cppflags)
137 cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
142 cf_new_cflags="$cf_new_cflags $cf_add_cflags"
147 cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
149 cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[[^"]]*"'\''//'`
151 test "${cf_add_cflags}" != "${cf_tst_cflags}" \
152 && test -z "${cf_tst_cflags}" \
153 && cf_fix_cppflags=no
158 if test -n "$cf_new_cflags" ; then
159 ifelse($2,,,[CF_VERBOSE(add to \$CFLAGS $cf_new_cflags)])
160 CFLAGS="$CFLAGS $cf_new_cflags"
163 if test -n "$cf_new_cppflags" ; then
164 ifelse($2,,,[CF_VERBOSE(add to \$CPPFLAGS $cf_new_cppflags)])
165 CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
168 if test -n "$cf_new_extra_cppflags" ; then
169 ifelse($2,,,[CF_VERBOSE(add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags)])
170 EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
173 AC_SUBST(EXTRA_CPPFLAGS)
176 dnl ---------------------------------------------------------------------------
177 dnl CF_ADD_INCDIR version: 12 updated: 2009/01/18 10:00:47
179 dnl Add an include-directory to $CPPFLAGS. Don't add /usr/include, since it's
180 dnl redundant. We don't normally need to add -I/usr/local/include for gcc,
181 dnl but old versions (and some misinstalled ones) need that. To make things
182 dnl worse, gcc 3.x may give error messages if -I/usr/local/include is added to
183 dnl the include-path).
184 AC_DEFUN([CF_ADD_INCDIR],
186 if test -n "$1" ; then
187 for cf_add_incdir in $1
189 while test $cf_add_incdir != /usr/include
191 if test -d $cf_add_incdir
194 if test -n "$CFLAGS$CPPFLAGS" ; then
195 # a loop is needed to ensure we can add subdirs of existing dirs
196 for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
197 if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
198 cf_have_incdir=yes; break
203 if test "$cf_have_incdir" = no ; then
204 if test "$cf_add_incdir" = /usr/local/include ; then
207 cf_save_CPPFLAGS=$CPPFLAGS
208 CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
209 AC_TRY_COMPILE([#include <stdio.h>],
212 [cf_have_incdir=yes])
213 CPPFLAGS=$cf_save_CPPFLAGS
218 if test "$cf_have_incdir" = no ; then
219 CF_VERBOSE(adding $cf_add_incdir to include-path)
220 ifelse($2,,CPPFLAGS,$2)="$ifelse($2,,CPPFLAGS,$2) -I$cf_add_incdir"
222 cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
223 test "$cf_top_incdir" = "$cf_add_incdir" && break
224 cf_add_incdir="$cf_top_incdir"
233 dnl ---------------------------------------------------------------------------
234 dnl CF_ADD_LIBDIR version: 8 updated: 2009/01/18 10:01:08
236 dnl Adds to the library-path
238 dnl Some machines have trouble with multiple -L options.
240 dnl $1 is the (list of) directory(s) to add
241 dnl $2 is the optional name of the variable to update (default LDFLAGS)
243 AC_DEFUN([CF_ADD_LIBDIR],
245 if test -n "$1" ; then
246 for cf_add_libdir in $1
248 if test $cf_add_libdir = /usr/lib ; then
250 elif test -d $cf_add_libdir
253 if test -n "$LDFLAGS$LIBS" ; then
254 # a loop is needed to ensure we can add subdirs of existing dirs
255 for cf_test_libdir in $LDFLAGS $LIBS ; do
256 if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
257 cf_have_libdir=yes; break
261 if test "$cf_have_libdir" = no ; then
262 CF_VERBOSE(adding $cf_add_libdir to library-path)
263 ifelse($2,,LDFLAGS,$2)="-L$cf_add_libdir $ifelse($2,,LDFLAGS,$2)"
269 dnl ---------------------------------------------------------------------------
270 dnl CF_ADD_SUBDIR_PATH version: 2 updated: 2007/07/29 10:12:59
271 dnl ------------------
272 dnl Append to a search-list for a nonstandard header/lib-file
273 dnl $1 = the variable to return as result
274 dnl $2 = the package name
275 dnl $3 = the subdirectory, e.g., bin, include or lib
276 dnl $4 = the directory under which we will test for subdirectories
277 dnl $5 = a directory that we do not want $4 to match
278 AC_DEFUN([CF_ADD_SUBDIR_PATH],
280 test "$4" != "$5" && \
282 ifelse([$5],NONE,,[(test $5 = NONE || test -d $5) &&]) {
283 test -n "$verbose" && echo " ... testing for $3-directories under $4"
284 test -d $4/$3 && $1="[$]$1 $4/$3"
285 test -d $4/$3/$2 && $1="[$]$1 $4/$3/$2"
286 test -d $4/$3/$2/$3 && $1="[$]$1 $4/$3/$2/$3"
287 test -d $4/$2/$3 && $1="[$]$1 $4/$2/$3"
288 test -d $4/$2/$3/$2 && $1="[$]$1 $4/$2/$3/$2"
291 dnl ---------------------------------------------------------------------------
292 dnl CF_ANSI_CC_CHECK version: 9 updated: 2001/12/30 17:53:34
294 dnl This is adapted from the macros 'fp_PROG_CC_STDC' and 'fp_C_PROTOTYPES'
295 dnl in the sharutils 4.2 distribution.
296 AC_DEFUN([CF_ANSI_CC_CHECK],
298 AC_CACHE_CHECK(for ${CC-cc} option to accept ANSI C, cf_cv_ansi_cc,[
300 cf_save_CFLAGS="$CFLAGS"
301 cf_save_CPPFLAGS="$CPPFLAGS"
302 # Don't try gcc -ansi; that turns off useful extensions and
303 # breaks some systems' header files.
305 # Ultrix and OSF/1 -std1
306 # HP-UX -Aa -D_HPUX_SOURCE
308 # UnixWare 1.2 (cannot use -Xc, since ANSI/POSIX clashes)
309 for cf_arg in "-DCC_HAS_PROTOS" \
314 "-Aa -D_HPUX_SOURCE" \
317 CF_ADD_CFLAGS($cf_arg)
320 #ifndef CC_HAS_PROTOS
321 #if !defined(__STDC__) || (__STDC__ != 1)
326 int test (int i, double x);
327 struct s1 {int (*f) (int a);};
328 struct s2 {int (*f) (double a);};],
329 [cf_cv_ansi_cc="$cf_arg"; break])
331 CFLAGS="$cf_save_CFLAGS"
332 CPPFLAGS="$cf_save_CPPFLAGS"
335 if test "$cf_cv_ansi_cc" != "no"; then
336 if test ".$cf_cv_ansi_cc" != ".-DCC_HAS_PROTOS"; then
337 CF_ADD_CFLAGS($cf_cv_ansi_cc)
339 AC_DEFINE(CC_HAS_PROTOS)
343 dnl ---------------------------------------------------------------------------
344 dnl CF_ANSI_CC_REQD version: 4 updated: 2008/03/23 14:48:54
346 dnl For programs that must use an ANSI compiler, obtain compiler options that
347 dnl will make it recognize prototypes. We'll do preprocessor checks in other
348 dnl macros, since tools such as unproto can fake prototypes, but only part of
349 dnl the preprocessor.
350 AC_DEFUN([CF_ANSI_CC_REQD],
351 [AC_REQUIRE([CF_ANSI_CC_CHECK])
352 if test "$cf_cv_ansi_cc" = "no"; then
354 [Your compiler does not appear to recognize prototypes.
355 You have the following choices:
356 a. adjust your compiler options
357 b. get an up-to-date compiler
358 c. use a wrapper such as unproto])
361 dnl ---------------------------------------------------------------------------
362 dnl CF_AR_FLAGS version: 4 updated: 2009/02/07 13:42:23
364 dnl Check for suitable "ar" (archiver) options for updating an archive.
365 AC_DEFUN([CF_AR_FLAGS],[
366 AC_REQUIRE([CF_PROG_AR])
368 AC_CACHE_CHECK(for options to update archives, cf_cv_ar_flags,[
369 cf_cv_ar_flags=unknown
370 for cf_ar_flags in -curv curv -crv crv -cqv cqv -rv rv
372 rm -f conftest.$ac_cv_objext
375 cat >conftest.$ac_ext <<EOF
376 #line __oline__ "configure"
377 int testdata[[3]] = { 123, 456, 789 };
379 if AC_TRY_EVAL(ac_compile) ; then
380 $AR $cf_ar_flags conftest.a conftest.$ac_cv_objext 2>&AC_FD_CC 1>/dev/null
381 if test -f conftest.a ; then
382 cf_cv_ar_flags=$cf_ar_flags
386 CF_VERBOSE(cannot compile test-program)
390 rm -f conftest.a conftest.$ac_ext conftest.$ac_cv_objext
392 test -z "$ARFLAGS" && ARFLAGS=$cf_cv_ar_flags
393 AC_SUBST(ARFLAGS,$cf_cv_ar_flags)
395 dnl ---------------------------------------------------------------------------
396 dnl CF_AWK_BIG_PRINTF version: 3 updated: 2008/12/27 12:30:03
397 dnl -----------------
398 dnl Check if awk can handle big strings using printf. Some older versions of
399 dnl awk choke on large strings passed via "%s".
401 dnl $1 = desired string size
402 dnl $2 = variable to set with result
403 AC_DEFUN([CF_AWK_BIG_PRINTF],
410 if ( ${AWK} 'BEGIN { xx = "x"; while (length(xx) < $1) { xx = xx "x"; }; printf("%s\n", xx); }' \
411 | $AWK '{ printf "%d\n", length([$]0); }' | $AWK 'BEGIN { eqls=0; recs=0; } { recs++; if ([$]0 == 12000) eqls++; } END { if (recs != 1 || eqls != 1) exit 1; }' 2>/dev/null >/dev/null ) ; then
419 dnl ---------------------------------------------------------------------------
420 dnl CF_BOOL_DECL version: 8 updated: 2004/01/30 15:51:18
422 dnl Test if 'bool' is a builtin type in the configured C++ compiler. Some
423 dnl older compilers (e.g., gcc 2.5.8) don't support 'bool' directly; gcc
424 dnl 2.6.3 does, in anticipation of the ANSI C++ standard.
426 dnl Treat the configuration-variable specially here, since we're directly
427 dnl substituting its value (i.e., 1/0).
429 dnl $1 is the shell variable to store the result in, if not $cv_cv_builtin_bool
430 AC_DEFUN([CF_BOOL_DECL],
432 AC_MSG_CHECKING(if we should include stdbool.h)
434 AC_CACHE_VAL(cf_cv_header_stdbool_h,[
435 AC_TRY_COMPILE([],[bool foo = false],
436 [cf_cv_header_stdbool_h=0],
441 ],[bool foo = false],
442 [cf_cv_header_stdbool_h=1],
443 [cf_cv_header_stdbool_h=0])])])
445 if test "$cf_cv_header_stdbool_h" = 1
446 then AC_MSG_RESULT(yes)
447 else AC_MSG_RESULT(no)
450 AC_MSG_CHECKING([for builtin bool type])
452 AC_CACHE_VAL(ifelse($1,,cf_cv_builtin_bool,[$1]),[
455 #include <sys/types.h>
457 [ifelse($1,,cf_cv_builtin_bool,[$1])=1],
458 [ifelse($1,,cf_cv_builtin_bool,[$1])=0])
461 if test "$ifelse($1,,cf_cv_builtin_bool,[$1])" = 1
462 then AC_MSG_RESULT(yes)
463 else AC_MSG_RESULT(no)
466 dnl ---------------------------------------------------------------------------
467 dnl CF_BOOL_SIZE version: 12 updated: 2006/12/16 12:33:30
469 dnl Test for the size of 'bool' in the configured C++ compiler (e.g., a type).
470 dnl Don't bother looking for bool.h, since it's been deprecated.
472 dnl If the current compiler is C rather than C++, we get the bool definition
473 dnl from <stdbool.h>.
474 AC_DEFUN([CF_BOOL_SIZE],
476 AC_MSG_CHECKING([for size of bool])
477 AC_CACHE_VAL(cf_cv_type_of_bool,[
483 #if defined(__cplusplus)
485 #ifdef HAVE_GXX_BUILTIN_H
486 #include <g++/builtin.h>
487 #elif HAVE_GPP_BUILTIN_H
488 #include <gpp/builtin.h>
495 #if $cf_cv_header_stdbool_h
503 FILE *fp = fopen("cf_test.out", "w");
507 fputs("unsigned ", fp);
508 if (sizeof(x) == sizeof(int)) fputs("int", fp);
509 else if (sizeof(x) == sizeof(char)) fputs("char", fp);
510 else if (sizeof(x) == sizeof(short))fputs("short",fp);
511 else if (sizeof(x) == sizeof(long)) fputs("long", fp);
514 ${cf_cv_main_return:-return}(0);
517 [cf_cv_type_of_bool=`cat cf_test.out`
518 if test -z "$cf_cv_type_of_bool"; then
519 cf_cv_type_of_bool=unknown
521 [cf_cv_type_of_bool=unknown],
522 [cf_cv_type_of_bool=unknown])
525 AC_MSG_RESULT($cf_cv_type_of_bool)
526 if test "$cf_cv_type_of_bool" = unknown ; then
527 case .$NCURSES_BOOL in #(vi
528 .auto|.) NCURSES_BOOL=unsigned;;
530 AC_MSG_WARN(Assuming $NCURSES_BOOL for type of bool)
531 cf_cv_type_of_bool=$NCURSES_BOOL
534 dnl ---------------------------------------------------------------------------
535 dnl CF_BUILD_CC version: 6 updated: 2006/10/14 15:23:15
537 dnl If we're cross-compiling, allow the user to override the tools and their
538 dnl options. The configure script is oriented toward identifying the host
539 dnl compiler, etc., but we need a build compiler to generate parts of the
542 dnl $1 = default for $CPPFLAGS
543 dnl $2 = default for $LIBS
544 AC_DEFUN([CF_BUILD_CC],[
545 AC_REQUIRE([CF_PROG_EXT])
546 if test "$cross_compiling" = yes ; then
548 # defaults that we might want to override
549 : ${BUILD_CFLAGS:=''}
550 : ${BUILD_CPPFLAGS:='ifelse([$1],,,[$1])'}
551 : ${BUILD_LDFLAGS:=''}
552 : ${BUILD_LIBS:='ifelse([$2],,,[$2])'}
553 : ${BUILD_EXEEXT:='$x'}
554 : ${BUILD_OBJEXT:='o'}
556 AC_ARG_WITH(build-cc,
557 [ --with-build-cc=XXX the build C compiler ($BUILD_CC)],
558 [BUILD_CC="$withval"],
559 [AC_CHECK_PROGS(BUILD_CC, gcc cc cl)])
560 AC_MSG_CHECKING(for native build C compiler)
561 AC_MSG_RESULT($BUILD_CC)
563 AC_MSG_CHECKING(for native build C preprocessor)
564 AC_ARG_WITH(build-cpp,
565 [ --with-build-cpp=XXX the build C preprocessor ($BUILD_CPP)],
566 [BUILD_CPP="$withval"],
567 [BUILD_CPP='${BUILD_CC} -E'])
568 AC_MSG_RESULT($BUILD_CPP)
570 AC_MSG_CHECKING(for native build C flags)
571 AC_ARG_WITH(build-cflags,
572 [ --with-build-cflags=XXX the build C compiler-flags ($BUILD_CFLAGS)],
573 [BUILD_CFLAGS="$withval"])
574 AC_MSG_RESULT($BUILD_CFLAGS)
576 AC_MSG_CHECKING(for native build C preprocessor-flags)
577 AC_ARG_WITH(build-cppflags,
578 [ --with-build-cppflags=XXX the build C preprocessor-flags ($BUILD_CPPFLAGS)],
579 [BUILD_CPPFLAGS="$withval"])
580 AC_MSG_RESULT($BUILD_CPPFLAGS)
582 AC_MSG_CHECKING(for native build linker-flags)
583 AC_ARG_WITH(build-ldflags,
584 [ --with-build-ldflags=XXX the build linker-flags ($BUILD_LDFLAGS)],
585 [BUILD_LDFLAGS="$withval"])
586 AC_MSG_RESULT($BUILD_LDFLAGS)
588 AC_MSG_CHECKING(for native build linker-libraries)
589 AC_ARG_WITH(build-libs,
590 [ --with-build-libs=XXX the build libraries (${BUILD_LIBS})],
591 [BUILD_LIBS="$withval"])
592 AC_MSG_RESULT($BUILD_LIBS)
594 # this assumes we're on Unix.
598 : ${BUILD_CC:='${CC}'}
600 if ( test "$BUILD_CC" = "$CC" || test "$BUILD_CC" = '${CC}' ) ; then
601 AC_MSG_ERROR([Cross-build requires two compilers.
602 Use --with-build-cc to specify the native compiler.])
606 : ${BUILD_CC:='${CC}'}
607 : ${BUILD_CPP:='${CPP}'}
608 : ${BUILD_CFLAGS:='${CFLAGS}'}
609 : ${BUILD_CPPFLAGS:='${CPPFLAGS}'}
610 : ${BUILD_LDFLAGS:='${LDFLAGS}'}
611 : ${BUILD_LIBS:='${LIBS}'}
612 : ${BUILD_EXEEXT:='$x'}
613 : ${BUILD_OBJEXT:='o'}
618 AC_SUBST(BUILD_CFLAGS)
619 AC_SUBST(BUILD_CPPFLAGS)
620 AC_SUBST(BUILD_LDFLAGS)
622 AC_SUBST(BUILD_EXEEXT)
623 AC_SUBST(BUILD_OBJEXT)
625 dnl ---------------------------------------------------------------------------
626 dnl CF_CFG_DEFAULTS version: 7 updated: 2005/09/24 16:15:00
628 dnl Determine the default configuration into which we'll install ncurses. This
629 dnl can be overridden by the user's command-line options. There's two items to
631 dnl 1. the prefix (e.g., /usr)
632 dnl 2. the header files (e.g., /usr/include/ncurses)
633 dnl We'll look for a previous installation of ncurses and use the same defaults.
635 dnl We don't use AC_PREFIX_DEFAULT, because it gets evaluated too soon, and
636 dnl we don't use AC_PREFIX_PROGRAM, because we cannot distinguish ncurses's
637 dnl programs from a vendor's.
638 AC_DEFUN([CF_CFG_DEFAULTS],
640 AC_MSG_CHECKING(for prefix)
641 if test "x$prefix" = "xNONE" ; then
642 case "$cf_cv_system_name" in
643 # non-vendor systems don't have a conflict
644 openbsd*|freebsd*|linux*|cygwin*|k*bsd*-gnu)
647 *) prefix=$ac_default_prefix
651 AC_MSG_RESULT($prefix)
653 if test "x$prefix" = "xNONE" ; then
654 AC_MSG_CHECKING(for default include-directory)
655 test -n "$verbose" && echo 1>&AC_FD_MSG
658 $includedir/ncurses \
660 $prefix/include/ncurses \
662 /usr/local/include/ncurses \
666 cf_dir=`eval echo $cf_symbol`
667 if test -f $cf_dir/curses.h ; then
668 if ( fgrep NCURSES_VERSION $cf_dir/curses.h 2>&1 >/dev/null ) ; then
669 includedir="$cf_symbol"
670 test -n "$verbose" && echo $ac_n " found " 1>&AC_FD_MSG
674 test -n "$verbose" && echo " tested $cf_dir" 1>&AC_FD_MSG
676 AC_MSG_RESULT($includedir)
679 dnl ---------------------------------------------------------------------------
680 dnl CF_CGETENT version: 3 updated: 2000/08/12 23:18:52
682 dnl Check if the terminal-capability database functions are available. If not,
683 dnl ncurses has a much-reduced version.
684 AC_DEFUN([CF_CGETENT],[
685 AC_MSG_CHECKING(for terminal-capability database functions)
686 AC_CACHE_VAL(cf_cv_cgetent,[
688 #include <stdlib.h>],[
691 char *db_array = temp;
692 cgetent(&buf, /* int *, */ &db_array, "vt100");
693 cgetcap(buf, "tc", '=');
694 cgetmatch(buf, "tc");
699 AC_MSG_RESULT($cf_cv_cgetent)
700 test "$cf_cv_cgetent" = yes && AC_DEFINE(HAVE_BSD_CGETENT)
702 dnl ---------------------------------------------------------------------------
703 dnl CF_CHECK_CACHE version: 11 updated: 2008/03/23 14:45:59
705 dnl Check if we're accidentally using a cache from a different machine.
706 dnl Derive the system name, as a check for reusing the autoconf cache.
708 dnl If we've packaged config.guess and config.sub, run that (since it does a
709 dnl better job than uname). Normally we'll use AC_CANONICAL_HOST, but allow
710 dnl an extra parameter that we may override, e.g., for AC_CANONICAL_SYSTEM
711 dnl which is useful in cross-compiles.
713 dnl Note: we would use $ac_config_sub, but that is one of the places where
714 dnl autoconf 2.5x broke compatibility with autoconf 2.13
715 AC_DEFUN([CF_CHECK_CACHE],
717 if test -f $srcdir/config.guess || test -f $ac_aux_dir/config.guess ; then
718 ifelse([$1],,[AC_CANONICAL_HOST],[$1])
719 system_name="$host_os"
721 system_name="`(uname -s -r) 2>/dev/null`"
722 if test -z "$system_name" ; then
723 system_name="`(hostname) 2>/dev/null`"
726 test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name")
727 AC_CACHE_VAL(cf_cv_system_name,[cf_cv_system_name="$system_name"])
729 test -z "$system_name" && system_name="$cf_cv_system_name"
730 test -n "$cf_cv_system_name" && AC_MSG_RESULT(Configuring for $cf_cv_system_name)
732 if test ".$system_name" != ".$cf_cv_system_name" ; then
733 AC_MSG_RESULT(Cached system name ($system_name) does not agree with actual ($cf_cv_system_name))
734 AC_MSG_ERROR("Please remove config.cache and try again.")
737 dnl ---------------------------------------------------------------------------
738 dnl CF_CHECK_ERRNO version: 10 updated: 2008/08/22 16:33:22
740 dnl Check for data that is usually declared in <stdio.h> or <errno.h>, e.g.,
741 dnl the 'errno' variable. Define a DECL_xxx symbol if we must declare it
744 dnl $1 = the name to check
745 dnl $2 = the assumed type
746 AC_DEFUN([CF_CHECK_ERRNO],
748 AC_CACHE_CHECK(if external $1 is declared, cf_cv_dcl_$1,[
754 #include <sys/types.h>
755 #include <errno.h> ],
756 ifelse($2,,int,$2) x = (ifelse($2,,int,$2)) $1,
761 if test "$cf_cv_dcl_$1" = no ; then
762 CF_UPPER(cf_result,decl_$1)
763 AC_DEFINE_UNQUOTED($cf_result)
766 # It's possible (for near-UNIX clones) that the data doesn't exist
767 CF_CHECK_EXTERN_DATA($1,ifelse($2,,int,$2))
769 dnl ---------------------------------------------------------------------------
770 dnl CF_CHECK_EXTERN_DATA version: 3 updated: 2001/12/30 18:03:23
771 dnl --------------------
772 dnl Check for existence of external data in the current set of libraries. If
773 dnl we can modify it, it's real enough.
774 dnl $1 = the name to check
776 AC_DEFUN([CF_CHECK_EXTERN_DATA],
778 AC_CACHE_CHECK(if external $1 exists, cf_cv_have_$1,[
788 if test "$cf_cv_have_$1" = yes ; then
789 CF_UPPER(cf_result,have_$1)
790 AC_DEFINE_UNQUOTED($cf_result)
794 dnl ---------------------------------------------------------------------------
795 dnl CF_CHECK_GPM_WGETCH version: 1 updated: 2007/04/28 14:38:06
796 dnl -------------------
797 dnl Check if GPM is already linked with curses. If so - and if the linkage
798 dnl is not "weak" - warn about this because it can create problems linking
799 dnl applications with ncurses.
800 AC_DEFUN([CF_CHECK_GPM_WGETCH],[
801 AC_CHECK_LIB(gpm,Gpm_Wgetch,[
803 AC_CACHE_CHECK(if GPM is weakly bound to curses library, cf_cv_check_gpm_wgetch,[
804 cf_cv_check_gpm_wgetch=unknown
805 if test "$cross_compiling" != yes ; then
807 cat >conftest.$ac_ext <<CF_EOF
812 ${cf_cv_main_return:-return}(0);
817 # This only works if we can look at the symbol table. If a shared
818 # library is stripped for install, we cannot use that. So we're forced
819 # to rely on the static library, noting that some packagers may not
821 LIBS="-static -lgpm -dynamic $LIBS"
822 if AC_TRY_EVAL(ac_compile) ; then
823 if AC_TRY_EVAL(ac_link) ; then
824 cf_cv_check_gpm_wgetch=`nm conftest$ac_exeext | egrep '\<wgetch\>' | egrep '\<[[vVwW]]\>'`
825 test -n "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=yes
826 test -z "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=no
834 if test "$cf_cv_check_gpm_wgetch" != yes ; then
835 AC_MSG_WARN(GPM library is already linked with curses - read the FAQ)
838 dnl ---------------------------------------------------------------------------
839 dnl CF_CPP_PARAM_INIT version: 4 updated: 2001/04/07 22:31:18
840 dnl -----------------
841 dnl Check if the C++ compiler accepts duplicate parameter initialization. This
842 dnl is a late feature for the standard and is not in some recent compilers
844 AC_DEFUN([CF_CPP_PARAM_INIT],
846 if test -n "$CXX"; then
847 AC_CACHE_CHECK(if $CXX accepts parameter initialization,cf_cv_cpp_param_init,[
859 TEST::TEST(int x = 1) // some compilers do not like second initializer
865 [cf_cv_cpp_param_init=yes],
866 [cf_cv_cpp_param_init=no],
867 [cf_cv_cpp_param_init=unknown])
871 test "$cf_cv_cpp_param_init" = yes && AC_DEFINE(CPP_HAS_PARAM_INIT)
873 dnl ---------------------------------------------------------------------------
874 dnl CF_CPP_STATIC_CAST version: 1 updated: 2005/07/23 16:52:43
875 dnl ------------------
876 dnl Check if the C++ compiler accepts static_cast in generics. This appears to
877 dnl not be supported in g++ before 3.0
878 AC_DEFUN([CF_CPP_STATIC_CAST],
880 if test -n "$CXX"; then
882 AC_CACHE_CHECK(if $CXX accepts static_cast,cf_cv_cpp_static_cast,[
890 NCursesPanel(int nlines,
900 template<class T> class NCursesUserPanel : public NCursesPanel
903 NCursesUserPanel (int nlines,
907 const T* p_UserData = static_cast<T*>(0))
908 : NCursesPanel (nlines, ncols, begin_y, begin_x)
911 NCursesUserPanel(const T* p_UserData = static_cast<T*>(0)) : NCursesPanel()
915 virtual ~NCursesUserPanel() {};
918 const char* p_UserData = static_cast<char*>(0)],
919 [cf_cv_cpp_static_cast=yes],
920 [cf_cv_cpp_static_cast=no])
927 test "$cf_cv_cpp_static_cast" = yes && AC_DEFINE(CPP_HAS_STATIC_CAST)
929 dnl ---------------------------------------------------------------------------
930 dnl CF_C_INLINE version: 2 updated: 2007/08/11 14:09:50
932 dnl Check if the C compiler supports "inline".
933 dnl $1 is the name of a shell variable to set if inline is supported
934 dnl $2 is the threshold for gcc 4.x's option controlling maximum inline size
935 AC_DEFUN([CF_C_INLINE],[
938 if test "$ac_cv_c_inline" != no ; then
940 if test "$INTEL_COMPILER" = yes
943 elif test "$GCC" = yes
945 AC_CACHE_CHECK(if gcc supports options to tune inlining,cf_cv_gcc_inline,[
946 cf_save_CFLAGS=$CFLAGS
947 CFLAGS="$CFLAGS --param max-inline-insns-single=$2"
948 AC_TRY_COMPILE([inline int foo(void) { return 1; }],
949 [${cf_cv_main_return:-return} foo()],
950 [cf_cv_gcc_inline=yes],
951 [cf_cv_gcc_inline=no])
952 CFLAGS=$cf_save_CFLAGS
954 if test "$cf_cv_gcc_inline" = yes ; then
955 CF_ADD_CFLAGS([--param max-inline-insns-single=$2])
961 dnl ---------------------------------------------------------------------------
962 dnl CF_DIRNAME version: 4 updated: 2002/12/21 19:25:52
964 dnl "dirname" is not portable, so we fake it with a shell script.
965 AC_DEFUN([CF_DIRNAME],[$1=`echo $2 | sed -e 's%/[[^/]]*$%%'`])dnl
966 dnl ---------------------------------------------------------------------------
967 dnl CF_DIRS_TO_MAKE version: 3 updated: 2002/02/23 20:38:31
969 AC_DEFUN([CF_DIRS_TO_MAKE],
972 for cf_item in $cf_list_models
974 CF_OBJ_SUBDIR($cf_item,cf_subdir)
975 for cf_item2 in $DIRS_TO_MAKE
977 test $cf_item2 = $cf_subdir && break
979 test ".$cf_item2" != ".$cf_subdir" && DIRS_TO_MAKE="$DIRS_TO_MAKE $cf_subdir"
981 for cf_dir in $DIRS_TO_MAKE
983 test ! -d $cf_dir && mkdir $cf_dir
985 AC_SUBST(DIRS_TO_MAKE)
987 dnl ---------------------------------------------------------------------------
988 dnl CF_DISABLE_LEAKS version: 5 updated: 2010/03/13 15:14:55
990 dnl Combine no-leak checks with the libraries or tools that are used for the
992 AC_DEFUN([CF_DISABLE_LEAKS],[
994 AC_REQUIRE([CF_WITH_DMALLOC])
995 AC_REQUIRE([CF_WITH_DBMALLOC])
996 AC_REQUIRE([CF_WITH_VALGRIND])
998 AC_MSG_CHECKING(if you want to perform memory-leak testing)
1000 [ --disable-leaks test: free permanent memory, analyze leaks],
1001 [if test "x$enableval" = xno; then with_no_leaks=yes; else with_no_leaks=no; fi],
1002 : ${with_no_leaks:=no})
1003 AC_MSG_RESULT($with_no_leaks)
1005 if test "$with_no_leaks" = yes ; then
1009 dnl ---------------------------------------------------------------------------
1010 dnl CF_ENABLE_RPATH version: 2 updated: 2010/03/27 18:39:42
1012 dnl Check if the rpath option should be used, setting cache variable
1013 dnl cf_cv_enable_rpath if so.
1014 AC_DEFUN([CF_ENABLE_RPATH],
1016 AC_MSG_CHECKING(if rpath option should be used)
1017 AC_ARG_ENABLE(rpath,
1018 [ --enable-rpath use rpath option when generating shared libraries],
1019 [cf_cv_enable_rpath=$enableval],
1020 [cf_cv_enable_rpath=no])
1021 AC_MSG_RESULT($cf_cv_enable_rpath)
1023 dnl ---------------------------------------------------------------------------
1024 dnl CF_ERRNO version: 5 updated: 1997/11/30 12:44:39
1026 dnl Check if 'errno' is declared in <errno.h>
1027 AC_DEFUN([CF_ERRNO],
1029 CF_CHECK_ERRNO(errno)
1031 dnl ---------------------------------------------------------------------------
1032 dnl CF_ETIP_DEFINES version: 3 updated: 2003/03/22 19:13:43
1034 dnl Test for conflicting definitions of exception in gcc 2.8.0, etc., between
1035 dnl math.h and builtin.h, only for ncurses
1036 AC_DEFUN([CF_ETIP_DEFINES],
1038 AC_MSG_CHECKING(for special defines needed for etip.h)
1039 cf_save_CXXFLAGS="$CXXFLAGS"
1041 for cf_math in "" MATH_H
1043 for cf_excp in "" MATH_EXCEPTION
1045 CXXFLAGS="$cf_save_CXXFLAGS -I${srcdir}/c++ -I${srcdir}/menu -I${srcdir}/include"
1046 test -n "$cf_math" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_math}"
1047 test -n "$cf_excp" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_excp}"
1049 #include <etip.h.in>
1051 test -n "$cf_math" && AC_DEFINE_UNQUOTED(ETIP_NEEDS_${cf_math})
1052 test -n "$cf_excp" && AC_DEFINE_UNQUOTED(ETIP_NEEDS_${cf_excp})
1053 cf_result="$cf_math $cf_excp"
1058 AC_MSG_RESULT($cf_result)
1059 CXXFLAGS="$cf_save_CXXFLAGS"
1061 dnl ---------------------------------------------------------------------------
1062 dnl CF_FIND_LINKAGE version: 14 updated: 2010/03/21 14:34:38
1064 dnl Find a library (specifically the linkage used in the code fragment),
1065 dnl searching for it if it is not already in the library path.
1066 dnl See also CF_ADD_SEARCHPATH.
1068 dnl Parameters (4-on are optional):
1069 dnl $1 = headers for library entrypoint
1070 dnl $2 = code fragment for library entrypoint
1071 dnl $3 = the library name without the "-l" option or ".so" suffix.
1072 dnl $4 = action to perform if successful (default: update CPPFLAGS, etc)
1073 dnl $5 = action to perform if not successful
1074 dnl $6 = module name, if not the same as the library name
1075 dnl $7 = extra libraries
1077 dnl Sets these variables:
1078 dnl $cf_cv_find_linkage_$3 - yes/no according to whether linkage is found
1079 dnl $cf_cv_header_path_$3 - include-directory if needed
1080 dnl $cf_cv_library_path_$3 - library-directory if needed
1081 dnl $cf_cv_library_file_$3 - library-file if needed, e.g., -l$3
1082 AC_DEFUN([CF_FIND_LINKAGE],[
1084 # If the linkage is not already in the $CPPFLAGS/$LDFLAGS configuration, these
1085 # will be set on completion of the AC_TRY_LINK below.
1086 cf_cv_header_path_$3=
1087 cf_cv_library_path_$3=
1089 CF_MSG_LOG([Starting [FIND_LINKAGE]($3,$6)])
1091 AC_TRY_LINK([$1],[$2],[
1092 cf_cv_find_linkage_$3=yes
1095 cf_save_LIBS="$LIBS"
1096 LIBS="-l$3 $7 $cf_save_LIBS"
1098 AC_TRY_LINK([$1],[$2],[
1099 cf_cv_find_linkage_$3=yes
1101 cf_cv_find_linkage_$3=no
1102 LIBS="$cf_save_LIBS"
1104 CF_VERBOSE(find linkage for $3 library)
1105 CF_MSG_LOG([Searching for headers in [FIND_LINKAGE]($3,$6)])
1107 cf_save_CPPFLAGS="$CPPFLAGS"
1108 cf_test_CPPFLAGS="$CPPFLAGS"
1110 CF_HEADER_PATH(cf_search,ifelse([$6],,[$3],[$6]))
1111 for cf_cv_header_path_$3 in $cf_search
1113 if test -d $cf_cv_header_path_$3 ; then
1114 CF_VERBOSE(... testing $cf_cv_header_path_$3)
1115 CPPFLAGS="$cf_save_CPPFLAGS -I$cf_cv_header_path_$3"
1116 AC_TRY_COMPILE([$1],[$2],[
1117 CF_VERBOSE(... found $3 headers in $cf_cv_header_path_$3)
1118 cf_cv_find_linkage_$3=maybe
1119 cf_test_CPPFLAGS="$CPPFLAGS"
1121 CPPFLAGS="$cf_save_CPPFLAGS"
1126 if test "$cf_cv_find_linkage_$3" = maybe ; then
1128 CF_MSG_LOG([Searching for $3 library in [FIND_LINKAGE]($3,$6)])
1130 cf_save_LIBS="$LIBS"
1131 cf_save_LDFLAGS="$LDFLAGS"
1134 CPPFLAGS="$cf_test_CPPFLAGS"
1135 LIBS="-l$3 $7 $cf_save_LIBS"
1136 AC_TRY_LINK([$1],[$2],[
1137 CF_VERBOSE(... found $3 library in system)
1138 cf_cv_find_linkage_$3=yes])
1139 CPPFLAGS="$cf_save_CPPFLAGS"
1140 LIBS="$cf_save_LIBS"
1143 if test "$cf_cv_find_linkage_$3" != yes ; then
1144 CF_LIBRARY_PATH(cf_search,$3)
1145 for cf_cv_library_path_$3 in $cf_search
1147 if test -d $cf_cv_library_path_$3 ; then
1148 CF_VERBOSE(... testing $cf_cv_library_path_$3)
1149 CPPFLAGS="$cf_test_CPPFLAGS"
1150 LIBS="-l$3 $7 $cf_save_LIBS"
1151 LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_$3"
1152 AC_TRY_LINK([$1],[$2],[
1153 CF_VERBOSE(... found $3 library in $cf_cv_library_path_$3)
1154 cf_cv_find_linkage_$3=yes
1155 cf_cv_library_file_$3="-l$3"
1157 CPPFLAGS="$cf_save_CPPFLAGS"
1158 LIBS="$cf_save_LIBS"
1159 LDFLAGS="$cf_save_LDFLAGS"
1163 LIBS="$cf_save_LIBS"
1164 CPPFLAGS="$cf_save_CPPFLAGS"
1165 LDFLAGS="$cf_save_LDFLAGS"
1169 cf_cv_find_linkage_$3=no
1174 if test "$cf_cv_find_linkage_$3" = yes ; then
1176 CF_ADD_INCDIR($cf_cv_header_path_$3)
1177 CF_ADD_LIBDIR($cf_cv_library_path_$3)
1181 ifelse([$5],,AC_MSG_WARN(Cannot find $3 library),[$5])
1184 dnl ---------------------------------------------------------------------------
1185 dnl CF_FUNC_DLSYM version: 1 updated: 2004/06/16 20:52:45
1187 dnl Test for dlsym() and related functions, as well as libdl.
1192 AC_DEFUN([CF_FUNC_DLSYM],[
1194 AC_CHECK_FUNC(dlsym,cf_have_dlsym=yes,[
1197 AC_CHECK_LIB(dl,dlsym,[
1199 cf_have_libdl=yes])])
1201 if test "$cf_have_dlsym" = yes ; then
1202 test "$cf_have_libdl" = yes && LIBS="-ldl $LIBS"
1204 AC_MSG_CHECKING(whether able to link to dl*() functions)
1205 AC_TRY_LINK([#include <dlfcn.h>],[
1207 if ((obj = dlopen("filename", 0)) != 0) {
1208 if (dlsym(obj, "symbolname") == 0) {
1212 AC_DEFINE(HAVE_LIBDL)],[
1213 AC_MSG_ERROR(Cannot link test program for libdl)])
1216 AC_MSG_ERROR(Cannot find dlsym function)
1219 dnl ---------------------------------------------------------------------------
1220 dnl CF_FUNC_MEMMOVE version: 7 updated: 2006/12/16 12:33:30
1222 dnl Check for memmove, or a bcopy that can handle overlapping copy. If neither
1223 dnl is found, add our own version of memmove to the list of objects.
1224 AC_DEFUN([CF_FUNC_MEMMOVE],
1226 AC_CHECK_FUNC(memmove,,[
1227 AC_CHECK_FUNC(bcopy,[
1228 AC_CACHE_CHECK(if bcopy does overlapping moves,cf_cv_good_bcopy,[
1231 static char data[] = "abcdefghijklmnopqrstuwwxyz";
1233 bcopy(data, temp, sizeof(data));
1234 bcopy(temp+10, temp, 15);
1235 bcopy(temp+5, temp+15, 10);
1236 ${cf_cv_main_return:-return} (strcmp(temp, "klmnopqrstuwwxypqrstuwwxyz"));
1239 [cf_cv_good_bcopy=yes],
1240 [cf_cv_good_bcopy=no],
1241 [cf_cv_good_bcopy=unknown])
1243 ],[cf_cv_good_bcopy=no])
1244 if test "$cf_cv_good_bcopy" = yes ; then
1245 AC_DEFINE(USE_OK_BCOPY)
1247 AC_DEFINE(USE_MY_MEMMOVE)
1250 dnl ---------------------------------------------------------------------------
1251 dnl CF_FUNC_NANOSLEEP version: 3 updated: 2006/12/16 12:33:30
1252 dnl -----------------
1253 dnl Check for existence of workable nanosleep() function. Some systems, e.g.,
1254 dnl AIX 4.x, provide a non-working version.
1255 AC_DEFUN([CF_FUNC_NANOSLEEP],[
1256 AC_CACHE_CHECK(if nanosleep really works,cf_cv_func_nanosleep,[
1262 #ifdef HAVE_SYS_TIME_H
1263 #include <sys/time.h>
1267 struct timespec ts1, ts2;
1270 ts1.tv_nsec = 750000000;
1274 code = nanosleep(&ts1, &ts2); /* on failure errno is ENOSYS. */
1275 ${cf_cv_main_return:-return}(code != 0);
1278 [cf_cv_func_nanosleep=yes],
1279 [cf_cv_func_nanosleep=no],
1280 [cf_cv_func_nanosleep=unknown])])
1282 test "$cf_cv_func_nanosleep" = "yes" && AC_DEFINE(HAVE_NANOSLEEP)
1284 dnl ---------------------------------------------------------------------------
1285 dnl CF_FUNC_OPENPTY version: 2 updated: 2008/04/12 19:49:01
1287 dnl Check for openpty() function, along with <pty.h> header. It may need the
1288 dnl "util" library as well.
1289 AC_DEFUN([CF_FUNC_OPENPTY],
1291 AC_CHECK_LIB(util,openpty,cf_cv_lib_util=yes,cf_cv_lib_util=no)
1292 AC_CACHE_CHECK(for openpty header,cf_cv_func_openpty,[
1293 cf_save_LIBS="$LIBS"
1294 test $cf_cv_lib_util = yes && LIBS="-lutil $LIBS"
1295 for cf_header in pty.h libutil.h util.h
1298 #include <$cf_header>
1300 int x = openpty((int *)0, (int *)0, (char *)0,
1301 (struct termios *)0, (struct winsize *)0);
1303 cf_cv_func_openpty=$cf_header
1306 cf_cv_func_openpty=no
1309 LIBS="$cf_save_LIBS"
1312 dnl ---------------------------------------------------------------------------
1313 dnl CF_FUNC_POLL version: 4 updated: 2006/12/16 12:33:30
1315 dnl See if the poll function really works. Some platforms have poll(), but
1316 dnl it does not work for terminals or files.
1317 AC_DEFUN([CF_FUNC_POLL],[
1318 AC_CACHE_CHECK(if poll really works,cf_cv_working_poll,[
1324 #include <sys/poll.h>
1327 struct pollfd myfds;
1331 myfds.events = POLLIN;
1333 ret = poll(&myfds, 1, 100);
1334 ${cf_cv_main_return:-return}(ret != 0);
1336 [cf_cv_working_poll=yes],
1337 [cf_cv_working_poll=no],
1338 [cf_cv_working_poll=unknown])])
1339 test "$cf_cv_working_poll" = "yes" && AC_DEFINE(HAVE_WORKING_POLL)
1341 dnl ---------------------------------------------------------------------------
1342 dnl CF_FUNC_TERMIOS version: 2 updated: 2000/07/22 23:37:24
1344 dnl Some old/broken variations define tcgetattr() only as a macro in
1346 AC_DEFUN([CF_FUNC_TERMIOS],[
1347 AC_REQUIRE([CF_STRUCT_TERMIOS])
1348 AC_CACHE_CHECK(for tcgetattr, cf_cv_have_tcgetattr,[
1350 #include <sys/types.h>
1351 #ifdef HAVE_UNISTD_H
1354 #ifdef HAVE_TERMIOS_H
1355 #include <termios.h>
1356 #define TTY struct termios
1358 #ifdef HAVE_TERMIO_H
1360 #define TTY struct termio
1365 tcgetattr(1, &foo);],
1366 [cf_cv_have_tcgetattr=yes],
1367 [cf_cv_have_tcgetattr=no])])
1368 test "$cf_cv_have_tcgetattr" = yes && AC_DEFINE(HAVE_TCGETATTR)
1370 dnl ---------------------------------------------------------------------------
1371 dnl CF_FUNC_VSSCANF version: 3 updated: 2001/12/19 00:50:10
1373 dnl Check for vsscanf() function, which is in c9x but generally not in earlier
1374 dnl versions of C. It is in the GNU C library, and can often be simulated by
1375 dnl other functions.
1376 AC_DEFUN([CF_FUNC_VSSCANF],
1378 AC_CACHE_CHECK(for vsscanf function or workaround,cf_cv_func_vsscanf,[
1381 #include <stdio.h>],[
1383 vsscanf("from", "%d", ap)],[cf_cv_func_vsscanf=vsscanf],[
1386 #include <stdio.h>],[
1390 strbuf._flag = _IOREAD;
1391 strbuf._ptr = strbuf._base = (unsigned char *) str;
1392 strbuf._cnt = strlen(str);
1393 strbuf._file = _NFILE;
1394 return (vfscanf(&strbuf, "%d", ap))],[cf_cv_func_vsscanf=vfscanf],[
1397 #include <stdio.h>],[
1401 strbuf._flag = _IOREAD;
1402 strbuf._ptr = strbuf._base = (unsigned char *) str;
1403 strbuf._cnt = strlen(str);
1404 strbuf._file = _NFILE;
1405 return (_doscan(&strbuf, "%d", ap))],[cf_cv_func_vsscanf=_doscan],[
1406 cf_cv_func_vsscanf=no])])])])
1408 case $cf_cv_func_vsscanf in #(vi
1409 vsscanf) AC_DEFINE(HAVE_VSSCANF);; #(vi
1410 vfscanf) AC_DEFINE(HAVE_VFSCANF);; #(vi
1411 _doscan) AC_DEFINE(HAVE__DOSCAN);;
1415 dnl ---------------------------------------------------------------------------
1416 dnl CF_GCC_ATTRIBUTES version: 13 updated: 2009/08/11 20:19:56
1417 dnl -----------------
1418 dnl Test for availability of useful gcc __attribute__ directives to quiet
1419 dnl compiler warnings. Though useful, not all are supported -- and contrary
1420 dnl to documentation, unrecognized directives cause older compilers to barf.
1421 AC_DEFUN([CF_GCC_ATTRIBUTES],
1423 if test "$GCC" = yes
1425 cat > conftest.i <<EOF
1427 #define GCC_PRINTF 0
1432 #ifndef GCC_NORETURN
1433 #define GCC_NORETURN /* nothing */
1436 #define GCC_UNUSED /* nothing */
1439 if test "$GCC" = yes
1441 AC_CHECKING([for $CC __attribute__ directives])
1442 cat > conftest.$ac_ext <<EOF
1443 #line __oline__ "${as_me-configure}"
1444 #include "confdefs.h"
1445 #include "conftest.h"
1446 #include "conftest.i"
1448 #define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
1450 #define GCC_PRINTFLIKE(fmt,var) /*nothing*/
1453 #define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
1455 #define GCC_SCANFLIKE(fmt,var) /*nothing*/
1457 extern void wow(char *,...) GCC_SCANFLIKE(1,2);
1458 extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
1459 extern void foo(void) GCC_NORETURN;
1460 int main(int argc GCC_UNUSED, char *argv[[]] GCC_UNUSED) { return 0; }
1462 cf_printf_attribute=no
1463 cf_scanf_attribute=no
1464 for cf_attribute in scanf printf unused noreturn
1466 CF_UPPER(cf_ATTRIBUTE,$cf_attribute)
1467 cf_directive="__attribute__(($cf_attribute))"
1468 echo "checking for $CC $cf_directive" 1>&AC_FD_CC
1470 case $cf_attribute in #(vi
1472 cf_printf_attribute=yes
1473 cat >conftest.h <<EOF
1474 #define GCC_$cf_ATTRIBUTE 1
1478 cf_scanf_attribute=yes
1479 cat >conftest.h <<EOF
1480 #define GCC_$cf_ATTRIBUTE 1
1484 cat >conftest.h <<EOF
1485 #define GCC_$cf_ATTRIBUTE $cf_directive
1490 if AC_TRY_EVAL(ac_compile); then
1491 test -n "$verbose" && AC_MSG_RESULT(... $cf_attribute)
1492 cat conftest.h >>confdefs.h
1493 case $cf_attribute in #(vi
1495 if test "$cf_printf_attribute" = no ; then
1496 cat >>confdefs.h <<EOF
1497 #define GCC_PRINTFLIKE(fmt,var) /* nothing */
1500 cat >>confdefs.h <<EOF
1501 #define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
1506 if test "$cf_scanf_attribute" = no ; then
1507 cat >>confdefs.h <<EOF
1508 #define GCC_SCANFLIKE(fmt,var) /* nothing */
1511 cat >>confdefs.h <<EOF
1512 #define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
1520 fgrep define conftest.i >>confdefs.h
1525 dnl ---------------------------------------------------------------------------
1526 dnl CF_GCC_VERSION version: 4 updated: 2005/08/27 09:53:42
1528 dnl Find version of gcc
1529 AC_DEFUN([CF_GCC_VERSION],[
1530 AC_REQUIRE([AC_PROG_CC])
1532 if test "$GCC" = yes ; then
1533 AC_MSG_CHECKING(version of $CC)
1534 GCC_VERSION="`${CC} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
1535 test -z "$GCC_VERSION" && GCC_VERSION=unknown
1536 AC_MSG_RESULT($GCC_VERSION)
1539 dnl ---------------------------------------------------------------------------
1540 dnl CF_GCC_WARNINGS version: 24 updated: 2009/02/01 15:21:00
1542 dnl Check if the compiler supports useful warning options. There's a few that
1543 dnl we don't use, simply because they're too noisy:
1545 dnl -Wconversion (useful in older versions of gcc, but not in gcc 2.7.x)
1546 dnl -Wredundant-decls (system headers make this too noisy)
1547 dnl -Wtraditional (combines too many unrelated messages, only a few useful)
1548 dnl -Wwrite-strings (too noisy, but should review occasionally). This
1549 dnl is enabled for ncurses using "--enable-const".
1553 dnl $1 is an optional list of gcc warning flags that a particular
1554 dnl application might want to use, e.g., "no-unused" for
1557 dnl If $with_ext_const is "yes", add a check for -Wwrite-strings
1559 AC_DEFUN([CF_GCC_WARNINGS],
1561 AC_REQUIRE([CF_GCC_VERSION])
1562 CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
1564 cat > conftest.$ac_ext <<EOF
1565 #line __oline__ "${as_me-configure}"
1566 int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
1569 if test "$INTEL_COMPILER" = yes
1571 # The "-wdXXX" options suppress warnings:
1572 # remark #1419: external declaration in primary source file
1573 # remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
1574 # remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
1575 # remark #193: zero used for undefined preprocessing identifier
1576 # remark #593: variable "curs_sb_left_arrow" was set but never used
1577 # remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
1578 # remark #869: parameter "tw" was never referenced
1579 # remark #981: operands are evaluated in unspecified order
1580 # warning #279: controlling expression is constant
1582 AC_CHECKING([for $CC warning options])
1583 cf_save_CFLAGS="$CFLAGS"
1584 EXTRA_CFLAGS="-Wall"
1596 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
1597 if AC_TRY_EVAL(ac_compile); then
1598 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1599 EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
1602 CFLAGS="$cf_save_CFLAGS"
1604 elif test "$GCC" = yes
1606 AC_CHECKING([for $CC warning options])
1607 cf_save_CFLAGS="$CFLAGS"
1608 EXTRA_CFLAGS="-W -Wall"
1610 test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
1612 Wbad-function-cast \
1616 Wmissing-declarations \
1617 Wmissing-prototypes \
1621 Wstrict-prototypes \
1622 Wundef $cf_warn_CONST $1
1624 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
1625 if AC_TRY_EVAL(ac_compile); then
1626 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1627 case $cf_opt in #(vi
1629 CPPFLAGS="$CPPFLAGS -DXTSTRINGDEFINES"
1632 case $GCC_VERSION in
1634 CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
1639 EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
1642 CFLAGS="$cf_save_CFLAGS"
1646 AC_SUBST(EXTRA_CFLAGS)
1648 dnl ---------------------------------------------------------------------------
1649 dnl CF_GNAT_TRY_LINK version: 1 updated: 2004/08/21 19:02:08
1650 dnl ----------------
1651 dnl Verify that a test program compiles/links with GNAT.
1652 dnl $cf_ada_make is set to the program that compiles/links
1653 dnl $ADAFLAGS may be set to the GNAT flags.
1655 dnl $1 is the text of the spec
1656 dnl $2 is the text of the body
1657 dnl $3 is the shell command to execute if successful
1658 dnl $4 is the shell command to execute if not successful
1659 AC_DEFUN([CF_GNAT_TRY_LINK],
1662 cat >>conftest.ads <<CF_EOF
1665 cat >>conftest.adb <<CF_EOF
1668 if ( $cf_ada_make $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
1669 ifelse($3,, :,[ $3])
1675 dnl ---------------------------------------------------------------------------
1676 dnl CF_GNAT_TRY_RUN version: 3 updated: 2004/08/21 19:02:08
1678 dnl Verify that a test program compiles and runs with GNAT
1679 dnl $cf_ada_make is set to the program that compiles/links
1680 dnl $ADAFLAGS may be set to the GNAT flags.
1682 dnl $1 is the text of the spec
1683 dnl $2 is the text of the body
1684 dnl $3 is the shell command to execute if successful
1685 dnl $4 is the shell command to execute if not successful
1686 AC_DEFUN([CF_GNAT_TRY_RUN],
1689 cat >>conftest.ads <<CF_EOF
1692 cat >>conftest.adb <<CF_EOF
1695 if ( $cf_ada_make $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
1696 if ( ./conftest 1>&AC_FD_CC 2>&1 ) ; then
1697 ifelse($3,, :,[ $3])
1706 dnl ---------------------------------------------------------------------------
1707 dnl CF_GNAT_VERSION version: 12 updated: 2006/10/14 15:23:15
1709 dnl Verify version of GNAT.
1710 AC_DEFUN([CF_GNAT_VERSION],
1712 AC_MSG_CHECKING(for gnat version)
1713 cf_gnat_version=`${cf_ada_make-gnatmake} -v 2>&1 | grep '[[0-9]].[[0-9]][[0-9]]*' |\
1714 sed -e '2,$d' -e 's/[[^0-9 \.]]//g' -e 's/^[[ ]]*//' -e 's/ .*//'`
1715 AC_MSG_RESULT($cf_gnat_version)
1717 case $cf_gnat_version in
1718 3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*)
1719 cf_cv_prog_gnat_correct=yes
1721 *) echo Unsupported GNAT version $cf_gnat_version. Required is 3.11 or better. Disabling Ada95 binding.
1722 cf_cv_prog_gnat_correct=no
1725 case $cf_gnat_version in
1726 3.[[1-9]]*|[[4-9]].*)
1727 cf_compile_generics=generics
1728 cf_generic_objects="\${GENOBJS}"
1730 *) cf_compile_generics=
1735 dnl ---------------------------------------------------------------------------
1736 dnl CF_GNU_SOURCE version: 6 updated: 2005/07/09 13:23:07
1738 dnl Check if we must define _GNU_SOURCE to get a reasonable value for
1739 dnl _XOPEN_SOURCE, upon which many POSIX definitions depend. This is a defect
1740 dnl (or misfeature) of glibc2, which breaks portability of many applications,
1741 dnl since it is interwoven with GNU extensions.
1743 dnl Well, yes we could work around it...
1744 AC_DEFUN([CF_GNU_SOURCE],
1746 AC_CACHE_CHECK(if we must define _GNU_SOURCE,cf_cv_gnu_source,[
1747 AC_TRY_COMPILE([#include <sys/types.h>],[
1748 #ifndef _XOPEN_SOURCE
1751 [cf_cv_gnu_source=no],
1752 [cf_save="$CPPFLAGS"
1753 CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
1754 AC_TRY_COMPILE([#include <sys/types.h>],[
1755 #ifdef _XOPEN_SOURCE
1758 [cf_cv_gnu_source=no],
1759 [cf_cv_gnu_source=yes])
1763 test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
1765 dnl ---------------------------------------------------------------------------
1766 dnl CF_GPP_LIBRARY version: 9 updated: 2009/12/19 13:46:49
1768 dnl If we're trying to use g++, test if libg++ is installed (a rather common
1769 dnl problem :-). If we have the compiler but no library, we'll be able to
1770 dnl configure, but won't be able to build the c++ demo program.
1771 AC_DEFUN([CF_GPP_LIBRARY],
1773 cf_cxx_library=unknown
1774 case $cf_cv_system_name in #(vi
1782 if test "$GXX" = yes; then
1783 AC_MSG_CHECKING([for lib$cf_gpp_libname])
1785 LIBS="-l$cf_gpp_libname $LIBS"
1787 #include <$cf_gpp_libname/builtin.h>
1789 [two_arg_error_handler_t foo2 = lib_error_handler],
1791 CXXLIBS="$CXXLIBS -l$cf_gpp_libname"
1792 if test "$cf_gpp_libname" = cpp ; then
1793 AC_DEFINE(HAVE_GPP_BUILTIN_H)
1795 AC_DEFINE(HAVE_GXX_BUILTIN_H)
1798 #include <builtin.h>
1800 [two_arg_error_handler_t foo2 = lib_error_handler],
1802 CXXLIBS="$CXXLIBS -l$cf_gpp_libname"
1803 AC_DEFINE(HAVE_BUILTIN_H)],
1804 [cf_cxx_library=no])])
1806 AC_MSG_RESULT($cf_cxx_library)
1809 dnl ---------------------------------------------------------------------------
1810 dnl CF_GXX_VERSION version: 5 updated: 2005/08/27 09:53:42
1812 dnl Check for version of g++
1813 AC_DEFUN([CF_GXX_VERSION],[
1814 AC_REQUIRE([AC_PROG_CPP])
1816 if test "$GXX" = yes; then
1817 AC_MSG_CHECKING(version of g++)
1818 GXX_VERSION="`${CXX-g++} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
1819 test -z "$GXX_VERSION" && GXX_VERSION=unknown
1820 AC_MSG_RESULT($GXX_VERSION)
1823 dnl ---------------------------------------------------------------------------
1824 dnl CF_GXX_WARNINGS version: 5 updated: 2005/08/13 14:54:38
1826 dnl Check if the compiler supports useful warning options.
1828 dnl Most of gcc's options apply to g++, except:
1829 dnl -Wbad-function-cast
1830 dnl -Wmissing-declarations
1831 dnl -Wnested-externs
1833 dnl Omit a few (for now):
1837 dnl $1 is an optional list of g++ warning flags that a particular
1838 dnl application might want to use, e.g., "no-unused" for
1841 dnl If $with_ext_const is "yes", add a check for -Wwrite-strings
1843 AC_DEFUN([CF_GXX_WARNINGS],
1846 CF_INTEL_COMPILER(GXX,INTEL_CPLUSPLUS,CXXFLAGS)
1848 AC_REQUIRE([CF_GXX_VERSION])
1853 cat > conftest.$ac_ext <<EOF
1854 #line __oline__ "configure"
1855 int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
1858 if test "$INTEL_CPLUSPLUS" = yes
1860 # The "-wdXXX" options suppress warnings:
1861 # remark #1419: external declaration in primary source file
1862 # remark #1682: implicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
1863 # remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
1864 # remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
1865 # remark #193: zero used for undefined preprocessing identifier
1866 # remark #593: variable "curs_sb_left_arrow" was set but never used
1867 # remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
1868 # remark #869: parameter "tw" was never referenced
1869 # remark #981: operands are evaluated in unspecified order
1870 # warning #269: invalid format string conversion
1872 AC_CHECKING([for $CC warning options])
1873 cf_save_CXXFLAGS="$CXXFLAGS"
1874 EXTRA_CXXFLAGS="-Wall"
1887 CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -$cf_opt"
1888 if AC_TRY_EVAL(ac_compile); then
1889 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1890 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
1893 CXXFLAGS="$cf_save_CXXFLAGS"
1895 elif test "$GXX" = yes
1897 AC_CHECKING([for $CXX warning options])
1898 cf_save_CXXFLAGS="$CXXFLAGS"
1899 EXTRA_CXXFLAGS="-W -Wall"
1900 cf_gxx_extra_warnings=""
1901 test "$with_ext_const" = yes && cf_gxx_extra_warnings="Wwrite-strings"
1902 case "$GCC_VERSION" in
1906 cf_gxx_extra_warnings="$cf_gxx_extra_warnings Weffc++"
1912 Woverloaded-virtual \
1918 Wmissing-prototypes \
1921 Wstrict-prototypes \
1922 Wundef $cf_gxx_extra_warnings $1
1924 CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -Werror -$cf_opt"
1925 if AC_TRY_EVAL(ac_compile); then
1926 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1927 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
1929 test -n "$verbose" && AC_MSG_RESULT(... no -$cf_opt)
1932 CXXFLAGS="$cf_save_CXXFLAGS"
1937 AC_SUBST(EXTRA_CXXFLAGS)
1939 dnl ---------------------------------------------------------------------------
1940 dnl CF_HASHED_DB version: 3 updated: 2007/11/24 17:43:37
1942 dnl Look for an instance of the Berkeley hashed database.
1944 dnl $1 = optional parameter, to specify install-prefix for the database.
1945 AC_DEFUN([CF_HASHED_DB],
1952 if test -d "$1" ; then
1953 CF_ADD_INCDIR($1/include)
1954 CF_ADD_LIBDIR($1/lib)
1958 AC_CHECK_HEADER(db.h,[
1959 CF_HASHED_DB_VERSION
1960 if test "$cf_cv_hashed_db_version" = unknown ; then
1961 AC_MSG_ERROR(Cannot determine version of db)
1964 if test "$cf_cv_hashed_db_libs" = unknown ; then
1965 AC_MSG_ERROR(Cannot determine library for db)
1966 elif test "$cf_cv_hashed_db_libs" != default ; then
1967 LIBS="-l$cf_cv_hashed_db_libs $LIBS"
1971 AC_MSG_ERROR(Cannot find db.h)
1974 dnl ---------------------------------------------------------------------------
1975 dnl CF_HASHED_DB_LIBS version: 8 updated: 2008/08/04 06:18:06
1976 dnl -----------------
1977 dnl Given that we have the header and version for hashed database, find the
1978 dnl library information.
1979 AC_DEFUN([CF_HASHED_DB_LIBS],
1981 AC_CACHE_CHECK(for db libraries, cf_cv_hashed_db_libs,[
1982 cf_cv_hashed_db_libs=unknown
1983 for cf_db_libs in "" db$cf_cv_hashed_db_version db-$cf_cv_hashed_db_version db ''
1985 cf_save_libs="$LIBS"
1986 if test -n "$cf_db_libs"; then
1987 LIBS="-l$cf_db_libs $LIBS"
1989 CF_MSG_LOG(checking for library "$cf_db_libs")
1991 $ac_includes_default
1994 char *path = "/tmp/foo";
1995 #ifdef DB_VERSION_MAJOR
1996 #if DB_VERSION_MAJOR >= 4
1998 db_create(&result, NULL, 0);
1999 result->open(result,
2006 #elif DB_VERSION_MAJOR >= 3
2008 db_create(&result, NULL, 0);
2009 result->open(result,
2015 #elif DB_VERSION_MAJOR >= 2
2024 #endif /* DB_VERSION_MAJOR */
2026 DB *result = dbopen(path,
2032 ${cf_cv_main_return:-return}(result != 0)
2034 if test -n "$cf_db_libs" ; then
2035 cf_cv_hashed_db_libs=$cf_db_libs
2037 cf_cv_hashed_db_libs=default
2039 LIBS="$cf_save_libs"
2042 LIBS="$cf_save_libs"
2046 dnl ---------------------------------------------------------------------------
2047 dnl CF_HASHED_DB_VERSION version: 3 updated: 2007/12/01 15:01:37
2048 dnl --------------------
2049 dnl Given that we have the header file for hashed database, find the version
2051 AC_DEFUN([CF_HASHED_DB_VERSION],
2053 AC_CACHE_CHECK(for version of db, cf_cv_hashed_db_version,[
2054 cf_cv_hashed_db_version=unknown
2056 for cf_db_version in 1 2 3 4 5
2058 CF_MSG_LOG(checking for db version $cf_db_version)
2060 $ac_includes_default
2063 #ifdef DB_VERSION_MAJOR
2064 /* db2 (DB_VERSION_MAJOR=2) has also DB_VERSION_MINOR, tested with 7 */
2065 #if $cf_db_version == DB_VERSION_MAJOR
2071 #if $cf_db_version == 1
2072 /* ok: assuming this is DB 1.8.5 */
2078 cf_cv_hashed_db_version=$cf_db_version
2084 dnl ---------------------------------------------------------------------------
2085 dnl CF_HEADER_PATH version: 10 updated: 2010/01/17 20:36:17
2087 dnl Construct a search-list of directories for a nonstandard header-file
2090 dnl $1 = the variable to return as result
2091 dnl $2 = the package name
2092 AC_DEFUN([CF_HEADER_PATH],
2095 cf_header_path_list=""
2096 if test -n "${CFLAGS}${CPPFLAGS}" ; then
2097 for cf_header_path in $CPPFLAGS $CFLAGS
2099 case $cf_header_path in #(vi
2101 cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'`
2102 CF_ADD_SUBDIR_PATH($1,$2,include,$cf_header_path,NONE)
2103 cf_header_path_list="$cf_header_path_list [$]$1"
2109 CF_SUBDIR_PATH($1,$2,include)
2111 test "$includedir" != NONE && \
2112 test "$includedir" != "/usr/include" && \
2113 test -d "$includedir" && {
2114 test -d $includedir && $1="[$]$1 $includedir"
2115 test -d $includedir/$2 && $1="[$]$1 $includedir/$2"
2118 test "$oldincludedir" != NONE && \
2119 test "$oldincludedir" != "/usr/include" && \
2120 test -d "$oldincludedir" && {
2121 test -d $oldincludedir && $1="[$]$1 $oldincludedir"
2122 test -d $oldincludedir/$2 && $1="[$]$1 $oldincludedir/$2"
2125 $1="$cf_header_path_list [$]$1"
2127 dnl ---------------------------------------------------------------------------
2128 dnl CF_HELP_MESSAGE version: 3 updated: 1998/01/14 10:56:23
2130 dnl Insert text into the help-message, for readability, from AC_ARG_WITH.
2131 AC_DEFUN([CF_HELP_MESSAGE],
2132 [AC_DIVERT_HELP([$1])dnl
2134 dnl ---------------------------------------------------------------------------
2135 dnl CF_INCLUDE_DIRS version: 6 updated: 2009/01/06 19:37:40
2137 dnl Construct the list of include-options according to whether we're building
2138 dnl in the source directory or using '--srcdir=DIR' option. If we're building
2139 dnl with gcc, don't append the includedir if it happens to be /usr/include,
2140 dnl since that usually breaks gcc's shadow-includes.
2141 AC_DEFUN([CF_INCLUDE_DIRS],
2143 CPPFLAGS="$CPPFLAGS -I. -I../include"
2144 if test "$srcdir" != "."; then
2145 CPPFLAGS="$CPPFLAGS -I\${srcdir}/../include"
2147 if test "$GCC" != yes; then
2148 CPPFLAGS="$CPPFLAGS -I\${includedir}"
2149 elif test "$includedir" != "/usr/include"; then
2150 if test "$includedir" = '${prefix}/include' ; then
2151 if test $prefix != /usr ; then
2152 CPPFLAGS="$CPPFLAGS -I\${includedir}"
2155 CPPFLAGS="$CPPFLAGS -I\${includedir}"
2160 dnl ---------------------------------------------------------------------------
2161 dnl CF_INTEL_COMPILER version: 3 updated: 2005/08/06 18:37:29
2162 dnl -----------------
2163 dnl Check if the given compiler is really the Intel compiler for Linux. It
2164 dnl tries to imitate gcc, but does not return an error when it finds a mismatch
2165 dnl between prototypes, e.g., as exercised by CF_MISSING_CHECK.
2167 dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
2168 dnl ensure that it is not mistaken for gcc/g++. It is normally invoked from
2169 dnl the wrappers for gcc and g++ warnings.
2171 dnl $1 = GCC (default) or GXX
2172 dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS
2173 dnl $3 = CFLAGS (default) or CXXFLAGS
2174 AC_DEFUN([CF_INTEL_COMPILER],[
2175 ifelse($2,,INTEL_COMPILER,[$2])=no
2177 if test "$ifelse($1,,[$1],GCC)" = yes ; then
2180 AC_MSG_CHECKING(if this is really Intel ifelse($1,GXX,C++,C) compiler)
2181 cf_save_CFLAGS="$ifelse($3,,CFLAGS,[$3])"
2182 ifelse($3,,CFLAGS,[$3])="$ifelse($3,,CFLAGS,[$3]) -no-gcc"
2184 #ifdef __INTEL_COMPILER
2188 ],[ifelse($2,,INTEL_COMPILER,[$2])=yes
2189 cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
2191 ifelse($3,,CFLAGS,[$3])="$cf_save_CFLAGS"
2192 AC_MSG_RESULT($ifelse($2,,INTEL_COMPILER,[$2]))
2197 dnl ---------------------------------------------------------------------------
2198 dnl CF_ISASCII version: 3 updated: 2000/08/12 23:18:52
2200 dnl Check if we have either a function or macro for 'isascii()'.
2201 AC_DEFUN([CF_ISASCII],
2203 AC_MSG_CHECKING(for isascii)
2204 AC_CACHE_VAL(cf_cv_have_isascii,[
2205 AC_TRY_LINK([#include <ctype.h>],[int x = isascii(' ')],
2206 [cf_cv_have_isascii=yes],
2207 [cf_cv_have_isascii=no])
2209 AC_MSG_RESULT($cf_cv_have_isascii)
2210 test "$cf_cv_have_isascii" = yes && AC_DEFINE(HAVE_ISASCII)
2212 dnl ---------------------------------------------------------------------------
2213 dnl CF_LARGEFILE version: 7 updated: 2007/06/02 11:58:50
2215 dnl Add checks for large file support.
2216 AC_DEFUN([CF_LARGEFILE],[
2217 ifdef([AC_FUNC_FSEEKO],[
2219 if test "$enable_largefile" != no ; then
2222 # Normally we would collect these definitions in the config.h,
2223 # but (like _XOPEN_SOURCE), some environments rely on having these
2224 # defined before any of the system headers are included. Another
2225 # case comes up with C++, e.g., on AIX the compiler compiles the
2226 # header files by themselves before looking at the body files it is
2227 # told to compile. For ncurses, those header files do not include
2229 test "$ac_cv_sys_large_files" != no && CPPFLAGS="$CPPFLAGS -D_LARGE_FILES "
2230 test "$ac_cv_sys_largefile_source" != no && CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE "
2231 test "$ac_cv_sys_file_offset_bits" != no && CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits "
2233 AC_CACHE_CHECK(whether to use struct dirent64, cf_cv_struct_dirent64,[
2235 #include <sys/types.h>
2238 /* if transitional largefile support is setup, this is true */
2239 extern struct dirent64 * readdir(DIR *);
2240 struct dirent64 *x = readdir((DIR *)0);
2241 struct dirent *y = readdir((DIR *)0);
2244 [cf_cv_struct_dirent64=yes],
2245 [cf_cv_struct_dirent64=no])
2247 test "$cf_cv_struct_dirent64" = yes && AC_DEFINE(HAVE_STRUCT_DIRENT64)
2251 dnl ---------------------------------------------------------------------------
2252 dnl CF_LDFLAGS_STATIC version: 7 updated: 2009/04/04 18:31:04
2253 dnl -----------------
2254 dnl Check for compiler/linker flags used to temporarily force usage of static
2255 dnl libraries. This depends on the compiler and platform. Use this to help
2256 dnl ensure that the linker picks up a given library based on its position in
2257 dnl the list of linker options and libraries.
2258 AC_DEFUN([CF_LDFLAGS_STATIC],[
2260 if test "$GCC" = yes ; then
2261 case $cf_cv_system_name in #(
2262 OS/2*|os2*|aix[[4]]*|solaris2.1[[0-9]]|darwin*) #( vi
2266 *) #( normally, except when broken
2267 LDFLAGS_STATIC=-static
2268 LDFLAGS_SHARED=-dynamic
2272 case $cf_cv_system_name in #(
2273 aix[[456]]*) #( from ld manpage
2274 LDFLAGS_STATIC=-bstatic
2275 LDFLAGS_SHARED=-bdynamic
2277 hpux*) #( from ld manpage for hpux10.20, hpux11.11
2278 # We could also use just "archive" and "shared".
2279 LDFLAGS_STATIC=-Wl,-a,archive_shared
2280 LDFLAGS_SHARED=-Wl,-a,shared_archive
2282 irix*) #( from ld manpage IRIX64
2283 LDFLAGS_STATIC=-Bstatic
2284 LDFLAGS_SHARED=-Bdynamic
2286 osf[[45]]*) #( from ld manpage osf4.0d, osf5.1
2287 # alternative "-oldstyle_liblookup" (not in cc manpage)
2288 LDFLAGS_STATIC=-noso
2289 LDFLAGS_SHARED=-so_archive
2292 LDFLAGS_STATIC=-Bstatic
2293 LDFLAGS_SHARED=-Bdynamic
2298 AC_SUBST(LDFLAGS_STATIC)
2299 AC_SUBST(LDFLAGS_SHARED)
2301 dnl ---------------------------------------------------------------------------
2302 dnl CF_LD_RPATH_OPT version: 2 updated: 2010/03/27 19:27:54
2304 dnl For the given system and compiler, find the compiler flags to pass to the
2305 dnl loader to use the "rpath" feature.
2306 AC_DEFUN([CF_LD_RPATH_OPT],
2308 AC_REQUIRE([CF_CHECK_CACHE])
2311 AC_MSG_CHECKING(for an rpath option)
2312 case $cf_cv_system_name in #(vi
2314 if test "$GCC" = yes; then
2315 LD_RPATH_OPT="-Wl,-rpath,"
2317 LD_RPATH_OPT="-rpath "
2320 linux*|gnu*|k*bsd*-gnu) #(vi
2321 LD_RPATH_OPT="-Wl,-rpath,"
2323 openbsd[[2-9]].*) #(vi
2324 LD_RPATH_OPT="-Wl,-rpath,"
2327 LD_RPATH_OPT="-rpath "
2330 LD_RPATH_OPT="-Wl,-rpath,"
2333 LD_RPATH_OPT="-rpath "
2341 AC_MSG_RESULT($LD_RPATH_OPT)
2343 case "x$LD_RPATH_OPT" in #(vi
2345 AC_MSG_CHECKING(if we need a space after rpath option)
2346 cf_save_LIBS="$LIBS"
2347 LIBS="${LD_RPATH_OPT}$libdir $LIBS"
2348 AC_TRY_LINK(, , cf_rpath_space=no, cf_rpath_space=yes)
2349 LIBS="$cf_save_LIBS"
2350 AC_MSG_RESULT($cf_rpath_space)
2351 test "$cf_rpath_space" = yes && LD_RPATH_OPT="$LD_RPATH_OPT "
2355 dnl ---------------------------------------------------------------------------
2356 dnl CF_LIBRARY_PATH version: 8 updated: 2008/12/07 19:38:31
2358 dnl Construct a search-list of directories for a nonstandard library-file
2361 dnl $1 = the variable to return as result
2362 dnl $2 = the package name
2363 AC_DEFUN([CF_LIBRARY_PATH],
2365 cf_library_path_list=""
2366 if test -n "${LDFLAGS}${LIBS}" ; then
2367 for cf_library_path in $LDFLAGS $LIBS
2369 case $cf_library_path in #(vi
2371 cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'`
2372 CF_ADD_SUBDIR_PATH($1,$2,lib,$cf_library_path,NONE)
2373 cf_library_path_list="$cf_library_path_list [$]$1"
2379 CF_SUBDIR_PATH($1,$2,lib)
2381 $1="$cf_library_path_list [$]$1"
2383 dnl ---------------------------------------------------------------------------
2384 dnl CF_LIB_PREFIX version: 8 updated: 2008/09/13 11:34:16
2386 dnl Compute the library-prefix for the given host system
2387 dnl $1 = variable to set
2388 AC_DEFUN([CF_LIB_PREFIX],
2390 case $cf_cv_system_name in #(vi
2397 ifelse($1,,,[$1=$LIB_PREFIX])
2398 AC_SUBST(LIB_PREFIX)
2400 dnl ---------------------------------------------------------------------------
2401 dnl CF_LIB_RULES version: 55 updated: 2008/12/13 16:17:38
2403 dnl Append definitions and rules for the given models to the subdirectory
2404 dnl Makefiles, and the recursion rule for the top-level Makefile. If the
2405 dnl subdirectory is a library-source directory, modify the LIBS_TO_MAKE list in
2406 dnl the corresponding makefile to list the models that we'll generate.
2408 dnl For shared libraries, make a list of symbolic links to construct when
2409 dnl generating each library. The convention used for Linux is the simplest
2412 dnl lib<name>.so.<major> ->
2413 dnl lib<name>.so.<maj>.<minor>
2414 AC_DEFUN([CF_LIB_RULES],
2416 CF_LIB_PREFIX(cf_prefix)
2417 AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
2419 if test $cf_cv_shlib_version = cygdll ; then
2420 TINFO_NAME=$TINFO_ARG_SUFFIX
2424 for cf_dir in $SRC_SUBDIRS
2426 if test ! -d $srcdir/$cf_dir ; then
2428 elif test -f $srcdir/$cf_dir/modules; then
2432 for cf_item in $cf_LIST_MODELS
2434 CF_LIB_SUFFIX($cf_item,cf_suffix,cf_depsuf)
2435 if test $cf_item = shared ; then
2436 if test "$cf_cv_do_symlinks" = yes ; then
2437 case "$cf_cv_shlib_version" in #(vi
2439 case "$cf_cv_system_name" in #(vi
2441 case .${LIB_SUFFIX} in
2443 cf_suffix=`echo $cf_suffix | sed 's/^w//'`
2444 cf_suffix=w'.${REL_VERSION}'"$cf_suffix"
2447 cf_suffix='.${REL_VERSION}'"$cf_suffix"
2451 *) cf_suffix="$cf_suffix"'.${REL_VERSION}' ;;
2455 case "$cf_cv_system_name" in #(vi
2457 case .${LIB_SUFFIX} in
2459 cf_suffix=`echo $cf_suffix | sed 's/^w//'`
2460 cf_suffix=w'.${ABI_VERSION}'"$cf_suffix"
2463 cf_suffix='.${ABI_VERSION}'"$cf_suffix"
2467 *) cf_suffix="$cf_suffix"'.${ABI_VERSION}' ;;
2472 # cygwin needs import library, and has unique naming convention
2473 # use autodetected ${cf_prefix} for import lib and static lib, but
2474 # use 'cyg' prefix for shared lib.
2475 if test $cf_cv_shlib_version = cygdll ; then
2476 cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
2477 LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/cyg${cf_dir}${cf_cygsuf}"
2481 LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/${cf_prefix}${cf_dir}${cf_suffix}"
2484 if test $cf_dir = ncurses ; then
2485 cf_subsets="$LIB_SUBSETS"
2486 cf_r_parts="$cf_subsets"
2487 cf_liblist="$LIBS_TO_MAKE"
2489 while test -n "$cf_r_parts"
2491 cf_l_parts=`echo "$cf_r_parts" |sed -e 's/ .*$//'`
2492 cf_r_parts=`echo "$cf_r_parts" |sed -e 's/^[[^ ]]* //'`
2493 if test "$cf_l_parts" != "$cf_r_parts" ; then
2495 case $cf_l_parts in #(vi
2497 cf_item=`echo $cf_liblist |sed -e s%${LIB_NAME}${LIB_SUFFIX}%${TINFO_LIB_SUFFIX}%g`
2500 cf_item=`echo $cf_liblist |sed -e s%${LIB_NAME}${LIB_SUFFIX}%${TICS_LIB_SUFFIX}%g`
2506 if test -n "$cf_item"; then
2507 LIBS_TO_MAKE="$cf_item $LIBS_TO_MAKE"
2514 cf_subsets=`echo "$LIB_SUBSETS" | sed -e 's/^termlib.* //'`
2517 sed -e "s%@LIBS_TO_MAKE@%$LIBS_TO_MAKE%" \
2518 -e "s%@SHARED_LIB@%$SHARED_LIB%" \
2519 $cf_dir/Makefile >$cf_dir/Makefile.out
2520 mv $cf_dir/Makefile.out $cf_dir/Makefile
2522 $AWK -f $srcdir/mk-0th.awk \
2523 libname="${cf_dir}${LIB_SUFFIX}" subsets="$LIB_SUBSETS" \
2524 $srcdir/$cf_dir/modules >>$cf_dir/Makefile
2526 for cf_subset in $cf_subsets
2529 for cf_item in $cf_LIST_MODELS
2531 echo "Appending rules for ${cf_item} model (${cf_dir}: ${cf_subset})"
2532 CF_UPPER(cf_ITEM,$cf_item)
2533 CF_LIB_SUFFIX($cf_item,cf_suffix,cf_depsuf)
2534 CF_OBJ_SUBDIR($cf_item,cf_subdir)
2536 # Test for case where we build libtinfo with a different name.
2538 if test $cf_dir = ncurses ; then
2541 cf_libname=${cf_libname}$LIB_SUFFIX
2544 cf_libname=$TINFO_LIB_SUFFIX
2547 cf_libname=$TICS_LIB_SUFFIX
2551 cf_libname=${cf_libname}$LIB_SUFFIX
2553 if test -n "${DFT_ARG_SUFFIX}" ; then
2554 # undo $LIB_SUFFIX add-on in CF_LIB_SUFFIX
2555 cf_suffix=`echo $cf_suffix |sed -e "s%^${LIB_SUFFIX}%%"`
2558 # These dependencies really are for development, not
2559 # builds, but they are useful in porting, too.
2560 cf_depend="../include/ncurses_cfg.h"
2561 if test "$srcdir" = "."; then
2564 cf_reldir="\${srcdir}"
2567 if test -f $srcdir/$cf_dir/$cf_dir.priv.h; then
2568 cf_depend="$cf_depend $cf_reldir/$cf_dir.priv.h"
2569 elif test -f $srcdir/$cf_dir/curses.priv.h; then
2570 cf_depend="$cf_depend $cf_reldir/curses.priv.h"
2574 old_cf_suffix="$cf_suffix"
2575 if test "$cf_cv_shlib_version_infix" = yes ; then
2576 if test -n "$LIB_SUFFIX" ; then
2579 cf_libname=`echo $cf_libname | sed 's/w$//'`
2580 cf_suffix=`echo $cf_suffix | sed 's/^w//'`
2587 $AWK -f $srcdir/mk-1st.awk \
2588 name=${cf_libname}${cf_dir_suffix} \
2589 traces=$LIB_TRACING \
2595 TermlibRoot=$TINFO_NAME \
2596 TermlibSuffix=$TINFO_SUFFIX \
2597 ShlibVer=$cf_cv_shlib_version \
2598 ShlibVerInfix=$cf_cv_shlib_version_infix \
2599 ReLink=${cf_cv_do_relink-no} \
2600 DoLinks=$cf_cv_do_symlinks \
2601 rmSoLocs=$cf_cv_rm_so_locs \
2602 ldconfig="$LDCONFIG" \
2603 overwrite=$WITH_OVERWRITE \
2604 depend="$cf_depend" \
2606 $srcdir/$cf_dir/modules >>$cf_dir/Makefile
2608 cf_suffix="$old_cf_suffix"
2610 for cf_subdir2 in $cf_subdirs lib
2612 test $cf_subdir = $cf_subdir2 && break
2614 test "${cf_subset}.${cf_subdir2}" != "${cf_subset}.${cf_subdir}" && \
2615 $AWK -f $srcdir/mk-2nd.awk \
2617 traces=$LIB_TRACING \
2623 crenames=$cf_cv_prog_CC_c_o \
2624 cxxrenames=$cf_cv_prog_CXX_c_o \
2625 $srcdir/$cf_dir/modules >>$cf_dir/Makefile
2626 cf_subdirs="$cf_subdirs $cf_subdir"
2631 echo ' cd '$cf_dir' && ${MAKE} ${CF_MFLAGS} [$]@' >>Makefile
2634 for cf_dir in $SRC_SUBDIRS
2636 if test ! -d $srcdir/$cf_dir ; then
2640 if test -f $cf_dir/Makefile ; then
2643 echo 'libs \' >> Makefile
2644 echo 'install.libs \' >> Makefile
2645 echo 'uninstall.libs ::' >> Makefile
2646 echo ' cd '$cf_dir' && ${MAKE} ${CF_MFLAGS} [$]@' >> Makefile
2651 if test -f $srcdir/$cf_dir/modules; then
2653 if test -f $srcdir/$cf_dir/headers; then
2654 cat >> Makefile <<CF_EOF
2656 uninstall.includes \\
2659 if test "$cf_dir" != "c++" ; then
2660 echo 'lint \' >> Makefile
2662 cat >> Makefile <<CF_EOF
2668 uninstall.$cf_dir ::
2669 cd $cf_dir && \${MAKE} \${CF_MFLAGS} \[$]@
2671 elif test -f $srcdir/$cf_dir/headers; then
2672 cat >> Makefile <<CF_EOF
2678 uninstall.includes ::
2679 cd $cf_dir && \${MAKE} \${CF_MFLAGS} \[$]@
2684 cat >> Makefile <<CF_EOF
2686 install.libs uninstall.libs \\
2687 install.data uninstall.data ::
2688 $MAKE_TERMINFO cd misc && \${MAKE} \${CF_MFLAGS} \[$]@
2691 if test "x$cf_with_manpages" = xyes; then
2692 cat >> Makefile <<CF_EOF
2696 cd man && \${MAKE} \${CF_MFLAGS} \[$]@
2700 cat >> Makefile <<CF_EOF
2703 rm -f config.cache config.log config.status Makefile include/ncurses_cfg.h
2704 rm -f headers.sh headers.sed mk_shared_lib.sh
2705 rm -f edit_man.* man_alias.*
2706 rm -rf \${DIRS_TO_MAKE}
2709 # Special case: tack's manpage lives in its own directory.
2710 if test "x$cf_with_manpages" = xyes; then
2711 if test -d tack ; then
2712 if test -f $srcdir/$tack.h; then
2713 cat >> Makefile <<CF_EOF
2717 cd tack && \${MAKE} \${CF_MFLAGS} \[$]@
2723 dnl If we're installing into a subdirectory of /usr/include, etc., we should
2724 dnl prepend the subdirectory's name to the "#include" paths. It won't hurt
2725 dnl anything, and will make it more standardized. It's awkward to decide this
2726 dnl at configuration because of quoting, so we'll simply make all headers
2727 dnl installed via a script that can do the right thing.
2729 rm -f headers.sed headers.sh
2731 dnl ( generating this script makes the makefiles a little tidier :-)
2732 echo creating headers.sh
2733 cat >headers.sh <<CF_EOF
2735 # This shell script is generated by the 'configure' script. It is invoked in a
2736 # subdirectory of the build tree. It generates a sed-script in the parent
2737 # directory that is used to adjust includes for header files that reside in a
2738 # subdirectory of /usr/include, etc.
2740 while test \[$]# != 3
2742 PRG="\$PRG \[$]1"; shift
2747 TMPSRC=\${TMPDIR-/tmp}/\`basename \$SRC\`\$\$
2748 TMPSED=\${TMPDIR-/tmp}/headers.sed\$\$
2749 echo installing \$SRC in \$DST
2752 if test $WITH_CURSES_H = yes; then
2753 cat >>headers.sh <<CF_EOF
2756 END=\`basename \$DST\`
2757 for i in \`cat \$REF/../*/headers |fgrep -v "#"\`
2759 NAME=\`basename \$i\`
2760 echo "s/<\$NAME>/<\$END\/\$NAME>/" >> \$TMPSED
2770 cat >>headers.sh <<CF_EOF
2773 END=\`basename \$DST\`
2774 for i in \`cat \$REF/../*/headers |fgrep -v "#"\`
2776 NAME=\`basename \$i\`
2777 if test "\$NAME" = "curses.h"
2779 echo "s/<curses.h>/<ncurses.h>/" >> \$TMPSED
2782 echo "s/<\$NAME>/<\$END\/\$NAME>/" >> \$TMPSED
2786 echo "s/<curses.h>/<ncurses.h>/" >> \$TMPSED
2791 cat >>headers.sh <<CF_EOF
2793 sed -f \$TMPSED \$SRC > \$TMPSRC
2794 NAME=\`basename \$SRC\`
2796 if test $WITH_CURSES_H != yes; then
2797 cat >>headers.sh <<CF_EOF
2798 test "\$NAME" = "curses.h" && NAME=ncurses.h
2801 cat >>headers.sh <<CF_EOF
2802 # Just in case someone gzip'd manpages, remove the conflicting copy.
2803 test -f \$DST/\$NAME.gz && rm -f \$DST/\$NAME.gz
2805 eval \$PRG \$TMPSRC \$DST/\$NAME
2806 rm -f \$TMPSRC \$TMPSED
2809 chmod 0755 headers.sh
2811 for cf_dir in $SRC_SUBDIRS
2813 if test ! -d $srcdir/$cf_dir ; then
2817 if test -f $srcdir/$cf_dir/headers; then
2818 $AWK -f $srcdir/mk-hdr.awk \
2819 subset="$LIB_SUBSETS" \
2820 compat="$WITH_CURSES_H" \
2821 $srcdir/$cf_dir/headers >>$cf_dir/Makefile
2824 if test -f $srcdir/$cf_dir/modules; then
2825 if test "$cf_dir" != "c++" ; then
2826 cat >>$cf_dir/Makefile <<"CF_EOF"
2827 depend : ${AUTO_SRC}
2828 makedepend -- ${CPPFLAGS} -- ${C_SRC}
2830 # DO NOT DELETE THIS LINE -- make depend depends on it.
2837 dnl ---------------------------------------------------------------------------
2838 dnl CF_LIB_SONAME version: 3 updated: 2006/12/16 15:55:46
2840 dnl Find the and soname for the given shared library. Set the cache variable
2841 dnl cf_cv_$3_soname to this, unless it is not found. Then set the cache
2842 dnl variable to "unknown".
2846 dnl $3 = library name
2847 AC_DEFUN([CF_LIB_SONAME],
2849 AC_CACHE_CHECK(for soname of $3 library,cf_cv_$3_soname,[
2851 cf_cv_$3_soname=unknown
2852 if test "$cross_compiling" != yes ; then
2853 cat >conftest.$ac_ext <<CF_EOF
2858 ${cf_cv_main_return:-return}(0);
2861 cf_save_LIBS="$LIBS"
2863 if AC_TRY_EVAL(ac_compile) ; then
2864 if AC_TRY_EVAL(ac_link) ; then
2865 cf_cv_$3_soname=`ldd conftest$ac_exeext 2>/dev/null | sed -e 's,^.*/,,' -e 's, .*$,,' | fgrep lib$3.`
2866 test -z "$cf_cv_$3_soname" && cf_cv_$3_soname=unknown
2870 LIBS="$cf_save_LIBS"
2874 dnl ---------------------------------------------------------------------------
2875 dnl CF_LIB_SUFFIX version: 16 updated: 2008/12/27 12:30:03
2877 dnl Compute the library file-suffix from the given model name
2879 dnl $2 = variable to set (the nominal library suffix)
2880 dnl $3 = dependency variable to set (actual filename)
2881 dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
2882 AC_DEFUN([CF_LIB_SUFFIX],
2884 AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
2903 case $cf_cv_system_name in
2933 test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
2934 test -n "$LIB_SUFFIX" && $3="${LIB_SUFFIX}[$]{$3}"
2936 dnl ---------------------------------------------------------------------------
2937 dnl CF_LIB_TYPE version: 4 updated: 2000/10/20 22:57:49
2939 dnl Compute the string to append to -library from the given model name
2941 dnl $2 = variable to set
2942 dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
2943 AC_DEFUN([CF_LIB_TYPE],
2952 test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
2954 dnl ---------------------------------------------------------------------------
2955 dnl CF_LINK_DATAONLY version: 9 updated: 2009/01/01 20:21:38
2956 dnl ----------------
2957 dnl Some systems have a non-ANSI linker that doesn't pull in modules that have
2958 dnl only data (i.e., no functions), for example NeXT. On those systems we'll
2959 dnl have to provide wrappers for global tables to ensure they're linked
2961 AC_DEFUN([CF_LINK_DATAONLY],
2963 AC_MSG_CHECKING([if data-only library module links])
2964 AC_CACHE_VAL(cf_cv_link_dataonly,[
2966 cat >conftest.$ac_ext <<EOF
2967 #line __oline__ "configure"
2968 int testdata[[3]] = { 123, 456, 789 };
2970 if AC_TRY_EVAL(ac_compile) ; then
2971 mv conftest.o data.o && \
2972 ( $AR $ARFLAGS conftest.a data.o ) 2>&AC_FD_CC 1>/dev/null
2974 rm -f conftest.$ac_ext data.o
2975 cat >conftest.$ac_ext <<EOF
2976 #line __oline__ "configure"
2980 ${cf_cv_main_return:-return}(1); /* I'm told this linker is broken */
2982 extern int testdata[[3]];
2983 return testdata[[0]] == 123
2984 && testdata[[1]] == 456
2985 && testdata[[2]] == 789;
2989 if AC_TRY_EVAL(ac_compile); then
2990 mv conftest.o func.o && \
2991 ( $AR $ARFLAGS conftest.a func.o ) 2>&AC_FD_CC 1>/dev/null
2993 rm -f conftest.$ac_ext func.o
2994 ( eval $RANLIB conftest.a ) 2>&AC_FD_CC >/dev/null
2996 LIBS="conftest.a $LIBS"
3000 extern int testfunc();
3001 ${cf_cv_main_return:-return} (!testfunc());
3004 [cf_cv_link_dataonly=yes],
3005 [cf_cv_link_dataonly=no],
3006 [cf_cv_link_dataonly=unknown])
3009 AC_MSG_RESULT($cf_cv_link_dataonly)
3011 if test "$cf_cv_link_dataonly" = no ; then
3012 AC_DEFINE(BROKEN_LINKER)
3017 dnl ---------------------------------------------------------------------------
3018 dnl CF_LINK_FUNCS version: 7 updated: 2006/12/16 12:33:30
3020 dnl Most Unix systems have both link and symlink, a few don't have symlink.
3021 dnl A few non-Unix systems implement symlink, but not link.
3022 dnl A few non-systems implement neither (or have nonfunctional versions).
3023 AC_DEFUN([CF_LINK_FUNCS],
3029 if test "$cross_compiling" = yes ; then
3034 AC_CACHE_CHECK(if link/symlink functions work,cf_cv_link_funcs,[
3036 for cf_func in link symlink ; do
3038 #include <sys/types.h>
3039 #include <sys/stat.h>
3040 #ifdef HAVE_UNISTD_H
3046 char *src = "config.log";
3047 char *dst = "conftest.chk";
3052 fail = ($cf_func("config.log", "conftest.chk") < 0)
3053 || (stat(dst, &dst_sb) < 0)
3054 || (dst_sb.st_mtime != src_sb.st_mtime);
3060 ${cf_cv_main_return:-return} (fail);
3063 cf_cv_link_funcs="$cf_cv_link_funcs $cf_func"
3064 eval 'ac_cv_func_'$cf_func'=yes'],[
3065 eval 'ac_cv_func_'$cf_func'=no'],[
3066 eval 'ac_cv_func_'$cf_func'=error'])
3068 test -z "$cf_cv_link_funcs" && cf_cv_link_funcs=no
3070 test "$ac_cv_func_link" = yes && AC_DEFINE(HAVE_LINK)
3071 test "$ac_cv_func_symlink" = yes && AC_DEFINE(HAVE_SYMLINK)
3074 dnl ---------------------------------------------------------------------------
3075 dnl CF_MAIN_RETURN version: 1 updated: 2006/12/10 09:51:54
3077 dnl Check if a return from main to the shell actually returns the same exit
3078 dnl code. This is true for almost any POSIX environment.
3080 dnl Some very old environments did not flush stdout, etc., on an exit. That
3081 dnl would be a useful case to test for also.
3082 AC_DEFUN([CF_MAIN_RETURN],
3084 cf_cv_main_return=return
3086 dnl ---------------------------------------------------------------------------
3087 dnl CF_MAKEFLAGS version: 12 updated: 2006/10/21 08:27:03
3089 dnl Some 'make' programs support ${MAKEFLAGS}, some ${MFLAGS}, to pass 'make'
3090 dnl options to lower-levels. It's very useful for "make -n" -- if we have it.
3091 dnl (GNU 'make' does both, something POSIX 'make', which happens to make the
3092 dnl ${MAKEFLAGS} variable incompatible because it adds the assignments :-)
3093 AC_DEFUN([CF_MAKEFLAGS],
3095 AC_CACHE_CHECK(for makeflags variable, cf_cv_makeflags,[
3097 for cf_option in '-${MAKEFLAGS}' '${MFLAGS}'
3099 cat >cf_makeflags.tmp <<CF_EOF
3102 @ echo '.$cf_option'
3104 cf_result=`${MAKE-make} -k -f cf_makeflags.tmp 2>/dev/null | sed -e 's,[[ ]]*$,,'`
3105 case "$cf_result" in
3107 cf_result=`${MAKE-make} -k -f cf_makeflags.tmp CC=cc 2>/dev/null`
3108 case "$cf_result" in
3109 .*CC=*) cf_cv_makeflags=
3111 *) cf_cv_makeflags=$cf_option
3117 *) echo "given option \"$cf_option\", no match \"$cf_result\""
3121 rm -f cf_makeflags.tmp
3124 AC_SUBST(cf_cv_makeflags)
3126 dnl ---------------------------------------------------------------------------
3127 dnl CF_MAKE_TAGS version: 2 updated: 2000/10/04 09:18:40
3129 dnl Generate tags/TAGS targets for makefiles. Do not generate TAGS if we have
3130 dnl a monocase filesystem.
3131 AC_DEFUN([CF_MAKE_TAGS],[
3132 AC_REQUIRE([CF_MIXEDCASE_FILENAMES])
3133 AC_CHECK_PROG(MAKE_LOWER_TAGS, ctags, yes, no)
3135 if test "$cf_cv_mixedcase" = yes ; then
3136 AC_CHECK_PROG(MAKE_UPPER_TAGS, etags, yes, no)
3141 if test "$MAKE_UPPER_TAGS" = yes ; then
3146 AC_SUBST(MAKE_UPPER_TAGS)
3148 if test "$MAKE_LOWER_TAGS" = yes ; then
3153 AC_SUBST(MAKE_LOWER_TAGS)
3155 dnl ---------------------------------------------------------------------------
3156 dnl CF_MANPAGE_FORMAT version: 8 updated: 2009/01/11 20:30:50
3157 dnl -----------------
3158 dnl Option to allow user to override automatic configuration of manpage format.
3159 dnl There are several special cases:
3161 dnl gzip - man checks for, can display gzip'd files
3162 dnl compress - man checks for, can display compressed files
3163 dnl BSDI - files in the cat-directories are suffixed ".0"
3164 dnl formatted - installer should format (put files in cat-directory)
3165 dnl catonly - installer should only format, e.g., for a turnkey system.
3167 dnl There are other configurations which this macro does not test, e.g., HPUX's
3168 dnl compressed manpages (but uncompressed manpages are fine, and HPUX's naming
3169 dnl convention would not match our use).
3170 AC_DEFUN([CF_MANPAGE_FORMAT],
3172 AC_REQUIRE([CF_PATHSEP])
3173 AC_MSG_CHECKING(format of man-pages)
3175 AC_ARG_WITH(manpage-format,
3176 [ --with-manpage-format specify manpage-format: gzip/compress/BSDI/normal and
3177 optionally formatted/catonly, e.g., gzip,formatted],
3178 [MANPAGE_FORMAT=$withval],
3179 [MANPAGE_FORMAT=unknown])
3181 test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=unknown
3182 MANPAGE_FORMAT=`echo "$MANPAGE_FORMAT" | sed -e 's/,/ /g'`
3186 case $MANPAGE_FORMAT in
3188 if test -z "$MANPATH" ; then
3189 MANPATH="/usr/man:/usr/share/man"
3192 # look for the 'date' man-page (it's most likely to be installed!)
3198 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
3199 for cf_dir in $MANPATH; do
3200 test -z "$cf_dir" && cf_dir=/usr/man
3201 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
3203 cf_test=`echo $cf_name | sed -e 's/*//'`
3204 if test "x$cf_test" = "x$cf_name" ; then
3207 *.gz) MANPAGE_FORMAT="$MANPAGE_FORMAT gzip";;
3208 *.Z) MANPAGE_FORMAT="$MANPAGE_FORMAT compress";;
3209 *.0) MANPAGE_FORMAT="$MANPAGE_FORMAT BSDI";;
3210 *) MANPAGE_FORMAT="$MANPAGE_FORMAT normal";;
3224 # if we found a match in either man* or cat*, stop looking
3225 if test -n "$MANPAGE_FORMAT" ; then
3227 test "$cf_preform" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT formatted"
3228 test "$cf_catonly" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT catonly"
3234 test $cf_found=yes && break
3237 # only check the first directory in $MANPATH where we find manpages
3238 if test -n "$MANPAGE_FORMAT" ; then
3242 # if we did not find the example, just assume it is normal
3243 test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=normal
3247 for cf_option in $MANPAGE_FORMAT; do
3248 case $cf_option in #(vi
3249 gzip|compress|BSDI|normal|formatted|catonly)
3252 cf_unknown="$cf_unknown $cf_option"
3259 AC_MSG_RESULT($MANPAGE_FORMAT)
3260 if test -n "$cf_unknown" ; then
3261 AC_MSG_WARN(Unexpected manpage-format $cf_unknown)
3264 dnl ---------------------------------------------------------------------------
3265 dnl CF_MANPAGE_RENAMES version: 7 updated: 2005/06/18 18:51:57
3266 dnl ------------------
3267 dnl The Debian people have their own naming convention for manpages. This
3268 dnl option lets us override the name of the file containing renaming, or
3269 dnl disable it altogether.
3270 AC_DEFUN([CF_MANPAGE_RENAMES],
3272 AC_MSG_CHECKING(for manpage renaming)
3274 AC_ARG_WITH(manpage-renames,
3275 [ --with-manpage-renames specify manpage-renaming],
3276 [MANPAGE_RENAMES=$withval],
3277 [MANPAGE_RENAMES=yes])
3279 case ".$MANPAGE_RENAMES" in #(vi
3283 # Debian 'man' program?
3284 if test -f /etc/debian_version ; then
3285 MANPAGE_RENAMES=`cd $srcdir && pwd`/man/man_db.renames
3292 if test "$MANPAGE_RENAMES" != no ; then
3293 if test -f $srcdir/man/$MANPAGE_RENAMES ; then
3294 MANPAGE_RENAMES=`cd $srcdir/man && pwd`/$MANPAGE_RENAMES
3295 elif test ! -f $MANPAGE_RENAMES ; then
3296 AC_MSG_ERROR(not a filename: $MANPAGE_RENAMES)
3299 test ! -d man && mkdir man
3301 # Construct a sed-script to perform renaming within man-pages
3302 if test -n "$MANPAGE_RENAMES" ; then
3303 test ! -d man && mkdir man
3304 sh $srcdir/man/make_sed.sh $MANPAGE_RENAMES >./edit_man.sed
3308 AC_MSG_RESULT($MANPAGE_RENAMES)
3309 AC_SUBST(MANPAGE_RENAMES)
3311 dnl ---------------------------------------------------------------------------
3312 dnl CF_MANPAGE_SYMLINKS version: 4 updated: 2003/12/13 18:01:58
3313 dnl -------------------
3314 dnl Some people expect each tool to make all aliases for manpages in the
3315 dnl man-directory. This accommodates the older, less-capable implementations
3316 dnl of 'man', and is optional.
3317 AC_DEFUN([CF_MANPAGE_SYMLINKS],
3319 AC_MSG_CHECKING(if manpage aliases will be installed)
3321 AC_ARG_WITH(manpage-aliases,
3322 [ --with-manpage-aliases specify manpage-aliases using .so],
3323 [MANPAGE_ALIASES=$withval],
3324 [MANPAGE_ALIASES=yes])
3326 AC_MSG_RESULT($MANPAGE_ALIASES)
3328 if test "$LN_S" = "ln -s"; then
3335 if test "$MANPAGE_ALIASES" = yes ; then
3336 AC_MSG_CHECKING(if manpage symlinks should be used)
3338 AC_ARG_WITH(manpage-symlinks,
3339 [ --with-manpage-symlinks specify manpage-aliases using symlinks],
3340 [MANPAGE_SYMLINKS=$withval],
3341 [MANPAGE_SYMLINKS=$cf_use_symlinks])
3343 if test "$$cf_use_symlinks" = no; then
3344 if test "$MANPAGE_SYMLINKS" = yes ; then
3345 AC_MSG_WARN(cannot make symlinks, will use .so files)
3350 AC_MSG_RESULT($MANPAGE_SYMLINKS)
3354 dnl ---------------------------------------------------------------------------
3355 dnl CF_MANPAGE_TBL version: 3 updated: 2002/01/19 22:51:32
3357 dnl This option causes manpages to be run through tbl(1) to generate tables
3359 AC_DEFUN([CF_MANPAGE_TBL],
3361 AC_MSG_CHECKING(for manpage tbl)
3363 AC_ARG_WITH(manpage-tbl,
3364 [ --with-manpage-tbl specify manpage processing with tbl],
3365 [MANPAGE_TBL=$withval],
3368 AC_MSG_RESULT($MANPAGE_TBL)
3370 dnl ---------------------------------------------------------------------------
3371 dnl CF_MAN_PAGES version: 36 updated: 2010/03/13 13:41:01
3373 dnl Try to determine if the man-pages on the system are compressed, and if
3374 dnl so, what format is used. Use this information to construct a script that
3375 dnl will install man-pages.
3376 AC_DEFUN([CF_MAN_PAGES],
3378 CF_HELP_MESSAGE(Options to Specify How Manpages are Installed:)
3384 if test "$prefix" = "NONE" ; then
3385 cf_prefix="$ac_default_prefix"
3390 case "$MANPAGE_FORMAT" in # (vi
3405 test ! -d man && mkdir man
3409 case "$MANPAGE_FORMAT" in #(vi
3412 cf_compress=compress
3420 cf_edit_man=./edit_man.sh
3421 cf_man_alias=`pwd`/man_alias.sed
3423 cat >$cf_edit_man <<CF_EOF
3425 # this script is generated by the configure-script CF_MAN_PAGES macro.
3430 NCURSES_MAJOR="$NCURSES_MAJOR"
3431 NCURSES_MINOR="$NCURSES_MINOR"
3432 NCURSES_PATCH="$NCURSES_PATCH"
3434 NCURSES_OSPEED="$NCURSES_OSPEED"
3435 TERMINFO="$TERMINFO"
3437 MKDIRS="sh `cd $srcdir && pwd`/mkdirs.sh"
3440 INSTALL_DATA="$INSTALL_DATA"
3442 transform="$program_transform_name"
3444 TMP=\${TMPDIR-/tmp}/man\$\$
3445 trap "rm -f \$TMP" 0 1 2 5 15
3457 top_srcdir=\[$]srcdir/..
3460 if test "\$form" = normal ; then
3461 if test "$cf_format" = yes ; then
3462 if test "$cf_inboth" = no ; then
3463 sh \[$]0 format \$verb \$mandir \$srcdir \[$]*
3467 cf_subdir=\$mandir/man
3468 cf_tables=$MANPAGE_TBL
3470 cf_subdir=\$mandir/cat
3474 # process the list of source-files
3477 *.orig|*.rej) ;; #(vi
3479 section=\`expr "\$i" : '.*\\.\\([[0-9]]\\)[[xm]]*'\`;
3480 if test \$verb = installing ; then
3481 if test ! -d \$cf_subdir\${section} ; then
3482 \$MKDIRS \$cf_subdir\$section
3486 # replace variables in man page
3487 if test ! -f $cf_man_alias ; then
3488 cat >>$cf_man_alias <<-CF_EOF2
3489 s,@DATADIR@,\$datadir,g
3490 s,@TERMINFO@,\$TERMINFO,g
3491 s,@NCURSES_MAJOR@,\$NCURSES_MAJOR,g
3492 s,@NCURSES_MINOR@,\$NCURSES_MINOR,g
3493 s,@NCURSES_PATCH@,\$NCURSES_PATCH,g
3494 s,@NCURSES_OSPEED@,\$NCURSES_OSPEED,g
3499 cf_NAME=`echo "$cf_name" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
3500 cf_name=`echo $cf_name|sed "$program_transform_name"`
3501 cat >>$cf_edit_man <<-CF_EOF
3502 s,@$cf_NAME@,$cf_name,g
3506 cat >>$cf_edit_man <<CF_EOF
3508 echo "...made $cf_man_alias"
3512 cf_source=\`basename \$i\`
3514 test ! -f \$inalias && inalias="\$srcdir/\$inalias"
3515 if test ! -f \$inalias ; then
3516 echo .. skipped \$cf_source
3521 if test "$MANPAGE_ALIASES" != no ; then
3522 cat >>$cf_edit_man <<CF_EOF
3523 aliases=\`sed -f \$top_srcdir/man/manlinks.sed \$inalias |sed -f $cf_man_alias | sort -u\`
3527 if test "$MANPAGE_RENAMES" = no ; then
3528 cat >>$cf_edit_man <<CF_EOF
3529 # perform program transformations for section 1 man pages
3530 if test \$section = 1 ; then
3531 cf_target=\$cf_subdir\${section}/\`echo \$cf_source|sed "\${transform}"\`
3533 cf_target=\$cf_subdir\${section}/\$cf_source
3537 cat >>$cf_edit_man <<CF_EOF
3538 cf_target=\`grep "^\$cf_source" $MANPAGE_RENAMES | $AWK '{print \[$]2}'\`
3539 if test -z "\$cf_target" ; then
3540 echo '? missing rename for '\$cf_source
3541 cf_target="\$cf_source"
3543 cf_target="\$cf_subdir\${section}/\${cf_target}"
3548 cat >>$cf_edit_man <<CF_EOF
3549 sed -f $cf_man_alias \\
3552 if test -f $MANPAGE_RENAMES ; then
3553 cat >>$cf_edit_man <<CF_EOF
3554 < \$i | sed -f `pwd`/edit_man.sed >\$TMP
3557 cat >>$cf_edit_man <<CF_EOF
3562 cat >>$cf_edit_man <<CF_EOF
3563 if test \$cf_tables = yes ; then
3564 tbl \$TMP >\$TMP.out
3569 if test $with_curses_h != yes ; then
3570 cat >>$cf_edit_man <<CF_EOF
3571 sed -e "/\#[ ]*include/s,curses.h,ncurses.h," < \$TMP >\$TMP.out
3576 cat >>$cf_edit_man <<CF_EOF
3577 if test \$form = format ; then
3578 nroff -man \$TMP >\$TMP.out
3583 if test -n "$cf_compress" ; then
3584 cat >>$cf_edit_man <<CF_EOF
3585 if test \$verb = installing ; then
3586 if ( $cf_compress -f \$TMP )
3588 mv \$TMP.$cf_so_strip \$TMP
3591 cf_target="\$cf_target.$cf_so_strip"
3595 case "$MANPAGE_FORMAT" in #(vi
3597 cat >>$cf_edit_man <<CF_EOF
3598 if test \$form = format ; then
3599 # BSDI installs only .0 suffixes in the cat directories
3600 cf_target="\`echo \$cf_target|sed -e 's/\.[[1-9]]\+[[a-z]]*/.0/'\`"
3606 cat >>$cf_edit_man <<CF_EOF
3607 suffix=\`basename \$cf_target | sed -e 's%^[[^.]]*%%'\`
3608 if test \$verb = installing ; then
3609 echo \$verb \$cf_target
3610 \$INSTALL_DATA \$TMP \$cf_target
3611 test -d \$cf_subdir\${section} &&
3612 test -n "\$aliases" && (
3613 cd \$cf_subdir\${section} && (
3614 cf_source=\`echo \$cf_target |sed -e 's%^.*/\([[^/]][[^/]]*/[[^/]][[^/]]*$\)%\1%'\`
3615 test -n "$cf_so_strip" && cf_source=\`echo \$cf_source |sed -e 's%\.$cf_so_strip\$%%'\`
3616 cf_target=\`basename \$cf_target\`
3617 for cf_alias in \$aliases
3619 if test \$section = 1 ; then
3620 cf_alias=\`echo \$cf_alias|sed "\${transform}"\`
3623 if test "$MANPAGE_SYMLINKS" = yes ; then
3624 if test -f \$cf_alias\${suffix} ; then
3625 if ( cmp -s \$cf_target \$cf_alias\${suffix} )
3630 echo .. \$verb alias \$cf_alias\${suffix}
3631 rm -f \$cf_alias\${suffix}
3632 $LN_S \$cf_target \$cf_alias\${suffix}
3633 elif test "\$cf_target" != "\$cf_alias\${suffix}" ; then
3634 echo ".so \$cf_source" >\$TMP
3636 if test -n "$cf_compress" ; then
3637 cat >>$cf_edit_man <<CF_EOF
3638 if test -n "$cf_so_strip" ; then
3639 $cf_compress -f \$TMP
3640 mv \$TMP.$cf_so_strip \$TMP
3644 cat >>$cf_edit_man <<CF_EOF
3645 echo .. \$verb alias \$cf_alias\${suffix}
3646 rm -f \$cf_alias\${suffix}
3647 \$INSTALL_DATA \$TMP \$cf_alias\${suffix}
3652 elif test \$verb = removing ; then
3653 test -f \$cf_target && (
3654 echo \$verb \$cf_target
3657 test -d \$cf_subdir\${section} &&
3658 test -n "\$aliases" && (
3659 cd \$cf_subdir\${section} && (
3660 for cf_alias in \$aliases
3662 if test \$section = 1 ; then
3663 cf_alias=\`echo \$cf_alias|sed "\${transform}"\`
3666 echo .. \$verb alias \$cf_alias\${suffix}
3667 rm -f \$cf_alias\${suffix}
3679 if test $cf_inboth = yes ; then
3680 if test \$form != format ; then
3681 sh \[$]0 format \$verb \$mandir \$srcdir \[$]*
3687 chmod 755 $cf_edit_man
3690 dnl ---------------------------------------------------------------------------
3691 dnl CF_MATH_LIB version: 6 updated: 2009/12/19 13:46:49
3693 dnl Checks for libraries. At least one UNIX system, Apple Macintosh
3694 dnl Rhapsody 5.5, does not have -lm. We cannot use the simpler
3695 dnl AC_CHECK_LIB(m,sin), because that fails for C++.
3696 AC_DEFUN([CF_MATH_LIB],
3698 AC_CACHE_CHECK(if -lm needed for math functions,
3704 [double x = rand(); printf("result = %g\n", ]ifelse($2,,sin(x),$2)[)],
3705 [cf_cv_need_libm=no],
3706 [cf_cv_need_libm=yes])])
3707 if test "$cf_cv_need_libm" = yes
3714 dnl ---------------------------------------------------------------------------
3715 dnl CF_MIXEDCASE_FILENAMES version: 3 updated: 2003/09/20 17:07:55
3716 dnl ----------------------
3717 dnl Check if the file-system supports mixed-case filenames. If we're able to
3718 dnl create a lowercase name and see it as uppercase, it doesn't support that.
3719 AC_DEFUN([CF_MIXEDCASE_FILENAMES],
3721 AC_CACHE_CHECK(if filesystem supports mixed-case filenames,cf_cv_mixedcase,[
3722 if test "$cross_compiling" = yes ; then
3723 case $target_alias in #(vi
3724 *-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-mingw32*|*-uwin*) #(vi
3732 rm -f conftest CONFTEST
3734 if test -f CONFTEST ; then
3739 rm -f conftest CONFTEST
3742 test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES)
3744 dnl ---------------------------------------------------------------------------
3745 dnl CF_MKSTEMP version: 5 updated: 2006/12/16 12:33:30
3747 dnl Check for a working mkstemp. This creates two files, checks that they are
3748 dnl successfully created and distinct (AmigaOS apparently fails on the last).
3749 AC_DEFUN([CF_MKSTEMP],[
3750 AC_CACHE_CHECK(for working mkstemp, cf_cv_func_mkstemp,[
3753 #include <sys/types.h>
3757 #include <sys/stat.h>
3760 char *tmpl = "conftestXXXXXX";
3768 for (n = 0; n < 2; ++n) {
3769 strcpy(name[n], tmpl);
3770 if ((fd = mkstemp(name[n])) >= 0) {
3771 if (!strcmp(name[n], tmpl)
3772 || stat(name[n], &sb) != 0
3773 || (sb.st_mode & S_IFMT) != S_IFREG
3774 || (sb.st_mode & 077) != 0) {
3781 && !strcmp(name[0], name[1]))
3783 ${cf_cv_main_return:-return}(result);
3785 ],[cf_cv_func_mkstemp=yes
3786 ],[cf_cv_func_mkstemp=no
3787 ],[AC_CHECK_FUNC(mkstemp)
3790 if test "$cf_cv_func_mkstemp" = yes ; then
3791 AC_DEFINE(HAVE_MKSTEMP)
3794 dnl ---------------------------------------------------------------------------
3795 dnl CF_MSG_LOG version: 4 updated: 2007/07/29 09:55:12
3797 dnl Write a debug message to config.log, along with the line number in the
3798 dnl configure script.
3799 AC_DEFUN([CF_MSG_LOG],[
3800 echo "${as_me-configure}:__oline__: testing $* ..." 1>&AC_FD_CC
3802 dnl ---------------------------------------------------------------------------
3803 dnl CF_NCURSES_ABI_6 version: 1 updated: 2005/09/17 18:42:49
3804 dnl ----------------
3805 dnl Set ncurses' ABI to 6 unless overridden by explicit configure option, and
3806 dnl warn about this.
3807 AC_DEFUN([CF_NCURSES_ABI_6],[
3808 if test "${with_abi_version+set}" != set; then
3809 case $cf_cv_rel_version in
3811 cf_cv_rel_version=6.0
3813 AC_MSG_WARN(Overriding ABI version to $cf_cv_abi_version)
3818 dnl ---------------------------------------------------------------------------
3819 dnl CF_NO_LEAKS_OPTION version: 4 updated: 2006/12/16 14:24:05
3820 dnl ------------------
3821 dnl see CF_WITH_NO_LEAKS
3822 AC_DEFUN([CF_NO_LEAKS_OPTION],[
3823 AC_MSG_CHECKING(if you want to use $1 for testing)
3826 [AC_DEFINE($3)ifelse([$4],,[
3829 : ${with_cflags:=-g}
3830 : ${with_no_leaks:=yes}
3833 AC_MSG_RESULT(${with_$1:-no})
3835 case .$with_cflags in #(vi
3837 case .$CFLAGS in #(vi
3847 dnl ---------------------------------------------------------------------------
3848 dnl CF_NUMBER_SYNTAX version: 1 updated: 2003/09/20 18:12:49
3849 dnl ----------------
3850 dnl Check if the given variable is a number. If not, report an error.
3851 dnl $1 is the variable
3852 dnl $2 is the message
3853 AC_DEFUN([CF_NUMBER_SYNTAX],[
3854 if test -n "$1" ; then
3859 AC_MSG_ERROR($2 is not a number: $1)
3863 AC_MSG_ERROR($2 value is empty)
3866 dnl ---------------------------------------------------------------------------
3867 dnl CF_OBJ_SUBDIR version: 4 updated: 2002/02/23 20:38:31
3869 dnl Compute the object-directory name from the given model name
3870 AC_DEFUN([CF_OBJ_SUBDIR],
3873 libtool) $2='obj_lo' ;;
3874 normal) $2='objects' ;;
3875 debug) $2='obj_g' ;;
3876 profile) $2='obj_p' ;;
3878 case $cf_cv_system_name in #(vi
3886 dnl ---------------------------------------------------------------------------
3887 dnl CF_PATHSEP version: 4 updated: 2009/01/11 20:30:23
3889 dnl Provide a value for the $PATH and similar separator
3890 AC_DEFUN([CF_PATHSEP],
3892 case $cf_cv_system_name in
3893 os2*) PATH_SEPARATOR=';' ;;
3894 *) PATH_SEPARATOR=':' ;;
3896 ifelse($1,,,[$1=$PATH_SEPARATOR])
3897 AC_SUBST(PATH_SEPARATOR)
3899 dnl ---------------------------------------------------------------------------
3900 dnl CF_PATH_SYNTAX version: 12 updated: 2008/03/23 14:45:59
3902 dnl Check the argument to see that it looks like a pathname. Rewrite it if it
3903 dnl begins with one of the prefix/exec_prefix variables, and then again if the
3904 dnl result begins with 'NONE'. This is necessary to work around autoconf's
3905 dnl delayed evaluation of those symbols.
3906 AC_DEFUN([CF_PATH_SYNTAX],[
3907 if test "x$prefix" != xNONE; then
3908 cf_path_syntax="$prefix"
3910 cf_path_syntax="$ac_default_prefix"
3913 case ".[$]$1" in #(vi
3914 .\[$]\(*\)*|.\'*\'*) #(vi
3918 .[[a-zA-Z]]:[[\\/]]*) #(vi OS/2 EMX
3920 .\[$]{*prefix}*) #(vi
3922 case ".[$]$1" in #(vi
3924 $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
3929 $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
3932 ifelse($2,,[AC_MSG_ERROR([expected a pathname, not \"[$]$1\"])],$2)
3936 dnl ---------------------------------------------------------------------------
3937 dnl CF_PKG_CONFIG version: 3 updated: 2009/01/25 10:55:09
3939 dnl Check for the package-config program, unless disabled by command-line.
3940 AC_DEFUN([CF_PKG_CONFIG],
3942 AC_MSG_CHECKING(if you want to use pkg-config)
3943 AC_ARG_WITH(pkg-config,
3944 [ --with-pkg-config{=path} enable/disable use of pkg-config],
3945 [cf_pkg_config=$withval],
3946 [cf_pkg_config=yes])
3947 AC_MSG_RESULT($cf_pkg_config)
3949 case $cf_pkg_config in #(vi
3954 AC_PATH_PROG(PKG_CONFIG, pkg-config, none)
3961 test -z "$PKG_CONFIG" && PKG_CONFIG=none
3962 if test "$PKG_CONFIG" != none ; then
3963 CF_PATH_SYNTAX(PKG_CONFIG)
3966 AC_SUBST(PKG_CONFIG)
3968 dnl ---------------------------------------------------------------------------
3969 dnl CF_POSIX_C_SOURCE version: 7 updated: 2010/01/09 11:05:50
3970 dnl -----------------
3971 dnl Define _POSIX_C_SOURCE to the given level, and _POSIX_SOURCE if needed.
3973 dnl POSIX.1-1990 _POSIX_SOURCE
3974 dnl POSIX.1-1990 and _POSIX_SOURCE and
3975 dnl POSIX.2-1992 C-Language _POSIX_C_SOURCE=2
3977 dnl POSIX.1b-1993 _POSIX_C_SOURCE=199309L
3978 dnl POSIX.1c-1996 _POSIX_C_SOURCE=199506L
3979 dnl X/Open 2000 _POSIX_C_SOURCE=200112L
3982 dnl $1 is the nominal value for _POSIX_C_SOURCE
3983 AC_DEFUN([CF_POSIX_C_SOURCE],
3985 cf_POSIX_C_SOURCE=ifelse($1,,199506L,$1)
3987 cf_save_CFLAGS="$CFLAGS"
3988 cf_save_CPPFLAGS="$CPPFLAGS"
3990 CF_REMOVE_DEFINE(cf_trim_CFLAGS,$cf_save_CFLAGS,_POSIX_C_SOURCE)
3991 CF_REMOVE_DEFINE(cf_trim_CPPFLAGS,$cf_save_CPPFLAGS,_POSIX_C_SOURCE)
3993 AC_CACHE_CHECK(if we should define _POSIX_C_SOURCE,cf_cv_posix_c_source,[
3994 CF_MSG_LOG(if the symbol is already defined go no further)
3995 AC_TRY_COMPILE([#include <sys/types.h>],[
3996 #ifndef _POSIX_C_SOURCE
3999 [cf_cv_posix_c_source=no],
4000 [cf_want_posix_source=no
4001 case .$cf_POSIX_C_SOURCE in #(vi
4003 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
4006 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
4007 cf_want_posix_source=yes
4010 cf_want_posix_source=yes
4013 if test "$cf_want_posix_source" = yes ; then
4014 AC_TRY_COMPILE([#include <sys/types.h>],[
4015 #ifdef _POSIX_SOURCE
4018 cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE")
4020 CF_MSG_LOG(ifdef from value $cf_POSIX_C_SOURCE)
4021 CFLAGS="$cf_trim_CFLAGS"
4022 CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source"
4023 CF_MSG_LOG(if the second compile does not leave our definition intact error)
4024 AC_TRY_COMPILE([#include <sys/types.h>],[
4025 #ifndef _POSIX_C_SOURCE
4028 [cf_cv_posix_c_source=no])
4029 CFLAGS="$cf_save_CFLAGS"
4030 CPPFLAGS="$cf_save_CPPFLAGS"
4034 if test "$cf_cv_posix_c_source" != no ; then
4035 CFLAGS="$cf_trim_CFLAGS"
4036 CPPFLAGS="$cf_trim_CPPFLAGS"
4037 CF_ADD_CFLAGS($cf_cv_posix_c_source)
4041 dnl ---------------------------------------------------------------------------
4042 dnl CF_PREDEFINE version: 1 updated: 2003/07/26 17:53:56
4044 dnl Add definitions to CPPFLAGS to ensure they're predefined for all compiles.
4046 dnl $1 = symbol to test
4047 dnl $2 = value (if any) to use for a predefinition
4048 AC_DEFUN([CF_PREDEFINE],
4050 AC_MSG_CHECKING(if we must define $1)
4051 AC_TRY_COMPILE([#include <sys/types.h>
4055 #endif],[cf_result=no],[cf_result=yes])
4056 AC_MSG_RESULT($cf_result)
4058 if test "$cf_result" = yes ; then
4059 CPPFLAGS="$CPPFLAGS ifelse($2,,-D$1,[-D$1=$2])"
4060 elif test "x$2" != "x" ; then
4061 AC_MSG_CHECKING(checking for compatible value versus $2)
4062 AC_TRY_COMPILE([#include <sys/types.h>
4066 #endif],[cf_result=yes],[cf_result=no])
4067 AC_MSG_RESULT($cf_result)
4068 if test "$cf_result" = no ; then
4069 # perhaps we can override it - try...
4070 CPPFLAGS="$CPPFLAGS -D$1=$2"
4074 dnl ---------------------------------------------------------------------------
4075 dnl CF_PRG_RULES version: 1 updated: 2006/06/03 11:45:08
4077 dnl Append definitions and rules for the given programs to the subdirectory
4078 dnl Makefiles, and the recursion rule for the top-level Makefile.
4081 dnl $1 = script to run
4082 dnl $2 = list of subdirectories
4086 AC_DEFUN([CF_PRG_RULES],
4090 if test ! -d $srcdir/$cf_dir; then
4092 elif test -f $srcdir/$cf_dir/programs; then
4093 $AWK -f $1 $srcdir/$cf_dir/programs >>$cf_dir/Makefile
4098 dnl ---------------------------------------------------------------------------
4099 dnl CF_PROG_AR version: 1 updated: 2009/01/01 20:15:22
4101 dnl Check for archiver "ar".
4102 AC_DEFUN([CF_PROG_AR],[
4103 AC_CHECK_TOOL(AR, ar, ar)
4105 dnl ---------------------------------------------------------------------------
4106 dnl CF_PROG_AWK version: 1 updated: 2006/09/16 11:40:59
4108 dnl Check for awk, ensure that the check found something.
4109 AC_DEFUN([CF_PROG_AWK],
4112 test -z "$AWK" && AC_MSG_ERROR(No awk program found)
4114 dnl ---------------------------------------------------------------------------
4115 dnl CF_PROG_CC_C_O version: 2 updated: 2006/12/16 15:55:46
4117 dnl Analogous to AC_PROG_CC_C_O, but more useful: tests only $CC, ensures that
4118 dnl the output file can be renamed, and allows for a shell variable that can
4119 dnl be used later. The parameter is either CC or CXX. The result is the
4121 dnl $cf_cv_prog_CC_c_o
4122 dnl $cf_cv_prog_CXX_c_o
4123 AC_DEFUN([CF_PROG_CC_C_O],
4124 [AC_REQUIRE([AC_PROG_CC])dnl
4125 AC_MSG_CHECKING([whether [$]$1 understands -c and -o together])
4126 AC_CACHE_VAL(cf_cv_prog_$1_c_o,
4128 cat > conftest.$ac_ext <<CF_EOF
4132 ${cf_cv_main_return:-return}(0);
4135 # We do the test twice because some compilers refuse to overwrite an
4136 # existing .o file with -o, though they will create one.
4137 ac_try='[$]$1 -c conftest.$ac_ext -o conftest2.$ac_objext >&AC_FD_CC'
4138 if AC_TRY_EVAL(ac_try) &&
4139 test -f conftest2.$ac_objext && AC_TRY_EVAL(ac_try);
4141 eval cf_cv_prog_$1_c_o=yes
4143 eval cf_cv_prog_$1_c_o=no
4147 if test $cf_cv_prog_$1_c_o = yes; then
4148 AC_MSG_RESULT([yes])
4153 dnl ---------------------------------------------------------------------------
4154 dnl CF_PROG_CC_U_D version: 1 updated: 2005/07/14 16:59:30
4156 dnl Check if C (preprocessor) -U and -D options are processed in the order
4157 dnl given rather than by type of option. Some compilers insist on apply all
4158 dnl of the -U options after all of the -D options. Others allow mixing them,
4159 dnl and may predefine symbols that conflict with those we define.
4160 AC_DEFUN([CF_PROG_CC_U_D],
4162 AC_CACHE_CHECK(if $CC -U and -D options work together,cf_cv_cc_u_d_options,[
4163 cf_save_CPPFLAGS="$CPPFLAGS"
4164 CPPFLAGS="-UU_D_OPTIONS -DU_D_OPTIONS -DD_U_OPTIONS -UD_U_OPTIONS"
4167 make an undefined-error
4170 make a defined-error
4173 cf_cv_cc_u_d_options=yes],[
4174 cf_cv_cc_u_d_options=no])
4175 CPPFLAGS="$cf_save_CPPFLAGS"
4178 dnl ---------------------------------------------------------------------------
4179 dnl CF_PROG_EGREP version: 1 updated: 2006/09/16 11:40:59
4181 dnl AC_PROG_EGREP was introduced in autoconf 2.53.
4182 dnl This macro adds a check to ensure the script found something.
4183 AC_DEFUN([CF_PROG_EGREP],
4184 [AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep],
4185 [if echo a | (grep -E '(a|b)') >/dev/null 2>&1
4186 then ac_cv_prog_egrep='grep -E'
4187 else ac_cv_prog_egrep='egrep'
4189 EGREP=$ac_cv_prog_egrep
4191 test -z "$EGREP" && AC_MSG_ERROR(No egrep program found)
4193 dnl ---------------------------------------------------------------------------
4194 dnl CF_PROG_EXT version: 10 updated: 2004/01/03 19:28:18
4196 dnl Compute $PROG_EXT, used for non-Unix ports, such as OS/2 EMX.
4197 AC_DEFUN([CF_PROG_EXT],
4199 AC_REQUIRE([CF_CHECK_CACHE])
4200 case $cf_cv_system_name in
4202 CFLAGS="$CFLAGS -Zmt"
4203 CPPFLAGS="$CPPFLAGS -D__ST_MT_ERRNO__"
4204 CXXFLAGS="$CXXFLAGS -Zmt"
4205 # autoconf's macro sets -Zexe and suffix both, which conflict:w
4206 LDFLAGS="$LDFLAGS -Zmt -Zcrtdll"
4216 test -n "$PROG_EXT" && AC_DEFINE_UNQUOTED(PROG_EXT,"$PROG_EXT")
4218 dnl ---------------------------------------------------------------------------
4219 dnl CF_PROG_INSTALL version: 5 updated: 2002/12/21 22:46:07
4221 dnl Force $INSTALL to be an absolute-path. Otherwise, edit_man.sh and the
4222 dnl misc/tabset install won't work properly. Usually this happens only when
4223 dnl using the fallback mkinstalldirs script
4224 AC_DEFUN([CF_PROG_INSTALL],
4230 CF_DIRNAME(cf_dir,$INSTALL)
4231 test -z "$cf_dir" && cf_dir=.
4232 INSTALL=`cd $cf_dir && pwd`/`echo $INSTALL | sed -e 's%^.*/%%'`
4236 dnl ---------------------------------------------------------------------------
4237 dnl CF_PROG_LDCONFIG version: 2 updated: 2008/12/13 14:08:40
4238 dnl ----------------
4239 dnl Check for ldconfig, needed to fixup shared libraries that would be built
4240 dnl and then used in the install.
4241 AC_DEFUN([CF_PROG_LDCONFIG],[
4242 if test "$cross_compiling" = yes ; then
4245 case "$cf_cv_system_name" in #(vi
4246 dragonfly*|freebsd*) #(vi
4247 test -z "$LDCONFIG" && LDCONFIG="/sbin/ldconfig -R"
4249 *) LDPATH=$PATH:/sbin:/usr/sbin
4250 AC_PATH_PROG(LDCONFIG,ldconfig,,$LDPATH)
4256 dnl ---------------------------------------------------------------------------
4257 dnl CF_PROG_LINT version: 2 updated: 2009/08/12 04:43:14
4259 AC_DEFUN([CF_PROG_LINT],
4261 AC_CHECK_PROGS(LINT, tdlint lint alint splint lclint)
4264 dnl ---------------------------------------------------------------------------
4265 dnl CF_REGEX version: 6 updated: 2010/03/27 13:41:56
4267 dnl Attempt to determine if we've got one of the flavors of regular-expression
4268 dnl code that we can support.
4269 AC_DEFUN([CF_REGEX],
4274 AC_CHECK_FUNC(regcomp,[cf_regex_func=regcomp],[
4275 for cf_regex_lib in regex re
4277 AC_CHECK_LIB($cf_regex_lib,regcomp,[
4278 LIBS="-l$cf_regex_lib $LIBS"
4279 cf_regex_func=regcomp
4284 if test "$cf_regex_func" = no ; then
4285 AC_CHECK_FUNC(compile,[cf_regex_func=compile],[
4286 AC_CHECK_LIB(gen,compile,[
4288 cf_regex_func=compile])])
4291 if test "$cf_regex_func" = no ; then
4292 AC_MSG_WARN(cannot find regular expression library)
4295 AC_CACHE_CHECK(for regular-expression headers,cf_cv_regex_hdrs,[
4298 case $cf_regex_func in #(vi
4300 for cf_regex_hdr in regexp.h regexpr.h
4302 AC_TRY_LINK([#include <$cf_regex_hdr>],[
4303 char *p = compile("", "", "", 0);
4304 int x = step("", "");
4306 cf_cv_regex_hdrs=$cf_regex_hdr
4312 for cf_regex_hdr in regex.h
4314 AC_TRY_LINK([#include <sys/types.h>
4315 #include <$cf_regex_hdr>],[
4317 int x = regcomp(p, "", 0);
4318 int y = regexec(p, "", 0, 0, 0);
4321 cf_cv_regex_hdrs=$cf_regex_hdr
4330 case $cf_cv_regex_hdrs in #(vi
4331 no) AC_MSG_WARN(no regular expression header found) ;; #(vi
4332 regex.h) AC_DEFINE(HAVE_REGEX_H_FUNCS) ;; #(vi
4333 regexp.h) AC_DEFINE(HAVE_REGEXP_H_FUNCS) ;; #(vi
4334 regexpr.h) AC_DEFINE(HAVE_REGEXPR_H_FUNCS) ;;
4337 dnl ---------------------------------------------------------------------------
4338 dnl CF_REMOVE_DEFINE version: 3 updated: 2010/01/09 11:05:50
4339 dnl ----------------
4340 dnl Remove all -U and -D options that refer to the given symbol from a list
4341 dnl of C compiler options. This works around the problem that not all
4342 dnl compilers process -U and -D options from left-to-right, so a -U option
4343 dnl cannot be used to cancel the effect of a preceding -D option.
4345 dnl $1 = target (which could be the same as the source variable)
4346 dnl $2 = source (including '$')
4347 dnl $3 = symbol to remove
4348 define([CF_REMOVE_DEFINE],
4351 sed -e 's/-[[UD]]'"$3"'\(=[[^ ]]*\)\?[[ ]]/ /g' \
4352 -e 's/-[[UD]]'"$3"'\(=[[^ ]]*\)\?[$]//g'`
4354 dnl ---------------------------------------------------------------------------
4355 dnl CF_REMOVE_LIB version: 1 updated: 2007/02/17 14:11:52
4357 dnl Remove the given library from the symbol
4359 dnl $1 = target (which could be the same as the source variable)
4360 dnl $2 = source (including '$')
4361 dnl $3 = library to remove
4362 define([CF_REMOVE_LIB],
4364 # remove $3 library from $2
4365 $1=`echo "$2" | sed -e 's/-l$3[[ ]]//g' -e 's/-l$3[$]//'`
4367 dnl ---------------------------------------------------------------------------
4368 dnl CF_RPATH_HACK version: 5 updated: 2010/03/27 18:39:42
4370 AC_DEFUN([CF_RPATH_HACK],
4372 AC_REQUIRE([CF_LD_RPATH_OPT])
4373 AC_REQUIRE([CF_SHARED_OPTS])
4374 AC_MSG_CHECKING(for updated LDFLAGS)
4375 if test -n "$LD_RPATH_OPT" ; then
4376 AC_MSG_RESULT(maybe)
4378 CF_VERBOSE(...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS)
4380 CF_RPATH_HACK_2(LDFLAGS)
4381 CF_RPATH_HACK_2(LIBS)
4383 CF_VERBOSE(...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS)
4386 dnl ---------------------------------------------------------------------------
4387 dnl CF_RPATH_HACK_2 version: 1 updated: 2010/03/27 18:39:42
4389 dnl Do one set of substitutions for CF_RPATH_HACK, adding an rpath option to
4390 dnl EXTRA_LDFLAGS for each -L option found.
4392 dnl $1 = variable name to update. The LDFLAGS variable should be the only one,
4393 dnl but LIBS often has misplaced -L options.
4394 AC_DEFUN([CF_RPATH_HACK_2],
4396 CF_VERBOSE(...checking $1 [$]$1)
4399 for cf_rpath_src in [$]$1
4401 CF_VERBOSE(Filtering $cf_rpath_src)
4402 case $cf_rpath_src in #(vi
4404 if test "$LD_RPATH_OPT" = "-R " ; then
4405 cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e 's%-L%-R %'`
4407 cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e s%-L%$LD_RPATH_OPT%`
4409 CF_VERBOSE(...Filter $cf_rpath_tmp)
4410 EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS"
4413 cf_rpath_dst="$cf_rpath_dst $cf_rpath_src"
4417 CF_VERBOSE(...checked $1 [$]$1)
4419 dnl ---------------------------------------------------------------------------
4420 dnl CF_SHARED_OPTS version: 61 updated: 2010/03/27 20:13:59
4423 dnl Attempt to determine the appropriate CC/LD options for creating a shared
4426 dnl Note: ${LOCAL_LDFLAGS} is used to link executables that will run within the
4427 dnl build-tree, i.e., by making use of the libraries that are compiled in ../lib
4428 dnl We avoid compiling-in a ../lib path for the shared library since that can
4429 dnl lead to unexpected results at runtime.
4430 dnl ${LOCAL_LDFLAGS2} has the same intention but assumes that the shared libraries
4431 dnl are compiled in ../../lib
4433 dnl The variable 'cf_cv_do_symlinks' is used to control whether we configure
4434 dnl to install symbolic links to the rel/abi versions of shared libraries.
4436 dnl The variable 'cf_cv_shlib_version' controls whether we use the rel or abi
4437 dnl version when making symbolic links.
4439 dnl The variable 'cf_cv_shlib_version_infix' controls whether shared library
4440 dnl version numbers are infix (ex: libncurses.<ver>.dylib) or postfix
4441 dnl (ex: libncurses.so.<ver>).
4443 dnl Some loaders leave 'so_locations' lying around. It's nice to clean up.
4444 AC_DEFUN([CF_SHARED_OPTS],
4446 AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
4447 AC_REQUIRE([CF_LD_RPATH_OPT])
4451 INSTALL_LIB="-m 644"
4453 cf_cv_do_symlinks=no
4455 test "$cf_cv_enable_rpath" = yes && cf_ld_rpath_opt="$LD_RPATH_OPT"
4457 AC_MSG_CHECKING(if release/abi version should be used for shared libs)
4458 AC_ARG_WITH(shlib-version,
4459 [ --with-shlib-version=X Specify rel or abi version for shared libs],
4460 [test -z "$withval" && withval=auto
4461 case $withval in #(vi
4463 cf_cv_shlib_version=auto
4465 rel|abi|auto|no) #(vi
4466 cf_cv_shlib_version=$withval
4469 AC_MSG_ERROR([option value must be one of: rel, abi, auto or no])
4472 ],[cf_cv_shlib_version=auto])
4473 AC_MSG_RESULT($cf_cv_shlib_version)
4477 # Some less-capable ports of gcc support only -fpic
4479 if test "$GCC" = yes
4481 AC_MSG_CHECKING(which $CC option to use)
4482 cf_save_CFLAGS="$CFLAGS"
4483 for CC_SHARED_OPTS in -fPIC -fpic ''
4485 CFLAGS="$cf_save_CFLAGS $CC_SHARED_OPTS"
4486 AC_TRY_COMPILE([#include <stdio.h>],[int x = 1],[break],[])
4488 AC_MSG_RESULT($CC_SHARED_OPTS)
4489 CFLAGS="$cf_save_CFLAGS"
4492 cf_cv_shlib_version_infix=no
4494 case $cf_cv_system_name in #(vi
4496 if test "$GCC" = yes; then
4498 MK_SHARED_LIB="$(CC) -shared"
4502 MK_SHARED_LIB='${CC} ${CFLAGS} -o $[@] -Xlinker -soname=`basename $[@]` -nostart -e 0'
4506 MK_SHARED_LIB='sh ../mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
4507 cf_cv_shlib_version=cygdll
4508 cf_cv_shlib_version_infix=cygdll
4509 cat >mk_shared_lib.sh <<-CF_EOF
4512 IMPORT_LIB=\`echo "\[$]1" | sed -e 's/cyg/lib/' -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
4515 Linking shared library
4516 ** SHARED_LIB \[$]SHARED_LIB
4517 ** IMPORT_LIB \[$]IMPORT_LIB
4519 exec \[$]* -shared -Wl,--out-implib=../lib/\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o ../lib/\[$]{SHARED_LIB}
4521 chmod +x mk_shared_lib.sh
4524 EXTRA_CFLAGS="-no-cpp-precomp"
4525 CC_SHARED_OPTS="-dynamic"
4526 MK_SHARED_LIB='${CC} ${CFLAGS} -dynamiclib -install_name ${libdir}/`basename $[@]` -compatibility_version ${ABI_VERSION} -current_version ${ABI_VERSION} -o $[@]'
4527 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi
4528 cf_cv_shlib_version_infix=yes
4529 AC_CACHE_CHECK([if ld -search_paths_first works], cf_cv_ldflags_search_paths_first, [
4530 cf_save_LDFLAGS=$LDFLAGS
4531 LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
4532 AC_TRY_LINK(, [int i;], cf_cv_ldflags_search_paths_first=yes, cf_cv_ldflags_search_paths_first=no)
4533 LDFLAGS=$cf_save_LDFLAGS])
4534 if test $cf_cv_ldflags_search_paths_first = yes; then
4535 LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
4539 # (tested with gcc 2.7.2 -- I don't have c89)
4540 if test "$GCC" = yes; then
4541 LD_SHARED_OPTS='-Xlinker +b -Xlinker ${libdir}'
4544 LD_SHARED_OPTS='-Wl,+b,${libdir}'
4546 MK_SHARED_LIB='${LD} +b ${libdir} -b -o $[@]'
4547 # HP-UX shared libraries must be executable, and should be
4548 # readonly to exploit a quirk in the memory manager.
4549 INSTALL_LIB="-m 555"
4552 if test "$cf_cv_enable_rpath" = yes ; then
4553 EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
4555 # tested with IRIX 5.2 and 'cc'.
4556 if test "$GCC" != yes; then
4557 CC_SHARED_OPTS='-KPIC'
4558 MK_SHARED_LIB='${CC} -shared -rdata_shared -soname `basename $[@]` -o $[@]'
4560 MK_SHARED_LIB='${CC} -shared -Wl,-soname,`basename $[@]` -o $[@]'
4562 cf_cv_rm_so_locs=yes
4564 linux*|gnu*|k*bsd*-gnu) #(vi
4565 if test "$DFT_LWR_MODEL" = "shared" ; then
4566 LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
4567 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4569 if test "$cf_cv_enable_rpath" = yes ; then
4570 EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
4573 MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
4575 openbsd[[2-9]].*) #(vi
4576 if test "$DFT_LWR_MODEL" = "shared" ; then
4577 LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
4578 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4580 if test "$cf_cv_enable_rpath" = yes ; then
4581 EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
4583 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
4585 MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-Bshareable,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
4587 nto-qnx*|openbsd*|freebsd[[12]].*) #(vi
4588 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
4589 MK_SHARED_LIB='${LD} -Bshareable -o $[@]'
4590 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
4593 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
4594 if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then
4595 LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)"
4596 LOCAL_LDFLAGS2="${cf_ld_rpath_opt}\${libdir} $LOCAL_LDFLAGS"
4597 EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
4600 MK_SHARED_LIB='${LD} -shared -Bshareable -soname=`basename $[@]` -o $[@]'
4603 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
4604 if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then
4605 LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)"
4606 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4607 EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
4608 if test "$cf_cv_shlib_version" = auto; then
4609 if test -f /usr/libexec/ld.elf_so; then
4610 cf_cv_shlib_version=abi
4612 cf_cv_shlib_version=rel
4616 MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname' -o $[@]'
4618 MK_SHARED_LIB='${LD} -shared -Bshareable -o $[@]'
4622 # tested with OSF/1 V3.2 and 'cc'
4623 # tested with OSF/1 V3.2 and gcc 2.6.3 (but the c++ demo didn't
4624 # link with shared libs).
4625 MK_SHARED_LIB='${LD} -set_version ${REL_VERSION}:${ABI_VERSION} -expect_unresolved "*" -shared -soname `basename $[@]`'
4626 case $host_os in #(vi
4628 MK_SHARED_LIB="${MK_SHARED_LIB} -msym"
4631 MK_SHARED_LIB="${MK_SHARED_LIB}"' -o $[@]'
4632 if test "$DFT_LWR_MODEL" = "shared" ; then
4633 LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
4634 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4636 cf_cv_rm_so_locs=yes
4638 sco3.2v5*) # (also uw2* and UW7: hops 13-Apr-98
4639 # tested with osr5.0.5
4640 if test "$GCC" != yes; then
4641 CC_SHARED_OPTS='-belf -KPIC'
4643 MK_SHARED_LIB='${LD} -dy -G -h `basename $[@] .${REL_VERSION}`.${ABI_VERSION} -o [$]@'
4644 if test "$cf_cv_enable_rpath" = yes ; then
4645 # only way is to set LD_RUN_PATH but no switch for it
4648 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
4649 LINK_PROGS='LD_RUN_PATH=${libdir}'
4650 LINK_TESTS='Pwd=`pwd`;LD_RUN_PATH=`dirname $${Pwd}`/lib'
4653 # tested with SunOS 4.1.1 and gcc 2.7.0
4654 if test "$GCC" != yes; then
4655 CC_SHARED_OPTS='-KPIC'
4657 MK_SHARED_LIB='${LD} -assert pure-text -o $[@]'
4658 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
4661 # tested with SunOS 5.5.1 (solaris 2.5.1) and gcc 2.7.2
4662 # tested with SunOS 5.10 (solaris 10) and gcc 3.4.3
4663 if test "$DFT_LWR_MODEL" = "shared" ; then
4664 LOCAL_LDFLAGS="-R \$(LOCAL_LIBDIR):\${libdir}"
4665 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4667 if test "$cf_cv_enable_rpath" = yes ; then
4668 EXTRA_LDFLAGS="$LOCAL_LDFLAGS $EXTRA_LDFLAGS"
4671 if test "$GCC" != yes; then
4672 cf_save_CFLAGS="$CFLAGS"
4673 for cf_shared_opts in -xcode=pic13 -xcode=pic32 -Kpic -KPIC -O
4675 CFLAGS="$cf_shared_opts $cf_save_CFLAGS"
4676 AC_TRY_COMPILE([#include <stdio.h>],[printf("Hello\n");],[break])
4678 CFLAGS="$cf_save_CFLAGS"
4679 CC_SHARED_OPTS=$cf_shared_opts
4680 MK_SHARED_LIB='${CC} -dy -G -h '$cf_cv_shared_soname' -o $[@]'
4682 MK_SHARED_LIB='${CC} -shared -dy -G -h '$cf_cv_shared_soname' -o $[@]'
4685 sysv5uw7*|unix_sv*) #(vi
4686 # tested with UnixWare 7.1.0 (gcc 2.95.2 and cc)
4687 if test "$GCC" != yes; then
4688 CC_SHARED_OPTS='-KPIC'
4690 MK_SHARED_LIB='${LD} -d y -G -o [$]@'
4693 CC_SHARED_OPTS='unknown'
4694 MK_SHARED_LIB='echo unknown'
4698 # This works if the last tokens in $MK_SHARED_LIB are the -o target.
4699 case "$cf_cv_shlib_version" in #(vi
4701 case "$MK_SHARED_LIB" in #(vi
4703 test "$cf_cv_do_symlinks" = no && cf_cv_do_symlinks=yes
4706 AC_MSG_WARN(ignored --with-shlib-version)
4712 if test -n "$cf_ld_rpath_opt" ; then
4713 MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${libdir}"
4716 AC_SUBST(CC_SHARED_OPTS)
4717 AC_SUBST(LD_RPATH_OPT)
4718 AC_SUBST(LD_SHARED_OPTS)
4719 AC_SUBST(MK_SHARED_LIB)
4720 AC_SUBST(LINK_PROGS)
4721 AC_SUBST(LINK_TESTS)
4722 AC_SUBST(EXTRA_LDFLAGS)
4723 AC_SUBST(LOCAL_LDFLAGS)
4724 AC_SUBST(LOCAL_LDFLAGS2)
4725 AC_SUBST(INSTALL_LIB)
4727 dnl ---------------------------------------------------------------------------
4728 dnl CF_SHARED_SONAME version: 3 updated: 2008/09/08 18:34:43
4729 dnl ----------------
4730 dnl utility macro for CF_SHARED_OPTS, constructs "$cf_cv_shared_soname" for
4731 dnl substitution into MK_SHARED_LIB string for the "-soname" (or similar)
4734 dnl $1 is the default that should be used for "$cf_cv_shlib_version".
4735 dnl If missing, use "rel".
4736 define([CF_SHARED_SONAME],
4738 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=ifelse($1,,rel,$1)
4739 if test "$cf_cv_shlib_version" = rel; then
4740 cf_cv_shared_soname='`basename $[@] .${REL_VERSION}`.${ABI_VERSION}'
4742 cf_cv_shared_soname='`basename $[@]`'
4745 dnl ---------------------------------------------------------------------------
4746 dnl CF_SIGWINCH version: 1 updated: 2006/04/02 16:41:09
4748 dnl Use this macro after CF_XOPEN_SOURCE, but do not require it (not all
4749 dnl programs need this test).
4751 dnl This is really a MacOS X 10.4.3 workaround. Defining _POSIX_C_SOURCE
4752 dnl forces SIGWINCH to be undefined (breaks xterm, ncurses). Oddly, the struct
4753 dnl winsize declaration is left alone - we may revisit this if Apple choose to
4754 dnl break that part of the interface as well.
4755 AC_DEFUN([CF_SIGWINCH],
4757 AC_CACHE_CHECK(if SIGWINCH is defined,cf_cv_define_sigwinch,[
4759 #include <sys/types.h>
4760 #include <sys/signal.h>
4761 ],[int x = SIGWINCH],
4762 [cf_cv_define_sigwinch=yes],
4764 #undef _XOPEN_SOURCE
4765 #undef _POSIX_SOURCE
4766 #undef _POSIX_C_SOURCE
4767 #include <sys/types.h>
4768 #include <sys/signal.h>
4769 ],[int x = SIGWINCH],
4770 [cf_cv_define_sigwinch=maybe],
4771 [cf_cv_define_sigwinch=no])
4775 if test "$cf_cv_define_sigwinch" = maybe ; then
4776 AC_CACHE_CHECK(for actual SIGWINCH definition,cf_cv_fixup_sigwinch,[
4777 cf_cv_fixup_sigwinch=unknown
4779 while test $cf_sigwinch != 1
4782 #undef _XOPEN_SOURCE
4783 #undef _POSIX_SOURCE
4784 #undef _POSIX_C_SOURCE
4785 #include <sys/types.h>
4786 #include <sys/signal.h>
4788 #if SIGWINCH != $cf_sigwinch
4792 [cf_cv_fixup_sigwinch=$cf_sigwinch
4795 cf_sigwinch=`expr $cf_sigwinch - 1`
4799 if test "$cf_cv_fixup_sigwinch" != unknown ; then
4800 CPPFLAGS="$CPPFLAGS -DSIGWINCH=$cf_cv_fixup_sigwinch"
4804 dnl ---------------------------------------------------------------------------
4805 dnl CF_SIG_ATOMIC_T version: 2 updated: 2005/09/18 17:27:12
4807 dnl signal handler, but there are some gcc depedencies in that recommendation.
4809 AC_DEFUN([CF_SIG_ATOMIC_T],
4811 AC_MSG_CHECKING(for signal global datatype)
4812 AC_CACHE_VAL(cf_cv_sig_atomic_t,[
4814 "volatile sig_atomic_t" \
4819 #include <sys/types.h>
4825 static void handler(int sig)
4829 [signal(SIGINT, handler);
4831 [cf_cv_sig_atomic_t=$cf_type],
4832 [cf_cv_sig_atomic_t=no])
4833 test "$cf_cv_sig_atomic_t" != no && break
4836 AC_MSG_RESULT($cf_cv_sig_atomic_t)
4837 test "$cf_cv_sig_atomic_t" != no && AC_DEFINE_UNQUOTED(SIG_ATOMIC_T, $cf_cv_sig_atomic_t)
4839 dnl ---------------------------------------------------------------------------
4840 dnl CF_SIZECHANGE version: 8 updated: 2000/11/04 12:22:16
4842 dnl Check for definitions & structures needed for window size-changing
4843 dnl FIXME: check that this works with "snake" (HP-UX 10.x)
4844 AC_DEFUN([CF_SIZECHANGE],
4846 AC_REQUIRE([CF_STRUCT_TERMIOS])
4847 AC_CACHE_CHECK(declaration of size-change, cf_cv_sizechange,[
4848 cf_cv_sizechange=unknown
4849 cf_save_CPPFLAGS="$CPPFLAGS"
4851 for cf_opts in "" "NEED_PTEM_H"
4854 CPPFLAGS="$cf_save_CPPFLAGS"
4855 test -n "$cf_opts" && CPPFLAGS="$CPPFLAGS -D$cf_opts"
4856 AC_TRY_COMPILE([#include <sys/types.h>
4857 #ifdef HAVE_TERMIOS_H
4858 #include <termios.h>
4860 #ifdef HAVE_TERMIO_H
4865 /* This is a workaround for SCO: they neglected to define struct winsize in
4866 * termios.h -- it's only in termio.h and ptem.h
4868 #include <sys/stream.h>
4869 #include <sys/ptem.h>
4871 #if !defined(sun) || !defined(HAVE_TERMIOS_H)
4872 #include <sys/ioctl.h>
4876 struct ttysize win; /* FIXME: what system is this? */
4877 int y = win.ts_lines;
4878 int x = win.ts_cols;
4885 no TIOCGSIZE or TIOCGWINSZ
4886 #endif /* TIOCGWINSZ */
4887 #endif /* TIOCGSIZE */
4889 [cf_cv_sizechange=yes],
4890 [cf_cv_sizechange=no])
4892 CPPFLAGS="$cf_save_CPPFLAGS"
4893 if test "$cf_cv_sizechange" = yes ; then
4894 echo "size-change succeeded ($cf_opts)" >&AC_FD_CC
4895 test -n "$cf_opts" && cf_cv_sizechange="$cf_opts"
4900 if test "$cf_cv_sizechange" != no ; then
4901 AC_DEFINE(HAVE_SIZECHANGE)
4902 case $cf_cv_sizechange in #(vi
4904 AC_DEFINE_UNQUOTED($cf_cv_sizechange )
4909 dnl ---------------------------------------------------------------------------
4910 dnl CF_SRC_MODULES version: 20 updated: 2008/12/27 12:30:03
4912 dnl For each parameter, test if the source-directory exists, and if it contains
4913 dnl a 'modules' file. If so, add to the list $cf_cv_src_modules which we'll
4914 dnl use in CF_LIB_RULES.
4916 dnl This uses the configured value to make the lists SRC_SUBDIRS and
4917 dnl SUB_MAKEFILES which are used in the makefile-generation scheme.
4918 AC_DEFUN([CF_SRC_MODULES],
4920 AC_MSG_CHECKING(for src modules)
4922 # dependencies and linker-arguments for test-programs
4923 TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEPS"
4924 TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEP2"
4925 if test "$DFT_LWR_MODEL" = "libtool"; then
4926 TEST_ARGS="${TEST_DEPS}"
4927 TEST_ARG2="${TEST_DEP2}"
4929 TEST_ARGS="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARGS"
4930 TEST_ARG2="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARG2"
4936 if test -f $srcdir/$cf_dir/modules; then
4938 # We may/may not have tack in the distribution, though the
4940 if test $cf_dir = tack ; then
4941 if test ! -f $srcdir/${cf_dir}/${cf_dir}.h; then
4946 if test -z "$cf_cv_src_modules"; then
4947 cf_cv_src_modules=$cf_dir
4949 cf_cv_src_modules="$cf_cv_src_modules $cf_dir"
4952 # Make the ncurses_cfg.h file record the library interface files as
4953 # well. These are header files that are the same name as their
4954 # directory. Ncurses is the only library that does not follow
4956 if test $cf_dir = tack ; then
4958 elif test -f $srcdir/${cf_dir}/${cf_dir}.h; then
4959 CF_UPPER(cf_have_include,$cf_dir)
4960 AC_DEFINE_UNQUOTED(HAVE_${cf_have_include}_H)
4961 AC_DEFINE_UNQUOTED(HAVE_LIB${cf_have_include})
4962 TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${cf_dir}${DFT_DEP_SUFFIX} $TEST_DEPS"
4963 TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${cf_dir}${DFT_DEP_SUFFIX} $TEST_DEP2"
4964 if test "$DFT_LWR_MODEL" = "libtool"; then
4965 TEST_ARGS="${TEST_DEPS}"
4966 TEST_ARG2="${TEST_DEP2}"
4968 TEST_ARGS="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARGS"
4969 TEST_ARG2="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARG2"
4974 AC_MSG_RESULT($cf_cv_src_modules)
4976 TEST_ARGS="-L${LIB_DIR} $TEST_ARGS"
4977 TEST_ARG2="-L${LIB_2ND} $TEST_ARG2"
4986 if test "x$cf_with_manpages" != xno ; then
4987 SRC_SUBDIRS="$SRC_SUBDIRS man"
4989 SRC_SUBDIRS="$SRC_SUBDIRS include"
4990 for cf_dir in $cf_cv_src_modules
4992 SRC_SUBDIRS="$SRC_SUBDIRS $cf_dir"
4994 SRC_SUBDIRS="$SRC_SUBDIRS test"
4995 test -z "$MAKE_TERMINFO" && SRC_SUBDIRS="$SRC_SUBDIRS misc"
4996 test "$cf_with_cxx_binding" != no && SRC_SUBDIRS="$SRC_SUBDIRS c++"
4999 if test "$cf_cv_prog_gnat_correct" = yes && test -f $srcdir/Ada95/Makefile.in; then
5000 SRC_SUBDIRS="$SRC_SUBDIRS Ada95"
5001 ADA_SUBDIRS="gen src samples"
5005 for cf_dir in $SRC_SUBDIRS
5007 SUB_MAKEFILES="$SUB_MAKEFILES $cf_dir/Makefile"
5010 if test -n "$ADA_SUBDIRS"; then
5011 for cf_dir in $ADA_SUBDIRS
5013 SUB_MAKEFILES="$SUB_MAKEFILES Ada95/$cf_dir/Makefile"
5015 AC_SUBST(ADA_SUBDIRS)
5018 dnl ---------------------------------------------------------------------------
5019 dnl CF_STDCPP_LIBRARY version: 6 updated: 2009/12/19 13:46:49
5020 dnl -----------------
5021 dnl Check for -lstdc++, which is GNU's standard C++ library.
5022 AC_DEFUN([CF_STDCPP_LIBRARY],
5024 if test -n "$GXX" ; then
5025 case $cf_cv_system_name in #(vi
5027 cf_stdcpp_libname=stdcpp
5030 cf_stdcpp_libname=stdc++
5033 AC_CACHE_CHECK(for library $cf_stdcpp_libname,cf_cv_libstdcpp,[
5035 LIBS="-l$cf_stdcpp_libname $LIBS"
5037 #include <strstream.h>],[
5039 strstreambuf foo(buf, sizeof(buf))
5041 [cf_cv_libstdcpp=yes],
5042 [cf_cv_libstdcpp=no])
5045 test "$cf_cv_libstdcpp" = yes && CXXLIBS="$CXXLIBS -l$cf_stdcpp_libname"
5048 dnl ---------------------------------------------------------------------------
5049 dnl CF_STRIP_G_OPT version: 3 updated: 2002/12/21 19:25:52
5051 dnl Remove "-g" option from the compiler options
5052 AC_DEFUN([CF_STRIP_G_OPT],
5053 [$1=`echo ${$1} | sed -e 's%-g %%' -e 's%-g$%%'`])dnl
5054 dnl ---------------------------------------------------------------------------
5055 dnl CF_STRUCT_SIGACTION version: 3 updated: 2000/08/12 23:18:52
5056 dnl -------------------
5057 dnl Check if we need _POSIX_SOURCE defined to use struct sigaction. We'll only
5058 dnl do this if we've found the sigaction function.
5060 dnl If needed, define SVR4_ACTION.
5061 AC_DEFUN([CF_STRUCT_SIGACTION],[
5062 if test "$ac_cv_func_sigaction" = yes; then
5063 AC_MSG_CHECKING(whether sigaction needs _POSIX_SOURCE)
5065 #include <sys/types.h>
5066 #include <signal.h>],
5067 [struct sigaction act],
5071 #define _POSIX_SOURCE
5072 #include <sys/types.h>
5073 #include <signal.h>],
5074 [struct sigaction act],
5076 AC_DEFINE(SVR4_ACTION)],
5077 [sigact_bad=unknown])])
5078 AC_MSG_RESULT($sigact_bad)
5081 dnl ---------------------------------------------------------------------------
5082 dnl CF_STRUCT_TERMIOS version: 5 updated: 2000/11/04 12:22:46
5083 dnl -----------------
5084 dnl Some machines require _POSIX_SOURCE to completely define struct termios.
5085 dnl If so, define SVR4_TERMIO
5086 AC_DEFUN([CF_STRUCT_TERMIOS],[
5092 if test "$ISC" = yes ; then
5093 AC_CHECK_HEADERS( sys/termio.h )
5095 if test "$ac_cv_header_termios_h" = yes ; then
5096 case "$CFLAGS $CPPFLAGS" in
5098 termios_bad=dunno ;;
5099 *) termios_bad=maybe ;;
5101 if test "$termios_bad" = maybe ; then
5102 AC_MSG_CHECKING(whether termios.h needs _POSIX_SOURCE)
5103 AC_TRY_COMPILE([#include <termios.h>],
5104 [struct termios foo; int x = foo.c_iflag],
5107 #define _POSIX_SOURCE
5108 #include <termios.h>],
5109 [struct termios foo; int x = foo.c_iflag],
5110 termios_bad=unknown,
5111 termios_bad=yes AC_DEFINE(SVR4_TERMIO))
5113 AC_MSG_RESULT($termios_bad)
5117 dnl ---------------------------------------------------------------------------
5118 dnl CF_SUBDIR_PATH version: 5 updated: 2007/07/29 09:55:12
5120 dnl Construct a search-list for a nonstandard header/lib-file
5121 dnl $1 = the variable to return as result
5122 dnl $2 = the package name
5123 dnl $3 = the subdirectory, e.g., bin, include or lib
5124 AC_DEFUN([CF_SUBDIR_PATH],
5127 CF_ADD_SUBDIR_PATH($1,$2,$3,/usr,$prefix)
5128 CF_ADD_SUBDIR_PATH($1,$2,$3,$prefix,NONE)
5129 CF_ADD_SUBDIR_PATH($1,$2,$3,/usr/local,$prefix)
5130 CF_ADD_SUBDIR_PATH($1,$2,$3,/opt,$prefix)
5131 CF_ADD_SUBDIR_PATH($1,$2,$3,[$]HOME,$prefix)
5133 dnl ---------------------------------------------------------------------------
5134 dnl CF_SUBST version: 4 updated: 2006/06/17 12:33:03
5136 dnl Shorthand macro for substituting things that the user may override
5137 dnl with an environment variable.
5139 dnl $1 = long/descriptive name
5140 dnl $2 = environment variable
5141 dnl $3 = default value
5142 AC_DEFUN([CF_SUBST],
5143 [AC_CACHE_VAL(cf_cv_subst_$2,[
5144 AC_MSG_CHECKING(for $1 (symbol $2))
5145 CF_SUBST_IF([-z "[$]$2"], [$2], [$3])
5146 cf_cv_subst_$2=[$]$2
5147 AC_MSG_RESULT([$]$2)
5150 dnl ---------------------------------------------------------------------------
5151 dnl CF_SUBST_IF version: 2 updated: 2006/06/17 12:33:03
5153 dnl Shorthand macro for substituting things that the user may override
5154 dnl with an environment variable.
5156 dnl $1 = condition to pass to "test"
5157 dnl $2 = environment variable
5158 dnl $3 = value if the test succeeds
5159 dnl $4 = value if the test fails
5160 AC_DEFUN([CF_SUBST_IF],
5169 dnl ---------------------------------------------------------------------------
5170 dnl CF_SUBST_NCURSES_VERSION version: 8 updated: 2006/09/16 11:40:59
5171 dnl ------------------------
5172 dnl Get the version-number for use in shared-library naming, etc.
5173 AC_DEFUN([CF_SUBST_NCURSES_VERSION],
5175 AC_REQUIRE([CF_PROG_EGREP])
5176 NCURSES_MAJOR="`$ac_cv_prog_egrep '^NCURSES_MAJOR[[ ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`"
5177 NCURSES_MINOR="`$ac_cv_prog_egrep '^NCURSES_MINOR[[ ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`"
5178 NCURSES_PATCH="`$ac_cv_prog_egrep '^NCURSES_PATCH[[ ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`"
5179 cf_cv_abi_version=${NCURSES_MAJOR}
5180 cf_cv_rel_version=${NCURSES_MAJOR}.${NCURSES_MINOR}
5181 dnl Show the computed version, for logging
5182 cf_cv_timestamp=`date`
5183 AC_MSG_RESULT(Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp))
5184 dnl We need these values in the generated headers
5185 AC_SUBST(NCURSES_MAJOR)
5186 AC_SUBST(NCURSES_MINOR)
5187 AC_SUBST(NCURSES_PATCH)
5188 dnl We need these values in the generated makefiles
5189 AC_SUBST(cf_cv_rel_version)
5190 AC_SUBST(cf_cv_abi_version)
5191 AC_SUBST(cf_cv_builtin_bool)
5192 AC_SUBST(cf_cv_header_stdbool_h)
5193 AC_SUBST(cf_cv_type_of_bool)dnl
5195 dnl ---------------------------------------------------------------------------
5196 dnl CF_SYS_TIME_SELECT version: 4 updated: 2000/10/04 09:18:40
5197 dnl ------------------
5198 dnl Check if we can include <sys/time.h> with <sys/select.h>; this breaks on
5199 dnl older SCO configurations.
5200 AC_DEFUN([CF_SYS_TIME_SELECT],
5202 AC_MSG_CHECKING(if sys/time.h works with sys/select.h)
5203 AC_CACHE_VAL(cf_cv_sys_time_select,[
5205 #include <sys/types.h>
5206 #ifdef HAVE_SYS_TIME_H
5207 #include <sys/time.h>
5209 #ifdef HAVE_SYS_SELECT_H
5210 #include <sys/select.h>
5212 ],[],[cf_cv_sys_time_select=yes],
5213 [cf_cv_sys_time_select=no])
5215 AC_MSG_RESULT($cf_cv_sys_time_select)
5216 test "$cf_cv_sys_time_select" = yes && AC_DEFINE(HAVE_SYS_TIME_SELECT)
5218 dnl ---------------------------------------------------------------------------
5219 dnl CF_TOP_BUILDDIR version: 1 updated: 2006/10/15 16:33:23
5221 dnl Define a top_builddir symbol, for applications that need an absolute path.
5222 AC_DEFUN([CF_TOP_BUILDDIR],
5225 AC_SUBST(top_builddir)
5227 dnl ---------------------------------------------------------------------------
5228 dnl CF_TYPEOF_CHTYPE version: 8 updated: 2006/12/16 12:33:30
5229 dnl ----------------
5230 dnl Determine the type we should use for chtype (and attr_t, which is treated
5231 dnl as the same thing). We want around 32 bits, so on most machines want a
5232 dnl long, but on newer 64-bit machines, probably want an int. If we're using
5233 dnl wide characters, we have to have a type compatible with that, as well.
5234 AC_DEFUN([CF_TYPEOF_CHTYPE],
5236 AC_MSG_CHECKING([for type of chtype])
5237 AC_CACHE_VAL(cf_cv_typeof_chtype,[
5239 #define WANT_BITS 31
5243 FILE *fp = fopen("cf_test.out", "w");
5245 char *result = "long";
5246 if (sizeof(unsigned long) > sizeof(unsigned int)) {
5249 for (n = 0; n < WANT_BITS; n++) {
5252 if (y != 1 || x == 0) {
5258 * If x is nonzero, an int is big enough for the bits
5261 result = (x != 0) ? "int" : "long";
5266 ${cf_cv_main_return:-return}(0);
5269 [cf_cv_typeof_chtype=`cat cf_test.out`],
5270 [cf_cv_typeof_chtype=long],
5271 [cf_cv_typeof_chtype=long])
5274 AC_MSG_RESULT($cf_cv_typeof_chtype)
5276 AC_SUBST(cf_cv_typeof_chtype)
5277 AC_DEFINE_UNQUOTED(TYPEOF_CHTYPE,$cf_cv_typeof_chtype)
5279 dnl ---------------------------------------------------------------------------
5280 dnl CF_TYPE_SIGACTION version: 3 updated: 2000/08/12 23:18:52
5281 dnl -----------------
5283 AC_DEFUN([CF_TYPE_SIGACTION],
5285 AC_MSG_CHECKING([for type sigaction_t])
5286 AC_CACHE_VAL(cf_cv_type_sigaction,[
5288 #include <signal.h>],
5290 [cf_cv_type_sigaction=yes],
5291 [cf_cv_type_sigaction=no])])
5292 AC_MSG_RESULT($cf_cv_type_sigaction)
5293 test "$cf_cv_type_sigaction" = yes && AC_DEFINE(HAVE_TYPE_SIGACTION)
5295 dnl ---------------------------------------------------------------------------
5296 dnl CF_UNSIGNED_LITERALS version: 2 updated: 1998/02/07 22:10:16
5297 dnl --------------------
5298 dnl Test if the compiler supports 'U' and 'L' suffixes. Only old compilers
5299 dnl won't, but they're still there.
5300 AC_DEFUN([CF_UNSIGNED_LITERALS],
5302 AC_MSG_CHECKING([if unsigned literals are legal])
5303 AC_CACHE_VAL(cf_cv_unsigned_literals,[
5304 AC_TRY_COMPILE([],[long x = 1L + 1UL + 1U + 1],
5305 [cf_cv_unsigned_literals=yes],
5306 [cf_cv_unsigned_literals=no])
5308 AC_MSG_RESULT($cf_cv_unsigned_literals)
5310 dnl ---------------------------------------------------------------------------
5311 dnl CF_UPPER version: 5 updated: 2001/01/29 23:40:59
5313 dnl Make an uppercase version of a variable
5314 dnl $1=uppercase($2)
5315 AC_DEFUN([CF_UPPER],
5317 $1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
5319 dnl ---------------------------------------------------------------------------
5320 dnl CF_UTF8_LIB version: 5 updated: 2008/10/17 19:37:52
5322 dnl Check for multibyte support, and if not found, utf8 compatibility library
5323 AC_DEFUN([CF_UTF8_LIB],
5325 AC_CACHE_CHECK(for multibyte character support,cf_cv_utf8_lib,[
5326 cf_save_LIBS="$LIBS"
5328 #include <stdlib.h>],[putwc(0,0);],
5329 [cf_cv_utf8_lib=yes],
5331 #include <libutf8.h>],[putwc(0,0);],utf8,
5332 [cf_cv_utf8_lib=add-on],
5333 [cf_cv_utf8_lib=no])
5336 # HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
5338 if test "$cf_cv_utf8_lib" = "add-on" ; then
5339 AC_DEFINE(HAVE_LIBUTF8_H)
5340 CF_ADD_INCDIR($cf_cv_header_path_utf8)
5341 CF_ADD_LIBDIR($cf_cv_library_path_utf8)
5345 dnl ---------------------------------------------------------------------------
5346 dnl CF_VA_COPY version: 2 updated: 2010/03/04 05:37:29
5348 dnl check for va_copy, part of stdarg.h
5349 dnl Also, workaround for glibc's __va_copy, by checking for both.
5350 AC_DEFUN([CF_VA_COPY],[
5351 AC_CACHE_CHECK(for va_copy, cf_cv_have_va_copy,[
5358 cf_cv_have_va_copy=yes,
5359 cf_cv_have_va_copy=no)])
5361 test "$cf_cv_have_va_copy" = yes && AC_DEFINE(HAVE_VA_COPY)
5363 AC_CACHE_CHECK(for __va_copy, cf_cv_have___va_copy,[
5369 __va_copy(dst, src)],
5370 cf_cv_have___va_copy=yes,
5371 cf_cv_have___va_copy=no)])
5373 test "$cf_cv_have___va_copy" = yes && AC_DEFINE(HAVE___VA_COPY)
5375 dnl ---------------------------------------------------------------------------
5376 dnl CF_VERBOSE version: 3 updated: 2007/07/29 09:55:12
5378 dnl Use AC_VERBOSE w/o the warnings
5379 AC_DEFUN([CF_VERBOSE],
5380 [test -n "$verbose" && echo " $1" 1>&AC_FD_MSG
5383 dnl ---------------------------------------------------------------------------
5384 dnl CF_WCHAR_TYPE version: 2 updated: 2004/01/17 19:18:20
5386 dnl Check if type wide-character type $1 is declared, and if so, which header
5387 dnl file is needed. The second parameter is used to set a shell variable when
5388 dnl the type is not found. The first parameter sets a shell variable for the
5390 AC_DEFUN([CF_WCHAR_TYPE],
5392 # This is needed on Tru64 5.0 to declare $1
5393 AC_CACHE_CHECK(if we must include wchar.h to declare $1,cf_cv_$1,[
5398 #ifdef HAVE_LIBUTF8_H
5399 #include <libutf8.h>
5408 #ifdef HAVE_LIBUTF8_H
5409 #include <libutf8.h>
5413 [cf_cv_$1=unknown])])])
5415 if test "$cf_cv_$1" = yes ; then
5416 AC_DEFINE(NEED_WCHAR_H)
5421 # if we do not find $1 in either place, use substitution to provide a fallback.
5422 if test "$cf_cv_$1" = unknown ; then
5427 # if we find $1 in either place, use substitution to provide a fallback.
5428 if test "$cf_cv_$1" != unknown ; then
5433 dnl ---------------------------------------------------------------------------
5434 dnl CF_WEAK_SYMBOLS version: 1 updated: 2008/08/16 19:18:06
5436 dnl Check for compiler-support for weak symbols.
5437 dnl This works with "recent" gcc.
5438 AC_DEFUN([CF_WEAK_SYMBOLS],[
5439 AC_CACHE_CHECK(if $CC supports weak symbols,cf_cv_weak_symbols,[
5442 #include <stdio.h>],
5444 #if defined(__GNUC__)
5445 # if defined __USE_ISOC99
5446 # define _cat_pragma(exp) _Pragma(#exp)
5447 # define _weak_pragma(exp) _cat_pragma(weak name)
5449 # define _weak_pragma(exp)
5451 # define _declare(name) __extension__ extern __typeof__(name) name
5452 # define weak_symbol(name) _weak_pragma(name) _declare(name) __attribute__((weak))
5456 ],[cf_cv_weak_symbols=yes],[cf_cv_weak_symbols=no])
5459 dnl ---------------------------------------------------------------------------
5460 dnl CF_WITH_ABI_VERSION version: 1 updated: 2003/09/20 18:12:49
5461 dnl -------------------
5462 dnl Allow library's ABI to be overridden. Generally this happens when a
5463 dnl packager has incremented the ABI past that used in the original package,
5464 dnl and wishes to keep doing this.
5466 dnl $1 is the package name, if any, to derive a corresponding {package}_ABI
5468 AC_DEFUN([CF_WITH_ABI_VERSION],[
5469 test -z "$cf_cv_abi_version" && cf_cv_abi_version=0
5470 AC_ARG_WITH(abi-version,
5471 [ --with-abi-version=XXX override derived ABI version],
5472 [AC_MSG_WARN(overriding ABI version $cf_cv_abi_version to $withval)
5473 cf_cv_abi_version=$withval])
5474 CF_NUMBER_SYNTAX($cf_cv_abi_version,ABI version)
5476 $1_ABI=$cf_cv_abi_version
5479 dnl ---------------------------------------------------------------------------
5480 dnl CF_WITH_DBMALLOC version: 6 updated: 2006/12/16 14:24:05
5481 dnl ----------------
5482 dnl Configure-option for dbmalloc. The optional parameter is used to override
5483 dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
5484 AC_DEFUN([CF_WITH_DBMALLOC],[
5485 CF_NO_LEAKS_OPTION(dbmalloc,
5486 [ --with-dbmalloc test: use Conor Cahill's dbmalloc library],
5489 if test "$with_dbmalloc" = yes ; then
5490 AC_CHECK_HEADER(dbmalloc.h,
5491 [AC_CHECK_LIB(dbmalloc,[debug_malloc]ifelse($1,,[],[,$1]))])
5494 dnl ---------------------------------------------------------------------------
5495 dnl CF_WITH_DMALLOC version: 6 updated: 2006/12/16 14:24:05
5497 dnl Configure-option for dmalloc. The optional parameter is used to override
5498 dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
5499 AC_DEFUN([CF_WITH_DMALLOC],[
5500 CF_NO_LEAKS_OPTION(dmalloc,
5501 [ --with-dmalloc test: use Gray Watson's dmalloc library],
5504 if test "$with_dmalloc" = yes ; then
5505 AC_CHECK_HEADER(dmalloc.h,
5506 [AC_CHECK_LIB(dmalloc,[dmalloc_debug]ifelse($1,,[],[,$1]))])
5509 dnl ---------------------------------------------------------------------------
5510 dnl CF_WITH_GPM version: 7 updated: 2008/03/23 14:48:54
5513 dnl The option parameter (if neither yes/no) is assumed to be the name of
5514 dnl the gpm library, e.g., for dynamic loading.
5515 AC_DEFUN([CF_WITH_GPM],
5517 AC_MSG_CHECKING(if you want to link with the GPM mouse library)
5519 [ --with-gpm use Alessandro Rubini's GPM library],
5520 [with_gpm=$withval],
5522 AC_MSG_RESULT($with_gpm)
5524 if test "$with_gpm" != no ; then
5525 AC_CHECK_HEADER(gpm.h,[
5526 AC_DEFINE(HAVE_GPM_H)
5527 if test "$with_gpm" != yes && test "$with_gpm" != maybe ; then
5528 CF_VERBOSE(assuming we really have GPM library)
5529 AC_DEFINE(HAVE_LIBGPM)
5531 AC_CHECK_LIB(gpm,Gpm_Open,[:],[
5532 AC_MSG_ERROR(Cannot link with GPM library)
5537 test "$with_gpm" != maybe && AC_MSG_WARN(Cannot find GPM header)
5542 dnl ---------------------------------------------------------------------------
5543 dnl CF_WITH_LIBTOOL version: 23 updated: 2009/03/28 14:26:27
5545 dnl Provide a configure option to incorporate libtool. Define several useful
5546 dnl symbols for the makefile rules.
5548 dnl The reference to AC_PROG_LIBTOOL does not normally work, since it uses
5549 dnl macros from libtool.m4 which is in the aclocal directory of automake.
5550 dnl Following is a simple script which turns on the AC_PROG_LIBTOOL macro.
5551 dnl But that still does not work properly since the macro is expanded outside
5552 dnl the CF_WITH_LIBTOOL macro:
5555 dnl ACLOCAL=`aclocal --print-ac-dir`
5556 dnl if test -z "$ACLOCAL" ; then
5557 dnl echo cannot find aclocal directory
5559 dnl elif test ! -f $ACLOCAL/libtool.m4 ; then
5560 dnl echo cannot find libtool.m4 file
5564 dnl LOCAL=aclocal.m4
5565 dnl ORIG=aclocal.m4.orig
5567 dnl trap "mv $ORIG $LOCAL" 0 1 2 5 15
5571 dnl # sed the LIBTOOL= assignment to omit the current directory?
5572 dnl sed -e 's/^LIBTOOL=.*/LIBTOOL=${LIBTOOL-libtool}/' $ACLOCAL/libtool.m4 >>$LOCAL
5573 dnl cat $ORIG >>$LOCAL
5577 AC_DEFUN([CF_WITH_LIBTOOL],
5579 ifdef([AC_PROG_LIBTOOL],,[
5582 # common library maintenance symbols that are convenient for libtool scripts:
5583 LIB_CREATE='${AR} -cr'
5584 LIB_OBJECT='${OBJECTS}'
5588 # symbols used to prop libtool up to enable it to determine what it should be
5596 AC_MSG_CHECKING(if you want to build libraries with libtool)
5597 AC_ARG_WITH(libtool,
5598 [ --with-libtool generate libraries with libtool],
5599 [with_libtool=$withval],
5601 AC_MSG_RESULT($with_libtool)
5602 if test "$with_libtool" != "no"; then
5603 ifdef([AC_PROG_LIBTOOL],[
5604 # missing_content_AC_PROG_LIBTOOL{{
5606 # missing_content_AC_PROG_LIBTOOL}}
5608 if test "$with_libtool" != "yes" ; then
5609 CF_PATH_SYNTAX(with_libtool)
5610 LIBTOOL=$with_libtool
5612 AC_PATH_PROG(LIBTOOL,libtool)
5614 if test -z "$LIBTOOL" ; then
5615 AC_MSG_ERROR(Cannot find libtool)
5618 LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${DESTDIR}${libdir} -version-info `cut -f1 ${srcdir}/VERSION` ${LIBTOOL_OPTS} ${LT_UNDEF} -o'
5619 LIB_OBJECT='${OBJECTS:.o=.lo}'
5621 LIB_CLEAN='${LIBTOOL} --mode=clean'
5622 LIB_COMPILE='${LIBTOOL} --mode=compile'
5623 LIB_LINK='${LIBTOOL} --mode=link ${CC} ${LIBTOOL_OPTS}'
5624 LIB_INSTALL='${LIBTOOL} --mode=install'
5625 LIB_UNINSTALL='${LIBTOOL} --mode=uninstall'
5628 # Show the version of libtool
5629 AC_MSG_CHECKING(version of libtool)
5631 # Save the version in a cache variable - this is not entirely a good
5632 # thing, but the version string from libtool is very ugly, and for
5633 # bug reports it might be useful to have the original string. "("
5634 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.]].*//'`
5635 AC_MSG_RESULT($cf_cv_libtool_version)
5636 if test -z "$cf_cv_libtool_version" ; then
5637 AC_MSG_ERROR(This is not GNU libtool)
5640 # special hack to add -no-undefined (which libtool should do for itself)
5642 case "$cf_cv_system_name" in #(vi
5643 cygwin*|mingw32*|uwin*|aix[[456]]) #(vi
5644 LT_UNDEF=-no-undefined
5647 AC_SUBST([LT_UNDEF])
5649 # special hack to add --tag option for C++ compiler
5650 case $cf_cv_libtool_version in #(vi
5651 1.[[5-9]]*|[[2-9]].[[0-9.a-z]]*) #(vi
5652 LIBTOOL_CXX="$LIBTOOL --tag=CXX"
5653 LIBTOOL="$LIBTOOL --tag=CC"
5656 LIBTOOL_CXX="$LIBTOOL"
5664 test -z "$LIBTOOL" && ECHO_LT=
5667 AC_SUBST(LIBTOOL_CXX)
5668 AC_SUBST(LIBTOOL_OPTS)
5670 AC_SUBST(LIB_CREATE)
5671 AC_SUBST(LIB_OBJECT)
5672 AC_SUBST(LIB_SUFFIX)
5676 AC_SUBST(LIB_COMPILE)
5678 AC_SUBST(LIB_INSTALL)
5679 AC_SUBST(LIB_UNINSTALL)
5682 dnl ---------------------------------------------------------------------------
5683 dnl CF_WITH_PATH version: 8 updated: 2007/05/13 13:16:35
5685 dnl Wrapper for AC_ARG_WITH to ensure that user supplies a pathname, not just
5686 dnl defaulting to yes/no.
5688 dnl $1 = option name
5690 dnl $3 = environment variable to set
5691 dnl $4 = default value, shown in the help-message, must be a constant
5692 dnl $5 = default value, if it's an expression & cannot be in the help-message
5694 AC_DEFUN([CF_WITH_PATH],
5695 [AC_ARG_WITH($1,[$2 ](default: ifelse($4,,empty,$4)),,
5696 ifelse($4,,[withval="${$3}"],[withval="${$3-ifelse($5,,$4,$5)}"]))dnl
5697 if ifelse($5,,true,[test -n "$5"]) ; then
5698 CF_PATH_SYNTAX(withval)
5703 dnl ---------------------------------------------------------------------------
5704 dnl CF_WITH_PATHLIST version: 6 updated: 2009/01/11 20:30:23
5705 dnl ----------------
5706 dnl Process an option specifying a list of colon-separated paths.
5708 dnl $1 = option name
5710 dnl $3 = environment variable to set
5711 dnl $4 = default value, shown in the help-message, must be a constant
5712 dnl $5 = default value, if it's an expression & cannot be in the help-message
5713 dnl $6 = flag to tell if we want to define or substitute
5715 AC_DEFUN([CF_WITH_PATHLIST],[
5716 AC_REQUIRE([CF_PATHSEP])
5717 AC_ARG_WITH($1,[$2 ](default: ifelse($4,,empty,$4)),,
5718 ifelse($4,,[withval=${$3}],[withval=${$3-ifelse($5,,$4,$5)}]))dnl
5720 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${PATH_SEPARATOR}"
5722 for cf_src_path in $withval
5724 CF_PATH_SYNTAX(cf_src_path)
5725 test -n "$cf_dst_path" && cf_dst_path="${cf_dst_path}:"
5726 cf_dst_path="${cf_dst_path}${cf_src_path}"
5731 # Strip single quotes from the value, e.g., when it was supplied as a literal
5733 case $cf_dst_path in #(vi
5735 cf_dst_path=`echo $cf_dst_path |sed -e s/\'// -e s/\'\$//`
5738 cf_dst_path=`echo "$cf_dst_path" | sed -e 's/\\\\/\\\\\\\\/g'`
5741 eval '$3="$cf_dst_path"'
5745 dnl ---------------------------------------------------------------------------
5746 dnl CF_WITH_PTHREAD version: 2 updated: 2008/08/23 18:26:05
5748 dnl Check for POSIX thread library.
5749 AC_DEFUN([CF_WITH_PTHREAD],
5751 AC_MSG_CHECKING(if you want to link with the pthread library)
5752 AC_ARG_WITH(pthread,
5753 [ --with-pthread use POSIX thread library],
5754 [with_pthread=$withval],
5756 AC_MSG_RESULT($with_pthread)
5758 if test "$with_pthread" != no ; then
5759 AC_CHECK_HEADER(pthread.h,[
5760 AC_DEFINE(HAVE_PTHREADS_H)
5762 AC_MSG_CHECKING(if we can link with the pthread library)
5763 cf_save_LIBS="$LIBS"
5764 LIBS="-lpthread $LIBS"
5766 #include <pthread.h>
5768 int rc = pthread_create(0,0,0,0);
5769 ],[with_pthread=yes],[with_pthread=no])
5770 LIBS="$cf_save_LIBS"
5771 AC_MSG_RESULT($with_pthread)
5773 if test "$with_pthread" = yes ; then
5774 LIBS="-lpthread $LIBS"
5775 AC_DEFINE(HAVE_LIBPTHREADS)
5777 AC_MSG_ERROR(Cannot link with pthread library)
5782 dnl ---------------------------------------------------------------------------
5783 dnl CF_WITH_REL_VERSION version: 1 updated: 2003/09/20 18:12:49
5784 dnl -------------------
5785 dnl Allow library's release-version to be overridden. Generally this happens when a
5786 dnl packager has incremented the release-version past that used in the original package,
5787 dnl and wishes to keep doing this.
5789 dnl $1 is the package name, if any, to derive corresponding {package}_MAJOR
5790 dnl and {package}_MINOR symbols
5792 AC_DEFUN([CF_WITH_REL_VERSION],[
5793 test -z "$cf_cv_rel_version" && cf_cv_rel_version=0.0
5794 AC_ARG_WITH(rel-version,
5795 [ --with-rel-version=XXX override derived release version],
5796 [AC_MSG_WARN(overriding release version $cf_cv_rel_version to $withval)
5797 cf_cv_rel_version=$withval])
5799 CF_NUMBER_SYNTAX($cf_cv_rel_version,Release version)
5801 $1_MAJOR=`echo "$cf_cv_rel_version" | sed -e 's/\..*//'`
5802 $1_MINOR=`echo "$cf_cv_rel_version" | sed -e 's/^[[^.]]*//' -e 's/^\.//' -e 's/\..*//'`
5803 CF_NUMBER_SYNTAX([$]$1_MAJOR,Release major-version)
5804 CF_NUMBER_SYNTAX([$]$1_MINOR,Release minor-version)
5807 dnl ---------------------------------------------------------------------------
5808 dnl CF_WITH_SYSMOUSE version: 2 updated: 2003/03/22 19:13:43
5809 dnl ----------------
5810 dnl If we can compile with sysmouse, make it available unless it is not wanted.
5811 AC_DEFUN([CF_WITH_SYSMOUSE],[
5812 # not everyone has "test -c"
5813 if test -c /dev/sysmouse 2>/dev/null ; then
5814 AC_MSG_CHECKING(if you want to use sysmouse)
5815 AC_ARG_WITH(sysmouse,
5816 [ --with-sysmouse use sysmouse (FreeBSD console)],
5817 [cf_with_sysmouse=$withval],
5818 [cf_with_sysmouse=maybe])
5819 if test "$cf_with_sysmouse" != no ; then
5821 #include <osreldate.h>
5822 #if (__FreeBSD_version >= 400017)
5823 #include <sys/consio.h>
5824 #include <sys/fbio.h>
5826 #include <machine/console.h>
5829 struct mouse_info the_mouse;
5830 ioctl(0, CONS_MOUSECTL, &the_mouse);
5831 ],[cf_with_sysmouse=yes],[cf_with_sysmouse=no])
5833 AC_MSG_RESULT($cf_with_sysmouse)
5834 test "$cf_with_sysmouse" = yes && AC_DEFINE(USE_SYSMOUSE)
5837 dnl ---------------------------------------------------------------------------
5838 dnl CF_WITH_VALGRIND version: 1 updated: 2006/12/14 18:00:21
5839 dnl ----------------
5840 AC_DEFUN([CF_WITH_VALGRIND],[
5841 CF_NO_LEAKS_OPTION(valgrind,
5842 [ --with-valgrind test: use valgrind],
5845 dnl ---------------------------------------------------------------------------
5846 dnl CF_XOPEN_SOURCE version: 32 updated: 2010/01/09 11:05:50
5848 dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
5849 dnl or adapt to the vendor's definitions to get equivalent functionality,
5850 dnl without losing the common non-POSIX features.
5853 dnl $1 is the nominal value for _XOPEN_SOURCE
5854 dnl $2 is the nominal value for _POSIX_C_SOURCE
5855 AC_DEFUN([CF_XOPEN_SOURCE],[
5857 cf_XOPEN_SOURCE=ifelse($1,,500,$1)
5858 cf_POSIX_C_SOURCE=ifelse($2,,199506L,$2)
5861 case $host_os in #(vi
5863 cf_xopen_source="-D_ALL_SOURCE"
5865 darwin[[0-8]].*) #(vi
5866 cf_xopen_source="-D_APPLE_C_SOURCE"
5869 cf_xopen_source="-D_DARWIN_C_SOURCE"
5871 freebsd*|dragonfly*) #(vi
5872 # 5.x headers associate
5873 # _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L
5874 # _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L
5875 cf_POSIX_C_SOURCE=200112L
5877 cf_xopen_source="-D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
5880 cf_xopen_source="-D_HPUX_SOURCE -D_XOPEN_SOURCE=500"
5883 cf_xopen_source="-D_HPUX_SOURCE"
5886 cf_xopen_source="-D_SGI_SOURCE"
5888 linux*|gnu*|mint*|k*bsd*-gnu) #(vi
5892 # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <arpa/inet.h>
5895 # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
5898 # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
5901 cf_xopen_source="-D_OSF_SOURCE"
5904 cf_xopen_source="-D_QNX_SOURCE"
5907 # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
5910 cf_xopen_source="-D__EXTENSIONS__"
5913 AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[
5914 AC_TRY_COMPILE([#include <sys/types.h>],[
5915 #ifndef _XOPEN_SOURCE
5918 [cf_cv_xopen_source=no],
5919 [cf_save="$CPPFLAGS"
5920 CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
5921 AC_TRY_COMPILE([#include <sys/types.h>],[
5922 #ifdef _XOPEN_SOURCE
5925 [cf_cv_xopen_source=no],
5926 [cf_cv_xopen_source=$cf_XOPEN_SOURCE])
5930 if test "$cf_cv_xopen_source" != no ; then
5931 CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE)
5932 CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE)
5933 cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
5934 CF_ADD_CFLAGS($cf_temp_xopen_source)
5936 CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
5940 if test -n "$cf_xopen_source" ; then
5941 CF_ADD_CFLAGS($cf_xopen_source)