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.507 2010/04/04 00:07:57 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: 15 updated: 2010/04/03 18:35:33
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
1100 cf_cv_library_file_$3="-l$3"
1102 cf_cv_find_linkage_$3=no
1103 LIBS="$cf_save_LIBS"
1105 CF_VERBOSE(find linkage for $3 library)
1106 CF_MSG_LOG([Searching for headers in [FIND_LINKAGE]($3,$6)])
1108 cf_save_CPPFLAGS="$CPPFLAGS"
1109 cf_test_CPPFLAGS="$CPPFLAGS"
1111 CF_HEADER_PATH(cf_search,ifelse([$6],,[$3],[$6]))
1112 for cf_cv_header_path_$3 in $cf_search
1114 if test -d $cf_cv_header_path_$3 ; then
1115 CF_VERBOSE(... testing $cf_cv_header_path_$3)
1116 CPPFLAGS="$cf_save_CPPFLAGS -I$cf_cv_header_path_$3"
1117 AC_TRY_COMPILE([$1],[$2],[
1118 CF_VERBOSE(... found $3 headers in $cf_cv_header_path_$3)
1119 cf_cv_find_linkage_$3=maybe
1120 cf_test_CPPFLAGS="$CPPFLAGS"
1122 CPPFLAGS="$cf_save_CPPFLAGS"
1127 if test "$cf_cv_find_linkage_$3" = maybe ; then
1129 CF_MSG_LOG([Searching for $3 library in [FIND_LINKAGE]($3,$6)])
1131 cf_save_LIBS="$LIBS"
1132 cf_save_LDFLAGS="$LDFLAGS"
1135 CPPFLAGS="$cf_test_CPPFLAGS"
1136 LIBS="-l$3 $7 $cf_save_LIBS"
1137 AC_TRY_LINK([$1],[$2],[
1138 CF_VERBOSE(... found $3 library in system)
1139 cf_cv_find_linkage_$3=yes])
1140 CPPFLAGS="$cf_save_CPPFLAGS"
1141 LIBS="$cf_save_LIBS"
1144 if test "$cf_cv_find_linkage_$3" != yes ; then
1145 CF_LIBRARY_PATH(cf_search,$3)
1146 for cf_cv_library_path_$3 in $cf_search
1148 if test -d $cf_cv_library_path_$3 ; then
1149 CF_VERBOSE(... testing $cf_cv_library_path_$3)
1150 CPPFLAGS="$cf_test_CPPFLAGS"
1151 LIBS="-l$3 $7 $cf_save_LIBS"
1152 LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_$3"
1153 AC_TRY_LINK([$1],[$2],[
1154 CF_VERBOSE(... found $3 library in $cf_cv_library_path_$3)
1155 cf_cv_find_linkage_$3=yes
1156 cf_cv_library_file_$3="-l$3"
1158 CPPFLAGS="$cf_save_CPPFLAGS"
1159 LIBS="$cf_save_LIBS"
1160 LDFLAGS="$cf_save_LDFLAGS"
1164 LIBS="$cf_save_LIBS"
1165 CPPFLAGS="$cf_save_CPPFLAGS"
1166 LDFLAGS="$cf_save_LDFLAGS"
1170 cf_cv_find_linkage_$3=no
1175 if test "$cf_cv_find_linkage_$3" = yes ; then
1177 CF_ADD_INCDIR($cf_cv_header_path_$3)
1178 CF_ADD_LIBDIR($cf_cv_library_path_$3)
1182 ifelse([$5],,AC_MSG_WARN(Cannot find $3 library),[$5])
1185 dnl ---------------------------------------------------------------------------
1186 dnl CF_FUNC_DLSYM version: 1 updated: 2004/06/16 20:52:45
1188 dnl Test for dlsym() and related functions, as well as libdl.
1193 AC_DEFUN([CF_FUNC_DLSYM],[
1195 AC_CHECK_FUNC(dlsym,cf_have_dlsym=yes,[
1198 AC_CHECK_LIB(dl,dlsym,[
1200 cf_have_libdl=yes])])
1202 if test "$cf_have_dlsym" = yes ; then
1203 test "$cf_have_libdl" = yes && LIBS="-ldl $LIBS"
1205 AC_MSG_CHECKING(whether able to link to dl*() functions)
1206 AC_TRY_LINK([#include <dlfcn.h>],[
1208 if ((obj = dlopen("filename", 0)) != 0) {
1209 if (dlsym(obj, "symbolname") == 0) {
1213 AC_DEFINE(HAVE_LIBDL)],[
1214 AC_MSG_ERROR(Cannot link test program for libdl)])
1217 AC_MSG_ERROR(Cannot find dlsym function)
1220 dnl ---------------------------------------------------------------------------
1221 dnl CF_FUNC_MEMMOVE version: 7 updated: 2006/12/16 12:33:30
1223 dnl Check for memmove, or a bcopy that can handle overlapping copy. If neither
1224 dnl is found, add our own version of memmove to the list of objects.
1225 AC_DEFUN([CF_FUNC_MEMMOVE],
1227 AC_CHECK_FUNC(memmove,,[
1228 AC_CHECK_FUNC(bcopy,[
1229 AC_CACHE_CHECK(if bcopy does overlapping moves,cf_cv_good_bcopy,[
1232 static char data[] = "abcdefghijklmnopqrstuwwxyz";
1234 bcopy(data, temp, sizeof(data));
1235 bcopy(temp+10, temp, 15);
1236 bcopy(temp+5, temp+15, 10);
1237 ${cf_cv_main_return:-return} (strcmp(temp, "klmnopqrstuwwxypqrstuwwxyz"));
1240 [cf_cv_good_bcopy=yes],
1241 [cf_cv_good_bcopy=no],
1242 [cf_cv_good_bcopy=unknown])
1244 ],[cf_cv_good_bcopy=no])
1245 if test "$cf_cv_good_bcopy" = yes ; then
1246 AC_DEFINE(USE_OK_BCOPY)
1248 AC_DEFINE(USE_MY_MEMMOVE)
1251 dnl ---------------------------------------------------------------------------
1252 dnl CF_FUNC_NANOSLEEP version: 3 updated: 2006/12/16 12:33:30
1253 dnl -----------------
1254 dnl Check for existence of workable nanosleep() function. Some systems, e.g.,
1255 dnl AIX 4.x, provide a non-working version.
1256 AC_DEFUN([CF_FUNC_NANOSLEEP],[
1257 AC_CACHE_CHECK(if nanosleep really works,cf_cv_func_nanosleep,[
1263 #ifdef HAVE_SYS_TIME_H
1264 #include <sys/time.h>
1268 struct timespec ts1, ts2;
1271 ts1.tv_nsec = 750000000;
1275 code = nanosleep(&ts1, &ts2); /* on failure errno is ENOSYS. */
1276 ${cf_cv_main_return:-return}(code != 0);
1279 [cf_cv_func_nanosleep=yes],
1280 [cf_cv_func_nanosleep=no],
1281 [cf_cv_func_nanosleep=unknown])])
1283 test "$cf_cv_func_nanosleep" = "yes" && AC_DEFINE(HAVE_NANOSLEEP)
1285 dnl ---------------------------------------------------------------------------
1286 dnl CF_FUNC_OPENPTY version: 2 updated: 2008/04/12 19:49:01
1288 dnl Check for openpty() function, along with <pty.h> header. It may need the
1289 dnl "util" library as well.
1290 AC_DEFUN([CF_FUNC_OPENPTY],
1292 AC_CHECK_LIB(util,openpty,cf_cv_lib_util=yes,cf_cv_lib_util=no)
1293 AC_CACHE_CHECK(for openpty header,cf_cv_func_openpty,[
1294 cf_save_LIBS="$LIBS"
1295 test $cf_cv_lib_util = yes && LIBS="-lutil $LIBS"
1296 for cf_header in pty.h libutil.h util.h
1299 #include <$cf_header>
1301 int x = openpty((int *)0, (int *)0, (char *)0,
1302 (struct termios *)0, (struct winsize *)0);
1304 cf_cv_func_openpty=$cf_header
1307 cf_cv_func_openpty=no
1310 LIBS="$cf_save_LIBS"
1313 dnl ---------------------------------------------------------------------------
1314 dnl CF_FUNC_POLL version: 4 updated: 2006/12/16 12:33:30
1316 dnl See if the poll function really works. Some platforms have poll(), but
1317 dnl it does not work for terminals or files.
1318 AC_DEFUN([CF_FUNC_POLL],[
1319 AC_CACHE_CHECK(if poll really works,cf_cv_working_poll,[
1325 #include <sys/poll.h>
1328 struct pollfd myfds;
1332 myfds.events = POLLIN;
1334 ret = poll(&myfds, 1, 100);
1335 ${cf_cv_main_return:-return}(ret != 0);
1337 [cf_cv_working_poll=yes],
1338 [cf_cv_working_poll=no],
1339 [cf_cv_working_poll=unknown])])
1340 test "$cf_cv_working_poll" = "yes" && AC_DEFINE(HAVE_WORKING_POLL)
1342 dnl ---------------------------------------------------------------------------
1343 dnl CF_FUNC_TERMIOS version: 2 updated: 2000/07/22 23:37:24
1345 dnl Some old/broken variations define tcgetattr() only as a macro in
1347 AC_DEFUN([CF_FUNC_TERMIOS],[
1348 AC_REQUIRE([CF_STRUCT_TERMIOS])
1349 AC_CACHE_CHECK(for tcgetattr, cf_cv_have_tcgetattr,[
1351 #include <sys/types.h>
1352 #ifdef HAVE_UNISTD_H
1355 #ifdef HAVE_TERMIOS_H
1356 #include <termios.h>
1357 #define TTY struct termios
1359 #ifdef HAVE_TERMIO_H
1361 #define TTY struct termio
1366 tcgetattr(1, &foo);],
1367 [cf_cv_have_tcgetattr=yes],
1368 [cf_cv_have_tcgetattr=no])])
1369 test "$cf_cv_have_tcgetattr" = yes && AC_DEFINE(HAVE_TCGETATTR)
1371 dnl ---------------------------------------------------------------------------
1372 dnl CF_FUNC_VSSCANF version: 3 updated: 2001/12/19 00:50:10
1374 dnl Check for vsscanf() function, which is in c9x but generally not in earlier
1375 dnl versions of C. It is in the GNU C library, and can often be simulated by
1376 dnl other functions.
1377 AC_DEFUN([CF_FUNC_VSSCANF],
1379 AC_CACHE_CHECK(for vsscanf function or workaround,cf_cv_func_vsscanf,[
1382 #include <stdio.h>],[
1384 vsscanf("from", "%d", ap)],[cf_cv_func_vsscanf=vsscanf],[
1387 #include <stdio.h>],[
1391 strbuf._flag = _IOREAD;
1392 strbuf._ptr = strbuf._base = (unsigned char *) str;
1393 strbuf._cnt = strlen(str);
1394 strbuf._file = _NFILE;
1395 return (vfscanf(&strbuf, "%d", ap))],[cf_cv_func_vsscanf=vfscanf],[
1398 #include <stdio.h>],[
1402 strbuf._flag = _IOREAD;
1403 strbuf._ptr = strbuf._base = (unsigned char *) str;
1404 strbuf._cnt = strlen(str);
1405 strbuf._file = _NFILE;
1406 return (_doscan(&strbuf, "%d", ap))],[cf_cv_func_vsscanf=_doscan],[
1407 cf_cv_func_vsscanf=no])])])])
1409 case $cf_cv_func_vsscanf in #(vi
1410 vsscanf) AC_DEFINE(HAVE_VSSCANF);; #(vi
1411 vfscanf) AC_DEFINE(HAVE_VFSCANF);; #(vi
1412 _doscan) AC_DEFINE(HAVE__DOSCAN);;
1416 dnl ---------------------------------------------------------------------------
1417 dnl CF_GCC_ATTRIBUTES version: 13 updated: 2009/08/11 20:19:56
1418 dnl -----------------
1419 dnl Test for availability of useful gcc __attribute__ directives to quiet
1420 dnl compiler warnings. Though useful, not all are supported -- and contrary
1421 dnl to documentation, unrecognized directives cause older compilers to barf.
1422 AC_DEFUN([CF_GCC_ATTRIBUTES],
1424 if test "$GCC" = yes
1426 cat > conftest.i <<EOF
1428 #define GCC_PRINTF 0
1433 #ifndef GCC_NORETURN
1434 #define GCC_NORETURN /* nothing */
1437 #define GCC_UNUSED /* nothing */
1440 if test "$GCC" = yes
1442 AC_CHECKING([for $CC __attribute__ directives])
1443 cat > conftest.$ac_ext <<EOF
1444 #line __oline__ "${as_me-configure}"
1445 #include "confdefs.h"
1446 #include "conftest.h"
1447 #include "conftest.i"
1449 #define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
1451 #define GCC_PRINTFLIKE(fmt,var) /*nothing*/
1454 #define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
1456 #define GCC_SCANFLIKE(fmt,var) /*nothing*/
1458 extern void wow(char *,...) GCC_SCANFLIKE(1,2);
1459 extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
1460 extern void foo(void) GCC_NORETURN;
1461 int main(int argc GCC_UNUSED, char *argv[[]] GCC_UNUSED) { return 0; }
1463 cf_printf_attribute=no
1464 cf_scanf_attribute=no
1465 for cf_attribute in scanf printf unused noreturn
1467 CF_UPPER(cf_ATTRIBUTE,$cf_attribute)
1468 cf_directive="__attribute__(($cf_attribute))"
1469 echo "checking for $CC $cf_directive" 1>&AC_FD_CC
1471 case $cf_attribute in #(vi
1473 cf_printf_attribute=yes
1474 cat >conftest.h <<EOF
1475 #define GCC_$cf_ATTRIBUTE 1
1479 cf_scanf_attribute=yes
1480 cat >conftest.h <<EOF
1481 #define GCC_$cf_ATTRIBUTE 1
1485 cat >conftest.h <<EOF
1486 #define GCC_$cf_ATTRIBUTE $cf_directive
1491 if AC_TRY_EVAL(ac_compile); then
1492 test -n "$verbose" && AC_MSG_RESULT(... $cf_attribute)
1493 cat conftest.h >>confdefs.h
1494 case $cf_attribute in #(vi
1496 if test "$cf_printf_attribute" = no ; then
1497 cat >>confdefs.h <<EOF
1498 #define GCC_PRINTFLIKE(fmt,var) /* nothing */
1501 cat >>confdefs.h <<EOF
1502 #define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
1507 if test "$cf_scanf_attribute" = no ; then
1508 cat >>confdefs.h <<EOF
1509 #define GCC_SCANFLIKE(fmt,var) /* nothing */
1512 cat >>confdefs.h <<EOF
1513 #define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
1521 fgrep define conftest.i >>confdefs.h
1526 dnl ---------------------------------------------------------------------------
1527 dnl CF_GCC_VERSION version: 4 updated: 2005/08/27 09:53:42
1529 dnl Find version of gcc
1530 AC_DEFUN([CF_GCC_VERSION],[
1531 AC_REQUIRE([AC_PROG_CC])
1533 if test "$GCC" = yes ; then
1534 AC_MSG_CHECKING(version of $CC)
1535 GCC_VERSION="`${CC} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
1536 test -z "$GCC_VERSION" && GCC_VERSION=unknown
1537 AC_MSG_RESULT($GCC_VERSION)
1540 dnl ---------------------------------------------------------------------------
1541 dnl CF_GCC_WARNINGS version: 24 updated: 2009/02/01 15:21:00
1543 dnl Check if the compiler supports useful warning options. There's a few that
1544 dnl we don't use, simply because they're too noisy:
1546 dnl -Wconversion (useful in older versions of gcc, but not in gcc 2.7.x)
1547 dnl -Wredundant-decls (system headers make this too noisy)
1548 dnl -Wtraditional (combines too many unrelated messages, only a few useful)
1549 dnl -Wwrite-strings (too noisy, but should review occasionally). This
1550 dnl is enabled for ncurses using "--enable-const".
1554 dnl $1 is an optional list of gcc warning flags that a particular
1555 dnl application might want to use, e.g., "no-unused" for
1558 dnl If $with_ext_const is "yes", add a check for -Wwrite-strings
1560 AC_DEFUN([CF_GCC_WARNINGS],
1562 AC_REQUIRE([CF_GCC_VERSION])
1563 CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
1565 cat > conftest.$ac_ext <<EOF
1566 #line __oline__ "${as_me-configure}"
1567 int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
1570 if test "$INTEL_COMPILER" = yes
1572 # The "-wdXXX" options suppress warnings:
1573 # remark #1419: external declaration in primary source file
1574 # remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
1575 # remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
1576 # remark #193: zero used for undefined preprocessing identifier
1577 # remark #593: variable "curs_sb_left_arrow" was set but never used
1578 # remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
1579 # remark #869: parameter "tw" was never referenced
1580 # remark #981: operands are evaluated in unspecified order
1581 # warning #279: controlling expression is constant
1583 AC_CHECKING([for $CC warning options])
1584 cf_save_CFLAGS="$CFLAGS"
1585 EXTRA_CFLAGS="-Wall"
1597 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
1598 if AC_TRY_EVAL(ac_compile); then
1599 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1600 EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
1603 CFLAGS="$cf_save_CFLAGS"
1605 elif test "$GCC" = yes
1607 AC_CHECKING([for $CC warning options])
1608 cf_save_CFLAGS="$CFLAGS"
1609 EXTRA_CFLAGS="-W -Wall"
1611 test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
1613 Wbad-function-cast \
1617 Wmissing-declarations \
1618 Wmissing-prototypes \
1622 Wstrict-prototypes \
1623 Wundef $cf_warn_CONST $1
1625 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
1626 if AC_TRY_EVAL(ac_compile); then
1627 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1628 case $cf_opt in #(vi
1630 CPPFLAGS="$CPPFLAGS -DXTSTRINGDEFINES"
1633 case $GCC_VERSION in
1635 CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
1640 EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
1643 CFLAGS="$cf_save_CFLAGS"
1647 AC_SUBST(EXTRA_CFLAGS)
1649 dnl ---------------------------------------------------------------------------
1650 dnl CF_GNAT_TRY_LINK version: 1 updated: 2004/08/21 19:02:08
1651 dnl ----------------
1652 dnl Verify that a test program compiles/links with GNAT.
1653 dnl $cf_ada_make is set to the program that compiles/links
1654 dnl $ADAFLAGS may be set to the GNAT flags.
1656 dnl $1 is the text of the spec
1657 dnl $2 is the text of the body
1658 dnl $3 is the shell command to execute if successful
1659 dnl $4 is the shell command to execute if not successful
1660 AC_DEFUN([CF_GNAT_TRY_LINK],
1663 cat >>conftest.ads <<CF_EOF
1666 cat >>conftest.adb <<CF_EOF
1669 if ( $cf_ada_make $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
1670 ifelse($3,, :,[ $3])
1676 dnl ---------------------------------------------------------------------------
1677 dnl CF_GNAT_TRY_RUN version: 3 updated: 2004/08/21 19:02:08
1679 dnl Verify that a test program compiles and runs with GNAT
1680 dnl $cf_ada_make is set to the program that compiles/links
1681 dnl $ADAFLAGS may be set to the GNAT flags.
1683 dnl $1 is the text of the spec
1684 dnl $2 is the text of the body
1685 dnl $3 is the shell command to execute if successful
1686 dnl $4 is the shell command to execute if not successful
1687 AC_DEFUN([CF_GNAT_TRY_RUN],
1690 cat >>conftest.ads <<CF_EOF
1693 cat >>conftest.adb <<CF_EOF
1696 if ( $cf_ada_make $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
1697 if ( ./conftest 1>&AC_FD_CC 2>&1 ) ; then
1698 ifelse($3,, :,[ $3])
1707 dnl ---------------------------------------------------------------------------
1708 dnl CF_GNAT_VERSION version: 12 updated: 2006/10/14 15:23:15
1710 dnl Verify version of GNAT.
1711 AC_DEFUN([CF_GNAT_VERSION],
1713 AC_MSG_CHECKING(for gnat version)
1714 cf_gnat_version=`${cf_ada_make-gnatmake} -v 2>&1 | grep '[[0-9]].[[0-9]][[0-9]]*' |\
1715 sed -e '2,$d' -e 's/[[^0-9 \.]]//g' -e 's/^[[ ]]*//' -e 's/ .*//'`
1716 AC_MSG_RESULT($cf_gnat_version)
1718 case $cf_gnat_version in
1719 3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*)
1720 cf_cv_prog_gnat_correct=yes
1722 *) echo Unsupported GNAT version $cf_gnat_version. Required is 3.11 or better. Disabling Ada95 binding.
1723 cf_cv_prog_gnat_correct=no
1726 case $cf_gnat_version in
1727 3.[[1-9]]*|[[4-9]].*)
1728 cf_compile_generics=generics
1729 cf_generic_objects="\${GENOBJS}"
1731 *) cf_compile_generics=
1736 dnl ---------------------------------------------------------------------------
1737 dnl CF_GNU_SOURCE version: 6 updated: 2005/07/09 13:23:07
1739 dnl Check if we must define _GNU_SOURCE to get a reasonable value for
1740 dnl _XOPEN_SOURCE, upon which many POSIX definitions depend. This is a defect
1741 dnl (or misfeature) of glibc2, which breaks portability of many applications,
1742 dnl since it is interwoven with GNU extensions.
1744 dnl Well, yes we could work around it...
1745 AC_DEFUN([CF_GNU_SOURCE],
1747 AC_CACHE_CHECK(if we must define _GNU_SOURCE,cf_cv_gnu_source,[
1748 AC_TRY_COMPILE([#include <sys/types.h>],[
1749 #ifndef _XOPEN_SOURCE
1752 [cf_cv_gnu_source=no],
1753 [cf_save="$CPPFLAGS"
1754 CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
1755 AC_TRY_COMPILE([#include <sys/types.h>],[
1756 #ifdef _XOPEN_SOURCE
1759 [cf_cv_gnu_source=no],
1760 [cf_cv_gnu_source=yes])
1764 test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
1766 dnl ---------------------------------------------------------------------------
1767 dnl CF_GPP_LIBRARY version: 9 updated: 2009/12/19 13:46:49
1769 dnl If we're trying to use g++, test if libg++ is installed (a rather common
1770 dnl problem :-). If we have the compiler but no library, we'll be able to
1771 dnl configure, but won't be able to build the c++ demo program.
1772 AC_DEFUN([CF_GPP_LIBRARY],
1774 cf_cxx_library=unknown
1775 case $cf_cv_system_name in #(vi
1783 if test "$GXX" = yes; then
1784 AC_MSG_CHECKING([for lib$cf_gpp_libname])
1786 LIBS="-l$cf_gpp_libname $LIBS"
1788 #include <$cf_gpp_libname/builtin.h>
1790 [two_arg_error_handler_t foo2 = lib_error_handler],
1792 CXXLIBS="$CXXLIBS -l$cf_gpp_libname"
1793 if test "$cf_gpp_libname" = cpp ; then
1794 AC_DEFINE(HAVE_GPP_BUILTIN_H)
1796 AC_DEFINE(HAVE_GXX_BUILTIN_H)
1799 #include <builtin.h>
1801 [two_arg_error_handler_t foo2 = lib_error_handler],
1803 CXXLIBS="$CXXLIBS -l$cf_gpp_libname"
1804 AC_DEFINE(HAVE_BUILTIN_H)],
1805 [cf_cxx_library=no])])
1807 AC_MSG_RESULT($cf_cxx_library)
1810 dnl ---------------------------------------------------------------------------
1811 dnl CF_GXX_VERSION version: 5 updated: 2005/08/27 09:53:42
1813 dnl Check for version of g++
1814 AC_DEFUN([CF_GXX_VERSION],[
1815 AC_REQUIRE([AC_PROG_CPP])
1817 if test "$GXX" = yes; then
1818 AC_MSG_CHECKING(version of g++)
1819 GXX_VERSION="`${CXX-g++} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
1820 test -z "$GXX_VERSION" && GXX_VERSION=unknown
1821 AC_MSG_RESULT($GXX_VERSION)
1824 dnl ---------------------------------------------------------------------------
1825 dnl CF_GXX_WARNINGS version: 5 updated: 2005/08/13 14:54:38
1827 dnl Check if the compiler supports useful warning options.
1829 dnl Most of gcc's options apply to g++, except:
1830 dnl -Wbad-function-cast
1831 dnl -Wmissing-declarations
1832 dnl -Wnested-externs
1834 dnl Omit a few (for now):
1838 dnl $1 is an optional list of g++ warning flags that a particular
1839 dnl application might want to use, e.g., "no-unused" for
1842 dnl If $with_ext_const is "yes", add a check for -Wwrite-strings
1844 AC_DEFUN([CF_GXX_WARNINGS],
1847 CF_INTEL_COMPILER(GXX,INTEL_CPLUSPLUS,CXXFLAGS)
1849 AC_REQUIRE([CF_GXX_VERSION])
1854 cat > conftest.$ac_ext <<EOF
1855 #line __oline__ "configure"
1856 int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
1859 if test "$INTEL_CPLUSPLUS" = yes
1861 # The "-wdXXX" options suppress warnings:
1862 # remark #1419: external declaration in primary source file
1863 # remark #1682: implicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
1864 # remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
1865 # remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
1866 # remark #193: zero used for undefined preprocessing identifier
1867 # remark #593: variable "curs_sb_left_arrow" was set but never used
1868 # remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
1869 # remark #869: parameter "tw" was never referenced
1870 # remark #981: operands are evaluated in unspecified order
1871 # warning #269: invalid format string conversion
1873 AC_CHECKING([for $CC warning options])
1874 cf_save_CXXFLAGS="$CXXFLAGS"
1875 EXTRA_CXXFLAGS="-Wall"
1888 CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -$cf_opt"
1889 if AC_TRY_EVAL(ac_compile); then
1890 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1891 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
1894 CXXFLAGS="$cf_save_CXXFLAGS"
1896 elif test "$GXX" = yes
1898 AC_CHECKING([for $CXX warning options])
1899 cf_save_CXXFLAGS="$CXXFLAGS"
1900 EXTRA_CXXFLAGS="-W -Wall"
1901 cf_gxx_extra_warnings=""
1902 test "$with_ext_const" = yes && cf_gxx_extra_warnings="Wwrite-strings"
1903 case "$GCC_VERSION" in
1907 cf_gxx_extra_warnings="$cf_gxx_extra_warnings Weffc++"
1913 Woverloaded-virtual \
1919 Wmissing-prototypes \
1922 Wstrict-prototypes \
1923 Wundef $cf_gxx_extra_warnings $1
1925 CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -Werror -$cf_opt"
1926 if AC_TRY_EVAL(ac_compile); then
1927 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1928 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
1930 test -n "$verbose" && AC_MSG_RESULT(... no -$cf_opt)
1933 CXXFLAGS="$cf_save_CXXFLAGS"
1938 AC_SUBST(EXTRA_CXXFLAGS)
1940 dnl ---------------------------------------------------------------------------
1941 dnl CF_HASHED_DB version: 3 updated: 2007/11/24 17:43:37
1943 dnl Look for an instance of the Berkeley hashed database.
1945 dnl $1 = optional parameter, to specify install-prefix for the database.
1946 AC_DEFUN([CF_HASHED_DB],
1953 if test -d "$1" ; then
1954 CF_ADD_INCDIR($1/include)
1955 CF_ADD_LIBDIR($1/lib)
1959 AC_CHECK_HEADER(db.h,[
1960 CF_HASHED_DB_VERSION
1961 if test "$cf_cv_hashed_db_version" = unknown ; then
1962 AC_MSG_ERROR(Cannot determine version of db)
1965 if test "$cf_cv_hashed_db_libs" = unknown ; then
1966 AC_MSG_ERROR(Cannot determine library for db)
1967 elif test "$cf_cv_hashed_db_libs" != default ; then
1968 LIBS="-l$cf_cv_hashed_db_libs $LIBS"
1972 AC_MSG_ERROR(Cannot find db.h)
1975 dnl ---------------------------------------------------------------------------
1976 dnl CF_HASHED_DB_LIBS version: 8 updated: 2008/08/04 06:18:06
1977 dnl -----------------
1978 dnl Given that we have the header and version for hashed database, find the
1979 dnl library information.
1980 AC_DEFUN([CF_HASHED_DB_LIBS],
1982 AC_CACHE_CHECK(for db libraries, cf_cv_hashed_db_libs,[
1983 cf_cv_hashed_db_libs=unknown
1984 for cf_db_libs in "" db$cf_cv_hashed_db_version db-$cf_cv_hashed_db_version db ''
1986 cf_save_libs="$LIBS"
1987 if test -n "$cf_db_libs"; then
1988 LIBS="-l$cf_db_libs $LIBS"
1990 CF_MSG_LOG(checking for library "$cf_db_libs")
1992 $ac_includes_default
1995 char *path = "/tmp/foo";
1996 #ifdef DB_VERSION_MAJOR
1997 #if DB_VERSION_MAJOR >= 4
1999 db_create(&result, NULL, 0);
2000 result->open(result,
2007 #elif DB_VERSION_MAJOR >= 3
2009 db_create(&result, NULL, 0);
2010 result->open(result,
2016 #elif DB_VERSION_MAJOR >= 2
2025 #endif /* DB_VERSION_MAJOR */
2027 DB *result = dbopen(path,
2033 ${cf_cv_main_return:-return}(result != 0)
2035 if test -n "$cf_db_libs" ; then
2036 cf_cv_hashed_db_libs=$cf_db_libs
2038 cf_cv_hashed_db_libs=default
2040 LIBS="$cf_save_libs"
2043 LIBS="$cf_save_libs"
2047 dnl ---------------------------------------------------------------------------
2048 dnl CF_HASHED_DB_VERSION version: 3 updated: 2007/12/01 15:01:37
2049 dnl --------------------
2050 dnl Given that we have the header file for hashed database, find the version
2052 AC_DEFUN([CF_HASHED_DB_VERSION],
2054 AC_CACHE_CHECK(for version of db, cf_cv_hashed_db_version,[
2055 cf_cv_hashed_db_version=unknown
2057 for cf_db_version in 1 2 3 4 5
2059 CF_MSG_LOG(checking for db version $cf_db_version)
2061 $ac_includes_default
2064 #ifdef DB_VERSION_MAJOR
2065 /* db2 (DB_VERSION_MAJOR=2) has also DB_VERSION_MINOR, tested with 7 */
2066 #if $cf_db_version == DB_VERSION_MAJOR
2072 #if $cf_db_version == 1
2073 /* ok: assuming this is DB 1.8.5 */
2079 cf_cv_hashed_db_version=$cf_db_version
2085 dnl ---------------------------------------------------------------------------
2086 dnl CF_HEADER_PATH version: 10 updated: 2010/01/17 20:36:17
2088 dnl Construct a search-list of directories for a nonstandard header-file
2091 dnl $1 = the variable to return as result
2092 dnl $2 = the package name
2093 AC_DEFUN([CF_HEADER_PATH],
2096 cf_header_path_list=""
2097 if test -n "${CFLAGS}${CPPFLAGS}" ; then
2098 for cf_header_path in $CPPFLAGS $CFLAGS
2100 case $cf_header_path in #(vi
2102 cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'`
2103 CF_ADD_SUBDIR_PATH($1,$2,include,$cf_header_path,NONE)
2104 cf_header_path_list="$cf_header_path_list [$]$1"
2110 CF_SUBDIR_PATH($1,$2,include)
2112 test "$includedir" != NONE && \
2113 test "$includedir" != "/usr/include" && \
2114 test -d "$includedir" && {
2115 test -d $includedir && $1="[$]$1 $includedir"
2116 test -d $includedir/$2 && $1="[$]$1 $includedir/$2"
2119 test "$oldincludedir" != NONE && \
2120 test "$oldincludedir" != "/usr/include" && \
2121 test -d "$oldincludedir" && {
2122 test -d $oldincludedir && $1="[$]$1 $oldincludedir"
2123 test -d $oldincludedir/$2 && $1="[$]$1 $oldincludedir/$2"
2126 $1="$cf_header_path_list [$]$1"
2128 dnl ---------------------------------------------------------------------------
2129 dnl CF_HELP_MESSAGE version: 3 updated: 1998/01/14 10:56:23
2131 dnl Insert text into the help-message, for readability, from AC_ARG_WITH.
2132 AC_DEFUN([CF_HELP_MESSAGE],
2133 [AC_DIVERT_HELP([$1])dnl
2135 dnl ---------------------------------------------------------------------------
2136 dnl CF_INCLUDE_DIRS version: 6 updated: 2009/01/06 19:37:40
2138 dnl Construct the list of include-options according to whether we're building
2139 dnl in the source directory or using '--srcdir=DIR' option. If we're building
2140 dnl with gcc, don't append the includedir if it happens to be /usr/include,
2141 dnl since that usually breaks gcc's shadow-includes.
2142 AC_DEFUN([CF_INCLUDE_DIRS],
2144 CPPFLAGS="$CPPFLAGS -I. -I../include"
2145 if test "$srcdir" != "."; then
2146 CPPFLAGS="$CPPFLAGS -I\${srcdir}/../include"
2148 if test "$GCC" != yes; then
2149 CPPFLAGS="$CPPFLAGS -I\${includedir}"
2150 elif test "$includedir" != "/usr/include"; then
2151 if test "$includedir" = '${prefix}/include' ; then
2152 if test $prefix != /usr ; then
2153 CPPFLAGS="$CPPFLAGS -I\${includedir}"
2156 CPPFLAGS="$CPPFLAGS -I\${includedir}"
2161 dnl ---------------------------------------------------------------------------
2162 dnl CF_INTEL_COMPILER version: 3 updated: 2005/08/06 18:37:29
2163 dnl -----------------
2164 dnl Check if the given compiler is really the Intel compiler for Linux. It
2165 dnl tries to imitate gcc, but does not return an error when it finds a mismatch
2166 dnl between prototypes, e.g., as exercised by CF_MISSING_CHECK.
2168 dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
2169 dnl ensure that it is not mistaken for gcc/g++. It is normally invoked from
2170 dnl the wrappers for gcc and g++ warnings.
2172 dnl $1 = GCC (default) or GXX
2173 dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS
2174 dnl $3 = CFLAGS (default) or CXXFLAGS
2175 AC_DEFUN([CF_INTEL_COMPILER],[
2176 ifelse($2,,INTEL_COMPILER,[$2])=no
2178 if test "$ifelse($1,,[$1],GCC)" = yes ; then
2181 AC_MSG_CHECKING(if this is really Intel ifelse($1,GXX,C++,C) compiler)
2182 cf_save_CFLAGS="$ifelse($3,,CFLAGS,[$3])"
2183 ifelse($3,,CFLAGS,[$3])="$ifelse($3,,CFLAGS,[$3]) -no-gcc"
2185 #ifdef __INTEL_COMPILER
2189 ],[ifelse($2,,INTEL_COMPILER,[$2])=yes
2190 cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
2192 ifelse($3,,CFLAGS,[$3])="$cf_save_CFLAGS"
2193 AC_MSG_RESULT($ifelse($2,,INTEL_COMPILER,[$2]))
2198 dnl ---------------------------------------------------------------------------
2199 dnl CF_ISASCII version: 3 updated: 2000/08/12 23:18:52
2201 dnl Check if we have either a function or macro for 'isascii()'.
2202 AC_DEFUN([CF_ISASCII],
2204 AC_MSG_CHECKING(for isascii)
2205 AC_CACHE_VAL(cf_cv_have_isascii,[
2206 AC_TRY_LINK([#include <ctype.h>],[int x = isascii(' ')],
2207 [cf_cv_have_isascii=yes],
2208 [cf_cv_have_isascii=no])
2210 AC_MSG_RESULT($cf_cv_have_isascii)
2211 test "$cf_cv_have_isascii" = yes && AC_DEFINE(HAVE_ISASCII)
2213 dnl ---------------------------------------------------------------------------
2214 dnl CF_LARGEFILE version: 7 updated: 2007/06/02 11:58:50
2216 dnl Add checks for large file support.
2217 AC_DEFUN([CF_LARGEFILE],[
2218 ifdef([AC_FUNC_FSEEKO],[
2220 if test "$enable_largefile" != no ; then
2223 # Normally we would collect these definitions in the config.h,
2224 # but (like _XOPEN_SOURCE), some environments rely on having these
2225 # defined before any of the system headers are included. Another
2226 # case comes up with C++, e.g., on AIX the compiler compiles the
2227 # header files by themselves before looking at the body files it is
2228 # told to compile. For ncurses, those header files do not include
2230 test "$ac_cv_sys_large_files" != no && CPPFLAGS="$CPPFLAGS -D_LARGE_FILES "
2231 test "$ac_cv_sys_largefile_source" != no && CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE "
2232 test "$ac_cv_sys_file_offset_bits" != no && CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits "
2234 AC_CACHE_CHECK(whether to use struct dirent64, cf_cv_struct_dirent64,[
2236 #include <sys/types.h>
2239 /* if transitional largefile support is setup, this is true */
2240 extern struct dirent64 * readdir(DIR *);
2241 struct dirent64 *x = readdir((DIR *)0);
2242 struct dirent *y = readdir((DIR *)0);
2245 [cf_cv_struct_dirent64=yes],
2246 [cf_cv_struct_dirent64=no])
2248 test "$cf_cv_struct_dirent64" = yes && AC_DEFINE(HAVE_STRUCT_DIRENT64)
2252 dnl ---------------------------------------------------------------------------
2253 dnl CF_LDFLAGS_STATIC version: 7 updated: 2009/04/04 18:31:04
2254 dnl -----------------
2255 dnl Check for compiler/linker flags used to temporarily force usage of static
2256 dnl libraries. This depends on the compiler and platform. Use this to help
2257 dnl ensure that the linker picks up a given library based on its position in
2258 dnl the list of linker options and libraries.
2259 AC_DEFUN([CF_LDFLAGS_STATIC],[
2261 if test "$GCC" = yes ; then
2262 case $cf_cv_system_name in #(
2263 OS/2*|os2*|aix[[4]]*|solaris2.1[[0-9]]|darwin*) #( vi
2267 *) #( normally, except when broken
2268 LDFLAGS_STATIC=-static
2269 LDFLAGS_SHARED=-dynamic
2273 case $cf_cv_system_name in #(
2274 aix[[456]]*) #( from ld manpage
2275 LDFLAGS_STATIC=-bstatic
2276 LDFLAGS_SHARED=-bdynamic
2278 hpux*) #( from ld manpage for hpux10.20, hpux11.11
2279 # We could also use just "archive" and "shared".
2280 LDFLAGS_STATIC=-Wl,-a,archive_shared
2281 LDFLAGS_SHARED=-Wl,-a,shared_archive
2283 irix*) #( from ld manpage IRIX64
2284 LDFLAGS_STATIC=-Bstatic
2285 LDFLAGS_SHARED=-Bdynamic
2287 osf[[45]]*) #( from ld manpage osf4.0d, osf5.1
2288 # alternative "-oldstyle_liblookup" (not in cc manpage)
2289 LDFLAGS_STATIC=-noso
2290 LDFLAGS_SHARED=-so_archive
2293 LDFLAGS_STATIC=-Bstatic
2294 LDFLAGS_SHARED=-Bdynamic
2299 AC_SUBST(LDFLAGS_STATIC)
2300 AC_SUBST(LDFLAGS_SHARED)
2302 dnl ---------------------------------------------------------------------------
2303 dnl CF_LD_RPATH_OPT version: 2 updated: 2010/03/27 19:27:54
2305 dnl For the given system and compiler, find the compiler flags to pass to the
2306 dnl loader to use the "rpath" feature.
2307 AC_DEFUN([CF_LD_RPATH_OPT],
2309 AC_REQUIRE([CF_CHECK_CACHE])
2312 AC_MSG_CHECKING(for an rpath option)
2313 case $cf_cv_system_name in #(vi
2315 if test "$GCC" = yes; then
2316 LD_RPATH_OPT="-Wl,-rpath,"
2318 LD_RPATH_OPT="-rpath "
2321 linux*|gnu*|k*bsd*-gnu) #(vi
2322 LD_RPATH_OPT="-Wl,-rpath,"
2324 openbsd[[2-9]].*) #(vi
2325 LD_RPATH_OPT="-Wl,-rpath,"
2328 LD_RPATH_OPT="-rpath "
2331 LD_RPATH_OPT="-Wl,-rpath,"
2334 LD_RPATH_OPT="-rpath "
2342 AC_MSG_RESULT($LD_RPATH_OPT)
2344 case "x$LD_RPATH_OPT" in #(vi
2346 AC_MSG_CHECKING(if we need a space after rpath option)
2347 cf_save_LIBS="$LIBS"
2348 LIBS="${LD_RPATH_OPT}$libdir $LIBS"
2349 AC_TRY_LINK(, , cf_rpath_space=no, cf_rpath_space=yes)
2350 LIBS="$cf_save_LIBS"
2351 AC_MSG_RESULT($cf_rpath_space)
2352 test "$cf_rpath_space" = yes && LD_RPATH_OPT="$LD_RPATH_OPT "
2356 dnl ---------------------------------------------------------------------------
2357 dnl CF_LIBRARY_PATH version: 9 updated: 2010/03/28 12:52:50
2359 dnl Construct a search-list of directories for a nonstandard library-file
2362 dnl $1 = the variable to return as result
2363 dnl $2 = the package name
2364 AC_DEFUN([CF_LIBRARY_PATH],
2367 cf_library_path_list=""
2368 if test -n "${LDFLAGS}${LIBS}" ; then
2369 for cf_library_path in $LDFLAGS $LIBS
2371 case $cf_library_path in #(vi
2373 cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'`
2374 CF_ADD_SUBDIR_PATH($1,$2,lib,$cf_library_path,NONE)
2375 cf_library_path_list="$cf_library_path_list [$]$1"
2381 CF_SUBDIR_PATH($1,$2,lib)
2383 $1="$cf_library_path_list [$]$1"
2385 dnl ---------------------------------------------------------------------------
2386 dnl CF_LIB_PREFIX version: 8 updated: 2008/09/13 11:34:16
2388 dnl Compute the library-prefix for the given host system
2389 dnl $1 = variable to set
2390 AC_DEFUN([CF_LIB_PREFIX],
2392 case $cf_cv_system_name in #(vi
2399 ifelse($1,,,[$1=$LIB_PREFIX])
2400 AC_SUBST(LIB_PREFIX)
2402 dnl ---------------------------------------------------------------------------
2403 dnl CF_LIB_RULES version: 55 updated: 2008/12/13 16:17:38
2405 dnl Append definitions and rules for the given models to the subdirectory
2406 dnl Makefiles, and the recursion rule for the top-level Makefile. If the
2407 dnl subdirectory is a library-source directory, modify the LIBS_TO_MAKE list in
2408 dnl the corresponding makefile to list the models that we'll generate.
2410 dnl For shared libraries, make a list of symbolic links to construct when
2411 dnl generating each library. The convention used for Linux is the simplest
2414 dnl lib<name>.so.<major> ->
2415 dnl lib<name>.so.<maj>.<minor>
2416 AC_DEFUN([CF_LIB_RULES],
2418 CF_LIB_PREFIX(cf_prefix)
2419 AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
2421 if test $cf_cv_shlib_version = cygdll ; then
2422 TINFO_NAME=$TINFO_ARG_SUFFIX
2426 for cf_dir in $SRC_SUBDIRS
2428 if test ! -d $srcdir/$cf_dir ; then
2430 elif test -f $srcdir/$cf_dir/modules; then
2434 for cf_item in $cf_LIST_MODELS
2436 CF_LIB_SUFFIX($cf_item,cf_suffix,cf_depsuf)
2437 if test $cf_item = shared ; then
2438 if test "$cf_cv_do_symlinks" = yes ; then
2439 case "$cf_cv_shlib_version" in #(vi
2441 case "$cf_cv_system_name" in #(vi
2443 case .${LIB_SUFFIX} in
2445 cf_suffix=`echo $cf_suffix | sed 's/^w//'`
2446 cf_suffix=w'.${REL_VERSION}'"$cf_suffix"
2449 cf_suffix='.${REL_VERSION}'"$cf_suffix"
2453 *) cf_suffix="$cf_suffix"'.${REL_VERSION}' ;;
2457 case "$cf_cv_system_name" in #(vi
2459 case .${LIB_SUFFIX} in
2461 cf_suffix=`echo $cf_suffix | sed 's/^w//'`
2462 cf_suffix=w'.${ABI_VERSION}'"$cf_suffix"
2465 cf_suffix='.${ABI_VERSION}'"$cf_suffix"
2469 *) cf_suffix="$cf_suffix"'.${ABI_VERSION}' ;;
2474 # cygwin needs import library, and has unique naming convention
2475 # use autodetected ${cf_prefix} for import lib and static lib, but
2476 # use 'cyg' prefix for shared lib.
2477 if test $cf_cv_shlib_version = cygdll ; then
2478 cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
2479 LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/cyg${cf_dir}${cf_cygsuf}"
2483 LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/${cf_prefix}${cf_dir}${cf_suffix}"
2486 if test $cf_dir = ncurses ; then
2487 cf_subsets="$LIB_SUBSETS"
2488 cf_r_parts="$cf_subsets"
2489 cf_liblist="$LIBS_TO_MAKE"
2491 while test -n "$cf_r_parts"
2493 cf_l_parts=`echo "$cf_r_parts" |sed -e 's/ .*$//'`
2494 cf_r_parts=`echo "$cf_r_parts" |sed -e 's/^[[^ ]]* //'`
2495 if test "$cf_l_parts" != "$cf_r_parts" ; then
2497 case $cf_l_parts in #(vi
2499 cf_item=`echo $cf_liblist |sed -e s%${LIB_NAME}${LIB_SUFFIX}%${TINFO_LIB_SUFFIX}%g`
2502 cf_item=`echo $cf_liblist |sed -e s%${LIB_NAME}${LIB_SUFFIX}%${TICS_LIB_SUFFIX}%g`
2508 if test -n "$cf_item"; then
2509 LIBS_TO_MAKE="$cf_item $LIBS_TO_MAKE"
2516 cf_subsets=`echo "$LIB_SUBSETS" | sed -e 's/^termlib.* //'`
2519 sed -e "s%@LIBS_TO_MAKE@%$LIBS_TO_MAKE%" \
2520 -e "s%@SHARED_LIB@%$SHARED_LIB%" \
2521 $cf_dir/Makefile >$cf_dir/Makefile.out
2522 mv $cf_dir/Makefile.out $cf_dir/Makefile
2524 $AWK -f $srcdir/mk-0th.awk \
2525 libname="${cf_dir}${LIB_SUFFIX}" subsets="$LIB_SUBSETS" \
2526 $srcdir/$cf_dir/modules >>$cf_dir/Makefile
2528 for cf_subset in $cf_subsets
2531 for cf_item in $cf_LIST_MODELS
2533 echo "Appending rules for ${cf_item} model (${cf_dir}: ${cf_subset})"
2534 CF_UPPER(cf_ITEM,$cf_item)
2535 CF_LIB_SUFFIX($cf_item,cf_suffix,cf_depsuf)
2536 CF_OBJ_SUBDIR($cf_item,cf_subdir)
2538 # Test for case where we build libtinfo with a different name.
2540 if test $cf_dir = ncurses ; then
2543 cf_libname=${cf_libname}$LIB_SUFFIX
2546 cf_libname=$TINFO_LIB_SUFFIX
2549 cf_libname=$TICS_LIB_SUFFIX
2553 cf_libname=${cf_libname}$LIB_SUFFIX
2555 if test -n "${DFT_ARG_SUFFIX}" ; then
2556 # undo $LIB_SUFFIX add-on in CF_LIB_SUFFIX
2557 cf_suffix=`echo $cf_suffix |sed -e "s%^${LIB_SUFFIX}%%"`
2560 # These dependencies really are for development, not
2561 # builds, but they are useful in porting, too.
2562 cf_depend="../include/ncurses_cfg.h"
2563 if test "$srcdir" = "."; then
2566 cf_reldir="\${srcdir}"
2569 if test -f $srcdir/$cf_dir/$cf_dir.priv.h; then
2570 cf_depend="$cf_depend $cf_reldir/$cf_dir.priv.h"
2571 elif test -f $srcdir/$cf_dir/curses.priv.h; then
2572 cf_depend="$cf_depend $cf_reldir/curses.priv.h"
2576 old_cf_suffix="$cf_suffix"
2577 if test "$cf_cv_shlib_version_infix" = yes ; then
2578 if test -n "$LIB_SUFFIX" ; then
2581 cf_libname=`echo $cf_libname | sed 's/w$//'`
2582 cf_suffix=`echo $cf_suffix | sed 's/^w//'`
2589 $AWK -f $srcdir/mk-1st.awk \
2590 name=${cf_libname}${cf_dir_suffix} \
2591 traces=$LIB_TRACING \
2597 TermlibRoot=$TINFO_NAME \
2598 TermlibSuffix=$TINFO_SUFFIX \
2599 ShlibVer=$cf_cv_shlib_version \
2600 ShlibVerInfix=$cf_cv_shlib_version_infix \
2601 ReLink=${cf_cv_do_relink-no} \
2602 DoLinks=$cf_cv_do_symlinks \
2603 rmSoLocs=$cf_cv_rm_so_locs \
2604 ldconfig="$LDCONFIG" \
2605 overwrite=$WITH_OVERWRITE \
2606 depend="$cf_depend" \
2608 $srcdir/$cf_dir/modules >>$cf_dir/Makefile
2610 cf_suffix="$old_cf_suffix"
2612 for cf_subdir2 in $cf_subdirs lib
2614 test $cf_subdir = $cf_subdir2 && break
2616 test "${cf_subset}.${cf_subdir2}" != "${cf_subset}.${cf_subdir}" && \
2617 $AWK -f $srcdir/mk-2nd.awk \
2619 traces=$LIB_TRACING \
2625 crenames=$cf_cv_prog_CC_c_o \
2626 cxxrenames=$cf_cv_prog_CXX_c_o \
2627 $srcdir/$cf_dir/modules >>$cf_dir/Makefile
2628 cf_subdirs="$cf_subdirs $cf_subdir"
2633 echo ' cd '$cf_dir' && ${MAKE} ${CF_MFLAGS} [$]@' >>Makefile
2636 for cf_dir in $SRC_SUBDIRS
2638 if test ! -d $srcdir/$cf_dir ; then
2642 if test -f $cf_dir/Makefile ; then
2645 echo 'libs \' >> Makefile
2646 echo 'install.libs \' >> Makefile
2647 echo 'uninstall.libs ::' >> Makefile
2648 echo ' cd '$cf_dir' && ${MAKE} ${CF_MFLAGS} [$]@' >> Makefile
2653 if test -f $srcdir/$cf_dir/modules; then
2655 if test -f $srcdir/$cf_dir/headers; then
2656 cat >> Makefile <<CF_EOF
2658 uninstall.includes \\
2661 if test "$cf_dir" != "c++" ; then
2662 echo 'lint \' >> Makefile
2664 cat >> Makefile <<CF_EOF
2670 uninstall.$cf_dir ::
2671 cd $cf_dir && \${MAKE} \${CF_MFLAGS} \[$]@
2673 elif test -f $srcdir/$cf_dir/headers; then
2674 cat >> Makefile <<CF_EOF
2680 uninstall.includes ::
2681 cd $cf_dir && \${MAKE} \${CF_MFLAGS} \[$]@
2686 cat >> Makefile <<CF_EOF
2688 install.libs uninstall.libs \\
2689 install.data uninstall.data ::
2690 $MAKE_TERMINFO cd misc && \${MAKE} \${CF_MFLAGS} \[$]@
2693 if test "x$cf_with_manpages" = xyes; then
2694 cat >> Makefile <<CF_EOF
2698 cd man && \${MAKE} \${CF_MFLAGS} \[$]@
2702 cat >> Makefile <<CF_EOF
2705 rm -f config.cache config.log config.status Makefile include/ncurses_cfg.h
2706 rm -f headers.sh headers.sed mk_shared_lib.sh
2707 rm -f edit_man.* man_alias.*
2708 rm -rf \${DIRS_TO_MAKE}
2711 # Special case: tack's manpage lives in its own directory.
2712 if test "x$cf_with_manpages" = xyes; then
2713 if test -d tack ; then
2714 if test -f $srcdir/$tack.h; then
2715 cat >> Makefile <<CF_EOF
2719 cd tack && \${MAKE} \${CF_MFLAGS} \[$]@
2725 dnl If we're installing into a subdirectory of /usr/include, etc., we should
2726 dnl prepend the subdirectory's name to the "#include" paths. It won't hurt
2727 dnl anything, and will make it more standardized. It's awkward to decide this
2728 dnl at configuration because of quoting, so we'll simply make all headers
2729 dnl installed via a script that can do the right thing.
2731 rm -f headers.sed headers.sh
2733 dnl ( generating this script makes the makefiles a little tidier :-)
2734 echo creating headers.sh
2735 cat >headers.sh <<CF_EOF
2737 # This shell script is generated by the 'configure' script. It is invoked in a
2738 # subdirectory of the build tree. It generates a sed-script in the parent
2739 # directory that is used to adjust includes for header files that reside in a
2740 # subdirectory of /usr/include, etc.
2742 while test \[$]# != 3
2744 PRG="\$PRG \[$]1"; shift
2749 TMPSRC=\${TMPDIR-/tmp}/\`basename \$SRC\`\$\$
2750 TMPSED=\${TMPDIR-/tmp}/headers.sed\$\$
2751 echo installing \$SRC in \$DST
2754 if test $WITH_CURSES_H = yes; then
2755 cat >>headers.sh <<CF_EOF
2758 END=\`basename \$DST\`
2759 for i in \`cat \$REF/../*/headers |fgrep -v "#"\`
2761 NAME=\`basename \$i\`
2762 echo "s/<\$NAME>/<\$END\/\$NAME>/" >> \$TMPSED
2772 cat >>headers.sh <<CF_EOF
2775 END=\`basename \$DST\`
2776 for i in \`cat \$REF/../*/headers |fgrep -v "#"\`
2778 NAME=\`basename \$i\`
2779 if test "\$NAME" = "curses.h"
2781 echo "s/<curses.h>/<ncurses.h>/" >> \$TMPSED
2784 echo "s/<\$NAME>/<\$END\/\$NAME>/" >> \$TMPSED
2788 echo "s/<curses.h>/<ncurses.h>/" >> \$TMPSED
2793 cat >>headers.sh <<CF_EOF
2795 sed -f \$TMPSED \$SRC > \$TMPSRC
2796 NAME=\`basename \$SRC\`
2798 if test $WITH_CURSES_H != yes; then
2799 cat >>headers.sh <<CF_EOF
2800 test "\$NAME" = "curses.h" && NAME=ncurses.h
2803 cat >>headers.sh <<CF_EOF
2804 # Just in case someone gzip'd manpages, remove the conflicting copy.
2805 test -f \$DST/\$NAME.gz && rm -f \$DST/\$NAME.gz
2807 eval \$PRG \$TMPSRC \$DST/\$NAME
2808 rm -f \$TMPSRC \$TMPSED
2811 chmod 0755 headers.sh
2813 for cf_dir in $SRC_SUBDIRS
2815 if test ! -d $srcdir/$cf_dir ; then
2819 if test -f $srcdir/$cf_dir/headers; then
2820 $AWK -f $srcdir/mk-hdr.awk \
2821 subset="$LIB_SUBSETS" \
2822 compat="$WITH_CURSES_H" \
2823 $srcdir/$cf_dir/headers >>$cf_dir/Makefile
2826 if test -f $srcdir/$cf_dir/modules; then
2827 if test "$cf_dir" != "c++" ; then
2828 cat >>$cf_dir/Makefile <<"CF_EOF"
2829 depend : ${AUTO_SRC}
2830 makedepend -- ${CPPFLAGS} -- ${C_SRC}
2832 # DO NOT DELETE THIS LINE -- make depend depends on it.
2839 dnl ---------------------------------------------------------------------------
2840 dnl CF_LIB_SONAME version: 3 updated: 2006/12/16 15:55:46
2842 dnl Find the and soname for the given shared library. Set the cache variable
2843 dnl cf_cv_$3_soname to this, unless it is not found. Then set the cache
2844 dnl variable to "unknown".
2848 dnl $3 = library name
2849 AC_DEFUN([CF_LIB_SONAME],
2851 AC_CACHE_CHECK(for soname of $3 library,cf_cv_$3_soname,[
2853 cf_cv_$3_soname=unknown
2854 if test "$cross_compiling" != yes ; then
2855 cat >conftest.$ac_ext <<CF_EOF
2860 ${cf_cv_main_return:-return}(0);
2863 cf_save_LIBS="$LIBS"
2865 if AC_TRY_EVAL(ac_compile) ; then
2866 if AC_TRY_EVAL(ac_link) ; then
2867 cf_cv_$3_soname=`ldd conftest$ac_exeext 2>/dev/null | sed -e 's,^.*/,,' -e 's, .*$,,' | fgrep lib$3.`
2868 test -z "$cf_cv_$3_soname" && cf_cv_$3_soname=unknown
2872 LIBS="$cf_save_LIBS"
2876 dnl ---------------------------------------------------------------------------
2877 dnl CF_LIB_SUFFIX version: 16 updated: 2008/12/27 12:30:03
2879 dnl Compute the library file-suffix from the given model name
2881 dnl $2 = variable to set (the nominal library suffix)
2882 dnl $3 = dependency variable to set (actual filename)
2883 dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
2884 AC_DEFUN([CF_LIB_SUFFIX],
2886 AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
2905 case $cf_cv_system_name in
2935 test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
2936 test -n "$LIB_SUFFIX" && $3="${LIB_SUFFIX}[$]{$3}"
2938 dnl ---------------------------------------------------------------------------
2939 dnl CF_LIB_TYPE version: 4 updated: 2000/10/20 22:57:49
2941 dnl Compute the string to append to -library from the given model name
2943 dnl $2 = variable to set
2944 dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
2945 AC_DEFUN([CF_LIB_TYPE],
2954 test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
2956 dnl ---------------------------------------------------------------------------
2957 dnl CF_LINK_DATAONLY version: 9 updated: 2009/01/01 20:21:38
2958 dnl ----------------
2959 dnl Some systems have a non-ANSI linker that doesn't pull in modules that have
2960 dnl only data (i.e., no functions), for example NeXT. On those systems we'll
2961 dnl have to provide wrappers for global tables to ensure they're linked
2963 AC_DEFUN([CF_LINK_DATAONLY],
2965 AC_MSG_CHECKING([if data-only library module links])
2966 AC_CACHE_VAL(cf_cv_link_dataonly,[
2968 cat >conftest.$ac_ext <<EOF
2969 #line __oline__ "configure"
2970 int testdata[[3]] = { 123, 456, 789 };
2972 if AC_TRY_EVAL(ac_compile) ; then
2973 mv conftest.o data.o && \
2974 ( $AR $ARFLAGS conftest.a data.o ) 2>&AC_FD_CC 1>/dev/null
2976 rm -f conftest.$ac_ext data.o
2977 cat >conftest.$ac_ext <<EOF
2978 #line __oline__ "configure"
2982 ${cf_cv_main_return:-return}(1); /* I'm told this linker is broken */
2984 extern int testdata[[3]];
2985 return testdata[[0]] == 123
2986 && testdata[[1]] == 456
2987 && testdata[[2]] == 789;
2991 if AC_TRY_EVAL(ac_compile); then
2992 mv conftest.o func.o && \
2993 ( $AR $ARFLAGS conftest.a func.o ) 2>&AC_FD_CC 1>/dev/null
2995 rm -f conftest.$ac_ext func.o
2996 ( eval $RANLIB conftest.a ) 2>&AC_FD_CC >/dev/null
2998 LIBS="conftest.a $LIBS"
3002 extern int testfunc();
3003 ${cf_cv_main_return:-return} (!testfunc());
3006 [cf_cv_link_dataonly=yes],
3007 [cf_cv_link_dataonly=no],
3008 [cf_cv_link_dataonly=unknown])
3011 AC_MSG_RESULT($cf_cv_link_dataonly)
3013 if test "$cf_cv_link_dataonly" = no ; then
3014 AC_DEFINE(BROKEN_LINKER)
3019 dnl ---------------------------------------------------------------------------
3020 dnl CF_LINK_FUNCS version: 7 updated: 2006/12/16 12:33:30
3022 dnl Most Unix systems have both link and symlink, a few don't have symlink.
3023 dnl A few non-Unix systems implement symlink, but not link.
3024 dnl A few non-systems implement neither (or have nonfunctional versions).
3025 AC_DEFUN([CF_LINK_FUNCS],
3031 if test "$cross_compiling" = yes ; then
3036 AC_CACHE_CHECK(if link/symlink functions work,cf_cv_link_funcs,[
3038 for cf_func in link symlink ; do
3040 #include <sys/types.h>
3041 #include <sys/stat.h>
3042 #ifdef HAVE_UNISTD_H
3048 char *src = "config.log";
3049 char *dst = "conftest.chk";
3054 fail = ($cf_func("config.log", "conftest.chk") < 0)
3055 || (stat(dst, &dst_sb) < 0)
3056 || (dst_sb.st_mtime != src_sb.st_mtime);
3062 ${cf_cv_main_return:-return} (fail);
3065 cf_cv_link_funcs="$cf_cv_link_funcs $cf_func"
3066 eval 'ac_cv_func_'$cf_func'=yes'],[
3067 eval 'ac_cv_func_'$cf_func'=no'],[
3068 eval 'ac_cv_func_'$cf_func'=error'])
3070 test -z "$cf_cv_link_funcs" && cf_cv_link_funcs=no
3072 test "$ac_cv_func_link" = yes && AC_DEFINE(HAVE_LINK)
3073 test "$ac_cv_func_symlink" = yes && AC_DEFINE(HAVE_SYMLINK)
3076 dnl ---------------------------------------------------------------------------
3077 dnl CF_MAIN_RETURN version: 1 updated: 2006/12/10 09:51:54
3079 dnl Check if a return from main to the shell actually returns the same exit
3080 dnl code. This is true for almost any POSIX environment.
3082 dnl Some very old environments did not flush stdout, etc., on an exit. That
3083 dnl would be a useful case to test for also.
3084 AC_DEFUN([CF_MAIN_RETURN],
3086 cf_cv_main_return=return
3088 dnl ---------------------------------------------------------------------------
3089 dnl CF_MAKEFLAGS version: 12 updated: 2006/10/21 08:27:03
3091 dnl Some 'make' programs support ${MAKEFLAGS}, some ${MFLAGS}, to pass 'make'
3092 dnl options to lower-levels. It's very useful for "make -n" -- if we have it.
3093 dnl (GNU 'make' does both, something POSIX 'make', which happens to make the
3094 dnl ${MAKEFLAGS} variable incompatible because it adds the assignments :-)
3095 AC_DEFUN([CF_MAKEFLAGS],
3097 AC_CACHE_CHECK(for makeflags variable, cf_cv_makeflags,[
3099 for cf_option in '-${MAKEFLAGS}' '${MFLAGS}'
3101 cat >cf_makeflags.tmp <<CF_EOF
3104 @ echo '.$cf_option'
3106 cf_result=`${MAKE-make} -k -f cf_makeflags.tmp 2>/dev/null | sed -e 's,[[ ]]*$,,'`
3107 case "$cf_result" in
3109 cf_result=`${MAKE-make} -k -f cf_makeflags.tmp CC=cc 2>/dev/null`
3110 case "$cf_result" in
3111 .*CC=*) cf_cv_makeflags=
3113 *) cf_cv_makeflags=$cf_option
3119 *) echo "given option \"$cf_option\", no match \"$cf_result\""
3123 rm -f cf_makeflags.tmp
3126 AC_SUBST(cf_cv_makeflags)
3128 dnl ---------------------------------------------------------------------------
3129 dnl CF_MAKE_TAGS version: 5 updated: 2010/04/03 20:07:32
3131 dnl Generate tags/TAGS targets for makefiles. Do not generate TAGS if we have
3132 dnl a monocase filesystem.
3133 AC_DEFUN([CF_MAKE_TAGS],[
3134 AC_REQUIRE([CF_MIXEDCASE_FILENAMES])
3136 AC_CHECK_PROGS(CTAGS, exctags ctags)
3137 AC_CHECK_PROGS(ETAGS, exetags etags)
3139 AC_CHECK_PROG(MAKE_LOWER_TAGS, ${CTAGS-ctags}, yes, no)
3141 if test "$cf_cv_mixedcase" = yes ; then
3142 AC_CHECK_PROG(MAKE_UPPER_TAGS, ${ETAGS-etags}, yes, no)
3147 if test "$MAKE_UPPER_TAGS" = yes ; then
3153 if test "$MAKE_LOWER_TAGS" = yes ; then
3162 AC_SUBST(MAKE_UPPER_TAGS)
3163 AC_SUBST(MAKE_LOWER_TAGS)
3165 dnl ---------------------------------------------------------------------------
3166 dnl CF_MANPAGE_FORMAT version: 8 updated: 2009/01/11 20:30:50
3167 dnl -----------------
3168 dnl Option to allow user to override automatic configuration of manpage format.
3169 dnl There are several special cases:
3171 dnl gzip - man checks for, can display gzip'd files
3172 dnl compress - man checks for, can display compressed files
3173 dnl BSDI - files in the cat-directories are suffixed ".0"
3174 dnl formatted - installer should format (put files in cat-directory)
3175 dnl catonly - installer should only format, e.g., for a turnkey system.
3177 dnl There are other configurations which this macro does not test, e.g., HPUX's
3178 dnl compressed manpages (but uncompressed manpages are fine, and HPUX's naming
3179 dnl convention would not match our use).
3180 AC_DEFUN([CF_MANPAGE_FORMAT],
3182 AC_REQUIRE([CF_PATHSEP])
3183 AC_MSG_CHECKING(format of man-pages)
3185 AC_ARG_WITH(manpage-format,
3186 [ --with-manpage-format specify manpage-format: gzip/compress/BSDI/normal and
3187 optionally formatted/catonly, e.g., gzip,formatted],
3188 [MANPAGE_FORMAT=$withval],
3189 [MANPAGE_FORMAT=unknown])
3191 test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=unknown
3192 MANPAGE_FORMAT=`echo "$MANPAGE_FORMAT" | sed -e 's/,/ /g'`
3196 case $MANPAGE_FORMAT in
3198 if test -z "$MANPATH" ; then
3199 MANPATH="/usr/man:/usr/share/man"
3202 # look for the 'date' man-page (it's most likely to be installed!)
3208 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
3209 for cf_dir in $MANPATH; do
3210 test -z "$cf_dir" && cf_dir=/usr/man
3211 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
3213 cf_test=`echo $cf_name | sed -e 's/*//'`
3214 if test "x$cf_test" = "x$cf_name" ; then
3217 *.gz) MANPAGE_FORMAT="$MANPAGE_FORMAT gzip";;
3218 *.Z) MANPAGE_FORMAT="$MANPAGE_FORMAT compress";;
3219 *.0) MANPAGE_FORMAT="$MANPAGE_FORMAT BSDI";;
3220 *) MANPAGE_FORMAT="$MANPAGE_FORMAT normal";;
3234 # if we found a match in either man* or cat*, stop looking
3235 if test -n "$MANPAGE_FORMAT" ; then
3237 test "$cf_preform" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT formatted"
3238 test "$cf_catonly" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT catonly"
3244 test $cf_found=yes && break
3247 # only check the first directory in $MANPATH where we find manpages
3248 if test -n "$MANPAGE_FORMAT" ; then
3252 # if we did not find the example, just assume it is normal
3253 test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=normal
3257 for cf_option in $MANPAGE_FORMAT; do
3258 case $cf_option in #(vi
3259 gzip|compress|BSDI|normal|formatted|catonly)
3262 cf_unknown="$cf_unknown $cf_option"
3269 AC_MSG_RESULT($MANPAGE_FORMAT)
3270 if test -n "$cf_unknown" ; then
3271 AC_MSG_WARN(Unexpected manpage-format $cf_unknown)
3274 dnl ---------------------------------------------------------------------------
3275 dnl CF_MANPAGE_RENAMES version: 7 updated: 2005/06/18 18:51:57
3276 dnl ------------------
3277 dnl The Debian people have their own naming convention for manpages. This
3278 dnl option lets us override the name of the file containing renaming, or
3279 dnl disable it altogether.
3280 AC_DEFUN([CF_MANPAGE_RENAMES],
3282 AC_MSG_CHECKING(for manpage renaming)
3284 AC_ARG_WITH(manpage-renames,
3285 [ --with-manpage-renames specify manpage-renaming],
3286 [MANPAGE_RENAMES=$withval],
3287 [MANPAGE_RENAMES=yes])
3289 case ".$MANPAGE_RENAMES" in #(vi
3293 # Debian 'man' program?
3294 if test -f /etc/debian_version ; then
3295 MANPAGE_RENAMES=`cd $srcdir && pwd`/man/man_db.renames
3302 if test "$MANPAGE_RENAMES" != no ; then
3303 if test -f $srcdir/man/$MANPAGE_RENAMES ; then
3304 MANPAGE_RENAMES=`cd $srcdir/man && pwd`/$MANPAGE_RENAMES
3305 elif test ! -f $MANPAGE_RENAMES ; then
3306 AC_MSG_ERROR(not a filename: $MANPAGE_RENAMES)
3309 test ! -d man && mkdir man
3311 # Construct a sed-script to perform renaming within man-pages
3312 if test -n "$MANPAGE_RENAMES" ; then
3313 test ! -d man && mkdir man
3314 sh $srcdir/man/make_sed.sh $MANPAGE_RENAMES >./edit_man.sed
3318 AC_MSG_RESULT($MANPAGE_RENAMES)
3319 AC_SUBST(MANPAGE_RENAMES)
3321 dnl ---------------------------------------------------------------------------
3322 dnl CF_MANPAGE_SYMLINKS version: 4 updated: 2003/12/13 18:01:58
3323 dnl -------------------
3324 dnl Some people expect each tool to make all aliases for manpages in the
3325 dnl man-directory. This accommodates the older, less-capable implementations
3326 dnl of 'man', and is optional.
3327 AC_DEFUN([CF_MANPAGE_SYMLINKS],
3329 AC_MSG_CHECKING(if manpage aliases will be installed)
3331 AC_ARG_WITH(manpage-aliases,
3332 [ --with-manpage-aliases specify manpage-aliases using .so],
3333 [MANPAGE_ALIASES=$withval],
3334 [MANPAGE_ALIASES=yes])
3336 AC_MSG_RESULT($MANPAGE_ALIASES)
3338 if test "$LN_S" = "ln -s"; then
3345 if test "$MANPAGE_ALIASES" = yes ; then
3346 AC_MSG_CHECKING(if manpage symlinks should be used)
3348 AC_ARG_WITH(manpage-symlinks,
3349 [ --with-manpage-symlinks specify manpage-aliases using symlinks],
3350 [MANPAGE_SYMLINKS=$withval],
3351 [MANPAGE_SYMLINKS=$cf_use_symlinks])
3353 if test "$$cf_use_symlinks" = no; then
3354 if test "$MANPAGE_SYMLINKS" = yes ; then
3355 AC_MSG_WARN(cannot make symlinks, will use .so files)
3360 AC_MSG_RESULT($MANPAGE_SYMLINKS)
3364 dnl ---------------------------------------------------------------------------
3365 dnl CF_MANPAGE_TBL version: 3 updated: 2002/01/19 22:51:32
3367 dnl This option causes manpages to be run through tbl(1) to generate tables
3369 AC_DEFUN([CF_MANPAGE_TBL],
3371 AC_MSG_CHECKING(for manpage tbl)
3373 AC_ARG_WITH(manpage-tbl,
3374 [ --with-manpage-tbl specify manpage processing with tbl],
3375 [MANPAGE_TBL=$withval],
3378 AC_MSG_RESULT($MANPAGE_TBL)
3380 dnl ---------------------------------------------------------------------------
3381 dnl CF_MAN_PAGES version: 36 updated: 2010/03/13 13:41:01
3383 dnl Try to determine if the man-pages on the system are compressed, and if
3384 dnl so, what format is used. Use this information to construct a script that
3385 dnl will install man-pages.
3386 AC_DEFUN([CF_MAN_PAGES],
3388 CF_HELP_MESSAGE(Options to Specify How Manpages are Installed:)
3394 if test "$prefix" = "NONE" ; then
3395 cf_prefix="$ac_default_prefix"
3400 case "$MANPAGE_FORMAT" in # (vi
3415 test ! -d man && mkdir man
3419 case "$MANPAGE_FORMAT" in #(vi
3422 cf_compress=compress
3430 cf_edit_man=./edit_man.sh
3431 cf_man_alias=`pwd`/man_alias.sed
3433 cat >$cf_edit_man <<CF_EOF
3435 # this script is generated by the configure-script CF_MAN_PAGES macro.
3440 NCURSES_MAJOR="$NCURSES_MAJOR"
3441 NCURSES_MINOR="$NCURSES_MINOR"
3442 NCURSES_PATCH="$NCURSES_PATCH"
3444 NCURSES_OSPEED="$NCURSES_OSPEED"
3445 TERMINFO="$TERMINFO"
3447 MKDIRS="sh `cd $srcdir && pwd`/mkdirs.sh"
3450 INSTALL_DATA="$INSTALL_DATA"
3452 transform="$program_transform_name"
3454 TMP=\${TMPDIR-/tmp}/man\$\$
3455 trap "rm -f \$TMP" 0 1 2 5 15
3467 top_srcdir=\[$]srcdir/..
3470 if test "\$form" = normal ; then
3471 if test "$cf_format" = yes ; then
3472 if test "$cf_inboth" = no ; then
3473 sh \[$]0 format \$verb \$mandir \$srcdir \[$]*
3477 cf_subdir=\$mandir/man
3478 cf_tables=$MANPAGE_TBL
3480 cf_subdir=\$mandir/cat
3484 # process the list of source-files
3487 *.orig|*.rej) ;; #(vi
3489 section=\`expr "\$i" : '.*\\.\\([[0-9]]\\)[[xm]]*'\`;
3490 if test \$verb = installing ; then
3491 if test ! -d \$cf_subdir\${section} ; then
3492 \$MKDIRS \$cf_subdir\$section
3496 # replace variables in man page
3497 if test ! -f $cf_man_alias ; then
3498 cat >>$cf_man_alias <<-CF_EOF2
3499 s,@DATADIR@,\$datadir,g
3500 s,@TERMINFO@,\$TERMINFO,g
3501 s,@NCURSES_MAJOR@,\$NCURSES_MAJOR,g
3502 s,@NCURSES_MINOR@,\$NCURSES_MINOR,g
3503 s,@NCURSES_PATCH@,\$NCURSES_PATCH,g
3504 s,@NCURSES_OSPEED@,\$NCURSES_OSPEED,g
3509 cf_NAME=`echo "$cf_name" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
3510 cf_name=`echo $cf_name|sed "$program_transform_name"`
3511 cat >>$cf_edit_man <<-CF_EOF
3512 s,@$cf_NAME@,$cf_name,g
3516 cat >>$cf_edit_man <<CF_EOF
3518 echo "...made $cf_man_alias"
3522 cf_source=\`basename \$i\`
3524 test ! -f \$inalias && inalias="\$srcdir/\$inalias"
3525 if test ! -f \$inalias ; then
3526 echo .. skipped \$cf_source
3531 if test "$MANPAGE_ALIASES" != no ; then
3532 cat >>$cf_edit_man <<CF_EOF
3533 aliases=\`sed -f \$top_srcdir/man/manlinks.sed \$inalias |sed -f $cf_man_alias | sort -u\`
3537 if test "$MANPAGE_RENAMES" = no ; then
3538 cat >>$cf_edit_man <<CF_EOF
3539 # perform program transformations for section 1 man pages
3540 if test \$section = 1 ; then
3541 cf_target=\$cf_subdir\${section}/\`echo \$cf_source|sed "\${transform}"\`
3543 cf_target=\$cf_subdir\${section}/\$cf_source
3547 cat >>$cf_edit_man <<CF_EOF
3548 cf_target=\`grep "^\$cf_source" $MANPAGE_RENAMES | $AWK '{print \[$]2}'\`
3549 if test -z "\$cf_target" ; then
3550 echo '? missing rename for '\$cf_source
3551 cf_target="\$cf_source"
3553 cf_target="\$cf_subdir\${section}/\${cf_target}"
3558 cat >>$cf_edit_man <<CF_EOF
3559 sed -f $cf_man_alias \\
3562 if test -f $MANPAGE_RENAMES ; then
3563 cat >>$cf_edit_man <<CF_EOF
3564 < \$i | sed -f `pwd`/edit_man.sed >\$TMP
3567 cat >>$cf_edit_man <<CF_EOF
3572 cat >>$cf_edit_man <<CF_EOF
3573 if test \$cf_tables = yes ; then
3574 tbl \$TMP >\$TMP.out
3579 if test $with_curses_h != yes ; then
3580 cat >>$cf_edit_man <<CF_EOF
3581 sed -e "/\#[ ]*include/s,curses.h,ncurses.h," < \$TMP >\$TMP.out
3586 cat >>$cf_edit_man <<CF_EOF
3587 if test \$form = format ; then
3588 nroff -man \$TMP >\$TMP.out
3593 if test -n "$cf_compress" ; then
3594 cat >>$cf_edit_man <<CF_EOF
3595 if test \$verb = installing ; then
3596 if ( $cf_compress -f \$TMP )
3598 mv \$TMP.$cf_so_strip \$TMP
3601 cf_target="\$cf_target.$cf_so_strip"
3605 case "$MANPAGE_FORMAT" in #(vi
3607 cat >>$cf_edit_man <<CF_EOF
3608 if test \$form = format ; then
3609 # BSDI installs only .0 suffixes in the cat directories
3610 cf_target="\`echo \$cf_target|sed -e 's/\.[[1-9]]\+[[a-z]]*/.0/'\`"
3616 cat >>$cf_edit_man <<CF_EOF
3617 suffix=\`basename \$cf_target | sed -e 's%^[[^.]]*%%'\`
3618 if test \$verb = installing ; then
3619 echo \$verb \$cf_target
3620 \$INSTALL_DATA \$TMP \$cf_target
3621 test -d \$cf_subdir\${section} &&
3622 test -n "\$aliases" && (
3623 cd \$cf_subdir\${section} && (
3624 cf_source=\`echo \$cf_target |sed -e 's%^.*/\([[^/]][[^/]]*/[[^/]][[^/]]*$\)%\1%'\`
3625 test -n "$cf_so_strip" && cf_source=\`echo \$cf_source |sed -e 's%\.$cf_so_strip\$%%'\`
3626 cf_target=\`basename \$cf_target\`
3627 for cf_alias in \$aliases
3629 if test \$section = 1 ; then
3630 cf_alias=\`echo \$cf_alias|sed "\${transform}"\`
3633 if test "$MANPAGE_SYMLINKS" = yes ; then
3634 if test -f \$cf_alias\${suffix} ; then
3635 if ( cmp -s \$cf_target \$cf_alias\${suffix} )
3640 echo .. \$verb alias \$cf_alias\${suffix}
3641 rm -f \$cf_alias\${suffix}
3642 $LN_S \$cf_target \$cf_alias\${suffix}
3643 elif test "\$cf_target" != "\$cf_alias\${suffix}" ; then
3644 echo ".so \$cf_source" >\$TMP
3646 if test -n "$cf_compress" ; then
3647 cat >>$cf_edit_man <<CF_EOF
3648 if test -n "$cf_so_strip" ; then
3649 $cf_compress -f \$TMP
3650 mv \$TMP.$cf_so_strip \$TMP
3654 cat >>$cf_edit_man <<CF_EOF
3655 echo .. \$verb alias \$cf_alias\${suffix}
3656 rm -f \$cf_alias\${suffix}
3657 \$INSTALL_DATA \$TMP \$cf_alias\${suffix}
3662 elif test \$verb = removing ; then
3663 test -f \$cf_target && (
3664 echo \$verb \$cf_target
3667 test -d \$cf_subdir\${section} &&
3668 test -n "\$aliases" && (
3669 cd \$cf_subdir\${section} && (
3670 for cf_alias in \$aliases
3672 if test \$section = 1 ; then
3673 cf_alias=\`echo \$cf_alias|sed "\${transform}"\`
3676 echo .. \$verb alias \$cf_alias\${suffix}
3677 rm -f \$cf_alias\${suffix}
3689 if test $cf_inboth = yes ; then
3690 if test \$form != format ; then
3691 sh \[$]0 format \$verb \$mandir \$srcdir \[$]*
3697 chmod 755 $cf_edit_man
3700 dnl ---------------------------------------------------------------------------
3701 dnl CF_MATH_LIB version: 6 updated: 2009/12/19 13:46:49
3703 dnl Checks for libraries. At least one UNIX system, Apple Macintosh
3704 dnl Rhapsody 5.5, does not have -lm. We cannot use the simpler
3705 dnl AC_CHECK_LIB(m,sin), because that fails for C++.
3706 AC_DEFUN([CF_MATH_LIB],
3708 AC_CACHE_CHECK(if -lm needed for math functions,
3714 [double x = rand(); printf("result = %g\n", ]ifelse($2,,sin(x),$2)[)],
3715 [cf_cv_need_libm=no],
3716 [cf_cv_need_libm=yes])])
3717 if test "$cf_cv_need_libm" = yes
3724 dnl ---------------------------------------------------------------------------
3725 dnl CF_MIXEDCASE_FILENAMES version: 3 updated: 2003/09/20 17:07:55
3726 dnl ----------------------
3727 dnl Check if the file-system supports mixed-case filenames. If we're able to
3728 dnl create a lowercase name and see it as uppercase, it doesn't support that.
3729 AC_DEFUN([CF_MIXEDCASE_FILENAMES],
3731 AC_CACHE_CHECK(if filesystem supports mixed-case filenames,cf_cv_mixedcase,[
3732 if test "$cross_compiling" = yes ; then
3733 case $target_alias in #(vi
3734 *-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-mingw32*|*-uwin*) #(vi
3742 rm -f conftest CONFTEST
3744 if test -f CONFTEST ; then
3749 rm -f conftest CONFTEST
3752 test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES)
3754 dnl ---------------------------------------------------------------------------
3755 dnl CF_MKSTEMP version: 5 updated: 2006/12/16 12:33:30
3757 dnl Check for a working mkstemp. This creates two files, checks that they are
3758 dnl successfully created and distinct (AmigaOS apparently fails on the last).
3759 AC_DEFUN([CF_MKSTEMP],[
3760 AC_CACHE_CHECK(for working mkstemp, cf_cv_func_mkstemp,[
3763 #include <sys/types.h>
3767 #include <sys/stat.h>
3770 char *tmpl = "conftestXXXXXX";
3778 for (n = 0; n < 2; ++n) {
3779 strcpy(name[n], tmpl);
3780 if ((fd = mkstemp(name[n])) >= 0) {
3781 if (!strcmp(name[n], tmpl)
3782 || stat(name[n], &sb) != 0
3783 || (sb.st_mode & S_IFMT) != S_IFREG
3784 || (sb.st_mode & 077) != 0) {
3791 && !strcmp(name[0], name[1]))
3793 ${cf_cv_main_return:-return}(result);
3795 ],[cf_cv_func_mkstemp=yes
3796 ],[cf_cv_func_mkstemp=no
3797 ],[AC_CHECK_FUNC(mkstemp)
3800 if test "$cf_cv_func_mkstemp" = yes ; then
3801 AC_DEFINE(HAVE_MKSTEMP)
3804 dnl ---------------------------------------------------------------------------
3805 dnl CF_MSG_LOG version: 4 updated: 2007/07/29 09:55:12
3807 dnl Write a debug message to config.log, along with the line number in the
3808 dnl configure script.
3809 AC_DEFUN([CF_MSG_LOG],[
3810 echo "${as_me-configure}:__oline__: testing $* ..." 1>&AC_FD_CC
3812 dnl ---------------------------------------------------------------------------
3813 dnl CF_NCURSES_ABI_6 version: 1 updated: 2005/09/17 18:42:49
3814 dnl ----------------
3815 dnl Set ncurses' ABI to 6 unless overridden by explicit configure option, and
3816 dnl warn about this.
3817 AC_DEFUN([CF_NCURSES_ABI_6],[
3818 if test "${with_abi_version+set}" != set; then
3819 case $cf_cv_rel_version in
3821 cf_cv_rel_version=6.0
3823 AC_MSG_WARN(Overriding ABI version to $cf_cv_abi_version)
3828 dnl ---------------------------------------------------------------------------
3829 dnl CF_NO_LEAKS_OPTION version: 4 updated: 2006/12/16 14:24:05
3830 dnl ------------------
3831 dnl see CF_WITH_NO_LEAKS
3832 AC_DEFUN([CF_NO_LEAKS_OPTION],[
3833 AC_MSG_CHECKING(if you want to use $1 for testing)
3836 [AC_DEFINE($3)ifelse([$4],,[
3839 : ${with_cflags:=-g}
3840 : ${with_no_leaks:=yes}
3843 AC_MSG_RESULT(${with_$1:-no})
3845 case .$with_cflags in #(vi
3847 case .$CFLAGS in #(vi
3857 dnl ---------------------------------------------------------------------------
3858 dnl CF_NUMBER_SYNTAX version: 1 updated: 2003/09/20 18:12:49
3859 dnl ----------------
3860 dnl Check if the given variable is a number. If not, report an error.
3861 dnl $1 is the variable
3862 dnl $2 is the message
3863 AC_DEFUN([CF_NUMBER_SYNTAX],[
3864 if test -n "$1" ; then
3869 AC_MSG_ERROR($2 is not a number: $1)
3873 AC_MSG_ERROR($2 value is empty)
3876 dnl ---------------------------------------------------------------------------
3877 dnl CF_OBJ_SUBDIR version: 4 updated: 2002/02/23 20:38:31
3879 dnl Compute the object-directory name from the given model name
3880 AC_DEFUN([CF_OBJ_SUBDIR],
3883 libtool) $2='obj_lo' ;;
3884 normal) $2='objects' ;;
3885 debug) $2='obj_g' ;;
3886 profile) $2='obj_p' ;;
3888 case $cf_cv_system_name in #(vi
3896 dnl ---------------------------------------------------------------------------
3897 dnl CF_PATHSEP version: 4 updated: 2009/01/11 20:30:23
3899 dnl Provide a value for the $PATH and similar separator
3900 AC_DEFUN([CF_PATHSEP],
3902 case $cf_cv_system_name in
3903 os2*) PATH_SEPARATOR=';' ;;
3904 *) PATH_SEPARATOR=':' ;;
3906 ifelse($1,,,[$1=$PATH_SEPARATOR])
3907 AC_SUBST(PATH_SEPARATOR)
3909 dnl ---------------------------------------------------------------------------
3910 dnl CF_PATH_SYNTAX version: 12 updated: 2008/03/23 14:45:59
3912 dnl Check the argument to see that it looks like a pathname. Rewrite it if it
3913 dnl begins with one of the prefix/exec_prefix variables, and then again if the
3914 dnl result begins with 'NONE'. This is necessary to work around autoconf's
3915 dnl delayed evaluation of those symbols.
3916 AC_DEFUN([CF_PATH_SYNTAX],[
3917 if test "x$prefix" != xNONE; then
3918 cf_path_syntax="$prefix"
3920 cf_path_syntax="$ac_default_prefix"
3923 case ".[$]$1" in #(vi
3924 .\[$]\(*\)*|.\'*\'*) #(vi
3928 .[[a-zA-Z]]:[[\\/]]*) #(vi OS/2 EMX
3930 .\[$]{*prefix}*) #(vi
3932 case ".[$]$1" in #(vi
3934 $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
3939 $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
3942 ifelse($2,,[AC_MSG_ERROR([expected a pathname, not \"[$]$1\"])],$2)
3946 dnl ---------------------------------------------------------------------------
3947 dnl CF_PKG_CONFIG version: 3 updated: 2009/01/25 10:55:09
3949 dnl Check for the package-config program, unless disabled by command-line.
3950 AC_DEFUN([CF_PKG_CONFIG],
3952 AC_MSG_CHECKING(if you want to use pkg-config)
3953 AC_ARG_WITH(pkg-config,
3954 [ --with-pkg-config{=path} enable/disable use of pkg-config],
3955 [cf_pkg_config=$withval],
3956 [cf_pkg_config=yes])
3957 AC_MSG_RESULT($cf_pkg_config)
3959 case $cf_pkg_config in #(vi
3964 AC_PATH_PROG(PKG_CONFIG, pkg-config, none)
3971 test -z "$PKG_CONFIG" && PKG_CONFIG=none
3972 if test "$PKG_CONFIG" != none ; then
3973 CF_PATH_SYNTAX(PKG_CONFIG)
3976 AC_SUBST(PKG_CONFIG)
3978 dnl ---------------------------------------------------------------------------
3979 dnl CF_POSIX_C_SOURCE version: 7 updated: 2010/01/09 11:05:50
3980 dnl -----------------
3981 dnl Define _POSIX_C_SOURCE to the given level, and _POSIX_SOURCE if needed.
3983 dnl POSIX.1-1990 _POSIX_SOURCE
3984 dnl POSIX.1-1990 and _POSIX_SOURCE and
3985 dnl POSIX.2-1992 C-Language _POSIX_C_SOURCE=2
3987 dnl POSIX.1b-1993 _POSIX_C_SOURCE=199309L
3988 dnl POSIX.1c-1996 _POSIX_C_SOURCE=199506L
3989 dnl X/Open 2000 _POSIX_C_SOURCE=200112L
3992 dnl $1 is the nominal value for _POSIX_C_SOURCE
3993 AC_DEFUN([CF_POSIX_C_SOURCE],
3995 cf_POSIX_C_SOURCE=ifelse($1,,199506L,$1)
3997 cf_save_CFLAGS="$CFLAGS"
3998 cf_save_CPPFLAGS="$CPPFLAGS"
4000 CF_REMOVE_DEFINE(cf_trim_CFLAGS,$cf_save_CFLAGS,_POSIX_C_SOURCE)
4001 CF_REMOVE_DEFINE(cf_trim_CPPFLAGS,$cf_save_CPPFLAGS,_POSIX_C_SOURCE)
4003 AC_CACHE_CHECK(if we should define _POSIX_C_SOURCE,cf_cv_posix_c_source,[
4004 CF_MSG_LOG(if the symbol is already defined go no further)
4005 AC_TRY_COMPILE([#include <sys/types.h>],[
4006 #ifndef _POSIX_C_SOURCE
4009 [cf_cv_posix_c_source=no],
4010 [cf_want_posix_source=no
4011 case .$cf_POSIX_C_SOURCE in #(vi
4013 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
4016 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
4017 cf_want_posix_source=yes
4020 cf_want_posix_source=yes
4023 if test "$cf_want_posix_source" = yes ; then
4024 AC_TRY_COMPILE([#include <sys/types.h>],[
4025 #ifdef _POSIX_SOURCE
4028 cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE")
4030 CF_MSG_LOG(ifdef from value $cf_POSIX_C_SOURCE)
4031 CFLAGS="$cf_trim_CFLAGS"
4032 CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source"
4033 CF_MSG_LOG(if the second compile does not leave our definition intact error)
4034 AC_TRY_COMPILE([#include <sys/types.h>],[
4035 #ifndef _POSIX_C_SOURCE
4038 [cf_cv_posix_c_source=no])
4039 CFLAGS="$cf_save_CFLAGS"
4040 CPPFLAGS="$cf_save_CPPFLAGS"
4044 if test "$cf_cv_posix_c_source" != no ; then
4045 CFLAGS="$cf_trim_CFLAGS"
4046 CPPFLAGS="$cf_trim_CPPFLAGS"
4047 CF_ADD_CFLAGS($cf_cv_posix_c_source)
4051 dnl ---------------------------------------------------------------------------
4052 dnl CF_PREDEFINE version: 1 updated: 2003/07/26 17:53:56
4054 dnl Add definitions to CPPFLAGS to ensure they're predefined for all compiles.
4056 dnl $1 = symbol to test
4057 dnl $2 = value (if any) to use for a predefinition
4058 AC_DEFUN([CF_PREDEFINE],
4060 AC_MSG_CHECKING(if we must define $1)
4061 AC_TRY_COMPILE([#include <sys/types.h>
4065 #endif],[cf_result=no],[cf_result=yes])
4066 AC_MSG_RESULT($cf_result)
4068 if test "$cf_result" = yes ; then
4069 CPPFLAGS="$CPPFLAGS ifelse($2,,-D$1,[-D$1=$2])"
4070 elif test "x$2" != "x" ; then
4071 AC_MSG_CHECKING(checking for compatible value versus $2)
4072 AC_TRY_COMPILE([#include <sys/types.h>
4076 #endif],[cf_result=yes],[cf_result=no])
4077 AC_MSG_RESULT($cf_result)
4078 if test "$cf_result" = no ; then
4079 # perhaps we can override it - try...
4080 CPPFLAGS="$CPPFLAGS -D$1=$2"
4084 dnl ---------------------------------------------------------------------------
4085 dnl CF_PRG_RULES version: 1 updated: 2006/06/03 11:45:08
4087 dnl Append definitions and rules for the given programs to the subdirectory
4088 dnl Makefiles, and the recursion rule for the top-level Makefile.
4091 dnl $1 = script to run
4092 dnl $2 = list of subdirectories
4096 AC_DEFUN([CF_PRG_RULES],
4100 if test ! -d $srcdir/$cf_dir; then
4102 elif test -f $srcdir/$cf_dir/programs; then
4103 $AWK -f $1 $srcdir/$cf_dir/programs >>$cf_dir/Makefile
4108 dnl ---------------------------------------------------------------------------
4109 dnl CF_PROG_AR version: 1 updated: 2009/01/01 20:15:22
4111 dnl Check for archiver "ar".
4112 AC_DEFUN([CF_PROG_AR],[
4113 AC_CHECK_TOOL(AR, ar, ar)
4115 dnl ---------------------------------------------------------------------------
4116 dnl CF_PROG_AWK version: 1 updated: 2006/09/16 11:40:59
4118 dnl Check for awk, ensure that the check found something.
4119 AC_DEFUN([CF_PROG_AWK],
4122 test -z "$AWK" && AC_MSG_ERROR(No awk program found)
4124 dnl ---------------------------------------------------------------------------
4125 dnl CF_PROG_CC_C_O version: 2 updated: 2006/12/16 15:55:46
4127 dnl Analogous to AC_PROG_CC_C_O, but more useful: tests only $CC, ensures that
4128 dnl the output file can be renamed, and allows for a shell variable that can
4129 dnl be used later. The parameter is either CC or CXX. The result is the
4131 dnl $cf_cv_prog_CC_c_o
4132 dnl $cf_cv_prog_CXX_c_o
4133 AC_DEFUN([CF_PROG_CC_C_O],
4134 [AC_REQUIRE([AC_PROG_CC])dnl
4135 AC_MSG_CHECKING([whether [$]$1 understands -c and -o together])
4136 AC_CACHE_VAL(cf_cv_prog_$1_c_o,
4138 cat > conftest.$ac_ext <<CF_EOF
4142 ${cf_cv_main_return:-return}(0);
4145 # We do the test twice because some compilers refuse to overwrite an
4146 # existing .o file with -o, though they will create one.
4147 ac_try='[$]$1 -c conftest.$ac_ext -o conftest2.$ac_objext >&AC_FD_CC'
4148 if AC_TRY_EVAL(ac_try) &&
4149 test -f conftest2.$ac_objext && AC_TRY_EVAL(ac_try);
4151 eval cf_cv_prog_$1_c_o=yes
4153 eval cf_cv_prog_$1_c_o=no
4157 if test $cf_cv_prog_$1_c_o = yes; then
4158 AC_MSG_RESULT([yes])
4163 dnl ---------------------------------------------------------------------------
4164 dnl CF_PROG_CC_U_D version: 1 updated: 2005/07/14 16:59:30
4166 dnl Check if C (preprocessor) -U and -D options are processed in the order
4167 dnl given rather than by type of option. Some compilers insist on apply all
4168 dnl of the -U options after all of the -D options. Others allow mixing them,
4169 dnl and may predefine symbols that conflict with those we define.
4170 AC_DEFUN([CF_PROG_CC_U_D],
4172 AC_CACHE_CHECK(if $CC -U and -D options work together,cf_cv_cc_u_d_options,[
4173 cf_save_CPPFLAGS="$CPPFLAGS"
4174 CPPFLAGS="-UU_D_OPTIONS -DU_D_OPTIONS -DD_U_OPTIONS -UD_U_OPTIONS"
4177 make an undefined-error
4180 make a defined-error
4183 cf_cv_cc_u_d_options=yes],[
4184 cf_cv_cc_u_d_options=no])
4185 CPPFLAGS="$cf_save_CPPFLAGS"
4188 dnl ---------------------------------------------------------------------------
4189 dnl CF_PROG_EGREP version: 1 updated: 2006/09/16 11:40:59
4191 dnl AC_PROG_EGREP was introduced in autoconf 2.53.
4192 dnl This macro adds a check to ensure the script found something.
4193 AC_DEFUN([CF_PROG_EGREP],
4194 [AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep],
4195 [if echo a | (grep -E '(a|b)') >/dev/null 2>&1
4196 then ac_cv_prog_egrep='grep -E'
4197 else ac_cv_prog_egrep='egrep'
4199 EGREP=$ac_cv_prog_egrep
4201 test -z "$EGREP" && AC_MSG_ERROR(No egrep program found)
4203 dnl ---------------------------------------------------------------------------
4204 dnl CF_PROG_EXT version: 10 updated: 2004/01/03 19:28:18
4206 dnl Compute $PROG_EXT, used for non-Unix ports, such as OS/2 EMX.
4207 AC_DEFUN([CF_PROG_EXT],
4209 AC_REQUIRE([CF_CHECK_CACHE])
4210 case $cf_cv_system_name in
4212 CFLAGS="$CFLAGS -Zmt"
4213 CPPFLAGS="$CPPFLAGS -D__ST_MT_ERRNO__"
4214 CXXFLAGS="$CXXFLAGS -Zmt"
4215 # autoconf's macro sets -Zexe and suffix both, which conflict:w
4216 LDFLAGS="$LDFLAGS -Zmt -Zcrtdll"
4226 test -n "$PROG_EXT" && AC_DEFINE_UNQUOTED(PROG_EXT,"$PROG_EXT")
4228 dnl ---------------------------------------------------------------------------
4229 dnl CF_PROG_INSTALL version: 5 updated: 2002/12/21 22:46:07
4231 dnl Force $INSTALL to be an absolute-path. Otherwise, edit_man.sh and the
4232 dnl misc/tabset install won't work properly. Usually this happens only when
4233 dnl using the fallback mkinstalldirs script
4234 AC_DEFUN([CF_PROG_INSTALL],
4240 CF_DIRNAME(cf_dir,$INSTALL)
4241 test -z "$cf_dir" && cf_dir=.
4242 INSTALL=`cd $cf_dir && pwd`/`echo $INSTALL | sed -e 's%^.*/%%'`
4246 dnl ---------------------------------------------------------------------------
4247 dnl CF_PROG_LDCONFIG version: 2 updated: 2008/12/13 14:08:40
4248 dnl ----------------
4249 dnl Check for ldconfig, needed to fixup shared libraries that would be built
4250 dnl and then used in the install.
4251 AC_DEFUN([CF_PROG_LDCONFIG],[
4252 if test "$cross_compiling" = yes ; then
4255 case "$cf_cv_system_name" in #(vi
4256 dragonfly*|freebsd*) #(vi
4257 test -z "$LDCONFIG" && LDCONFIG="/sbin/ldconfig -R"
4259 *) LDPATH=$PATH:/sbin:/usr/sbin
4260 AC_PATH_PROG(LDCONFIG,ldconfig,,$LDPATH)
4266 dnl ---------------------------------------------------------------------------
4267 dnl CF_PROG_LINT version: 2 updated: 2009/08/12 04:43:14
4269 AC_DEFUN([CF_PROG_LINT],
4271 AC_CHECK_PROGS(LINT, tdlint lint alint splint lclint)
4274 dnl ---------------------------------------------------------------------------
4275 dnl CF_REGEX version: 6 updated: 2010/03/27 13:41:56
4277 dnl Attempt to determine if we've got one of the flavors of regular-expression
4278 dnl code that we can support.
4279 AC_DEFUN([CF_REGEX],
4284 AC_CHECK_FUNC(regcomp,[cf_regex_func=regcomp],[
4285 for cf_regex_lib in regex re
4287 AC_CHECK_LIB($cf_regex_lib,regcomp,[
4288 LIBS="-l$cf_regex_lib $LIBS"
4289 cf_regex_func=regcomp
4294 if test "$cf_regex_func" = no ; then
4295 AC_CHECK_FUNC(compile,[cf_regex_func=compile],[
4296 AC_CHECK_LIB(gen,compile,[
4298 cf_regex_func=compile])])
4301 if test "$cf_regex_func" = no ; then
4302 AC_MSG_WARN(cannot find regular expression library)
4305 AC_CACHE_CHECK(for regular-expression headers,cf_cv_regex_hdrs,[
4308 case $cf_regex_func in #(vi
4310 for cf_regex_hdr in regexp.h regexpr.h
4312 AC_TRY_LINK([#include <$cf_regex_hdr>],[
4313 char *p = compile("", "", "", 0);
4314 int x = step("", "");
4316 cf_cv_regex_hdrs=$cf_regex_hdr
4322 for cf_regex_hdr in regex.h
4324 AC_TRY_LINK([#include <sys/types.h>
4325 #include <$cf_regex_hdr>],[
4327 int x = regcomp(p, "", 0);
4328 int y = regexec(p, "", 0, 0, 0);
4331 cf_cv_regex_hdrs=$cf_regex_hdr
4340 case $cf_cv_regex_hdrs in #(vi
4341 no) AC_MSG_WARN(no regular expression header found) ;; #(vi
4342 regex.h) AC_DEFINE(HAVE_REGEX_H_FUNCS) ;; #(vi
4343 regexp.h) AC_DEFINE(HAVE_REGEXP_H_FUNCS) ;; #(vi
4344 regexpr.h) AC_DEFINE(HAVE_REGEXPR_H_FUNCS) ;;
4347 dnl ---------------------------------------------------------------------------
4348 dnl CF_REMOVE_DEFINE version: 3 updated: 2010/01/09 11:05:50
4349 dnl ----------------
4350 dnl Remove all -U and -D options that refer to the given symbol from a list
4351 dnl of C compiler options. This works around the problem that not all
4352 dnl compilers process -U and -D options from left-to-right, so a -U option
4353 dnl cannot be used to cancel the effect of a preceding -D option.
4355 dnl $1 = target (which could be the same as the source variable)
4356 dnl $2 = source (including '$')
4357 dnl $3 = symbol to remove
4358 define([CF_REMOVE_DEFINE],
4361 sed -e 's/-[[UD]]'"$3"'\(=[[^ ]]*\)\?[[ ]]/ /g' \
4362 -e 's/-[[UD]]'"$3"'\(=[[^ ]]*\)\?[$]//g'`
4364 dnl ---------------------------------------------------------------------------
4365 dnl CF_REMOVE_LIB version: 1 updated: 2007/02/17 14:11:52
4367 dnl Remove the given library from the symbol
4369 dnl $1 = target (which could be the same as the source variable)
4370 dnl $2 = source (including '$')
4371 dnl $3 = library to remove
4372 define([CF_REMOVE_LIB],
4374 # remove $3 library from $2
4375 $1=`echo "$2" | sed -e 's/-l$3[[ ]]//g' -e 's/-l$3[$]//'`
4377 dnl ---------------------------------------------------------------------------
4378 dnl CF_RPATH_HACK version: 7 updated: 2010/04/02 20:27:47
4380 AC_DEFUN([CF_RPATH_HACK],
4382 AC_REQUIRE([CF_LD_RPATH_OPT])
4383 AC_MSG_CHECKING(for updated LDFLAGS)
4384 if test -n "$LD_RPATH_OPT" ; then
4385 AC_MSG_RESULT(maybe)
4387 CF_VERBOSE(...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS)
4389 CF_RPATH_HACK_2(LDFLAGS)
4390 CF_RPATH_HACK_2(LIBS)
4392 CF_VERBOSE(...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS)
4394 AC_SUBST(EXTRA_LDFLAGS)
4396 dnl ---------------------------------------------------------------------------
4397 dnl CF_RPATH_HACK_2 version: 3 updated: 2010/04/02 20:27:47
4399 dnl Do one set of substitutions for CF_RPATH_HACK, adding an rpath option to
4400 dnl EXTRA_LDFLAGS for each -L option found.
4402 dnl $1 = variable name to update. The LDFLAGS variable should be the only one,
4403 dnl but LIBS often has misplaced -L options.
4404 AC_DEFUN([CF_RPATH_HACK_2],
4406 CF_VERBOSE(...checking $1 [$]$1)
4409 for cf_rpath_src in [$]$1
4411 case $cf_rpath_src in #(vi
4413 if test "$LD_RPATH_OPT" = "-R " ; then
4414 cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e 's%-L%-R %'`
4416 cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e s%-L%$LD_RPATH_OPT%`
4418 CF_VERBOSE(...Filter $cf_rpath_src ->$cf_rpath_tmp)
4419 EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS"
4422 cf_rpath_dst="$cf_rpath_dst $cf_rpath_src"
4426 CF_VERBOSE(...checked $1 [$]$1)
4427 AC_SUBST(EXTRA_LDFLAGS)
4429 dnl ---------------------------------------------------------------------------
4430 dnl CF_SHARED_OPTS version: 62 updated: 2010/03/28 16:12:30
4433 dnl Attempt to determine the appropriate CC/LD options for creating a shared
4436 dnl Note: ${LOCAL_LDFLAGS} is used to link executables that will run within the
4437 dnl build-tree, i.e., by making use of the libraries that are compiled in ../lib
4438 dnl We avoid compiling-in a ../lib path for the shared library since that can
4439 dnl lead to unexpected results at runtime.
4440 dnl ${LOCAL_LDFLAGS2} has the same intention but assumes that the shared libraries
4441 dnl are compiled in ../../lib
4443 dnl The variable 'cf_cv_do_symlinks' is used to control whether we configure
4444 dnl to install symbolic links to the rel/abi versions of shared libraries.
4446 dnl The variable 'cf_cv_shlib_version' controls whether we use the rel or abi
4447 dnl version when making symbolic links.
4449 dnl The variable 'cf_cv_shlib_version_infix' controls whether shared library
4450 dnl version numbers are infix (ex: libncurses.<ver>.dylib) or postfix
4451 dnl (ex: libncurses.so.<ver>).
4453 dnl Some loaders leave 'so_locations' lying around. It's nice to clean up.
4454 AC_DEFUN([CF_SHARED_OPTS],
4456 AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
4457 AC_REQUIRE([CF_LD_RPATH_OPT])
4461 INSTALL_LIB="-m 644"
4463 cf_cv_do_symlinks=no
4465 test "$cf_cv_enable_rpath" = yes && cf_ld_rpath_opt="$LD_RPATH_OPT"
4467 AC_MSG_CHECKING(if release/abi version should be used for shared libs)
4468 AC_ARG_WITH(shlib-version,
4469 [ --with-shlib-version=X Specify rel or abi version for shared libs],
4470 [test -z "$withval" && withval=auto
4471 case $withval in #(vi
4473 cf_cv_shlib_version=auto
4475 rel|abi|auto|no) #(vi
4476 cf_cv_shlib_version=$withval
4479 AC_MSG_ERROR([option value must be one of: rel, abi, auto or no])
4482 ],[cf_cv_shlib_version=auto])
4483 AC_MSG_RESULT($cf_cv_shlib_version)
4487 # Some less-capable ports of gcc support only -fpic
4489 if test "$GCC" = yes
4491 AC_MSG_CHECKING(which $CC option to use)
4492 cf_save_CFLAGS="$CFLAGS"
4493 for CC_SHARED_OPTS in -fPIC -fpic ''
4495 CFLAGS="$cf_save_CFLAGS $CC_SHARED_OPTS"
4496 AC_TRY_COMPILE([#include <stdio.h>],[int x = 1],[break],[])
4498 AC_MSG_RESULT($CC_SHARED_OPTS)
4499 CFLAGS="$cf_save_CFLAGS"
4502 cf_cv_shlib_version_infix=no
4504 case $cf_cv_system_name in #(vi
4506 if test "$GCC" = yes; then
4508 MK_SHARED_LIB="$(CC) -shared"
4512 MK_SHARED_LIB='${CC} ${CFLAGS} -o $[@] -Xlinker -soname=`basename $[@]` -nostart -e 0'
4516 MK_SHARED_LIB='sh ../mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
4517 cf_cv_shlib_version=cygdll
4518 cf_cv_shlib_version_infix=cygdll
4519 cat >mk_shared_lib.sh <<-CF_EOF
4522 IMPORT_LIB=\`echo "\[$]1" | sed -e 's/cyg/lib/' -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
4525 Linking shared library
4526 ** SHARED_LIB \[$]SHARED_LIB
4527 ** IMPORT_LIB \[$]IMPORT_LIB
4529 exec \[$]* -shared -Wl,--out-implib=../lib/\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o ../lib/\[$]{SHARED_LIB}
4531 chmod +x mk_shared_lib.sh
4534 EXTRA_CFLAGS="-no-cpp-precomp"
4535 CC_SHARED_OPTS="-dynamic"
4536 MK_SHARED_LIB='${CC} ${CFLAGS} -dynamiclib -install_name ${libdir}/`basename $[@]` -compatibility_version ${ABI_VERSION} -current_version ${ABI_VERSION} -o $[@]'
4537 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi
4538 cf_cv_shlib_version_infix=yes
4539 AC_CACHE_CHECK([if ld -search_paths_first works], cf_cv_ldflags_search_paths_first, [
4540 cf_save_LDFLAGS=$LDFLAGS
4541 LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
4542 AC_TRY_LINK(, [int i;], cf_cv_ldflags_search_paths_first=yes, cf_cv_ldflags_search_paths_first=no)
4543 LDFLAGS=$cf_save_LDFLAGS])
4544 if test $cf_cv_ldflags_search_paths_first = yes; then
4545 LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
4549 # (tested with gcc 2.7.2 -- I don't have c89)
4550 if test "$GCC" = yes; then
4551 LD_SHARED_OPTS='-Xlinker +b -Xlinker ${libdir}'
4554 LD_SHARED_OPTS='-Wl,+b,${libdir}'
4556 MK_SHARED_LIB='${LD} +b ${libdir} -b -o $[@]'
4557 # HP-UX shared libraries must be executable, and should be
4558 # readonly to exploit a quirk in the memory manager.
4559 INSTALL_LIB="-m 555"
4562 if test "$cf_cv_enable_rpath" = yes ; then
4563 EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
4565 # tested with IRIX 5.2 and 'cc'.
4566 if test "$GCC" != yes; then
4567 CC_SHARED_OPTS='-KPIC'
4568 MK_SHARED_LIB='${CC} -shared -rdata_shared -soname `basename $[@]` -o $[@]'
4570 MK_SHARED_LIB='${CC} -shared -Wl,-soname,`basename $[@]` -o $[@]'
4572 cf_cv_rm_so_locs=yes
4574 linux*|gnu*|k*bsd*-gnu) #(vi
4575 if test "$DFT_LWR_MODEL" = "shared" ; then
4576 LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
4577 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4579 if test "$cf_cv_enable_rpath" = yes ; then
4580 EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
4583 MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
4585 openbsd[[2-9]].*) #(vi
4586 if test "$DFT_LWR_MODEL" = "shared" ; then
4587 LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
4588 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4590 if test "$cf_cv_enable_rpath" = yes ; then
4591 EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
4593 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
4595 MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-Bshareable,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
4597 nto-qnx*|openbsd*|freebsd[[12]].*) #(vi
4598 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
4599 MK_SHARED_LIB='${LD} -Bshareable -o $[@]'
4600 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
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="${cf_ld_rpath_opt}\${libdir} $LOCAL_LDFLAGS"
4607 EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
4610 MK_SHARED_LIB='${LD} -shared -Bshareable -soname=`basename $[@]` -o $[@]'
4613 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
4614 if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_enable_rpath" = yes ; then
4615 LOCAL_LDFLAGS="${cf_ld_rpath_opt}\$(LOCAL_LIBDIR)"
4616 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4617 EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${libdir} $EXTRA_LDFLAGS"
4618 if test "$cf_cv_shlib_version" = auto; then
4619 if test -f /usr/libexec/ld.elf_so; then
4620 cf_cv_shlib_version=abi
4622 cf_cv_shlib_version=rel
4626 MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname' -o $[@]'
4628 MK_SHARED_LIB='${LD} -shared -Bshareable -o $[@]'
4632 # tested with OSF/1 V3.2 and 'cc'
4633 # tested with OSF/1 V3.2 and gcc 2.6.3 (but the c++ demo didn't
4634 # link with shared libs).
4635 MK_SHARED_LIB='${LD} -set_version ${REL_VERSION}:${ABI_VERSION} -expect_unresolved "*" -shared -soname `basename $[@]`'
4636 case $host_os in #(vi
4638 MK_SHARED_LIB="${MK_SHARED_LIB} -msym"
4641 MK_SHARED_LIB="${MK_SHARED_LIB}"' -o $[@]'
4642 if test "$DFT_LWR_MODEL" = "shared" ; then
4643 LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
4644 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4646 cf_cv_rm_so_locs=yes
4648 sco3.2v5*) # (also uw2* and UW7: hops 13-Apr-98
4649 # tested with osr5.0.5
4650 if test "$GCC" != yes; then
4651 CC_SHARED_OPTS='-belf -KPIC'
4653 MK_SHARED_LIB='${LD} -dy -G -h `basename $[@] .${REL_VERSION}`.${ABI_VERSION} -o [$]@'
4654 if test "$cf_cv_enable_rpath" = yes ; then
4655 # only way is to set LD_RUN_PATH but no switch for it
4658 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
4659 LINK_PROGS='LD_RUN_PATH=${libdir}'
4660 LINK_TESTS='Pwd=`pwd`;LD_RUN_PATH=`dirname $${Pwd}`/lib'
4663 # tested with SunOS 4.1.1 and gcc 2.7.0
4664 if test "$GCC" != yes; then
4665 CC_SHARED_OPTS='-KPIC'
4667 MK_SHARED_LIB='${LD} -assert pure-text -o $[@]'
4668 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
4671 # tested with SunOS 5.5.1 (solaris 2.5.1) and gcc 2.7.2
4672 # tested with SunOS 5.10 (solaris 10) and gcc 3.4.3
4673 if test "$DFT_LWR_MODEL" = "shared" ; then
4674 LOCAL_LDFLAGS="-R \$(LOCAL_LIBDIR):\${libdir}"
4675 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4677 if test "$cf_cv_enable_rpath" = yes ; then
4678 EXTRA_LDFLAGS="-R \${libdir} $EXTRA_LDFLAGS"
4681 if test "$GCC" != yes; then
4682 cf_save_CFLAGS="$CFLAGS"
4683 for cf_shared_opts in -xcode=pic13 -xcode=pic32 -Kpic -KPIC -O
4685 CFLAGS="$cf_shared_opts $cf_save_CFLAGS"
4686 AC_TRY_COMPILE([#include <stdio.h>],[printf("Hello\n");],[break])
4688 CFLAGS="$cf_save_CFLAGS"
4689 CC_SHARED_OPTS=$cf_shared_opts
4690 MK_SHARED_LIB='${CC} -dy -G -h '$cf_cv_shared_soname' -o $[@]'
4692 MK_SHARED_LIB='${CC} -shared -dy -G -h '$cf_cv_shared_soname' -o $[@]'
4695 sysv5uw7*|unix_sv*) #(vi
4696 # tested with UnixWare 7.1.0 (gcc 2.95.2 and cc)
4697 if test "$GCC" != yes; then
4698 CC_SHARED_OPTS='-KPIC'
4700 MK_SHARED_LIB='${LD} -d y -G -o [$]@'
4703 CC_SHARED_OPTS='unknown'
4704 MK_SHARED_LIB='echo unknown'
4708 # This works if the last tokens in $MK_SHARED_LIB are the -o target.
4709 case "$cf_cv_shlib_version" in #(vi
4711 case "$MK_SHARED_LIB" in #(vi
4713 test "$cf_cv_do_symlinks" = no && cf_cv_do_symlinks=yes
4716 AC_MSG_WARN(ignored --with-shlib-version)
4722 if test -n "$cf_ld_rpath_opt" ; then
4723 MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${libdir}"
4726 AC_SUBST(CC_SHARED_OPTS)
4727 AC_SUBST(LD_RPATH_OPT)
4728 AC_SUBST(LD_SHARED_OPTS)
4729 AC_SUBST(MK_SHARED_LIB)
4730 AC_SUBST(LINK_PROGS)
4731 AC_SUBST(LINK_TESTS)
4732 AC_SUBST(EXTRA_LDFLAGS)
4733 AC_SUBST(LOCAL_LDFLAGS)
4734 AC_SUBST(LOCAL_LDFLAGS2)
4735 AC_SUBST(INSTALL_LIB)
4737 dnl ---------------------------------------------------------------------------
4738 dnl CF_SHARED_SONAME version: 3 updated: 2008/09/08 18:34:43
4739 dnl ----------------
4740 dnl utility macro for CF_SHARED_OPTS, constructs "$cf_cv_shared_soname" for
4741 dnl substitution into MK_SHARED_LIB string for the "-soname" (or similar)
4744 dnl $1 is the default that should be used for "$cf_cv_shlib_version".
4745 dnl If missing, use "rel".
4746 define([CF_SHARED_SONAME],
4748 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=ifelse($1,,rel,$1)
4749 if test "$cf_cv_shlib_version" = rel; then
4750 cf_cv_shared_soname='`basename $[@] .${REL_VERSION}`.${ABI_VERSION}'
4752 cf_cv_shared_soname='`basename $[@]`'
4755 dnl ---------------------------------------------------------------------------
4756 dnl CF_SIGWINCH version: 1 updated: 2006/04/02 16:41:09
4758 dnl Use this macro after CF_XOPEN_SOURCE, but do not require it (not all
4759 dnl programs need this test).
4761 dnl This is really a MacOS X 10.4.3 workaround. Defining _POSIX_C_SOURCE
4762 dnl forces SIGWINCH to be undefined (breaks xterm, ncurses). Oddly, the struct
4763 dnl winsize declaration is left alone - we may revisit this if Apple choose to
4764 dnl break that part of the interface as well.
4765 AC_DEFUN([CF_SIGWINCH],
4767 AC_CACHE_CHECK(if SIGWINCH is defined,cf_cv_define_sigwinch,[
4769 #include <sys/types.h>
4770 #include <sys/signal.h>
4771 ],[int x = SIGWINCH],
4772 [cf_cv_define_sigwinch=yes],
4774 #undef _XOPEN_SOURCE
4775 #undef _POSIX_SOURCE
4776 #undef _POSIX_C_SOURCE
4777 #include <sys/types.h>
4778 #include <sys/signal.h>
4779 ],[int x = SIGWINCH],
4780 [cf_cv_define_sigwinch=maybe],
4781 [cf_cv_define_sigwinch=no])
4785 if test "$cf_cv_define_sigwinch" = maybe ; then
4786 AC_CACHE_CHECK(for actual SIGWINCH definition,cf_cv_fixup_sigwinch,[
4787 cf_cv_fixup_sigwinch=unknown
4789 while test $cf_sigwinch != 1
4792 #undef _XOPEN_SOURCE
4793 #undef _POSIX_SOURCE
4794 #undef _POSIX_C_SOURCE
4795 #include <sys/types.h>
4796 #include <sys/signal.h>
4798 #if SIGWINCH != $cf_sigwinch
4802 [cf_cv_fixup_sigwinch=$cf_sigwinch
4805 cf_sigwinch=`expr $cf_sigwinch - 1`
4809 if test "$cf_cv_fixup_sigwinch" != unknown ; then
4810 CPPFLAGS="$CPPFLAGS -DSIGWINCH=$cf_cv_fixup_sigwinch"
4814 dnl ---------------------------------------------------------------------------
4815 dnl CF_SIG_ATOMIC_T version: 2 updated: 2005/09/18 17:27:12
4817 dnl signal handler, but there are some gcc depedencies in that recommendation.
4819 AC_DEFUN([CF_SIG_ATOMIC_T],
4821 AC_MSG_CHECKING(for signal global datatype)
4822 AC_CACHE_VAL(cf_cv_sig_atomic_t,[
4824 "volatile sig_atomic_t" \
4829 #include <sys/types.h>
4835 static void handler(int sig)
4839 [signal(SIGINT, handler);
4841 [cf_cv_sig_atomic_t=$cf_type],
4842 [cf_cv_sig_atomic_t=no])
4843 test "$cf_cv_sig_atomic_t" != no && break
4846 AC_MSG_RESULT($cf_cv_sig_atomic_t)
4847 test "$cf_cv_sig_atomic_t" != no && AC_DEFINE_UNQUOTED(SIG_ATOMIC_T, $cf_cv_sig_atomic_t)
4849 dnl ---------------------------------------------------------------------------
4850 dnl CF_SIZECHANGE version: 8 updated: 2000/11/04 12:22:16
4852 dnl Check for definitions & structures needed for window size-changing
4853 dnl FIXME: check that this works with "snake" (HP-UX 10.x)
4854 AC_DEFUN([CF_SIZECHANGE],
4856 AC_REQUIRE([CF_STRUCT_TERMIOS])
4857 AC_CACHE_CHECK(declaration of size-change, cf_cv_sizechange,[
4858 cf_cv_sizechange=unknown
4859 cf_save_CPPFLAGS="$CPPFLAGS"
4861 for cf_opts in "" "NEED_PTEM_H"
4864 CPPFLAGS="$cf_save_CPPFLAGS"
4865 test -n "$cf_opts" && CPPFLAGS="$CPPFLAGS -D$cf_opts"
4866 AC_TRY_COMPILE([#include <sys/types.h>
4867 #ifdef HAVE_TERMIOS_H
4868 #include <termios.h>
4870 #ifdef HAVE_TERMIO_H
4875 /* This is a workaround for SCO: they neglected to define struct winsize in
4876 * termios.h -- it's only in termio.h and ptem.h
4878 #include <sys/stream.h>
4879 #include <sys/ptem.h>
4881 #if !defined(sun) || !defined(HAVE_TERMIOS_H)
4882 #include <sys/ioctl.h>
4886 struct ttysize win; /* FIXME: what system is this? */
4887 int y = win.ts_lines;
4888 int x = win.ts_cols;
4895 no TIOCGSIZE or TIOCGWINSZ
4896 #endif /* TIOCGWINSZ */
4897 #endif /* TIOCGSIZE */
4899 [cf_cv_sizechange=yes],
4900 [cf_cv_sizechange=no])
4902 CPPFLAGS="$cf_save_CPPFLAGS"
4903 if test "$cf_cv_sizechange" = yes ; then
4904 echo "size-change succeeded ($cf_opts)" >&AC_FD_CC
4905 test -n "$cf_opts" && cf_cv_sizechange="$cf_opts"
4910 if test "$cf_cv_sizechange" != no ; then
4911 AC_DEFINE(HAVE_SIZECHANGE)
4912 case $cf_cv_sizechange in #(vi
4914 AC_DEFINE_UNQUOTED($cf_cv_sizechange )
4919 dnl ---------------------------------------------------------------------------
4920 dnl CF_SRC_MODULES version: 20 updated: 2008/12/27 12:30:03
4922 dnl For each parameter, test if the source-directory exists, and if it contains
4923 dnl a 'modules' file. If so, add to the list $cf_cv_src_modules which we'll
4924 dnl use in CF_LIB_RULES.
4926 dnl This uses the configured value to make the lists SRC_SUBDIRS and
4927 dnl SUB_MAKEFILES which are used in the makefile-generation scheme.
4928 AC_DEFUN([CF_SRC_MODULES],
4930 AC_MSG_CHECKING(for src modules)
4932 # dependencies and linker-arguments for test-programs
4933 TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEPS"
4934 TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEP2"
4935 if test "$DFT_LWR_MODEL" = "libtool"; then
4936 TEST_ARGS="${TEST_DEPS}"
4937 TEST_ARG2="${TEST_DEP2}"
4939 TEST_ARGS="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARGS"
4940 TEST_ARG2="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARG2"
4946 if test -f $srcdir/$cf_dir/modules; then
4948 # We may/may not have tack in the distribution, though the
4950 if test $cf_dir = tack ; then
4951 if test ! -f $srcdir/${cf_dir}/${cf_dir}.h; then
4956 if test -z "$cf_cv_src_modules"; then
4957 cf_cv_src_modules=$cf_dir
4959 cf_cv_src_modules="$cf_cv_src_modules $cf_dir"
4962 # Make the ncurses_cfg.h file record the library interface files as
4963 # well. These are header files that are the same name as their
4964 # directory. Ncurses is the only library that does not follow
4966 if test $cf_dir = tack ; then
4968 elif test -f $srcdir/${cf_dir}/${cf_dir}.h; then
4969 CF_UPPER(cf_have_include,$cf_dir)
4970 AC_DEFINE_UNQUOTED(HAVE_${cf_have_include}_H)
4971 AC_DEFINE_UNQUOTED(HAVE_LIB${cf_have_include})
4972 TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${cf_dir}${DFT_DEP_SUFFIX} $TEST_DEPS"
4973 TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${cf_dir}${DFT_DEP_SUFFIX} $TEST_DEP2"
4974 if test "$DFT_LWR_MODEL" = "libtool"; then
4975 TEST_ARGS="${TEST_DEPS}"
4976 TEST_ARG2="${TEST_DEP2}"
4978 TEST_ARGS="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARGS"
4979 TEST_ARG2="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARG2"
4984 AC_MSG_RESULT($cf_cv_src_modules)
4986 TEST_ARGS="-L${LIB_DIR} $TEST_ARGS"
4987 TEST_ARG2="-L${LIB_2ND} $TEST_ARG2"
4996 if test "x$cf_with_manpages" != xno ; then
4997 SRC_SUBDIRS="$SRC_SUBDIRS man"
4999 SRC_SUBDIRS="$SRC_SUBDIRS include"
5000 for cf_dir in $cf_cv_src_modules
5002 SRC_SUBDIRS="$SRC_SUBDIRS $cf_dir"
5004 SRC_SUBDIRS="$SRC_SUBDIRS test"
5005 test -z "$MAKE_TERMINFO" && SRC_SUBDIRS="$SRC_SUBDIRS misc"
5006 test "$cf_with_cxx_binding" != no && SRC_SUBDIRS="$SRC_SUBDIRS c++"
5009 if test "$cf_cv_prog_gnat_correct" = yes && test -f $srcdir/Ada95/Makefile.in; then
5010 SRC_SUBDIRS="$SRC_SUBDIRS Ada95"
5011 ADA_SUBDIRS="gen src samples"
5015 for cf_dir in $SRC_SUBDIRS
5017 SUB_MAKEFILES="$SUB_MAKEFILES $cf_dir/Makefile"
5020 if test -n "$ADA_SUBDIRS"; then
5021 for cf_dir in $ADA_SUBDIRS
5023 SUB_MAKEFILES="$SUB_MAKEFILES Ada95/$cf_dir/Makefile"
5025 AC_SUBST(ADA_SUBDIRS)
5028 dnl ---------------------------------------------------------------------------
5029 dnl CF_STDCPP_LIBRARY version: 6 updated: 2009/12/19 13:46:49
5030 dnl -----------------
5031 dnl Check for -lstdc++, which is GNU's standard C++ library.
5032 AC_DEFUN([CF_STDCPP_LIBRARY],
5034 if test -n "$GXX" ; then
5035 case $cf_cv_system_name in #(vi
5037 cf_stdcpp_libname=stdcpp
5040 cf_stdcpp_libname=stdc++
5043 AC_CACHE_CHECK(for library $cf_stdcpp_libname,cf_cv_libstdcpp,[
5045 LIBS="-l$cf_stdcpp_libname $LIBS"
5047 #include <strstream.h>],[
5049 strstreambuf foo(buf, sizeof(buf))
5051 [cf_cv_libstdcpp=yes],
5052 [cf_cv_libstdcpp=no])
5055 test "$cf_cv_libstdcpp" = yes && CXXLIBS="$CXXLIBS -l$cf_stdcpp_libname"
5058 dnl ---------------------------------------------------------------------------
5059 dnl CF_STRIP_G_OPT version: 3 updated: 2002/12/21 19:25:52
5061 dnl Remove "-g" option from the compiler options
5062 AC_DEFUN([CF_STRIP_G_OPT],
5063 [$1=`echo ${$1} | sed -e 's%-g %%' -e 's%-g$%%'`])dnl
5064 dnl ---------------------------------------------------------------------------
5065 dnl CF_STRUCT_SIGACTION version: 3 updated: 2000/08/12 23:18:52
5066 dnl -------------------
5067 dnl Check if we need _POSIX_SOURCE defined to use struct sigaction. We'll only
5068 dnl do this if we've found the sigaction function.
5070 dnl If needed, define SVR4_ACTION.
5071 AC_DEFUN([CF_STRUCT_SIGACTION],[
5072 if test "$ac_cv_func_sigaction" = yes; then
5073 AC_MSG_CHECKING(whether sigaction needs _POSIX_SOURCE)
5075 #include <sys/types.h>
5076 #include <signal.h>],
5077 [struct sigaction act],
5081 #define _POSIX_SOURCE
5082 #include <sys/types.h>
5083 #include <signal.h>],
5084 [struct sigaction act],
5086 AC_DEFINE(SVR4_ACTION)],
5087 [sigact_bad=unknown])])
5088 AC_MSG_RESULT($sigact_bad)
5091 dnl ---------------------------------------------------------------------------
5092 dnl CF_STRUCT_TERMIOS version: 5 updated: 2000/11/04 12:22:46
5093 dnl -----------------
5094 dnl Some machines require _POSIX_SOURCE to completely define struct termios.
5095 dnl If so, define SVR4_TERMIO
5096 AC_DEFUN([CF_STRUCT_TERMIOS],[
5102 if test "$ISC" = yes ; then
5103 AC_CHECK_HEADERS( sys/termio.h )
5105 if test "$ac_cv_header_termios_h" = yes ; then
5106 case "$CFLAGS $CPPFLAGS" in
5108 termios_bad=dunno ;;
5109 *) termios_bad=maybe ;;
5111 if test "$termios_bad" = maybe ; then
5112 AC_MSG_CHECKING(whether termios.h needs _POSIX_SOURCE)
5113 AC_TRY_COMPILE([#include <termios.h>],
5114 [struct termios foo; int x = foo.c_iflag],
5117 #define _POSIX_SOURCE
5118 #include <termios.h>],
5119 [struct termios foo; int x = foo.c_iflag],
5120 termios_bad=unknown,
5121 termios_bad=yes AC_DEFINE(SVR4_TERMIO))
5123 AC_MSG_RESULT($termios_bad)
5127 dnl ---------------------------------------------------------------------------
5128 dnl CF_SUBDIR_PATH version: 5 updated: 2007/07/29 09:55:12
5130 dnl Construct a search-list for a nonstandard header/lib-file
5131 dnl $1 = the variable to return as result
5132 dnl $2 = the package name
5133 dnl $3 = the subdirectory, e.g., bin, include or lib
5134 AC_DEFUN([CF_SUBDIR_PATH],
5137 CF_ADD_SUBDIR_PATH($1,$2,$3,/usr,$prefix)
5138 CF_ADD_SUBDIR_PATH($1,$2,$3,$prefix,NONE)
5139 CF_ADD_SUBDIR_PATH($1,$2,$3,/usr/local,$prefix)
5140 CF_ADD_SUBDIR_PATH($1,$2,$3,/opt,$prefix)
5141 CF_ADD_SUBDIR_PATH($1,$2,$3,[$]HOME,$prefix)
5143 dnl ---------------------------------------------------------------------------
5144 dnl CF_SUBST version: 4 updated: 2006/06/17 12:33:03
5146 dnl Shorthand macro for substituting things that the user may override
5147 dnl with an environment variable.
5149 dnl $1 = long/descriptive name
5150 dnl $2 = environment variable
5151 dnl $3 = default value
5152 AC_DEFUN([CF_SUBST],
5153 [AC_CACHE_VAL(cf_cv_subst_$2,[
5154 AC_MSG_CHECKING(for $1 (symbol $2))
5155 CF_SUBST_IF([-z "[$]$2"], [$2], [$3])
5156 cf_cv_subst_$2=[$]$2
5157 AC_MSG_RESULT([$]$2)
5160 dnl ---------------------------------------------------------------------------
5161 dnl CF_SUBST_IF version: 2 updated: 2006/06/17 12:33:03
5163 dnl Shorthand macro for substituting things that the user may override
5164 dnl with an environment variable.
5166 dnl $1 = condition to pass to "test"
5167 dnl $2 = environment variable
5168 dnl $3 = value if the test succeeds
5169 dnl $4 = value if the test fails
5170 AC_DEFUN([CF_SUBST_IF],
5179 dnl ---------------------------------------------------------------------------
5180 dnl CF_SUBST_NCURSES_VERSION version: 8 updated: 2006/09/16 11:40:59
5181 dnl ------------------------
5182 dnl Get the version-number for use in shared-library naming, etc.
5183 AC_DEFUN([CF_SUBST_NCURSES_VERSION],
5185 AC_REQUIRE([CF_PROG_EGREP])
5186 NCURSES_MAJOR="`$ac_cv_prog_egrep '^NCURSES_MAJOR[[ ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`"
5187 NCURSES_MINOR="`$ac_cv_prog_egrep '^NCURSES_MINOR[[ ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`"
5188 NCURSES_PATCH="`$ac_cv_prog_egrep '^NCURSES_PATCH[[ ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`"
5189 cf_cv_abi_version=${NCURSES_MAJOR}
5190 cf_cv_rel_version=${NCURSES_MAJOR}.${NCURSES_MINOR}
5191 dnl Show the computed version, for logging
5192 cf_cv_timestamp=`date`
5193 AC_MSG_RESULT(Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp))
5194 dnl We need these values in the generated headers
5195 AC_SUBST(NCURSES_MAJOR)
5196 AC_SUBST(NCURSES_MINOR)
5197 AC_SUBST(NCURSES_PATCH)
5198 dnl We need these values in the generated makefiles
5199 AC_SUBST(cf_cv_rel_version)
5200 AC_SUBST(cf_cv_abi_version)
5201 AC_SUBST(cf_cv_builtin_bool)
5202 AC_SUBST(cf_cv_header_stdbool_h)
5203 AC_SUBST(cf_cv_type_of_bool)dnl
5205 dnl ---------------------------------------------------------------------------
5206 dnl CF_SYS_TIME_SELECT version: 4 updated: 2000/10/04 09:18:40
5207 dnl ------------------
5208 dnl Check if we can include <sys/time.h> with <sys/select.h>; this breaks on
5209 dnl older SCO configurations.
5210 AC_DEFUN([CF_SYS_TIME_SELECT],
5212 AC_MSG_CHECKING(if sys/time.h works with sys/select.h)
5213 AC_CACHE_VAL(cf_cv_sys_time_select,[
5215 #include <sys/types.h>
5216 #ifdef HAVE_SYS_TIME_H
5217 #include <sys/time.h>
5219 #ifdef HAVE_SYS_SELECT_H
5220 #include <sys/select.h>
5222 ],[],[cf_cv_sys_time_select=yes],
5223 [cf_cv_sys_time_select=no])
5225 AC_MSG_RESULT($cf_cv_sys_time_select)
5226 test "$cf_cv_sys_time_select" = yes && AC_DEFINE(HAVE_SYS_TIME_SELECT)
5228 dnl ---------------------------------------------------------------------------
5229 dnl CF_TOP_BUILDDIR version: 1 updated: 2006/10/15 16:33:23
5231 dnl Define a top_builddir symbol, for applications that need an absolute path.
5232 AC_DEFUN([CF_TOP_BUILDDIR],
5235 AC_SUBST(top_builddir)
5237 dnl ---------------------------------------------------------------------------
5238 dnl CF_TYPEOF_CHTYPE version: 8 updated: 2006/12/16 12:33:30
5239 dnl ----------------
5240 dnl Determine the type we should use for chtype (and attr_t, which is treated
5241 dnl as the same thing). We want around 32 bits, so on most machines want a
5242 dnl long, but on newer 64-bit machines, probably want an int. If we're using
5243 dnl wide characters, we have to have a type compatible with that, as well.
5244 AC_DEFUN([CF_TYPEOF_CHTYPE],
5246 AC_MSG_CHECKING([for type of chtype])
5247 AC_CACHE_VAL(cf_cv_typeof_chtype,[
5249 #define WANT_BITS 31
5253 FILE *fp = fopen("cf_test.out", "w");
5255 char *result = "long";
5256 if (sizeof(unsigned long) > sizeof(unsigned int)) {
5259 for (n = 0; n < WANT_BITS; n++) {
5262 if (y != 1 || x == 0) {
5268 * If x is nonzero, an int is big enough for the bits
5271 result = (x != 0) ? "int" : "long";
5276 ${cf_cv_main_return:-return}(0);
5279 [cf_cv_typeof_chtype=`cat cf_test.out`],
5280 [cf_cv_typeof_chtype=long],
5281 [cf_cv_typeof_chtype=long])
5284 AC_MSG_RESULT($cf_cv_typeof_chtype)
5286 AC_SUBST(cf_cv_typeof_chtype)
5287 AC_DEFINE_UNQUOTED(TYPEOF_CHTYPE,$cf_cv_typeof_chtype)
5289 dnl ---------------------------------------------------------------------------
5290 dnl CF_TYPE_SIGACTION version: 3 updated: 2000/08/12 23:18:52
5291 dnl -----------------
5293 AC_DEFUN([CF_TYPE_SIGACTION],
5295 AC_MSG_CHECKING([for type sigaction_t])
5296 AC_CACHE_VAL(cf_cv_type_sigaction,[
5298 #include <signal.h>],
5300 [cf_cv_type_sigaction=yes],
5301 [cf_cv_type_sigaction=no])])
5302 AC_MSG_RESULT($cf_cv_type_sigaction)
5303 test "$cf_cv_type_sigaction" = yes && AC_DEFINE(HAVE_TYPE_SIGACTION)
5305 dnl ---------------------------------------------------------------------------
5306 dnl CF_UNSIGNED_LITERALS version: 2 updated: 1998/02/07 22:10:16
5307 dnl --------------------
5308 dnl Test if the compiler supports 'U' and 'L' suffixes. Only old compilers
5309 dnl won't, but they're still there.
5310 AC_DEFUN([CF_UNSIGNED_LITERALS],
5312 AC_MSG_CHECKING([if unsigned literals are legal])
5313 AC_CACHE_VAL(cf_cv_unsigned_literals,[
5314 AC_TRY_COMPILE([],[long x = 1L + 1UL + 1U + 1],
5315 [cf_cv_unsigned_literals=yes],
5316 [cf_cv_unsigned_literals=no])
5318 AC_MSG_RESULT($cf_cv_unsigned_literals)
5320 dnl ---------------------------------------------------------------------------
5321 dnl CF_UPPER version: 5 updated: 2001/01/29 23:40:59
5323 dnl Make an uppercase version of a variable
5324 dnl $1=uppercase($2)
5325 AC_DEFUN([CF_UPPER],
5327 $1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
5329 dnl ---------------------------------------------------------------------------
5330 dnl CF_UTF8_LIB version: 5 updated: 2008/10/17 19:37:52
5332 dnl Check for multibyte support, and if not found, utf8 compatibility library
5333 AC_DEFUN([CF_UTF8_LIB],
5335 AC_CACHE_CHECK(for multibyte character support,cf_cv_utf8_lib,[
5336 cf_save_LIBS="$LIBS"
5338 #include <stdlib.h>],[putwc(0,0);],
5339 [cf_cv_utf8_lib=yes],
5341 #include <libutf8.h>],[putwc(0,0);],utf8,
5342 [cf_cv_utf8_lib=add-on],
5343 [cf_cv_utf8_lib=no])
5346 # HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
5348 if test "$cf_cv_utf8_lib" = "add-on" ; then
5349 AC_DEFINE(HAVE_LIBUTF8_H)
5350 CF_ADD_INCDIR($cf_cv_header_path_utf8)
5351 CF_ADD_LIBDIR($cf_cv_library_path_utf8)
5355 dnl ---------------------------------------------------------------------------
5356 dnl CF_VA_COPY version: 2 updated: 2010/03/04 05:37:29
5358 dnl check for va_copy, part of stdarg.h
5359 dnl Also, workaround for glibc's __va_copy, by checking for both.
5360 AC_DEFUN([CF_VA_COPY],[
5361 AC_CACHE_CHECK(for va_copy, cf_cv_have_va_copy,[
5368 cf_cv_have_va_copy=yes,
5369 cf_cv_have_va_copy=no)])
5371 test "$cf_cv_have_va_copy" = yes && AC_DEFINE(HAVE_VA_COPY)
5373 AC_CACHE_CHECK(for __va_copy, cf_cv_have___va_copy,[
5379 __va_copy(dst, src)],
5380 cf_cv_have___va_copy=yes,
5381 cf_cv_have___va_copy=no)])
5383 test "$cf_cv_have___va_copy" = yes && AC_DEFINE(HAVE___VA_COPY)
5385 dnl ---------------------------------------------------------------------------
5386 dnl CF_VERBOSE version: 3 updated: 2007/07/29 09:55:12
5388 dnl Use AC_VERBOSE w/o the warnings
5389 AC_DEFUN([CF_VERBOSE],
5390 [test -n "$verbose" && echo " $1" 1>&AC_FD_MSG
5393 dnl ---------------------------------------------------------------------------
5394 dnl CF_WCHAR_TYPE version: 2 updated: 2004/01/17 19:18:20
5396 dnl Check if type wide-character type $1 is declared, and if so, which header
5397 dnl file is needed. The second parameter is used to set a shell variable when
5398 dnl the type is not found. The first parameter sets a shell variable for the
5400 AC_DEFUN([CF_WCHAR_TYPE],
5402 # This is needed on Tru64 5.0 to declare $1
5403 AC_CACHE_CHECK(if we must include wchar.h to declare $1,cf_cv_$1,[
5408 #ifdef HAVE_LIBUTF8_H
5409 #include <libutf8.h>
5418 #ifdef HAVE_LIBUTF8_H
5419 #include <libutf8.h>
5423 [cf_cv_$1=unknown])])])
5425 if test "$cf_cv_$1" = yes ; then
5426 AC_DEFINE(NEED_WCHAR_H)
5431 # if we do not find $1 in either place, use substitution to provide a fallback.
5432 if test "$cf_cv_$1" = unknown ; then
5437 # if we find $1 in either place, use substitution to provide a fallback.
5438 if test "$cf_cv_$1" != unknown ; then
5443 dnl ---------------------------------------------------------------------------
5444 dnl CF_WEAK_SYMBOLS version: 1 updated: 2008/08/16 19:18:06
5446 dnl Check for compiler-support for weak symbols.
5447 dnl This works with "recent" gcc.
5448 AC_DEFUN([CF_WEAK_SYMBOLS],[
5449 AC_CACHE_CHECK(if $CC supports weak symbols,cf_cv_weak_symbols,[
5452 #include <stdio.h>],
5454 #if defined(__GNUC__)
5455 # if defined __USE_ISOC99
5456 # define _cat_pragma(exp) _Pragma(#exp)
5457 # define _weak_pragma(exp) _cat_pragma(weak name)
5459 # define _weak_pragma(exp)
5461 # define _declare(name) __extension__ extern __typeof__(name) name
5462 # define weak_symbol(name) _weak_pragma(name) _declare(name) __attribute__((weak))
5466 ],[cf_cv_weak_symbols=yes],[cf_cv_weak_symbols=no])
5469 dnl ---------------------------------------------------------------------------
5470 dnl CF_WITH_ABI_VERSION version: 1 updated: 2003/09/20 18:12:49
5471 dnl -------------------
5472 dnl Allow library's ABI to be overridden. Generally this happens when a
5473 dnl packager has incremented the ABI past that used in the original package,
5474 dnl and wishes to keep doing this.
5476 dnl $1 is the package name, if any, to derive a corresponding {package}_ABI
5478 AC_DEFUN([CF_WITH_ABI_VERSION],[
5479 test -z "$cf_cv_abi_version" && cf_cv_abi_version=0
5480 AC_ARG_WITH(abi-version,
5481 [ --with-abi-version=XXX override derived ABI version],
5482 [AC_MSG_WARN(overriding ABI version $cf_cv_abi_version to $withval)
5483 cf_cv_abi_version=$withval])
5484 CF_NUMBER_SYNTAX($cf_cv_abi_version,ABI version)
5486 $1_ABI=$cf_cv_abi_version
5489 dnl ---------------------------------------------------------------------------
5490 dnl CF_WITH_DBMALLOC version: 6 updated: 2006/12/16 14:24:05
5491 dnl ----------------
5492 dnl Configure-option for dbmalloc. The optional parameter is used to override
5493 dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
5494 AC_DEFUN([CF_WITH_DBMALLOC],[
5495 CF_NO_LEAKS_OPTION(dbmalloc,
5496 [ --with-dbmalloc test: use Conor Cahill's dbmalloc library],
5499 if test "$with_dbmalloc" = yes ; then
5500 AC_CHECK_HEADER(dbmalloc.h,
5501 [AC_CHECK_LIB(dbmalloc,[debug_malloc]ifelse($1,,[],[,$1]))])
5504 dnl ---------------------------------------------------------------------------
5505 dnl CF_WITH_DMALLOC version: 6 updated: 2006/12/16 14:24:05
5507 dnl Configure-option for dmalloc. The optional parameter is used to override
5508 dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
5509 AC_DEFUN([CF_WITH_DMALLOC],[
5510 CF_NO_LEAKS_OPTION(dmalloc,
5511 [ --with-dmalloc test: use Gray Watson's dmalloc library],
5514 if test "$with_dmalloc" = yes ; then
5515 AC_CHECK_HEADER(dmalloc.h,
5516 [AC_CHECK_LIB(dmalloc,[dmalloc_debug]ifelse($1,,[],[,$1]))])
5519 dnl ---------------------------------------------------------------------------
5520 dnl CF_WITH_GPM version: 7 updated: 2008/03/23 14:48:54
5523 dnl The option parameter (if neither yes/no) is assumed to be the name of
5524 dnl the gpm library, e.g., for dynamic loading.
5525 AC_DEFUN([CF_WITH_GPM],
5527 AC_MSG_CHECKING(if you want to link with the GPM mouse library)
5529 [ --with-gpm use Alessandro Rubini's GPM library],
5530 [with_gpm=$withval],
5532 AC_MSG_RESULT($with_gpm)
5534 if test "$with_gpm" != no ; then
5535 AC_CHECK_HEADER(gpm.h,[
5536 AC_DEFINE(HAVE_GPM_H)
5537 if test "$with_gpm" != yes && test "$with_gpm" != maybe ; then
5538 CF_VERBOSE(assuming we really have GPM library)
5539 AC_DEFINE(HAVE_LIBGPM)
5541 AC_CHECK_LIB(gpm,Gpm_Open,[:],[
5542 AC_MSG_ERROR(Cannot link with GPM library)
5547 test "$with_gpm" != maybe && AC_MSG_WARN(Cannot find GPM header)
5552 dnl ---------------------------------------------------------------------------
5553 dnl CF_WITH_LIBTOOL version: 23 updated: 2009/03/28 14:26:27
5555 dnl Provide a configure option to incorporate libtool. Define several useful
5556 dnl symbols for the makefile rules.
5558 dnl The reference to AC_PROG_LIBTOOL does not normally work, since it uses
5559 dnl macros from libtool.m4 which is in the aclocal directory of automake.
5560 dnl Following is a simple script which turns on the AC_PROG_LIBTOOL macro.
5561 dnl But that still does not work properly since the macro is expanded outside
5562 dnl the CF_WITH_LIBTOOL macro:
5565 dnl ACLOCAL=`aclocal --print-ac-dir`
5566 dnl if test -z "$ACLOCAL" ; then
5567 dnl echo cannot find aclocal directory
5569 dnl elif test ! -f $ACLOCAL/libtool.m4 ; then
5570 dnl echo cannot find libtool.m4 file
5574 dnl LOCAL=aclocal.m4
5575 dnl ORIG=aclocal.m4.orig
5577 dnl trap "mv $ORIG $LOCAL" 0 1 2 5 15
5581 dnl # sed the LIBTOOL= assignment to omit the current directory?
5582 dnl sed -e 's/^LIBTOOL=.*/LIBTOOL=${LIBTOOL-libtool}/' $ACLOCAL/libtool.m4 >>$LOCAL
5583 dnl cat $ORIG >>$LOCAL
5587 AC_DEFUN([CF_WITH_LIBTOOL],
5589 ifdef([AC_PROG_LIBTOOL],,[
5592 # common library maintenance symbols that are convenient for libtool scripts:
5593 LIB_CREATE='${AR} -cr'
5594 LIB_OBJECT='${OBJECTS}'
5598 # symbols used to prop libtool up to enable it to determine what it should be
5606 AC_MSG_CHECKING(if you want to build libraries with libtool)
5607 AC_ARG_WITH(libtool,
5608 [ --with-libtool generate libraries with libtool],
5609 [with_libtool=$withval],
5611 AC_MSG_RESULT($with_libtool)
5612 if test "$with_libtool" != "no"; then
5613 ifdef([AC_PROG_LIBTOOL],[
5614 # missing_content_AC_PROG_LIBTOOL{{
5616 # missing_content_AC_PROG_LIBTOOL}}
5618 if test "$with_libtool" != "yes" ; then
5619 CF_PATH_SYNTAX(with_libtool)
5620 LIBTOOL=$with_libtool
5622 AC_PATH_PROG(LIBTOOL,libtool)
5624 if test -z "$LIBTOOL" ; then
5625 AC_MSG_ERROR(Cannot find libtool)
5628 LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${DESTDIR}${libdir} -version-info `cut -f1 ${srcdir}/VERSION` ${LIBTOOL_OPTS} ${LT_UNDEF} -o'
5629 LIB_OBJECT='${OBJECTS:.o=.lo}'
5631 LIB_CLEAN='${LIBTOOL} --mode=clean'
5632 LIB_COMPILE='${LIBTOOL} --mode=compile'
5633 LIB_LINK='${LIBTOOL} --mode=link ${CC} ${LIBTOOL_OPTS}'
5634 LIB_INSTALL='${LIBTOOL} --mode=install'
5635 LIB_UNINSTALL='${LIBTOOL} --mode=uninstall'
5638 # Show the version of libtool
5639 AC_MSG_CHECKING(version of libtool)
5641 # Save the version in a cache variable - this is not entirely a good
5642 # thing, but the version string from libtool is very ugly, and for
5643 # bug reports it might be useful to have the original string. "("
5644 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.]].*//'`
5645 AC_MSG_RESULT($cf_cv_libtool_version)
5646 if test -z "$cf_cv_libtool_version" ; then
5647 AC_MSG_ERROR(This is not GNU libtool)
5650 # special hack to add -no-undefined (which libtool should do for itself)
5652 case "$cf_cv_system_name" in #(vi
5653 cygwin*|mingw32*|uwin*|aix[[456]]) #(vi
5654 LT_UNDEF=-no-undefined
5657 AC_SUBST([LT_UNDEF])
5659 # special hack to add --tag option for C++ compiler
5660 case $cf_cv_libtool_version in #(vi
5661 1.[[5-9]]*|[[2-9]].[[0-9.a-z]]*) #(vi
5662 LIBTOOL_CXX="$LIBTOOL --tag=CXX"
5663 LIBTOOL="$LIBTOOL --tag=CC"
5666 LIBTOOL_CXX="$LIBTOOL"
5674 test -z "$LIBTOOL" && ECHO_LT=
5677 AC_SUBST(LIBTOOL_CXX)
5678 AC_SUBST(LIBTOOL_OPTS)
5680 AC_SUBST(LIB_CREATE)
5681 AC_SUBST(LIB_OBJECT)
5682 AC_SUBST(LIB_SUFFIX)
5686 AC_SUBST(LIB_COMPILE)
5688 AC_SUBST(LIB_INSTALL)
5689 AC_SUBST(LIB_UNINSTALL)
5692 dnl ---------------------------------------------------------------------------
5693 dnl CF_WITH_PATH version: 8 updated: 2007/05/13 13:16:35
5695 dnl Wrapper for AC_ARG_WITH to ensure that user supplies a pathname, not just
5696 dnl defaulting to yes/no.
5698 dnl $1 = option name
5700 dnl $3 = environment variable to set
5701 dnl $4 = default value, shown in the help-message, must be a constant
5702 dnl $5 = default value, if it's an expression & cannot be in the help-message
5704 AC_DEFUN([CF_WITH_PATH],
5705 [AC_ARG_WITH($1,[$2 ](default: ifelse($4,,empty,$4)),,
5706 ifelse($4,,[withval="${$3}"],[withval="${$3-ifelse($5,,$4,$5)}"]))dnl
5707 if ifelse($5,,true,[test -n "$5"]) ; then
5708 CF_PATH_SYNTAX(withval)
5713 dnl ---------------------------------------------------------------------------
5714 dnl CF_WITH_PATHLIST version: 6 updated: 2009/01/11 20:30:23
5715 dnl ----------------
5716 dnl Process an option specifying a list of colon-separated paths.
5718 dnl $1 = option name
5720 dnl $3 = environment variable to set
5721 dnl $4 = default value, shown in the help-message, must be a constant
5722 dnl $5 = default value, if it's an expression & cannot be in the help-message
5723 dnl $6 = flag to tell if we want to define or substitute
5725 AC_DEFUN([CF_WITH_PATHLIST],[
5726 AC_REQUIRE([CF_PATHSEP])
5727 AC_ARG_WITH($1,[$2 ](default: ifelse($4,,empty,$4)),,
5728 ifelse($4,,[withval=${$3}],[withval=${$3-ifelse($5,,$4,$5)}]))dnl
5730 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${PATH_SEPARATOR}"
5732 for cf_src_path in $withval
5734 CF_PATH_SYNTAX(cf_src_path)
5735 test -n "$cf_dst_path" && cf_dst_path="${cf_dst_path}:"
5736 cf_dst_path="${cf_dst_path}${cf_src_path}"
5741 # Strip single quotes from the value, e.g., when it was supplied as a literal
5743 case $cf_dst_path in #(vi
5745 cf_dst_path=`echo $cf_dst_path |sed -e s/\'// -e s/\'\$//`
5748 cf_dst_path=`echo "$cf_dst_path" | sed -e 's/\\\\/\\\\\\\\/g'`
5751 eval '$3="$cf_dst_path"'
5755 dnl ---------------------------------------------------------------------------
5756 dnl CF_WITH_PTHREAD version: 2 updated: 2008/08/23 18:26:05
5758 dnl Check for POSIX thread library.
5759 AC_DEFUN([CF_WITH_PTHREAD],
5761 AC_MSG_CHECKING(if you want to link with the pthread library)
5762 AC_ARG_WITH(pthread,
5763 [ --with-pthread use POSIX thread library],
5764 [with_pthread=$withval],
5766 AC_MSG_RESULT($with_pthread)
5768 if test "$with_pthread" != no ; then
5769 AC_CHECK_HEADER(pthread.h,[
5770 AC_DEFINE(HAVE_PTHREADS_H)
5772 AC_MSG_CHECKING(if we can link with the pthread library)
5773 cf_save_LIBS="$LIBS"
5774 LIBS="-lpthread $LIBS"
5776 #include <pthread.h>
5778 int rc = pthread_create(0,0,0,0);
5779 ],[with_pthread=yes],[with_pthread=no])
5780 LIBS="$cf_save_LIBS"
5781 AC_MSG_RESULT($with_pthread)
5783 if test "$with_pthread" = yes ; then
5784 LIBS="-lpthread $LIBS"
5785 AC_DEFINE(HAVE_LIBPTHREADS)
5787 AC_MSG_ERROR(Cannot link with pthread library)
5792 dnl ---------------------------------------------------------------------------
5793 dnl CF_WITH_REL_VERSION version: 1 updated: 2003/09/20 18:12:49
5794 dnl -------------------
5795 dnl Allow library's release-version to be overridden. Generally this happens when a
5796 dnl packager has incremented the release-version past that used in the original package,
5797 dnl and wishes to keep doing this.
5799 dnl $1 is the package name, if any, to derive corresponding {package}_MAJOR
5800 dnl and {package}_MINOR symbols
5802 AC_DEFUN([CF_WITH_REL_VERSION],[
5803 test -z "$cf_cv_rel_version" && cf_cv_rel_version=0.0
5804 AC_ARG_WITH(rel-version,
5805 [ --with-rel-version=XXX override derived release version],
5806 [AC_MSG_WARN(overriding release version $cf_cv_rel_version to $withval)
5807 cf_cv_rel_version=$withval])
5809 CF_NUMBER_SYNTAX($cf_cv_rel_version,Release version)
5811 $1_MAJOR=`echo "$cf_cv_rel_version" | sed -e 's/\..*//'`
5812 $1_MINOR=`echo "$cf_cv_rel_version" | sed -e 's/^[[^.]]*//' -e 's/^\.//' -e 's/\..*//'`
5813 CF_NUMBER_SYNTAX([$]$1_MAJOR,Release major-version)
5814 CF_NUMBER_SYNTAX([$]$1_MINOR,Release minor-version)
5817 dnl ---------------------------------------------------------------------------
5818 dnl CF_WITH_SYSMOUSE version: 2 updated: 2003/03/22 19:13:43
5819 dnl ----------------
5820 dnl If we can compile with sysmouse, make it available unless it is not wanted.
5821 AC_DEFUN([CF_WITH_SYSMOUSE],[
5822 # not everyone has "test -c"
5823 if test -c /dev/sysmouse 2>/dev/null ; then
5824 AC_MSG_CHECKING(if you want to use sysmouse)
5825 AC_ARG_WITH(sysmouse,
5826 [ --with-sysmouse use sysmouse (FreeBSD console)],
5827 [cf_with_sysmouse=$withval],
5828 [cf_with_sysmouse=maybe])
5829 if test "$cf_with_sysmouse" != no ; then
5831 #include <osreldate.h>
5832 #if (__FreeBSD_version >= 400017)
5833 #include <sys/consio.h>
5834 #include <sys/fbio.h>
5836 #include <machine/console.h>
5839 struct mouse_info the_mouse;
5840 ioctl(0, CONS_MOUSECTL, &the_mouse);
5841 ],[cf_with_sysmouse=yes],[cf_with_sysmouse=no])
5843 AC_MSG_RESULT($cf_with_sysmouse)
5844 test "$cf_with_sysmouse" = yes && AC_DEFINE(USE_SYSMOUSE)
5847 dnl ---------------------------------------------------------------------------
5848 dnl CF_WITH_VALGRIND version: 1 updated: 2006/12/14 18:00:21
5849 dnl ----------------
5850 AC_DEFUN([CF_WITH_VALGRIND],[
5851 CF_NO_LEAKS_OPTION(valgrind,
5852 [ --with-valgrind test: use valgrind],
5855 dnl ---------------------------------------------------------------------------
5856 dnl CF_XOPEN_SOURCE version: 33 updated: 2010/03/28 15:35:52
5858 dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
5859 dnl or adapt to the vendor's definitions to get equivalent functionality,
5860 dnl without losing the common non-POSIX features.
5863 dnl $1 is the nominal value for _XOPEN_SOURCE
5864 dnl $2 is the nominal value for _POSIX_C_SOURCE
5865 AC_DEFUN([CF_XOPEN_SOURCE],[
5867 cf_XOPEN_SOURCE=ifelse($1,,500,$1)
5868 cf_POSIX_C_SOURCE=ifelse($2,,199506L,$2)
5871 case $host_os in #(vi
5873 cf_xopen_source="-D_ALL_SOURCE"
5875 darwin[[0-8]].*) #(vi
5876 cf_xopen_source="-D_APPLE_C_SOURCE"
5879 cf_xopen_source="-D_DARWIN_C_SOURCE"
5881 freebsd*|dragonfly*) #(vi
5882 # 5.x headers associate
5883 # _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L
5884 # _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L
5885 cf_POSIX_C_SOURCE=200112L
5887 cf_xopen_source="-D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
5890 cf_xopen_source="-D_HPUX_SOURCE -D_XOPEN_SOURCE=500"
5893 cf_xopen_source="-D_HPUX_SOURCE"
5896 cf_xopen_source="-D_SGI_SOURCE"
5898 linux*|gnu*|mint*|k*bsd*-gnu) #(vi
5902 # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <arpa/inet.h>
5905 # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
5908 # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
5911 cf_xopen_source="-D_OSF_SOURCE"
5914 cf_xopen_source="-D_QNX_SOURCE"
5917 # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
5919 solaris2.1[[0-9]]) #(vi
5920 cf_xopen_source="-D__EXTENSIONS__ -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
5922 solaris2.[[1-9]]) #(vi
5923 cf_xopen_source="-D__EXTENSIONS__"
5926 AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[
5927 AC_TRY_COMPILE([#include <sys/types.h>],[
5928 #ifndef _XOPEN_SOURCE
5931 [cf_cv_xopen_source=no],
5932 [cf_save="$CPPFLAGS"
5933 CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
5934 AC_TRY_COMPILE([#include <sys/types.h>],[
5935 #ifdef _XOPEN_SOURCE
5938 [cf_cv_xopen_source=no],
5939 [cf_cv_xopen_source=$cf_XOPEN_SOURCE])
5943 if test "$cf_cv_xopen_source" != no ; then
5944 CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE)
5945 CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE)
5946 cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
5947 CF_ADD_CFLAGS($cf_temp_xopen_source)
5949 CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
5953 if test -n "$cf_xopen_source" ; then
5954 CF_ADD_CFLAGS($cf_xopen_source)