1 dnl***************************************************************************
2 dnl Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
4 dnl Permission is hereby granted, free of charge, to any person obtaining a *
5 dnl copy of this software and associated documentation files (the *
6 dnl "Software"), to deal in the Software without restriction, including *
7 dnl without limitation the rights to use, copy, modify, merge, publish, *
8 dnl distribute, distribute with modifications, sublicense, and/or sell *
9 dnl copies of the Software, and to permit persons to whom the Software is *
10 dnl furnished to do so, subject to the following conditions: *
12 dnl The above copyright notice and this permission notice shall be included *
13 dnl in all copies or substantial portions of the Software. *
15 dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
16 dnl OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
17 dnl MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
18 dnl IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
19 dnl DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
20 dnl OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
21 dnl THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
23 dnl Except as contained in this notice, the name(s) of the above copyright *
24 dnl holders shall not be used in advertising or otherwise to promote the *
25 dnl sale, use or other dealings in this Software without prior written *
27 dnl***************************************************************************
29 dnl Author: Thomas E. Dickey 1995-on
31 dnl $Id: aclocal.m4,v 1.477 2008/12/27 17:35:01 tom Exp $
32 dnl Macros used in NCURSES auto-configuration script.
34 dnl These macros are maintained separately from NCURSES. The copyright on
35 dnl this file applies to the aggregation of macros and does not affect use of
36 dnl these macros in other applications.
38 dnl See http://invisible-island.net/autoconf/ for additional information.
40 dnl ---------------------------------------------------------------------------
41 dnl ---------------------------------------------------------------------------
42 dnl AM_LANGINFO_CODESET version: 3 updated: 2002/10/27 23:21:42
43 dnl -------------------
44 dnl Inserted as requested by gettext 0.10.40
45 dnl File from /usr/share/aclocal
47 dnl ====================
50 dnl From Bruno Haible.
51 AC_DEFUN([AM_LANGINFO_CODESET],
53 AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset,
54 [AC_TRY_LINK([#include <langinfo.h>],
55 [char* cs = nl_langinfo(CODESET);],
56 am_cv_langinfo_codeset=yes,
57 am_cv_langinfo_codeset=no)
59 if test $am_cv_langinfo_codeset = yes; then
60 AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
61 [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
64 dnl ---------------------------------------------------------------------------
65 dnl CF_ADA_INCLUDE_DIRS version: 5 updated: 2006/10/14 15:23:15
66 dnl -------------------
67 dnl Construct the list of include-options for the C programs in the Ada95
69 AC_DEFUN([CF_ADA_INCLUDE_DIRS],
71 ACPPFLAGS="-I. -I../../include $ACPPFLAGS"
72 if test "$srcdir" != "."; then
73 ACPPFLAGS="-I\${srcdir}/../../include $ACPPFLAGS"
75 if test "$GCC" != yes; then
76 ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
77 elif test "$includedir" != "/usr/include"; then
78 if test "$includedir" = '${prefix}/include' ; then
79 if test $prefix != /usr ; then
80 ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
83 ACPPFLAGS="$ACPPFLAGS -I\${includedir}"
88 dnl ---------------------------------------------------------------------------
89 dnl CF_ADD_CFLAGS version: 7 updated: 2004/04/25 17:48:30
91 dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS
92 dnl The second parameter if given makes this macro verbose.
94 dnl Put any preprocessor definitions that use quoted strings in $EXTRA_CPPFLAGS,
95 dnl to simplify use of $CPPFLAGS in compiler checks, etc., that are easily
96 dnl confused by the quotes (which require backslashes to keep them usable).
97 AC_DEFUN([CF_ADD_CFLAGS],
102 cf_new_extra_cppflags=
104 for cf_add_cflags in $1
106 case $cf_fix_cppflags in
108 case $cf_add_cflags in #(vi
109 -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
110 case $cf_add_cflags in
112 cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[[^=]]*='\''\"[[^"]]*//'`
114 test "${cf_add_cflags}" != "${cf_tst_cflags}" \
115 && test -z "${cf_tst_cflags}" \
116 && cf_fix_cppflags=yes
118 if test $cf_fix_cppflags = yes ; then
119 cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
121 elif test "${cf_tst_cflags}" = "\"'" ; then
122 cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
128 *$cf_add_cflags) #(vi
131 cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
136 cf_new_cflags="$cf_new_cflags $cf_add_cflags"
141 cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
143 cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[[^"]]*"'\''//'`
145 test "${cf_add_cflags}" != "${cf_tst_cflags}" \
146 && test -z "${cf_tst_cflags}" \
147 && cf_fix_cppflags=no
152 if test -n "$cf_new_cflags" ; then
153 ifelse($2,,,[CF_VERBOSE(add to \$CFLAGS $cf_new_cflags)])
154 CFLAGS="$CFLAGS $cf_new_cflags"
157 if test -n "$cf_new_cppflags" ; then
158 ifelse($2,,,[CF_VERBOSE(add to \$CPPFLAGS $cf_new_cppflags)])
159 CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
162 if test -n "$cf_new_extra_cppflags" ; then
163 ifelse($2,,,[CF_VERBOSE(add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags)])
164 EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
167 AC_SUBST(EXTRA_CPPFLAGS)
170 dnl ---------------------------------------------------------------------------
171 dnl CF_ADD_INCDIR version: 10 updated: 2008/12/27 12:30:03
173 dnl Add an include-directory to $CPPFLAGS. Don't add /usr/include, since it's
174 dnl redundant. We don't normally need to add -I/usr/local/include for gcc,
175 dnl but old versions (and some misinstalled ones) need that. To make things
176 dnl worse, gcc 3.x may give error messages if -I/usr/local/include is added to
177 dnl the include-path).
178 AC_DEFUN([CF_ADD_INCDIR],
180 if test -n "$1" ; then
181 for cf_add_incdir in $1
183 while test $cf_add_incdir != /usr/include
185 if test -d $cf_add_incdir
188 if test -n "$CFLAGS$CPPFLAGS" ; then
189 # a loop is needed to ensure we can add subdirs of existing dirs
190 for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
191 if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
192 cf_have_incdir=yes; break
197 if test "$cf_have_incdir" = no ; then
198 if test "$cf_add_incdir" = /usr/local/include ; then
201 cf_save_CPPFLAGS=$CPPFLAGS
202 CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
203 AC_TRY_COMPILE([#include <stdio.h>],
206 [cf_have_incdir=yes])
207 CPPFLAGS=$cf_save_CPPFLAGS
212 if test "$cf_have_incdir" = no ; then
213 CF_VERBOSE(adding $cf_add_incdir to include-path)
214 ifelse($2,,CPPFLAGS,$2)="-I$cf_add_incdir $ifelse($2,,CPPFLAGS,[$]$2)"
216 cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
217 test "$cf_top_incdir" = "$cf_add_incdir" && break
218 cf_add_incdir="$cf_top_incdir"
227 dnl ---------------------------------------------------------------------------
228 dnl CF_ADD_LIBDIR version: 6 updated: 2008/02/09 13:15:34
230 dnl Adds to the library-path
232 dnl Some machines have trouble with multiple -L options.
234 dnl $1 is the (list of) directory(s) to add
235 dnl $2 is the optional name of the variable to update (default LDFLAGS)
237 AC_DEFUN([CF_ADD_LIBDIR],
239 if test -n "$1" ; then
240 for cf_add_libdir in $1
242 if test $cf_add_libdir = /usr/lib ; then
244 elif test -d $cf_add_libdir
247 if test -n "$LDFLAGS$LIBS" ; then
248 # a loop is needed to ensure we can add subdirs of existing dirs
249 for cf_test_libdir in $LDFLAGS $LIBS ; do
250 if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
251 cf_have_libdir=yes; break
255 if test "$cf_have_libdir" = no ; then
256 CF_VERBOSE(adding $cf_add_libdir to library-path)
257 ifelse($2,,LDFLAGS,$2)="-L$cf_add_libdir $ifelse($2,,LDFLAGS,[$]$2)"
263 dnl ---------------------------------------------------------------------------
264 dnl CF_ADD_SUBDIR_PATH version: 2 updated: 2007/07/29 10:12:59
265 dnl ------------------
266 dnl Append to a search-list for a nonstandard header/lib-file
267 dnl $1 = the variable to return as result
268 dnl $2 = the package name
269 dnl $3 = the subdirectory, e.g., bin, include or lib
270 dnl $4 = the directory under which we will test for subdirectories
271 dnl $5 = a directory that we do not want $4 to match
272 AC_DEFUN([CF_ADD_SUBDIR_PATH],
274 test "$4" != "$5" && \
276 ifelse([$5],NONE,,[(test $5 = NONE || test -d $5) &&]) {
277 test -n "$verbose" && echo " ... testing for $3-directories under $4"
278 test -d $4/$3 && $1="[$]$1 $4/$3"
279 test -d $4/$3/$2 && $1="[$]$1 $4/$3/$2"
280 test -d $4/$3/$2/$3 && $1="[$]$1 $4/$3/$2/$3"
281 test -d $4/$2/$3 && $1="[$]$1 $4/$2/$3"
282 test -d $4/$2/$3/$2 && $1="[$]$1 $4/$2/$3/$2"
285 dnl ---------------------------------------------------------------------------
286 dnl CF_ANSI_CC_CHECK version: 9 updated: 2001/12/30 17:53:34
288 dnl This is adapted from the macros 'fp_PROG_CC_STDC' and 'fp_C_PROTOTYPES'
289 dnl in the sharutils 4.2 distribution.
290 AC_DEFUN([CF_ANSI_CC_CHECK],
292 AC_CACHE_CHECK(for ${CC-cc} option to accept ANSI C, cf_cv_ansi_cc,[
294 cf_save_CFLAGS="$CFLAGS"
295 cf_save_CPPFLAGS="$CPPFLAGS"
296 # Don't try gcc -ansi; that turns off useful extensions and
297 # breaks some systems' header files.
299 # Ultrix and OSF/1 -std1
300 # HP-UX -Aa -D_HPUX_SOURCE
302 # UnixWare 1.2 (cannot use -Xc, since ANSI/POSIX clashes)
303 for cf_arg in "-DCC_HAS_PROTOS" \
308 "-Aa -D_HPUX_SOURCE" \
311 CF_ADD_CFLAGS($cf_arg)
314 #ifndef CC_HAS_PROTOS
315 #if !defined(__STDC__) || (__STDC__ != 1)
320 int test (int i, double x);
321 struct s1 {int (*f) (int a);};
322 struct s2 {int (*f) (double a);};],
323 [cf_cv_ansi_cc="$cf_arg"; break])
325 CFLAGS="$cf_save_CFLAGS"
326 CPPFLAGS="$cf_save_CPPFLAGS"
329 if test "$cf_cv_ansi_cc" != "no"; then
330 if test ".$cf_cv_ansi_cc" != ".-DCC_HAS_PROTOS"; then
331 CF_ADD_CFLAGS($cf_cv_ansi_cc)
333 AC_DEFINE(CC_HAS_PROTOS)
337 dnl ---------------------------------------------------------------------------
338 dnl CF_ANSI_CC_REQD version: 4 updated: 2008/03/23 14:48:54
340 dnl For programs that must use an ANSI compiler, obtain compiler options that
341 dnl will make it recognize prototypes. We'll do preprocessor checks in other
342 dnl macros, since tools such as unproto can fake prototypes, but only part of
343 dnl the preprocessor.
344 AC_DEFUN([CF_ANSI_CC_REQD],
345 [AC_REQUIRE([CF_ANSI_CC_CHECK])
346 if test "$cf_cv_ansi_cc" = "no"; then
348 [Your compiler does not appear to recognize prototypes.
349 You have the following choices:
350 a. adjust your compiler options
351 b. get an up-to-date compiler
352 c. use a wrapper such as unproto])
355 dnl ---------------------------------------------------------------------------
356 dnl CF_AWK_BIG_PRINTF version: 3 updated: 2008/12/27 12:30:03
357 dnl -----------------
358 dnl Check if awk can handle big strings using printf. Some older versions of
359 dnl awk choke on large strings passed via "%s".
361 dnl $1 = desired string size
362 dnl $2 = variable to set with result
363 AC_DEFUN([CF_AWK_BIG_PRINTF],
370 if ( ${AWK} 'BEGIN { xx = "x"; while (length(xx) < $1) { xx = xx "x"; }; printf("%s\n", xx); }' \
371 | $AWK '{ printf "%d\n", length([$]0); }' | $AWK 'BEGIN { eqls=0; recs=0; } { recs++; if ([$]0 == 12000) eqls++; } END { if (recs != 1 || eqls != 1) exit 1; }' 2>/dev/null >/dev/null ) ; then
379 dnl ---------------------------------------------------------------------------
380 dnl CF_BOOL_DECL version: 8 updated: 2004/01/30 15:51:18
382 dnl Test if 'bool' is a builtin type in the configured C++ compiler. Some
383 dnl older compilers (e.g., gcc 2.5.8) don't support 'bool' directly; gcc
384 dnl 2.6.3 does, in anticipation of the ANSI C++ standard.
386 dnl Treat the configuration-variable specially here, since we're directly
387 dnl substituting its value (i.e., 1/0).
389 dnl $1 is the shell variable to store the result in, if not $cv_cv_builtin_bool
390 AC_DEFUN([CF_BOOL_DECL],
392 AC_MSG_CHECKING(if we should include stdbool.h)
394 AC_CACHE_VAL(cf_cv_header_stdbool_h,[
395 AC_TRY_COMPILE([],[bool foo = false],
396 [cf_cv_header_stdbool_h=0],
401 ],[bool foo = false],
402 [cf_cv_header_stdbool_h=1],
403 [cf_cv_header_stdbool_h=0])])])
405 if test "$cf_cv_header_stdbool_h" = 1
406 then AC_MSG_RESULT(yes)
407 else AC_MSG_RESULT(no)
410 AC_MSG_CHECKING([for builtin bool type])
412 AC_CACHE_VAL(ifelse($1,,cf_cv_builtin_bool,[$1]),[
415 #include <sys/types.h>
417 [ifelse($1,,cf_cv_builtin_bool,[$1])=1],
418 [ifelse($1,,cf_cv_builtin_bool,[$1])=0])
421 if test "$ifelse($1,,cf_cv_builtin_bool,[$1])" = 1
422 then AC_MSG_RESULT(yes)
423 else AC_MSG_RESULT(no)
426 dnl ---------------------------------------------------------------------------
427 dnl CF_BOOL_SIZE version: 12 updated: 2006/12/16 12:33:30
429 dnl Test for the size of 'bool' in the configured C++ compiler (e.g., a type).
430 dnl Don't bother looking for bool.h, since it's been deprecated.
432 dnl If the current compiler is C rather than C++, we get the bool definition
433 dnl from <stdbool.h>.
434 AC_DEFUN([CF_BOOL_SIZE],
436 AC_MSG_CHECKING([for size of bool])
437 AC_CACHE_VAL(cf_cv_type_of_bool,[
443 #if defined(__cplusplus)
445 #ifdef HAVE_GXX_BUILTIN_H
446 #include <g++/builtin.h>
447 #elif HAVE_GPP_BUILTIN_H
448 #include <gpp/builtin.h>
455 #if $cf_cv_header_stdbool_h
463 FILE *fp = fopen("cf_test.out", "w");
467 fputs("unsigned ", fp);
468 if (sizeof(x) == sizeof(int)) fputs("int", fp);
469 else if (sizeof(x) == sizeof(char)) fputs("char", fp);
470 else if (sizeof(x) == sizeof(short))fputs("short",fp);
471 else if (sizeof(x) == sizeof(long)) fputs("long", fp);
474 ${cf_cv_main_return:-return}(0);
477 [cf_cv_type_of_bool=`cat cf_test.out`
478 if test -z "$cf_cv_type_of_bool"; then
479 cf_cv_type_of_bool=unknown
481 [cf_cv_type_of_bool=unknown],
482 [cf_cv_type_of_bool=unknown])
485 AC_MSG_RESULT($cf_cv_type_of_bool)
486 if test "$cf_cv_type_of_bool" = unknown ; then
487 case .$NCURSES_BOOL in #(vi
488 .auto|.) NCURSES_BOOL=unsigned;;
490 AC_MSG_WARN(Assuming $NCURSES_BOOL for type of bool)
491 cf_cv_type_of_bool=$NCURSES_BOOL
494 dnl ---------------------------------------------------------------------------
495 dnl CF_BUILD_CC version: 6 updated: 2006/10/14 15:23:15
497 dnl If we're cross-compiling, allow the user to override the tools and their
498 dnl options. The configure script is oriented toward identifying the host
499 dnl compiler, etc., but we need a build compiler to generate parts of the
502 dnl $1 = default for $CPPFLAGS
503 dnl $2 = default for $LIBS
504 AC_DEFUN([CF_BUILD_CC],[
505 AC_REQUIRE([CF_PROG_EXT])
506 if test "$cross_compiling" = yes ; then
508 # defaults that we might want to override
509 : ${BUILD_CFLAGS:=''}
510 : ${BUILD_CPPFLAGS:='ifelse([$1],,,[$1])'}
511 : ${BUILD_LDFLAGS:=''}
512 : ${BUILD_LIBS:='ifelse([$2],,,[$2])'}
513 : ${BUILD_EXEEXT:='$x'}
514 : ${BUILD_OBJEXT:='o'}
516 AC_ARG_WITH(build-cc,
517 [ --with-build-cc=XXX the build C compiler ($BUILD_CC)],
518 [BUILD_CC="$withval"],
519 [AC_CHECK_PROGS(BUILD_CC, gcc cc cl)])
520 AC_MSG_CHECKING(for native build C compiler)
521 AC_MSG_RESULT($BUILD_CC)
523 AC_MSG_CHECKING(for native build C preprocessor)
524 AC_ARG_WITH(build-cpp,
525 [ --with-build-cpp=XXX the build C preprocessor ($BUILD_CPP)],
526 [BUILD_CPP="$withval"],
527 [BUILD_CPP='${BUILD_CC} -E'])
528 AC_MSG_RESULT($BUILD_CPP)
530 AC_MSG_CHECKING(for native build C flags)
531 AC_ARG_WITH(build-cflags,
532 [ --with-build-cflags=XXX the build C compiler-flags ($BUILD_CFLAGS)],
533 [BUILD_CFLAGS="$withval"])
534 AC_MSG_RESULT($BUILD_CFLAGS)
536 AC_MSG_CHECKING(for native build C preprocessor-flags)
537 AC_ARG_WITH(build-cppflags,
538 [ --with-build-cppflags=XXX the build C preprocessor-flags ($BUILD_CPPFLAGS)],
539 [BUILD_CPPFLAGS="$withval"])
540 AC_MSG_RESULT($BUILD_CPPFLAGS)
542 AC_MSG_CHECKING(for native build linker-flags)
543 AC_ARG_WITH(build-ldflags,
544 [ --with-build-ldflags=XXX the build linker-flags ($BUILD_LDFLAGS)],
545 [BUILD_LDFLAGS="$withval"])
546 AC_MSG_RESULT($BUILD_LDFLAGS)
548 AC_MSG_CHECKING(for native build linker-libraries)
549 AC_ARG_WITH(build-libs,
550 [ --with-build-libs=XXX the build libraries (${BUILD_LIBS})],
551 [BUILD_LIBS="$withval"])
552 AC_MSG_RESULT($BUILD_LIBS)
554 # this assumes we're on Unix.
558 : ${BUILD_CC:='${CC}'}
560 if ( test "$BUILD_CC" = "$CC" || test "$BUILD_CC" = '${CC}' ) ; then
561 AC_MSG_ERROR([Cross-build requires two compilers.
562 Use --with-build-cc to specify the native compiler.])
566 : ${BUILD_CC:='${CC}'}
567 : ${BUILD_CPP:='${CPP}'}
568 : ${BUILD_CFLAGS:='${CFLAGS}'}
569 : ${BUILD_CPPFLAGS:='${CPPFLAGS}'}
570 : ${BUILD_LDFLAGS:='${LDFLAGS}'}
571 : ${BUILD_LIBS:='${LIBS}'}
572 : ${BUILD_EXEEXT:='$x'}
573 : ${BUILD_OBJEXT:='o'}
578 AC_SUBST(BUILD_CFLAGS)
579 AC_SUBST(BUILD_CPPFLAGS)
580 AC_SUBST(BUILD_LDFLAGS)
582 AC_SUBST(BUILD_EXEEXT)
583 AC_SUBST(BUILD_OBJEXT)
585 dnl ---------------------------------------------------------------------------
586 dnl CF_CFG_DEFAULTS version: 7 updated: 2005/09/24 16:15:00
588 dnl Determine the default configuration into which we'll install ncurses. This
589 dnl can be overridden by the user's command-line options. There's two items to
591 dnl 1. the prefix (e.g., /usr)
592 dnl 2. the header files (e.g., /usr/include/ncurses)
593 dnl We'll look for a previous installation of ncurses and use the same defaults.
595 dnl We don't use AC_PREFIX_DEFAULT, because it gets evaluated too soon, and
596 dnl we don't use AC_PREFIX_PROGRAM, because we cannot distinguish ncurses's
597 dnl programs from a vendor's.
598 AC_DEFUN([CF_CFG_DEFAULTS],
600 AC_MSG_CHECKING(for prefix)
601 if test "x$prefix" = "xNONE" ; then
602 case "$cf_cv_system_name" in
603 # non-vendor systems don't have a conflict
604 openbsd*|freebsd*|linux*|cygwin*|k*bsd*-gnu)
607 *) prefix=$ac_default_prefix
611 AC_MSG_RESULT($prefix)
613 if test "x$prefix" = "xNONE" ; then
614 AC_MSG_CHECKING(for default include-directory)
615 test -n "$verbose" && echo 1>&AC_FD_MSG
618 $includedir/ncurses \
620 $prefix/include/ncurses \
622 /usr/local/include/ncurses \
626 cf_dir=`eval echo $cf_symbol`
627 if test -f $cf_dir/curses.h ; then
628 if ( fgrep NCURSES_VERSION $cf_dir/curses.h 2>&1 >/dev/null ) ; then
629 includedir="$cf_symbol"
630 test -n "$verbose" && echo $ac_n " found " 1>&AC_FD_MSG
634 test -n "$verbose" && echo " tested $cf_dir" 1>&AC_FD_MSG
636 AC_MSG_RESULT($includedir)
639 dnl ---------------------------------------------------------------------------
640 dnl CF_CGETENT version: 3 updated: 2000/08/12 23:18:52
642 dnl Check if the terminal-capability database functions are available. If not,
643 dnl ncurses has a much-reduced version.
644 AC_DEFUN([CF_CGETENT],[
645 AC_MSG_CHECKING(for terminal-capability database functions)
646 AC_CACHE_VAL(cf_cv_cgetent,[
648 #include <stdlib.h>],[
651 char *db_array = temp;
652 cgetent(&buf, /* int *, */ &db_array, "vt100");
653 cgetcap(buf, "tc", '=');
654 cgetmatch(buf, "tc");
659 AC_MSG_RESULT($cf_cv_cgetent)
660 test "$cf_cv_cgetent" = yes && AC_DEFINE(HAVE_BSD_CGETENT)
662 dnl ---------------------------------------------------------------------------
663 dnl CF_CHECK_CACHE version: 11 updated: 2008/03/23 14:45:59
665 dnl Check if we're accidentally using a cache from a different machine.
666 dnl Derive the system name, as a check for reusing the autoconf cache.
668 dnl If we've packaged config.guess and config.sub, run that (since it does a
669 dnl better job than uname). Normally we'll use AC_CANONICAL_HOST, but allow
670 dnl an extra parameter that we may override, e.g., for AC_CANONICAL_SYSTEM
671 dnl which is useful in cross-compiles.
673 dnl Note: we would use $ac_config_sub, but that is one of the places where
674 dnl autoconf 2.5x broke compatibility with autoconf 2.13
675 AC_DEFUN([CF_CHECK_CACHE],
677 if test -f $srcdir/config.guess || test -f $ac_aux_dir/config.guess ; then
678 ifelse([$1],,[AC_CANONICAL_HOST],[$1])
679 system_name="$host_os"
681 system_name="`(uname -s -r) 2>/dev/null`"
682 if test -z "$system_name" ; then
683 system_name="`(hostname) 2>/dev/null`"
686 test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name")
687 AC_CACHE_VAL(cf_cv_system_name,[cf_cv_system_name="$system_name"])
689 test -z "$system_name" && system_name="$cf_cv_system_name"
690 test -n "$cf_cv_system_name" && AC_MSG_RESULT(Configuring for $cf_cv_system_name)
692 if test ".$system_name" != ".$cf_cv_system_name" ; then
693 AC_MSG_RESULT(Cached system name ($system_name) does not agree with actual ($cf_cv_system_name))
694 AC_MSG_ERROR("Please remove config.cache and try again.")
697 dnl ---------------------------------------------------------------------------
698 dnl CF_CHECK_ERRNO version: 10 updated: 2008/08/22 16:33:22
700 dnl Check for data that is usually declared in <stdio.h> or <errno.h>, e.g.,
701 dnl the 'errno' variable. Define a DECL_xxx symbol if we must declare it
704 dnl $1 = the name to check
705 dnl $2 = the assumed type
706 AC_DEFUN([CF_CHECK_ERRNO],
708 AC_CACHE_CHECK(if external $1 is declared, cf_cv_dcl_$1,[
714 #include <sys/types.h>
715 #include <errno.h> ],
716 ifelse($2,,int,$2) x = (ifelse($2,,int,$2)) $1,
721 if test "$cf_cv_dcl_$1" = no ; then
722 CF_UPPER(cf_result,decl_$1)
723 AC_DEFINE_UNQUOTED($cf_result)
726 # It's possible (for near-UNIX clones) that the data doesn't exist
727 CF_CHECK_EXTERN_DATA($1,ifelse($2,,int,$2))
729 dnl ---------------------------------------------------------------------------
730 dnl CF_CHECK_EXTERN_DATA version: 3 updated: 2001/12/30 18:03:23
731 dnl --------------------
732 dnl Check for existence of external data in the current set of libraries. If
733 dnl we can modify it, it's real enough.
734 dnl $1 = the name to check
736 AC_DEFUN([CF_CHECK_EXTERN_DATA],
738 AC_CACHE_CHECK(if external $1 exists, cf_cv_have_$1,[
748 if test "$cf_cv_have_$1" = yes ; then
749 CF_UPPER(cf_result,have_$1)
750 AC_DEFINE_UNQUOTED($cf_result)
754 dnl ---------------------------------------------------------------------------
755 dnl CF_CHECK_GPM_WGETCH version: 1 updated: 2007/04/28 14:38:06
756 dnl -------------------
757 dnl Check if GPM is already linked with curses. If so - and if the linkage
758 dnl is not "weak" - warn about this because it can create problems linking
759 dnl applications with ncurses.
760 AC_DEFUN([CF_CHECK_GPM_WGETCH],[
761 AC_CHECK_LIB(gpm,Gpm_Wgetch,[
763 AC_CACHE_CHECK(if GPM is weakly bound to curses library, cf_cv_check_gpm_wgetch,[
764 cf_cv_check_gpm_wgetch=unknown
765 if test "$cross_compiling" != yes ; then
767 cat >conftest.$ac_ext <<CF_EOF
772 ${cf_cv_main_return:-return}(0);
777 # This only works if we can look at the symbol table. If a shared
778 # library is stripped for install, we cannot use that. So we're forced
779 # to rely on the static library, noting that some packagers may not
781 LIBS="-static -lgpm -dynamic $LIBS"
782 if AC_TRY_EVAL(ac_compile) ; then
783 if AC_TRY_EVAL(ac_link) ; then
784 cf_cv_check_gpm_wgetch=`nm conftest$ac_exeext | egrep '\<wgetch\>' | egrep '\<[[vVwW]]\>'`
785 test -n "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=yes
786 test -z "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=no
794 if test "$cf_cv_check_gpm_wgetch" != yes ; then
795 AC_MSG_WARN(GPM library is already linked with curses - read the FAQ)
798 dnl ---------------------------------------------------------------------------
799 dnl CF_CPP_PARAM_INIT version: 4 updated: 2001/04/07 22:31:18
800 dnl -----------------
801 dnl Check if the C++ compiler accepts duplicate parameter initialization. This
802 dnl is a late feature for the standard and is not in some recent compilers
804 AC_DEFUN([CF_CPP_PARAM_INIT],
806 if test -n "$CXX"; then
807 AC_CACHE_CHECK(if $CXX accepts parameter initialization,cf_cv_cpp_param_init,[
819 TEST::TEST(int x = 1) // some compilers do not like second initializer
825 [cf_cv_cpp_param_init=yes],
826 [cf_cv_cpp_param_init=no],
827 [cf_cv_cpp_param_init=unknown])
831 test "$cf_cv_cpp_param_init" = yes && AC_DEFINE(CPP_HAS_PARAM_INIT)
833 dnl ---------------------------------------------------------------------------
834 dnl CF_CPP_STATIC_CAST version: 1 updated: 2005/07/23 16:52:43
835 dnl ------------------
836 dnl Check if the C++ compiler accepts static_cast in generics. This appears to
837 dnl not be supported in g++ before 3.0
838 AC_DEFUN([CF_CPP_STATIC_CAST],
840 if test -n "$CXX"; then
842 AC_CACHE_CHECK(if $CXX accepts static_cast,cf_cv_cpp_static_cast,[
850 NCursesPanel(int nlines,
860 template<class T> class NCursesUserPanel : public NCursesPanel
863 NCursesUserPanel (int nlines,
867 const T* p_UserData = static_cast<T*>(0))
868 : NCursesPanel (nlines, ncols, begin_y, begin_x)
871 NCursesUserPanel(const T* p_UserData = static_cast<T*>(0)) : NCursesPanel()
875 virtual ~NCursesUserPanel() {};
878 const char* p_UserData = static_cast<char*>(0)],
879 [cf_cv_cpp_static_cast=yes],
880 [cf_cv_cpp_static_cast=no])
887 test "$cf_cv_cpp_static_cast" = yes && AC_DEFINE(CPP_HAS_STATIC_CAST)
889 dnl ---------------------------------------------------------------------------
890 dnl CF_C_INLINE version: 2 updated: 2007/08/11 14:09:50
892 dnl Check if the C compiler supports "inline".
893 dnl $1 is the name of a shell variable to set if inline is supported
894 dnl $2 is the threshold for gcc 4.x's option controlling maximum inline size
895 AC_DEFUN([CF_C_INLINE],[
898 if test "$ac_cv_c_inline" != no ; then
900 if test "$INTEL_COMPILER" = yes
903 elif test "$GCC" = yes
905 AC_CACHE_CHECK(if gcc supports options to tune inlining,cf_cv_gcc_inline,[
906 cf_save_CFLAGS=$CFLAGS
907 CFLAGS="$CFLAGS --param max-inline-insns-single=$2"
908 AC_TRY_COMPILE([inline int foo(void) { return 1; }],
909 [${cf_cv_main_return:-return} foo()],
910 [cf_cv_gcc_inline=yes],
911 [cf_cv_gcc_inline=no])
912 CFLAGS=$cf_save_CFLAGS
914 if test "$cf_cv_gcc_inline" = yes ; then
915 CF_ADD_CFLAGS([--param max-inline-insns-single=$2])
921 dnl ---------------------------------------------------------------------------
922 dnl CF_DIRNAME version: 4 updated: 2002/12/21 19:25:52
924 dnl "dirname" is not portable, so we fake it with a shell script.
925 AC_DEFUN([CF_DIRNAME],[$1=`echo $2 | sed -e 's%/[[^/]]*$%%'`])dnl
926 dnl ---------------------------------------------------------------------------
927 dnl CF_DIRS_TO_MAKE version: 3 updated: 2002/02/23 20:38:31
929 AC_DEFUN([CF_DIRS_TO_MAKE],
932 for cf_item in $cf_list_models
934 CF_OBJ_SUBDIR($cf_item,cf_subdir)
935 for cf_item2 in $DIRS_TO_MAKE
937 test $cf_item2 = $cf_subdir && break
939 test ".$cf_item2" != ".$cf_subdir" && DIRS_TO_MAKE="$DIRS_TO_MAKE $cf_subdir"
941 for cf_dir in $DIRS_TO_MAKE
943 test ! -d $cf_dir && mkdir $cf_dir
945 AC_SUBST(DIRS_TO_MAKE)
947 dnl ---------------------------------------------------------------------------
948 dnl CF_DISABLE_LEAKS version: 4 updated: 2006/12/16 15:10:42
950 dnl Combine no-leak checks with the libraries or tools that are used for the
952 AC_DEFUN([CF_DISABLE_LEAKS],[
954 AC_REQUIRE([CF_WITH_DMALLOC])
955 AC_REQUIRE([CF_WITH_DBMALLOC])
956 AC_REQUIRE([CF_WITH_VALGRIND])
958 AC_MSG_CHECKING(if you want to perform memory-leak testing)
960 [ --disable-leaks test: free permanent memory, analyze leaks],
962 : ${with_no_leaks:=no})
963 AC_MSG_RESULT($with_no_leaks)
965 if test "$with_no_leaks" = yes ; then
969 dnl ---------------------------------------------------------------------------
970 dnl CF_ENABLE_RPATH version: 1 updated: 2008/09/13 10:22:30
972 dnl Check if the rpath option should be used, setting cache variable
973 dnl cf_cv_ld_rpath if so.
974 AC_DEFUN([CF_ENABLE_RPATH],
976 AC_MSG_CHECKING(if rpath option should be used)
978 [ --enable-rpath use rpath option when generating shared libraries],
979 [cf_cv_ld_rpath=$enableval],
981 AC_MSG_RESULT($cf_cv_ld_rpath)
983 dnl ---------------------------------------------------------------------------
984 dnl CF_ERRNO version: 5 updated: 1997/11/30 12:44:39
986 dnl Check if 'errno' is declared in <errno.h>
989 CF_CHECK_ERRNO(errno)
991 dnl ---------------------------------------------------------------------------
992 dnl CF_ETIP_DEFINES version: 3 updated: 2003/03/22 19:13:43
994 dnl Test for conflicting definitions of exception in gcc 2.8.0, etc., between
995 dnl math.h and builtin.h, only for ncurses
996 AC_DEFUN([CF_ETIP_DEFINES],
998 AC_MSG_CHECKING(for special defines needed for etip.h)
999 cf_save_CXXFLAGS="$CXXFLAGS"
1001 for cf_math in "" MATH_H
1003 for cf_excp in "" MATH_EXCEPTION
1005 CXXFLAGS="$cf_save_CXXFLAGS -I${srcdir}/c++ -I${srcdir}/menu -I${srcdir}/include"
1006 test -n "$cf_math" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_math}"
1007 test -n "$cf_excp" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_excp}"
1009 #include <etip.h.in>
1011 test -n "$cf_math" && AC_DEFINE_UNQUOTED(ETIP_NEEDS_${cf_math})
1012 test -n "$cf_excp" && AC_DEFINE_UNQUOTED(ETIP_NEEDS_${cf_excp})
1013 cf_result="$cf_math $cf_excp"
1018 AC_MSG_RESULT($cf_result)
1019 CXXFLAGS="$cf_save_CXXFLAGS"
1021 dnl ---------------------------------------------------------------------------
1022 dnl CF_FIND_LINKAGE version: 13 updated: 2008/12/24 07:59:55
1024 dnl Find a library (specifically the linkage used in the code fragment),
1025 dnl searching for it if it is not already in the library path.
1026 dnl See also CF_ADD_SEARCHPATH.
1028 dnl Parameters (4-on are optional):
1029 dnl $1 = headers for library entrypoint
1030 dnl $2 = code fragment for library entrypoint
1031 dnl $3 = the library name without the "-l" option or ".so" suffix.
1032 dnl $4 = action to perform if successful (default: update CPPFLAGS, etc)
1033 dnl $5 = action to perform if not successful
1034 dnl $6 = module name, if not the same as the library name
1035 dnl $7 = extra libraries
1037 dnl Sets these variables:
1038 dnl $cf_cv_find_linkage_$3 - yes/no according to whether linkage is found
1039 dnl $cf_cv_header_path_$3 - include-directory if needed
1040 dnl $cf_cv_library_path_$3 - library-directory if needed
1041 dnl $cf_cv_library_file_$3 - library-file if needed, e.g., -l$3
1042 AC_DEFUN([CF_FIND_LINKAGE],[
1044 # If the linkage is not already in the $CPPFLAGS/$LDFLAGS configuration, these
1045 # will be set on completion of the AC_TRY_LINK below.
1046 cf_cv_header_path_$3=
1047 cf_cv_library_path_$3=
1049 CF_MSG_LOG([Starting [FIND_LINKAGE]($3,$6)])
1051 AC_TRY_LINK([$1],[$2],
1052 cf_cv_find_linkage_$3=yes,[
1053 cf_cv_find_linkage_$3=no
1055 CF_VERBOSE(find linkage for $3 library)
1056 CF_MSG_LOG([Searching for headers in [FIND_LINKAGE]($3,$6)])
1058 cf_save_CPPFLAGS="$CPPFLAGS"
1059 cf_test_CPPFLAGS="$CPPFLAGS"
1061 CF_HEADER_PATH(cf_search,ifelse([$6],,[$3],[$6]))
1062 for cf_cv_header_path_$3 in $cf_search
1064 if test -d $cf_cv_header_path_$3 ; then
1065 CF_VERBOSE(... testing $cf_cv_header_path_$3)
1066 CPPFLAGS="$cf_save_CPPFLAGS -I$cf_cv_header_path_$3"
1067 AC_TRY_COMPILE([$1],[$2],[
1068 CF_VERBOSE(... found $3 headers in $cf_cv_header_path_$3)
1069 cf_cv_find_linkage_$3=maybe
1070 cf_test_CPPFLAGS="$CPPFLAGS"
1072 CPPFLAGS="$cf_save_CPPFLAGS"
1077 if test "$cf_cv_find_linkage_$3" = maybe ; then
1079 CF_MSG_LOG([Searching for $3 library in [FIND_LINKAGE]($3,$6)])
1081 cf_save_LIBS="$LIBS"
1082 cf_save_LDFLAGS="$LDFLAGS"
1085 CPPFLAGS="$cf_test_CPPFLAGS"
1086 LIBS="-l$3 $7 $cf_save_LIBS"
1087 AC_TRY_LINK([$1],[$2],[
1088 CF_VERBOSE(... found $3 library in system)
1089 cf_cv_find_linkage_$3=yes])
1090 CPPFLAGS="$cf_save_CPPFLAGS"
1091 LIBS="$cf_save_LIBS"
1094 if test "$cf_cv_find_linkage_$3" != yes ; then
1095 CF_LIBRARY_PATH(cf_search,$3)
1096 for cf_cv_library_path_$3 in $cf_search
1098 if test -d $cf_cv_library_path_$3 ; then
1099 CF_VERBOSE(... testing $cf_cv_library_path_$3)
1100 CPPFLAGS="$cf_test_CPPFLAGS"
1101 LIBS="-l$3 $7 $cf_save_LIBS"
1102 LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_$3"
1103 AC_TRY_LINK([$1],[$2],[
1104 CF_VERBOSE(... found $3 library in $cf_cv_library_path_$3)
1105 cf_cv_find_linkage_$3=yes
1106 cf_cv_library_file_$3="-l$3"
1108 CPPFLAGS="$cf_save_CPPFLAGS"
1109 LIBS="$cf_save_LIBS"
1110 LDFLAGS="$cf_save_LDFLAGS"
1114 LIBS="$cf_save_LIBS"
1115 CPPFLAGS="$cf_save_CPPFLAGS"
1116 LDFLAGS="$cf_save_LDFLAGS"
1120 cf_cv_find_linkage_$3=no
1124 if test "$cf_cv_find_linkage_$3" = yes ; then
1126 CF_ADD_INCDIR($cf_cv_header_path_$3)
1127 CF_ADD_LIBDIR($cf_cv_library_path_$3)
1131 ifelse([$5],,AC_MSG_WARN(Cannot find $3 library),[$5])
1134 dnl ---------------------------------------------------------------------------
1135 dnl CF_FUNC_DLSYM version: 1 updated: 2004/06/16 20:52:45
1137 dnl Test for dlsym() and related functions, as well as libdl.
1142 AC_DEFUN([CF_FUNC_DLSYM],[
1144 AC_CHECK_FUNC(dlsym,cf_have_dlsym=yes,[
1147 AC_CHECK_LIB(dl,dlsym,[
1149 cf_have_libdl=yes])])
1151 if test "$cf_have_dlsym" = yes ; then
1152 test "$cf_have_libdl" = yes && LIBS="-ldl $LIBS"
1154 AC_MSG_CHECKING(whether able to link to dl*() functions)
1155 AC_TRY_LINK([#include <dlfcn.h>],[
1157 if ((obj = dlopen("filename", 0)) != 0) {
1158 if (dlsym(obj, "symbolname") == 0) {
1162 AC_DEFINE(HAVE_LIBDL)],[
1163 AC_MSG_ERROR(Cannot link test program for libdl)])
1166 AC_MSG_ERROR(Cannot find dlsym function)
1169 dnl ---------------------------------------------------------------------------
1170 dnl CF_FUNC_MEMMOVE version: 7 updated: 2006/12/16 12:33:30
1172 dnl Check for memmove, or a bcopy that can handle overlapping copy. If neither
1173 dnl is found, add our own version of memmove to the list of objects.
1174 AC_DEFUN([CF_FUNC_MEMMOVE],
1176 AC_CHECK_FUNC(memmove,,[
1177 AC_CHECK_FUNC(bcopy,[
1178 AC_CACHE_CHECK(if bcopy does overlapping moves,cf_cv_good_bcopy,[
1181 static char data[] = "abcdefghijklmnopqrstuwwxyz";
1183 bcopy(data, temp, sizeof(data));
1184 bcopy(temp+10, temp, 15);
1185 bcopy(temp+5, temp+15, 10);
1186 ${cf_cv_main_return:-return} (strcmp(temp, "klmnopqrstuwwxypqrstuwwxyz"));
1189 [cf_cv_good_bcopy=yes],
1190 [cf_cv_good_bcopy=no],
1191 [cf_cv_good_bcopy=unknown])
1193 ],[cf_cv_good_bcopy=no])
1194 if test "$cf_cv_good_bcopy" = yes ; then
1195 AC_DEFINE(USE_OK_BCOPY)
1197 AC_DEFINE(USE_MY_MEMMOVE)
1200 dnl ---------------------------------------------------------------------------
1201 dnl CF_FUNC_NANOSLEEP version: 3 updated: 2006/12/16 12:33:30
1202 dnl -----------------
1203 dnl Check for existence of workable nanosleep() function. Some systems, e.g.,
1204 dnl AIX 4.x, provide a non-working version.
1205 AC_DEFUN([CF_FUNC_NANOSLEEP],[
1206 AC_CACHE_CHECK(if nanosleep really works,cf_cv_func_nanosleep,[
1212 #ifdef HAVE_SYS_TIME_H
1213 #include <sys/time.h>
1217 struct timespec ts1, ts2;
1220 ts1.tv_nsec = 750000000;
1224 code = nanosleep(&ts1, &ts2); /* on failure errno is ENOSYS. */
1225 ${cf_cv_main_return:-return}(code != 0);
1228 [cf_cv_func_nanosleep=yes],
1229 [cf_cv_func_nanosleep=no],
1230 [cf_cv_func_nanosleep=unknown])])
1232 test "$cf_cv_func_nanosleep" = "yes" && AC_DEFINE(HAVE_NANOSLEEP)
1234 dnl ---------------------------------------------------------------------------
1235 dnl CF_FUNC_OPENPTY version: 2 updated: 2008/04/12 19:49:01
1237 dnl Check for openpty() function, along with <pty.h> header. It may need the
1238 dnl "util" library as well.
1239 AC_DEFUN([CF_FUNC_OPENPTY],
1241 AC_CHECK_LIB(util,openpty,cf_cv_lib_util=yes,cf_cv_lib_util=no)
1242 AC_CACHE_CHECK(for openpty header,cf_cv_func_openpty,[
1243 cf_save_LIBS="$LIBS"
1244 test $cf_cv_lib_util = yes && LIBS="-lutil $LIBS"
1245 for cf_header in pty.h libutil.h util.h
1248 #include <$cf_header>
1250 int x = openpty((int *)0, (int *)0, (char *)0,
1251 (struct termios *)0, (struct winsize *)0);
1253 cf_cv_func_openpty=$cf_header
1256 cf_cv_func_openpty=no
1259 LIBS="$cf_save_LIBS"
1262 dnl ---------------------------------------------------------------------------
1263 dnl CF_FUNC_POLL version: 4 updated: 2006/12/16 12:33:30
1265 dnl See if the poll function really works. Some platforms have poll(), but
1266 dnl it does not work for terminals or files.
1267 AC_DEFUN([CF_FUNC_POLL],[
1268 AC_CACHE_CHECK(if poll really works,cf_cv_working_poll,[
1274 #include <sys/poll.h>
1277 struct pollfd myfds;
1281 myfds.events = POLLIN;
1283 ret = poll(&myfds, 1, 100);
1284 ${cf_cv_main_return:-return}(ret != 0);
1286 [cf_cv_working_poll=yes],
1287 [cf_cv_working_poll=no],
1288 [cf_cv_working_poll=unknown])])
1289 test "$cf_cv_working_poll" = "yes" && AC_DEFINE(HAVE_WORKING_POLL)
1291 dnl ---------------------------------------------------------------------------
1292 dnl CF_FUNC_TERMIOS version: 2 updated: 2000/07/22 23:37:24
1294 dnl Some old/broken variations define tcgetattr() only as a macro in
1296 AC_DEFUN([CF_FUNC_TERMIOS],[
1297 AC_REQUIRE([CF_STRUCT_TERMIOS])
1298 AC_CACHE_CHECK(for tcgetattr, cf_cv_have_tcgetattr,[
1300 #include <sys/types.h>
1301 #ifdef HAVE_UNISTD_H
1304 #ifdef HAVE_TERMIOS_H
1305 #include <termios.h>
1306 #define TTY struct termios
1308 #ifdef HAVE_TERMIO_H
1310 #define TTY struct termio
1315 tcgetattr(1, &foo);],
1316 [cf_cv_have_tcgetattr=yes],
1317 [cf_cv_have_tcgetattr=no])])
1318 test "$cf_cv_have_tcgetattr" = yes && AC_DEFINE(HAVE_TCGETATTR)
1320 dnl ---------------------------------------------------------------------------
1321 dnl CF_FUNC_VSSCANF version: 3 updated: 2001/12/19 00:50:10
1323 dnl Check for vsscanf() function, which is in c9x but generally not in earlier
1324 dnl versions of C. It is in the GNU C library, and can often be simulated by
1325 dnl other functions.
1326 AC_DEFUN([CF_FUNC_VSSCANF],
1328 AC_CACHE_CHECK(for vsscanf function or workaround,cf_cv_func_vsscanf,[
1331 #include <stdio.h>],[
1333 vsscanf("from", "%d", ap)],[cf_cv_func_vsscanf=vsscanf],[
1336 #include <stdio.h>],[
1340 strbuf._flag = _IOREAD;
1341 strbuf._ptr = strbuf._base = (unsigned char *) str;
1342 strbuf._cnt = strlen(str);
1343 strbuf._file = _NFILE;
1344 return (vfscanf(&strbuf, "%d", ap))],[cf_cv_func_vsscanf=vfscanf],[
1347 #include <stdio.h>],[
1351 strbuf._flag = _IOREAD;
1352 strbuf._ptr = strbuf._base = (unsigned char *) str;
1353 strbuf._cnt = strlen(str);
1354 strbuf._file = _NFILE;
1355 return (_doscan(&strbuf, "%d", ap))],[cf_cv_func_vsscanf=_doscan],[
1356 cf_cv_func_vsscanf=no])])])])
1358 case $cf_cv_func_vsscanf in #(vi
1359 vsscanf) AC_DEFINE(HAVE_VSSCANF);; #(vi
1360 vfscanf) AC_DEFINE(HAVE_VFSCANF);; #(vi
1361 _doscan) AC_DEFINE(HAVE__DOSCAN);;
1365 dnl ---------------------------------------------------------------------------
1366 dnl CF_GCC_ATTRIBUTES version: 11 updated: 2007/07/29 09:55:12
1367 dnl -----------------
1368 dnl Test for availability of useful gcc __attribute__ directives to quiet
1369 dnl compiler warnings. Though useful, not all are supported -- and contrary
1370 dnl to documentation, unrecognized directives cause older compilers to barf.
1371 AC_DEFUN([CF_GCC_ATTRIBUTES],
1373 if test "$GCC" = yes
1375 cat > conftest.i <<EOF
1377 #define GCC_PRINTF 0
1382 #ifndef GCC_NORETURN
1383 #define GCC_NORETURN /* nothing */
1386 #define GCC_UNUSED /* nothing */
1389 if test "$GCC" = yes
1391 AC_CHECKING([for $CC __attribute__ directives])
1392 cat > conftest.$ac_ext <<EOF
1393 #line __oline__ "${as_me-configure}"
1394 #include "confdefs.h"
1395 #include "conftest.h"
1396 #include "conftest.i"
1398 #define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
1400 #define GCC_PRINTFLIKE(fmt,var) /*nothing*/
1403 #define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
1405 #define GCC_SCANFLIKE(fmt,var) /*nothing*/
1407 extern void wow(char *,...) GCC_SCANFLIKE(1,2);
1408 extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
1409 extern void foo(void) GCC_NORETURN;
1410 int main(int argc GCC_UNUSED, char *argv[[]] GCC_UNUSED) { return 0; }
1412 for cf_attribute in scanf printf unused noreturn
1414 CF_UPPER(cf_ATTRIBUTE,$cf_attribute)
1415 cf_directive="__attribute__(($cf_attribute))"
1416 echo "checking for $CC $cf_directive" 1>&AC_FD_CC
1417 case $cf_attribute in
1419 cat >conftest.h <<EOF
1420 #define GCC_$cf_ATTRIBUTE 1
1424 cat >conftest.h <<EOF
1425 #define GCC_$cf_ATTRIBUTE $cf_directive
1429 if AC_TRY_EVAL(ac_compile); then
1430 test -n "$verbose" && AC_MSG_RESULT(... $cf_attribute)
1431 cat conftest.h >>confdefs.h
1435 fgrep define conftest.i >>confdefs.h
1440 dnl ---------------------------------------------------------------------------
1441 dnl CF_GCC_VERSION version: 4 updated: 2005/08/27 09:53:42
1443 dnl Find version of gcc
1444 AC_DEFUN([CF_GCC_VERSION],[
1445 AC_REQUIRE([AC_PROG_CC])
1447 if test "$GCC" = yes ; then
1448 AC_MSG_CHECKING(version of $CC)
1449 GCC_VERSION="`${CC} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
1450 test -z "$GCC_VERSION" && GCC_VERSION=unknown
1451 AC_MSG_RESULT($GCC_VERSION)
1454 dnl ---------------------------------------------------------------------------
1455 dnl CF_GCC_WARNINGS version: 23 updated: 2008/07/26 17:54:02
1457 dnl Check if the compiler supports useful warning options. There's a few that
1458 dnl we don't use, simply because they're too noisy:
1460 dnl -Wconversion (useful in older versions of gcc, but not in gcc 2.7.x)
1461 dnl -Wredundant-decls (system headers make this too noisy)
1462 dnl -Wtraditional (combines too many unrelated messages, only a few useful)
1463 dnl -Wwrite-strings (too noisy, but should review occasionally). This
1464 dnl is enabled for ncurses using "--enable-const".
1468 dnl $1 is an optional list of gcc warning flags that a particular
1469 dnl application might want to use, e.g., "no-unused" for
1472 dnl If $with_ext_const is "yes", add a check for -Wwrite-strings
1474 AC_DEFUN([CF_GCC_WARNINGS],
1476 AC_REQUIRE([CF_GCC_VERSION])
1477 CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
1479 cat > conftest.$ac_ext <<EOF
1480 #line __oline__ "${as_me-configure}"
1481 int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
1484 if test "$INTEL_COMPILER" = yes
1486 # The "-wdXXX" options suppress warnings:
1487 # remark #1419: external declaration in primary source file
1488 # remark #1682: implicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
1489 # remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
1490 # remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
1491 # remark #193: zero used for undefined preprocessing identifier
1492 # remark #593: variable "curs_sb_left_arrow" was set but never used
1493 # remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
1494 # remark #869: parameter "tw" was never referenced
1495 # remark #981: operands are evaluated in unspecified order
1496 # warning #269: invalid format string conversion
1498 AC_CHECKING([for $CC warning options])
1499 cf_save_CFLAGS="$CFLAGS"
1500 EXTRA_CFLAGS="-Wall"
1513 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
1514 if AC_TRY_EVAL(ac_compile); then
1515 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1516 EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
1519 CFLAGS="$cf_save_CFLAGS"
1521 elif test "$GCC" = yes
1523 AC_CHECKING([for $CC warning options])
1524 cf_save_CFLAGS="$CFLAGS"
1525 EXTRA_CFLAGS="-W -Wall"
1527 test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
1529 Wbad-function-cast \
1533 Wmissing-declarations \
1534 Wmissing-prototypes \
1538 Wstrict-prototypes \
1539 Wundef $cf_warn_CONST $1
1541 CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
1542 if AC_TRY_EVAL(ac_compile); then
1543 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1544 case $cf_opt in #(vi
1546 CPPFLAGS="$CPPFLAGS -DXTSTRINGDEFINES"
1549 case $GCC_VERSION in
1551 CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
1556 EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
1559 CFLAGS="$cf_save_CFLAGS"
1563 AC_SUBST(EXTRA_CFLAGS)
1565 dnl ---------------------------------------------------------------------------
1566 dnl CF_GNAT_TRY_LINK version: 1 updated: 2004/08/21 19:02:08
1567 dnl ----------------
1568 dnl Verify that a test program compiles/links with GNAT.
1569 dnl $cf_ada_make is set to the program that compiles/links
1570 dnl $ADAFLAGS may be set to the GNAT flags.
1572 dnl $1 is the text of the spec
1573 dnl $2 is the text of the body
1574 dnl $3 is the shell command to execute if successful
1575 dnl $4 is the shell command to execute if not successful
1576 AC_DEFUN([CF_GNAT_TRY_LINK],
1579 cat >>conftest.ads <<CF_EOF
1582 cat >>conftest.adb <<CF_EOF
1585 if ( $cf_ada_make $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
1586 ifelse($3,, :,[ $3])
1592 dnl ---------------------------------------------------------------------------
1593 dnl CF_GNAT_TRY_RUN version: 3 updated: 2004/08/21 19:02:08
1595 dnl Verify that a test program compiles and runs with GNAT
1596 dnl $cf_ada_make is set to the program that compiles/links
1597 dnl $ADAFLAGS may be set to the GNAT flags.
1599 dnl $1 is the text of the spec
1600 dnl $2 is the text of the body
1601 dnl $3 is the shell command to execute if successful
1602 dnl $4 is the shell command to execute if not successful
1603 AC_DEFUN([CF_GNAT_TRY_RUN],
1606 cat >>conftest.ads <<CF_EOF
1609 cat >>conftest.adb <<CF_EOF
1612 if ( $cf_ada_make $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
1613 if ( ./conftest 1>&AC_FD_CC 2>&1 ) ; then
1614 ifelse($3,, :,[ $3])
1623 dnl ---------------------------------------------------------------------------
1624 dnl CF_GNAT_VERSION version: 12 updated: 2006/10/14 15:23:15
1626 dnl Verify version of GNAT.
1627 AC_DEFUN([CF_GNAT_VERSION],
1629 AC_MSG_CHECKING(for gnat version)
1630 cf_gnat_version=`${cf_ada_make-gnatmake} -v 2>&1 | grep '[[0-9]].[[0-9]][[0-9]]*' |\
1631 sed -e '2,$d' -e 's/[[^0-9 \.]]//g' -e 's/^[[ ]]*//' -e 's/ .*//'`
1632 AC_MSG_RESULT($cf_gnat_version)
1634 case $cf_gnat_version in
1635 3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*)
1636 cf_cv_prog_gnat_correct=yes
1638 *) echo Unsupported GNAT version $cf_gnat_version. Required is 3.11 or better. Disabling Ada95 binding.
1639 cf_cv_prog_gnat_correct=no
1642 case $cf_gnat_version in
1643 3.[[1-9]]*|[[4-9]].*)
1644 cf_compile_generics=generics
1645 cf_generic_objects="\${GENOBJS}"
1647 *) cf_compile_generics=
1652 dnl ---------------------------------------------------------------------------
1653 dnl CF_GNU_SOURCE version: 6 updated: 2005/07/09 13:23:07
1655 dnl Check if we must define _GNU_SOURCE to get a reasonable value for
1656 dnl _XOPEN_SOURCE, upon which many POSIX definitions depend. This is a defect
1657 dnl (or misfeature) of glibc2, which breaks portability of many applications,
1658 dnl since it is interwoven with GNU extensions.
1660 dnl Well, yes we could work around it...
1661 AC_DEFUN([CF_GNU_SOURCE],
1663 AC_CACHE_CHECK(if we must define _GNU_SOURCE,cf_cv_gnu_source,[
1664 AC_TRY_COMPILE([#include <sys/types.h>],[
1665 #ifndef _XOPEN_SOURCE
1668 [cf_cv_gnu_source=no],
1669 [cf_save="$CPPFLAGS"
1670 CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
1671 AC_TRY_COMPILE([#include <sys/types.h>],[
1672 #ifdef _XOPEN_SOURCE
1675 [cf_cv_gnu_source=no],
1676 [cf_cv_gnu_source=yes])
1680 test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
1682 dnl ---------------------------------------------------------------------------
1683 dnl CF_GPP_LIBRARY version: 8 updated: 2003/02/02 01:41:46
1685 dnl If we're trying to use g++, test if libg++ is installed (a rather common
1686 dnl problem :-). If we have the compiler but no library, we'll be able to
1687 dnl configure, but won't be able to build the c++ demo program.
1688 AC_DEFUN([CF_GPP_LIBRARY],
1690 cf_cxx_library=unknown
1691 case $cf_cv_system_name in #(vi
1699 if test "$GXX" = yes; then
1700 AC_MSG_CHECKING([for lib$cf_gpp_libname])
1702 LIBS="$LIBS -l$cf_gpp_libname"
1704 #include <$cf_gpp_libname/builtin.h>
1706 [two_arg_error_handler_t foo2 = lib_error_handler],
1708 CXXLIBS="$CXXLIBS -l$cf_gpp_libname"
1709 if test "$cf_gpp_libname" = cpp ; then
1710 AC_DEFINE(HAVE_GPP_BUILTIN_H)
1712 AC_DEFINE(HAVE_GXX_BUILTIN_H)
1715 #include <builtin.h>
1717 [two_arg_error_handler_t foo2 = lib_error_handler],
1719 CXXLIBS="$CXXLIBS -l$cf_gpp_libname"
1720 AC_DEFINE(HAVE_BUILTIN_H)],
1721 [cf_cxx_library=no])])
1723 AC_MSG_RESULT($cf_cxx_library)
1726 dnl ---------------------------------------------------------------------------
1727 dnl CF_GXX_VERSION version: 5 updated: 2005/08/27 09:53:42
1729 dnl Check for version of g++
1730 AC_DEFUN([CF_GXX_VERSION],[
1731 AC_REQUIRE([AC_PROG_CPP])
1733 if test "$GXX" = yes; then
1734 AC_MSG_CHECKING(version of g++)
1735 GXX_VERSION="`${CXX-g++} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
1736 test -z "$GXX_VERSION" && GXX_VERSION=unknown
1737 AC_MSG_RESULT($GXX_VERSION)
1740 dnl ---------------------------------------------------------------------------
1741 dnl CF_GXX_WARNINGS version: 5 updated: 2005/08/13 14:54:38
1743 dnl Check if the compiler supports useful warning options.
1745 dnl Most of gcc's options apply to g++, except:
1746 dnl -Wbad-function-cast
1747 dnl -Wmissing-declarations
1748 dnl -Wnested-externs
1750 dnl Omit a few (for now):
1754 dnl $1 is an optional list of g++ warning flags that a particular
1755 dnl application might want to use, e.g., "no-unused" for
1758 dnl If $with_ext_const is "yes", add a check for -Wwrite-strings
1760 AC_DEFUN([CF_GXX_WARNINGS],
1763 CF_INTEL_COMPILER(GXX,INTEL_CPLUSPLUS,CXXFLAGS)
1765 AC_REQUIRE([CF_GXX_VERSION])
1770 cat > conftest.$ac_ext <<EOF
1771 #line __oline__ "configure"
1772 int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
1775 if test "$INTEL_CPLUSPLUS" = yes
1777 # The "-wdXXX" options suppress warnings:
1778 # remark #1419: external declaration in primary source file
1779 # remark #1682: implicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
1780 # remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
1781 # remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
1782 # remark #193: zero used for undefined preprocessing identifier
1783 # remark #593: variable "curs_sb_left_arrow" was set but never used
1784 # remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
1785 # remark #869: parameter "tw" was never referenced
1786 # remark #981: operands are evaluated in unspecified order
1787 # warning #269: invalid format string conversion
1789 AC_CHECKING([for $CC warning options])
1790 cf_save_CXXFLAGS="$CXXFLAGS"
1791 EXTRA_CXXFLAGS="-Wall"
1804 CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -$cf_opt"
1805 if AC_TRY_EVAL(ac_compile); then
1806 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1807 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
1810 CXXFLAGS="$cf_save_CXXFLAGS"
1812 elif test "$GXX" = yes
1814 AC_CHECKING([for $CXX warning options])
1815 cf_save_CXXFLAGS="$CXXFLAGS"
1816 EXTRA_CXXFLAGS="-W -Wall"
1817 cf_gxx_extra_warnings=""
1818 test "$with_ext_const" = yes && cf_gxx_extra_warnings="Wwrite-strings"
1819 case "$GCC_VERSION" in
1823 cf_gxx_extra_warnings="$cf_gxx_extra_warnings Weffc++"
1829 Woverloaded-virtual \
1835 Wmissing-prototypes \
1838 Wstrict-prototypes \
1839 Wundef $cf_gxx_extra_warnings $1
1841 CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -Werror -$cf_opt"
1842 if AC_TRY_EVAL(ac_compile); then
1843 test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
1844 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
1846 test -n "$verbose" && AC_MSG_RESULT(... no -$cf_opt)
1849 CXXFLAGS="$cf_save_CXXFLAGS"
1854 AC_SUBST(EXTRA_CXXFLAGS)
1856 dnl ---------------------------------------------------------------------------
1857 dnl CF_HASHED_DB version: 3 updated: 2007/11/24 17:43:37
1859 dnl Look for an instance of the Berkeley hashed database.
1861 dnl $1 = optional parameter, to specify install-prefix for the database.
1862 AC_DEFUN([CF_HASHED_DB],
1869 if test -d "$1" ; then
1870 CF_ADD_INCDIR($1/include)
1871 CF_ADD_LIBDIR($1/lib)
1875 AC_CHECK_HEADER(db.h,[
1876 CF_HASHED_DB_VERSION
1877 if test "$cf_cv_hashed_db_version" = unknown ; then
1878 AC_MSG_ERROR(Cannot determine version of db)
1881 if test "$cf_cv_hashed_db_libs" = unknown ; then
1882 AC_MSG_ERROR(Cannot determine library for db)
1883 elif test "$cf_cv_hashed_db_libs" != default ; then
1884 LIBS="-l$cf_cv_hashed_db_libs $LIBS"
1888 AC_MSG_ERROR(Cannot find db.h)
1891 dnl ---------------------------------------------------------------------------
1892 dnl CF_HASHED_DB_LIBS version: 8 updated: 2008/08/04 06:18:06
1893 dnl -----------------
1894 dnl Given that we have the header and version for hashed database, find the
1895 dnl library information.
1896 AC_DEFUN([CF_HASHED_DB_LIBS],
1898 AC_CACHE_CHECK(for db libraries, cf_cv_hashed_db_libs,[
1899 cf_cv_hashed_db_libs=unknown
1900 for cf_db_libs in "" db$cf_cv_hashed_db_version db-$cf_cv_hashed_db_version db ''
1902 cf_save_libs="$LIBS"
1903 if test -n "$cf_db_libs"; then
1904 LIBS="-l$cf_db_libs $LIBS"
1906 CF_MSG_LOG(checking for library "$cf_db_libs")
1908 $ac_includes_default
1911 char *path = "/tmp/foo";
1912 #ifdef DB_VERSION_MAJOR
1913 #if DB_VERSION_MAJOR >= 4
1915 db_create(&result, NULL, 0);
1916 result->open(result,
1923 #elif DB_VERSION_MAJOR >= 3
1925 db_create(&result, NULL, 0);
1926 result->open(result,
1932 #elif DB_VERSION_MAJOR >= 2
1941 #endif /* DB_VERSION_MAJOR */
1943 DB *result = dbopen(path,
1949 ${cf_cv_main_return:-return}(result != 0)
1951 if test -n "$cf_db_libs" ; then
1952 cf_cv_hashed_db_libs=$cf_db_libs
1954 cf_cv_hashed_db_libs=default
1956 LIBS="$cf_save_libs"
1959 LIBS="$cf_save_libs"
1963 dnl ---------------------------------------------------------------------------
1964 dnl CF_HASHED_DB_VERSION version: 3 updated: 2007/12/01 15:01:37
1965 dnl --------------------
1966 dnl Given that we have the header file for hashed database, find the version
1968 AC_DEFUN([CF_HASHED_DB_VERSION],
1970 AC_CACHE_CHECK(for version of db, cf_cv_hashed_db_version,[
1971 cf_cv_hashed_db_version=unknown
1973 for cf_db_version in 1 2 3 4 5
1975 CF_MSG_LOG(checking for db version $cf_db_version)
1977 $ac_includes_default
1980 #ifdef DB_VERSION_MAJOR
1981 /* db2 (DB_VERSION_MAJOR=2) has also DB_VERSION_MINOR, tested with 7 */
1982 #if $cf_db_version == DB_VERSION_MAJOR
1988 #if $cf_db_version == 1
1989 /* ok: assuming this is DB 1.8.5 */
1995 cf_cv_hashed_db_version=$cf_db_version
2001 dnl ---------------------------------------------------------------------------
2002 dnl CF_HEADER_PATH version: 9 updated: 2008/12/07 19:38:31
2004 dnl Construct a search-list of directories for a nonstandard header-file
2007 dnl $1 = the variable to return as result
2008 dnl $2 = the package name
2009 AC_DEFUN([CF_HEADER_PATH],
2011 cf_header_path_list=""
2012 if test -n "${CFLAGS}${CPPFLAGS}" ; then
2013 for cf_header_path in $CPPFLAGS $CFLAGS
2015 case $cf_header_path in #(vi
2017 cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'`
2018 CF_ADD_SUBDIR_PATH($1,$2,include,$cf_header_path,NONE)
2019 cf_header_path_list="$cf_header_path_list [$]$1"
2025 CF_SUBDIR_PATH($1,$2,include)
2027 test "$includedir" != NONE && \
2028 test "$includedir" != "/usr/include" && \
2029 test -d "$includedir" && {
2030 test -d $includedir && $1="[$]$1 $includedir"
2031 test -d $includedir/$2 && $1="[$]$1 $includedir/$2"
2034 test "$oldincludedir" != NONE && \
2035 test "$oldincludedir" != "/usr/include" && \
2036 test -d "$oldincludedir" && {
2037 test -d $oldincludedir && $1="[$]$1 $oldincludedir"
2038 test -d $oldincludedir/$2 && $1="[$]$1 $oldincludedir/$2"
2041 $1="$cf_header_path_list [$]$1"
2043 dnl ---------------------------------------------------------------------------
2044 dnl CF_HELP_MESSAGE version: 3 updated: 1998/01/14 10:56:23
2046 dnl Insert text into the help-message, for readability, from AC_ARG_WITH.
2047 AC_DEFUN([CF_HELP_MESSAGE],
2048 [AC_DIVERT_HELP([$1])dnl
2050 dnl ---------------------------------------------------------------------------
2051 dnl CF_INCLUDE_DIRS version: 5 updated: 2006/10/14 15:23:15
2053 dnl Construct the list of include-options according to whether we're building
2054 dnl in the source directory or using '--srcdir=DIR' option. If we're building
2055 dnl with gcc, don't append the includedir if it happens to be /usr/include,
2056 dnl since that usually breaks gcc's shadow-includes.
2057 AC_DEFUN([CF_INCLUDE_DIRS],
2059 CPPFLAGS="-I. -I../include $CPPFLAGS"
2060 if test "$srcdir" != "."; then
2061 CPPFLAGS="-I\${srcdir}/../include $CPPFLAGS"
2063 if test "$GCC" != yes; then
2064 CPPFLAGS="$CPPFLAGS -I\${includedir}"
2065 elif test "$includedir" != "/usr/include"; then
2066 if test "$includedir" = '${prefix}/include' ; then
2067 if test $prefix != /usr ; then
2068 CPPFLAGS="$CPPFLAGS -I\${includedir}"
2071 CPPFLAGS="$CPPFLAGS -I\${includedir}"
2076 dnl ---------------------------------------------------------------------------
2077 dnl CF_INTEL_COMPILER version: 3 updated: 2005/08/06 18:37:29
2078 dnl -----------------
2079 dnl Check if the given compiler is really the Intel compiler for Linux. It
2080 dnl tries to imitate gcc, but does not return an error when it finds a mismatch
2081 dnl between prototypes, e.g., as exercised by CF_MISSING_CHECK.
2083 dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
2084 dnl ensure that it is not mistaken for gcc/g++. It is normally invoked from
2085 dnl the wrappers for gcc and g++ warnings.
2087 dnl $1 = GCC (default) or GXX
2088 dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS
2089 dnl $3 = CFLAGS (default) or CXXFLAGS
2090 AC_DEFUN([CF_INTEL_COMPILER],[
2091 ifelse($2,,INTEL_COMPILER,[$2])=no
2093 if test "$ifelse($1,,[$1],GCC)" = yes ; then
2096 AC_MSG_CHECKING(if this is really Intel ifelse($1,GXX,C++,C) compiler)
2097 cf_save_CFLAGS="$ifelse($3,,CFLAGS,[$3])"
2098 ifelse($3,,CFLAGS,[$3])="$ifelse($3,,CFLAGS,[$3]) -no-gcc"
2100 #ifdef __INTEL_COMPILER
2104 ],[ifelse($2,,INTEL_COMPILER,[$2])=yes
2105 cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
2107 ifelse($3,,CFLAGS,[$3])="$cf_save_CFLAGS"
2108 AC_MSG_RESULT($ifelse($2,,INTEL_COMPILER,[$2]))
2113 dnl ---------------------------------------------------------------------------
2114 dnl CF_ISASCII version: 3 updated: 2000/08/12 23:18:52
2116 dnl Check if we have either a function or macro for 'isascii()'.
2117 AC_DEFUN([CF_ISASCII],
2119 AC_MSG_CHECKING(for isascii)
2120 AC_CACHE_VAL(cf_cv_have_isascii,[
2121 AC_TRY_LINK([#include <ctype.h>],[int x = isascii(' ')],
2122 [cf_cv_have_isascii=yes],
2123 [cf_cv_have_isascii=no])
2125 AC_MSG_RESULT($cf_cv_have_isascii)
2126 test "$cf_cv_have_isascii" = yes && AC_DEFINE(HAVE_ISASCII)
2128 dnl ---------------------------------------------------------------------------
2129 dnl CF_LARGEFILE version: 7 updated: 2007/06/02 11:58:50
2131 dnl Add checks for large file support.
2132 AC_DEFUN([CF_LARGEFILE],[
2133 ifdef([AC_FUNC_FSEEKO],[
2135 if test "$enable_largefile" != no ; then
2138 # Normally we would collect these definitions in the config.h,
2139 # but (like _XOPEN_SOURCE), some environments rely on having these
2140 # defined before any of the system headers are included. Another
2141 # case comes up with C++, e.g., on AIX the compiler compiles the
2142 # header files by themselves before looking at the body files it is
2143 # told to compile. For ncurses, those header files do not include
2145 test "$ac_cv_sys_large_files" != no && CPPFLAGS="$CPPFLAGS -D_LARGE_FILES "
2146 test "$ac_cv_sys_largefile_source" != no && CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE "
2147 test "$ac_cv_sys_file_offset_bits" != no && CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits "
2149 AC_CACHE_CHECK(whether to use struct dirent64, cf_cv_struct_dirent64,[
2151 #include <sys/types.h>
2154 /* if transitional largefile support is setup, this is true */
2155 extern struct dirent64 * readdir(DIR *);
2156 struct dirent64 *x = readdir((DIR *)0);
2157 struct dirent *y = readdir((DIR *)0);
2160 [cf_cv_struct_dirent64=yes],
2161 [cf_cv_struct_dirent64=no])
2163 test "$cf_cv_struct_dirent64" = yes && AC_DEFINE(HAVE_STRUCT_DIRENT64)
2167 dnl ---------------------------------------------------------------------------
2168 dnl CF_LDFLAGS_STATIC version: 5 updated: 2008/12/27 12:30:03
2169 dnl -----------------
2170 dnl Check for compiler/linker flags used to temporarily force usage of static
2171 dnl libraries. This depends on the compiler and platform. Use this to help
2172 dnl ensure that the linker picks up a given library based on its position in
2173 dnl the list of linker options and libraries.
2174 AC_DEFUN([CF_LDFLAGS_STATIC],[
2176 if test "$GCC" = yes ; then
2177 case $cf_cv_system_name in #(
2178 OS/2*|os2*|aix[[4]]*) #( vi
2182 *) #( normally, except when broken
2183 LDFLAGS_STATIC=-static
2184 LDFLAGS_SHARED=-dynamic
2188 case $cf_cv_system_name in #(
2189 aix[[456]]*) #( from ld manpage
2190 LDFLAGS_STATIC=-bstatic
2191 LDFLAGS_SHARED=-bdynamic
2193 hpux*) #( from ld manpage for hpux10.20, hpux11.11
2194 # We could also use just "archive" and "shared".
2195 LDFLAGS_STATIC=-Wl,-a,archive_shared
2196 LDFLAGS_SHARED=-Wl,-a,shared_archive
2198 irix*) #( from ld manpage IRIX64
2199 LDFLAGS_STATIC=-Bstatic
2200 LDFLAGS_SHARED=-Bdynamic
2202 osf[[45]]*) #( from ld manpage osf4.0d, osf5.1
2203 # alternative "-oldstyle_liblookup" (not in cc manpage)
2204 LDFLAGS_STATIC=-noso
2205 LDFLAGS_SHARED=-so_archive
2208 LDFLAGS_STATIC=-Bstatic
2209 LDFLAGS_SHARED=-Bdynamic
2214 AC_SUBST(LDFLAGS_STATIC)
2215 AC_SUBST(LDFLAGS_SHARED)
2217 dnl ---------------------------------------------------------------------------
2218 dnl CF_LIBRARY_PATH version: 8 updated: 2008/12/07 19:38:31
2220 dnl Construct a search-list of directories for a nonstandard library-file
2223 dnl $1 = the variable to return as result
2224 dnl $2 = the package name
2225 AC_DEFUN([CF_LIBRARY_PATH],
2227 cf_library_path_list=""
2228 if test -n "${LDFLAGS}${LIBS}" ; then
2229 for cf_library_path in $LDFLAGS $LIBS
2231 case $cf_library_path in #(vi
2233 cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'`
2234 CF_ADD_SUBDIR_PATH($1,$2,lib,$cf_library_path,NONE)
2235 cf_library_path_list="$cf_library_path_list [$]$1"
2241 CF_SUBDIR_PATH($1,$2,lib)
2243 $1="$cf_library_path_list [$]$1"
2245 dnl ---------------------------------------------------------------------------
2246 dnl CF_LIB_PREFIX version: 8 updated: 2008/09/13 11:34:16
2248 dnl Compute the library-prefix for the given host system
2249 dnl $1 = variable to set
2250 AC_DEFUN([CF_LIB_PREFIX],
2252 case $cf_cv_system_name in #(vi
2259 ifelse($1,,,[$1=$LIB_PREFIX])
2260 AC_SUBST(LIB_PREFIX)
2262 dnl ---------------------------------------------------------------------------
2263 dnl CF_LIB_RULES version: 55 updated: 2008/12/13 16:17:38
2265 dnl Append definitions and rules for the given models to the subdirectory
2266 dnl Makefiles, and the recursion rule for the top-level Makefile. If the
2267 dnl subdirectory is a library-source directory, modify the LIBS_TO_MAKE list in
2268 dnl the corresponding makefile to list the models that we'll generate.
2270 dnl For shared libraries, make a list of symbolic links to construct when
2271 dnl generating each library. The convention used for Linux is the simplest
2274 dnl lib<name>.so.<major> ->
2275 dnl lib<name>.so.<maj>.<minor>
2276 AC_DEFUN([CF_LIB_RULES],
2278 CF_LIB_PREFIX(cf_prefix)
2279 AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
2281 if test $cf_cv_shlib_version = cygdll ; then
2282 TINFO_NAME=$TINFO_ARG_SUFFIX
2286 for cf_dir in $SRC_SUBDIRS
2288 if test ! -d $srcdir/$cf_dir ; then
2290 elif test -f $srcdir/$cf_dir/modules; then
2294 for cf_item in $cf_LIST_MODELS
2296 CF_LIB_SUFFIX($cf_item,cf_suffix,cf_depsuf)
2297 if test $cf_item = shared ; then
2298 if test "$cf_cv_do_symlinks" = yes ; then
2299 case "$cf_cv_shlib_version" in #(vi
2301 case "$cf_cv_system_name" in #(vi
2303 case .${LIB_SUFFIX} in
2305 cf_suffix=`echo $cf_suffix | sed 's/^w//'`
2306 cf_suffix=w'.${REL_VERSION}'"$cf_suffix"
2309 cf_suffix='.${REL_VERSION}'"$cf_suffix"
2313 *) cf_suffix="$cf_suffix"'.${REL_VERSION}' ;;
2317 case "$cf_cv_system_name" in #(vi
2319 case .${LIB_SUFFIX} in
2321 cf_suffix=`echo $cf_suffix | sed 's/^w//'`
2322 cf_suffix=w'.${ABI_VERSION}'"$cf_suffix"
2325 cf_suffix='.${ABI_VERSION}'"$cf_suffix"
2329 *) cf_suffix="$cf_suffix"'.${ABI_VERSION}' ;;
2334 # cygwin needs import library, and has unique naming convention
2335 # use autodetected ${cf_prefix} for import lib and static lib, but
2336 # use 'cyg' prefix for shared lib.
2337 if test $cf_cv_shlib_version = cygdll ; then
2338 cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
2339 LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/cyg${cf_dir}${cf_cygsuf}"
2343 LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/${cf_prefix}${cf_dir}${cf_suffix}"
2346 if test $cf_dir = ncurses ; then
2347 cf_subsets="$LIB_SUBSETS"
2348 cf_r_parts="$cf_subsets"
2349 cf_liblist="$LIBS_TO_MAKE"
2351 while test -n "$cf_r_parts"
2353 cf_l_parts=`echo "$cf_r_parts" |sed -e 's/ .*$//'`
2354 cf_r_parts=`echo "$cf_r_parts" |sed -e 's/^[[^ ]]* //'`
2355 if test "$cf_l_parts" != "$cf_r_parts" ; then
2357 case $cf_l_parts in #(vi
2359 cf_item=`echo $cf_liblist |sed -e s%${LIB_NAME}${LIB_SUFFIX}%${TINFO_LIB_SUFFIX}%g`
2362 cf_item=`echo $cf_liblist |sed -e s%${LIB_NAME}${LIB_SUFFIX}%${TICS_LIB_SUFFIX}%g`
2368 if test -n "$cf_item"; then
2369 LIBS_TO_MAKE="$cf_item $LIBS_TO_MAKE"
2376 cf_subsets=`echo "$LIB_SUBSETS" | sed -e 's/^termlib.* //'`
2379 sed -e "s%@LIBS_TO_MAKE@%$LIBS_TO_MAKE%" \
2380 -e "s%@SHARED_LIB@%$SHARED_LIB%" \
2381 $cf_dir/Makefile >$cf_dir/Makefile.out
2382 mv $cf_dir/Makefile.out $cf_dir/Makefile
2384 $AWK -f $srcdir/mk-0th.awk \
2385 libname="${cf_dir}${LIB_SUFFIX}" subsets="$LIB_SUBSETS" \
2386 $srcdir/$cf_dir/modules >>$cf_dir/Makefile
2388 for cf_subset in $cf_subsets
2391 for cf_item in $cf_LIST_MODELS
2393 echo "Appending rules for ${cf_item} model (${cf_dir}: ${cf_subset})"
2394 CF_UPPER(cf_ITEM,$cf_item)
2395 CF_LIB_SUFFIX($cf_item,cf_suffix,cf_depsuf)
2396 CF_OBJ_SUBDIR($cf_item,cf_subdir)
2398 # Test for case where we build libtinfo with a different name.
2400 if test $cf_dir = ncurses ; then
2403 cf_libname=${cf_libname}$LIB_SUFFIX
2406 cf_libname=$TINFO_LIB_SUFFIX
2409 cf_libname=$TICS_LIB_SUFFIX
2413 cf_libname=${cf_libname}$LIB_SUFFIX
2415 if test -n "${DFT_ARG_SUFFIX}" ; then
2416 # undo $LIB_SUFFIX add-on in CF_LIB_SUFFIX
2417 cf_suffix=`echo $cf_suffix |sed -e "s%^${LIB_SUFFIX}%%"`
2420 # These dependencies really are for development, not
2421 # builds, but they are useful in porting, too.
2422 cf_depend="../include/ncurses_cfg.h"
2423 if test "$srcdir" = "."; then
2426 cf_reldir="\${srcdir}"
2429 if test -f $srcdir/$cf_dir/$cf_dir.priv.h; then
2430 cf_depend="$cf_depend $cf_reldir/$cf_dir.priv.h"
2431 elif test -f $srcdir/$cf_dir/curses.priv.h; then
2432 cf_depend="$cf_depend $cf_reldir/curses.priv.h"
2436 old_cf_suffix="$cf_suffix"
2437 if test "$cf_cv_shlib_version_infix" = yes ; then
2438 if test -n "$LIB_SUFFIX" ; then
2441 cf_libname=`echo $cf_libname | sed 's/w$//'`
2442 cf_suffix=`echo $cf_suffix | sed 's/^w//'`
2449 $AWK -f $srcdir/mk-1st.awk \
2450 name=${cf_libname}${cf_dir_suffix} \
2451 traces=$LIB_TRACING \
2457 TermlibRoot=$TINFO_NAME \
2458 TermlibSuffix=$TINFO_SUFFIX \
2459 ShlibVer=$cf_cv_shlib_version \
2460 ShlibVerInfix=$cf_cv_shlib_version_infix \
2461 ReLink=${cf_cv_do_relink-no} \
2462 DoLinks=$cf_cv_do_symlinks \
2463 rmSoLocs=$cf_cv_rm_so_locs \
2464 ldconfig="$LDCONFIG" \
2465 overwrite=$WITH_OVERWRITE \
2466 depend="$cf_depend" \
2468 $srcdir/$cf_dir/modules >>$cf_dir/Makefile
2470 cf_suffix="$old_cf_suffix"
2472 for cf_subdir2 in $cf_subdirs lib
2474 test $cf_subdir = $cf_subdir2 && break
2476 test "${cf_subset}.${cf_subdir2}" != "${cf_subset}.${cf_subdir}" && \
2477 $AWK -f $srcdir/mk-2nd.awk \
2479 traces=$LIB_TRACING \
2485 crenames=$cf_cv_prog_CC_c_o \
2486 cxxrenames=$cf_cv_prog_CXX_c_o \
2487 $srcdir/$cf_dir/modules >>$cf_dir/Makefile
2488 cf_subdirs="$cf_subdirs $cf_subdir"
2493 echo ' cd '$cf_dir' && ${MAKE} ${CF_MFLAGS} [$]@' >>Makefile
2496 for cf_dir in $SRC_SUBDIRS
2498 if test ! -d $srcdir/$cf_dir ; then
2502 if test -f $cf_dir/Makefile ; then
2505 echo 'libs \' >> Makefile
2506 echo 'install.libs \' >> Makefile
2507 echo 'uninstall.libs ::' >> Makefile
2508 echo ' cd '$cf_dir' && ${MAKE} ${CF_MFLAGS} [$]@' >> Makefile
2513 if test -f $srcdir/$cf_dir/modules; then
2515 if test -f $srcdir/$cf_dir/headers; then
2516 cat >> Makefile <<CF_EOF
2518 uninstall.includes \\
2521 if test "$cf_dir" != "c++" ; then
2522 echo 'lint \' >> Makefile
2524 cat >> Makefile <<CF_EOF
2530 uninstall.$cf_dir ::
2531 cd $cf_dir && \${MAKE} \${CF_MFLAGS} \[$]@
2533 elif test -f $srcdir/$cf_dir/headers; then
2534 cat >> Makefile <<CF_EOF
2540 uninstall.includes ::
2541 cd $cf_dir && \${MAKE} \${CF_MFLAGS} \[$]@
2546 cat >> Makefile <<CF_EOF
2548 install.libs uninstall.libs \\
2549 install.data uninstall.data ::
2550 $MAKE_TERMINFO cd misc && \${MAKE} \${CF_MFLAGS} \[$]@
2553 if test "x$cf_with_manpages" = xyes; then
2554 cat >> Makefile <<CF_EOF
2558 cd man && \${MAKE} \${CF_MFLAGS} \[$]@
2562 cat >> Makefile <<CF_EOF
2565 rm -f config.cache config.log config.status Makefile include/ncurses_cfg.h
2566 rm -f headers.sh headers.sed mk_shared_lib.sh
2567 rm -f edit_man.* man_alias.*
2568 rm -rf \${DIRS_TO_MAKE}
2571 # Special case: tack's manpage lives in its own directory.
2572 if test "x$cf_with_manpages" = xyes; then
2573 if test -d tack ; then
2574 if test -f $srcdir/$tack.h; then
2575 cat >> Makefile <<CF_EOF
2579 cd tack && \${MAKE} \${CF_MFLAGS} \[$]@
2585 dnl If we're installing into a subdirectory of /usr/include, etc., we should
2586 dnl prepend the subdirectory's name to the "#include" paths. It won't hurt
2587 dnl anything, and will make it more standardized. It's awkward to decide this
2588 dnl at configuration because of quoting, so we'll simply make all headers
2589 dnl installed via a script that can do the right thing.
2591 rm -f headers.sed headers.sh
2593 dnl ( generating this script makes the makefiles a little tidier :-)
2594 echo creating headers.sh
2595 cat >headers.sh <<CF_EOF
2597 # This shell script is generated by the 'configure' script. It is invoked in a
2598 # subdirectory of the build tree. It generates a sed-script in the parent
2599 # directory that is used to adjust includes for header files that reside in a
2600 # subdirectory of /usr/include, etc.
2602 while test \[$]# != 3
2604 PRG="\$PRG \[$]1"; shift
2609 TMPSRC=\${TMPDIR-/tmp}/\`basename \$SRC\`\$\$
2610 TMPSED=\${TMPDIR-/tmp}/headers.sed\$\$
2611 echo installing \$SRC in \$DST
2614 if test $WITH_CURSES_H = yes; then
2615 cat >>headers.sh <<CF_EOF
2618 END=\`basename \$DST\`
2619 for i in \`cat \$REF/../*/headers |fgrep -v "#"\`
2621 NAME=\`basename \$i\`
2622 echo "s/<\$NAME>/<\$END\/\$NAME>/" >> \$TMPSED
2632 cat >>headers.sh <<CF_EOF
2635 END=\`basename \$DST\`
2636 for i in \`cat \$REF/../*/headers |fgrep -v "#"\`
2638 NAME=\`basename \$i\`
2639 if test "\$NAME" = "curses.h"
2641 echo "s/<curses.h>/<ncurses.h>/" >> \$TMPSED
2644 echo "s/<\$NAME>/<\$END\/\$NAME>/" >> \$TMPSED
2648 echo "s/<curses.h>/<ncurses.h>/" >> \$TMPSED
2653 cat >>headers.sh <<CF_EOF
2655 sed -f \$TMPSED \$SRC > \$TMPSRC
2656 NAME=\`basename \$SRC\`
2658 if test $WITH_CURSES_H != yes; then
2659 cat >>headers.sh <<CF_EOF
2660 test "\$NAME" = "curses.h" && NAME=ncurses.h
2663 cat >>headers.sh <<CF_EOF
2664 # Just in case someone gzip'd manpages, remove the conflicting copy.
2665 test -f \$DST/\$NAME.gz && rm -f \$DST/\$NAME.gz
2667 eval \$PRG \$TMPSRC \$DST/\$NAME
2668 rm -f \$TMPSRC \$TMPSED
2671 chmod 0755 headers.sh
2673 for cf_dir in $SRC_SUBDIRS
2675 if test ! -d $srcdir/$cf_dir ; then
2679 if test -f $srcdir/$cf_dir/headers; then
2680 $AWK -f $srcdir/mk-hdr.awk \
2681 subset="$LIB_SUBSETS" \
2682 compat="$WITH_CURSES_H" \
2683 $srcdir/$cf_dir/headers >>$cf_dir/Makefile
2686 if test -f $srcdir/$cf_dir/modules; then
2687 if test "$cf_dir" != "c++" ; then
2688 cat >>$cf_dir/Makefile <<"CF_EOF"
2689 depend : ${AUTO_SRC}
2690 makedepend -- ${CPPFLAGS} -- ${C_SRC}
2692 # DO NOT DELETE THIS LINE -- make depend depends on it.
2699 dnl ---------------------------------------------------------------------------
2700 dnl CF_LIB_SONAME version: 3 updated: 2006/12/16 15:55:46
2702 dnl Find the and soname for the given shared library. Set the cache variable
2703 dnl cf_cv_$3_soname to this, unless it is not found. Then set the cache
2704 dnl variable to "unknown".
2708 dnl $3 = library name
2709 AC_DEFUN([CF_LIB_SONAME],
2711 AC_CACHE_CHECK(for soname of $3 library,cf_cv_$3_soname,[
2713 cf_cv_$3_soname=unknown
2714 if test "$cross_compiling" != yes ; then
2715 cat >conftest.$ac_ext <<CF_EOF
2720 ${cf_cv_main_return:-return}(0);
2723 cf_save_LIBS="$LIBS"
2725 if AC_TRY_EVAL(ac_compile) ; then
2726 if AC_TRY_EVAL(ac_link) ; then
2727 cf_cv_$3_soname=`ldd conftest$ac_exeext 2>/dev/null | sed -e 's,^.*/,,' -e 's, .*$,,' | fgrep lib$3.`
2728 test -z "$cf_cv_$3_soname" && cf_cv_$3_soname=unknown
2732 LIBS="$cf_save_LIBS"
2736 dnl ---------------------------------------------------------------------------
2737 dnl CF_LIB_SUFFIX version: 16 updated: 2008/12/27 12:30:03
2739 dnl Compute the library file-suffix from the given model name
2741 dnl $2 = variable to set (the nominal library suffix)
2742 dnl $3 = dependency variable to set (actual filename)
2743 dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
2744 AC_DEFUN([CF_LIB_SUFFIX],
2746 AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
2765 case $cf_cv_system_name in
2795 test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
2796 test -n "$LIB_SUFFIX" && $3="${LIB_SUFFIX}[$]{$3}"
2798 dnl ---------------------------------------------------------------------------
2799 dnl CF_LIB_TYPE version: 4 updated: 2000/10/20 22:57:49
2801 dnl Compute the string to append to -library from the given model name
2803 dnl $2 = variable to set
2804 dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
2805 AC_DEFUN([CF_LIB_TYPE],
2814 test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
2816 dnl ---------------------------------------------------------------------------
2817 dnl CF_LINK_DATAONLY version: 8 updated: 2006/12/16 12:33:30
2818 dnl ----------------
2819 dnl Some systems have a non-ANSI linker that doesn't pull in modules that have
2820 dnl only data (i.e., no functions), for example NeXT. On those systems we'll
2821 dnl have to provide wrappers for global tables to ensure they're linked
2823 AC_DEFUN([CF_LINK_DATAONLY],
2825 AC_MSG_CHECKING([if data-only library module links])
2826 AC_CACHE_VAL(cf_cv_link_dataonly,[
2828 cat >conftest.$ac_ext <<EOF
2829 #line __oline__ "configure"
2830 int testdata[[3]] = { 123, 456, 789 };
2832 if AC_TRY_EVAL(ac_compile) ; then
2833 mv conftest.o data.o && \
2834 ( $AR $AR_OPTS conftest.a data.o ) 2>&AC_FD_CC 1>/dev/null
2836 rm -f conftest.$ac_ext data.o
2837 cat >conftest.$ac_ext <<EOF
2838 #line __oline__ "configure"
2842 ${cf_cv_main_return:-return}(1); /* I'm told this linker is broken */
2844 extern int testdata[[3]];
2845 return testdata[[0]] == 123
2846 && testdata[[1]] == 456
2847 && testdata[[2]] == 789;
2851 if AC_TRY_EVAL(ac_compile); then
2852 mv conftest.o func.o && \
2853 ( $AR $AR_OPTS conftest.a func.o ) 2>&AC_FD_CC 1>/dev/null
2855 rm -f conftest.$ac_ext func.o
2856 ( eval $RANLIB conftest.a ) 2>&AC_FD_CC >/dev/null
2858 LIBS="conftest.a $LIBS"
2862 extern int testfunc();
2863 ${cf_cv_main_return:-return} (!testfunc());
2866 [cf_cv_link_dataonly=yes],
2867 [cf_cv_link_dataonly=no],
2868 [cf_cv_link_dataonly=unknown])
2871 AC_MSG_RESULT($cf_cv_link_dataonly)
2873 if test "$cf_cv_link_dataonly" = no ; then
2874 AC_DEFINE(BROKEN_LINKER)
2879 dnl ---------------------------------------------------------------------------
2880 dnl CF_LINK_FUNCS version: 7 updated: 2006/12/16 12:33:30
2882 dnl Most Unix systems have both link and symlink, a few don't have symlink.
2883 dnl A few non-Unix systems implement symlink, but not link.
2884 dnl A few non-systems implement neither (or have nonfunctional versions).
2885 AC_DEFUN([CF_LINK_FUNCS],
2891 if test "$cross_compiling" = yes ; then
2896 AC_CACHE_CHECK(if link/symlink functions work,cf_cv_link_funcs,[
2898 for cf_func in link symlink ; do
2900 #include <sys/types.h>
2901 #include <sys/stat.h>
2902 #ifdef HAVE_UNISTD_H
2908 char *src = "config.log";
2909 char *dst = "conftest.chk";
2914 fail = ($cf_func("config.log", "conftest.chk") < 0)
2915 || (stat(dst, &dst_sb) < 0)
2916 || (dst_sb.st_mtime != src_sb.st_mtime);
2922 ${cf_cv_main_return:-return} (fail);
2925 cf_cv_link_funcs="$cf_cv_link_funcs $cf_func"
2926 eval 'ac_cv_func_'$cf_func'=yes'],[
2927 eval 'ac_cv_func_'$cf_func'=no'],[
2928 eval 'ac_cv_func_'$cf_func'=error'])
2930 test -z "$cf_cv_link_funcs" && cf_cv_link_funcs=no
2932 test "$ac_cv_func_link" = yes && AC_DEFINE(HAVE_LINK)
2933 test "$ac_cv_func_symlink" = yes && AC_DEFINE(HAVE_SYMLINK)
2936 dnl ---------------------------------------------------------------------------
2937 dnl CF_MAIN_RETURN version: 1 updated: 2006/12/10 09:51:54
2939 dnl Check if a return from main to the shell actually returns the same exit
2940 dnl code. This is true for almost any POSIX environment.
2942 dnl Some very old environments did not flush stdout, etc., on an exit. That
2943 dnl would be a useful case to test for also.
2944 AC_DEFUN([CF_MAIN_RETURN],
2946 cf_cv_main_return=return
2948 dnl ---------------------------------------------------------------------------
2949 dnl CF_MAKEFLAGS version: 12 updated: 2006/10/21 08:27:03
2951 dnl Some 'make' programs support ${MAKEFLAGS}, some ${MFLAGS}, to pass 'make'
2952 dnl options to lower-levels. It's very useful for "make -n" -- if we have it.
2953 dnl (GNU 'make' does both, something POSIX 'make', which happens to make the
2954 dnl ${MAKEFLAGS} variable incompatible because it adds the assignments :-)
2955 AC_DEFUN([CF_MAKEFLAGS],
2957 AC_CACHE_CHECK(for makeflags variable, cf_cv_makeflags,[
2959 for cf_option in '-${MAKEFLAGS}' '${MFLAGS}'
2961 cat >cf_makeflags.tmp <<CF_EOF
2964 @ echo '.$cf_option'
2966 cf_result=`${MAKE-make} -k -f cf_makeflags.tmp 2>/dev/null | sed -e 's,[[ ]]*$,,'`
2967 case "$cf_result" in
2969 cf_result=`${MAKE-make} -k -f cf_makeflags.tmp CC=cc 2>/dev/null`
2970 case "$cf_result" in
2971 .*CC=*) cf_cv_makeflags=
2973 *) cf_cv_makeflags=$cf_option
2979 *) echo "given option \"$cf_option\", no match \"$cf_result\""
2983 rm -f cf_makeflags.tmp
2986 AC_SUBST(cf_cv_makeflags)
2988 dnl ---------------------------------------------------------------------------
2989 dnl CF_MAKE_TAGS version: 2 updated: 2000/10/04 09:18:40
2991 dnl Generate tags/TAGS targets for makefiles. Do not generate TAGS if we have
2992 dnl a monocase filesystem.
2993 AC_DEFUN([CF_MAKE_TAGS],[
2994 AC_REQUIRE([CF_MIXEDCASE_FILENAMES])
2995 AC_CHECK_PROG(MAKE_LOWER_TAGS, ctags, yes, no)
2997 if test "$cf_cv_mixedcase" = yes ; then
2998 AC_CHECK_PROG(MAKE_UPPER_TAGS, etags, yes, no)
3003 if test "$MAKE_UPPER_TAGS" = yes ; then
3008 AC_SUBST(MAKE_UPPER_TAGS)
3010 if test "$MAKE_LOWER_TAGS" = yes ; then
3015 AC_SUBST(MAKE_LOWER_TAGS)
3017 dnl ---------------------------------------------------------------------------
3018 dnl CF_MANPAGE_FORMAT version: 7 updated: 2003/12/20 19:30:34
3019 dnl -----------------
3020 dnl Option to allow user to override automatic configuration of manpage format.
3021 dnl There are several special cases:
3023 dnl gzip - man checks for, can display gzip'd files
3024 dnl compress - man checks for, can display compressed files
3025 dnl BSDI - files in the cat-directories are suffixed ".0"
3026 dnl formatted - installer should format (put files in cat-directory)
3027 dnl catonly - installer should only format, e.g., for a turnkey system.
3029 dnl There are other configurations which this macro does not test, e.g., HPUX's
3030 dnl compressed manpages (but uncompressed manpages are fine, and HPUX's naming
3031 dnl convention would not match our use).
3032 AC_DEFUN([CF_MANPAGE_FORMAT],
3034 AC_REQUIRE([CF_PATHSEP])
3035 AC_MSG_CHECKING(format of man-pages)
3037 AC_ARG_WITH(manpage-format,
3038 [ --with-manpage-format specify manpage-format: gzip/compress/BSDI/normal and
3039 optionally formatted/catonly, e.g., gzip,formatted],
3040 [MANPAGE_FORMAT=$withval],
3041 [MANPAGE_FORMAT=unknown])
3043 test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=unknown
3044 MANPAGE_FORMAT=`echo "$MANPAGE_FORMAT" | sed -e 's/,/ /g'`
3048 case $MANPAGE_FORMAT in
3050 if test -z "$MANPATH" ; then
3051 MANPATH="/usr/man:/usr/share/man"
3054 # look for the 'date' man-page (it's most likely to be installed!)
3060 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATHSEP}"
3061 for cf_dir in $MANPATH; do
3062 test -z "$cf_dir" && cf_dir=/usr/man
3063 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
3065 cf_test=`echo $cf_name | sed -e 's/*//'`
3066 if test "x$cf_test" = "x$cf_name" ; then
3069 *.gz) MANPAGE_FORMAT="$MANPAGE_FORMAT gzip";;
3070 *.Z) MANPAGE_FORMAT="$MANPAGE_FORMAT compress";;
3071 *.0) MANPAGE_FORMAT="$MANPAGE_FORMAT BSDI";;
3072 *) MANPAGE_FORMAT="$MANPAGE_FORMAT normal";;
3086 # if we found a match in either man* or cat*, stop looking
3087 if test -n "$MANPAGE_FORMAT" ; then
3089 test "$cf_preform" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT formatted"
3090 test "$cf_catonly" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT catonly"
3096 test $cf_found=yes && break
3099 # only check the first directory in $MANPATH where we find manpages
3100 if test -n "$MANPAGE_FORMAT" ; then
3104 # if we did not find the example, just assume it is normal
3105 test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=normal
3109 for cf_option in $MANPAGE_FORMAT; do
3110 case $cf_option in #(vi
3111 gzip|compress|BSDI|normal|formatted|catonly)
3114 cf_unknown="$cf_unknown $cf_option"
3121 AC_MSG_RESULT($MANPAGE_FORMAT)
3122 if test -n "$cf_unknown" ; then
3123 AC_MSG_WARN(Unexpected manpage-format $cf_unknown)
3126 dnl ---------------------------------------------------------------------------
3127 dnl CF_MANPAGE_RENAMES version: 7 updated: 2005/06/18 18:51:57
3128 dnl ------------------
3129 dnl The Debian people have their own naming convention for manpages. This
3130 dnl option lets us override the name of the file containing renaming, or
3131 dnl disable it altogether.
3132 AC_DEFUN([CF_MANPAGE_RENAMES],
3134 AC_MSG_CHECKING(for manpage renaming)
3136 AC_ARG_WITH(manpage-renames,
3137 [ --with-manpage-renames specify manpage-renaming],
3138 [MANPAGE_RENAMES=$withval],
3139 [MANPAGE_RENAMES=yes])
3141 case ".$MANPAGE_RENAMES" in #(vi
3145 # Debian 'man' program?
3146 if test -f /etc/debian_version ; then
3147 MANPAGE_RENAMES=`cd $srcdir && pwd`/man/man_db.renames
3154 if test "$MANPAGE_RENAMES" != no ; then
3155 if test -f $srcdir/man/$MANPAGE_RENAMES ; then
3156 MANPAGE_RENAMES=`cd $srcdir/man && pwd`/$MANPAGE_RENAMES
3157 elif test ! -f $MANPAGE_RENAMES ; then
3158 AC_MSG_ERROR(not a filename: $MANPAGE_RENAMES)
3161 test ! -d man && mkdir man
3163 # Construct a sed-script to perform renaming within man-pages
3164 if test -n "$MANPAGE_RENAMES" ; then
3165 test ! -d man && mkdir man
3166 sh $srcdir/man/make_sed.sh $MANPAGE_RENAMES >./edit_man.sed
3170 AC_MSG_RESULT($MANPAGE_RENAMES)
3171 AC_SUBST(MANPAGE_RENAMES)
3173 dnl ---------------------------------------------------------------------------
3174 dnl CF_MANPAGE_SYMLINKS version: 4 updated: 2003/12/13 18:01:58
3175 dnl -------------------
3176 dnl Some people expect each tool to make all aliases for manpages in the
3177 dnl man-directory. This accommodates the older, less-capable implementations
3178 dnl of 'man', and is optional.
3179 AC_DEFUN([CF_MANPAGE_SYMLINKS],
3181 AC_MSG_CHECKING(if manpage aliases will be installed)
3183 AC_ARG_WITH(manpage-aliases,
3184 [ --with-manpage-aliases specify manpage-aliases using .so],
3185 [MANPAGE_ALIASES=$withval],
3186 [MANPAGE_ALIASES=yes])
3188 AC_MSG_RESULT($MANPAGE_ALIASES)
3190 if test "$LN_S" = "ln -s"; then
3197 if test "$MANPAGE_ALIASES" = yes ; then
3198 AC_MSG_CHECKING(if manpage symlinks should be used)
3200 AC_ARG_WITH(manpage-symlinks,
3201 [ --with-manpage-symlinks specify manpage-aliases using symlinks],
3202 [MANPAGE_SYMLINKS=$withval],
3203 [MANPAGE_SYMLINKS=$cf_use_symlinks])
3205 if test "$$cf_use_symlinks" = no; then
3206 if test "$MANPAGE_SYMLINKS" = yes ; then
3207 AC_MSG_WARN(cannot make symlinks, will use .so files)
3212 AC_MSG_RESULT($MANPAGE_SYMLINKS)
3216 dnl ---------------------------------------------------------------------------
3217 dnl CF_MANPAGE_TBL version: 3 updated: 2002/01/19 22:51:32
3219 dnl This option causes manpages to be run through tbl(1) to generate tables
3221 AC_DEFUN([CF_MANPAGE_TBL],
3223 AC_MSG_CHECKING(for manpage tbl)
3225 AC_ARG_WITH(manpage-tbl,
3226 [ --with-manpage-tbl specify manpage processing with tbl],
3227 [MANPAGE_TBL=$withval],
3230 AC_MSG_RESULT($MANPAGE_TBL)
3232 dnl ---------------------------------------------------------------------------
3233 dnl CF_MAN_PAGES version: 35 updated: 2007/03/31 11:47:29
3235 dnl Try to determine if the man-pages on the system are compressed, and if
3236 dnl so, what format is used. Use this information to construct a script that
3237 dnl will install man-pages.
3238 AC_DEFUN([CF_MAN_PAGES],
3240 CF_HELP_MESSAGE(Options to Specify How Manpages are Installed:)
3246 if test "$prefix" = "NONE" ; then
3247 cf_prefix="$ac_default_prefix"
3252 case "$MANPAGE_FORMAT" in # (vi
3267 test ! -d man && mkdir man
3271 case "$MANPAGE_FORMAT" in #(vi
3274 cf_compress=compress
3282 cf_edit_man=./edit_man.sh
3283 cf_man_alias=`pwd`/man_alias.sed
3285 cat >$cf_edit_man <<CF_EOF
3287 # this script is generated by the configure-script CF_MAN_PAGES macro.
3292 NCURSES_MAJOR="$NCURSES_MAJOR"
3293 NCURSES_MINOR="$NCURSES_MINOR"
3294 NCURSES_PATCH="$NCURSES_PATCH"
3296 NCURSES_OSPEED="$NCURSES_OSPEED"
3297 TERMINFO="$TERMINFO"
3299 MKDIRS="sh `cd $srcdir && pwd`/mkdirs.sh"
3302 INSTALL_DATA="$INSTALL_DATA"
3304 transform="$program_transform_name"
3306 TMP=\${TMPDIR-/tmp}/man\$\$
3307 trap "rm -f \$TMP" 0 1 2 5 15
3319 top_srcdir=\[$]srcdir/..
3322 if test "\$form" = normal ; then
3323 if test "$cf_format" = yes ; then
3324 if test "$cf_inboth" = no ; then
3325 sh \[$]0 format \$verb \$mandir \$srcdir \[$]*
3329 cf_subdir=\$mandir/man
3330 cf_tables=$MANPAGE_TBL
3332 cf_subdir=\$mandir/cat
3336 # process the list of source-files
3339 *.orig|*.rej) ;; #(vi
3341 section=\`expr "\$i" : '.*\\.\\([[0-9]]\\)[[xm]]*'\`;
3342 if test \$verb = installing ; then
3343 if test ! -d \$cf_subdir\${section} ; then
3344 \$MKDIRS \$cf_subdir\$section
3348 # replace variables in man page
3349 if test ! -f $cf_man_alias ; then
3350 cat >>$cf_man_alias <<-CF_EOF2
3351 s,@DATADIR@,\$datadir,g
3352 s,@TERMINFO@,\$TERMINFO,g
3353 s,@NCURSES_MAJOR@,\$NCURSES_MAJOR,g
3354 s,@NCURSES_MINOR@,\$NCURSES_MINOR,g
3355 s,@NCURSES_PATCH@,\$NCURSES_PATCH,g
3356 s,@NCURSES_OSPEED@,\$NCURSES_OSPEED,g
3361 cf_NAME=`echo "$cf_name" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
3362 cf_name=`echo $cf_name|sed "$program_transform_name"`
3363 cat >>$cf_edit_man <<-CF_EOF
3364 s,@$cf_NAME@,$cf_name,
3368 cat >>$cf_edit_man <<CF_EOF
3370 echo "...made $cf_man_alias"
3374 cf_source=\`basename \$i\`
3376 test ! -f \$inalias && inalias="\$srcdir/\$inalias"
3377 if test ! -f \$inalias ; then
3378 echo .. skipped \$cf_source
3383 if test "$MANPAGE_ALIASES" != no ; then
3384 cat >>$cf_edit_man <<CF_EOF
3385 aliases=\`sed -f \$top_srcdir/man/manlinks.sed \$inalias |sed -f $cf_man_alias | sort -u\`
3389 if test "$MANPAGE_RENAMES" = no ; then
3390 cat >>$cf_edit_man <<CF_EOF
3391 # perform program transformations for section 1 man pages
3392 if test \$section = 1 ; then
3393 cf_target=\$cf_subdir\${section}/\`echo \$cf_source|sed "\${transform}"\`
3395 cf_target=\$cf_subdir\${section}/\$cf_source
3399 cat >>$cf_edit_man <<CF_EOF
3400 cf_target=\`grep "^\$cf_source" $MANPAGE_RENAMES | $AWK '{print \[$]2}'\`
3401 if test -z "\$cf_target" ; then
3402 echo '? missing rename for '\$cf_source
3403 cf_target="\$cf_source"
3405 cf_target="\$cf_subdir\${section}/\${cf_target}"
3410 cat >>$cf_edit_man <<CF_EOF
3411 sed -f $cf_man_alias \\
3414 if test -f $MANPAGE_RENAMES ; then
3415 cat >>$cf_edit_man <<CF_EOF
3416 < \$i | sed -f `pwd`/edit_man.sed >\$TMP
3419 cat >>$cf_edit_man <<CF_EOF
3424 cat >>$cf_edit_man <<CF_EOF
3425 if test \$cf_tables = yes ; then
3426 tbl \$TMP >\$TMP.out
3431 if test $with_curses_h != yes ; then
3432 cat >>$cf_edit_man <<CF_EOF
3433 sed -e "/\#[ ]*include/s,curses.h,ncurses.h," < \$TMP >\$TMP.out
3438 cat >>$cf_edit_man <<CF_EOF
3439 if test \$form = format ; then
3440 nroff -man \$TMP >\$TMP.out
3445 if test -n "$cf_compress" ; then
3446 cat >>$cf_edit_man <<CF_EOF
3447 if test \$verb = installing ; then
3448 if ( $cf_compress -f \$TMP )
3450 mv \$TMP.$cf_so_strip \$TMP
3453 cf_target="\$cf_target.$cf_so_strip"
3457 case "$MANPAGE_FORMAT" in #(vi
3459 cat >>$cf_edit_man <<CF_EOF
3460 if test \$form = format ; then
3461 # BSDI installs only .0 suffixes in the cat directories
3462 cf_target="\`echo \$cf_target|sed -e 's/\.[[1-9]]\+[[a-z]]*/.0/'\`"
3468 cat >>$cf_edit_man <<CF_EOF
3469 suffix=\`basename \$cf_target | sed -e 's%^[[^.]]*%%'\`
3470 if test \$verb = installing ; then
3471 echo \$verb \$cf_target
3472 \$INSTALL_DATA \$TMP \$cf_target
3473 test -d \$cf_subdir\${section} &&
3474 test -n "\$aliases" && (
3475 cd \$cf_subdir\${section} && (
3476 cf_source=\`echo \$cf_target |sed -e 's%^.*/\([[^/]][[^/]]*/[[^/]][[^/]]*$\)%\1%'\`
3477 test -n "$cf_so_strip" && cf_source=\`echo \$cf_source |sed -e 's%\.$cf_so_strip\$%%'\`
3478 cf_target=\`basename \$cf_target\`
3479 for cf_alias in \$aliases
3481 if test \$section = 1 ; then
3482 cf_alias=\`echo \$cf_alias|sed "\${transform}"\`
3485 if test "$MANPAGE_SYMLINKS" = yes ; then
3486 if test -f \$cf_alias\${suffix} ; then
3487 if ( cmp -s \$cf_target \$cf_alias\${suffix} )
3492 echo .. \$verb alias \$cf_alias\${suffix}
3493 rm -f \$cf_alias\${suffix}
3494 $LN_S \$cf_target \$cf_alias\${suffix}
3495 elif test "\$cf_target" != "\$cf_alias\${suffix}" ; then
3496 echo ".so \$cf_source" >\$TMP
3498 if test -n "$cf_compress" ; then
3499 cat >>$cf_edit_man <<CF_EOF
3500 if test -n "$cf_so_strip" ; then
3501 $cf_compress -f \$TMP
3502 mv \$TMP.$cf_so_strip \$TMP
3506 cat >>$cf_edit_man <<CF_EOF
3507 echo .. \$verb alias \$cf_alias\${suffix}
3508 rm -f \$cf_alias\${suffix}
3509 \$INSTALL_DATA \$TMP \$cf_alias\${suffix}
3514 elif test \$verb = removing ; then
3515 test -f \$cf_target && (
3516 echo \$verb \$cf_target
3519 test -d \$cf_subdir\${section} &&
3520 test -n "\$aliases" && (
3521 cd \$cf_subdir\${section} && (
3522 for cf_alias in \$aliases
3524 if test \$section = 1 ; then
3525 cf_alias=\`echo \$cf_alias|sed "\${transform}"\`
3528 echo .. \$verb alias \$cf_alias\${suffix}
3529 rm -f \$cf_alias\${suffix}
3541 if test $cf_inboth = yes ; then
3542 if test \$form != format ; then
3543 sh \[$]0 format \$verb \$mandir \$srcdir \[$]*
3549 chmod 755 $cf_edit_man
3552 dnl ---------------------------------------------------------------------------
3553 dnl CF_MATH_LIB version: 5 updated: 2000/05/28 01:39:10
3555 dnl Checks for libraries. At least one UNIX system, Apple Macintosh
3556 dnl Rhapsody 5.5, does not have -lm. We cannot use the simpler
3557 dnl AC_CHECK_LIB(m,sin), because that fails for C++.
3558 AC_DEFUN([CF_MATH_LIB],
3560 AC_CACHE_CHECK(if -lm needed for math functions,
3566 [double x = rand(); printf("result = %g\n", ]ifelse($2,,sin(x),$2)[)],
3567 [cf_cv_need_libm=no],
3568 [cf_cv_need_libm=yes])])
3569 if test "$cf_cv_need_libm" = yes
3576 dnl ---------------------------------------------------------------------------
3577 dnl CF_MIXEDCASE_FILENAMES version: 3 updated: 2003/09/20 17:07:55
3578 dnl ----------------------
3579 dnl Check if the file-system supports mixed-case filenames. If we're able to
3580 dnl create a lowercase name and see it as uppercase, it doesn't support that.
3581 AC_DEFUN([CF_MIXEDCASE_FILENAMES],
3583 AC_CACHE_CHECK(if filesystem supports mixed-case filenames,cf_cv_mixedcase,[
3584 if test "$cross_compiling" = yes ; then
3585 case $target_alias in #(vi
3586 *-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-mingw32*|*-uwin*) #(vi
3594 rm -f conftest CONFTEST
3596 if test -f CONFTEST ; then
3601 rm -f conftest CONFTEST
3604 test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES)
3606 dnl ---------------------------------------------------------------------------
3607 dnl CF_MKSTEMP version: 5 updated: 2006/12/16 12:33:30
3609 dnl Check for a working mkstemp. This creates two files, checks that they are
3610 dnl successfully created and distinct (AmigaOS apparently fails on the last).
3611 AC_DEFUN([CF_MKSTEMP],[
3612 AC_CACHE_CHECK(for working mkstemp, cf_cv_func_mkstemp,[
3615 #include <sys/types.h>
3619 #include <sys/stat.h>
3622 char *tmpl = "conftestXXXXXX";
3630 for (n = 0; n < 2; ++n) {
3631 strcpy(name[n], tmpl);
3632 if ((fd = mkstemp(name[n])) >= 0) {
3633 if (!strcmp(name[n], tmpl)
3634 || stat(name[n], &sb) != 0
3635 || (sb.st_mode & S_IFMT) != S_IFREG
3636 || (sb.st_mode & 077) != 0) {
3643 && !strcmp(name[0], name[1]))
3645 ${cf_cv_main_return:-return}(result);
3647 ],[cf_cv_func_mkstemp=yes
3648 ],[cf_cv_func_mkstemp=no
3649 ],[AC_CHECK_FUNC(mkstemp)
3652 if test "$cf_cv_func_mkstemp" = yes ; then
3653 AC_DEFINE(HAVE_MKSTEMP)
3656 dnl ---------------------------------------------------------------------------
3657 dnl CF_MSG_LOG version: 4 updated: 2007/07/29 09:55:12
3659 dnl Write a debug message to config.log, along with the line number in the
3660 dnl configure script.
3661 AC_DEFUN([CF_MSG_LOG],[
3662 echo "${as_me-configure}:__oline__: testing $* ..." 1>&AC_FD_CC
3664 dnl ---------------------------------------------------------------------------
3665 dnl CF_NCURSES_ABI_6 version: 1 updated: 2005/09/17 18:42:49
3666 dnl ----------------
3667 dnl Set ncurses' ABI to 6 unless overridden by explicit configure option, and
3668 dnl warn about this.
3669 AC_DEFUN([CF_NCURSES_ABI_6],[
3670 if test "${with_abi_version+set}" != set; then
3671 case $cf_cv_rel_version in
3673 cf_cv_rel_version=6.0
3675 AC_MSG_WARN(Overriding ABI version to $cf_cv_abi_version)
3680 dnl ---------------------------------------------------------------------------
3681 dnl CF_NO_LEAKS_OPTION version: 4 updated: 2006/12/16 14:24:05
3682 dnl ------------------
3683 dnl see CF_WITH_NO_LEAKS
3684 AC_DEFUN([CF_NO_LEAKS_OPTION],[
3685 AC_MSG_CHECKING(if you want to use $1 for testing)
3688 [AC_DEFINE($3)ifelse([$4],,[
3691 : ${with_cflags:=-g}
3692 : ${with_no_leaks:=yes}
3695 AC_MSG_RESULT(${with_$1:-no})
3697 case .$with_cflags in #(vi
3699 case .$CFLAGS in #(vi
3709 dnl ---------------------------------------------------------------------------
3710 dnl CF_NUMBER_SYNTAX version: 1 updated: 2003/09/20 18:12:49
3711 dnl ----------------
3712 dnl Check if the given variable is a number. If not, report an error.
3713 dnl $1 is the variable
3714 dnl $2 is the message
3715 AC_DEFUN([CF_NUMBER_SYNTAX],[
3716 if test -n "$1" ; then
3721 AC_MSG_ERROR($2 is not a number: $1)
3725 AC_MSG_ERROR($2 value is empty)
3728 dnl ---------------------------------------------------------------------------
3729 dnl CF_OBJ_SUBDIR version: 4 updated: 2002/02/23 20:38:31
3731 dnl Compute the object-directory name from the given model name
3732 AC_DEFUN([CF_OBJ_SUBDIR],
3735 libtool) $2='obj_lo' ;;
3736 normal) $2='objects' ;;
3737 debug) $2='obj_g' ;;
3738 profile) $2='obj_p' ;;
3740 case $cf_cv_system_name in #(vi
3748 dnl ---------------------------------------------------------------------------
3749 dnl CF_PATHSEP version: 3 updated: 2001/01/12 01:23:53
3751 dnl Provide a value for the $PATH and similar separator
3752 AC_DEFUN([CF_PATHSEP],
3754 case $cf_cv_system_name in
3755 os2*) PATHSEP=';' ;;
3758 ifelse($1,,,[$1=$PATHSEP])
3761 dnl ---------------------------------------------------------------------------
3762 dnl CF_PATH_SYNTAX version: 12 updated: 2008/03/23 14:45:59
3764 dnl Check the argument to see that it looks like a pathname. Rewrite it if it
3765 dnl begins with one of the prefix/exec_prefix variables, and then again if the
3766 dnl result begins with 'NONE'. This is necessary to work around autoconf's
3767 dnl delayed evaluation of those symbols.
3768 AC_DEFUN([CF_PATH_SYNTAX],[
3769 if test "x$prefix" != xNONE; then
3770 cf_path_syntax="$prefix"
3772 cf_path_syntax="$ac_default_prefix"
3775 case ".[$]$1" in #(vi
3776 .\[$]\(*\)*|.\'*\'*) #(vi
3780 .[[a-zA-Z]]:[[\\/]]*) #(vi OS/2 EMX
3782 .\[$]{*prefix}*) #(vi
3784 case ".[$]$1" in #(vi
3786 $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
3791 $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
3794 ifelse($2,,[AC_MSG_ERROR([expected a pathname, not \"[$]$1\"])],$2)
3798 dnl ---------------------------------------------------------------------------
3799 dnl CF_POSIX_C_SOURCE version: 6 updated: 2005/07/14 20:25:10
3800 dnl -----------------
3801 dnl Define _POSIX_C_SOURCE to the given level, and _POSIX_SOURCE if needed.
3803 dnl POSIX.1-1990 _POSIX_SOURCE
3804 dnl POSIX.1-1990 and _POSIX_SOURCE and
3805 dnl POSIX.2-1992 C-Language _POSIX_C_SOURCE=2
3807 dnl POSIX.1b-1993 _POSIX_C_SOURCE=199309L
3808 dnl POSIX.1c-1996 _POSIX_C_SOURCE=199506L
3809 dnl X/Open 2000 _POSIX_C_SOURCE=200112L
3812 dnl $1 is the nominal value for _POSIX_C_SOURCE
3813 AC_DEFUN([CF_POSIX_C_SOURCE],
3815 cf_POSIX_C_SOURCE=ifelse($1,,199506L,$1)
3817 cf_save_CFLAGS="$CFLAGS"
3818 cf_save_CPPFLAGS="$CPPFLAGS"
3820 CF_REMOVE_DEFINE(cf_trim_CFLAGS,$cf_save_CFLAGS,_POSIX_C_SOURCE)
3821 CF_REMOVE_DEFINE(cf_trim_CPPFLAGS,$cf_save_CPPFLAGS,_POSIX_C_SOURCE)
3823 AC_CACHE_CHECK(if we should define _POSIX_C_SOURCE,cf_cv_posix_c_source,[
3824 CF_MSG_LOG(if the symbol is already defined go no further)
3825 AC_TRY_COMPILE([#include <sys/types.h>],[
3826 #ifndef _POSIX_C_SOURCE
3829 [cf_cv_posix_c_source=no],
3830 [cf_want_posix_source=no
3831 case .$cf_POSIX_C_SOURCE in #(vi
3833 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
3836 cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
3837 cf_want_posix_source=yes
3840 cf_want_posix_source=yes
3843 if test "$cf_want_posix_source" = yes ; then
3844 AC_TRY_COMPILE([#include <sys/types.h>],[
3845 #ifdef _POSIX_SOURCE
3848 cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE")
3850 CF_MSG_LOG(ifdef from value $cf_POSIX_C_SOURCE)
3851 CFLAGS="$cf_trim_CFLAGS"
3852 CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source"
3853 CF_MSG_LOG(if the second compile does not leave our definition intact error)
3854 AC_TRY_COMPILE([#include <sys/types.h>],[
3855 #ifndef _POSIX_C_SOURCE
3858 [cf_cv_posix_c_source=no])
3859 CFLAGS="$cf_save_CFLAGS"
3860 CPPFLAGS="$cf_save_CPPFLAGS"
3864 if test "$cf_cv_posix_c_source" != no ; then
3865 CFLAGS="$cf_trim_CFLAGS"
3866 CPPFLAGS="$cf_trim_CPPFLAGS"
3867 if test "$cf_cv_cc_u_d_options" = yes ; then
3868 cf_temp_posix_c_source=`echo "$cf_cv_posix_c_source" | \
3869 sed -e 's/-D/-U/g' -e 's/=[[^ ]]*//g'`
3870 CPPFLAGS="$CPPFLAGS $cf_temp_posix_c_source"
3872 CPPFLAGS="$CPPFLAGS $cf_cv_posix_c_source"
3876 dnl ---------------------------------------------------------------------------
3877 dnl CF_PREDEFINE version: 1 updated: 2003/07/26 17:53:56
3879 dnl Add definitions to CPPFLAGS to ensure they're predefined for all compiles.
3881 dnl $1 = symbol to test
3882 dnl $2 = value (if any) to use for a predefinition
3883 AC_DEFUN([CF_PREDEFINE],
3885 AC_MSG_CHECKING(if we must define $1)
3886 AC_TRY_COMPILE([#include <sys/types.h>
3890 #endif],[cf_result=no],[cf_result=yes])
3891 AC_MSG_RESULT($cf_result)
3893 if test "$cf_result" = yes ; then
3894 CPPFLAGS="$CPPFLAGS ifelse($2,,-D$1,[-D$1=$2])"
3895 elif test "x$2" != "x" ; then
3896 AC_MSG_CHECKING(checking for compatible value versus $2)
3897 AC_TRY_COMPILE([#include <sys/types.h>
3901 #endif],[cf_result=yes],[cf_result=no])
3902 AC_MSG_RESULT($cf_result)
3903 if test "$cf_result" = no ; then
3904 # perhaps we can override it - try...
3905 CPPFLAGS="$CPPFLAGS -D$1=$2"
3909 dnl ---------------------------------------------------------------------------
3910 dnl CF_PRG_RULES version: 1 updated: 2006/06/03 11:45:08
3912 dnl Append definitions and rules for the given programs to the subdirectory
3913 dnl Makefiles, and the recursion rule for the top-level Makefile.
3916 dnl $1 = script to run
3917 dnl $2 = list of subdirectories
3921 AC_DEFUN([CF_PRG_RULES],
3925 if test ! -d $srcdir/$cf_dir; then
3927 elif test -f $srcdir/$cf_dir/programs; then
3928 $AWK -f $1 $srcdir/$cf_dir/programs >>$cf_dir/Makefile
3933 dnl ---------------------------------------------------------------------------
3934 dnl CF_PROG_AWK version: 1 updated: 2006/09/16 11:40:59
3936 dnl Check for awk, ensure that the check found something.
3937 AC_DEFUN([CF_PROG_AWK],
3940 test -z "$AWK" && AC_MSG_ERROR(No awk program found)
3942 dnl ---------------------------------------------------------------------------
3943 dnl CF_PROG_CC_C_O version: 2 updated: 2006/12/16 15:55:46
3945 dnl Analogous to AC_PROG_CC_C_O, but more useful: tests only $CC, ensures that
3946 dnl the output file can be renamed, and allows for a shell variable that can
3947 dnl be used later. The parameter is either CC or CXX. The result is the
3949 dnl $cf_cv_prog_CC_c_o
3950 dnl $cf_cv_prog_CXX_c_o
3951 AC_DEFUN([CF_PROG_CC_C_O],
3952 [AC_REQUIRE([AC_PROG_CC])dnl
3953 AC_MSG_CHECKING([whether [$]$1 understands -c and -o together])
3954 AC_CACHE_VAL(cf_cv_prog_$1_c_o,
3956 cat > conftest.$ac_ext <<CF_EOF
3960 ${cf_cv_main_return:-return}(0);
3963 # We do the test twice because some compilers refuse to overwrite an
3964 # existing .o file with -o, though they will create one.
3965 ac_try='[$]$1 -c conftest.$ac_ext -o conftest2.$ac_objext >&AC_FD_CC'
3966 if AC_TRY_EVAL(ac_try) &&
3967 test -f conftest2.$ac_objext && AC_TRY_EVAL(ac_try);
3969 eval cf_cv_prog_$1_c_o=yes
3971 eval cf_cv_prog_$1_c_o=no
3975 if test $cf_cv_prog_$1_c_o = yes; then
3976 AC_MSG_RESULT([yes])
3981 dnl ---------------------------------------------------------------------------
3982 dnl CF_PROG_CC_U_D version: 1 updated: 2005/07/14 16:59:30
3984 dnl Check if C (preprocessor) -U and -D options are processed in the order
3985 dnl given rather than by type of option. Some compilers insist on apply all
3986 dnl of the -U options after all of the -D options. Others allow mixing them,
3987 dnl and may predefine symbols that conflict with those we define.
3988 AC_DEFUN([CF_PROG_CC_U_D],
3990 AC_CACHE_CHECK(if $CC -U and -D options work together,cf_cv_cc_u_d_options,[
3991 cf_save_CPPFLAGS="$CPPFLAGS"
3992 CPPFLAGS="-UU_D_OPTIONS -DU_D_OPTIONS -DD_U_OPTIONS -UD_U_OPTIONS"
3995 make an undefined-error
3998 make a defined-error
4001 cf_cv_cc_u_d_options=yes],[
4002 cf_cv_cc_u_d_options=no])
4003 CPPFLAGS="$cf_save_CPPFLAGS"
4006 dnl ---------------------------------------------------------------------------
4007 dnl CF_PROG_EGREP version: 1 updated: 2006/09/16 11:40:59
4009 dnl AC_PROG_EGREP was introduced in autoconf 2.53.
4010 dnl This macro adds a check to ensure the script found something.
4011 AC_DEFUN([CF_PROG_EGREP],
4012 [AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep],
4013 [if echo a | (grep -E '(a|b)') >/dev/null 2>&1
4014 then ac_cv_prog_egrep='grep -E'
4015 else ac_cv_prog_egrep='egrep'
4017 EGREP=$ac_cv_prog_egrep
4019 test -z "$EGREP" && AC_MSG_ERROR(No egrep program found)
4021 dnl ---------------------------------------------------------------------------
4022 dnl CF_PROG_EXT version: 10 updated: 2004/01/03 19:28:18
4024 dnl Compute $PROG_EXT, used for non-Unix ports, such as OS/2 EMX.
4025 AC_DEFUN([CF_PROG_EXT],
4027 AC_REQUIRE([CF_CHECK_CACHE])
4028 case $cf_cv_system_name in
4030 CFLAGS="$CFLAGS -Zmt"
4031 CPPFLAGS="$CPPFLAGS -D__ST_MT_ERRNO__"
4032 CXXFLAGS="$CXXFLAGS -Zmt"
4033 # autoconf's macro sets -Zexe and suffix both, which conflict:w
4034 LDFLAGS="$LDFLAGS -Zmt -Zcrtdll"
4044 test -n "$PROG_EXT" && AC_DEFINE_UNQUOTED(PROG_EXT,"$PROG_EXT")
4046 dnl ---------------------------------------------------------------------------
4047 dnl CF_PROG_INSTALL version: 5 updated: 2002/12/21 22:46:07
4049 dnl Force $INSTALL to be an absolute-path. Otherwise, edit_man.sh and the
4050 dnl misc/tabset install won't work properly. Usually this happens only when
4051 dnl using the fallback mkinstalldirs script
4052 AC_DEFUN([CF_PROG_INSTALL],
4058 CF_DIRNAME(cf_dir,$INSTALL)
4059 test -z "$cf_dir" && cf_dir=.
4060 INSTALL=`cd $cf_dir && pwd`/`echo $INSTALL | sed -e 's%^.*/%%'`
4064 dnl ---------------------------------------------------------------------------
4065 dnl CF_PROG_LDCONFIG version: 2 updated: 2008/12/13 14:08:40
4066 dnl ----------------
4067 dnl Check for ldconfig, needed to fixup shared libraries that would be built
4068 dnl and then used in the install.
4069 AC_DEFUN([CF_PROG_LDCONFIG],[
4070 if test "$cross_compiling" = yes ; then
4073 case "$cf_cv_system_name" in #(vi
4074 dragonfly*|freebsd*) #(vi
4075 test -z "$LDCONFIG" && LDCONFIG="/sbin/ldconfig -R"
4077 *) LDPATH=$PATH:/sbin:/usr/sbin
4078 AC_PATH_PROG(LDCONFIG,ldconfig,,$LDPATH)
4084 dnl ---------------------------------------------------------------------------
4085 dnl CF_PROG_LINT version: 1 updated: 2006/09/16 11:40:59
4087 AC_DEFUN([CF_PROG_LINT],
4089 AC_CHECK_PROGS(LINT, tdlint lint alint)
4092 dnl ---------------------------------------------------------------------------
4093 dnl CF_REGEX version: 3 updated: 1997/11/01 14:26:01
4095 dnl Attempt to determine if we've got one of the flavors of regular-expression
4096 dnl code that we can support.
4097 AC_DEFUN([CF_REGEX],
4099 AC_MSG_CHECKING([for regular-expression headers])
4100 AC_CACHE_VAL(cf_cv_regex,[
4101 AC_TRY_LINK([#include <sys/types.h>
4102 #include <regex.h>],[
4104 int x = regcomp(p, "", 0);
4105 int y = regexec(p, "", 0, 0, 0);
4107 ],[cf_cv_regex="regex.h"],[
4108 AC_TRY_LINK([#include <regexp.h>],[
4109 char *p = compile("", "", "", 0);
4110 int x = step("", "");
4111 ],[cf_cv_regex="regexp.h"],[
4112 cf_save_LIBS="$LIBS"
4114 AC_TRY_LINK([#include <regexpr.h>],[
4115 char *p = compile("", "", "");
4116 int x = step("", "");
4117 ],[cf_cv_regex="regexpr.h"],[LIBS="$cf_save_LIBS"])])])
4119 AC_MSG_RESULT($cf_cv_regex)
4120 case $cf_cv_regex in
4121 regex.h) AC_DEFINE(HAVE_REGEX_H_FUNCS) ;;
4122 regexp.h) AC_DEFINE(HAVE_REGEXP_H_FUNCS) ;;
4123 regexpr.h) AC_DEFINE(HAVE_REGEXPR_H_FUNCS) ;;
4126 dnl ---------------------------------------------------------------------------
4127 dnl CF_REMOVE_DEFINE version: 2 updated: 2005/07/09 16:12:18
4128 dnl ----------------
4129 dnl Remove all -U and -D options that refer to the given symbol from a list
4130 dnl of C compiler options. This works around the problem that not all
4131 dnl compilers process -U and -D options from left-to-right, so a -U option
4132 dnl cannot be used to cancel the effect of a preceding -D option.
4134 dnl $1 = target (which could be the same as the source variable)
4135 dnl $2 = source (including '$')
4136 dnl $3 = symbol to remove
4137 define([CF_REMOVE_DEFINE],
4139 # remove $3 symbol from $2
4141 sed -e 's/-[[UD]]$3\(=[[^ ]]*\)\?[[ ]]/ /g' \
4142 -e 's/-[[UD]]$3\(=[[^ ]]*\)\?[$]//g'`
4144 dnl ---------------------------------------------------------------------------
4145 dnl CF_REMOVE_LIB version: 1 updated: 2007/02/17 14:11:52
4147 dnl Remove the given library from the symbol
4149 dnl $1 = target (which could be the same as the source variable)
4150 dnl $2 = source (including '$')
4151 dnl $3 = library to remove
4152 define([CF_REMOVE_LIB],
4154 # remove $3 library from $2
4155 $1=`echo "$2" | sed -e 's/-l$3[[ ]]//g' -e 's/-l$3[$]//'`
4157 dnl ---------------------------------------------------------------------------
4158 dnl CF_RPATH_HACK version: 4 updated: 2008/09/13 12:53:26
4160 AC_DEFUN([CF_RPATH_HACK],
4162 AC_REQUIRE([CF_SHARED_OPTS])
4163 AC_MSG_CHECKING(for updated LDFLAGS)
4164 if test -n "$LDFLAGS" ; then
4165 AC_MSG_RESULT(maybe)
4166 CF_VERBOSE(...checking LDFLAGS $LDFLAGS)
4167 CF_VERBOSE(...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS)
4168 case "$EXTRA_LDFLAGS" in #(vi
4170 cf_rpath_hack="-Wl,-rpath,"
4182 if test -n "$cf_rpath_hack" ; then
4184 for cf_rpath_src in $LDFLAGS
4186 CF_VERBOSE(Filtering $cf_rpath_src)
4187 case $cf_rpath_src in #(vi
4189 if test "$cf_rpath_hack" = "-R " ; then
4190 cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e 's%-L%-R %'`
4192 cf_rpath_tmp=`echo "$cf_rpath_src" |sed -e s%-L%$cf_rpath_hack%`
4194 CF_VERBOSE(...Filter $cf_rpath_tmp)
4195 EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS"
4198 cf_rpath_dst="$cf_rpath_dst $cf_rpath_src"
4200 LDFLAGS=$cf_rpath_dst
4201 CF_VERBOSE(...checked LDFLAGS $LDFLAGS)
4202 CF_VERBOSE(...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS)
4208 dnl ---------------------------------------------------------------------------
4209 dnl CF_SHARED_OPTS version: 54 updated: 2008/12/27 12:30:03
4212 dnl Attempt to determine the appropriate CC/LD options for creating a shared
4215 dnl Note: ${LOCAL_LDFLAGS} is used to link executables that will run within the
4216 dnl build-tree, i.e., by making use of the libraries that are compiled in ../lib
4217 dnl We avoid compiling-in a ../lib path for the shared library since that can
4218 dnl lead to unexpected results at runtime.
4219 dnl ${LOCAL_LDFLAGS2} has the same intention but assumes that the shared libraries
4220 dnl are compiled in ../../lib
4222 dnl The variable 'cf_cv_do_symlinks' is used to control whether we configure
4223 dnl to install symbolic links to the rel/abi versions of shared libraries.
4225 dnl The variable 'cf_cv_shlib_version' controls whether we use the rel or abi
4226 dnl version when making symbolic links.
4228 dnl The variable 'cf_cv_shlib_version_infix' controls whether shared library
4229 dnl version numbers are infix (ex: libncurses.<ver>.dylib) or postfix
4230 dnl (ex: libncurses.so.<ver>).
4232 dnl Some loaders leave 'so_locations' lying around. It's nice to clean up.
4233 AC_DEFUN([CF_SHARED_OPTS],
4235 AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
4239 INSTALL_LIB="-m 644"
4241 cf_cv_do_symlinks=no
4243 AC_MSG_CHECKING(if release/abi version should be used for shared libs)
4244 AC_ARG_WITH(shlib-version,
4245 [ --with-shlib-version=X Specify rel or abi version for shared libs],
4246 [test -z "$withval" && withval=auto
4247 case $withval in #(vi
4249 cf_cv_shlib_version=auto
4251 rel|abi|auto|no) #(vi
4252 cf_cv_shlib_version=$withval
4255 AC_MSG_ERROR([option value must be one of: rel, abi, auto or no])
4258 ],[cf_cv_shlib_version=auto])
4259 AC_MSG_RESULT($cf_cv_shlib_version)
4263 # Some less-capable ports of gcc support only -fpic
4265 if test "$GCC" = yes
4267 AC_MSG_CHECKING(which $CC option to use)
4268 cf_save_CFLAGS="$CFLAGS"
4269 for CC_SHARED_OPTS in -fPIC -fpic ''
4271 CFLAGS="$cf_save_CFLAGS $CC_SHARED_OPTS"
4272 AC_TRY_COMPILE([#include <stdio.h>],[int x = 1],[break],[])
4274 AC_MSG_RESULT($CC_SHARED_OPTS)
4275 CFLAGS="$cf_save_CFLAGS"
4278 cf_cv_shlib_version_infix=no
4280 case $cf_cv_system_name in
4282 if test "$GCC" = yes; then
4284 MK_SHARED_LIB="$(CC) -shared"
4288 MK_SHARED_LIB='${CC} ${CFLAGS} -o $[@] -Xlinker -soname=`basename $[@]` -nostart -e 0'
4292 MK_SHARED_LIB='sh ../mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
4293 cf_cv_shlib_version=cygdll
4294 cf_cv_shlib_version_infix=cygdll
4295 cat >mk_shared_lib.sh <<-CF_EOF
4298 IMPORT_LIB=\`echo "\[$]1" | sed -e 's/cyg/lib/' -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
4301 Linking shared library
4302 ** SHARED_LIB \[$]SHARED_LIB
4303 ** IMPORT_LIB \[$]IMPORT_LIB
4305 exec \[$]* -shared -Wl,--out-implib=../lib/\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o ../lib/\[$]{SHARED_LIB}
4307 chmod +x mk_shared_lib.sh
4310 EXTRA_CFLAGS="-no-cpp-precomp"
4311 CC_SHARED_OPTS="-dynamic"
4312 MK_SHARED_LIB='${CC} ${CFLAGS} -dynamiclib -install_name ${libdir}/`basename $[@]` -compatibility_version ${ABI_VERSION} -current_version ${ABI_VERSION} -o $[@]'
4313 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi
4314 cf_cv_shlib_version_infix=yes
4315 AC_CACHE_CHECK([if ld -search_paths_first works], cf_cv_ldflags_search_paths_first, [
4316 cf_save_LDFLAGS=$LDFLAGS
4317 LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
4318 AC_TRY_LINK(, [int i;], cf_cv_ldflags_search_paths_first=yes, cf_cv_ldflags_search_paths_first=no)
4319 LDFLAGS=$cf_save_LDFLAGS])
4320 if test $cf_cv_ldflags_search_paths_first = yes; then
4321 LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
4325 # (tested with gcc 2.7.2 -- I don't have c89)
4326 if test "$GCC" = yes; then
4327 LD_SHARED_OPTS='-Xlinker +b -Xlinker ${libdir}'
4330 LD_SHARED_OPTS='-Wl,+b,${libdir}'
4332 MK_SHARED_LIB='${LD} +b ${libdir} -b -o $[@]'
4333 # HP-UX shared libraries must be executable, and should be
4334 # readonly to exploit a quirk in the memory manager.
4335 INSTALL_LIB="-m 555"
4338 if test "$cf_cv_ld_rpath" = yes ; then
4339 if test "$GCC" = yes; then
4340 cf_ld_rpath_opt="-Wl,-rpath,"
4341 EXTRA_LDFLAGS="-Wl,-rpath,\${libdir} $EXTRA_LDFLAGS"
4343 cf_ld_rpath_opt="-rpath "
4344 EXTRA_LDFLAGS="-rpath \${libdir} $EXTRA_LDFLAGS"
4347 # tested with IRIX 5.2 and 'cc'.
4348 if test "$GCC" != yes; then
4349 CC_SHARED_OPTS='-KPIC'
4350 MK_SHARED_LIB='${CC} -shared -rdata_shared -soname `basename $[@]` -o $[@]'
4352 MK_SHARED_LIB='${CC} -shared -Wl,-soname,`basename $[@]` -o $[@]'
4354 cf_cv_rm_so_locs=yes
4356 linux*|gnu*|k*bsd*-gnu)
4357 if test "$DFT_LWR_MODEL" = "shared" ; then
4358 LOCAL_LDFLAGS="-Wl,-rpath,\$(LOCAL_LIBDIR)"
4359 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4361 if test "$cf_cv_ld_rpath" = yes ; then
4362 cf_ld_rpath_opt="-Wl,-rpath,"
4363 EXTRA_LDFLAGS="-Wl,-rpath,\${libdir} $EXTRA_LDFLAGS"
4366 MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
4369 if test "$DFT_LWR_MODEL" = "shared" ; then
4370 LOCAL_LDFLAGS="-Wl,-rpath,\$(LOCAL_LIBDIR)"
4371 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4373 if test "$cf_cv_ld_rpath" = yes ; then
4374 cf_ld_rpath_opt="-Wl,-rpath,"
4375 EXTRA_LDFLAGS="-Wl,-rpath,\${libdir} $EXTRA_LDFLAGS"
4377 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
4379 MK_SHARED_LIB='${CC} ${CFLAGS} -Wl,-Bshareable,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
4381 nto-qnx*|openbsd*|freebsd[[12]].*)
4382 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
4383 MK_SHARED_LIB='${LD} -Bshareable -o $[@]'
4384 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
4387 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
4388 if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_ld_rpath" = yes ; then
4389 LOCAL_LDFLAGS="-rpath \$(LOCAL_LIBDIR)"
4390 LOCAL_LDFLAGS2="-rpath \${libdir} $LOCAL_LDFLAGS"
4391 cf_ld_rpath_opt="-rpath "
4392 EXTRA_LDFLAGS="-rpath \${libdir} $EXTRA_LDFLAGS"
4395 MK_SHARED_LIB='${LD} -Bshareable -soname=`basename $[@]` -o $[@]'
4398 CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
4399 test "$cf_cv_ld_rpath" = yes && cf_ld_rpath_opt="-Wl,-rpath,"
4400 if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_ld_rpath" = yes ; then
4401 LOCAL_LDFLAGS="-Wl,-rpath,\$(LOCAL_LIBDIR)"
4402 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4403 EXTRA_LDFLAGS="-Wl,-rpath,\${libdir} $EXTRA_LDFLAGS"
4404 if test "$cf_cv_shlib_version" = auto; then
4405 if test -f /usr/libexec/ld.elf_so; then
4406 cf_cv_shlib_version=abi
4408 cf_cv_shlib_version=rel
4412 MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname' -o $[@]'
4414 MK_SHARED_LIB='${LD} -Bshareable -o $[@]'
4418 # tested with OSF/1 V3.2 and 'cc'
4419 # tested with OSF/1 V3.2 and gcc 2.6.3 (but the c++ demo didn't
4420 # link with shared libs).
4421 MK_SHARED_LIB='${LD} -set_version ${REL_VERSION}:${ABI_VERSION} -expect_unresolved "*" -shared -soname `basename $[@]`'
4424 MK_SHARED_LIB="${MK_SHARED_LIB} -msym"
4427 MK_SHARED_LIB="${MK_SHARED_LIB}"' -o $[@]'
4428 if test "$DFT_LWR_MODEL" = "shared" ; then
4429 LOCAL_LDFLAGS="-Wl,-rpath,\$(LOCAL_LIBDIR)"
4430 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4432 if test "$cf_cv_ld_rpath" = yes ; then
4433 cf_ld_rpath_opt="-rpath"
4434 # EXTRA_LDFLAGS="$LOCAL_LDFLAGS $EXTRA_LDFLAGS"
4436 cf_cv_rm_so_locs=yes
4438 sco3.2v5*) # (also uw2* and UW7) hops 13-Apr-98
4439 # tested with osr5.0.5
4440 if test "$GCC" != yes; then
4441 CC_SHARED_OPTS='-belf -KPIC'
4443 MK_SHARED_LIB='${LD} -dy -G -h `basename $[@] .${REL_VERSION}`.${ABI_VERSION} -o [$]@'
4444 if test "$cf_cv_ld_rpath" = yes ; then
4445 # only way is to set LD_RUN_PATH but no switch for it
4448 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
4449 LINK_PROGS='LD_RUN_PATH=${libdir}'
4450 LINK_TESTS='Pwd=`pwd`;LD_RUN_PATH=`dirname $${Pwd}`/lib'
4453 # tested with SunOS 4.1.1 and gcc 2.7.0
4454 if test "$GCC" != yes; then
4455 CC_SHARED_OPTS='-KPIC'
4457 MK_SHARED_LIB='${LD} -assert pure-text -o $[@]'
4458 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
4461 # tested with SunOS 5.5.1 (solaris 2.5.1) and gcc 2.7.2
4462 # tested with SunOS 5.10 (solaris 10) and gcc 3.4.3
4463 if test "$DFT_LWR_MODEL" = "shared" ; then
4464 LOCAL_LDFLAGS="-R \$(LOCAL_LIBDIR):\${libdir}"
4465 LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
4467 if test "$cf_cv_ld_rpath" = yes ; then
4468 cf_ld_rpath_opt="-R"
4469 EXTRA_LDFLAGS="$LOCAL_LDFLAGS $EXTRA_LDFLAGS"
4472 if test "$GCC" != yes; then
4473 CC_SHARED_OPTS='-xcode=pic32'
4474 MK_SHARED_LIB='${CC} -dy -G -h '$cf_cv_shared_soname' -o $[@]'
4476 MK_SHARED_LIB='${CC} -shared -dy -G -h '$cf_cv_shared_soname' -o $[@]'
4480 # tested with UnixWare 7.1.0 (gcc 2.95.2 and cc)
4481 if test "$GCC" != yes; then
4482 CC_SHARED_OPTS='-KPIC'
4484 MK_SHARED_LIB='${LD} -d y -G -o [$]@'
4487 CC_SHARED_OPTS='unknown'
4488 MK_SHARED_LIB='echo unknown'
4492 # This works if the last tokens in $MK_SHARED_LIB are the -o target.
4493 case "$cf_cv_shlib_version" in #(vi
4495 case "$MK_SHARED_LIB" in #(vi
4497 test "$cf_cv_do_symlinks" = no && cf_cv_do_symlinks=yes
4500 AC_MSG_WARN(ignored --with-shlib-version)
4506 if test -n "$cf_ld_rpath_opt" ; then
4507 AC_MSG_CHECKING(if we need a space after rpath option)
4508 cf_save_LIBS="$LIBS"
4509 LIBS="$LIBS ${cf_ld_rpath_opt}$libdir"
4510 AC_TRY_LINK(, , cf_rpath_space=no, cf_rpath_space=yes)
4511 LIBS="$cf_save_LIBS"
4512 AC_MSG_RESULT($cf_rpath_space)
4513 test "$cf_rpath_space" = yes && cf_ld_rpath_opt="$cf_ld_rpath_opt "
4514 MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${libdir}"
4517 AC_SUBST(CC_SHARED_OPTS)
4518 AC_SUBST(LD_SHARED_OPTS)
4519 AC_SUBST(MK_SHARED_LIB)
4520 AC_SUBST(LINK_PROGS)
4521 AC_SUBST(LINK_TESTS)
4522 AC_SUBST(EXTRA_LDFLAGS)
4523 AC_SUBST(LOCAL_LDFLAGS)
4524 AC_SUBST(LOCAL_LDFLAGS2)
4525 AC_SUBST(INSTALL_LIB)
4527 dnl ---------------------------------------------------------------------------
4528 dnl CF_SHARED_SONAME version: 3 updated: 2008/09/08 18:34:43
4529 dnl ----------------
4530 dnl utility macro for CF_SHARED_OPTS, constructs "$cf_cv_shared_soname" for
4531 dnl substitution into MK_SHARED_LIB string for the "-soname" (or similar)
4534 dnl $1 is the default that should be used for "$cf_cv_shlib_version".
4535 dnl If missing, use "rel".
4536 define([CF_SHARED_SONAME],
4538 test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=ifelse($1,,rel,$1)
4539 if test "$cf_cv_shlib_version" = rel; then
4540 cf_cv_shared_soname='`basename $[@] .${REL_VERSION}`.${ABI_VERSION}'
4542 cf_cv_shared_soname='`basename $[@]`'
4545 dnl ---------------------------------------------------------------------------
4546 dnl CF_SIGWINCH version: 1 updated: 2006/04/02 16:41:09
4548 dnl Use this macro after CF_XOPEN_SOURCE, but do not require it (not all
4549 dnl programs need this test).
4551 dnl This is really a MacOS X 10.4.3 workaround. Defining _POSIX_C_SOURCE
4552 dnl forces SIGWINCH to be undefined (breaks xterm, ncurses). Oddly, the struct
4553 dnl winsize declaration is left alone - we may revisit this if Apple choose to
4554 dnl break that part of the interface as well.
4555 AC_DEFUN([CF_SIGWINCH],
4557 AC_CACHE_CHECK(if SIGWINCH is defined,cf_cv_define_sigwinch,[
4559 #include <sys/types.h>
4560 #include <sys/signal.h>
4561 ],[int x = SIGWINCH],
4562 [cf_cv_define_sigwinch=yes],
4564 #undef _XOPEN_SOURCE
4565 #undef _POSIX_SOURCE
4566 #undef _POSIX_C_SOURCE
4567 #include <sys/types.h>
4568 #include <sys/signal.h>
4569 ],[int x = SIGWINCH],
4570 [cf_cv_define_sigwinch=maybe],
4571 [cf_cv_define_sigwinch=no])
4575 if test "$cf_cv_define_sigwinch" = maybe ; then
4576 AC_CACHE_CHECK(for actual SIGWINCH definition,cf_cv_fixup_sigwinch,[
4577 cf_cv_fixup_sigwinch=unknown
4579 while test $cf_sigwinch != 1
4582 #undef _XOPEN_SOURCE
4583 #undef _POSIX_SOURCE
4584 #undef _POSIX_C_SOURCE
4585 #include <sys/types.h>
4586 #include <sys/signal.h>
4588 #if SIGWINCH != $cf_sigwinch
4592 [cf_cv_fixup_sigwinch=$cf_sigwinch
4595 cf_sigwinch=`expr $cf_sigwinch - 1`
4599 if test "$cf_cv_fixup_sigwinch" != unknown ; then
4600 CPPFLAGS="$CPPFLAGS -DSIGWINCH=$cf_cv_fixup_sigwinch"
4604 dnl ---------------------------------------------------------------------------
4605 dnl CF_SIG_ATOMIC_T version: 2 updated: 2005/09/18 17:27:12
4607 dnl signal handler, but there are some gcc depedencies in that recommendation.
4609 AC_DEFUN([CF_SIG_ATOMIC_T],
4611 AC_MSG_CHECKING(for signal global datatype)
4612 AC_CACHE_VAL(cf_cv_sig_atomic_t,[
4614 "volatile sig_atomic_t" \
4619 #include <sys/types.h>
4625 static void handler(int sig)
4629 [signal(SIGINT, handler);
4631 [cf_cv_sig_atomic_t=$cf_type],
4632 [cf_cv_sig_atomic_t=no])
4633 test "$cf_cv_sig_atomic_t" != no && break
4636 AC_MSG_RESULT($cf_cv_sig_atomic_t)
4637 test "$cf_cv_sig_atomic_t" != no && AC_DEFINE_UNQUOTED(SIG_ATOMIC_T, $cf_cv_sig_atomic_t)
4639 dnl ---------------------------------------------------------------------------
4640 dnl CF_SIZECHANGE version: 8 updated: 2000/11/04 12:22:16
4642 dnl Check for definitions & structures needed for window size-changing
4643 dnl FIXME: check that this works with "snake" (HP-UX 10.x)
4644 AC_DEFUN([CF_SIZECHANGE],
4646 AC_REQUIRE([CF_STRUCT_TERMIOS])
4647 AC_CACHE_CHECK(declaration of size-change, cf_cv_sizechange,[
4648 cf_cv_sizechange=unknown
4649 cf_save_CPPFLAGS="$CPPFLAGS"
4651 for cf_opts in "" "NEED_PTEM_H"
4654 CPPFLAGS="$cf_save_CPPFLAGS"
4655 test -n "$cf_opts" && CPPFLAGS="$CPPFLAGS -D$cf_opts"
4656 AC_TRY_COMPILE([#include <sys/types.h>
4657 #ifdef HAVE_TERMIOS_H
4658 #include <termios.h>
4660 #ifdef HAVE_TERMIO_H
4665 /* This is a workaround for SCO: they neglected to define struct winsize in
4666 * termios.h -- it's only in termio.h and ptem.h
4668 #include <sys/stream.h>
4669 #include <sys/ptem.h>
4671 #if !defined(sun) || !defined(HAVE_TERMIOS_H)
4672 #include <sys/ioctl.h>
4676 struct ttysize win; /* FIXME: what system is this? */
4677 int y = win.ts_lines;
4678 int x = win.ts_cols;
4685 no TIOCGSIZE or TIOCGWINSZ
4686 #endif /* TIOCGWINSZ */
4687 #endif /* TIOCGSIZE */
4689 [cf_cv_sizechange=yes],
4690 [cf_cv_sizechange=no])
4692 CPPFLAGS="$cf_save_CPPFLAGS"
4693 if test "$cf_cv_sizechange" = yes ; then
4694 echo "size-change succeeded ($cf_opts)" >&AC_FD_CC
4695 test -n "$cf_opts" && cf_cv_sizechange="$cf_opts"
4700 if test "$cf_cv_sizechange" != no ; then
4701 AC_DEFINE(HAVE_SIZECHANGE)
4702 case $cf_cv_sizechange in #(vi
4704 AC_DEFINE_UNQUOTED($cf_cv_sizechange )
4709 dnl ---------------------------------------------------------------------------
4710 dnl CF_SRC_MODULES version: 20 updated: 2008/12/27 12:30:03
4712 dnl For each parameter, test if the source-directory exists, and if it contains
4713 dnl a 'modules' file. If so, add to the list $cf_cv_src_modules which we'll
4714 dnl use in CF_LIB_RULES.
4716 dnl This uses the configured value to make the lists SRC_SUBDIRS and
4717 dnl SUB_MAKEFILES which are used in the makefile-generation scheme.
4718 AC_DEFUN([CF_SRC_MODULES],
4720 AC_MSG_CHECKING(for src modules)
4722 # dependencies and linker-arguments for test-programs
4723 TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEPS"
4724 TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEP2"
4725 if test "$DFT_LWR_MODEL" = "libtool"; then
4726 TEST_ARGS="${TEST_DEPS}"
4727 TEST_ARG2="${TEST_DEP2}"
4729 TEST_ARGS="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARGS"
4730 TEST_ARG2="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARG2"
4736 if test -f $srcdir/$cf_dir/modules; then
4738 # We may/may not have tack in the distribution, though the
4740 if test $cf_dir = tack ; then
4741 if test ! -f $srcdir/${cf_dir}/${cf_dir}.h; then
4746 if test -z "$cf_cv_src_modules"; then
4747 cf_cv_src_modules=$cf_dir
4749 cf_cv_src_modules="$cf_cv_src_modules $cf_dir"
4752 # Make the ncurses_cfg.h file record the library interface files as
4753 # well. These are header files that are the same name as their
4754 # directory. Ncurses is the only library that does not follow
4756 if test $cf_dir = tack ; then
4758 elif test -f $srcdir/${cf_dir}/${cf_dir}.h; then
4759 CF_UPPER(cf_have_include,$cf_dir)
4760 AC_DEFINE_UNQUOTED(HAVE_${cf_have_include}_H)
4761 AC_DEFINE_UNQUOTED(HAVE_LIB${cf_have_include})
4762 TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${cf_dir}${DFT_DEP_SUFFIX} $TEST_DEPS"
4763 TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${cf_dir}${DFT_DEP_SUFFIX} $TEST_DEP2"
4764 if test "$DFT_LWR_MODEL" = "libtool"; then
4765 TEST_ARGS="${TEST_DEPS}"
4766 TEST_ARG2="${TEST_DEP2}"
4768 TEST_ARGS="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARGS"
4769 TEST_ARG2="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARG2"
4774 AC_MSG_RESULT($cf_cv_src_modules)
4776 TEST_ARGS="-L${LIB_DIR} $TEST_ARGS"
4777 TEST_ARG2="-L${LIB_2ND} $TEST_ARG2"
4786 if test "x$cf_with_manpages" != xno ; then
4787 SRC_SUBDIRS="$SRC_SUBDIRS man"
4789 SRC_SUBDIRS="$SRC_SUBDIRS include"
4790 for cf_dir in $cf_cv_src_modules
4792 SRC_SUBDIRS="$SRC_SUBDIRS $cf_dir"
4794 SRC_SUBDIRS="$SRC_SUBDIRS test"
4795 test -z "$MAKE_TERMINFO" && SRC_SUBDIRS="$SRC_SUBDIRS misc"
4796 test "$cf_with_cxx_binding" != no && SRC_SUBDIRS="$SRC_SUBDIRS c++"
4799 if test "$cf_cv_prog_gnat_correct" = yes && test -f $srcdir/Ada95/Makefile.in; then
4800 SRC_SUBDIRS="$SRC_SUBDIRS Ada95"
4801 ADA_SUBDIRS="gen src samples"
4805 for cf_dir in $SRC_SUBDIRS
4807 SUB_MAKEFILES="$SUB_MAKEFILES $cf_dir/Makefile"
4810 if test -n "$ADA_SUBDIRS"; then
4811 for cf_dir in $ADA_SUBDIRS
4813 SUB_MAKEFILES="$SUB_MAKEFILES Ada95/$cf_dir/Makefile"
4815 AC_SUBST(ADA_SUBDIRS)
4818 dnl ---------------------------------------------------------------------------
4819 dnl CF_STDCPP_LIBRARY version: 5 updated: 2000/08/12 23:18:52
4820 dnl -----------------
4821 dnl Check for -lstdc++, which is GNU's standard C++ library.
4822 AC_DEFUN([CF_STDCPP_LIBRARY],
4824 if test -n "$GXX" ; then
4825 case $cf_cv_system_name in #(vi
4827 cf_stdcpp_libname=stdcpp
4830 cf_stdcpp_libname=stdc++
4833 AC_CACHE_CHECK(for library $cf_stdcpp_libname,cf_cv_libstdcpp,[
4835 LIBS="$LIBS -l$cf_stdcpp_libname"
4837 #include <strstream.h>],[
4839 strstreambuf foo(buf, sizeof(buf))
4841 [cf_cv_libstdcpp=yes],
4842 [cf_cv_libstdcpp=no])
4845 test "$cf_cv_libstdcpp" = yes && CXXLIBS="$CXXLIBS -l$cf_stdcpp_libname"
4848 dnl ---------------------------------------------------------------------------
4849 dnl CF_STRIP_G_OPT version: 3 updated: 2002/12/21 19:25:52
4851 dnl Remove "-g" option from the compiler options
4852 AC_DEFUN([CF_STRIP_G_OPT],
4853 [$1=`echo ${$1} | sed -e 's%-g %%' -e 's%-g$%%'`])dnl
4854 dnl ---------------------------------------------------------------------------
4855 dnl CF_STRUCT_SIGACTION version: 3 updated: 2000/08/12 23:18:52
4856 dnl -------------------
4857 dnl Check if we need _POSIX_SOURCE defined to use struct sigaction. We'll only
4858 dnl do this if we've found the sigaction function.
4860 dnl If needed, define SVR4_ACTION.
4861 AC_DEFUN([CF_STRUCT_SIGACTION],[
4862 if test "$ac_cv_func_sigaction" = yes; then
4863 AC_MSG_CHECKING(whether sigaction needs _POSIX_SOURCE)
4865 #include <sys/types.h>
4866 #include <signal.h>],
4867 [struct sigaction act],
4871 #define _POSIX_SOURCE
4872 #include <sys/types.h>
4873 #include <signal.h>],
4874 [struct sigaction act],
4876 AC_DEFINE(SVR4_ACTION)],
4877 [sigact_bad=unknown])])
4878 AC_MSG_RESULT($sigact_bad)
4881 dnl ---------------------------------------------------------------------------
4882 dnl CF_STRUCT_TERMIOS version: 5 updated: 2000/11/04 12:22:46
4883 dnl -----------------
4884 dnl Some machines require _POSIX_SOURCE to completely define struct termios.
4885 dnl If so, define SVR4_TERMIO
4886 AC_DEFUN([CF_STRUCT_TERMIOS],[
4892 if test "$ISC" = yes ; then
4893 AC_CHECK_HEADERS( sys/termio.h )
4895 if test "$ac_cv_header_termios_h" = yes ; then
4896 case "$CFLAGS $CPPFLAGS" in
4898 termios_bad=dunno ;;
4899 *) termios_bad=maybe ;;
4901 if test "$termios_bad" = maybe ; then
4902 AC_MSG_CHECKING(whether termios.h needs _POSIX_SOURCE)
4903 AC_TRY_COMPILE([#include <termios.h>],
4904 [struct termios foo; int x = foo.c_iflag],
4907 #define _POSIX_SOURCE
4908 #include <termios.h>],
4909 [struct termios foo; int x = foo.c_iflag],
4910 termios_bad=unknown,
4911 termios_bad=yes AC_DEFINE(SVR4_TERMIO))
4913 AC_MSG_RESULT($termios_bad)
4917 dnl ---------------------------------------------------------------------------
4918 dnl CF_SUBDIR_PATH version: 5 updated: 2007/07/29 09:55:12
4920 dnl Construct a search-list for a nonstandard header/lib-file
4921 dnl $1 = the variable to return as result
4922 dnl $2 = the package name
4923 dnl $3 = the subdirectory, e.g., bin, include or lib
4924 AC_DEFUN([CF_SUBDIR_PATH],
4927 CF_ADD_SUBDIR_PATH($1,$2,$3,/usr,$prefix)
4928 CF_ADD_SUBDIR_PATH($1,$2,$3,$prefix,NONE)
4929 CF_ADD_SUBDIR_PATH($1,$2,$3,/usr/local,$prefix)
4930 CF_ADD_SUBDIR_PATH($1,$2,$3,/opt,$prefix)
4931 CF_ADD_SUBDIR_PATH($1,$2,$3,[$]HOME,$prefix)
4933 dnl ---------------------------------------------------------------------------
4934 dnl CF_SUBST version: 4 updated: 2006/06/17 12:33:03
4936 dnl Shorthand macro for substituting things that the user may override
4937 dnl with an environment variable.
4939 dnl $1 = long/descriptive name
4940 dnl $2 = environment variable
4941 dnl $3 = default value
4942 AC_DEFUN([CF_SUBST],
4943 [AC_CACHE_VAL(cf_cv_subst_$2,[
4944 AC_MSG_CHECKING(for $1 (symbol $2))
4945 CF_SUBST_IF([-z "[$]$2"], [$2], [$3])
4946 cf_cv_subst_$2=[$]$2
4947 AC_MSG_RESULT([$]$2)
4950 dnl ---------------------------------------------------------------------------
4951 dnl CF_SUBST_IF version: 2 updated: 2006/06/17 12:33:03
4953 dnl Shorthand macro for substituting things that the user may override
4954 dnl with an environment variable.
4956 dnl $1 = condition to pass to "test"
4957 dnl $2 = environment variable
4958 dnl $3 = value if the test succeeds
4959 dnl $4 = value if the test fails
4960 AC_DEFUN([CF_SUBST_IF],
4969 dnl ---------------------------------------------------------------------------
4970 dnl CF_SUBST_NCURSES_VERSION version: 8 updated: 2006/09/16 11:40:59
4971 dnl ------------------------
4972 dnl Get the version-number for use in shared-library naming, etc.
4973 AC_DEFUN([CF_SUBST_NCURSES_VERSION],
4975 AC_REQUIRE([CF_PROG_EGREP])
4976 NCURSES_MAJOR="`$ac_cv_prog_egrep '^NCURSES_MAJOR[[ ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`"
4977 NCURSES_MINOR="`$ac_cv_prog_egrep '^NCURSES_MINOR[[ ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`"
4978 NCURSES_PATCH="`$ac_cv_prog_egrep '^NCURSES_PATCH[[ ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`"
4979 cf_cv_abi_version=${NCURSES_MAJOR}
4980 cf_cv_rel_version=${NCURSES_MAJOR}.${NCURSES_MINOR}
4981 dnl Show the computed version, for logging
4982 cf_cv_timestamp=`date`
4983 AC_MSG_RESULT(Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp))
4984 dnl We need these values in the generated headers
4985 AC_SUBST(NCURSES_MAJOR)
4986 AC_SUBST(NCURSES_MINOR)
4987 AC_SUBST(NCURSES_PATCH)
4988 dnl We need these values in the generated makefiles
4989 AC_SUBST(cf_cv_rel_version)
4990 AC_SUBST(cf_cv_abi_version)
4991 AC_SUBST(cf_cv_builtin_bool)
4992 AC_SUBST(cf_cv_header_stdbool_h)
4993 AC_SUBST(cf_cv_type_of_bool)dnl
4995 dnl ---------------------------------------------------------------------------
4996 dnl CF_SYS_TIME_SELECT version: 4 updated: 2000/10/04 09:18:40
4997 dnl ------------------
4998 dnl Check if we can include <sys/time.h> with <sys/select.h>; this breaks on
4999 dnl older SCO configurations.
5000 AC_DEFUN([CF_SYS_TIME_SELECT],
5002 AC_MSG_CHECKING(if sys/time.h works with sys/select.h)
5003 AC_CACHE_VAL(cf_cv_sys_time_select,[
5005 #include <sys/types.h>
5006 #ifdef HAVE_SYS_TIME_H
5007 #include <sys/time.h>
5009 #ifdef HAVE_SYS_SELECT_H
5010 #include <sys/select.h>
5012 ],[],[cf_cv_sys_time_select=yes],
5013 [cf_cv_sys_time_select=no])
5015 AC_MSG_RESULT($cf_cv_sys_time_select)
5016 test "$cf_cv_sys_time_select" = yes && AC_DEFINE(HAVE_SYS_TIME_SELECT)
5018 dnl ---------------------------------------------------------------------------
5019 dnl CF_TOP_BUILDDIR version: 1 updated: 2006/10/15 16:33:23
5021 dnl Define a top_builddir symbol, for applications that need an absolute path.
5022 AC_DEFUN([CF_TOP_BUILDDIR],
5025 AC_SUBST(top_builddir)
5027 dnl ---------------------------------------------------------------------------
5028 dnl CF_TYPEOF_CHTYPE version: 8 updated: 2006/12/16 12:33:30
5029 dnl ----------------
5030 dnl Determine the type we should use for chtype (and attr_t, which is treated
5031 dnl as the same thing). We want around 32 bits, so on most machines want a
5032 dnl long, but on newer 64-bit machines, probably want an int. If we're using
5033 dnl wide characters, we have to have a type compatible with that, as well.
5034 AC_DEFUN([CF_TYPEOF_CHTYPE],
5036 AC_MSG_CHECKING([for type of chtype])
5037 AC_CACHE_VAL(cf_cv_typeof_chtype,[
5039 #define WANT_BITS 31
5043 FILE *fp = fopen("cf_test.out", "w");
5045 char *result = "long";
5046 if (sizeof(unsigned long) > sizeof(unsigned int)) {
5049 for (n = 0; n < WANT_BITS; n++) {
5052 if (y != 1 || x == 0) {
5058 * If x is nonzero, an int is big enough for the bits
5061 result = (x != 0) ? "int" : "long";
5066 ${cf_cv_main_return:-return}(0);
5069 [cf_cv_typeof_chtype=`cat cf_test.out`],
5070 [cf_cv_typeof_chtype=long],
5071 [cf_cv_typeof_chtype=long])
5074 AC_MSG_RESULT($cf_cv_typeof_chtype)
5076 AC_SUBST(cf_cv_typeof_chtype)
5077 AC_DEFINE_UNQUOTED(TYPEOF_CHTYPE,$cf_cv_typeof_chtype)
5079 dnl ---------------------------------------------------------------------------
5080 dnl CF_TYPE_SIGACTION version: 3 updated: 2000/08/12 23:18:52
5081 dnl -----------------
5083 AC_DEFUN([CF_TYPE_SIGACTION],
5085 AC_MSG_CHECKING([for type sigaction_t])
5086 AC_CACHE_VAL(cf_cv_type_sigaction,[
5088 #include <signal.h>],
5090 [cf_cv_type_sigaction=yes],
5091 [cf_cv_type_sigaction=no])])
5092 AC_MSG_RESULT($cf_cv_type_sigaction)
5093 test "$cf_cv_type_sigaction" = yes && AC_DEFINE(HAVE_TYPE_SIGACTION)
5095 dnl ---------------------------------------------------------------------------
5096 dnl CF_UNSIGNED_LITERALS version: 2 updated: 1998/02/07 22:10:16
5097 dnl --------------------
5098 dnl Test if the compiler supports 'U' and 'L' suffixes. Only old compilers
5099 dnl won't, but they're still there.
5100 AC_DEFUN([CF_UNSIGNED_LITERALS],
5102 AC_MSG_CHECKING([if unsigned literals are legal])
5103 AC_CACHE_VAL(cf_cv_unsigned_literals,[
5104 AC_TRY_COMPILE([],[long x = 1L + 1UL + 1U + 1],
5105 [cf_cv_unsigned_literals=yes],
5106 [cf_cv_unsigned_literals=no])
5108 AC_MSG_RESULT($cf_cv_unsigned_literals)
5110 dnl ---------------------------------------------------------------------------
5111 dnl CF_UPPER version: 5 updated: 2001/01/29 23:40:59
5113 dnl Make an uppercase version of a variable
5114 dnl $1=uppercase($2)
5115 AC_DEFUN([CF_UPPER],
5117 $1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
5119 dnl ---------------------------------------------------------------------------
5120 dnl CF_UTF8_LIB version: 5 updated: 2008/10/17 19:37:52
5122 dnl Check for multibyte support, and if not found, utf8 compatibility library
5123 AC_DEFUN([CF_UTF8_LIB],
5125 AC_CACHE_CHECK(for multibyte character support,cf_cv_utf8_lib,[
5126 cf_save_LIBS="$LIBS"
5128 #include <stdlib.h>],[putwc(0,0);],
5129 [cf_cv_utf8_lib=yes],
5131 #include <libutf8.h>],[putwc(0,0);],utf8,
5132 [cf_cv_utf8_lib=add-on],
5133 [cf_cv_utf8_lib=no])
5136 # HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
5138 if test "$cf_cv_utf8_lib" = "add-on" ; then
5139 AC_DEFINE(HAVE_LIBUTF8_H)
5140 CF_ADD_INCDIR($cf_cv_header_path_utf8)
5141 CF_ADD_LIBDIR($cf_cv_library_path_utf8)
5145 dnl ---------------------------------------------------------------------------
5146 dnl CF_VERBOSE version: 3 updated: 2007/07/29 09:55:12
5148 dnl Use AC_VERBOSE w/o the warnings
5149 AC_DEFUN([CF_VERBOSE],
5150 [test -n "$verbose" && echo " $1" 1>&AC_FD_MSG
5153 dnl ---------------------------------------------------------------------------
5154 dnl CF_WCHAR_TYPE version: 2 updated: 2004/01/17 19:18:20
5156 dnl Check if type wide-character type $1 is declared, and if so, which header
5157 dnl file is needed. The second parameter is used to set a shell variable when
5158 dnl the type is not found. The first parameter sets a shell variable for the
5160 AC_DEFUN([CF_WCHAR_TYPE],
5162 # This is needed on Tru64 5.0 to declare $1
5163 AC_CACHE_CHECK(if we must include wchar.h to declare $1,cf_cv_$1,[
5168 #ifdef HAVE_LIBUTF8_H
5169 #include <libutf8.h>
5178 #ifdef HAVE_LIBUTF8_H
5179 #include <libutf8.h>
5183 [cf_cv_$1=unknown])])])
5185 if test "$cf_cv_$1" = yes ; then
5186 AC_DEFINE(NEED_WCHAR_H)
5191 # if we do not find $1 in either place, use substitution to provide a fallback.
5192 if test "$cf_cv_$1" = unknown ; then
5197 # if we find $1 in either place, use substitution to provide a fallback.
5198 if test "$cf_cv_$1" != unknown ; then
5203 dnl ---------------------------------------------------------------------------
5204 dnl CF_WEAK_SYMBOLS version: 1 updated: 2008/08/16 19:18:06
5206 dnl Check for compiler-support for weak symbols.
5207 dnl This works with "recent" gcc.
5208 AC_DEFUN([CF_WEAK_SYMBOLS],[
5209 AC_CACHE_CHECK(if $CC supports weak symbols,cf_cv_weak_symbols,[
5212 #include <stdio.h>],
5214 #if defined(__GNUC__)
5215 # if defined __USE_ISOC99
5216 # define _cat_pragma(exp) _Pragma(#exp)
5217 # define _weak_pragma(exp) _cat_pragma(weak name)
5219 # define _weak_pragma(exp)
5221 # define _declare(name) __extension__ extern __typeof__(name) name
5222 # define weak_symbol(name) _weak_pragma(name) _declare(name) __attribute__((weak))
5226 ],[cf_cv_weak_symbols=yes],[cf_cv_weak_symbols=no])
5229 dnl ---------------------------------------------------------------------------
5230 dnl CF_WITH_ABI_VERSION version: 1 updated: 2003/09/20 18:12:49
5231 dnl -------------------
5232 dnl Allow library's ABI to be overridden. Generally this happens when a
5233 dnl packager has incremented the ABI past that used in the original package,
5234 dnl and wishes to keep doing this.
5236 dnl $1 is the package name, if any, to derive a corresponding {package}_ABI
5238 AC_DEFUN([CF_WITH_ABI_VERSION],[
5239 test -z "$cf_cv_abi_version" && cf_cv_abi_version=0
5240 AC_ARG_WITH(abi-version,
5241 [ --with-abi-version=XXX override derived ABI version],
5242 [AC_MSG_WARN(overriding ABI version $cf_cv_abi_version to $withval)
5243 cf_cv_abi_version=$withval])
5244 CF_NUMBER_SYNTAX($cf_cv_abi_version,ABI version)
5246 $1_ABI=$cf_cv_abi_version
5249 dnl ---------------------------------------------------------------------------
5250 dnl CF_WITH_DBMALLOC version: 6 updated: 2006/12/16 14:24:05
5251 dnl ----------------
5252 dnl Configure-option for dbmalloc. The optional parameter is used to override
5253 dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
5254 AC_DEFUN([CF_WITH_DBMALLOC],[
5255 CF_NO_LEAKS_OPTION(dbmalloc,
5256 [ --with-dbmalloc test: use Conor Cahill's dbmalloc library],
5259 if test "$with_dbmalloc" = yes ; then
5260 AC_CHECK_HEADER(dbmalloc.h,
5261 [AC_CHECK_LIB(dbmalloc,[debug_malloc]ifelse($1,,[],[,$1]))])
5264 dnl ---------------------------------------------------------------------------
5265 dnl CF_WITH_DMALLOC version: 6 updated: 2006/12/16 14:24:05
5267 dnl Configure-option for dmalloc. The optional parameter is used to override
5268 dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
5269 AC_DEFUN([CF_WITH_DMALLOC],[
5270 CF_NO_LEAKS_OPTION(dmalloc,
5271 [ --with-dmalloc test: use Gray Watson's dmalloc library],
5274 if test "$with_dmalloc" = yes ; then
5275 AC_CHECK_HEADER(dmalloc.h,
5276 [AC_CHECK_LIB(dmalloc,[dmalloc_debug]ifelse($1,,[],[,$1]))])
5279 dnl ---------------------------------------------------------------------------
5280 dnl CF_WITH_GPM version: 7 updated: 2008/03/23 14:48:54
5283 dnl The option parameter (if neither yes/no) is assumed to be the name of
5284 dnl the gpm library, e.g., for dynamic loading.
5285 AC_DEFUN([CF_WITH_GPM],
5287 AC_MSG_CHECKING(if you want to link with the GPM mouse library)
5289 [ --with-gpm use Alessandro Rubini's GPM library],
5290 [with_gpm=$withval],
5292 AC_MSG_RESULT($with_gpm)
5294 if test "$with_gpm" != no ; then
5295 AC_CHECK_HEADER(gpm.h,[
5296 AC_DEFINE(HAVE_GPM_H)
5297 if test "$with_gpm" != yes && test "$with_gpm" != maybe ; then
5298 CF_VERBOSE(assuming we really have GPM library)
5299 AC_DEFINE(HAVE_LIBGPM)
5301 AC_CHECK_LIB(gpm,Gpm_Open,[:],[
5302 AC_MSG_ERROR(Cannot link with GPM library)
5307 test "$with_gpm" != maybe && AC_MSG_WARN(Cannot find GPM header)
5312 dnl ---------------------------------------------------------------------------
5313 dnl CF_WITH_LIBTOOL version: 20 updated: 2008/12/27 12:31:39
5315 dnl Provide a configure option to incorporate libtool. Define several useful
5316 dnl symbols for the makefile rules.
5318 dnl The reference to AC_PROG_LIBTOOL does not normally work, since it uses
5319 dnl macros from libtool.m4 which is in the aclocal directory of automake.
5320 dnl Following is a simple script which turns on the AC_PROG_LIBTOOL macro.
5321 dnl But that still does not work properly since the macro is expanded outside
5322 dnl the CF_WITH_LIBTOOL macro:
5325 dnl ACLOCAL=`aclocal --print-ac-dir`
5326 dnl if test -z "$ACLOCAL" ; then
5327 dnl echo cannot find aclocal directory
5329 dnl elif test ! -f $ACLOCAL/libtool.m4 ; then
5330 dnl echo cannot find libtool.m4 file
5334 dnl LOCAL=aclocal.m4
5335 dnl ORIG=aclocal.m4.orig
5337 dnl trap "mv $ORIG $LOCAL" 0 1 2 5 15
5341 dnl # sed the LIBTOOL= assignment to omit the current directory?
5342 dnl sed -e 's/^LIBTOOL=.*/LIBTOOL=${LIBTOOL-libtool}/' $ACLOCAL/libtool.m4 >>$LOCAL
5343 dnl cat $ORIG >>$LOCAL
5347 AC_DEFUN([CF_WITH_LIBTOOL],
5349 ifdef([AC_PROG_LIBTOOL],,[
5352 # common library maintenance symbols that are convenient for libtool scripts:
5353 LIB_CREATE='${AR} -cr'
5354 LIB_OBJECT='${OBJECTS}'
5358 # symbols used to prop libtool up to enable it to determine what it should be
5366 AC_MSG_CHECKING(if you want to build libraries with libtool)
5367 AC_ARG_WITH(libtool,
5368 [ --with-libtool generate libraries with libtool],
5369 [with_libtool=$withval],
5371 AC_MSG_RESULT($with_libtool)
5372 if test "$with_libtool" != "no"; then
5373 ifdef([AC_PROG_LIBTOOL],[
5374 # missing_content_AC_PROG_LIBTOOL{{
5376 # missing_content_AC_PROG_LIBTOOL}}
5378 if test "$with_libtool" != "yes" ; then
5379 CF_PATH_SYNTAX(with_libtool)
5380 LIBTOOL=$with_libtool
5382 AC_PATH_PROG(LIBTOOL,libtool)
5384 if test -z "$LIBTOOL" ; then
5385 AC_MSG_ERROR(Cannot find libtool)
5388 LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${DESTDIR}${libdir} -version-info `cut -f1 ${srcdir}/VERSION` ${LIBTOOL_OPTS} -o'
5389 LIB_OBJECT='${OBJECTS:.o=.lo}'
5391 LIB_CLEAN='${LIBTOOL} --mode=clean'
5392 LIB_COMPILE='${LIBTOOL} --mode=compile'
5393 LIB_LINK='${LIBTOOL} --mode=link ${CC} ${LIBTOOL_OPTS}'
5394 LIB_INSTALL='${LIBTOOL} --mode=install'
5395 LIB_UNINSTALL='${LIBTOOL} --mode=uninstall'
5398 # Show the version of libtool
5399 AC_MSG_CHECKING(version of libtool)
5401 # Save the version in a cache variable - this is not entirely a good
5402 # thing, but the version string from libtool is very ugly, and for
5403 # bug reports it might be useful to have the original string.
5404 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.]].*//'`
5405 AC_MSG_RESULT($cf_cv_libtool_version)
5406 if test -z "$cf_cv_libtool_version" ; then
5407 AC_MSG_ERROR(This is not GNU libtool)
5410 # special hack to add --tag option for C++ compiler
5411 case $cf_cv_libtool_version in
5412 1.[[5-9]]*|[[2-9]]*)
5413 LIBTOOL_CXX="$LIBTOOL --tag=CXX"
5414 LIBTOOL="$LIBTOOL --tag=CC"
5417 LIBTOOL_CXX="$LIBTOOL"
5425 test -z "$LIBTOOL" && ECHO_LT=
5428 AC_SUBST(LIBTOOL_CXX)
5429 AC_SUBST(LIBTOOL_OPTS)
5431 AC_SUBST(LIB_CREATE)
5432 AC_SUBST(LIB_OBJECT)
5433 AC_SUBST(LIB_SUFFIX)
5437 AC_SUBST(LIB_COMPILE)
5439 AC_SUBST(LIB_INSTALL)
5440 AC_SUBST(LIB_UNINSTALL)
5443 dnl ---------------------------------------------------------------------------
5444 dnl CF_WITH_PATH version: 8 updated: 2007/05/13 13:16:35
5446 dnl Wrapper for AC_ARG_WITH to ensure that user supplies a pathname, not just
5447 dnl defaulting to yes/no.
5449 dnl $1 = option name
5451 dnl $3 = environment variable to set
5452 dnl $4 = default value, shown in the help-message, must be a constant
5453 dnl $5 = default value, if it's an expression & cannot be in the help-message
5455 AC_DEFUN([CF_WITH_PATH],
5456 [AC_ARG_WITH($1,[$2 ](default: ifelse($4,,empty,$4)),,
5457 ifelse($4,,[withval="${$3}"],[withval="${$3-ifelse($5,,$4,$5)}"]))dnl
5458 if ifelse($5,,true,[test -n "$5"]) ; then
5459 CF_PATH_SYNTAX(withval)
5464 dnl ---------------------------------------------------------------------------
5465 dnl CF_WITH_PATHLIST version: 5 updated: 2001/12/10 01:28:30
5466 dnl ----------------
5467 dnl Process an option specifying a list of colon-separated paths.
5469 dnl $1 = option name
5471 dnl $3 = environment variable to set
5472 dnl $4 = default value, shown in the help-message, must be a constant
5473 dnl $5 = default value, if it's an expression & cannot be in the help-message
5474 dnl $6 = flag to tell if we want to define or substitute
5476 AC_DEFUN([CF_WITH_PATHLIST],[
5477 AC_REQUIRE([CF_PATHSEP])
5478 AC_ARG_WITH($1,[$2 ](default: ifelse($4,,empty,$4)),,
5479 ifelse($4,,[withval=${$3}],[withval=${$3-ifelse($5,,$4,$5)}]))dnl
5481 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${PATHSEP}"
5483 for cf_src_path in $withval
5485 CF_PATH_SYNTAX(cf_src_path)
5486 test -n "$cf_dst_path" && cf_dst_path="${cf_dst_path}:"
5487 cf_dst_path="${cf_dst_path}${cf_src_path}"
5492 # Strip single quotes from the value, e.g., when it was supplied as a literal
5494 case $cf_dst_path in #(vi
5496 cf_dst_path=`echo $cf_dst_path |sed -e s/\'// -e s/\'\$//`
5499 cf_dst_path=`echo "$cf_dst_path" | sed -e 's/\\\\/\\\\\\\\/g'`
5502 eval '$3="$cf_dst_path"'
5506 dnl ---------------------------------------------------------------------------
5507 dnl CF_WITH_PTHREAD version: 2 updated: 2008/08/23 18:26:05
5509 dnl Check for POSIX thread library.
5510 AC_DEFUN([CF_WITH_PTHREAD],
5512 AC_MSG_CHECKING(if you want to link with the pthread library)
5513 AC_ARG_WITH(pthread,
5514 [ --with-pthread use POSIX thread library],
5515 [with_pthread=$withval],
5517 AC_MSG_RESULT($with_pthread)
5519 if test "$with_pthread" != no ; then
5520 AC_CHECK_HEADER(pthread.h,[
5521 AC_DEFINE(HAVE_PTHREADS_H)
5523 AC_MSG_CHECKING(if we can link with the pthread library)
5524 cf_save_LIBS="$LIBS"
5525 LIBS="-lpthread $LIBS"
5527 #include <pthread.h>
5529 int rc = pthread_create(0,0,0,0);
5530 ],[with_pthread=yes],[with_pthread=no])
5531 LIBS="$cf_save_LIBS"
5532 AC_MSG_RESULT($with_pthread)
5534 if test "$with_pthread" = yes ; then
5535 LIBS="-lpthread $LIBS"
5536 AC_DEFINE(HAVE_LIBPTHREADS)
5538 AC_MSG_ERROR(Cannot link with pthread library)
5543 dnl ---------------------------------------------------------------------------
5544 dnl CF_WITH_REL_VERSION version: 1 updated: 2003/09/20 18:12:49
5545 dnl -------------------
5546 dnl Allow library's release-version to be overridden. Generally this happens when a
5547 dnl packager has incremented the release-version past that used in the original package,
5548 dnl and wishes to keep doing this.
5550 dnl $1 is the package name, if any, to derive corresponding {package}_MAJOR
5551 dnl and {package}_MINOR symbols
5553 AC_DEFUN([CF_WITH_REL_VERSION],[
5554 test -z "$cf_cv_rel_version" && cf_cv_rel_version=0.0
5555 AC_ARG_WITH(rel-version,
5556 [ --with-rel-version=XXX override derived release version],
5557 [AC_MSG_WARN(overriding release version $cf_cv_rel_version to $withval)
5558 cf_cv_rel_version=$withval])
5560 CF_NUMBER_SYNTAX($cf_cv_rel_version,Release version)
5562 $1_MAJOR=`echo "$cf_cv_rel_version" | sed -e 's/\..*//'`
5563 $1_MINOR=`echo "$cf_cv_rel_version" | sed -e 's/^[[^.]]*//' -e 's/^\.//' -e 's/\..*//'`
5564 CF_NUMBER_SYNTAX([$]$1_MAJOR,Release major-version)
5565 CF_NUMBER_SYNTAX([$]$1_MINOR,Release minor-version)
5568 dnl ---------------------------------------------------------------------------
5569 dnl CF_WITH_SYSMOUSE version: 2 updated: 2003/03/22 19:13:43
5570 dnl ----------------
5571 dnl If we can compile with sysmouse, make it available unless it is not wanted.
5572 AC_DEFUN([CF_WITH_SYSMOUSE],[
5573 # not everyone has "test -c"
5574 if test -c /dev/sysmouse 2>/dev/null ; then
5575 AC_MSG_CHECKING(if you want to use sysmouse)
5576 AC_ARG_WITH(sysmouse,
5577 [ --with-sysmouse use sysmouse (FreeBSD console)],
5578 [cf_with_sysmouse=$withval],
5579 [cf_with_sysmouse=maybe])
5580 if test "$cf_with_sysmouse" != no ; then
5582 #include <osreldate.h>
5583 #if (__FreeBSD_version >= 400017)
5584 #include <sys/consio.h>
5585 #include <sys/fbio.h>
5587 #include <machine/console.h>
5590 struct mouse_info the_mouse;
5591 ioctl(0, CONS_MOUSECTL, &the_mouse);
5592 ],[cf_with_sysmouse=yes],[cf_with_sysmouse=no])
5594 AC_MSG_RESULT($cf_with_sysmouse)
5595 test "$cf_with_sysmouse" = yes && AC_DEFINE(USE_SYSMOUSE)
5598 dnl ---------------------------------------------------------------------------
5599 dnl CF_WITH_VALGRIND version: 1 updated: 2006/12/14 18:00:21
5600 dnl ----------------
5601 AC_DEFUN([CF_WITH_VALGRIND],[
5602 CF_NO_LEAKS_OPTION(valgrind,
5603 [ --with-valgrind test: use valgrind],
5606 dnl ---------------------------------------------------------------------------
5607 dnl CF_XOPEN_SOURCE version: 28 updated: 2008/12/27 12:30:03
5609 dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
5610 dnl or adapt to the vendor's definitions to get equivalent functionality,
5611 dnl without losing the common non-POSIX features.
5614 dnl $1 is the nominal value for _XOPEN_SOURCE
5615 dnl $2 is the nominal value for _POSIX_C_SOURCE
5616 AC_DEFUN([CF_XOPEN_SOURCE],[
5618 AC_REQUIRE([CF_PROG_CC_U_D])
5620 cf_XOPEN_SOURCE=ifelse($1,,500,$1)
5621 cf_POSIX_C_SOURCE=ifelse($2,,199506L,$2)
5623 case $host_os in #(vi
5625 CPPFLAGS="$CPPFLAGS -D_ALL_SOURCE"
5627 freebsd*|dragonfly*) #(vi
5628 # 5.x headers associate
5629 # _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L
5630 # _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L
5631 cf_POSIX_C_SOURCE=200112L
5633 CPPFLAGS="$CPPFLAGS -D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
5636 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE"
5639 CPPFLAGS="$CPPFLAGS -D_SGI_SOURCE"
5641 linux*|gnu*|mint*|k*bsd*-gnu) #(vi
5645 # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <arpa/inet.h>
5648 # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
5651 # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
5654 CPPFLAGS="$CPPFLAGS -D_OSF_SOURCE"
5657 CPPFLAGS="$CPPFLAGS -D_QNX_SOURCE"
5660 # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
5663 CPPFLAGS="$CPPFLAGS -D__EXTENSIONS__"
5666 AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[
5667 AC_TRY_COMPILE([#include <sys/types.h>],[
5668 #ifndef _XOPEN_SOURCE
5671 [cf_cv_xopen_source=no],
5672 [cf_save="$CPPFLAGS"
5673 CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
5674 AC_TRY_COMPILE([#include <sys/types.h>],[
5675 #ifdef _XOPEN_SOURCE
5678 [cf_cv_xopen_source=no],
5679 [cf_cv_xopen_source=$cf_XOPEN_SOURCE])
5683 if test "$cf_cv_xopen_source" != no ; then
5684 CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE)
5685 CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE)
5686 test "$cf_cv_cc_u_d_options" = yes && \
5687 CPPFLAGS="$CPPFLAGS -U_XOPEN_SOURCE"
5688 CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_cv_xopen_source"
5690 CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)